Compare commits

...

27 Commits

Author SHA1 Message Date
16bb91dd81 feat(shell): use starship in bash 2023-11-18 02:33:13 +02:00
e7f078fe96 fix(nvim): merge mason ensure_installed defs 2023-11-16 15:34:22 +02:00
49778fe936 chore: update alacritty, nvim and tmux colors 2023-11-16 15:18:40 +02:00
6a718a41b1 feat(config): config loading changes and fixes 2023-11-16 14:07:22 +02:00
f392938e9e fix(dfm): have to x-have 2023-11-13 12:44:28 +02:00
7fb38fe8f3 feat(tmux): update theme, fix plugins, update docs 2023-11-13 12:44:09 +02:00
639cbe4939 chore(lint): dfm dotfiles fmt 2023-11-13 12:24:12 +02:00
1dc84a9cc5 chore(deps): updated Brewfile 2023-11-13 09:31:03 +02:00
6ae753d257 feat(cargo): added bottom 2023-11-13 09:28:37 +02:00
b7c9d4851a chore(scripts): mkd -> x-mkd 2023-11-13 09:28:15 +02:00
4699233d46 chore(shell): touching the paths again, no regrats 2023-11-13 09:25:58 +02:00
a5895abfa0 chore(config): update terraform config 2023-11-10 14:52:52 +02:00
fae34d10ef chore(config): update tmux config 2023-11-10 14:52:32 +02:00
c0448b5e7f feat(scripts): update pip install script 2023-11-10 14:51:57 +02:00
4d7cc568af feat(config): terraform configs 2023-11-10 14:06:58 +02:00
01a2815a68 chore(repo): added .nvmrc with lts/* 2023-11-10 08:38:54 +02:00
39e896f331 chore(deps): updated brewfile 2023-11-09 15:19:06 +02:00
622c8f991a chore(alias): wget 2023-11-07 07:20:44 +02:00
88894a33a5 feat(dfm): install latest lts node with nvm-latest 2023-11-07 07:20:02 +02:00
acbfd34e7d chore: paths and tweaks 2023-11-06 14:57:01 +02:00
bac03a0b7b chore(config): path additions 2023-11-06 10:40:45 +02:00
a96bf921a2 chore(scripts): backup scripts tweaks and license 2023-11-02 23:44:27 +02:00
b5df60851f chore(deps): updated yarn packages 2023-11-01 14:46:44 +02:00
2e682c58fa chore(deps): updated brewfile 2023-11-01 14:46:30 +02:00
cb28e274ca feat(config): amethyst 2023-11-01 14:46:14 +02:00
4572c42eea feat: x-path-* as scripts, run other changes 2023-11-01 14:45:03 +02:00
cec1edb269 feat: git-fsck-dirs, validate git repo objects 2023-10-31 13:08:04 +02:00
48 changed files with 1019 additions and 1124 deletions

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
lts/*

View File

@@ -3,9 +3,6 @@
# Defaults # Defaults
export DOTFILES="$HOME/.dotfiles" export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$HOME/.dotfiles/local/bin:$HOME/.local/go/bin:$PATH"
# shellcheck source=scripts/shared.sh
# source "$DOTFILES/scripts/shared.sh"
# Explicitly set XDG folders # Explicitly set XDG folders
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html # https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
@@ -18,83 +15,21 @@ export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache" export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run" export XDG_RUNTIME_DIR="$HOME/.local/run"
# Paths
export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$HOME/.local/go/bin:$XDG_DATA_HOME/cargo/bin:$PATH"
x-load-configs
# shellcheck source=../config/fzf/fzf.bash
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
source "${DOTFILES}/config/fzf/fzf.bash"
# Import ssh keys in keychain # Import ssh keys in keychain
ssh-add -A 2>/dev/null ssh-add -A 2>/dev/null
# Enable the subsequent settings only in interactive sessions x-have rbenv && {
case $- in eval "$(rbenv init - bash)"
*i*) ;;
*) return ;;
esac
# Path to your oh-my-bash installation.
export OSH="$HOME/.local/share/oh-my-bash"
[ -d "$OSH" ] && {
export OSH_THEME="powerline-multiline"
# PowerLine theme config
export POWERLINE_LEFT_PROMPT="cwd scm"
export POWERLINE_RIGHT_PROMPT="python_venv ruby in_vim battery user_info"
# Display red dots whilst waiting for completion.
export COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
export DISABLE_UNTRACKED_FILES_DIRTY="true"
# To disable the uses of "sudo" by oh-my-bash, please set "false" to
# this variable. The default behavior for the empty value is "true".
export OMB_USE_SUDO=true
# To enable/disable display of Python virtualenv and condaenv
export OMB_PROMPT_SHOW_PYTHON_VENV=true # enable
# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable
# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*)
# Custom completions may be added to ~/.oh-my-bash/custom/completions/
# Example format: completions=(ssh git bundler gem pip pip3)
# Add wisely, as too many completions slow down shell startup.
export completions=(
git
composer
ssh
)
# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/
# Example format: aliases=(vagrant composer git-avh)
# Add wisely, as too many aliases slow down shell startup.
export aliases=(
general
)
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
export plugins=(
git
bashmarks
)
# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format:
# if [ "$DISPLAY" ] || [ "$SSH" ]; then
# plugins+=(tmux-autoattach)
# fi
source "$OSH/oh-my-bash.sh"
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
} }
eval "$(starship init bash)"
source $DOTFILES/config/alias

View File

@@ -16,3 +16,4 @@ export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache" export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run" export XDG_RUNTIME_DIR="$HOME/.local/run"
source "$DOTFILES/config/exports"

View File

@@ -1,27 +1,30 @@
# this is my zsh config. there are many like it, but this one is mine. # this is my zsh config. there are many like it, but this one is mine.
# shellcheck shell=bash # shellcheck shell=bash
source "$DOTFILES/scripts/shared.sh" export DOTFILES="$HOME/.dotfiles"
# Explicitly set XDG folders
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
# custom variables
export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run"
export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$HOME/.local/go/bin:$XDG_DATA_HOME/bob/nvim-bin:$XDG_DATA_HOME/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
x-load-configs
export COMPLETION_WAITING_DOTS=true export COMPLETION_WAITING_DOTS=true
path_append "/opt/homebrew/bin"
if type brew &> /dev/null; then if type brew &> /dev/null; then
eval "$(brew shellenv)" eval "$(brew shellenv)"
FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}" FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}"
fi fi
path_append "/usr/local/bin"
path_prepend "$XDG_DATA_HOME/cargo/bin"
path_prepend "$XDG_BIN_HOME"
path_prepend "$HOME/.local/go/bin"
path_prepend "$XDG_DATA_HOME/bob/nvim-bin"
source "$DOTFILES/config/exports-shell"
source "$DOTFILES/config/exports-apps"
source "$DOTFILES/config/alias"
source "$DOTFILES/config/functions"
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion" export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
x-dc "$ZSH_CUSTOM_COMPLETION_PATH" x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
@@ -58,9 +61,9 @@ antigen bundle jreese/zsh-titles
antigen bundle zsh-users/zsh-completions antigen bundle zsh-users/zsh-completions
# these should be available if there's need # these should be available if there's need
have brew && antigen bundle brew x-have brew && antigen bundle brew
have php && antigen bundle php x-have php && antigen bundle php
have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv x-have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
# nvm is a strange beast # nvm is a strange beast
zstyle ':omz:plugins:nvm' autoload yes zstyle ':omz:plugins:nvm' autoload yes
@@ -78,5 +81,24 @@ antigen apply
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \ [ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
&& source "${DOTFILES}/config/fzf/fzf.zsh" && source "${DOTFILES}/config/fzf/fzf.zsh"
# Start starship x-have op && {
eval "$(op completion zsh)"
compdef _op op
}
x-have rbenv && {
eval "$(rbenv init - zsh)"
}
# Autoupdate tmux window name
TMUX_WINDOW_NAME_PLUGIN="$DOTFILES/config/tmux/plugins/tmux-window-name/scripts/rename_session_windows.py"
[ -f "$TMUX_WINDOW_NAME_PLUGIN" ] && {
tmux-window-name()
{
($TMUX_WINDOW_NAME_PLUGIN &)
}
add-zsh-hook chpwd tmux-window-name
}
eval "$(starship init zsh)" eval "$(starship init zsh)"
source $DOTFILES/config/alias

View File

@@ -19,8 +19,8 @@ env:
window: window:
dynamic_title: true dynamic_title: true
dimensions: dimensions:
columns: 130 columns: 200
lines: 40 lines: 100
# Adds this many blank pixels of padding around the window # Adds this many blank pixels of padding around the window
# Units are physical pixels; this is not DPI aware. # Units are physical pixels; this is not DPI aware.
@@ -31,7 +31,7 @@ window:
decorations: buttonless decorations: buttonless
opacity: 0.97 opacity: 0.98
# When true, bold text is drawn using the bright variant of colors. # When true, bold text is drawn using the bright variant of colors.
draw_bold_text_with_bright_colors: true draw_bold_text_with_bright_colors: true
@@ -104,9 +104,9 @@ colors:
cyan: '0x7dcfff' cyan: '0x7dcfff'
white: '0xc0caf5' white: '0xc0caf5'
indexed_colors: # indexed_colors:
- { index: 16, color: '0xff9e64' } # - { index: 16, color: '0xff9e64' }
- { index: 17, color: '0xdb4b4b' } # - { index: 17, color: '0xdb4b4b' }
key_bindings: key_bindings:
- { key: V, mods: Command, action: Paste } - { key: V, mods: Command, action: Paste }

View File

@@ -1,69 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck source="../scripts/shared.sh" # shellcheck source="../scripts/shared.sh"
# shellcheck disable=1091,2139 # shellcheck disable=1091,2139
DOTFILES="$HOME/.dotfiles"
# Get installed php versions from brew and setup aliases
function x-set-php-aliases
{
have brew && {
local php_versions=()
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew_installed | grep '^php')
php_error_reporting='-d error_reporting=22527'
for version in "${php_versions[@]}"; do
# drop the dot from version (8.0 -> 80)
local php_abbr="${version//\./}"
# replace "php@" with "p" so "php@80" becomes "p80"
local php_alias="${php_abbr//php@/p}"
# Fetch the exec path once
php_exec="$(brew --prefix "$version")/bin/php"
# Raw PHP without error_reporting flag.
# shellcheck disable=SC2139
alias "${php_alias}"r="$php_exec"
# PHP with error_reporting flag.
# shellcheck disable=SC2139,SC2140
alias "$php_alias"="$php_exec $php_error_reporting"
# Local PHP Server.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}s"="$php_exec -S localhost:9000"
# Use composer with specific PHP and error_reporting flag on.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}c"="$php_exec $php_error_reporting $(which composer)"
done
}
}
if [[ $(uname) == 'Darwin' ]]; then
x-set-php-aliases
# Laravel Sail shortcut
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
# Flush Directory Service cache
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
# Lock the screen
alias afk="osascript -e 'tell application \"System Events\" to keystroke \"q\" using {command down,control down}'"
# Empty the Trash on all mounted volumes and the main HDD
# Also, clear Apples System Logs to improve shell startup speed
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
fi
# Be nice # Be nice
alias please="sudo " alias please="sudo "
# Color the grep output # Color the grep output
alias grep='grep --color' alias grep="grep --color"
! have eza && alias ls='ls --color=auto' x-have eza && {
have eza && { alias ls="eza -h -s=type --git --icons --group-directories-first"
alias ls='eza -h -s=type --git --icons --group-directories-first'
} }
# Easier navigation: .., ..., .... # Easier navigation: .., ..., ....
@@ -139,14 +85,27 @@ alias zedit='$EDITOR ~/.dotfiles'
alias irssi="irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi" alias irssi="irssi --config=$XDG_CONFIG_HOME/irssi/config --home=$XDG_CONFIG_HOME/irssi"
if [[ -f "$HOME/.aliases.local" ]]; then alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts"
# shellcheck disable=SC1091
source "$HOME/.aliases.local"
fi
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion" alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion"
if [[ $(uname) == 'Darwin' ]]; then
# Laravel Sail shortcut
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
# Flush Directory Service cache
alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder"
# Lock the screen
alias afk="osascript -e 'tell application \"System Events\" to keystroke \"q\" using {command down,control down}'"
# Empty the Trash on all mounted volumes and the main HDD
# Also, clear Apple's System Logs to improve shell startup speed
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
x-set-php-aliases
fi
# Alacritty preexec hook to update dynamic title # Alacritty preexec hook to update dynamic title
preexec() preexec()
{ {

View File

@@ -0,0 +1,320 @@
# Default settings for amethyst
# Repo: `https://github.com/ianyh/Amethyst`
#
# Note due to issue 1419 (https://github.com/ianyh/Amethyst/issues/1419) some
# config values may conflict and not work if they are the same as the default
# values for amathyst. You can see these values on github at
# https://github.com/ianyh/Amethyst/blob/development/Amethyst/default.amethyst
# If you're experiencing conflicts and the settings are the same as the default,
# comment out the commands in this file.
#
# Move this file to: `~/.amethyst.yml`
# In order to register changes restart Amethyst.
# If you experience issues pulling in the changes you can also quit Amethyst and run: `defaults delete com.amethyst.Amethyst.plist`
# This removes the current preferences and causes Amethyst to restart with default preferences and pull configs from this file.
# layouts - Ordered list of layouts to use by layout key (default tall, wide, fullscreen, and column).
layouts:
- bsp
- tall
# - fullscreen
# - tall-right
# - wide
# - two-pane
# - middle-wide
- 3column-left
# - 3column-middle
# - 3column-right
# - 4column-left
# - 4column-right
# - column
# - row
# - floating
- widescreen-tall
# - widescreen-tall-right
# - bsp
# First mod (default option + shift).
mod1:
- option
- shift
# - control
# - command
# Second mod (default option + shift + control).
mod2:
- option
- shift
- control
# - command
# Commands:
# special key values
# space
# enter
# up
# right
# down
# left
# special characters require quotes
# '.'
# ','
# Move to the next layout in the list.
cycle-layout:
mod: mod1
key: space
# Move to the previous layout in the list.
cycle-layout-backward:
mod: mod2
key: space
# Shrink the main pane by a percentage of the screen dimension as defined by window-resize-step. Note that not all layouts respond to this command.
shrink-main:
mod: mod1
key: h
# Expand the main pane by a percentage of the screen dimension as defined by window-resize-step. Note that not all layouts respond to this command.
expand-main:
mod: mod1
key: l
# Increase the number of windows in the main pane. Note that not all layouts respond to this command.
increase-main:
mod: mod1
key: ','
# Decrease the number of windows in the main pane. Note that not all layouts respond to this command.
decrease-main:
mod: mod1
key: '.'
# General purpose command for custom layouts. Functionality is layout-dependent.
# command1:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts. Functionality is layout-dependent.
# command2:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts. Functionality is layout-dependent.
# command3:
# mod: <NONE>
# key: <NONE>
# General purpose command for custom layouts. Functionality is layout-dependent.
# command4:
# mod: <NONE>
# key: <NONE>
# Focus the next window in the list going counter-clockwise.
focus-ccw:
mod: mod1
key: j
# Focus the next window in the list going clockwise.
focus-cw:
mod: mod1
key: k
# Focus the main window in the list.
focus-main:
mod: mod1
key: m
# Focus the next screen in the list going counter-clockwise.
focus-screen-ccw:
mod: mod1
key: p
# Focus the next screen in the list going clockwise.
focus-screen-cw:
mod: mod1
key: n
# Move the currently focused window onto the next screen in the list going counter-clockwise.
swap-screen-ccw:
mod: mod2
key: h
# Move the currently focused window onto the next screen in the list going clockwise.
swap-screen-cw:
mod: mod2
key: l
# Swap the position of the currently focused window with the next window in the list going counter-clockwise.
swap-ccw:
mod: mod2
key: j
# Swap the position of the currently focused window with the next window in the list going clockwise.
swap-cw:
mod: mod2
key: k
# Swap the position of the currently focused window with the main window in the list.
swap-main:
mod: mod1
key: enter
# Move focus to the n-th screen in the list; e.g., focus-screen-3 will move mouse focus to the 3rd screen. Note that the main window in the given screen will be focused.
#focus-screen-n:
# focus-screen-<screen-number>:
# mod: mod1
# key: y
# Move the currently focused window to the n-th screen; e.g., throw-screen-3 will move the window to the 3rd screen.
# throw-screen-n:
# throw-screen-<screen-number>:
# mod: mod1
# key: u
# Move the currently focused window to the n-th space; e.g., throw-space-3 will move the window to the 3rd space.
# throw-space-<screen-number>:
# mod: mod1
# key: i
# Select tall layout
#select-tall-layout:
# mod: mod1
# key: a
# Select wide layout
#select-wide-layout:
# mod: mod1
# key: s
# Select fullscreen layout
select-fullscreen-layout:
mod: mod1
key: d
# Select column layout
select-column-layout:
mod: mod1
key: f
# Move the currently focused window to the space to the left.
throw-space-left:
mod: mod2
key: left
# Move currently the focused window to the space to the right.
throw-space-right:
mod: mod2
key: right
# Toggle the floating state of the currently focused window; i.e., if it was floating make it tiled and if it was tiled make it floating.
toggle-float:
mod: mod1
key: t
# Display the layout HUD with the current layout on each screen.
display-current-layout:
mod: mod1
key: i
# Turn on or off tiling entirely.
toggle-tiling:
mod: mod1
key: t
# Rerun the current layout's algorithm.
reevaluate-windows:
mod: mod1
key: z
# Turn on or off focus-follows-mouse.
toggle-focus-follows-mouse:
mod: mod2
key: x
# Automatically quit and reopen Amethyst.
relaunch-amethyst:
mod: mod2
key: z
# disable screen padding on builtin display
disable-padding-on-builtin-display: false
# Boolean flag for whether or not to add margins betwen windows (default false).
window-margins: false
# Boolean flag for whether or not to set window margins if there is only one window on the screen, assuming window margins are enabled (default false).
smart-window-margins: true
# # Add 10px margin between windows
# window-margins: true
# window-margin-size: 5
# The size of the margins between windows (in px, default 0).
window-margin-size: 0
# The max number of windows that may be visible on a screen at one time before
# additional windows are minimized. A value of 0 disables the feature.
window-max-count: 0
# The smallest height that a window can be sized to regardless of its layout frame (in px, default 0).
window-minimum-height: 0
# The smallest width that a window can be sized to regardless of its layout frame (in px, default 0)
window-minimum-width: 0
# List of bundle identifiers for applications to either be automatically floating or automatically tiled based on floating-is-blacklist (default []).
floating: []
# Boolean flag determining behavior of the floating list.
# true if the applications should be floating and all others tiled. false if the applications should be tiled and all others floating (default true).
floating-is-blacklist: false
# true if screen frames should exclude the status bar. false if the screen frames should include the status bar (default false).
ignore-menu-bar: false
# true if windows smaller than a 500px square should be floating by default (default true)
float-small-windows: true
# true if the mouse should move position to the center of a window when it becomes focused (default false). Note that this is largely incompatible with focus-follows-mouse.
mouse-follows-focus: false
# true if the windows underneath the mouse should become focused as the mouse moves (default false). Note that this is largely incompatible with mouse-follows-focus
focus-follows-mouse: false
# true if dragging and dropping windows on to each other should swap their positions (default false).
mouse-swaps-windows: true
# true if changing the frame of a window with the mouse should update the layout to accommodate the change (default false). Note that not all layouts will be able to respond to the change.
mouse-resizes-windows: true
# true to display the name of the layout when a new layout is selected (default true).
enables-layout-hud: true
# true to display the name of the layout when moving to a new space (default true).
enables-layout-hud-on-space-change: true
# true to get updates to beta versions of the software (default false).
use-canary-build: false
# true to insert new windows into the first position and false to insert new windows into the last position (default false).
new-windows-to-main: false
# true to automatically move to a space when throwing a window to it (default true).
follow-space-thrown-windows: true
# The integer percentage of the screen dimension to increment and decrement main pane ratios by (default 5).
window-resize-step: 5
# Padding to apply between windows and the left edge of the screen (in px, default 0).
screen-padding-left: 0
# Padding to apply between windows and the right edge of the screen (in px, default 0).
screen-padding-right: 0
# Padding to apply between windows and the top edge of the screen (in px, default 0).
screen-padding-top: 0
# Padding to apply between windows and the bottom edge of the screen (in px, default 0).
screen-padding-bottom: 0
# true to maintain layout state across application executions (default true).
restore-layouts-on-launch: true
# true to display some optional debug information in the layout HUD (default false).
debug-layout-info: true

View File

@@ -0,0 +1,35 @@
/**
* Almost Maximize
* Almost maximizes the window to the screen, leaving a small margin.
*
* @author Ville Viklund <https://github.com/ville6000>
*
* @param {Object} windows - All windows in the current space.
* @param {Object} screenFrame - The frame of the current screen.
* @param {Object} state - The state of the current space.
* @param {Object} extendedFrames - The frames of the windows in the current space.
* @return {Object} - The frames for the windows in the current space.
*/
function layout() {
return {
name: 'Almost Maximize',
getFrameAssignments: (windows, screenFrame, state, extendedFrames) => {
const width = screenFrame.width * 0.95
const height = screenFrame.height * 0.95
const x = (screenFrame.width - width) / 2
const y = (screenFrame.height - height) / 2
const windowFrames = {}
windows.forEach(window => {
windowFrames[window.id] = {
Y: screenFrame.y + y,
x: screenFrame.x + x,
width,
height,
}
})
return windowFrames
},
}
}

