Compare commits

...

5 commits

10 changed files with 251 additions and 98 deletions

View file

@ -32,6 +32,7 @@ in
./modules/qdrant.nix ./modules/qdrant.nix
./modules/battery-brightness.nix ./modules/battery-brightness.nix
./modules/charge-control.nix ./modules/charge-control.nix
./modules/bluetooth-waybar.nix
./modules/suspend-fixes.nix ./modules/suspend-fixes.nix
./cachix.nix ./cachix.nix

View file

@ -0,0 +1,106 @@
{ pkgs, ... }:
let
waybar-bluetooth = pkgs.writeShellScriptBin "waybar-bluetooth" ''
powered=$(${pkgs.bluez}/bin/bluetoothctl show | ${pkgs.gnugrep}/bin/grep "Powered:" | ${pkgs.gawk}/bin/awk '{print $2}')
if [ "$powered" = "yes" ]; then
connected_device=$(${pkgs.bluez}/bin/bluetoothctl devices Connected | head -1 | cut -d' ' -f3-)
if [ -n "$connected_device" ]; then
icon="󰂱"
text="$icon $connected_device"
class="connected"
tooltip="Connected: $connected_device"
else
icon="󰂯"
text="$icon"
class="on"
tooltip="Bluetooth on (no device connected)"
fi
else
icon="󰂲"
text="$icon"
class="off"
tooltip="Bluetooth off"
fi
${pkgs.jq}/bin/jq -cn \
--arg text "$text" \
--arg tooltip "$tooltip" \
--arg class "$class" \
'{text: $text, tooltip: $tooltip, class: $class}'
'';
bluetooth-toggle = pkgs.writeShellScriptBin "bluetooth-toggle" ''
powered=$(${pkgs.bluez}/bin/bluetoothctl show | ${pkgs.gnugrep}/bin/grep "Powered:" | ${pkgs.gawk}/bin/awk '{print $2}')
if [ "$powered" = "yes" ]; then
${pkgs.bluez}/bin/bluetoothctl power off
${pkgs.util-linux}/bin/rfkill block bluetooth
else
${pkgs.util-linux}/bin/rfkill unblock bluetooth
sleep 0.5
${pkgs.bluez}/bin/bluetoothctl power on
fi
'';
bluetooth-connect-menu = pkgs.writeShellScriptBin "bluetooth-connect-menu" ''
# Power on bluetooth if off
powered=$(${pkgs.bluez}/bin/bluetoothctl show | ${pkgs.gnugrep}/bin/grep "Powered:" | ${pkgs.gawk}/bin/awk '{print $2}')
if [ "$powered" != "yes" ]; then
${pkgs.util-linux}/bin/rfkill unblock bluetooth
sleep 0.5
${pkgs.bluez}/bin/bluetoothctl power on
sleep 1
fi
# Build list of paired devices with connection status
devices=""
while IFS= read -r line; do
mac=$(echo "$line" | ${pkgs.gawk}/bin/awk '{print $2}')
name=$(echo "$line" | cut -d' ' -f3-)
[ -z "$mac" ] && continue
# Check if connected
info=$(${pkgs.bluez}/bin/bluetoothctl info "$mac" 2>/dev/null)
connected=$(echo "$info" | ${pkgs.gnugrep}/bin/grep "Connected:" | ${pkgs.gawk}/bin/awk '{print $2}')
if [ "$connected" = "yes" ]; then
devices="''${devices}[connected] $name\n"
else
devices="''${devices}$name\n"
fi
done < <(${pkgs.bluez}/bin/bluetoothctl devices Paired)
devices="''${devices}Open Bluetooth Manager"
# Show fzf menu
choice=$(printf "%b" "$devices" | ${pkgs.fzf}/bin/fzf --prompt="Bluetooth > " --reverse --no-info)
[ -z "$choice" ] && exit 0
if [ "$choice" = "Open Bluetooth Manager" ]; then
${pkgs.blueman}/bin/blueman-manager &
exit 0
fi
# Extract device name (strip [connected] prefix if present)
device_name="''${choice#\[connected\] }"
# Find MAC address for the device
mac=$(${pkgs.bluez}/bin/bluetoothctl devices Paired | ${pkgs.gnugrep}/bin/grep "$device_name" | ${pkgs.gawk}/bin/awk '{print $2}')
[ -z "$mac" ] && exit 1
if [[ "$choice" == \[connected\]* ]]; then
echo "Disconnecting $device_name..."
${pkgs.bluez}/bin/bluetoothctl disconnect "$mac"
else
echo "Connecting to $device_name..."
${pkgs.bluez}/bin/bluetoothctl connect "$mac"
fi
sleep 1
'';
in
{
environment.systemPackages = [
waybar-bluetooth
bluetooth-toggle
bluetooth-connect-menu
];
}

