Compare commits

..

1 Commits

Author SHA1 Message Date
renovate[bot]
f43aa17450 chore(deps): update simek/yarn-lock-changes action (v0.14.0 → v0.14.1)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 08:28:43 +00:00
28 changed files with 188 additions and 460 deletions

View File

@@ -18,10 +18,6 @@
{ {
"type": "command", "type": "command",
"command": "fp=$(cat | jq -r '.tool_input.file_path // empty') && [ -n \"$fp\" ] && [ -f \"$fp\" ] && case \"$fp\" in *.sh|*/bin/*) head -1 \"$fp\" | grep -qE '^#!.*(ba)?sh' && command -v shfmt > /dev/null && shfmt -i 2 -bn -ci -sr -fn -w \"$fp\";; esac; exit 0" "command": "fp=$(cat | jq -r '.tool_input.file_path // empty') && [ -n \"$fp\" ] && [ -f \"$fp\" ] && case \"$fp\" in *.sh|*/bin/*) head -1 \"$fp\" | grep -qE '^#!.*(ba)?sh' && command -v shfmt > /dev/null && shfmt -i 2 -bn -ci -sr -fn -w \"$fp\";; esac; exit 0"
},
{
"type": "command",
"command": "fp=$(cat | jq -r '.tool_input.file_path // empty') && [ -n \"$fp\" ] && [ -f \"$fp\" ] && case \"$fp\" in *.fish) command -v fish_indent > /dev/null && fish_indent -w \"$fp\";; esac; exit 0"
} }
] ]
} }

View File

@@ -1,38 +0,0 @@
---
name: fish-validate
description: >-
Validate fish scripts after editing.
Apply when writing or modifying any .fish file
in config/fish/.
user-invocable: false
allowed-tools: Bash, Read
---
After editing any `.fish` file in `config/fish/`, validate it:
## 1. Syntax check
```bash
fish --no-execute <file>
```
If syntax check fails, fix the issue before proceeding.
## 2. Format check
Run `fish_indent` to verify formatting:
```bash
fish_indent --check <file>
```
If formatting differs, apply it:
```bash
fish_indent -w <file>
```
## Key files to never validate
- Files inside `config/fish/functions/` prefixed with `_tide_`
(managed by the tide prompt plugin)

View File

@@ -1,22 +0,0 @@
---
name: lua-format
description: >-
Format Lua files after editing.
Apply when writing or modifying any .lua file.
user-invocable: false
allowed-tools: Bash
---
After editing any `.lua` file, format it with stylua:
```bash
stylua <file>
```
Project settings are in `stylua.toml` (90-char line length).
If stylua is not available, skip formatting silently.
## Files to never format
- Files inside `config/nvim/` managed by plugins (lazy.nvim lockfile)

View File

@@ -1,16 +1,11 @@
--- ---
name: shell-validate name: shell-validate
description: >- description: Validate shell scripts after editing. Apply when writing or modifying any shell script in local/bin/ or scripts/.
Validate shell scripts after editing.
Apply when writing or modifying any shell script
in local/bin/ or scripts/.
user-invocable: false user-invocable: false
allowed-tools: Bash, Read, Grep allowed-tools: Bash, Read, Grep
--- ---
After editing any shell script in `local/bin/`, `scripts/`, or `config/` After editing any shell script in `local/bin/`, `scripts/`, or `config/` (files with a `#!` shebang or `# shellcheck shell=` directive), validate it:
(files with a `#!` shebang or `# shellcheck shell=` directive),
validate it:
## 1. Determine the shell ## 1. Determine the shell
@@ -33,9 +28,7 @@ If syntax check fails, fix the issue before proceeding.
## 3. ShellCheck ## 3. ShellCheck
Run `shellcheck <file>`. The project `.shellcheckrc` already Run `shellcheck <file>`. The project `.shellcheckrc` already disables SC2039, SC2166, SC2154, SC1091, SC2174, SC2016. Only report and fix warnings that are NOT in that exclude list.
disables SC2039, SC2166, SC2154, SC1091, SC2174, SC2016.
Only report and fix warnings that are NOT in that exclude list.
## Key files to never validate (not shell scripts) ## Key files to never validate (not shell scripts)

View File

@@ -36,4 +36,4 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Run PR Lint - name: Run PR Lint
uses: ivuorinen/actions/pr-lint@8faacf8a1cae049c1471708dcb408a167e91afaf # v2026.02.24 uses: ivuorinen/actions/pr-lint@f371da218e9152e7d29ee39358454e41010c36dc # v2026.02.03

View File

@@ -30,4 +30,4 @@ jobs:
issues: write issues: write
steps: steps:
- uses: ivuorinen/actions/sync-labels@8faacf8a1cae049c1471708dcb408a167e91afaf # v2026.02.24 - uses: ivuorinen/actions/sync-labels@f371da218e9152e7d29ee39358454e41010c36dc # v2026.02.03

2
.nvmrc
View File

@@ -1 +1 @@
24.14.0 24.13.0

View File

@@ -59,7 +59,7 @@ repos:
args: [-i, "2", -bn, -ci, -sr, -fn, -w] args: [-i, "2", -bn, -ci, -sr, -fn, -w]
- repo: https://github.com/rhysd/actionlint - repo: https://github.com/rhysd/actionlint
rev: v1.7.11 rev: v1.7.10
hooks: hooks:
- id: actionlint - id: actionlint
@@ -76,7 +76,7 @@ repos:
- id: fish_indent - id: fish_indent
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.4 rev: v0.15.0
hooks: hooks:
- id: ruff-check - id: ruff-check
args: [--fix] args: [--fix]

View File

@@ -16,4 +16,3 @@ local/bin/antigen.zsh
local/bin/asdf local/bin/asdf
tools tools
docs/plans docs/plans
config/gh/hosts.yml

View File

@@ -50,9 +50,6 @@ yarn test # Run all tests in tests/
# Shell linting # Shell linting
shellcheck <script> # Lint shell scripts shellcheck <script> # Lint shell scripts
# Tooling maintenance
yarn biome migrate --write # Update biome schema version
``` ```
## Pre-commit Hooks ## Pre-commit Hooks
@@ -143,9 +140,7 @@ SC2174 (mkdir -p -m), SC2016 (single-quote expressions).
- **Vendor file**: `local/bin/fzf-tmux` is vendored from - **Vendor file**: `local/bin/fzf-tmux` is vendored from
junegunn/fzf — do not modify. junegunn/fzf — do not modify.
- **Fish config**: `config/fish/` has its own config chain - **Fish config**: `config/fish/` has its own config chain
(`config.fish`, `exports.fish`, `alias.fish`) plus 60+ functions. (`config.fish`, `exports.fish`, `alias.fish`) plus 80+ functions.
- **gh CLI config**: `config/gh/hosts.yml` is managed by `gh` CLI
and excluded from prettier (see `.prettierignore`).
- **Python**: Two scripts (`x-compare-versions.py`, - **Python**: Two scripts (`x-compare-versions.py`,
`x-git-largest-files.py`) linted by Ruff (config in `pyproject.toml`). `x-git-largest-files.py`) linted by Ruff (config in `pyproject.toml`).