View File

@@ -2,7 +2,55 @@
# shellcheck shell=bash # shellcheck shell=bash
# vim: filetype=zsh # vim: filetype=zsh
# Cache commands using bkt if installed
if command -v bkt >&/dev/null; then
bkt()
{
command bkt --cache-dir="$XDG_CACHE_HOME/bkt" "$@"
}
else
# If bkt isn't installed skip its arguments and just execute directly.
# Optionally write a msg to stderr suggesting users install bkt.
bkt()
{
while [[ "$1" == --* ]]; do shift; done
"$@"
}
fi
# shorthand for checking if the system has the bin in path,
# this version does not use caching
# usage: have_command php && php -v
have_command()
{
command -v "$1" >&/dev/null
}
# shorthand for checking if the system has the bin in path,
# this version uses caching
# usage: have php && php -v
have()
{
bkt -- which "$1" >&/dev/null
}
brew_installed()
{
bkt -- brew list
}
# shorthand for checking if brew package is installed
# usage: have_brew php && php -v
have_brew()
{
! x-have brew && return 125
if bkt -- brew list "$1" &> /dev/null; then
return 0
else
return 1
fi
}
source "$DOTFILES/config/exports-shell" source "$DOTFILES/config/exports-shell"
source "$DOTFILES/config/exports-apps" source "$DOTFILES/config/exports-apps"
have nvim && export EDITOR="nvim"

View File

@@ -21,15 +21,14 @@ x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
export ANDROID_HOME="$XDG_DATA_HOME/android" export ANDROID_HOME="$XDG_DATA_HOME/android"
# bob manages nvim versions # bob manages nvim versions
path_prepend "$XDG_DATA_HOME/bob/nvim-bin" export PATH="$XDG_DATA_HOME/bob/nvim-bin:$PATH"
have nvim && export EDITOR="nvim"
export HOMEBREW_NO_ENV_HINTS=true export HOMEBREW_NO_ENV_HINTS=true
# composer, https://getcomposer.org/ # composer, https://getcomposer.org/
export COMPOSER_HOME="$XDG_STATE_HOME/composer" export COMPOSER_HOME="$XDG_STATE_HOME/composer"
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin" export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
path_append "$COMPOSER_BIN" export PATH="$COMPOSER_BIN:$PATH"
# docker, https://docs.docker.com/engine/reference/commandline/cli/ # docker, https://docs.docker.com/engine/reference/commandline/cli/
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
@@ -39,7 +38,7 @@ export DOCKER_SCAN_SUGGEST=false
# ffmpeg # ffmpeg
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg" export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
have ffmpeg && x-dc "$FFMPEG_DATADIR" x-have ffmpeg && x-dc "$FFMPEG_DATADIR"
# GnuPG # GnuPG
export GNUPGHOME="$XDG_DATA_HOME/gnupg" export GNUPGHOME="$XDG_DATA_HOME/gnupg"
@@ -53,27 +52,21 @@ export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
export NB_DIR="$XDG_STATE_HOME/nb" export NB_DIR="$XDG_STATE_HOME/nb"
# NPM: Add npm packages to path # NPM: Add npm packages to path
have node && { x-have node && {
NVM_NODE_BIN_DIR="$(dirname "$(which node)")" NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
path_append "$NVM_NODE_BIN_DIR" export PATH="$NVM_NODE_BIN_DIR:$PATH"
} }
# op (1Password cli) is present # op (1Password cli) is present
export OP_CACHE="$XDG_STATE_HOME/1password" export OP_CACHE="$XDG_STATE_HOME/1password"
have op && {
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && {
eval "$(op completion zsh)"
compdef _op op
}
}
# Python # Python
# #
# pyenv, python environments # pyenv, python environments
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs" export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export PYENV_ROOT="$XDG_STATE_HOME/pyenv" export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
have pyenv && { x-have pyenv && {
path_append "$PYENV_ROOT/shims" export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init -)" eval "$(pyenv init -)"
} }
@@ -87,16 +80,12 @@ export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
export RBENV_ROOT="$XDG_STATE_HOME/rbenv" export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
x-dc "$RBENV_ROOT" x-dc "$RBENV_ROOT"
have gem && path_append "${GEM_HOME}/bin" x-have gem && export PATH="${GEM_HOME}/bin:$PATH"
have rbenv && {
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && eval "$(rbenv init - zsh)"
[ "$DOTFILES_CURRENT_SHELL" = "bash" ] && eval "$(rbenv init - bash)"
}
# Rust / cargo # Rust / cargo
export RUSTUP_HOME="$XDG_DATA_HOME/rustup" export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export CARGO_HOME="$XDG_DATA_HOME/cargo" export CARGO_HOME="$XDG_DATA_HOME/cargo"
path_append "$CARGO_HOME/bin" export PATH="$CARGO_HOME/bin:$PATH"
# screen # screen
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc" export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
@@ -104,6 +93,13 @@ export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
# sonarlint # sonarlint
export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint" export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint"
# terraform
# https://www.terraform.io/docs/cli/config/config-file.html
# https://www.terraform.io/docs/cli/config/environment-variables.html
export TF_DATA_DIR="$XDG_STATE_HOME/terraform"
export TF_CLI_CONFIG_FILE="$XDG_CONFIG_HOME/terraform/terraformrc"
export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
# tldr / tealdeer # tldr / tealdeer
export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/" export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/"

View File

@@ -1,9 +1,9 @@
# lakka exports # lakka exports
## LUA ## LUA
have luarocks && $(luarocks path --bin) x-have luarocks && $(luarocks path --bin)
path_prepend "$HOME/.local/go/bin" export PATH="$HOME/.local/go/bin:$PATH"
alias logrotate='/usr/sbin/logrotate -s $HOME/logs/state' alias logrotate='/usr/sbin/logrotate -s $HOME/logs/state'
alias nano='nano -wS -$' alias nano='nano -wS -$'
@@ -17,4 +17,3 @@ export RVM_PATH="$HOME/.rvm"
export PATH="$RVM_PATH/bin:$PATH" export PATH="$RVM_PATH/bin:$PATH"
# shellcheck source=$HOME/.rvm/scripts/rvm # shellcheck source=$HOME/.rvm/scripts/rvm
[[ -s "$RVM_PATH/scripts/rvm" ]] && source "$RVM_PATH/scripts/rvm" # Load RVM into a shell session *as a function* [[ -s "$RVM_PATH/scripts/rvm" ]] && source "$RVM_PATH/scripts/rvm" # Load RVM into a shell session *as a function*

View File

@@ -3,21 +3,6 @@
# shellcheck disable=1091,2046 # shellcheck disable=1091,2046
# vim: filetype=bash # vim: filetype=bash
export DOTFILES="$HOME/.dotfiles"
# Explicitly set XDG folders
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
# custom variables
export XDG_BIN_HOME="$HOME/.local/bin"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="$HOME/.local/run"
export LC_ALL=fi_FI.UTF-8
# Bash completion file location # Bash completion file location
export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion" export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion"
@@ -38,13 +23,13 @@ export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
export LESSHISTFILE="$XDG_STATE_HOME"/less/history export LESSHISTFILE="$XDG_STATE_HOME"/less/history
# Highlight section titles in manual pages # Highlight section titles in manual pages
export LESS_TERMCAP_md="$ORANGE" # export LESS_TERMCAP_md="$ORANGE"
# zsh autoloaded terminfo # zsh autoloaded terminfo
export TERMINFO="$XDG_DATA_HOME"/terminfo export TERMINFO="${XDG_DATA_HOME}/terminfo"
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo export TERMINFO_DIRS="${XDG_DATA_HOME}/terminfo":/usr/share/terminfo
# Dont clear the screen after quitting a manual page # Don't clear the screen after quitting a manual page
export MANPAGER="less -X" export MANPAGER="less -X"
# Always enable colored `grep` output # Always enable colored `grep` output
@@ -53,33 +38,3 @@ export GREP_OPTIONS="--color=auto"
# check the window size after each command and, if necessary, # check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS. # update the values of LINES and COLUMNS.
hash shopt 2> /dev/null && shopt -s checkwinsize hash shopt 2> /dev/null && shopt -s checkwinsize
# Set dircolors based on the file, if it exists
have dircolors && eval $(dircolors "$XDG_CONFIG_HOME/dircolors")
# If we are using zsh, color our dir lists and such
if [ "$DOTFILES_CURRENT_SHELL" = "-zsh" ]; then
[[ $ZSH_VERSION != "" ]] && {
autoload -U colors zsh/terminfo compinit
colors
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
x-dc "$XDG_CACHE_HOME/zsh"
x-dc "$XDG_STATE_HOME/zsh"
export HISTFILE="$XDG_STATE_HOME/zsh/history"
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
zstyle ':completion:*' list-colors "$LS_COLORS"
# Load iterm2 shell integration
# https://iterm2.com/documentation-shell-integration.html
[[ -f "$XDG_BIN_HOME/iterm2_shell_integration.zsh" ]] \
&& source "$XDG_BIN_HOME/iterm2_shell_integration.zsh"
}
fi
# If we are using bash
if [ "$DOTFILES_CURRENT_SHELL" = "bash" ]; then
# shellcheck source=../config/fzf/fzf.bash
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
source "${DOTFILES}/config/fzf/fzf.bash"
fi

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# shell functions # shell functions
set -euo pipefail

View File