View file

@ -11,7 +11,7 @@ let
''; '';
charge-limit-menu = pkgs.writeShellScriptBin "charge-limit-menu" '' charge-limit-menu = pkgs.writeShellScriptBin "charge-limit-menu" ''
choice=$(printf "80%%\n100%%" | ${pkgs.wofi}/bin/wofi --dmenu --prompt "Charge limit") choice=$(printf "80%%\n100%%" | ${pkgs.fzf}/bin/fzf --prompt="Charge limit > " --reverse --no-info)
case "$choice" in case "$choice" in
"80%") /run/wrappers/bin/sudo ${charge-limit-apply}/bin/charge-limit-apply 80 ;; "80%") /run/wrappers/bin/sudo ${charge-limit-apply}/bin/charge-limit-apply 80 ;;
"100%") /run/wrappers/bin/sudo ${charge-limit-apply}/bin/charge-limit-apply 100 ;; "100%") /run/wrappers/bin/sudo ${charge-limit-apply}/bin/charge-limit-apply 100 ;;

View file

@ -65,6 +65,7 @@ in
pavucontrol pavucontrol
pinentry-gnome3 pinentry-gnome3
rbw rbw
remmina
rofi-rbw rofi-rbw
swayimg swayimg
thunderbird thunderbird

View file

@ -24,6 +24,9 @@
"network", "network",
"custom/left-arrow-light", "custom/left-arrow-light",
"custom/left-arrow-dark", "custom/left-arrow-dark",
"custom/bluetooth",
"custom/left-arrow-light",
"custom/left-arrow-dark",
"pulseaudio", "pulseaudio",
"custom/left-arrow-light", "custom/left-arrow-light",
"custom/left-arrow-dark", "custom/left-arrow-dark",
@ -109,11 +112,18 @@
"interval": 5, "interval": 5,
"format": " {usage:2}%" "format": " {usage:2}%"
}, },
"custom/bluetooth": {
"exec": "waybar-bluetooth",
"return-type": "json",
"interval": 5,
"on-click": "bluetooth-toggle",
"on-click-right": "foot -a launcher -e bluetooth-connect-menu"
},
"custom/battery": { "custom/battery": {
"exec": "waybar-battery", "exec": "waybar-battery",
"return-type": "json", "return-type": "json",
"interval": 10, "interval": 10,
"on-click": "charge-limit-menu" "on-click": "foot -a launcher -e charge-limit-menu"
}, },
"disk": { "disk": {
"interval": 5, "interval": 5,

View file

@ -25,6 +25,7 @@ window#waybar {
#clock.2, #clock.2,
#clock.3, #clock.3,
#network, #network,
#custom-bluetooth,
#pulseaudio, #pulseaudio,
#memory, #memory,
#cpu, #cpu,
@ -53,6 +54,15 @@ window#waybar {
#network { #network {
color: #8be9fd; color: #8be9fd;
} }
#custom-bluetooth {
color: #8be9fd;
}
#custom-bluetooth.off {
color: #6272a4;
}
#custom-bluetooth.connected {
color: #50fa7b;
}
#pulseaudio { #pulseaudio {
color: #6272a4; color: #6272a4;
} }
@ -74,6 +84,7 @@ window#waybar {
} }
#network, #network,
#custom-bluetooth,
#pulseaudio, #pulseaudio,
#memory, #memory,
#cpu, #cpu,

View file