View File

@@ -1,5 +1,5 @@
{ {
"$schema": "https://biomejs.dev/schemas/2.4.4/schema.json", "$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
"vcs": { "vcs": {
"enabled": true, "enabled": true,
"clientKind": "git", "clientKind": "git",

View File

@@ -2,21 +2,21 @@
# Place in ~/.config/fish/completions/phpenv.fish # Place in ~/.config/fish/completions/phpenv.fish
# Complete main commands # Complete main commands
complete -c phpenv -f -n __fish_use_subcommand -a install -d "Install a PHP version" complete -c phpenv -f -n "__fish_use_subcommand" -a "install" -d "Install a PHP version"
complete -c phpenv -f -n __fish_use_subcommand -a uninstall -d "Uninstall a PHP version" complete -c phpenv -f -n "__fish_use_subcommand" -a "uninstall" -d "Uninstall a PHP version"
complete -c phpenv -f -n __fish_use_subcommand -a use -d "Use PHP version for current shell" complete -c phpenv -f -n "__fish_use_subcommand" -a "use" -d "Use PHP version for current shell"
complete -c phpenv -f -n __fish_use_subcommand -a local -d "Set PHP version for current project" complete -c phpenv -f -n "__fish_use_subcommand" -a "local" -d "Set PHP version for current project"
complete -c phpenv -f -n __fish_use_subcommand -a global -d "Set global PHP version" complete -c phpenv -f -n "__fish_use_subcommand" -a "global" -d "Set global PHP version"
complete -c phpenv -f -n __fish_use_subcommand -a list -d "List installed PHP versions" complete -c phpenv -f -n "__fish_use_subcommand" -a "list" -d "List installed PHP versions"
complete -c phpenv -f -n __fish_use_subcommand -a ls -d "List installed PHP versions" complete -c phpenv -f -n "__fish_use_subcommand" -a "ls" -d "List installed PHP versions"
complete -c phpenv -f -n __fish_use_subcommand -a current -d "Show current PHP version" complete -c phpenv -f -n "__fish_use_subcommand" -a "current" -d "Show current PHP version"
complete -c phpenv -f -n __fish_use_subcommand -a which -d "Show path to PHP binary" complete -c phpenv -f -n "__fish_use_subcommand" -a "which" -d "Show path to PHP binary"
complete -c phpenv -f -n __fish_use_subcommand -a versions -d "Show all available versions" complete -c phpenv -f -n "__fish_use_subcommand" -a "versions" -d "Show all available versions"
complete -c phpenv -f -n __fish_use_subcommand -a doctor -d "Check phpenv installation" complete -c phpenv -f -n "__fish_use_subcommand" -a "doctor" -d "Check phpenv installation"
complete -c phpenv -f -n __fish_use_subcommand -a config -d "Manage configuration" complete -c phpenv -f -n "__fish_use_subcommand" -a "config" -d "Manage configuration"
complete -c phpenv -f -n __fish_use_subcommand -a extensions -d "Manage PHP extensions" complete -c phpenv -f -n "__fish_use_subcommand" -a "extensions" -d "Manage PHP extensions"
complete -c phpenv -f -n __fish_use_subcommand -a ext -d "Manage PHP extensions" complete -c phpenv -f -n "__fish_use_subcommand" -a "ext" -d "Manage PHP extensions"
complete -c phpenv -f -n __fish_use_subcommand -a help -d "Show help" complete -c phpenv -f -n "__fish_use_subcommand" -a "help" -d "Show help"
# Helper functions for completions # Helper functions for completions
function __phpenv_complete_installed_versions function __phpenv_complete_installed_versions
@@ -26,13 +26,13 @@ end
function __phpenv_complete_available_versions function __phpenv_complete_available_versions
# Try to get dynamic versions first # Try to get dynamic versions first
if command -q curl -a command -q jq; and functions -q __phpenv_parse_version_field if command -q curl -a command -q jq; and functions -q __phpenv_parse_version_field
echo latest echo "latest"
echo nightly echo "nightly"
echo "5.x" echo "5.x"
echo "7.x" echo "7.x"
echo "8.x" echo "8.x"
__phpenv_parse_version_field latest "8.4" __phpenv_parse_version_field "latest" "8.4"
__phpenv_parse_version_field nightly "8.5" __phpenv_parse_version_field "nightly" "8.5"
__phpenv_parse_version_field "5.x" "5.6" __phpenv_parse_version_field "5.x" "5.6"
__phpenv_parse_version_field "7.x" "7.4" __phpenv_parse_version_field "7.x" "7.4"
__phpenv_parse_version_field "8.x" "8.4" __phpenv_parse_version_field "8.x" "8.4"
@@ -64,18 +64,18 @@ complete -c phpenv -f -n "__fish_seen_subcommand_from uninstall use local global
-a "(__phpenv_complete_installed_versions)" -d "Installed PHP version" -a "(__phpenv_complete_installed_versions)" -d "Installed PHP version"
# Add system option for use command # Add system option for use command
complete -c phpenv -f -n "__fish_seen_subcommand_from use" -a system -d "Use system PHP" complete -c phpenv -f -n "__fish_seen_subcommand_from use" -a "system" -d "Use system PHP"
# Complete binaries for which command # Complete binaries for which command
complete -c phpenv -f -n "__fish_seen_subcommand_from which" -a "(__phpenv_complete_binaries)" -d "PHP binary" complete -c phpenv -f -n "__fish_seen_subcommand_from which" -a "(__phpenv_complete_binaries)" -d "PHP binary"
# Complete config subcommands # Complete config subcommands
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \ complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a get -d "Get configuration value" -a "get" -d "Get configuration value"
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \ complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a set -d "Set configuration value" -a "set" -d "Set configuration value"
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \ complete -c phpenv -f -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from get set list" \
-a list -d "List all configuration" -a "list" -d "List all configuration"
# Complete config keys # Complete config keys
complete -c phpenv -f -n "__fish_seen_subcommand_from config; and __fish_seen_subcommand_from get set" \ complete -c phpenv -f -n "__fish_seen_subcommand_from config; and __fish_seen_subcommand_from get set" \
@@ -91,27 +91,27 @@ complete -c phpenv -f \
complete -c phpenv -f \ complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \ -n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \ -n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a install -d "Install PHP extension" -a "install" -d "Install PHP extension"
complete -c phpenv -f \ complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \ -n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \ -n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a uninstall -d "Uninstall PHP extension" -a "uninstall" -d "Uninstall PHP extension"
complete -c phpenv -f \ complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \ -n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \ -n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a remove -d "Remove PHP extension" -a "remove" -d "Remove PHP extension"
complete -c phpenv -f \ complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \ -n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \ -n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a list -d "List installed extensions" -a "list" -d "List installed extensions"
complete -c phpenv -f \ complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \ -n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \ -n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a ls -d "List installed extensions" -a "ls" -d "List installed extensions"
complete -c phpenv -f \ complete -c phpenv -f \
-n "__fish_seen_subcommand_from extensions ext" \ -n "__fish_seen_subcommand_from extensions ext" \
-n "not __fish_seen_subcommand_from install uninstall remove list ls available" \ -n "not __fish_seen_subcommand_from install uninstall remove list ls available" \
-a available -d "Show available extensions" -a "available" -d "Show available extensions"
# Complete extension names # Complete extension names
complete -c phpenv -f \ complete -c phpenv -f \

View File

@@ -23,7 +23,7 @@ if not set -q PHPENV_AUTO_SWITCH
end end
if not set -q PHPENV_DEFAULT_EXTENSIONS if not set -q PHPENV_DEFAULT_EXTENSIONS
set -g PHPENV_DEFAULT_EXTENSIONS opcache set -g PHPENV_DEFAULT_EXTENSIONS "opcache"
end end
# Initialize PATH on shell startup if global version is set (less aggressive) # Initialize PATH on shell startup if global version is set (less aggressive)

View File

@@ -1 +0,0 @@
source "/home/ivuorinen/.local/share/cargo/env.fish"

View File

@@ -21,7 +21,6 @@ if status is-interactive
source "$HOME/.config/op/plugins.sh" source "$HOME/.config/op/plugins.sh"
# version manager initializers # version manager initializers
type -q mise; and source (mise activate fish|psub)
type -q rbenv; and source (rbenv init -|psub) type -q rbenv; and source (rbenv init -|psub)
type -q pyenv; and source (pyenv init -|psub) type -q pyenv; and source (pyenv init -|psub)
type -q pyenv; and source (pyenv virtualenv-init -|psub) type -q pyenv; and source (pyenv virtualenv-init -|psub)

View File

@@ -17,9 +17,6 @@ set -q HOSTNAME; or set -x HOSTNAME (hostname -s)
# Add local bin to path # Add local bin to path
fish_add_path "$XDG_BIN_HOME" fish_add_path "$XDG_BIN_HOME"
# Add mise shims to path
fish_add_path "$XDG_DATA_HOME/mise/shims"
# Add cargo bin to path # Add cargo bin to path
fish_add_path "$XDG_SHARE_HOME/cargo/bin" fish_add_path "$XDG_SHARE_HOME/cargo/bin"

View File

@@ -103,7 +103,7 @@ end
function __phpenv_find_version_file -a phpenv_filename function __phpenv_find_version_file -a phpenv_filename
set -l phpenv_dir (pwd) set -l phpenv_dir (pwd)
while test "$phpenv_dir" != / while test "$phpenv_dir" != "/"
if test -f "$phpenv_dir/$phpenv_filename" if test -f "$phpenv_dir/$phpenv_filename"
echo "$phpenv_dir/$phpenv_filename" echo "$phpenv_dir/$phpenv_filename"
return return
@@ -130,13 +130,13 @@ function __phpenv_parse_composer_version
end end
set -l phpenv_platform_php (jq -r '.config.platform.php // empty' composer.json 2>/dev/null) set -l phpenv_platform_php (jq -r '.config.platform.php // empty' composer.json 2>/dev/null)
if test $status -eq 0 -a -n "$phpenv_platform_php" -a "$phpenv_platform_php" != null if test $status -eq 0 -a -n "$phpenv_platform_php" -a "$phpenv_platform_php" != "null"
echo $phpenv_platform_php echo $phpenv_platform_php
return return
end end
set -l phpenv_require_php (jq -r '.require.php // empty' composer.json 2>/dev/null) set -l phpenv_require_php (jq -r '.require.php // empty' composer.json 2>/dev/null)
if test $status -eq 0 -a -n "$phpenv_require_php" -a "$phpenv_require_php" != null if test $status -eq 0 -a -n "$phpenv_require_php" -a "$phpenv_require_php" != "null"
__phpenv_parse_semver_constraint $phpenv_require_php __phpenv_parse_semver_constraint $phpenv_require_php
return return
end end
@@ -196,7 +196,7 @@ set -g __phpenv_version_cache_time 0
function __phpenv_get_version_info function __phpenv_get_version_info
set -l current_time (date +%s) set -l current_time (date +%s)
set -l cache_duration 300 # 5 minutes set -l cache_duration 300 # 5 minutes
# Return cached version if still valid # Return cached version if still valid
if test -n "$__phpenv_version_cache" if test -n "$__phpenv_version_cache"
@@ -236,12 +236,12 @@ end
# Check if Ondřej PPA is configured on the system # Check if Ondřej PPA is configured on the system
function __phpenv_has_ondrej_ppa function __phpenv_has_ondrej_ppa
if test -d /etc/apt/sources.list.d if test -d /etc/apt/sources.list.d
if grep -rq ondrej/php /etc/apt/sources.list.d/ 2>/dev/null if grep -rq "ondrej/php" /etc/apt/sources.list.d/ 2>/dev/null
return 0 return 0
end end
end end
if test -f /etc/apt/sources.list if test -f /etc/apt/sources.list
if grep -q ondrej/php /etc/apt/sources.list 2>/dev/null if grep -q "ondrej/php" /etc/apt/sources.list 2>/dev/null
return 0 return 0
end end
end end
@@ -262,34 +262,34 @@ function __phpenv_get_provider
end end
# macOS always uses Homebrew # macOS always uses Homebrew
if test (uname -s) = Darwin if test (uname -s) = "Darwin"
echo homebrew echo "homebrew"
return 0 return 0
end end
# Linux: check for apt with Ondřej PPA first # Linux: check for apt with Ondřej PPA first
if test (uname -s) = Linux if test (uname -s) = "Linux"
if command -q apt-get; and __phpenv_has_ondrej_ppa if command -q apt-get; and __phpenv_has_ondrej_ppa
echo apt echo "apt"
return 0 return 0
end end
# Fall back to Homebrew (Linuxbrew) if available # Fall back to Homebrew (Linuxbrew) if available
if command -q brew if command -q brew
echo homebrew echo "homebrew"
return 0 return 0
end end
# If apt is available but no PPA yet, still use apt provider # If apt is available but no PPA yet, still use apt provider
# (it will prompt to add the PPA when needed) # (it will prompt to add the PPA when needed)
if command -q apt-get if command -q apt-get
echo apt echo "apt"
return 0 return 0
end end
end end
# Default fallback # Default fallback
echo homebrew echo "homebrew"
return 0 return 0
end end
@@ -319,7 +319,7 @@ function __phpenv_provider_homebrew_ensure_source
end end
# Check and add required taps only if missing # Check and add required taps only if missing
set -l required_taps shivammathur/php shivammathur/extensions set -l required_taps "shivammathur/php" "shivammathur/extensions"
for tap in $required_taps for tap in $required_taps
if not brew tap | grep -qx $tap 2>/dev/null if not brew tap | grep -qx $tap 2>/dev/null
if not brew tap $tap 2>/dev/null if not brew tap $tap 2>/dev/null
@@ -343,7 +343,7 @@ function __phpenv_provider_homebrew_list_installed
continue continue
end end
if test "$phpenv_basename" = php if test "$phpenv_basename" = "php"
set -l phpenv_latest (__phpenv_parse_version_field "latest" "8.4") set -l phpenv_latest (__phpenv_parse_version_field "latest" "8.4")
set -a phpenv_versions $phpenv_latest set -a phpenv_versions $phpenv_latest
else if echo $phpenv_basename | grep -qE '^php@[0-9]+\.[0-9]+$' else if echo $phpenv_basename | grep -qE '^php@[0-9]+\.[0-9]+$'
@@ -375,7 +375,7 @@ function __phpenv_provider_homebrew_list_available
continue continue
end end
if test "$phpenv_clean_name" = php if test "$phpenv_clean_name" = "php"
set -a phpenv_versions "$phpenv_latest_version (latest)" set -a phpenv_versions "$phpenv_latest_version (latest)"
else if echo $phpenv_clean_name | grep -qE '^php@[0-9]+\.[0-9]+$' else if echo $phpenv_clean_name | grep -qE '^php@[0-9]+\.[0-9]+$'
set -l phpenv_version (echo $phpenv_clean_name | sed 's/php@//') set -l phpenv_version (echo $phpenv_clean_name | sed 's/php@//')
@@ -502,7 +502,7 @@ function __phpenv_provider_homebrew_ext_list -a phpenv_version
for phpenv_ext_dir in $phpenv_cellar_path/*@$phpenv_version for phpenv_ext_dir in $phpenv_cellar_path/*@$phpenv_version
if test -d $phpenv_ext_dir if test -d $phpenv_ext_dir
set -l phpenv_ext_name (basename $phpenv_ext_dir | sed "s/@$phpenv_version//") set -l phpenv_ext_name (basename $phpenv_ext_dir | sed "s/@$phpenv_version//")
if test "$phpenv_ext_name" != php if test "$phpenv_ext_name" != "php"
echo $phpenv_ext_name echo $phpenv_ext_name
end end
end end
@@ -574,7 +574,7 @@ function __phpenv_provider_apt_ensure_source
echo "" echo ""
read -P "Add ppa:ondrej/php? [y/N] " -l confirm read -P "Add ppa:ondrej/php? [y/N] " -l confirm
if test "$confirm" = y -o "$confirm" = Y if test "$confirm" = "y" -o "$confirm" = "Y"
echo "Adding ppa:ondrej/php..." echo "Adding ppa:ondrej/php..."
if command -q add-apt-repository if command -q add-apt-repository
if sudo add-apt-repository -y ppa:ondrej/php if sudo add-apt-repository -y ppa:ondrej/php
@@ -603,7 +603,8 @@ function __phpenv_provider_apt_list_installed
return 1 return 1
end end
dpkg -l 'php[0-9]*-cli' 2>/dev/null | grep '^ii' | sed -E 's/^ii\s+php([0-9]+\.[0-9]+)-cli.*/\1/' | sort -V | uniq dpkg -l 'php[0-9]*-cli' 2>/dev/null | grep '^ii' | \
sed -E 's/^ii\s+php([0-9]+\.[0-9]+)-cli.*/\1/' | sort -V | uniq
end end
function __phpenv_provider_apt_list_available function __phpenv_provider_apt_list_available
@@ -612,7 +613,8 @@ function __phpenv_provider_apt_list_available
return return
end end
apt-cache search '^php[0-9]+\.[0-9]+-cli$' 2>/dev/null | sed -E 's/^php([0-9]+\.[0-9]+)-cli.*/\1/' | sort -V | uniq apt-cache search '^php[0-9]+\.[0-9]+-cli$' 2>/dev/null | \
sed -E 's/^php([0-9]+\.[0-9]+)-cli.*/\1/' | sort -V | uniq
end end
function __phpenv_provider_apt_get_php_path -a phpenv_version function __phpenv_provider_apt_get_php_path -a phpenv_version
@@ -642,7 +644,7 @@ function __phpenv_provider_apt_get_php_path -a phpenv_version
set -l temp_link "$target.$fish_pid" set -l temp_link "$target.$fish_pid"
ln -s "$source" "$temp_link" 2>/dev/null ln -s "$source" "$temp_link" 2>/dev/null
and mv -f "$temp_link" "$target" 2>/dev/null and mv -f "$temp_link" "$target" 2>/dev/null
else if test "$binary" = phar; and test -x "/usr/bin/phar$phpenv_version" else if test "$binary" = "phar"; and test -x "/usr/bin/phar$phpenv_version"
set -l temp_link "$target.$fish_pid" set -l temp_link "$target.$fish_pid"
ln -s "/usr/bin/phar$phpenv_version" "$temp_link" 2>/dev/null ln -s "/usr/bin/phar$phpenv_version" "$temp_link" 2>/dev/null
and mv -f "$temp_link" "$target" 2>/dev/null and mv -f "$temp_link" "$target" 2>/dev/null
@@ -817,7 +819,8 @@ function __phpenv_provider_apt_ext_list -a phpenv_version
# Filter out core packages (cli, common, etc.) # Filter out core packages (cli, common, etc.)
set -l core_packages cli common opcache fpm cgi phpdbg set -l core_packages cli common opcache fpm cgi phpdbg
dpkg -l "php$phpenv_version-*" 2>/dev/null | grep '^ii' | awk '{print $2}' | sed "s/php$phpenv_version-//" | while read ext dpkg -l "php$phpenv_version-*" 2>/dev/null | grep '^ii' | awk '{print $2}' | \
sed "s/php$phpenv_version-//" | while read ext
# Skip core packages # Skip core packages
set -l is_core 0 set -l is_core 0
for core in $core_packages for core in $core_packages
@@ -834,7 +837,9 @@ end
function __phpenv_provider_apt_ext_available -a phpenv_version function __phpenv_provider_apt_ext_available -a phpenv_version
# List available extensions from apt cache # List available extensions from apt cache
apt-cache search "^php$phpenv_version-" 2>/dev/null | sed "s/php$phpenv_version-//" | awk '{print $1}' | grep -v -E '^(cli|common|fpm|cgi|phpdbg|dev)$' | sort | uniq apt-cache search "^php$phpenv_version-" 2>/dev/null | \
sed "s/php$phpenv_version-//" | awk '{print $1}' | \
grep -v -E '^(cli|common|fpm|cgi|phpdbg|dev)$' | sort | uniq
end end
function __phpenv_provider_apt_get_path_pattern function __phpenv_provider_apt_get_path_pattern
@@ -974,9 +979,9 @@ end
function __phpenv_resolve_version_alias -a phpenv_version function __phpenv_resolve_version_alias -a phpenv_version
switch $phpenv_version switch $phpenv_version
case latest case latest
__phpenv_parse_version_field latest "8.4" __phpenv_parse_version_field "latest" "8.4"
case nightly case nightly
__phpenv_parse_version_field nightly "8.5" __phpenv_parse_version_field "nightly" "8.5"
case '8.x' case '8.x'
__phpenv_parse_version_field "8.x" "8.4" __phpenv_parse_version_field "8.x" "8.4"
case '7.x' case '7.x'
@@ -992,7 +997,7 @@ function __phpenv_get_formula_name -a phpenv_version
set -l phpenv_latest_version (__phpenv_parse_version_field "latest" "8.4") set -l phpenv_latest_version (__phpenv_parse_version_field "latest" "8.4")
if test "$phpenv_version" = "$phpenv_latest_version" if test "$phpenv_version" = "$phpenv_latest_version"
echo shivammathur/php/php echo "shivammathur/php/php"
else else
echo "shivammathur/php/php@$phpenv_version" echo "shivammathur/php/php@$phpenv_version"
end end
@@ -1135,7 +1140,7 @@ function __phpenv_use
set -l phpenv_version $argv[1] set -l phpenv_version $argv[1]
# Handle special case: restore system PHP # Handle special case: restore system PHP
if test "$phpenv_version" = system if test "$phpenv_version" = "system"
__phpenv_restore_system_path __phpenv_restore_system_path
echo "Restored system PHP" echo "Restored system PHP"
return 0 return 0
@@ -1152,7 +1157,7 @@ function __phpenv_use
end end
if not __phpenv_is_version_installed $phpenv_version if not __phpenv_is_version_installed $phpenv_version
if test "$(__phpenv_config_get auto-install)" = true if test "$(__phpenv_config_get auto-install)" = "true"
__phpenv_install $phpenv_version __phpenv_install $phpenv_version
else else
echo "PHP $phpenv_version is not installed. Install with: phpenv install $phpenv_version" echo "PHP $phpenv_version is not installed. Install with: phpenv install $phpenv_version"
@@ -1174,7 +1179,7 @@ function __phpenv_local -a phpenv_version
return 1 return 1
end end
echo $phpenv_version >.php-version echo $phpenv_version > .php-version
echo "Set local PHP version to $phpenv_version" echo "Set local PHP version to $phpenv_version"
end end
@@ -1267,7 +1272,7 @@ function __phpenv_get_tap_versions
continue continue
end end
if test "$phpenv_clean_name" = php if test "$phpenv_clean_name" = "php"
set -a phpenv_versions "$phpenv_latest_version (latest)" set -a phpenv_versions "$phpenv_latest_version (latest)"
else if echo $phpenv_clean_name | grep -qE '^php@[0-9]+\.[0-9]+$' else if echo $phpenv_clean_name | grep -qE '^php@[0-9]+\.[0-9]+$'
set -l phpenv_version (echo $phpenv_clean_name | sed 's/php@//') set -l phpenv_version (echo $phpenv_clean_name | sed 's/php@//')
@@ -1305,7 +1310,7 @@ function __phpenv_doctor
# Show provider information # Show provider information
set -l provider (__phpenv_get_provider) set -l provider (__phpenv_get_provider)
set -l provider_source auto-detected set -l provider_source "auto-detected"
if set -q PHPENV_PROVIDER; and test -n "$PHPENV_PROVIDER" if set -q PHPENV_PROVIDER; and test -n "$PHPENV_PROVIDER"
set provider_source "PHPENV_PROVIDER override" set provider_source "PHPENV_PROVIDER override"
end end
@@ -1424,7 +1429,7 @@ function __phpenv_config_get -a phpenv_key
end end
end end
if test "$argv[2]" = --verbose if test "$argv[2]" = "--verbose"
if test -n "$phpenv_value" if test -n "$phpenv_value"
echo "$phpenv_key = $phpenv_value (from $phpenv_source)" echo "$phpenv_key = $phpenv_value (from $phpenv_source)"
else else
@@ -1576,18 +1581,19 @@ function __phpenv_get_tap_formulas -a tap_name
return 1 return 1
end end
brew tap-info $tap_name --json 2>/dev/null | jq -r '.[]|(.formula_names[]?)' 2>/dev/null brew tap-info $tap_name --json 2>/dev/null | \
jq -r '.[]|(.formula_names[]?)' 2>/dev/null
end end
function __phpenv_get_available_extensions function __phpenv_get_available_extensions
__phpenv_get_tap_formulas shivammathur/extensions __phpenv_get_tap_formulas "shivammathur/extensions"
end end
function __phpenv_extension_available -a phpenv_extension phpenv_version function __phpenv_extension_available -a phpenv_extension phpenv_version
set -l phpenv_available_extensions (__phpenv_get_available_extensions) set -l phpenv_available_extensions (__phpenv_get_available_extensions)
if test -z "$phpenv_available_extensions" if test -z "$phpenv_available_extensions"
return 0 # Assume available if can't check return 0 # Assume available if can't check
end end
for phpenv_ext_formula in $phpenv_available_extensions for phpenv_ext_formula in $phpenv_available_extensions
@@ -1689,7 +1695,7 @@ function __phpenv_auto_switch --on-variable PWD
end end
set -l phpenv_auto_switch (__phpenv_config_get auto-switch) set -l phpenv_auto_switch (__phpenv_config_get auto-switch)
if test "$phpenv_auto_switch" = false if test "$phpenv_auto_switch" = "false"
return 0 return 0
end end
@@ -1712,7 +1718,7 @@ function __phpenv_auto_switch --on-variable PWD
set -g PHPENV_LAST_SWITCH_TIME $phpenv_current_time set -g PHPENV_LAST_SWITCH_TIME $phpenv_current_time
else else
set -l phpenv_auto_install (__phpenv_config_get auto-install) set -l phpenv_auto_install (__phpenv_config_get auto-install)
if test "$phpenv_auto_install" = true if test "$phpenv_auto_install" = "true"
echo "Auto-installing PHP $phpenv_new_version..." echo "Auto-installing PHP $phpenv_new_version..."
if phpenv install "$phpenv_new_version" if phpenv install "$phpenv_new_version"
set -g PHPENV_LAST_SWITCH_TIME $phpenv_current_time set -g PHPENV_LAST_SWITCH_TIME $phpenv_current_time
@@ -1765,7 +1771,7 @@ function __phpenv_help
end end
function __phpenv_validate_boolean -a phpenv_value function __phpenv_validate_boolean -a phpenv_value
test "$phpenv_value" = true -o "$phpenv_value" = false test "$phpenv_value" = "true" -o "$phpenv_value" = "false"
end end
function __phpenv_validate_version -a phpenv_version function __phpenv_validate_version -a phpenv_version

View File

@@ -1,5 +1,6 @@
---
github.com: github.com:
git_protocol: ssh git_protocol: https
users: users:
ivuorinen: ivuorinen:
user: ivuorinen user: ivuorinen

View File

@@ -8,11 +8,8 @@
# #
# Smart session manager for the terminal # Smart session manager for the terminal
# https://github.com/joshmedeski/sesh # https://github.com/joshmedeski/sesh
#:schema https://github.com/joshmedeski/sesh/raw/main/sesh.schema.json
strict_mode = false strict_mode = false
dir_length = 2 # Uses last 2 directories: "projects/sesh" instead of just "sesh"
cache = true
# [marker] # [marker]
# inactivity_threshold = 10 # Seconds before alerts start # inactivity_threshold = 10 # Seconds before alerts start
@@ -55,7 +52,3 @@ disable_startup_command = true
name = "Downloads" name = "Downloads"
path = "~/Downloads" path = "~/Downloads"
startup_command = "lsa" startup_command = "lsa"
[[session]]
name = "Code/ivuorinen"
path = "~/Code/ivuorinen/"

View File

@@ -10,7 +10,7 @@ config.color_scheme_dirs = {
} }
-- Font and font size -- Font and font size
config.font_size = 12 config.font_size = 16
config.font = wezterm.font_with_fallback { config.font = wezterm.font_with_fallback {
{ {
family = 'Monaspace Argon NF', family = 'Monaspace Argon NF',
@@ -48,9 +48,9 @@ config.window_background_opacity = 0.97
config.window_decorations = 'RESIZE' config.window_decorations = 'RESIZE'
config.macos_window_background_blur = 10 config.macos_window_background_blur = 10
config.window_padding = { config.window_padding = {
left = 10, left = 5,
right = 10, right = 5,
top = 10, top = 5,
bottom = 5, bottom = 5,
} }

View File

@@ -88,7 +88,6 @@ section_install()
"nvm-latest:Install latest lts node using nvm" "nvm-latest:Install latest lts node using nvm"
"nvm:Install Node Version Manager (nvm)" "nvm:Install Node Version Manager (nvm)"
"python-packages:Install Python packages via uv" "python-packages:Install Python packages via uv"
"shellspec:Install shellspec testing framework"
"xcode-cli-tools:Install Xcode CLI tools (macOS)" "xcode-cli-tools:Install Xcode CLI tools (macOS)"
"z:Install z" "z:Install z"
) )
@@ -122,7 +121,6 @@ section_install()
$0 install ntfy $0 install ntfy
# Tier 4: Independent utilities # Tier 4: Independent utilities
$0 install shellspec
$0 install z $0 install z
msgr msg "Reloading configurations again..." msgr msg "Reloading configurations again..."
@@ -247,12 +245,6 @@ section_install()
&& msgr yay "Xcode CLI tools installed!" && msgr yay "Xcode CLI tools installed!"
;; ;;
shellspec)
msgr run "Installing shellspec..."
bash "$DOTFILES/scripts/install-shellspec.sh" \
&& msgr yay "shellspec has been installed!"
;;
z) z)
msgr run "Installing z..." msgr run "Installing z..."
bash "$DOTFILES/scripts/install-z.sh" \ bash "$DOTFILES/scripts/install-z.sh" \

View File

@@ -1,103 +0,0 @@
#!/usr/bin/env bash
#
# Register level-1 subdirectories with zoxide so they appear
# in `z` completions.
# Usage: x-visit-folders [options] [directory]
#
# Example: x-visit-folders ~/Code/ivuorinen
#
# Copyright (c) 2026 Ismo Vuorinen. All Rights Reserved.
# Licensed under the MIT license.
#
# @description Register level-1 subdirectories with zoxide
set -euo pipefail
# Enable verbosity with VERBOSE=1
VERBOSE="${VERBOSE:-0}"
DRY_RUN=0
# Function to print usage information
usage()
{
echo "Usage: $0 [options] [directory]"
echo ""
echo "Options:"
echo " -h, --help Show this help message"
echo " -v, --verbose Print each directory as it is visited"
echo " -n, --dry-run List directories without adding them"
local code="${1:-1}"
exit "$code"
}
# Function to print messages if VERBOSE is enabled
# $1 - message (string)
msg()
{
[[ "$VERBOSE" -eq 1 ]] && echo "$1"
}
# Function to print error messages and exit
# $1 - error message (string)
msg_err()
{
echo "(!) ERROR: $1" >&2
exit 1
}
# Function to register a directory with zoxide
# $1 - directory path (string)
visit_dir()
{
if zoxide add "$1" 2> /dev/null; then
msg "Added: $1"
else
msg "zoxide add failed for: $1"
fi
}
# Main function
main()
{
while [[ $# -gt 0 ]]; do
case "$1" in
-h | --help) usage 0 ;;
-v | --verbose) VERBOSE=1 ;;
-n | --dry-run) DRY_RUN=1 ;;
-*)
msg_err "Unknown option: $1"
;;
*)
break
;;
esac
shift
done
local target="${1:-.}"
if [[ ! -d "$target" ]]; then
msg_err "Not a directory: $target"
fi
target="$(cd "$target" && pwd)"
local count=0
for dir in "$target"/*/; do
[[ -d "$dir" ]] || continue
local name
name="$(basename "$dir")"
[[ "$name" == .* ]] && continue
if [[ "$DRY_RUN" -eq 1 ]]; then
echo "(dry-run) $dir"
else
visit_dir "$dir"
fi
count=$((count + 1))
done
echo "Visited $count directories."
}
main "$@"

View File

@@ -1,23 +0,0 @@
# x-visit-folders
Register level-1 subdirectories with zoxide so they appear in
`z` completions.
## Usage
```bash
x-visit-folders [options] [directory]
```
- `directory` target directory (defaults to current directory)
- `-n`, `--dry-run` list directories without adding them
- `-v`, `--verbose` print each directory as it is visited
- `-h`, `--help` show usage information
## Example
```bash
x-visit-folders ~/Code/ivuorinen
```
<!-- vim: set ft=markdown spell spelllang=en_us cc=80 : -->

View File

@@ -34,16 +34,13 @@
}, },
"homepage": "https://github.com/ivuorinen/dotfiles#readme", "homepage": "https://github.com/ivuorinen/dotfiles#readme",
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.4.4", "@biomejs/biome": "^2.3.1",
"@types/node": "^25.3.2", "@types/node": "^24.0.1",
"bats": "^1.13.0", "bats": "^1.12.0",
"editorconfig-checker": "^6.1.1", "editorconfig-checker": "^6.1.0",
"markdown-table-formatter": "^1.7.0", "markdown-table-formatter": "^1.7.0",
"prettier": "^3.8.1", "prettier": "^3.8.1",
"typescript": "^5.9.3" "typescript": "^5.8.3"
},
"resolutions": {
"minimatch": "^10.2.4"
}, },
"packageManager": "yarn@4.12.0" "packageManager": "yarn@4.12.0"
} }

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -uo pipefail set -euo pipefail
# @description Install cargo/rust packages. # @description Install cargo/rust packages.
# #
# shellcheck source=shared.sh # shellcheck source=shared.sh

View File

@@ -1,16 +0,0 @@
# install-shellspec
Installs [shellspec](https://github.com/shellspec/shellspec), a BDD-style
testing framework for shell scripts.
## Usage
```bash
scripts/install-shellspec.sh
```
The script resolves the latest release tag via `x-gh-get-latest-version`,
clones shellspec to `~/.cache/shellspec` pinned to that tag, and runs
`make install PREFIX=$HOME/.local`, placing the binary in `~/.local/bin/`.
Re-running the script fetches and checks out the newest release tag
before reinstalling.

View File

@@ -1,37 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
# @description Install shellspec testing framework
#
# shellcheck source=shared.sh
source "${DOTFILES}/config/shared.sh"
SHELLSPEC_REPO="https://github.com/shellspec/shellspec.git"
SHELLSPEC_CACHE="$HOME/.cache/shellspec"
install_shellspec()
{
local version
version=$(x-gh-get-latest-version shellspec/shellspec)
msgr ok "Latest shellspec version: $version"
if [[ -d "$SHELLSPEC_CACHE" ]]; then
msgr ok "shellspec repo already cloned, fetching $version..."
git -C "$SHELLSPEC_CACHE" fetch --depth=1 origin "refs/tags/$version"
git -C "$SHELLSPEC_CACHE" checkout "$version"
else
git clone --branch "$version" --depth=1 "$SHELLSPEC_REPO" "$SHELLSPEC_CACHE"
fi
msgr run "Running make install..."
make -C "$SHELLSPEC_CACHE" install PREFIX="$HOME/.local"
msgr run_done "shellspec $version installed to $HOME/.local/bin/shellspec"
return 0
}
main()
{
install_shellspec
return 0
}
main "$@"

178
yarn.lock
View File

@@ -5,18 +5,18 @@ __metadata:
version: 8 version: 8
cacheKey: 10c0 cacheKey: 10c0
"@biomejs/biome@npm:^2.4.4": "@biomejs/biome@npm:^2.3.1":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/biome@npm:2.4.4" resolution: "@biomejs/biome@npm:2.3.11"
dependencies: dependencies:
"@biomejs/cli-darwin-arm64": "npm:2.4.4" "@biomejs/cli-darwin-arm64": "npm:2.3.11"
"@biomejs/cli-darwin-x64": "npm:2.4.4" "@biomejs/cli-darwin-x64": "npm:2.3.11"
"@biomejs/cli-linux-arm64": "npm:2.4.4" "@biomejs/cli-linux-arm64": "npm:2.3.11"
"@biomejs/cli-linux-arm64-musl": "npm:2.4.4" "@biomejs/cli-linux-arm64-musl": "npm:2.3.11"
"@biomejs/cli-linux-x64": "npm:2.4.4" "@biomejs/cli-linux-x64": "npm:2.3.11"
"@biomejs/cli-linux-x64-musl": "npm:2.4.4" "@biomejs/cli-linux-x64-musl": "npm:2.3.11"
"@biomejs/cli-win32-arm64": "npm:2.4.4" "@biomejs/cli-win32-arm64": "npm:2.3.11"
"@biomejs/cli-win32-x64": "npm:2.4.4" "@biomejs/cli-win32-x64": "npm:2.3.11"
dependenciesMeta: dependenciesMeta:
"@biomejs/cli-darwin-arm64": "@biomejs/cli-darwin-arm64":
optional: true optional: true
@@ -36,83 +36,92 @@ __metadata:
optional: true optional: true
bin: bin:
biome: bin/biome biome: bin/biome
checksum: 10c0/f2b7620d39caeeb9e0ed070dd1065cc2378626c7fa6ecda3db84b64df4c94fb4909407726044e28c83e8a95121ad389498cc3f0e5be600a421d906ca705b821c checksum: 10c0/b9764070c3d1583466a8861d37dc480c18103f7bb52115db0f265a38e6343d69792c9beea094e0b3db0905cb365b9a82ad2a0f3f05b7f04873a8f9b444263140
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-darwin-arm64@npm:2.4.4": "@biomejs/cli-darwin-arm64@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-darwin-arm64@npm:2.4.4" resolution: "@biomejs/cli-darwin-arm64@npm:2.3.11"
conditions: os=darwin & cpu=arm64 conditions: os=darwin & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-darwin-x64@npm:2.4.4": "@biomejs/cli-darwin-x64@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-darwin-x64@npm:2.4.4" resolution: "@biomejs/cli-darwin-x64@npm:2.3.11"
conditions: os=darwin & cpu=x64 conditions: os=darwin & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-linux-arm64-musl@npm:2.4.4": "@biomejs/cli-linux-arm64-musl@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-linux-arm64-musl@npm:2.4.4" resolution: "@biomejs/cli-linux-arm64-musl@npm:2.3.11"
conditions: os=linux & cpu=arm64 & libc=musl conditions: os=linux & cpu=arm64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-linux-arm64@npm:2.4.4": "@biomejs/cli-linux-arm64@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-linux-arm64@npm:2.4.4" resolution: "@biomejs/cli-linux-arm64@npm:2.3.11"
conditions: os=linux & cpu=arm64 & libc=glibc conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-linux-x64-musl@npm:2.4.4": "@biomejs/cli-linux-x64-musl@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-linux-x64-musl@npm:2.4.4" resolution: "@biomejs/cli-linux-x64-musl@npm:2.3.11"
conditions: os=linux & cpu=x64 & libc=musl conditions: os=linux & cpu=x64 & libc=musl
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-linux-x64@npm:2.4.4": "@biomejs/cli-linux-x64@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-linux-x64@npm:2.4.4" resolution: "@biomejs/cli-linux-x64@npm:2.3.11"
conditions: os=linux & cpu=x64 & libc=glibc conditions: os=linux & cpu=x64 & libc=glibc
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-win32-arm64@npm:2.4.4": "@biomejs/cli-win32-arm64@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-win32-arm64@npm:2.4.4" resolution: "@biomejs/cli-win32-arm64@npm:2.3.11"
conditions: os=win32 & cpu=arm64 conditions: os=win32 & cpu=arm64
languageName: node languageName: node
linkType: hard linkType: hard
"@biomejs/cli-win32-x64@npm:2.4.4": "@biomejs/cli-win32-x64@npm:2.3.11":
version: 2.4.4 version: 2.3.11
resolution: "@biomejs/cli-win32-x64@npm:2.4.4" resolution: "@biomejs/cli-win32-x64@npm:2.3.11"
conditions: os=win32 & cpu=x64 conditions: os=win32 & cpu=x64
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^25.3.2": "@isaacs/balanced-match@npm:^4.0.1":
version: 25.3.3 version: 4.0.1
resolution: "@types/node@npm:25.3.3" resolution: "@isaacs/balanced-match@npm:4.0.1"
checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420
languageName: node
linkType: hard
"@isaacs/brace-expansion@npm:^5.0.1":
version: 5.0.1
resolution: "@isaacs/brace-expansion@npm:5.0.1"
dependencies: dependencies:
undici-types: "npm:~7.18.0" "@isaacs/balanced-match": "npm:^4.0.1"
checksum: 10c0/63e1d3816a9f4a706ab5d588d18cb98aa824b97748ff585537d327528e9438f58f69f45c7762e7cd3a1ab32c1619f551aabe8075d13172f9273cf10f6d83ab91 checksum: 10c0/e5d67c7bbf1f17b88132a35bc638af306d48acbb72810d48fa6e6edd8ab375854773108e8bf70f021f7ef6a8273455a6d1f0c3b5aa2aff06ce7894049ab77fb8
languageName: node languageName: node
linkType: hard linkType: hard
"balanced-match@npm:^4.0.2": "@types/node@npm:^24.0.1":
version: 4.0.4 version: 24.10.9
resolution: "balanced-match@npm:4.0.4" resolution: "@types/node@npm:24.10.9"
checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b dependencies:
undici-types: "npm:~7.16.0"
checksum: 10c0/e9e436fcd2136bddb1bbe3271a89f4653910bcf6ee8047c4117f544c7905a106c039e2720ee48f28505ef2560e22fb9ead719f28bf5e075fdde0c1120e38e3b2
languageName: node languageName: node
linkType: hard linkType: hard
"bats@npm:^1.13.0": "bats@npm:^1.12.0":
version: 1.13.0 version: 1.13.0
resolution: "bats@npm:1.13.0" resolution: "bats@npm:1.13.0"
bin: bin:
@@ -121,15 +130,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"brace-expansion@npm:^5.0.2":
version: 5.0.4
resolution: "brace-expansion@npm:5.0.4"
dependencies:
balanced-match: "npm:^4.0.2"
checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a
languageName: node
linkType: hard
"debug@npm:^4.3.4": "debug@npm:^4.3.4":
version: 4.4.3 version: 4.4.3
resolution: "debug@npm:4.4.3" resolution: "debug@npm:4.4.3"
@@ -149,7 +149,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"editorconfig-checker@npm:^6.1.1": "editorconfig-checker@npm:^6.1.0":
version: 6.1.1 version: 6.1.1
resolution: "editorconfig-checker@npm:6.1.1" resolution: "editorconfig-checker@npm:6.1.1"
bin: bin:
@@ -185,13 +185,13 @@ __metadata:
linkType: hard linkType: hard
"glob@npm:^13.0.0": "glob@npm:^13.0.0":
version: 13.0.6 version: 13.0.1
resolution: "glob@npm:13.0.6" resolution: "glob@npm:13.0.1"
dependencies: dependencies:
minimatch: "npm:^10.2.2" minimatch: "npm:^10.1.2"
minipass: "npm:^7.1.3" minipass: "npm:^7.1.2"
path-scurry: "npm:^2.0.2" path-scurry: "npm:^2.0.0"
checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a checksum: 10c0/af7b863dec8dff74f61d7d6e53104e1f6bbdd482157a196cade8ed857481e876ec35181b38a059b2a7b93ea3b08248f4ff0792fef6dc91814fd5097a716f48e4
languageName: node languageName: node
linkType: hard linkType: hard
@@ -206,13 +206,13 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "ivuorinen-dotfiles@workspace:." resolution: "ivuorinen-dotfiles@workspace:."
dependencies: dependencies:
"@biomejs/biome": "npm:^2.4.4" "@biomejs/biome": "npm:^2.3.1"
"@types/node": "npm:^25.3.2" "@types/node": "npm:^24.0.1"
bats: "npm:^1.13.0" bats: "npm:^1.12.0"
editorconfig-checker: "npm:^6.1.1" editorconfig-checker: "npm:^6.1.0"
markdown-table-formatter: "npm:^1.7.0" markdown-table-formatter: "npm:^1.7.0"
prettier: "npm:^3.8.1" prettier: "npm:^3.8.1"
typescript: "npm:^5.9.3" typescript: "npm:^5.8.3"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -240,9 +240,9 @@ __metadata:
linkType: hard linkType: hard
"lru-cache@npm:^11.0.0": "lru-cache@npm:^11.0.0":
version: 11.2.6 version: 11.2.5
resolution: "lru-cache@npm:11.2.6" resolution: "lru-cache@npm:11.2.5"
checksum: 10c0/73bbffb298760e71b2bfe8ebc16a311c6a60ceddbba919cfedfd8635c2d125fbfb5a39b71818200e67973b11f8d59c5a9e31d6f90722e340e90393663a66e5cd checksum: 10c0/cc98958d25dddf1c8a8cbdc49588bd3b24450e8dfa78f32168fd188a20d4a0331c7406d0f3250c86a46619ee288056fd7a1195e8df56dc8a9592397f4fbd8e1d
languageName: node languageName: node
linkType: hard linkType: hard
@@ -271,19 +271,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"minimatch@npm:^10.2.4": "minimatch@npm:^10.1.2":
version: 10.2.4 version: 10.1.2
resolution: "minimatch@npm:10.2.4" resolution: "minimatch@npm:10.1.2"
dependencies: dependencies:
brace-expansion: "npm:^5.0.2" "@isaacs/brace-expansion": "npm:^5.0.1"
checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945 checksum: 10c0/0cccef3622201703de6ecf9d772c0be1d5513dcc038ed9feb866c20cf798243e678ac35605dac3f1a054650c28037486713fe9e9a34b184b9097959114daf086
languageName: node languageName: node
linkType: hard linkType: hard
"minipass@npm:^7.1.2, minipass@npm:^7.1.3": "minipass@npm:^7.1.2":
version: 7.1.3 version: 7.1.2
resolution: "minipass@npm:7.1.3" resolution: "minipass@npm:7.1.2"
checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557
languageName: node languageName: node
linkType: hard linkType: hard
@@ -308,13 +308,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"path-scurry@npm:^2.0.2": "path-scurry@npm:^2.0.0":
version: 2.0.2 version: 2.0.1
resolution: "path-scurry@npm:2.0.2" resolution: "path-scurry@npm:2.0.1"
dependencies: dependencies:
lru-cache: "npm:^11.0.0" lru-cache: "npm:^11.0.0"
minipass: "npm:^7.1.2" minipass: "npm:^7.1.2"
checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482 checksum: 10c0/2a16ed0e81fbc43513e245aa5763354e25e787dab0d539581a6c3f0f967461a159ed6236b2559de23aa5b88e7dc32b469b6c47568833dd142a4b24b4f5cd2620
languageName: node languageName: node
linkType: hard linkType: hard
@@ -343,7 +343,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"typescript@npm:^5.9.3": "typescript@npm:^5.8.3":
version: 5.9.3 version: 5.9.3
resolution: "typescript@npm:5.9.3" resolution: "typescript@npm:5.9.3"
bin: bin:
@@ -353,7 +353,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"typescript@patch:typescript@npm%3A^5.9.3#optional!builtin<compat/typescript>": "typescript@patch:typescript@npm%3A^5.8.3#optional!builtin<compat/typescript>":
version: 5.9.3 version: 5.9.3
resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin<compat/typescript>::version=5.9.3&hash=5786d5" resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin<compat/typescript>::version=5.9.3&hash=5786d5"
bin: bin:
@@ -363,10 +363,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici-types@npm:~7.18.0": "undici-types@npm:~7.16.0":
version: 7.18.2 version: 7.16.0
resolution: "undici-types@npm:7.18.2" resolution: "undici-types@npm:7.16.0"
checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a
languageName: node languageName: node
linkType: hard linkType: hard