@@ -20,8 +20,8 @@ brew "act"
brew "ca-certificates" brew "ca-certificates"
# YAML Parser # YAML Parser
brew "libyaml" brew "libyaml"
# Interpreted, interactive, object-oriented programming language # Cryptography and SSL/TLS Toolkit
brew "python@3.11" brew "openssl@3"
# Automate deployment, configuration, and upgrading # Automate deployment, configuration, and upgrading
brew "ansible" brew "ansible"
# Checks ansible playbooks for practices and behaviour # Checks ansible playbooks for practices and behaviour
@@ -60,6 +60,8 @@ brew "coreutils"
brew "asdf" brew "asdf"
# Spell checker with better logic than ispell # Spell checker with better logic than ispell
brew "aspell" brew "aspell"
# Interpreted, interactive, object-oriented programming language
brew "python@3.11"
# Official Amazon AWS command-line interface # Official Amazon AWS command-line interface
brew "awscli" brew "awscli"
# Bourne-Again SHell, a UNIX command interpreter # Bourne-Again SHell, a UNIX command interpreter
@@ -103,13 +105,11 @@ brew "dog"
# Lightning-fast linter for .env files written in Rust # Lightning-fast linter for .env files written in Rust
brew "dotenv-linter" brew "dotenv-linter"
# Tool to verify that your files are in harmony with your .editorconfig # Tool to verify that your files are in harmony with your .editorconfig
brew "editorconfig-checker" brew "editorconfig-checker", link: false
# Useful examples at the command-line # Useful examples at the command-line
brew "eg-examples" brew "eg-examples"
# OpenType text shaping engine # Spellchecker wrapping library
brew "harfbuzz" brew "enchant"
# Development kit for the Java programming language
brew "openjdk"
# Run arbitrary commands when files change # Run arbitrary commands when files change
brew "entr" brew "entr"
# Perl lib for reading and writing EXIF metadata # Perl lib for reading and writing EXIF metadata
@@ -158,6 +158,8 @@ brew "gpgme"
brew "gpg-tui" brew "gpg-tui"
# Image manipulation # Image manipulation
brew "netpbm" brew "netpbm"
# OpenType text shaping engine
brew "harfbuzz"
# Framework for layout and rendering of i18n text # Framework for layout and rendering of i18n text
brew "pango" brew "pango"
# Library to render SVG files using Cairo # Library to render SVG files using Cairo
@@ -180,6 +182,8 @@ brew "hugo"
brew "libheif" brew "libheif"
# Tools and libraries to manipulate images in many formats # Tools and libraries to manipulate images in many formats
brew "imagemagick" brew "imagemagick"
# Modular IRC client
brew "irssi"
# Lightweight and flexible command-line JSON processor # Lightweight and flexible command-line JSON processor
brew "jq" brew "jq"
# Network authentication protocol # Network authentication protocol
@@ -194,6 +198,8 @@ brew "libvoikko"
brew "lolcat" brew "lolcat"
# Package manager for the Lua programming language # Package manager for the Lua programming language
brew "luarocks" brew "luarocks"
# LZMA-based compression program similar to gzip or bzip2
brew "lzip"
# Swiss Army Knife for macOS # Swiss Army Knife for macOS
brew "m-cli" brew "m-cli"
# Mac App Store command-line interface # Mac App Store command-line interface
@@ -212,6 +218,8 @@ brew "nvm"
brew "openjdk@11" brew "openjdk@11"
# Generate clients, server & docs from an OpenAPI spec (v2, v3) # Generate clients, server & docs from an OpenAPI spec (v2, v3)
brew "openapi-generator" brew "openapi-generator"
# Development kit for the Java programming language
brew "openjdk"
# Swiss-army knife of markup format conversion # Swiss-army knife of markup format conversion
brew "pandoc" brew "pandoc"
# Highly capable, feature-rich programming language # Highly capable, feature-rich programming language
@@ -236,8 +244,6 @@ brew "rbenv"
brew "rcm" brew "rcm"
# Search tool like grep and The Silver Searcher # Search tool like grep and The Silver Searcher
brew "ripgrep" brew "ripgrep"
# Safe, concurrent, practical language
brew "rust"
# Static analysis and lint tool, for (ba)sh scripts # Static analysis and lint tool, for (ba)sh scripts
brew "shellcheck" brew "shellcheck"
# Autoformat shell script source code # Autoformat shell script source code
@@ -260,6 +266,8 @@ brew "terragrunt"
brew "testssl" brew "testssl"
# Terraform version manager inspired by rbenv # Terraform version manager inspired by rbenv
brew "tfenv" brew "tfenv"
# Linter for Terraform files
brew "tflint"
# Static analysis security scanner for your terraform code # Static analysis security scanner for your terraform code
brew "tfsec" brew "tfsec"
# Programmatically correct mistyped console commands # Programmatically correct mistyped console commands
@@ -320,6 +328,8 @@ brew "teamookla/speedtest/speedtest"
cask "1password-cli" cask "1password-cli"
# GPU-accelerated terminal emulator # GPU-accelerated terminal emulator
cask "alacritty" cask "alacritty"
# Automatic tiling window manager similar to xmonad
cask "amethyst"
# Turn audio CDs and files into audiobooks # Turn audio CDs and files into audiobooks
cask "audiobook-builder" cask "audiobook-builder"
# Text editor # Text editor
@@ -356,6 +366,8 @@ cask "google-cloud-sdk"
cask "insomnia" cask "insomnia"
# JetBrains tools manager # JetBrains tools manager
cask "jetbrains-toolbox" cask "jetbrains-toolbox"
# End-to-end encryption software
cask "keybase"
# Kubernetes IDE # Kubernetes IDE
cask "lens" cask "lens"
# Keep all tasks from your todo apps on your menu bar # Keep all tasks from your todo apps on your menu bar
@@ -392,6 +404,8 @@ cask "rsyncosx"
cask "rsyncui" cask "rsyncui"
# MySQL/MariaDB database management # MySQL/MariaDB database management
cask "sequel-ace" cask "sequel-ace"
# Plugin for AWS CLI to start and end sessions that connect to managed instances
cask "session-manager-plugin"
# Collection of apps available by subscription # Collection of apps available by subscription
cask "setapp" cask "setapp"
# Team communication and collaboration software # Team communication and collaboration software
@@ -419,8 +433,11 @@ mas "LastPass", id: 926036361
mas "Numbers", id: 409203825 mas "Numbers", id: 409203825
mas "Pages", id: 409201541 mas "Pages", id: 409201541
mas "Pixelmator Pro", id: 1289583905 mas "Pixelmator Pro", id: 1289583905
mas "Final Cut Pro", id: 424389933
mas "Tailscale", id: 1475387142 mas "Tailscale", id: 1475387142
mas "Xcode", id: 497799835 mas "Xcode", id: 497799835
vscode "4ops.terraform"
vscode "adamiBs.terraform-live-graph"
vscode "akamud.vscode-theme-onelight" vscode "akamud.vscode-theme-onelight"
vscode "amiralizadeh9480.laravel-extra-intellisense" vscode "amiralizadeh9480.laravel-extra-intellisense"
vscode "andrewleedham.vscode-css-modules" vscode "andrewleedham.vscode-css-modules"
@@ -442,11 +459,14 @@ vscode "formulahendry.auto-rename-tag"
vscode "formulahendry.code-runner" vscode "formulahendry.code-runner"
vscode "foxundermoon.shell-format" vscode "foxundermoon.shell-format"
vscode "gencer.html-slim-scss-css-class-completion" vscode "gencer.html-slim-scss-css-class-completion"
vscode "GitHub.copilot"
vscode "GitHub.copilot-chat"
vscode "github.vscode-github-actions" vscode "github.vscode-github-actions"
vscode "GitHub.vscode-pull-request-github" vscode "GitHub.vscode-pull-request-github"
vscode "GraphQL.vscode-graphql" vscode "GraphQL.vscode-graphql"
vscode "GraphQL.vscode-graphql-execution" vscode "GraphQL.vscode-graphql-execution"
vscode "GraphQL.vscode-graphql-syntax" vscode "GraphQL.vscode-graphql-syntax"
vscode "hashicorp.terraform"
vscode "heybourn.headwind" vscode "heybourn.headwind"
vscode "JohnnyMorganz.stylua" vscode "JohnnyMorganz.stylua"
vscode "jumpinjackie.vscode-map-preview" vscode "jumpinjackie.vscode-map-preview"
@@ -458,6 +478,7 @@ vscode "mikestead.dotenv"
vscode "MisterJ.vue-volar-extention-pack" vscode "MisterJ.vue-volar-extention-pack"
vscode "MrChetan.phpstorm-parameter-hints-in-vscode" vscode "MrChetan.phpstorm-parameter-hints-in-vscode"
vscode "mrorz.language-gettext" vscode "mrorz.language-gettext"
vscode "ms-azuretools.vscode-azureterraform"
vscode "ms-azuretools.vscode-docker" vscode "ms-azuretools.vscode-docker"
vscode "ms-python.python" vscode "ms-python.python"
vscode "ms-python.vscode-pylance" vscode "ms-python.vscode-pylance"
@@ -467,6 +488,7 @@ vscode "ms-toolsai.vscode-jupyter-cell-tags"
vscode "ms-toolsai.vscode-jupyter-slideshow" vscode "ms-toolsai.vscode-jupyter-slideshow"
vscode "ms-vscode-remote.remote-containers" vscode "ms-vscode-remote.remote-containers"
vscode "ms-vscode-remote.remote-wsl" vscode "ms-vscode-remote.remote-wsl"
vscode "ms-vscode.azure-account"
vscode "ms-vscode.cpptools" vscode "ms-vscode.cpptools"
vscode "msjsdiag.vscode-react-native" vscode "msjsdiag.vscode-react-native"
vscode "mtxr.sqltools" vscode "mtxr.sqltools"

View File

@@ -12,9 +12,14 @@ require("lazy").setup({
{ {
"LazyVim/LazyVim", "LazyVim/LazyVim",
import = "lazyvim.plugins", import = "lazyvim.plugins",
opts = {
colorscheme = "tokyonight",
},
}, },
{ {
"folke/tokyonight.nvim", "folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = { opts = {
style = "night", style = "night",
transparent = true, transparent = true,
@@ -23,6 +28,8 @@ require("lazy").setup({
sidebars = "transparent", sidebars = "transparent",
floats = "transparent", floats = "transparent",
}, },
dim_inactive = true,
lualine_bold = true,
}, },
}, },
{ import = "plugins" }, { import = "plugins" },

View File