@ -692,18 +692,10 @@ in
user = "git"; user = "git";
identitiesOnly = true; identitiesOnly = true;
}; };
"gitlab.epicenter.works" = { "mac.cloonar.com" = {
user = "git"; user = "dominikpolakovics";
identitiesOnly = true; identitiesOnly = true;
}; };
"tools.epicenter.works" = {
user = "root";
identityFile = "~/.ssh/epicenter_id_ed25519";
};
"*.epicenter.works !tools.epicenter.works" = {
user = "dominik";
identityFile = "~/.ssh/epicenter.id_rsa";
};
"*.dearmep.eu" = { "*.dearmep.eu" = {
user = "root"; user = "root";
identityFile = "~/.ssh/epicenter.id_rsa"; identityFile = "~/.ssh/epicenter.id_rsa";
@ -725,12 +717,34 @@ in
"*.cloonar.smart" = { "*.cloonar.smart" = {
user = "root"; user = "root";
}; };
"u149513.your-backup.de" = {
user = "u149513";
# user = "u149513-sub2"; # fw.cloonar.com
port = 23;
};
"u428777.your-storagebox.de" = {
user = "u428777";
# user = "u149513-sub2"; # fw.cloonar.com
port = 23;
};
"*.wsw.at" = { "*.wsw.at" = {
user = "wswdpolakovics"; user = "wswdpolakovics";
setEnv = { setEnv = {
TERM = "xterm-256color"; TERM = "xterm-256color";
}; };
}; };
"gitlab.epicenter.works" = {
user = "git";
identitiesOnly = true;
};
"tools.epicenter.works" = {
user = "root";
identityFile = "~/.ssh/epicenter_id_ed25519";
};
"*.epicenter.works !tools.epicenter.works" = {
user = "dominik";
identityFile = "~/.ssh/epicenter.id_rsa";
};
"*.nycro.net" = { "*.nycro.net" = {
user = "hilgenberg-gmbh.de_kk33i9d2xv"; # prod user = "hilgenberg-gmbh.de_kk33i9d2xv"; # prod
#user = "hilgenberg.gmbh.de_pci2n5aqzt"; # stage #user = "hilgenberg.gmbh.de_pci2n5aqzt"; # stage
@ -750,16 +764,6 @@ in
TERM = "xterm-256color"; TERM = "xterm-256color";
}; };
}; };
"u149513.your-backup.de" = {
user = "u149513";
# user = "u149513-sub2"; # fw.cloonar.com
port = 23;
};
"u428777.your-storagebox.de" = {
user = "u428777";
# user = "u149513-sub2"; # fw.cloonar.com
port = 23;
};
}; };
}; };
}; };

View file

@ -1,13 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# ANSI color codes # ANSI color codes (actual escape bytes, not printf-interpreted strings)
GREEN='\033[32m' GREEN=$'\033[32m'
YELLOW='\033[33m' YELLOW=$'\033[33m'
RED='\033[31m' RED=$'\033[31m'
CYAN='\033[36m' CYAN=$'\033[36m'
GRAY='\033[90m' GRAY=$'\033[90m'
MAGENTA='\033[35m' MAGENTA=$'\033[35m'
RESET='\033[0m' RESET=$'\033[0m'
input=$(cat) input=$(cat)
usage=$(echo "$input" | jq '.context_window.current_usage') usage=$(echo "$input" | jq '.context_window.current_usage')
@ -91,4 +91,4 @@ if [ -n "$project" ]; then
fi fi
fi fi
printf "%b" "$output" printf '%s' "$output"

View file

@ -1,11 +1,11 @@
{ lib, pkgs, runCommand, claude-code }: { lib, pkgs, runCommand, claude-code }:
let let
version = "2.1.32"; version = "2.1.62";
src = pkgs.fetchzip { src = pkgs.fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz"; url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
hash = "sha256-oN+Pl/SpMpI4JiU+x73Z9lNYwaz2mJpYnc4ssAG+oAo="; hash = "sha256-pPOmZSRq44SU5QySWNmIvUovEOg7q9lcLFyHkkngN5Y=";
}; };
# Create a modified source with our package-lock.json # Create a modified source with our package-lock.json
@ -22,7 +22,7 @@ in
npmDeps = pkgs.fetchNpmDeps { npmDeps = pkgs.fetchNpmDeps {
src = srcWithLock; src = srcWithLock;
hash = "sha256-PhYhhu6hH1D7TwjHTOxw57V1b07xFWw+e38U9TJ6zYM="; hash = "sha256-MPDLDJvU734yRhLGbZ+vAkO0O6KhQvEPt6eQ8BWwGdU=";
}; };
# Remove the old postPatch since srcWithLock already includes package-lock.json # Remove the old postPatch since srcWithLock already includes package-lock.json

View file