@@ -15,6 +15,10 @@ return {
}, },
}, },
keys = { keys = {
{
"<leader>ba",
desc = "Annotations / Comments",
},
{ {
"<leader>baa", "<leader>baa",
function() function()
@@ -68,10 +72,12 @@ return {
-- Clarify and beautify your comments using boxes and lines. -- Clarify and beautify your comments using boxes and lines.
-- https://github.com/LudoPinelli/comment-box.nvim -- https://github.com/LudoPinelli/comment-box.nvim
{ "LudoPinelli/comment-box.nvim", opts = {} }, { "LudoPinelli/comment-box.nvim", opts = {} },
-- Mason
-- https://github.com/williamboman/mason.nvim
{ {
"williamboman/mason.nvim", "williamboman/mason.nvim",
opts = { opts = function(_, opts)
ensure_installed = { vim.list_extend(opts.ensure_installed, {
"actionlint", "actionlint",
"ansible-language-server", "ansible-language-server",
"ansible-lint", "ansible-lint",
@@ -86,18 +92,24 @@ return {
"dockerfile-language-server", "dockerfile-language-server",
"editorconfig-checker", "editorconfig-checker",
"fixjson", "fixjson",
"flake8",
"html-lsp", "html-lsp",
"jq", "jq",
"jsonlint",
"luacheck",
"nginx-language-server", "nginx-language-server",
"php-cs-fixer", "php-cs-fixer",
"phpcs",
"phpmd",
"semgrep", "semgrep",
"sonarlint-language-server",
"stylua",
"shellcheck", "shellcheck",
"shfmt", "shfmt",
"flake8", "sonarlint-language-server",
}, "stylelint",
}, "stylua",
"yamllint",
})
end,
}, },
-- Vim plugin for automatic time tracking and metrics generated from your programming activity. -- Vim plugin for automatic time tracking and metrics generated from your programming activity.
-- https://github.com/wakatime/vim-wakatime -- https://github.com/wakatime/vim-wakatime

View File

@@ -1,24 +0,0 @@
return {
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"actionlint",
"ansible-lint",
"bash-language-server",
"commitlint",
"flake8",
"intelephense",
"jsonlint",
"luacheck",
"phpcs",
"phpmd",
"shellcheck",
"shfmt",
"stylelint",
"stylua",
"yamllint",
},
},
},
}

View File

@@ -0,0 +1,2 @@
plugin_cache_dir = "$HOME/.cache/terraform/plugin-cache"

View File

@@ -67,6 +67,9 @@ bind p paste-buffer
# │ Settings │ # │ Settings │
# ╰──────────────────────────────────────────────────────────╯ # ╰──────────────────────────────────────────────────────────╯
# Setting status on
set -g status "on"
# Expose window title # Expose window title
set-option -g set-titles on set-option -g set-titles on
@@ -85,8 +88,25 @@ set-option -g renumber-windows on
# set vi-mode # set vi-mode
set-window-option -g mode-keys vi set-window-option -g mode-keys vi
# Set theme to tokyonight # ╭──────────────────────────────────────────────────────────╮
source-file ~/.dotfiles/config/tmux/tokyonight_storm.tmux # │ Theme │
# ╰──────────────────────────────────────────────────────────╯
# Make sure status sides are long enough and centered is in the middle
set -g status-left-length "30"
set -g status-right-length "30"
set-option -g status-position "bottom"
set-option -g status-style 'bg=default,fg=#ffffff'
set-option -g status-justify centre
set-option -g status-left '#h '
set-window-option -g window-status-style 'fg=#ffffff,bg=default'
set-option -g window-status-format ' #I:#W '
set-window-option -g window-status-current-style 'fg=#111111,bg=#7aa2f7'
set-option -g window-status-current-format ' #I:#W#{?window_zoomed_flag,  , } '
set-option -g status-left "#S"
set-option -g status-right "%H:%M #{tmux_mode_indicator}"
# ╭──────────────────────────────────────────────────────────╮ # ╭──────────────────────────────────────────────────────────╮
# │ Plugins related configurations │ # │ Plugins related configurations │
@@ -103,6 +123,9 @@ set -g @suspend_key 'F12'
set -g @tmux_window_name_max_name_len "30" set -g @tmux_window_name_max_name_len "30"
### Replace $HOME with ~ in window names ### Replace $HOME with ~ in window names
set -g @tmux_window_name_use_tilde "True" set -g @tmux_window_name_use_tilde "True"
set -g @tmux_window_name_shells "['bash', 'fish', 'sh', 'zsh']"
set -g @tmux_window_dir_programs "['nvim', 'vim', 'vi', 'git']"
set -g @tmux_window_name_ignored_programs "['sqlite3']" # Default is []
## https://github.com/tmux-plugins/tmux-continuum ## https://github.com/tmux-plugins/tmux-continuum
set -g @continuum-restore 'on' set -g @continuum-restore 'on'
@@ -111,8 +134,11 @@ set -g @continuum-restore 'on'
set -g @resurrect-strategy-nvim 'session' set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-dir '$HOME/.local/state/tmux/tmux-resurrect' set -g @resurrect-dir '$HOME/.local/state/tmux/tmux-resurrect'
# Modified from tokyonight_storm to include tmux_mode_indicator ## https://github.com/MunifTanjim/tmux-mode-indicator
set -g status-right "#[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#1f2335] #{prefix_highlight} #[fg=#3b4261,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261] %Y-%m-%d  %H:%M #[fg=#7aa2f7,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#1d202f,bg=#7aa2f7,bold] #h #{tmux_mode_indicator}" set -g @mode_indicator_prefix_mode_style 'bg=default,fg=#7aa2f7'
set -g @mode_indicator_copy_mode_style 'bg=default,fg=yellow'
set -g @mode_indicator_empty_mode_style 'bg=default,fg=#7aa2f7'
set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
# ╭──────────────────────────────────────────────────────────╮ # ╭──────────────────────────────────────────────────────────╮
# │ Plugins │ # │ Plugins │

View File

@@ -1,38 +0,0 @@
#!/usr/bin/env bash
# TokyoNight colors for Tmux
set -g mode-style "fg=#7aa2f7,bg=#3b4261"
set -g message-style "fg=#7aa2f7,bg=#3b4261"
set -g message-command-style "fg=#7aa2f7,bg=#3b4261"
set -g pane-border-style "fg=#3b4261"
set -g pane-active-border-style "fg=#7aa2f7"
set -g status "on"
set -g status-justify "left"
set -g status-style "fg=#7aa2f7,bg=#1f2335"
set -g status-left-length "100"
set -g status-right-length "100"
set -g status-left-style NONE
set -g status-right-style NONE
set -g status-left "#[fg=#1d202f,bg=#7aa2f7,bold] #S #[fg=#7aa2f7,bg=#1f2335,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#1f2335] #{prefix_highlight} #[fg=#3b4261,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261] %Y-%m-%d  %I:%M %p #[fg=#7aa2f7,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#1d202f,bg=#7aa2f7,bold] #h "
if-shell '[ "$(tmux show-option -gqv "clock-mode-style")" == "24" ]' {
set -g status-right "#[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#1f2335] #{prefix_highlight} #[fg=#3b4261,bg=#1f2335,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261] %Y-%m-%d  %H:%M #[fg=#7aa2f7,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#1d202f,bg=#7aa2f7,bold] #h "
}
setw -g window-status-activity-style "underscore,fg=#a9b1d6,bg=#1f2335"
setw -g window-status-separator ""
setw -g window-status-style "NONE,fg=#a9b1d6,bg=#1f2335"
setw -g window-status-format "#[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]#[default] #I  #W #F #[fg=#1f2335,bg=#1f2335,nobold,nounderscore,noitalics]"
setw -g window-status-current-format "#[fg=#1f2335,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261,bold] #I  #W #F #[fg=#3b4261,bg=#1f2335,nobold,nounderscore,noitalics]"
# tmux-plugins/tmux-prefix-highlight support
set -g @prefix_highlight_output_prefix "#[fg=#e0af68]#[bg=#1f2335]#[fg=#1f2335]#[bg=#e0af68]"
set -g @prefix_highlight_output_suffix ""

View File

@@ -3,296 +3,80 @@
Leader: `<ctrl><space>` Leader: `<ctrl><space>`
``` ```
bind-key -T copy-mode C-Space send-keys -X begin-selection C-o Rotate through the panes
bind-key -T copy-mode C-a send-keys -X start-of-line C-z Suspend the current client
bind-key -T copy-mode C-b send-keys -X cursor-left Space Select next layout
bind-key -T copy-mode C-c send-keys -X cancel # List all paste buffers
bind-key -T copy-mode C-e send-keys -X end-of-line $ Rename current session
bind-key -T copy-mode C-f send-keys -X cursor-right % Split window horizontally
bind-key -T copy-mode C-g send-keys -X clear-selection & Kill current window
bind-key -T copy-mode C-k send-keys -X copy-pipe-end-of-line-and-cancel ' Prompt for window index to select
bind-key -T copy-mode C-n send-keys -X cursor-down ( Switch to previous client
bind-key -T copy-mode C-p send-keys -X cursor-up ) Switch to next client
bind-key -T copy-mode C-r command-prompt -i -I "#{pane_search_string}" -T search -p "(search up)" { send-keys -X search-backward-incremental "%%" } , Rename current window
bind-key -T copy-mode C-s command-prompt -i -I "#{pane_search_string}" -T search -p "(search down)" { send-keys -X search-forward-incremental "%%" } - Delete the most recent paste buffer
bind-key -T copy-mode C-v send-keys -X page-down . Move the current window
bind-key -T copy-mode C-w send-keys -X copy-pipe-and-cancel / Describe key binding
bind-key -T copy-mode Escape send-keys -X cancel 0 Select window 0
bind-key -T copy-mode Space send-keys -X page-down 1 Select window 1
bind-key -T copy-mode ! send-keys -X copy-pipe-and-cancel "tr -d ' 2 Select window 2
' | pbcopy" 3 Select window 3
bind-key -T copy-mode , send-keys -X jump-reverse 4 Select window 4
bind-key -T copy-mode \; send-keys -X jump-again 5 Select window 5
bind-key -T copy-mode F command-prompt -1 -p "(jump backward)" { send-keys -X jump-backward "%%" } 6 Select window 6
bind-key -T copy-mode N send-keys -X search-reverse 7 Select window 7
bind-key -T copy-mode P send-keys -X toggle-position 8 Select window 8
bind-key -T copy-mode R send-keys -X rectangle-toggle 9 Select window 9
bind-key -T copy-mode T command-prompt -1 -p "(jump to backward)" { send-keys -X jump-to-backward "%%" } : Prompt for a command
bind-key -T copy-mode X send-keys -X set-mark ; Move to the previously active pane
bind-key -T copy-mode Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer" = Choose a paste buffer from a list
bind-key -T copy-mode f command-prompt -1 -p "(jump forward)" { send-keys -X jump-forward "%%" } ? List key bindings
bind-key -T copy-mode g command-prompt -p "(goto line)" { send-keys -X goto-line "%%" } D Choose a client from a list
bind-key -T copy-mode n send-keys -X search-again E Spread panes out evenly
bind-key -T copy-mode q send-keys -X cancel L Switch to the last client
bind-key -T copy-mode r send-keys -X refresh-from-pane M Clear the marked pane
bind-key -T copy-mode t command-prompt -1 -p "(jump to forward)" { send-keys -X jump-to-forward "%%" } ] Paste the most recent paste buffer
bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel pbcopy c Create a new window
bind-key -T copy-mode MouseDown1Pane select-pane d Detach the current client
bind-key -T copy-mode MouseDrag1Pane select-pane \; send-keys -X begin-selection f Search for a pane
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel i Display window information
bind-key -T copy-mode WheelUpPane select-pane \; send-keys -X -N 5 scroll-up m Toggle the marked pane
bind-key -T copy-mode WheelDownPane select-pane \; send-keys -X -N 5 scroll-down n Select the next window
bind-key -T copy-mode DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel o Select the next pane
bind-key -T copy-mode TripleClick1Pane select-pane \; send-keys -X select-line \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel q Display pane numbers
bind-key -T copy-mode Home send-keys -X start-of-line s Choose a session from a list
bind-key -T copy-mode End send-keys -X end-of-line t Show a clock
bind-key -T copy-mode NPage send-keys -X page-down w Choose a window from a list
bind-key -T copy-mode PPage send-keys -X page-up x Kill the active pane
bind-key -T copy-mode Up send-keys -X cursor-up z Zoom the active pane
bind-key -T copy-mode Down send-keys -X cursor-down { Swap the active pane with the pane above
bind-key -T copy-mode Left send-keys -X cursor-left } Swap the active pane with the pane below
bind-key -T copy-mode Right send-keys -X cursor-right ~ Show messages
bind-key -T copy-mode M-C-b send-keys -X previous-matching-bracket DC Reset so the visible part of the window follows the cursor
bind-key -T copy-mode M-C-f send-keys -X next-matching-bracket PPage Enter copy mode and scroll up
bind-key -T copy-mode M-1 command-prompt -N -I 1 -p (repeat) { send-keys -N "%%" } Up Select the pane above the active pane
bind-key -T copy-mode M-2 command-prompt -N -I 2 -p (repeat) { send-keys -N "%%" } Down Select the pane below the active pane
bind-key -T copy-mode M-3 command-prompt -N -I 3 -p (repeat) { send-keys -N "%%" } Left Select the pane to the left of the active pane
bind-key -T copy-mode M-4 command-prompt -N -I 4 -p (repeat) { send-keys -N "%%" } Right Select the pane to the right of the active pane
bind-key -T copy-mode M-5 command-prompt -N -I 5 -p (repeat) { send-keys -N "%%" } M-1 Set the even-horizontal layout
bind-key -T copy-mode M-6 command-prompt -N -I 6 -p (repeat) { send-keys -N "%%" } M-2 Set the even-vertical layout
bind-key -T copy-mode M-7 command-prompt -N -I 7 -p (repeat) { send-keys -N "%%" } M-3 Set the main-horizontal layout
bind-key -T copy-mode M-8 command-prompt -N -I 8 -p (repeat) { send-keys -N "%%" } M-4 Set the main-vertical layout
bind-key -T copy-mode M-9 command-prompt -N -I 9 -p (repeat) { send-keys -N "%%" } M-5 Select the tiled layout
bind-key -T copy-mode M-< send-keys -X history-top M-n Select the next window with an alert
bind-key -T copy-mode M-> send-keys -X history-bottom M-o Rotate through the panes in reverse
bind-key -T copy-mode M-R send-keys -X top-line M-p Select the previous window with an alert
bind-key -T copy-mode M-b send-keys -X previous-word M-Up Resize the pane up by 5
bind-key -T copy-mode M-f send-keys -X next-word-end M-Down Resize the pane down by 5
bind-key -T copy-mode M-m send-keys -X back-to-indentation M-Left Resize the pane left by 5
bind-key -T copy-mode M-r send-keys -X middle-line M-Right Resize the pane right by 5
bind-key -T copy-mode M-v send-keys -X page-up C-Up Resize the pane up
bind-key -T copy-mode M-w send-keys -X copy-pipe-and-cancel C-Down Resize the pane down
bind-key -T copy-mode M-x send-keys -X jump-to-mark C-Left Resize the pane left
bind-key -T copy-mode M-y send-keys -X copy-pipe-and-cancel "pbcopy; tmux paste-buffer" C-Right Resize the pane right
bind-key -T copy-mode "M-{" send-keys -X previous-paragraph S-Up Move the visible part of the window up
bind-key -T copy-mode "M-}" send-keys -X next-paragraph S-Down Move the visible part of the window down
bind-key -T copy-mode M-Up send-keys -X halfpage-up S-Left Move the visible part of the window left
bind-key -T copy-mode M-Down send-keys -X halfpage-down S-Right Move the visible part of the window right
bind-key -T copy-mode C-Up send-keys -X scroll-up
bind-key -T copy-mode C-Down send-keys -X scroll-down
bind-key -T copy-mode-vi C-b send-keys -X page-up
bind-key -T copy-mode-vi C-c send-keys -X cancel
bind-key -T copy-mode-vi C-d send-keys -X halfpage-down
bind-key -T copy-mode-vi C-e send-keys -X scroll-down
bind-key -T copy-mode-vi C-f send-keys -X page-down
bind-key -T copy-mode-vi C-h send-keys -X cursor-left
bind-key -T copy-mode-vi C-j send-keys -X copy-pipe-and-cancel
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel
bind-key -T copy-mode-vi C-u send-keys -X halfpage-up
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi C-y send-keys -X scroll-up
bind-key -T copy-mode-vi Escape send-keys -X clear-selection
bind-key -T copy-mode-vi Space send-keys -X begin-selection
bind-key -T copy-mode-vi ! send-keys -X copy-pipe-and-cancel "tr -d '
' | pbcopy"
bind-key -T copy-mode-vi \# send-keys -FX search-backward "#{copy_cursor_word}"
bind-key -T copy-mode-vi \$ send-keys -X end-of-line
bind-key -T copy-mode-vi \% send-keys -X next-matching-bracket
bind-key -T copy-mode-vi * send-keys -FX search-forward "#{copy_cursor_word}"
bind-key -T copy-mode-vi , send-keys -X jump-reverse
bind-key -T copy-mode-vi / command-prompt -T search -p "(search down)" { send-keys -X search-forward "%%" }
bind-key -T copy-mode-vi 0 send-keys -X start-of-line
bind-key -T copy-mode-vi 1 command-prompt -N -I 1 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 2 command-prompt -N -I 2 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 3 command-prompt -N -I 3 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 4 command-prompt -N -I 4 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 5 command-prompt -N -I 5 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 6 command-prompt -N -I 6 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 7 command-prompt -N -I 7 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 8 command-prompt -N -I 8 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi 9 command-prompt -N -I 9 -p (repeat) { send-keys -N "%%" }
bind-key -T copy-mode-vi : command-prompt -p "(goto line)" { send-keys -X goto-line "%%" }
bind-key -T copy-mode-vi \; send-keys -X jump-again
bind-key -T copy-mode-vi ? command-prompt -T search -p "(search up)" { send-keys -X search-backward "%%" }
bind-key -T copy-mode-vi A send-keys -X append-selection-and-cancel
bind-key -T copy-mode-vi B send-keys -X previous-space
bind-key -T copy-mode-vi D send-keys -X copy-pipe-end-of-line-and-cancel
bind-key -T copy-mode-vi E send-keys -X next-space-end
bind-key -T copy-mode-vi F command-prompt -1 -p "(jump backward)" { send-keys -X jump-backward "%%" }
bind-key -T copy-mode-vi G send-keys -X history-bottom
bind-key -T copy-mode-vi H send-keys -X top-line
bind-key -T copy-mode-vi J send-keys -X scroll-down
bind-key -T copy-mode-vi K send-keys -X scroll-up
bind-key -T copy-mode-vi L send-keys -X bottom-line
bind-key -T copy-mode-vi M send-keys -X middle-line
bind-key -T copy-mode-vi N send-keys -X search-reverse
bind-key -T copy-mode-vi P send-keys -X toggle-position
bind-key -T copy-mode-vi T command-prompt -1 -p "(jump to backward)" { send-keys -X jump-to-backward "%%" }
bind-key -T copy-mode-vi V send-keys -X select-line
bind-key -T copy-mode-vi W send-keys -X next-space
bind-key -T copy-mode-vi X send-keys -X set-mark
bind-key -T copy-mode-vi Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer"
bind-key -T copy-mode-vi ^ send-keys -X back-to-indentation
bind-key -T copy-mode-vi b send-keys -X previous-word
bind-key -T copy-mode-vi e send-keys -X next-word-end
bind-key -T copy-mode-vi f command-prompt -1 -p "(jump forward)" { send-keys -X jump-forward "%%" }
bind-key -T copy-mode-vi g send-keys -X history-top
bind-key -T copy-mode-vi h send-keys -X cursor-left
bind-key -T copy-mode-vi j send-keys -X cursor-down
bind-key -T copy-mode-vi k send-keys -X cursor-up
bind-key -T copy-mode-vi l send-keys -X cursor-right
bind-key -T copy-mode-vi n send-keys -X search-again
bind-key -T copy-mode-vi o send-keys -X other-end
bind-key -T copy-mode-vi q send-keys -X cancel
bind-key -T copy-mode-vi r send-keys -X refresh-from-pane
bind-key -T copy-mode-vi t command-prompt -1 -p "(jump to forward)" { send-keys -X jump-to-forward "%%" }
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi w send-keys -X next-word
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel pbcopy
bind-key -T copy-mode-vi \{ send-keys -X previous-paragraph
bind-key -T copy-mode-vi \} send-keys -X next-paragraph
bind-key -T copy-mode-vi MouseDown1Pane select-pane
bind-key -T copy-mode-vi MouseDrag1Pane select-pane \; send-keys -X begin-selection
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel
bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 5 scroll-up
bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 5 scroll-down
bind-key -T copy-mode-vi DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel
bind-key -T copy-mode-vi TripleClick1Pane select-pane \; send-keys -X select-line \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel
bind-key -T copy-mode-vi BSpace send-keys -X cursor-left
bind-key -T copy-mode-vi NPage send-keys -X page-down
bind-key -T copy-mode-vi PPage send-keys -X page-up
bind-key -T copy-mode-vi Up send-keys -X cursor-up
bind-key -T copy-mode-vi Down send-keys -X cursor-down
bind-key -T copy-mode-vi Left send-keys -X cursor-left
bind-key -T copy-mode-vi Right send-keys -X cursor-right
bind-key -T copy-mode-vi M-x send-keys -X jump-to-mark
bind-key -T copy-mode-vi M-y send-keys -X copy-pipe-and-cancel "pbcopy; tmux paste-buffer"
bind-key -T copy-mode-vi C-Up send-keys -X scroll-up
bind-key -T copy-mode-vi C-Down send-keys -X scroll-down
bind-key -T prefix C-Space send-prefix
bind-key -T prefix C-n next-window
bind-key -T prefix C-o rotate-window
bind-key -T prefix C-p previous-window
bind-key -T prefix C-r run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/scripts/restore.sh
bind-key -T prefix C-s run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/scripts/save.sh
bind-key -T prefix C-z suspend-client
bind-key -T prefix Escape copy-mode
bind-key -T prefix Space next-layout
bind-key -T prefix ! split-window -h -c "#{pane_current_path}"
bind-key -T prefix \" split-window -v -c "#{pane_current_path}"
bind-key -T prefix \# list-buffers
bind-key -T prefix \$ command-prompt -I "#S" { rename-session "%%" }
bind-key -T prefix \% split-window -h
bind-key -T prefix & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key -T prefix \' command-prompt -T window-target -p index { select-window -t ":%%" }
bind-key -T prefix ( switch-client -p
bind-key -T prefix ) switch-client -n
bind-key -T prefix , command-prompt -I "#W" { rename-window "%%" }
bind-key -T prefix - delete-buffer
bind-key -T prefix . command-prompt -T target { move-window -t "%%" }
bind-key -T prefix / command-prompt -k -p key { list-keys -1N "%%" }
bind-key -T prefix 0 select-window -t :=0
bind-key -T prefix 1 select-window -t :=1
bind-key -T prefix 2 select-window -t :=2
bind-key -T prefix 3 select-window -t :=3
bind-key -T prefix 4 select-window -t :=4
bind-key -T prefix 5 select-window -t :=5
bind-key -T prefix 6 select-window -t :=6
bind-key -T prefix 7 select-window -t :=7
bind-key -T prefix 8 select-window -t :=8
bind-key -T prefix 9 select-window -t :=9
bind-key -T prefix : command-prompt
bind-key -T prefix \; last-pane
bind-key -T prefix < display-menu -T "#[align=centre]#{window_index}:#{window_name}" -x W -y W "#{?#{>:#{session_windows},1},,-}Swap Left" l { swap-window -t :-1 } "#{?#{>:#{session_windows},1},,-}Swap Right" r { swap-window -t :+1 } "#{?pane_marked_set,,-}Swap Marked" s { swap-window } '' Kill X { kill-window } Respawn R { respawn-window -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } Rename n { command-prompt -F -I "#W" { rename-window -t "#{window_id}" "%%" } } '' "New After" w { new-window -a } "New At End" W { new-window }
bind-key -T prefix = choose-buffer -Z
bind-key -T prefix > display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z }
bind-key -T prefix ? list-keys -N
bind-key -T prefix @ run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/promote_pane.sh '#{session_name}' '#{pane_id}' '#{pane_current_path}'"
bind-key -T prefix C run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/new_session_prompt.sh
bind-key -T prefix D choose-client -Z
bind-key -T prefix E select-layout -E
bind-key -T prefix I run-shell $HOME/.dotfiles/config/tmux/plugins/tpm/bindings/install_plugins
bind-key -T prefix L switch-client -l
bind-key -T prefix M select-pane -M
bind-key -T prefix N new-window
bind-key -T prefix R run-shell " \
tmux source-file ~/.tmux.conf > /dev/null; \
tmux display-message \"Sourced .tmux.conf!\""
bind-key -T prefix S switch-client -l
bind-key -T prefix U run-shell $HOME/.dotfiles/config/tmux/plugins/tpm/bindings/update_plugins
bind-key -T prefix X run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/kill_session_prompt.sh '#{session_name}' '#{session_id}'"
bind-key -T prefix Y run-shell -b $HOME/.dotfiles/config/tmux/plugins/tmux-yank/scripts/copy_pane_pwd.sh
bind-key -T prefix ] paste-buffer -p
bind-key -T prefix c new-window
bind-key -T prefix d detach-client
bind-key -T prefix f command-prompt { find-window -Z "%%" }
bind-key -T prefix g run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/goto_session.sh
bind-key -T prefix h select-pane -L
bind-key -T prefix i display-message
bind-key -T prefix j select-pane -D
bind-key -T prefix k select-pane -U
bind-key -T prefix l select-pane -R
bind-key -T prefix m run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-menus/items/main.sh
bind-key -T prefix n next-window
bind-key -T prefix o select-pane -t :.+
bind-key -T prefix p paste-buffer
bind-key -T prefix q display-panes
bind-key -T prefix r source-file $HOME/.dotfiles/config/tmux/tmux.conf \; display-message "tmux cfg reloaded!"
bind-key -T prefix s choose-tree -Zs
bind-key -T prefix t clock-mode
bind-key -T prefix w choose-tree -Zw
bind-key -T prefix x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key -T prefix y run-shell -b $HOME/.dotfiles/config/tmux/plugins/tmux-yank/scripts/copy_line.sh
bind-key -T prefix z resize-pane -Z
bind-key -T prefix \{ swap-pane -U
bind-key -T prefix \} swap-pane -D
bind-key -T prefix \~ show-messages
bind-key -r -T prefix DC refresh-client -c
bind-key -T prefix PPage copy-mode -u
bind-key -r -T prefix Up select-pane -U
bind-key -r -T prefix Down select-pane -D
bind-key -r -T prefix Left select-pane -L
bind-key -r -T prefix Right select-pane -R
bind-key -T prefix M-1 select-layout even-horizontal
bind-key -T prefix M-2 select-layout even-vertical
bind-key -T prefix M-3 select-layout main-horizontal
bind-key -T prefix M-4 select-layout main-vertical
bind-key -T prefix M-5 select-layout tiled
bind-key -T prefix M-c attach-session -c "#{pane_current_path}"
bind-key -T prefix M-n next-window -a
bind-key -T prefix M-o rotate-window -D
bind-key -T prefix M-p previous-window -a
bind-key -T prefix M-u run-shell $HOME/.dotfiles/config/tmux/plugins/tpm/bindings/clean_plugins
bind-key -r -T prefix M-Up resize-pane -U 5
bind-key -r -T prefix M-Down resize-pane -D 5
bind-key -r -T prefix M-Left resize-pane -L 5
bind-key -r -T prefix M-Right resize-pane -R 5
bind-key -r -T prefix C-Up resize-pane -U
bind-key -r -T prefix C-Down resize-pane -D
bind-key -r -T prefix C-Left resize-pane -L
bind-key -r -T prefix C-Right resize-pane -R
bind-key -r -T prefix S-Up refresh-client -U 10
bind-key -r -T prefix S-Down refresh-client -D 10
bind-key -r -T prefix S-Left refresh-client -L 10
bind-key -r -T prefix S-Right refresh-client -R 10
bind-key -T root MouseDown1Pane select-pane -t = \; send-keys -M
bind-key -T root MouseDown1Status select-window -t =
bind-key -T root MouseDown2Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { paste-buffer -p }
bind-key -T root MouseDown3Pane if-shell -F -t = "#{||:#{mouse_any_flag},#{&&:#{pane_in_mode},#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}}}" { select-pane -t = ; send-keys -M } { display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -t = -x M -y M "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z } }
bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y W "#{?#{>:#{session_windows},1},,-}Swap Left" l { swap-window -t :-1 } "#{?#{>:#{session_windows},1},,-}Swap Right" r { swap-window -t :+1 } "#{?pane_marked_set,,-}Swap Marked" s { swap-window } '' Kill X { kill-window } Respawn R { respawn-window -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } Rename n { command-prompt -F -I "#W" { rename-window -t "#{window_id}" "%%" } } '' "New After" w { new-window -a } "New At End" W { new-window }
bind-key -T root MouseDown3StatusLeft display-menu -T "#[align=centre]#{session_name}" -t = -x M -y W Next n { switch-client -n } Previous p { switch-client -p } '' Renumber N { move-window -r } Rename n { command-prompt -I "#S" { rename-session "%%" } } '' "New Session" s { new-session } "New Window" w { new-window }
bind-key -T root MouseDrag1Pane if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -M }
bind-key -T root MouseDrag1Border resize-pane -M
bind-key -T root WheelUpPane if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -e }
bind-key -T root WheelUpStatus previous-window
bind-key -T root WheelDownStatus next-window
bind-key -T root DoubleClick1Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -H ; send-keys -X select-word ; run-shell -d 0.3 ; send-keys -X copy-pipe-and-cancel }
bind-key -T root TripleClick1Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -H ; send-keys -X select-line ; run-shell -d 0.3 ; send-keys -X copy-pipe-and-cancel }
bind-key -T root M-MouseDown3Pane display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -t = -x M -y M "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z }
bind-key -T root M-Up select-pane -U
bind-key -T root M-Down select-pane -D
bind-key -T root M-Left select-pane -L
bind-key -T root M-Right select-pane -R
bind-key -T root C-Tab previous-window
bind-key -T root C-S-Tab next-window
``` ```

View File

@@ -25,9 +25,9 @@ git submodule update --init --recursive "${DOTBOT_DIR}"
if [ "${DOTBOT_HOST}" != "" ]; then if [ "${DOTBOT_HOST}" != "" ]; then
DOTBOT_HOST_CONFIG="${BASEDIR}/hosts/${DOTBOT_HOST}/${CONFIG}" DOTBOT_HOST_CONFIG="${BASEDIR}/hosts/${DOTBOT_HOST}/${CONFIG}"
echo "-> Trying if host config can be found: ${DOTBOT_HOST_CONFIG}" echo "-> Trying if host config can be found: ${DOTBOT_HOST_CONFIG}"
[ -r "$DOTBOT_HOST_CONFIG" ] && [ -f "$DOTBOT_HOST_CONFIG" ] && [ -r "$DOTBOT_HOST_CONFIG" ] && [ -f "$DOTBOT_HOST_CONFIG" ] \
echo "(!) Found $DOTBOT_HOST_CONFIG" && && echo "(!) Found $DOTBOT_HOST_CONFIG" \
"$DOTBOT_BIN_PATH" \ && "$DOTBOT_BIN_PATH" \
-d "$BASEDIR" \ -d "$BASEDIR" \
--plugin-dir=tools/dotbot-brew \ --plugin-dir=tools/dotbot-brew \
--plugin-dir=tools/dotbot-include \ --plugin-dir=tools/dotbot-include \

View File

@@ -42,6 +42,7 @@ function section_install
"macos:Setup nice macOS defaults" "macos:Setup nice macOS defaults"
"neofetch:Install neofetch" "neofetch:Install neofetch"
"nvm:Install Node Version Manager (nvm)" "nvm:Install Node Version Manager (nvm)"
"nvm-latest:Install latest lts node using nvm"
"npm:Install NPM Packages" "npm:Install NPM Packages"
"ntfy:Install ntfy" "ntfy:Install ntfy"
"ohmybash:Install oh-my-bash" "ohmybash:Install oh-my-bash"
@@ -150,11 +151,19 @@ function section_install
;; ;;
nvm) nvm)
msg "Installing nvm..." msg "Installing nvm..."
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash \ curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash
&& nvm install --lts --latest-npm --default $0 install nvm-latest
git checkout "$DOTFILES/base/zshrc"
msg_yay "nvm installed!" msg_yay "nvm installed!"
;; ;;
nvm-latest)
msg "Installing latest lts node..."
if [ -n "$NVM_DIR" ]; then
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
fi
nvm install --lts --latest-npm --default
git checkout "$DOTFILES/base/*"
msg_yay "latest lts node installed!"
;;
npm) npm)
msg "NPM Packages install started..." msg "NPM Packages install started..."
bash "$DOTFILES/scripts/install-npm-packages.sh" \ bash "$DOTFILES/scripts/install-npm-packages.sh" \
@@ -194,7 +203,7 @@ function section_brew
"autoupdate:Setups brew auto-update and runs it immediately" "autoupdate:Setups brew auto-update and runs it immediately"
) )
have brew && { x-have brew && {
case "$1" in case "$1" in
install) install)
brew bundle install --file="$BREWFILE" --force --quiet && msg_yay "Done!" brew bundle install --file="$BREWFILE" --force --quiet && msg_yay "Done!"
@@ -220,7 +229,7 @@ function section_brew
esac esac
} }
! have brew && menu_section "$USAGE_PREFIX" "brew not available on this system" ! x-have brew && menu_section "$USAGE_PREFIX" "brew not available on this system"
} }
function section_helpers function section_helpers
@@ -285,14 +294,14 @@ function section_dotfiles
msg_ok "Deleted old nvim files (share, state and cache + config)" msg_ok "Deleted old nvim files (share, state and cache + config)"
ln -s "$DOTFILES/config/nvim" ~/.config/nvim ln -s "$DOTFILES/config/nvim" ~/.config/nvim
msg_ok "Linked nvim and astronvim" msg_ok "Linked nvim and astronvim"
have npm && $0 install npm x-have npm && $0 install npm
msg_ok "Installed packages" msg_ok "Installed packages"
msg_done "nvim reset!" msg_done "nvim reset!"
;; ;;
yamlfmt) yamlfmt)
# format yaml files # format yaml files
have yamlfmt && yamlfmt -conf "$DOTFILES/.yamlfmt" x-have yamlfmt && yamlfmt -conf "$DOTFILES/.yamlfmt"
! have yamlfmt && msg_err "yamlfmt not found" ! x-have yamlfmt && msg_err "yamlfmt not found"
;; ;;
shfmt) shfmt)
# Format shell scripts according to following rules. # Format shell scripts according to following rules.

23
local/bin/git-fsck-dirs Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# FSCK subfolders git projects.
#
# Actions taken: git fsck --no-dangling --full
#
# Copyright 2023 Ismo Vuorinen. All Rights Reserved.
# License: MIT <https://opensource.org/license/mit/>
STARTING_PATH=${1:-$(pwd)}
DIRS=$(find "$STARTING_PATH" -mindepth 1 -maxdepth 1 -type d)
for DIR in $DIRS; do
echo "-> Processing dir: $DIR"
cd "$DIR" || exit 1
if [ -d "$DIR/.git" ]; then
git fsck --no-dangling --full --no-progress
echo ""
fi
done
echo ""
echo "Done."

View File

@@ -1,4 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#
# Backup a folder with a timestamp
# Usage: x-backup-folder folder_to_backup [filename]
# If filename is not provided, folder_to_backup will be used
# Example: x-backup-folder ~/Documents/MyFolder
#
# Copyright (c) 2022 Ismo Vuorinen. All Rights Reserved.
# Licensed under the MIT license.
DIRECTORY=$1 DIRECTORY=$1
FILENAME=$2 FILENAME=$2

View File

@@ -2,7 +2,7 @@
# #
# Backup local MySQL Database tables with certain prefix. # Backup local MySQL Database tables with certain prefix.
# Ismo Vuorinen <https://github.com/ivuorinen> 2018 # Ismo Vuorinen <https://github.com/ivuorinen> 2018
# # License: MIT
SCRIPT=$(basename "$0") SCRIPT=$(basename "$0")
PREFIX=$1 PREFIX=$1

View File

@@ -4,17 +4,16 @@
# Updates $HOME/.dotfiles/docs/tmux.md with my keybindings. # Updates $HOME/.dotfiles/docs/tmux.md with my keybindings.
# shellcheck source=./../../scripts/shared.sh # shellcheck source=./../../scripts/shared.sh
DOTFILES_SHARED_LOADED=""
source "$HOME/.dotfiles/scripts/shared.sh" source "$HOME/.dotfiles/scripts/shared.sh"
have tmux || { x-have tmux || {
msg_err "tmux not found" && exit 0 msg_err "tmux not found" && exit 0
} }
TMUX_KEYBINDINGS_DOCS="$DOTFILES/docs/tmux-keybindings.md" TMUX_KEYBINDINGS_DOCS="$DOTFILES/docs/tmux-keybindings.md"
CB="\n\`\`\`\n" CB="\n\`\`\`\n"
KB=$(tmux list-keys) KB=$(tmux lsk -Tprefix -N | sed -e 's/^/ /;')
H="# tmux keybindings\n" H="# tmux keybindings\n"
L="\nLeader: \`<ctrl><space>\`\n" L="\nLeader: \`<ctrl><space>\`\n"

View File

@@ -3,7 +3,7 @@
which "$1" >&/dev/null which "$1" >&/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo 0 exit 0
else else
echo 1 exit 1
fi fi

View File

@@ -2,30 +2,76 @@
# Load our configuration files # Load our configuration files
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved. # Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
DOTFILES="$HOME/.dotfiles" set -euo pipefail
source "$HOME/.dotfiles/scripts/shared.sh"
# Set verbosity with VERBOSE=1 x-load-configs
VERBOSE="${VERBOSE:=0}"
[ "$VERBOSE" = "1" ] && {
set -x
}
CONFIG_PATH="$DOTFILES/config" CONFIG_PATH="$DOTFILES/config"
# Load the shell dotfiles, and then some: # Load the shell dotfiles, and then some:
function x-load-config-fn() HOST="$(hostname -s)"
{ [ "$VERBOSE" = "1" ] && {
for FILE in $CONFIG_PATH/{exports,alias,functions}; do echo "x-load-configs: VERBOSE=1"
FILENAME="$FILE" echo "x-load-configs: HOST: $HOST"
HOST="$(hostname -s)"
# global (exports|alias|functions) FILENAME for all hosts
# shellcheck source=../config/exports
[ -r "$FILENAME" ] && source "$FILENAME"
# global secret FILENAME, git ignored
# shellcheck source=../config/exports-secret
[ -r "$FILENAME-secret" ] && source "$FILENAME-secret"
# host specific (exports|alias|functions) FILENAME
# shellcheck source=../config/exports
[ -r "$FILENAME-$HOST" ] && source "$FILENAME-$HOST"
# host specific (exports|alias|functions) FILENAME, git ignored
# shellcheck source=../config/exports
[ -r "$FILENAME-$HOST-secret" ] && source "$FILENAME-$HOST-secret"
done
} }
x-load-config-fn configFile()
{
echo "$CONFIG_PATH/$1"
}
configMsg()
{
printf 'x-load-configs: %s %s\n' "$1" "$2"
}
loadConfigFiles()
{
CONFIG_FILE=$1
SECRET_FILE=$CONFIG_FILE-secret
HOST_FILE=$CONFIG_FILE-$HOST
SECRET_HOST=$HOST_FILE-secret
[ "$VERBOSE" = "1" ] && configMsg "?" "$CONFIG_FILE"
# global (exports|alias|functions) FILENAME for all hosts
# shellcheck source=../config/exports
[ -r "$CONFIG_FILE" ] && {
source "$CONFIG_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$CONFIG_FILE"
}
# global secret FILENAME, git ignored
# shellcheck source=../config/exports-secret
[ "$VERBOSE" = "1" ] && configMsg "?" "$SECRET_FILE"
[ -r "$SECRET_FILE" ] && {
source "$SECRET_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$SECRET_FILE"
}
# host specific (exports|alias|functions) FILENAME
# shellcheck source=../config/exports
[ "$VERBOSE" = "1" ] && configMsg "?" "$HOST_FILE"
[ -r "$HOST_FILE" ] && {
source "$HOST_FILE" && [ "$VERBOSE" = "1" ] && configMsg "Found" "$HOST_FILE"
}
# host specific (exports|alias|functions) FILENAME, git ignored
# shellcheck source=../config/exports
[ "$VERBOSE" = "1" ] && configMsg "?" "$SECRET_HOST"
[ -r "$SECRET_HOST" ] && {
source "$SECRET_HOST" \
&& [ "$VERBOSE" = "1" ] && configMsg "Found" "$SECRET_HOST"
}
}
FILE_EXPORTS=$(configFile "exports")
FILE_FUNCTIONS=$(configFile "functions")
FILE_ALIAS=$(configFile "alias")
loadConfigFiles "$FILE_EXPORTS"
loadConfigFiles "$FILE_FUNCTIONS"
loadConfigFiles "$FILE_ALIAS"
exit 0

4
local/bin/x-mkd Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
# Create a directory and cd into it
mkdir -p "$@" && cd "$@" || exit

7
local/bin/x-path-append Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#
# Add a directory to the beginning of the PATH if it's not already there.
# Usage: x-path-append <dir>
x-path-remove "$1"
export PATH="${PATH:+"$PATH:"}$1"

6
local/bin/x-path-prepend Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#
# Add a directory to the front of the PATH if it exists and is not already there
# Usage: x-path-prepend <dir>
export PATH="$1${PATH:+":$PATH"}"

6
local/bin/x-path-remove Executable file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#
# Remove a directory from the PATH
# Usage: x-path-remove <dir>
export PATH=$(echo -n "$PATH" | awk -v RS=: -v ORS=: "\$0 != \"$1\"" | sed 's/:$//')

50
local/bin/x-set-php-aliases Executable file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# Check which php versions are installed with brew, and create aliases for each installation.
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
set -euo pipefail
# Set verbosity with VERBOSE=1 x-load-configs
VERBOSE="${VERBOSE:=0}"
[ "$VERBOSE" = "2" ] && {
set -x
}
! x-have brew && {
exit 0
}
# Get installed php versions from brew and setup aliases
php_versions=()
while IFS="" read -r line; do php_versions+=("$line"); done < <(bkt -- brew list | grep '^php')
php_error_reporting='-d error_reporting=22527'
for version in "${php_versions[@]}"; do
[ "$VERBOSE" = "1" ] && echo "Setting aliases for $version"
# drop the dot from version (8.0 -> 80)
php_abbr="${version//\./}"
# replace "php@" with "p" so "php@80" becomes "p80"
php_alias="${php_abbr//php@/p}"
# Fetch the exec path once
php_exec="$HOMEBREW_PREFIX/opt/$version/bin/php"
[ -f "$php_exec" ] && {
[ "$VERBOSE" = "1" ] && echo "-> php_exec $php_exec"
# Raw PHP without error_reporting flag.
# shellcheck disable=SC2139
alias "${php_alias}"r="$php_exec"
# PHP with error_reporting flag.
# shellcheck disable=SC2139,SC2140
alias "$php_alias"="$php_exec $php_error_reporting"
# Local PHP Server.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}s"="$php_exec -S localhost:9000"
# Use composer with specific PHP and error_reporting flag on.
# shellcheck disable=SC2139,SC2140
alias "${php_alias}c"="$php_exec $php_error_reporting $(which composer)"
}
done

View File