@ -5,13 +5,13 @@
"packages": { "packages": {
"": { "": {
"dependencies": { "dependencies": {
"@anthropic-ai/claude-code": "^2.1.32" "@anthropic-ai/claude-code": "^2.1.62"
} }
}, },
"node_modules/@anthropic-ai/claude-code": { "node_modules/@anthropic-ai/claude-code": {
"version": "2.1.32", "version": "2.1.62",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.32.tgz", "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.62.tgz",
"integrity": "sha512-TWySpzIPJCdn/RNHI7nIn/j/2PLGaw1d+v7v9JyVHk8i+cNND3eUm2YACO9219psbdtE1IpG1qeq/xsaHxlyDg==", "integrity": "sha512-IzslR/dbIlQj0W1bqd9opLaSsSknhwLZVZ3i03LlanWbe1MczBskQn6Veg5CgzmZeWEwKJR1kR3+5t4bCUmLmg==",
"license": "SEE LICENSE IN README.md", "license": "SEE LICENSE IN README.md",
"bin": { "bin": {
"claude": "cli.js" "claude": "cli.js"
@ -20,20 +20,21 @@
"node": ">=18.0.0" "node": ">=18.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-darwin-arm64": "^0.33.5", "@img/sharp-darwin-arm64": "^0.34.2",
"@img/sharp-darwin-x64": "^0.33.5", "@img/sharp-darwin-x64": "^0.34.2",
"@img/sharp-linux-arm": "^0.33.5", "@img/sharp-linux-arm": "^0.34.2",
"@img/sharp-linux-arm64": "^0.33.5", "@img/sharp-linux-arm64": "^0.34.2",
"@img/sharp-linux-x64": "^0.33.5", "@img/sharp-linux-x64": "^0.34.2",
"@img/sharp-linuxmusl-arm64": "^0.33.5", "@img/sharp-linuxmusl-arm64": "^0.34.2",
"@img/sharp-linuxmusl-x64": "^0.33.5", "@img/sharp-linuxmusl-x64": "^0.34.2",
"@img/sharp-win32-x64": "^0.33.5" "@img/sharp-win32-arm64": "^0.34.2",
"@img/sharp-win32-x64": "^0.34.2"
} }
}, },
"node_modules/@img/sharp-darwin-arm64": { "node_modules/@img/sharp-darwin-arm64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz",
"integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -49,13 +50,13 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-darwin-arm64": "1.0.4" "@img/sharp-libvips-darwin-arm64": "1.2.4"
} }
}, },
"node_modules/@img/sharp-darwin-x64": { "node_modules/@img/sharp-darwin-x64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz",
"integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -71,13 +72,13 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-darwin-x64": "1.0.4" "@img/sharp-libvips-darwin-x64": "1.2.4"
} }
}, },
"node_modules/@img/sharp-libvips-darwin-arm64": { "node_modules/@img/sharp-libvips-darwin-arm64": {
"version": "1.0.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz",
"integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -91,9 +92,9 @@
} }
}, },
"node_modules/@img/sharp-libvips-darwin-x64": { "node_modules/@img/sharp-libvips-darwin-x64": {
"version": "1.0.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz",
"integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -107,9 +108,9 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-arm": { "node_modules/@img/sharp-libvips-linux-arm": {
"version": "1.0.5", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz",
"integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -123,9 +124,9 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-arm64": { "node_modules/@img/sharp-libvips-linux-arm64": {
"version": "1.0.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz",
"integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -139,9 +140,9 @@
} }
}, },
"node_modules/@img/sharp-libvips-linux-x64": { "node_modules/@img/sharp-libvips-linux-x64": {
"version": "1.0.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz",
"integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -155,9 +156,9 @@
} }
}, },
"node_modules/@img/sharp-libvips-linuxmusl-arm64": { "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
"version": "1.0.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz",
"integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -171,9 +172,9 @@
} }
}, },
"node_modules/@img/sharp-libvips-linuxmusl-x64": { "node_modules/@img/sharp-libvips-linuxmusl-x64": {
"version": "1.0.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz",
"integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -187,9 +188,9 @@
} }
}, },
"node_modules/@img/sharp-linux-arm": { "node_modules/@img/sharp-linux-arm": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz",
"integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -205,13 +206,13 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-arm": "1.0.5" "@img/sharp-libvips-linux-arm": "1.2.4"
} }
}, },
"node_modules/@img/sharp-linux-arm64": { "node_modules/@img/sharp-linux-arm64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz",
"integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -227,13 +228,13 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-arm64": "1.0.4" "@img/sharp-libvips-linux-arm64": "1.2.4"
} }
}, },
"node_modules/@img/sharp-linux-x64": { "node_modules/@img/sharp-linux-x64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz",
"integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -249,13 +250,13 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-x64": "1.0.4" "@img/sharp-libvips-linux-x64": "1.2.4"
} }
}, },
"node_modules/@img/sharp-linuxmusl-arm64": { "node_modules/@img/sharp-linuxmusl-arm64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz",
"integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -271,13 +272,13 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4" "@img/sharp-libvips-linuxmusl-arm64": "1.2.4"
} }
}, },
"node_modules/@img/sharp-linuxmusl-x64": { "node_modules/@img/sharp-linuxmusl-x64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz",
"integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -293,13 +294,32 @@
"url": "https://opencollective.com/libvips" "url": "https://opencollective.com/libvips"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linuxmusl-x64": "1.0.4" "@img/sharp-libvips-linuxmusl-x64": "1.2.4"
}
},
"node_modules/@img/sharp-win32-arm64": {
"version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz",
"integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==",
"cpu": [
"arm64"
],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
} }
}, },
"node_modules/@img/sharp-win32-x64": { "node_modules/@img/sharp-win32-x64": {
"version": "0.33.5", "version": "0.34.5",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
"integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],