@@ -6,7 +6,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
msg "Starting to install rust/cargo packages" msg "Starting to install rust/cargo packages"
[[ $(x-have "cargo") == "1" ]] && { ! x-have cargo && {
msg "cargo could not be found. installing cargo with rustup.rs" msg "cargo could not be found. installing cargo with rustup.rs"
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path
} }
@@ -34,6 +34,7 @@ packages=(
"ripgrep" "ripgrep"
# A version manager for neovim # A version manager for neovim
"bob-nvim" "bob-nvim"
"bottom"
) )
for pkg in "${packages[@]}"; do for pkg in "${packages[@]}"; do
@@ -53,8 +54,8 @@ msg_done "Installed cargo packages!"
msg_run "Now doing the next steps for cargo packages" msg_run "Now doing the next steps for cargo packages"
# use bob to install nvim # use bob to install nvim
have bob && { x-have bob && {
bob use stable && path_append "$XDG_DATA_HOME/bob/nvim-bin" bob use stable && x-path-append "$XDG_DATA_HOME/bob/nvim-bin"
} }
msg_done "All next steps done!" msg_done "All next steps done!"

View File

@@ -5,7 +5,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
PBB_REQUIRED_TOOLS=(git cheat) PBB_REQUIRED_TOOLS=(git cheat)
for t in ${PBB_REQUIRED_TOOLS[@]}; do for t in ${PBB_REQUIRED_TOOLS[@]}; do
[[ $(x-have "$t") == "1" ]] && echo "(!) $t is missing, can't continue..." && exit 1 ! x-have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
done done
PBB_GIT="https://github.com/dylanaraps/pure-bash-bible.git" PBB_GIT="https://github.com/dylanaraps/pure-bash-bible.git"

View File

@@ -5,7 +5,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
TLDR_REQUIRED_TOOLS=(git cheat) TLDR_REQUIRED_TOOLS=(git cheat)
for t in ${TLDR_REQUIRED_TOOLS[@]}; do for t in ${TLDR_REQUIRED_TOOLS[@]}; do
[[ $(x-have "$t") == "1" ]] && echo "(!) $t is missing, can't continue..." && exit 1 ! x-have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
done done
TLDR_GIT="https://github.com/tldr-pages/tldr.git" TLDR_GIT="https://github.com/tldr-pages/tldr.git"

View File

@@ -4,7 +4,7 @@
# shellcheck source="shared.sh" # shellcheck source="shared.sh"
source "$HOME/.dotfiles/scripts/shared.sh" source "$HOME/.dotfiles/scripts/shared.sh"
[[ $(x-have "php") == "1" ]] && msg_err "PHP Not Available, cannot install composer" && exit 0 ! x-have "php" && msg_err "PHP Not Available, cannot install composer" && exit 0
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

View File

@@ -6,7 +6,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
msg_run "Installing gh (GitHub Client) extensions" msg_run "Installing gh (GitHub Client) extensions"
[[ $(x-have "gh") == "1" ]] \ ! x-have "gh" \
&& msg_err "gh (GitHub Client) could not be found, please install it first" \ && msg_err "gh (GitHub Client) could not be found, please install it first" \
&& exit 0 && exit 0

View File

@@ -8,7 +8,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
msg_run "Installing git-crypt" msg_run "Installing git-crypt"
[[ $(x-have "git-crypt") == "1" ]] && { x-have "git-crypt" || {
REPO_URL="https://github.com/AGWA/git-crypt.git" REPO_URL="https://github.com/AGWA/git-crypt.git"
CHECK_PATH="${XDG_BIN_HOME}/git-crypt" CHECK_PATH="${XDG_BIN_HOME}/git-crypt"

View File

@@ -6,7 +6,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
msg_run "Installing go packages" msg_run "Installing go packages"
[[ $(x-have "go") == "1" ]] && msg "go hasn't been installed yet." && exit 0 ! x-have "go" && msg "go hasn't been installed yet." && exit 0
packages=( packages=(
# A shell parser, formatter, and interpreter with bash support; includes shfmt # A shell parser, formatter, and interpreter with bash support; includes shfmt
@@ -44,7 +44,7 @@ done
msg_run "Installing completions for selected packages" msg_run "Installing completions for selected packages"
have git-profile && { x-have git-profile && {
git-profile completion zsh > "$ZSH_CUSTOM_COMPLETION_PATH/_git-profile" \ git-profile completion zsh > "$ZSH_CUSTOM_COMPLETION_PATH/_git-profile" \
&& msg_ok "Installed completions for git-profile" && msg_ok "Installed completions for git-profile"
} }

View File

@@ -11,7 +11,7 @@ NEOFETCH_URL="${NEOFETCH_REPO}/archive/refs/tags/${NEOFETCH_VERSION}.tar.gz"
NEOFETCH_TEMP="/tmp/neofetch" NEOFETCH_TEMP="/tmp/neofetch"
NEOFETCH_INSTALL_PREFIX="$HOME/.local" NEOFETCH_INSTALL_PREFIX="$HOME/.local"
[[ $(x-have "neofetch") == "1" ]] && { x-have "neofetch" || {
LC_ALL=C LC_ALL=C
mkdir -p "$NEOFETCH_TEMP" "$NEOFETCH_INSTALL_PREFIX" mkdir -p "$NEOFETCH_TEMP" "$NEOFETCH_INSTALL_PREFIX"

View File

@@ -6,7 +6,7 @@ source "$HOME/.dotfiles/scripts/shared.sh"
msg "Starting to install npm packages" msg "Starting to install npm packages"
[[ $(x-have "npm") == "1" ]] && msg_err "npm could not be found." && exit 0 ! x-have "npm" && msg_err "npm could not be found." && exit 0
packages=( packages=(
# This is a tool to check if your files consider your .editorconfig rules. # This is a tool to check if your files consider your .editorconfig rules.

View File

@@ -6,7 +6,7 @@
source "$HOME/.dotfiles/scripts/shared.sh" source "$HOME/.dotfiles/scripts/shared.sh"
set -e set -e
[[ $(x-have "ntfy") == "0" ]] && msg "ntfy already installed" && exit 0 x-have "ntfy" && msg "ntfy already installed" && exit 0
case $(dfm check arch) in case $(dfm check arch) in
Linux) Linux)

View File

@@ -6,14 +6,16 @@ source "$HOME/.dotfiles/scripts/shared.sh"
msg "Starting to install pip packages" msg "Starting to install pip packages"
[[ $(x-have "python3") == "1" ]] && { x-have "python3" || {
msg_err "Could not find python3, something really weird is going on." && exit 1 msg_err "Could not find python3, something really weird is going on." && exit 1
} }
msg_nested "Upgrading pip"
python3 -m pip install --user --upgrade pip
packages=( packages=(
"pipx" "pipx"
"libtmux" "libtmux"
"ensurepath"
) )
for pkg in "${packages[@]}"; do for pkg in "${packages[@]}"; do
@@ -23,7 +25,7 @@ for pkg in "${packages[@]}"; do
if [[ ${pkg:0:1} == "#" ]]; then continue; fi if [[ ${pkg:0:1} == "#" ]]; then continue; fi
msg_nested "Installing pip package: $pkg" msg_nested "Installing pip package: $pkg"
python3 -m pip install --user "$pkg" python3 -m pip install --user --upgrade "$pkg"
echo "" echo ""
done done

View File

@@ -6,7 +6,7 @@
[ "$(uname)" != "Darwin" ] && echo "Not a macOS system" && exit 0 [ "$(uname)" != "Darwin" ] && echo "Not a macOS system" && exit 0
! have xcode-select \ ! x-have xcode-select \
&& msg_err "xcode-select could not be found, skipping" \ && msg_err "xcode-select could not be found, skipping" \
&& exit 0 && exit 0

View File

@@ -31,44 +31,23 @@ export XDG_RUNTIME_DIR="$HOME/.local/run"
# usage: path_remove ~/.local/bin # usage: path_remove ~/.local/bin
function path_remove function path_remove
{ {
PATH=$(echo -n "$PATH" | awk -v RS=: -v ORS=: "\$0 != \"$1\"" | sed 's/:$//') x-path-remove "$1"
} }
# Append directory to the PATH # Append directory to the PATH
# usage: path_append ~/.local/bin # usage: path_append ~/.local/bin
function path_append function path_append
{ {
path_remove "$1" x-path-remove "$1"
PATH="${PATH:+"$PATH:"}$1" x-path-prepend "$1"
} }
# Prepend directory to the PATH # Prepend directory to the PATH
# usage: path_prepend ~/.local/bin # usage: path_prepend ~/.local/bin
function path_prepend function path_prepend
{ {
path_remove "$1" x-path-remove "$1"
PATH="$1${PATH:+":$PATH"}" x-path-prepend "$1"
}
# Create directory if it doesn't exist already
x-dc()
{
dir="$1"
[ $# -eq 0 ] && {
echo "Usage: $0 full/path/to/dir/to/create"
exit 1
}
if [ ! -d "$dir" ]; then
mkdir -p "$dir" && exit 0
fi
}
# Create a new directory and enter it
mkd()
{
mkdir -p "$@" && cd "$@" || exit
} }
# Run command silently # Run command silently
@@ -84,81 +63,6 @@ nonascii()
LC_ALL=C grep -n '[^[:print:][:space:]]' "${@}" LC_ALL=C grep -n '[^[:print:][:space:]]' "${@}"
} }
# Cache commands using bkt if installed
if command -v bkt >&/dev/null; then
bkt()
{
command bkt --cache-dir="$XDG_CACHE_HOME/bkt" "$@"
}
else
# If bkt isn't installed skip its arguments and just execute directly.
# Optionally write a msg to stderr suggesting users install bkt.
bkt()
{
while [[ "$1" == --* ]]; do shift; done
"$@"
}
fi
# shorthand for checking if the system has the bin in path,
# this version does not use caching
# usage: have_command php && php -v
function have_command
{
command -v "$1" >&/dev/null
}
# shorthand for checking if the system has the bin in path,
# this version uses caching
# usage: have php && php -v
function have
{
bkt -- which "$1" >&/dev/null
}
function brew_installed
{
bkt -- brew list
}
# shorthand for checking if brew package is installed
# usage: have_brew php && php -v
function have_brew
{
! have brew && return 125
if bkt -- brew list "$1" &> /dev/null; then
return 0
else
return 1
fi
}
CONFIG_PATH="$DOTFILES/config"
# Load the shell dotfiles, and then some:
function x-load-config-fn()
{
for FILE in $CONFIG_PATH/{exports,alias,functions}; do
FILENAME="$FILE"
HOST="$(hostname -s)"
# global (exports|alias|functions) FILENAME for all hosts
# shellcheck source=../config/exports
[ -r "$FILENAME" ] && source "$FILENAME"
# global secret FILENAME, git ignored
# shellcheck source=../config/exports-secret
[ -r "$FILENAME-secret" ] && source "$FILENAME-secret"
# host specific (exports|alias|functions) FILENAME
# shellcheck source=../config/exports
[ -r "$FILENAME-$HOST" ] && source "$FILENAME-$HOST"
# host specific (exports|alias|functions) FILENAME, git ignored
# shellcheck source=../config/exports
[ -r "$FILENAME-$HOST-secret" ] && source "$FILENAME-$HOST-secret"
done
}
x-load-config-fn
source "$DOTFILES/local/bin/msgr" source "$DOTFILES/local/bin/msgr"
# -- Menu builder -- # # -- Menu builder -- #

478
yarn.lock
View File

@@ -225,11 +225,6 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c"
integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==
"@gar/promisify@^1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
"@humanwhocodes/config-array@^0.11.13": "@humanwhocodes/config-array@^0.11.13":
version "0.11.13" version "0.11.13"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297"
@@ -267,46 +262,47 @@
integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
"@ivuorinen/base-configs@^1.1.0": "@ivuorinen/base-configs@^1.1.0":
version "1.1.0" version "1.1.2"
resolved "https://registry.yarnpkg.com/@ivuorinen/base-configs/-/base-configs-1.1.0.tgz#aada91ac17d7ef03c0f910daf65b3de43c31efd9" resolved "https://registry.yarnpkg.com/@ivuorinen/base-configs/-/base-configs-1.1.2.tgz#e96bcd354f784b0fadae4ff2f118b10d508804bd"
integrity sha512-fvAx7p5pRYTpYpF46LZeSAhmpxgJNaiAJaRtHgFXPgnqst4hRYBorct5XxwhYFkbDxTkik6sAyC8qfZOndESqA== integrity sha512-dd33BGRRMH66WD1AXUDywp6cXSTdWJ9k8n5ORYCBlhSKR6r5mxSYE1GwrSapHSD1cuGsw7OHNcazgABo7Vs2AQ==
dependencies: dependencies:
"@ivuorinen/browserslist-config" "^0.2.1" "@ivuorinen/browserslist-config" "^0.2.2"
"@ivuorinen/commitlint-config" "^0.2.3" "@ivuorinen/commitlint-config" "^0.2.4"
"@ivuorinen/eslint-config" "^0.3.3" "@ivuorinen/eslint-config" "^0.4.0"
"@ivuorinen/markdownlint-config" "^0.2.1" "@ivuorinen/markdownlint-config" "^0.2.2"
"@ivuorinen/prettier-config" "^0.2.1" "@ivuorinen/prettier-config" "^0.2.2"
"@ivuorinen/semantic-release-config" "^0.2.1" "@ivuorinen/semantic-release-config" "^0.2.2"
"@ivuorinen/browserslist-config@^0.2.1": "@ivuorinen/browserslist-config@^0.2.2":
version "0.2.1" version "0.2.2"
resolved "https://registry.yarnpkg.com/@ivuorinen/browserslist-config/-/browserslist-config-0.2.1.tgz#7f390ab7ee49e703322293fde2f721fe38136f13" resolved "https://registry.yarnpkg.com/@ivuorinen/browserslist-config/-/browserslist-config-0.2.2.tgz#5d2c1baab168cdfa79704971857b900c6ffc477d"
integrity sha512-CUrc/xxI4QVGyxvHZ3Vp3D/yJrQKkSeumEbY68s16yr3u9T+I1bwUk0Gm4lG7R1Mv4XhwmFokNOJpIxvoDESvg== integrity sha512-sSRLsvs6oHHBOs8lWC7EcowWFV+Vyx8pjzUl0+kyjbr6M3I5pFD57rM2Wt3Dl3+rhyp9prNNOFRBJ1m/i7xVaQ==
dependencies: dependencies:
"@ivuorinen/config-checker" "^1.1.1" "@ivuorinen/config-checker" "^1.1.2"
browserslist "4.22.1" browserslist "4.22.1"
"@ivuorinen/commitlint-config@^0.2.3": "@ivuorinen/commitlint-config@^0.2.4":
version "0.2.3" version "0.2.4"
resolved "https://registry.yarnpkg.com/@ivuorinen/commitlint-config/-/commitlint-config-0.2.3.tgz#e078d4c1b6a58788cde03ece8f00289142c0706e" resolved "https://registry.yarnpkg.com/@ivuorinen/commitlint-config/-/commitlint-config-0.2.4.tgz#dca8f5a1b02443b329b656e3207ddc159ff239c7"
integrity sha512-O+IRVAJu8Ema4Kur+UgfvNBjDZl2lgStibjzmNEc4/zbBnGArCnSQY6hYND161XgBcjXYCv2ntrO2ec4d5M8NQ== integrity sha512-4a0zJw6Lvo6XKd9iwrXY2WslnOyrIdr6yBSTV/OAh8PxESNUzAbdjWDAJTRAHULMI1bwhrCdrbmGDve7aQZTyg==
dependencies: dependencies:
"@commitlint/cli" "18.2.0" "@commitlint/cli" "18.2.0"
"@commitlint/config-conventional" "18.1.0" "@commitlint/config-conventional" "18.1.0"
"@ivuorinen/config-checker" "^1.1.1" "@ivuorinen/config-checker" "^1.1.2"
"@ivuorinen/config-checker@^1.1.1": "@ivuorinen/config-checker@^1.1.2":
version "1.1.1" version "1.1.2"
resolved "https://registry.yarnpkg.com/@ivuorinen/config-checker/-/config-checker-1.1.1.tgz#899159e0fcb7622806989705ccf832bc0270d020" resolved "https://registry.yarnpkg.com/@ivuorinen/config-checker/-/config-checker-1.1.2.tgz#1a7c4dd683129532998f5b682cd95e4daf176acf"
integrity sha512-CMLpj4fiQHlihWvvMGl2JSyd4dhHO6Wiy5NjB00Uo2i5lFOY3ZDghM3ZGw3MtFCkolzTLKxiNiysAkMJr33yMw== integrity sha512-Gb1o2jM0ZqKUa0UTk6yTDbEnC9xGT104EzL0q4x0dW8fLFFQNTp4NrWmpUS90He5m0GNcN5QBo7QPZdGlwUz1Q==
"@ivuorinen/eslint-config@^0.3.3": "@ivuorinen/eslint-config@^0.4.0":
version "0.3.3" version "0.4.0"
resolved "https://registry.yarnpkg.com/@ivuorinen/eslint-config/-/eslint-config-0.3.3.tgz#e4b7f57970f9a485a466f8d041c1ca0218f7580d" resolved "https://registry.yarnpkg.com/@ivuorinen/eslint-config/-/eslint-config-0.4.0.tgz#875fdd4b918e6b9fd0c4c64a69ed65056a652371"
integrity sha512-OUiUBu/8hvGMGeaVEC7xsHTl8WtJa8sDepaC02v3BLpFQcykQ7oemZY1ilGWj2eIagO1iVPel/AjaG3AkF5jlg== integrity sha512-dqGlKGtJJ6EmBKSu44HCoJqHAl3447iJg7F98V4M9ofb7Rkhx3a0aSo02XHJnSpGPYY7gkcz+J/6FI6FNYmZCQ==
dependencies: dependencies:
"@ivuorinen/config-checker" "^1.1.1" "@ivuorinen/config-checker" "^1.1.2"
eslint "8.52.0" eslint "8.52.0"
eslint-config-prettier "^9.0.0"
eslint-config-standard "17.1.0" eslint-config-standard "17.1.0"
eslint-plugin-import "2.29.0" eslint-plugin-import "2.29.0"
eslint-plugin-jest "27.6.0" eslint-plugin-jest "27.6.0"
@@ -314,28 +310,28 @@
eslint-plugin-promise "6.1.1" eslint-plugin-promise "6.1.1"
eslint-plugin-sonarjs "0.21.0" eslint-plugin-sonarjs "0.21.0"
"@ivuorinen/markdownlint-config@^0.2.1": "@ivuorinen/markdownlint-config@^0.2.2":
version "0.2.1" version "0.2.2"
resolved "https://registry.yarnpkg.com/@ivuorinen/markdownlint-config/-/markdownlint-config-0.2.1.tgz#3a6a321e771367cd290db5b51c343e7b519b8e19" resolved "https://registry.yarnpkg.com/@ivuorinen/markdownlint-config/-/markdownlint-config-0.2.2.tgz#935e7b1fe5d9af8e01a34140e6f02d2749f9972a"
integrity sha512-9VL+x2GuigElkkzULmf/1Ppl5fHik+m3uPrHbw9OSEExJ7yr7OnQcFjVNfJB5qwTuFV7jFR0WHGsjCOI76mDLg== integrity sha512-WPPhYDoSFEEnrUqIikcvydy/huJxom/QcSqiaC9TVaAziytxfredgTEd86yUtANB4vUpDRKufh1Xz+uZs9hNBg==
dependencies: dependencies:
"@ivuorinen/config-checker" "^1.1.1" "@ivuorinen/config-checker" "^1.1.2"
markdownlint-cli "0.37.0" markdownlint-cli "0.37.0"
"@ivuorinen/prettier-config@^0.2.1": "@ivuorinen/prettier-config@^0.2.2":
version "0.2.1" version "0.2.2"
resolved "https://registry.yarnpkg.com/@ivuorinen/prettier-config/-/prettier-config-0.2.1.tgz#4337fc2219fa0bd781e4699feaf4c413c50714cc" resolved "https://registry.yarnpkg.com/@ivuorinen/prettier-config/-/prettier-config-0.2.2.tgz#146137ff3bf3087b01f329e5063ee38ecc08f84a"
integrity sha512-YSX6JL0wu7WKaRymmlSomZmAvmcEQ+0NcrbaPiyOy2+hTclXXH8ocCYBT0FWC0u++vbi+78q7DmhZmCaOjxgLA== integrity sha512-/zrWh9eF1+wz1uO0S+LMtfgbXy75Yt3mVzDGDo1UvO/d2mHXphbqfHS23bhpiFmV0zoB/7eAJdrLj+vAg7VO2Q==
dependencies: dependencies:
"@ivuorinen/config-checker" "^1.1.1" "@ivuorinen/config-checker" "^1.1.2"
prettier "3.0.3" prettier "3.0.3"
"@ivuorinen/semantic-release-config@^0.2.1": "@ivuorinen/semantic-release-config@^0.2.2":
version "0.2.1" version "0.2.2"
resolved "https://registry.yarnpkg.com/@ivuorinen/semantic-release-config/-/semantic-release-config-0.2.1.tgz#828dc1fcda61ef1d14f44922a64903463b542d51" resolved "https://registry.yarnpkg.com/@ivuorinen/semantic-release-config/-/semantic-release-config-0.2.2.tgz#2282f99a96df1bece7f5235d782eaeb335de80b0"
integrity sha512-1s4oBWs26EVgKTCfOVFQxvvYJVrD4+JGN3sys/MUlxZtNg5L4xMX/p4llBA13tqqd8MRSvMjSbsQL2KZy7fDQg== integrity sha512-SLMKdx47jRWQbtiDiNcbAPT5/uE8nekZN/koG7XPQ06OahCluEO+6nPYYa3QaloWck34Huxs+1Tm2z+n9u/LKw==
dependencies: dependencies:
"@ivuorinen/config-checker" "^1.1.1" "@ivuorinen/config-checker" "^1.1.2"
"@semantic-release/changelog" "6.0.3" "@semantic-release/changelog" "6.0.3"
"@semantic-release/git" "10.0.1" "@semantic-release/git" "10.0.1"
semantic-release "22.0.5" semantic-release "22.0.5"
@@ -372,10 +368,10 @@
lru-cache "^10.0.1" lru-cache "^10.0.1"
socks-proxy-agent "^8.0.1" socks-proxy-agent "^8.0.1"
"@npmcli/arborist@^7.2.0": "@npmcli/arborist@^7.2.1":
version "7.2.0" version "7.2.1"
resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.2.0.tgz#78768fd3d221190700dd61b75fb4237fbc89df3e" resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.2.1.tgz#fcd7254a613b92a3174a57c896c249e30142bff1"
integrity sha512-J6XCan+5nV6F94E0+9z//OnZADcqHw6HGDO0ynX+Ayd6GEopK0odq99V+UQjb8P1zexTmCWGvxp4jU5OM6NTtg== integrity sha512-o1QIAX56FC8HEPF+Hf4V4/hck9j0a3UiLnMX4aDHPbtU4Po1tUOUSmc2GAx947VWT+acrdMYTDkqUt2CaSXt7A==
dependencies: dependencies:
"@isaacs/string-locale-compare" "^1.1.0" "@isaacs/string-locale-compare" "^1.1.0"
"@npmcli/fs" "^3.1.0" "@npmcli/fs" "^3.1.0"
@@ -386,7 +382,7 @@
"@npmcli/node-gyp" "^3.0.0" "@npmcli/node-gyp" "^3.0.0"
"@npmcli/package-json" "^5.0.0" "@npmcli/package-json" "^5.0.0"
"@npmcli/query" "^3.0.1" "@npmcli/query" "^3.0.1"
"@npmcli/run-script" "^7.0.1" "@npmcli/run-script" "^7.0.2"
bin-links "^4.0.1" bin-links "^4.0.1"
cacache "^18.0.0" cacache "^18.0.0"
common-ancestor-path "^1.0.1" common-ancestor-path "^1.0.1"
@@ -432,14 +428,6 @@
dependencies: dependencies:
ansi-styles "^4.3.0" ansi-styles "^4.3.0"
"@npmcli/fs@^2.1.0":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865"
integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==
dependencies:
"@gar/promisify" "^1.1.3"
semver "^7.3.5"
"@npmcli/fs@^3.1.0": "@npmcli/fs@^3.1.0":
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e"
@@ -489,14 +477,6 @@
pacote "^17.0.0" pacote "^17.0.0"
semver "^7.3.5" semver "^7.3.5"
"@npmcli/move-file@^2.0.0":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4"
integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==
dependencies:
mkdirp "^1.0.4"
rimraf "^3.0.2"
"@npmcli/name-from-folder@^2.0.0": "@npmcli/name-from-folder@^2.0.0":
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815"
@@ -534,7 +514,7 @@
dependencies: dependencies:
postcss-selector-parser "^6.0.10" postcss-selector-parser "^6.0.10"
"@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.1": "@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2":
version "7.0.2" version "7.0.2"
resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.2.tgz#497e7f058799497889df65900c711312252276d3" resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.2.tgz#497e7f058799497889df65900c711312252276d3"
integrity sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w== integrity sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==
@@ -801,11 +781,6 @@
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8"
integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ== integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==
"@tootallnate/once@2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
"@tufjs/canonical-json@2.0.0": "@tufjs/canonical-json@2.0.0":
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a"
@@ -835,9 +810,9 @@
integrity sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ== integrity sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==
"@types/node@^18.11.9": "@types/node@^18.11.9":
version "18.18.7" version "18.18.8"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.7.tgz#bb3a7068dc4ba421b6968f2a259298b3a4e129e8" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.8.tgz#2b285361f2357c8c8578ec86b5d097c7f464cfd6"
integrity sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ== integrity sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==
dependencies: dependencies:
undici-types "~5.26.4" undici-types "~5.26.4"
@@ -912,11 +887,6 @@ JSONStream@^1.3.5:
jsonparse "^1.2.0" jsonparse "^1.2.0"
through ">=2.2.7 <3" through ">=2.2.7 <3"
abbrev@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
abbrev@^2.0.0: abbrev@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
@@ -939,13 +909,6 @@ acorn@^8.9.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
agent-base@6, agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
dependencies:
debug "4"
agent-base@^7.0.2, agent-base@^7.1.0: agent-base@^7.0.2, agent-base@^7.1.0:
version "7.1.0" version "7.1.0"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434"
@@ -953,13 +916,6 @@ agent-base@^7.0.2, agent-base@^7.1.0:
dependencies: dependencies:
debug "^4.3.4" debug "^4.3.4"
agentkeepalive@^4.2.1:
version "4.5.0"
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
dependencies:
humanize-ms "^1.2.1"
aggregate-error@^3.0.0: aggregate-error@^3.0.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
@@ -1055,14 +1011,6 @@ archy@~1.0.0:
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
are-we-there-yet@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd"
integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==
dependencies:
delegates "^1.0.0"
readable-stream "^3.6.0"
are-we-there-yet@^4.0.0: are-we-there-yet@^4.0.0:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.1.tgz#05a6fc0e5f70771b673e82b0f915616e0ace8fd3" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.1.tgz#05a6fc0e5f70771b673e82b0f915616e0ace8fd3"
@@ -1246,30 +1194,6 @@ builtins@^5.0.0, builtins@^5.0.1:
dependencies: dependencies:
semver "^7.0.0" semver "^7.0.0"
cacache@^16.1.0:
version "16.1.3"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e"
integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==
dependencies:
"@npmcli/fs" "^2.1.0"
"@npmcli/move-file" "^2.0.0"
chownr "^2.0.0"
fs-minipass "^2.1.0"
glob "^8.0.1"
infer-owner "^1.0.4"
lru-cache "^7.7.1"
minipass "^3.1.6"
minipass-collect "^1.0.2"
minipass-flush "^1.0.5"
minipass-pipeline "^1.2.4"
mkdirp "^1.0.4"
p-map "^4.0.0"
promise-inflight "^1.0.1"
rimraf "^3.0.2"
ssri "^9.0.0"
tar "^6.1.11"
unique-filename "^2.0.0"
cacache@^18.0.0: cacache@^18.0.0:
version "18.0.0" version "18.0.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.0.tgz#17a9ecd6e1be2564ebe6cdca5f7cfed2bfeb6ddc" resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.0.tgz#17a9ecd6e1be2564ebe6cdca5f7cfed2bfeb6ddc"
@@ -1317,9 +1241,9 @@ camelcase@^5.3.1:
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-lite@^1.0.30001541: caniuse-lite@^1.0.30001541:
version "1.0.30001558" version "1.0.30001559"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001558.tgz#d2c6e21fdbfe83817f70feab902421a19b7983ee" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz#95a982440d3d314c471db68d02664fb7536c5a30"
integrity sha512-/Et7DwLqpjS47JPEcz6VnxU9PwcIdVi0ciLXRWBQdj1XFye68pSQYpV0QtPTfUKWuOaEig+/Vez2l74eDc1tPQ== integrity sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==
cardinal@^2.1.1: cardinal@^2.1.1:
version "2.1.1" version "2.1.1"
@@ -1597,7 +1521,7 @@ dargs@^7.0.0:
resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
debug@4, debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: debug@4, debug@^4.0.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4" version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -1715,9 +1639,9 @@ eastasianwidth@^0.2.0:
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
electron-to-chromium@^1.4.535: electron-to-chromium@^1.4.535:
version "1.4.569" version "1.4.572"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.569.tgz#1298b67727187ffbaac005a7425490d157f3ad03" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.572.tgz#ed9876658998138fe9e3aa47ecfa0bf914192a86"
integrity sha512-LsrJjZ0IbVy12ApW3gpYpcmHS3iRxH4bkKOW98y1/D+3cvDUWGcbzbsFinfUS8knpcZk/PG/2p/RnkMCYN7PVg== integrity sha512-RlFobl4D3ieetbnR+2EpxdzFl9h0RAJkPK3pfiwMug2nhBin2ZCsGIAJWdpNniLz43sgXam/CgipOmvTA+rUiA==
emoji-regex@^8.0.0: emoji-regex@^8.0.0:
version "8.0.0" version "8.0.0"
@@ -1861,6 +1785,11 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-config-prettier@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f"
integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==
eslint-config-standard@17.1.0: eslint-config-standard@17.1.0:
version "17.1.0" version "17.1.0"
resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975"
@@ -2249,7 +2178,7 @@ fs-extra@^11.0.0:
jsonfile "^6.0.1" jsonfile "^6.0.1"
universalify "^2.0.0" universalify "^2.0.0"
fs-minipass@^2.0.0, fs-minipass@^2.1.0: fs-minipass@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
@@ -2288,20 +2217,6 @@ functions-have-names@^1.2.3:
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
gauge@^4.0.3:
version "4.0.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
dependencies:
aproba "^1.0.3 || ^2.0.0"
color-support "^1.1.3"
console-control-strings "^1.1.0"
has-unicode "^2.0.1"
signal-exit "^3.0.7"
string-width "^4.2.3"
strip-ansi "^6.0.1"
wide-align "^1.1.5"
gauge@^5.0.0: gauge@^5.0.0:
version "5.0.1" version "5.0.1"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112"
@@ -2414,7 +2329,7 @@ glob@^10.2.2, glob@^10.3.10, glob@~10.3.4:
minipass "^5.0.0 || ^6.0.2 || ^7.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
path-scurry "^1.10.1" path-scurry "^1.10.1"
glob@^7.1.3, glob@^7.1.4: glob@^7.1.3:
version "7.2.3" version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -2426,17 +2341,6 @@ glob@^7.1.3, glob@^7.1.4:
once "^1.3.0" once "^1.3.0"
path-is-absolute "^1.0.0" path-is-absolute "^1.0.0"
glob@^8.0.1:
version "8.1.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^5.0.1"
once "^1.3.0"
global-dirs@^0.1.1: global-dirs@^0.1.1:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -2595,20 +2499,11 @@ hosted-git-info@^7.0.0, hosted-git-info@^7.0.1:
dependencies: dependencies:
lru-cache "^10.0.1" lru-cache "^10.0.1"
http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: http-cache-semantics@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
http-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
dependencies:
"@tootallnate/once" "2"
agent-base "6"
debug "4"
http-proxy-agent@^7.0.0: http-proxy-agent@^7.0.0:
version "7.0.0" version "7.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673"
@@ -2617,14 +2512,6 @@ http-proxy-agent@^7.0.0:
agent-base "^7.1.0" agent-base "^7.1.0"
debug "^4.3.4" debug "^4.3.4"
https-proxy-agent@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
dependencies:
agent-base "6"
debug "4"
https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1:
version "7.0.2" version "7.0.2"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b"
@@ -2643,13 +2530,6 @@ human-signals@^5.0.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
humanize-ms@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
dependencies:
ms "^2.0.0"
iconv-lite@^0.6.2: iconv-lite@^0.6.2:
version "0.6.3" version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
@@ -2702,11 +2582,6 @@ indent-string@^5.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5"
integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==
infer-owner@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
inflight@^1.0.4: inflight@^1.0.4:
version "1.0.6" version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -2995,9 +2870,9 @@ java-properties@^1.0.2:
integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==
jiti@^1.19.1: jiti@^1.19.1:
version "1.20.0" version "1.21.0"
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d"
integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==
js-tokens@^4.0.0: js-tokens@^4.0.0:
version "4.0.0" version "4.0.0"
@@ -3120,12 +2995,12 @@ libnpmaccess@^8.0.1:
npm-package-arg "^11.0.1" npm-package-arg "^11.0.1"
npm-registry-fetch "^16.0.0" npm-registry-fetch "^16.0.0"
libnpmdiff@^6.0.2: libnpmdiff@^6.0.3:
version "6.0.2" version "6.0.3"
resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-6.0.2.tgz#32d405b4684ffbe6e0435b719648b1d2193ed5b9" resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-6.0.3.tgz#b8fe312e117389cce5cfffa088882ef8d97647eb"
integrity sha512-5G1mFZk7fncBrs87cYPP15uAptvxCKNN7XhIJpHdcMktKXEdLkJgFyv22WkfWwEa0PsjgYoWxwjdSlKqWTW1QA== integrity sha512-Xy4ZFueaYb7CNMxH7i/SoQDg7VyDOESFWZp/MU3f3qtAasEWhdTYBSHmb18ehp8MxTjox7c7U6ws7l3r+LTBFA==
dependencies: dependencies:
"@npmcli/arborist" "^7.2.0" "@npmcli/arborist" "^7.2.1"
"@npmcli/disparity-colors" "^3.0.0" "@npmcli/disparity-colors" "^3.0.0"
"@npmcli/installed-package-contents" "^2.0.2" "@npmcli/installed-package-contents" "^2.0.2"
binary-extensions "^2.2.0" binary-extensions "^2.2.0"
@@ -3135,13 +3010,13 @@ libnpmdiff@^6.0.2:
pacote "^17.0.4" pacote "^17.0.4"
tar "^6.2.0" tar "^6.2.0"
libnpmexec@^7.0.2: libnpmexec@^7.0.3:
version "7.0.2" version "7.0.3"
resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-7.0.2.tgz#b96a9959549a89ffc24fc3e736f0fcdb905b4697" resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-7.0.3.tgz#e05451abac27cc73534fe7eac3a48acd95bbe8a8"
integrity sha512-lmnAbvWljqn8LI/V8M4fJhlV4gLLXht9QdotRd8bFvZVVlqpMyz1uS0M1Lv46ZBBQune3VPDoKpMboc18L5Cgg== integrity sha512-hEVk4RHhBpvKAoDCFhq66yXFy9T4aQZ5WpvLnlaavMFKNmvD6azid/7nLQtQqnAigUyQcpKTRowoMKzNBF4Ogw==
dependencies: dependencies:
"@npmcli/arborist" "^7.2.0" "@npmcli/arborist" "^7.2.1"
"@npmcli/run-script" "^7.0.1" "@npmcli/run-script" "^7.0.2"
ci-info "^3.7.1" ci-info "^3.7.1"
npm-package-arg "^11.0.1" npm-package-arg "^11.0.1"
npmlog "^7.0.1" npmlog "^7.0.1"
@@ -3152,12 +3027,12 @@ libnpmexec@^7.0.2:
semver "^7.3.7" semver "^7.3.7"
walk-up-path "^3.0.1" walk-up-path "^3.0.1"
libnpmfund@^5.0.0: libnpmfund@^5.0.1:
version "5.0.0" version "5.0.1"
resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-5.0.0.tgz#e0a2e2755580772639fb47df0bf40c2a552bd05e" resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-5.0.1.tgz#262a7a2b3a413a8e2bc4dfbee9d124f8012afe55"
integrity sha512-YYZF+MD4p8MEQexGFaqico6xq2xbO9Ljmnr8AC44gQLkAM+DZLKLsZB3/nOK2Vf8hWJ8bpTqBXjR1ACkE19foA== integrity sha512-4s7jdjiYE4SCf87n5UOrRlsUpF0Xw8DWtBwP53EaNQdvqR1579nOv1nwakMLmkq5HFKNOJyZcAH/rf5wVRRz5A==
dependencies: dependencies:
"@npmcli/arborist" "^7.2.0" "@npmcli/arborist" "^7.2.1"
libnpmhook@^10.0.0: libnpmhook@^10.0.0:
version "10.0.0" version "10.0.0"
@@ -3175,13 +3050,13 @@ libnpmorg@^6.0.1:
aproba "^2.0.0" aproba "^2.0.0"
npm-registry-fetch "^16.0.0" npm-registry-fetch "^16.0.0"
libnpmpack@^6.0.2: libnpmpack@^6.0.3:
version "6.0.2" version "6.0.3"
resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-6.0.2.tgz#8e2f4a5c8a4ce881fe9e0ac36b69f1640179f00b" resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-6.0.3.tgz#65df2f32c524e381010617fc9c34afbf7d52a5b4"
integrity sha512-4/kWJcX1yduzdiKQkT7CEexw7FBuI41opjG8m3m/SqTmhXumJD0HmfTF5k78S2vTzCl3kk+KiwJdM/ev5RWRwg== integrity sha512-+XV6/KVGYJ2TvqeJfBhSJgrXWV3OiFPYCKGavNwNBFmAtRRrj7OoV6a/+C0HDo7D0PFEDktdBHW47EciUgHx+g==
dependencies: dependencies:
"@npmcli/arborist" "^7.2.0" "@npmcli/arborist" "^7.2.1"
"@npmcli/run-script" "^7.0.1" "@npmcli/run-script" "^7.0.2"
npm-package-arg "^11.0.1" npm-package-arg "^11.0.1"
pacote "^17.0.4" pacote "^17.0.4"
@@ -3214,13 +3089,13 @@ libnpmteam@^6.0.0:
aproba "^2.0.0" aproba "^2.0.0"
npm-registry-fetch "^16.0.0" npm-registry-fetch "^16.0.0"
libnpmversion@^5.0.0: libnpmversion@^5.0.1:
version "5.0.0" version "5.0.1"
resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-5.0.0.tgz#c500f8cf572257013b0a665233b496fdf862a6cf" resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-5.0.1.tgz#5fbc9b013b7188fac39f63e04691884e9e9897e1"
integrity sha512-BjXWyQMYZ6rDCobfl8m0yEFJ/FGvJXzFM3kIvnYxx2Y/qWW7aZtgRsfsehi4I4sdghxXY5EOCcBn3yTENtWtyw== integrity sha512-OXiju5vvL22QUBKizAyo5d+FOUkt9xN9+UOPE8alsZw+O9gLjnJrMmRW8P8uxMLS6/K415em15meVEbjG26Fzg==
dependencies: dependencies:
"@npmcli/git" "^5.0.3" "@npmcli/git" "^5.0.3"
"@npmcli/run-script" "^7.0.1" "@npmcli/run-script" "^7.0.2"
json-parse-even-better-errors "^3.0.0" json-parse-even-better-errors "^3.0.0"
proc-log "^3.0.0" proc-log "^3.0.0"
semver "^7.3.7" semver "^7.3.7"
@@ -3373,33 +3248,6 @@ lru-cache@^6.0.0:
dependencies: dependencies:
yallist "^4.0.0" yallist "^4.0.0"
lru-cache@^7.7.1:
version "7.18.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
make-fetch-happen@^10.0.3:
version "10.2.1"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==
dependencies:
agentkeepalive "^4.2.1"
cacache "^16.1.0"
http-cache-semantics "^4.1.0"
http-proxy-agent "^5.0.0"
https-proxy-agent "^5.0.0"
is-lambda "^1.0.1"
lru-cache "^7.7.1"
minipass "^3.1.6"
minipass-collect "^1.0.2"
minipass-fetch "^2.0.3"
minipass-flush "^1.0.5"
minipass-pipeline "^1.2.4"
negotiator "^0.6.3"
promise-retry "^2.0.1"
socks-proxy-agent "^7.0.0"
ssri "^9.0.0"
make-fetch-happen@^13.0.0: make-fetch-happen@^13.0.0:
version "13.0.0" version "13.0.0"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0"
@@ -3479,9 +3327,9 @@ marked-terminal@^6.0.0:
supports-hyperlinks "^3.0.0" supports-hyperlinks "^3.0.0"
marked@^9.0.0: marked@^9.0.0:
version "9.1.3" version "9.1.4"
resolved "https://registry.yarnpkg.com/marked/-/marked-9.1.3.tgz#57bdfccc8158aa8459f103fbbb4c310479688e08" resolved "https://registry.yarnpkg.com/marked/-/marked-9.1.4.tgz#68d50848f1b1e264b8fa031946b4b0c3352827e9"
integrity sha512-XPU/J7GzU/n4voCSw1VYggtr3W5C2OeGkwEbe5PIQdA8thaie2Qw+fig6iNidKNDokTNcyR4OE9fMK14P6rqPg== integrity sha512-Mq83CCaClhXqhf8sLQ57c1unNelHEuFadK36ga+GeXR4FeT/5ssaC5PaCRVqMA74VYorzYRqdAaxxteIanh3Kw==
mdurl@^1.0.1: mdurl@^1.0.1:
version "1.0.1" version "1.0.1"
@@ -3555,13 +3403,6 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies: dependencies:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
minimatch@^5.0.1:
version "5.1.6"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
dependencies:
brace-expansion "^2.0.1"
minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3, minimatch@~9.0.3: minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3, minimatch@~9.0.3:
version "9.0.3" version "9.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
@@ -3590,17 +3431,6 @@ minipass-collect@^1.0.2:
dependencies: dependencies:
minipass "^3.0.0" minipass "^3.0.0"
minipass-fetch@^2.0.3:
version "2.1.2"
resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add"
integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==
dependencies:
minipass "^3.1.6"
minipass-sized "^1.0.3"
minizlib "^2.1.2"
optionalDependencies:
encoding "^0.1.13"
minipass-fetch@^3.0.0: minipass-fetch@^3.0.0:
version "3.0.4" version "3.0.4"
resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7"
@@ -3641,7 +3471,7 @@ minipass-sized@^1.0.3:
dependencies: dependencies:
minipass "^3.0.0" minipass "^3.0.0"
minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: minipass@^3.0.0:
version "3.3.6" version "3.3.6"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
@@ -3666,7 +3496,7 @@ minizlib@^2.1.1, minizlib@^2.1.2:
minipass "^3.0.0" minipass "^3.0.0"
yallist "^4.0.0" yallist "^4.0.0"
mkdirp@^1.0.3, mkdirp@^1.0.4: mkdirp@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
@@ -3676,7 +3506,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: ms@^2.1.1, ms@^2.1.2:
version "2.1.3" version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -3732,35 +3562,11 @@ node-gyp@^10.0.0:
tar "^6.1.2" tar "^6.1.2"
which "^4.0.0" which "^4.0.0"
node-gyp@^9.4.0:
version "9.4.1"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185"
integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==
dependencies:
env-paths "^2.2.0"
exponential-backoff "^3.1.1"
glob "^7.1.4"
graceful-fs "^4.2.6"
make-fetch-happen "^10.0.3"
nopt "^6.0.0"
npmlog "^6.0.0"
rimraf "^3.0.2"
semver "^7.3.5"
tar "^6.1.2"
which "^2.0.2"
node-releases@^2.0.13: node-releases@^2.0.13:
version "2.0.13" version "2.0.13"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
nopt@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==
dependencies:
abbrev "^1.0.0"
nopt@^7.0.0, nopt@^7.2.0: nopt@^7.0.0, nopt@^7.2.0:
version "7.2.0" version "7.2.0"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7"
@@ -3895,18 +3701,18 @@ npm-user-validate@^2.0.0:
integrity sha512-sSWeqAYJ2dUPStJB+AEj0DyLRltr/f6YNcvCA7phkB8/RMLMnVsQ41GMwHo/ERZLYNDsyB2wPm7pZo1mqPOl7Q== integrity sha512-sSWeqAYJ2dUPStJB+AEj0DyLRltr/f6YNcvCA7phkB8/RMLMnVsQ41GMwHo/ERZLYNDsyB2wPm7pZo1mqPOl7Q==
npm@^10.0.0: npm@^10.0.0:
version "10.2.1" version "10.2.2"
resolved "https://registry.yarnpkg.com/npm/-/npm-10.2.1.tgz#41fd6626a08d4167b8639edd272ecf9735e7ceaf" resolved "https://registry.yarnpkg.com/npm/-/npm-10.2.2.tgz#46048769ffd4798d0b9991b123e3f9cd6fb49dde"
integrity sha512-YVh8UDw5lR2bPS6rrS0aPG9ZXKDWeaeO/zMoZMp7g3Thrho9cqEnSrcvg4Pic2QhDAQptAynx5KgrPgCSRscqg== integrity sha512-VSP/rh88wBQ+b7bz0NOdZQBQCuWLI/etpWfgUWDmNaMy0MuD1xJBMofEzuFojNpJANVaJCkN5U7KgfPdR2V1fg==
dependencies: dependencies:
"@isaacs/string-locale-compare" "^1.1.0" "@isaacs/string-locale-compare" "^1.1.0"
"@npmcli/arborist" "^7.2.0" "@npmcli/arborist" "^7.2.1"
"@npmcli/config" "^8.0.1" "@npmcli/config" "^8.0.1"
"@npmcli/fs" "^3.1.0" "@npmcli/fs" "^3.1.0"
"@npmcli/map-workspaces" "^3.0.4" "@npmcli/map-workspaces" "^3.0.4"
"@npmcli/package-json" "^5.0.0" "@npmcli/package-json" "^5.0.0"
"@npmcli/promise-spawn" "^7.0.0" "@npmcli/promise-spawn" "^7.0.0"
"@npmcli/run-script" "^7.0.1" "@npmcli/run-script" "^7.0.2"
"@sigstore/tuf" "^2.1.0" "@sigstore/tuf" "^2.1.0"
abbrev "^2.0.0" abbrev "^2.0.0"
archy "~1.0.0" archy "~1.0.0"
@@ -3926,22 +3732,22 @@ npm@^10.0.0:
is-cidr "^4.0.2" is-cidr "^4.0.2"
json-parse-even-better-errors "^3.0.0" json-parse-even-better-errors "^3.0.0"
libnpmaccess "^8.0.1" libnpmaccess "^8.0.1"
libnpmdiff "^6.0.2" libnpmdiff "^6.0.3"
libnpmexec "^7.0.2" libnpmexec "^7.0.3"
libnpmfund "^5.0.0" libnpmfund "^5.0.1"
libnpmhook "^10.0.0" libnpmhook "^10.0.0"
libnpmorg "^6.0.1" libnpmorg "^6.0.1"
libnpmpack "^6.0.2" libnpmpack "^6.0.3"
libnpmpublish "^9.0.1" libnpmpublish "^9.0.1"
libnpmsearch "^7.0.0" libnpmsearch "^7.0.0"
libnpmteam "^6.0.0" libnpmteam "^6.0.0"
libnpmversion "^5.0.0" libnpmversion "^5.0.1"
make-fetch-happen "^13.0.0" make-fetch-happen "^13.0.0"
minimatch "^9.0.3" minimatch "^9.0.3"
minipass "^7.0.4" minipass "^7.0.4"
minipass-pipeline "^1.2.4" minipass-pipeline "^1.2.4"
ms "^2.1.2" ms "^2.1.2"
node-gyp "^9.4.0" node-gyp "^10.0.0"
nopt "^7.2.0" nopt "^7.2.0"
normalize-package-data "^6.0.0" normalize-package-data "^6.0.0"
npm-audit-report "^5.0.0" npm-audit-report "^5.0.0"
@@ -3971,16 +3777,6 @@ npm@^10.0.0:
which "^4.0.0" which "^4.0.0"
write-file-atomic "^5.0.1" write-file-atomic "^5.0.1"
npmlog@^6.0.0:
version "6.0.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
dependencies:
are-we-there-yet "^3.0.0"
console-control-strings "^1.1.0"
gauge "^4.0.3"
set-blocking "^2.0.0"
npmlog@^7.0.1: npmlog@^7.0.1:
version "7.0.1" version "7.0.1"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8"
@@ -4388,9 +4184,9 @@ proto-list@~1.2.1:
integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
punycode@^2.1.0: punycode@^2.1.0:
version "2.3.0" version "2.3.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
qrcode-terminal@^0.12.0: qrcode-terminal@^0.12.0:
version "0.12.0" version "0.12.0"
@@ -4485,7 +4281,7 @@ read@^2.0.0, read@^2.1.0:
dependencies: dependencies:
mute-stream "~1.0.0" mute-stream "~1.0.0"
readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: readable-stream@3, readable-stream@^3.0.0:
version "3.6.2" version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -4766,7 +4562,7 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2" get-intrinsic "^1.0.2"
object-inspect "^1.9.0" object-inspect "^1.9.0"
signal-exit@^3.0.3, signal-exit@^3.0.7: signal-exit@^3.0.3:
version "3.0.7" version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -4817,15 +4613,6 @@ smart-buffer@^4.2.0:
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
socks-proxy-agent@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6"
integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==
dependencies:
agent-base "^6.0.2"
debug "^4.3.3"
socks "^2.6.2"
socks-proxy-agent@^8.0.1: socks-proxy-agent@^8.0.1:
version "8.0.2" version "8.0.2"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad"
@@ -4835,7 +4622,7 @@ socks-proxy-agent@^8.0.1:
debug "^4.3.4" debug "^4.3.4"
socks "^2.7.1" socks "^2.7.1"
socks@^2.6.2, socks@^2.7.1: socks@^2.7.1:
version "2.7.1" version "2.7.1"
resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55"
integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==
@@ -4905,13 +4692,6 @@ ssri@^10.0.0, ssri@^10.0.5:
dependencies: dependencies:
minipass "^7.0.3" minipass "^7.0.3"
ssri@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057"
integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==
dependencies:
minipass "^3.1.1"
stream-combiner2@~1.1.1: stream-combiner2@~1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
@@ -5288,13 +5068,6 @@ unicode-emoji-modifier-base@^1.0.0:
resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459"
integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==
unique-filename@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2"
integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==
dependencies:
unique-slug "^3.0.0"
unique-filename@^3.0.0: unique-filename@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea"
@@ -5302,13 +5075,6 @@ unique-filename@^3.0.0:
dependencies: dependencies:
unique-slug "^4.0.0" unique-slug "^4.0.0"
unique-slug@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9"
integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==
dependencies:
imurmurhash "^0.1.4"
unique-slug@^4.0.0: unique-slug@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3"
@@ -5407,7 +5173,7 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13:
gopd "^1.0.1" gopd "^1.0.1"
has-tostringtag "^1.0.0" has-tostringtag "^1.0.0"
which@^2.0.1, which@^2.0.2: which@^2.0.1:
version "2.0.2" version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==