Merge master into staging-next

Changed files
+4265 -7537
doc
lib
nixos
doc
manual
release-notes
lib
test-driver
test_driver
modules
config
misc
services
networking
web-apps
x11
display-managers
system
tasks
filesystems
tests
pkgs
applications
misc
1password
dasel
sigi
networking
version-management
video
dmlive
virtualization
build-support
desktops
plasma-5
development
compilers
embedded
stm32
stm32cubemx
libraries
kde-frameworks
libnitrokey
libpg_query
php-packages
php-cs-fixer
python-modules
adafruit-platformdetect
argcomplete
bluetooth-sensor-state-data
celery-singleton
censys
django-cachalot
faraday-agent-parameters-types
ipyparallel
pycfmodel
pyxbe
sentry-sdk
socid-extractor
tools
cloud-nuke
go-task
kdash
language-servers
vscode-langservers-extracted
ls-lint
misc
complgen
rust
cargo-llvm-cov
cargo-show-asm
os-specific
darwin
aldente
linux
hostapd
wpa_supplicant
zfs
servers
misc
gobgpd
monitoring
prometheus
rinetd
zigbee2mqtt
tools
backup
misc
networking
ddclient
security
cfripper
exploitdb
text
top-level
+1
doc/default.nix
···
{ name = "strings"; description = "string manipulation functions"; }
{ name = "versions"; description = "version string functions"; }
{ name = "trivial"; description = "miscellaneous functions"; }
+
{ name = "fixedPoints"; baseName = "fixed-points"; description = "explicit recursion functions"; }
{ name = "lists"; description = "list manipulation functions"; }
{ name = "debug"; description = "debugging functions"; }
{ name = "options"; description = "NixOS / nixpkgs option handling"; }
+10 -7
doc/doc-support/lib-function-docs.nix
···
buildInputs = [ nixdoc ];
installPhase = ''
function docgen {
-
# TODO: wrap lib.$1 in <literal>, make nixdoc not escape it
-
if [[ -e "../lib/$1.nix" ]]; then
-
nixdoc -c "$1" -d "lib.$1: $2" -l ${locationsJSON} -f "$1.nix" > "$out/$1.md"
+
name=$1
+
baseName=$2
+
description=$3
+
# TODO: wrap lib.$name in <literal>, make nixdoc not escape it
+
if [[ -e "../lib/$baseName.nix" ]]; then
+
nixdoc -c "$name" -d "lib.$name: $description" -l ${locationsJSON} -f "$baseName.nix" > "$out/$name.md"
else
-
nixdoc -c "$1" -d "lib.$1: $2" -l ${locationsJSON} -f "$1/default.nix" > "$out/$1.md"
+
nixdoc -c "$name" -d "lib.$name: $description" -l ${locationsJSON} -f "$baseName/default.nix" > "$out/$name.md"
fi
-
echo "$out/$1.md" >> "$out/index.md"
+
echo "$out/$name.md" >> "$out/index.md"
}
mkdir -p "$out"
···
```{=include=} sections
EOF
-
${lib.concatMapStrings ({ name, description }: ''
-
docgen ${name} ${lib.escapeShellArg description}
+
${lib.concatMapStrings ({ name, baseName ? name, description }: ''
+
docgen ${name} ${baseName} ${lib.escapeShellArg description}
'') libsets}
echo '```' >> "$out/index.md"
+115 -81
lib/fixed-points.nix
···
{ lib, ... }:
rec {
-
# Compute the fixed point of the given function `f`, which is usually an
-
# attribute set that expects its final, non-recursive representation as an
-
# argument:
-
#
-
# f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
-
#
-
# Nix evaluates this recursion until all references to `self` have been
-
# resolved. At that point, the final result is returned and `f x = x` holds:
-
#
-
# nix-repl> fix f
-
# { bar = "bar"; foo = "foo"; foobar = "foobar"; }
-
#
-
# Type: fix :: (a -> a) -> a
-
#
-
# See https://en.wikipedia.org/wiki/Fixed-point_combinator for further
-
# details.
+
/*
+
Compute the fixed point of the given function `f`, which is usually an
+
attribute set that expects its final, non-recursive representation as an
+
argument:
+
+
```
+
f = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
+
```
+
+
Nix evaluates this recursion until all references to `self` have been
+
resolved. At that point, the final result is returned and `f x = x` holds:
+
+
```
+
nix-repl> fix f
+
{ bar = "bar"; foo = "foo"; foobar = "foobar"; }
+
```
+
+
Type: fix :: (a -> a) -> a
+
+
See https://en.wikipedia.org/wiki/Fixed-point_combinator for further
+
details.
+
*/
fix = f: let x = f x; in x;
-
# A variant of `fix` that records the original recursive attribute set in the
-
# result. This is useful in combination with the `extends` function to
-
# implement deep overriding. See pkgs/development/haskell-modules/default.nix
-
# for a concrete example.
+
/*
+
A variant of `fix` that records the original recursive attribute set in the
+
result, in an attribute named `__unfix__`.
+
+
This is useful in combination with the `extends` function to
+
implement deep overriding.
+
*/
fix' = f: let x = f x // { __unfix__ = f; }; in x;
-
# Return the fixpoint that `f` converges to when called recursively, starting
-
# with the input `x`.
-
#
-
# nix-repl> converge (x: x / 2) 16
-
# 0
+
/*
+
Return the fixpoint that `f` converges to when called iteratively, starting
+
with the input `x`.
+
+
```
+
nix-repl> converge (x: x / 2) 16
+
0
+
```
+
+
Type: (a -> a) -> a -> a
+
*/
converge = f: x:
let
x' = f x;
···
then x
else converge f x';
-
# Modify the contents of an explicitly recursive attribute set in a way that
-
# honors `self`-references. This is accomplished with a function
-
#
-
# g = self: super: { foo = super.foo + " + "; }
-
#
-
# that has access to the unmodified input (`super`) as well as the final
-
# non-recursive representation of the attribute set (`self`). `extends`
-
# differs from the native `//` operator insofar as that it's applied *before*
-
# references to `self` are resolved:
-
#
-
# nix-repl> fix (extends g f)
-
# { bar = "bar"; foo = "foo + "; foobar = "foo + bar"; }
-
#
-
# The name of the function is inspired by object-oriented inheritance, i.e.
-
# think of it as an infix operator `g extends f` that mimics the syntax from
-
# Java. It may seem counter-intuitive to have the "base class" as the second
-
# argument, but it's nice this way if several uses of `extends` are cascaded.
-
#
-
# To get a better understanding how `extends` turns a function with a fix
-
# point (the package set we start with) into a new function with a different fix
-
# point (the desired packages set) lets just see, how `extends g f`
-
# unfolds with `g` and `f` defined above:
-
#
-
# extends g f = self: let super = f self; in super // g self super;
-
# = self: let super = { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }; in super // g self super
-
# = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // g self { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
-
# = self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // { foo = "foo" + " + "; }
-
# = self: { foo = "foo + "; bar = "bar"; foobar = self.foo + self.bar; }
-
#
+
/*
+
Modify the contents of an explicitly recursive attribute set in a way that
+
honors `self`-references. This is accomplished with a function
+
+
```nix
+
g = self: super: { foo = super.foo + " + "; }
+
```
+
+
that has access to the unmodified input (`super`) as well as the final
+
non-recursive representation of the attribute set (`self`). `extends`
+
differs from the native `//` operator insofar as that it's applied *before*
+
references to `self` are resolved:
+
+
```
+
nix-repl> fix (extends g f)
+
{ bar = "bar"; foo = "foo + "; foobar = "foo + bar"; }
+
```
+
+
The name of the function is inspired by object-oriented inheritance, i.e.
+
think of it as an infix operator `g extends f` that mimics the syntax from
+
Java. It may seem counter-intuitive to have the "base class" as the second
+
argument, but it's nice this way if several uses of `extends` are cascaded.
+
+
To get a better understanding how `extends` turns a function with a fix
+
point (the package set we start with) into a new function with a different fix
+
point (the desired packages set) lets just see, how `extends g f`
+
unfolds with `g` and `f` defined above:
+
+
```
+
extends g f = self: let super = f self; in super // g self super;
+
= self: let super = { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }; in super // g self super
+
= self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // g self { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; }
+
= self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; } // { foo = "foo" + " + "; }
+
= self: { foo = "foo + "; bar = "bar"; foobar = self.foo + self.bar; }
+
```
+
*/
extends = f: rattrs: self: let super = rattrs self; in super // f self super;
-
# Compose two extending functions of the type expected by 'extends'
-
# into one where changes made in the first are available in the
-
# 'super' of the second
+
/*
+
Compose two extending functions of the type expected by 'extends'
+
into one where changes made in the first are available in the
+
'super' of the second
+
*/
composeExtensions =
f: g: final: prev:
let fApplied = f final prev;
prev' = prev // fApplied;
in fApplied // g final prev';
-
# Compose several extending functions of the type expected by 'extends' into
-
# one where changes made in preceding functions are made available to
-
# subsequent ones.
-
#
-
# composeManyExtensions : [packageSet -> packageSet -> packageSet] -> packageSet -> packageSet -> packageSet
-
# ^final ^prev ^overrides ^final ^prev ^overrides
+
/*
+
Compose several extending functions of the type expected by 'extends' into
+
one where changes made in preceding functions are made available to
+
subsequent ones.
+
+
```
+
composeManyExtensions : [packageSet -> packageSet -> packageSet] -> packageSet -> packageSet -> packageSet
+
^final ^prev ^overrides ^final ^prev ^overrides
+
```
+
*/
composeManyExtensions =
lib.foldr (x: y: composeExtensions x y) (final: prev: {});
-
# Create an overridable, recursive attribute set. For example:
-
#
-
# nix-repl> obj = makeExtensible (self: { })
-
#
-
# nix-repl> obj
-
# { __unfix__ = «lambda»; extend = «lambda»; }
-
#
-
# nix-repl> obj = obj.extend (self: super: { foo = "foo"; })
-
#
-
# nix-repl> obj
-
# { __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; }
-
#
-
# nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; })
-
#
-
# nix-repl> obj
-
# { __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; }
+
/*
+
Create an overridable, recursive attribute set. For example:
+
+
```
+
nix-repl> obj = makeExtensible (self: { })
+
+
nix-repl> obj
+
{ __unfix__ = «lambda»; extend = «lambda»; }
+
+
nix-repl> obj = obj.extend (self: super: { foo = "foo"; })
+
+
nix-repl> obj
+
{ __unfix__ = «lambda»; extend = «lambda»; foo = "foo"; }
+
+
nix-repl> obj = obj.extend (self: super: { foo = super.foo + " + "; bar = "bar"; foobar = self.foo + self.bar; })
+
+
nix-repl> obj
+
{ __unfix__ = «lambda»; bar = "bar"; extend = «lambda»; foo = "foo + "; foobar = "foo + bar"; }
+
```
+
*/
makeExtensible = makeExtensibleWithCustomName "extend";
-
# Same as `makeExtensible` but the name of the extending attribute is
-
# customized.
+
/*
+
Same as `makeExtensible` but the name of the extending attribute is
+
customized.
+
*/
makeExtensibleWithCustomName = extenderName: rattrs:
fix' (self: (rattrs self) // {
${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs);
+12
nixos/doc/manual/release-notes/rl-2311.section.md
···
- FoundationDB now defaults to major version 7.
+
- Support for WiFi6 (IEEE 802.11ax) and WPA3-SAE-PK was enabled in the `hostapd` package, along with a significant rework of the hostapd module.
+
## New Services {#sec-release-23.11-new-services}
- [MCHPRS](https://github.com/MCHPR/MCHPRS), a multithreaded Minecraft server built for redstone. Available as [services.mchprs](#opt-services.mchprs.enable).
···
## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
+
- The `boot.loader.raspberryPi` options have been marked deprecated, with intent for removal for NixOS 24.11. They had a limited use-case, and do not work like people expect. They required either very old installs ([before mid-2019](https://github.com/NixOS/nixpkgs/pull/62462)) or customized builds out of scope of the standard and generic AArch64 support. That option set never supported the Raspberry Pi 4 family of devices.
+
- `python3.pkgs.sequoia` was removed in favor of `python3.pkgs.pysequoia`. The latter package is based on upstream's dedicated repository for sequoia's Python bindings, where the Python bindings from [gitlab:sequoia-pgp/sequoia](https://gitlab.com/sequoia-pgp/sequoia) were removed long ago.
- `writeTextFile` now requires `executable` to be boolean, values like `null` or `""` will now fail to evaluate.
- The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`.
+
- The `services.hostapd` module was rewritten to support `passwordFile` like options, WPA3-SAE, and management of multiple interfaces. This breaks compatibility with older configurations.
+
- `hostapd` is now started with additional systemd sandbox/hardening options for better security.
+
- `services.hostapd.interface` was replaced with a per-radio and per-bss configuration scheme using [services.hostapd.radios](#opt-services.hostapd.radios).
+
- `services.hostapd.wpa` has been replaced by [services.hostapd.radios.&lt;name&gt;.networks.&lt;name&gt;.authentication.wpaPassword](#opt-services.hostapd.radios._name_.networks._name_.authentication.wpaPassword) and [services.hostapd.radios.&lt;name&gt;.networks.&lt;name&gt;.authentication.saePasswords](#opt-services.hostapd.radios._name_.networks._name_.authentication.saePasswords) which configure WPA2-PSK and WP3-SAE respectively.
+
- The default authentication has been changed to WPA3-SAE. Options for other (legacy) schemes are still available.
+
- `python3.pkgs.fetchPypi` (and `python3Packages.fetchPypi`) has been deprecated in favor of top-level `fetchPypi`.
- `mariadb` now defaults to `mariadb_1011` instead of `mariadb_106`, meaning the default version was upgraded from 10.6.x to 10.11.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-6-to-mariadb-10-11/) for potential issues.
···
- PHP now defaults to PHP 8.2, updated from 8.1.
- `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities.
+
+
- `services.ddclient` has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`.
- The `vlock` program from the `kbd` package has been moved into its own package output and should now be referenced explicitly as `kbd.vlock` or replaced with an alternative such as the standalone `vlock` package or `physlock`.
+7 -1
nixos/lib/test-driver/test_driver/machine.py
···
while not shell_ready(timeout_secs=30):
self.log("Guest root shell did not produce any data yet...")
-
self.log(self.shell.recv(1024).decode())
+
while True:
+
chunk = self.shell.recv(1024)
+
self.log(f"Guest shell says: {chunk!r}")
+
# NOTE: for this to work, nothing must be printed after this line!
+
if b"Spawning backdoor root shell..." in chunk:
+
break
+
toc = time.time()
self.log("connected to guest root shell")
+1
nixos/modules/config/i18n.nix
···
(builtins.map (l: (replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8") (
[
"C.UTF-8"
+
"en_US.UTF-8"
config.i18n.defaultLocale
] ++ (attrValues (filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
))
+2 -2
nixos/modules/misc/ids.nix
···
#dialout = 27; # unused
polkituser = 28;
#utmp = 29; # unused
-
# ddclient = 30; # converted to DynamicUser = true
+
# ddclient = 30; # software removed
davfs2 = 31;
disnix = 33;
osgi = 34;
···
dialout = 27;
#polkituser = 28; # currently unused, polkitd doesn't need a group
utmp = 29;
-
# ddclient = 30; # converted to DynamicUser = true
+
# ddclient = 30; # software removed
davfs2 = 31;
disnix = 33;
osgi = 34;
+1 -1
nixos/modules/module-list.nix
···
./services/networking/create_ap.nix
./services/networking/croc.nix
./services/networking/dante.nix
-
./services/networking/ddclient.nix
./services/networking/dhcpcd.nix
./services/networking/dhcpd.nix
./services/networking/dnscache.nix
···
./services/x11/xbanish.nix
./services/x11/xfs.nix
./services/x11/xserver.nix
+
./system/activation/activatable-system.nix
./system/activation/activation-script.nix
./system/activation/specialisation.nix
./system/activation/bootspec.nix
+1
nixos/modules/rename.nix
···
(mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "couchpotato" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "dd-agent" ] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.")
+
(mkRemovedOptionModule [ "services" "ddclient" ] "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`.") # Added 2023-07-04
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "exhibitor" ] "The corresponding package was removed from nixpkgs.")
(mkRemovedOptionModule [ "services" "firefox" "syncserver" ] "The corresponding package was removed from nixpkgs.")
-234
nixos/modules/services/networking/ddclient.nix
···
-
{ config, pkgs, lib, ... }:
-
-
let
-
cfg = config.services.ddclient;
-
boolToStr = bool: if bool then "yes" else "no";
-
dataDir = "/var/lib/ddclient";
-
StateDirectory = builtins.baseNameOf dataDir;
-
RuntimeDirectory = StateDirectory;
-
-
configFile' = pkgs.writeText "ddclient.conf" ''
-
# This file can be used as a template for configFile or is automatically generated by Nix options.
-
cache=${dataDir}/ddclient.cache
-
foreground=YES
-
use=${cfg.use}
-
login=${cfg.username}
-
password=${if cfg.protocol == "nsupdate" then "/run/${RuntimeDirectory}/ddclient.key" else "@password_placeholder@"}
-
protocol=${cfg.protocol}
-
${lib.optionalString (cfg.script != "") "script=${cfg.script}"}
-
${lib.optionalString (cfg.server != "") "server=${cfg.server}"}
-
${lib.optionalString (cfg.zone != "") "zone=${cfg.zone}"}
-
ssl=${boolToStr cfg.ssl}
-
wildcard=YES
-
quiet=${boolToStr cfg.quiet}
-
verbose=${boolToStr cfg.verbose}
-
${cfg.extraConfig}
-
${lib.concatStringsSep "," cfg.domains}
-
'';
-
configFile = if (cfg.configFile != null) then cfg.configFile else configFile';
-
-
preStart = ''
-
install --mode=600 --owner=$USER ${configFile} /run/${RuntimeDirectory}/ddclient.conf
-
${lib.optionalString (cfg.configFile == null) (if (cfg.protocol == "nsupdate") then ''
-
install --mode=600 --owner=$USER ${cfg.passwordFile} /run/${RuntimeDirectory}/ddclient.key
-
'' else if (cfg.passwordFile != null) then ''
-
"${pkgs.replace-secret}/bin/replace-secret" "@password_placeholder@" "${cfg.passwordFile}" "/run/${RuntimeDirectory}/ddclient.conf"
-
'' else ''
-
sed -i '/^password=@password_placeholder@$/d' /run/${RuntimeDirectory}/ddclient.conf
-
'')}
-
'';
-
-
in
-
-
with lib;
-
-
{
-
-
imports = [
-
(mkChangedOptionModule [ "services" "ddclient" "domain" ] [ "services" "ddclient" "domains" ]
-
(config:
-
let value = getAttrFromPath [ "services" "ddclient" "domain" ] config;
-
in optional (value != "") value))
-
(mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "")
-
(mkRemovedOptionModule [ "services" "ddclient" "password" ] "Use services.ddclient.passwordFile instead.")
-
(mkRemovedOptionModule [ "services" "ddclient" "ipv6" ] "")
-
];
-
-
###### interface
-
-
options = {
-
-
services.ddclient = with lib.types; {
-
-
enable = mkOption {
-
default = false;
-
type = bool;
-
description = lib.mdDoc ''
-
Whether to synchronise your machine's IP address with a dynamic DNS provider (e.g. dyndns.org).
-
'';
-
};
-
-
package = mkOption {
-
type = package;
-
default = pkgs.ddclient;
-
defaultText = lib.literalExpression "pkgs.ddclient";
-
description = lib.mdDoc ''
-
The ddclient executable package run by the service.
-
'';
-
};
-
-
domains = mkOption {
-
default = [ "" ];
-
type = listOf str;
-
description = lib.mdDoc ''
-
Domain name(s) to synchronize.
-
'';
-
};
-
-
username = mkOption {
-
# For `nsupdate` username contains the path to the nsupdate executable
-
default = lib.optionalString (config.services.ddclient.protocol == "nsupdate") "${pkgs.bind.dnsutils}/bin/nsupdate";
-
defaultText = "";
-
type = str;
-
description = lib.mdDoc ''
-
User name.
-
'';
-
};
-
-
passwordFile = mkOption {
-
default = null;
-
type = nullOr str;
-
description = lib.mdDoc ''
-
A file containing the password or a TSIG key in named format when using the nsupdate protocol.
-
'';
-
};
-
-
interval = mkOption {
-
default = "10min";
-
type = str;
-
description = lib.mdDoc ''
-
The interval at which to run the check and update.
-
See {command}`man 7 systemd.time` for the format.
-
'';
-
};
-
-
configFile = mkOption {
-
default = null;
-
type = nullOr path;
-
description = lib.mdDoc ''
-
Path to configuration file.
-
When set this overrides the generated configuration from module options.
-
'';
-
example = "/root/nixos/secrets/ddclient.conf";
-
};
-
-
protocol = mkOption {
-
default = "dyndns2";
-
type = str;
-
description = lib.mdDoc ''
-
Protocol to use with dynamic DNS provider (see https://sourceforge.net/p/ddclient/wiki/protocols).
-
'';
-
};
-
-
server = mkOption {
-
default = "";
-
type = str;
-
description = lib.mdDoc ''
-
Server address.
-
'';
-
};
-
-
ssl = mkOption {
-
default = true;
-
type = bool;
-
description = lib.mdDoc ''
-
Whether to use SSL/TLS to connect to dynamic DNS provider.
-
'';
-
};
-
-
quiet = mkOption {
-
default = false;
-
type = bool;
-
description = lib.mdDoc ''
-
Print no messages for unnecessary updates.
-
'';
-
};
-
-
script = mkOption {
-
default = "";
-
type = str;
-
description = lib.mdDoc ''
-
script as required by some providers.
-
'';
-
};
-
-
use = mkOption {
-
default = "web, web=checkip.dyndns.com/, web-skip='Current IP Address: '";
-
type = str;
-
description = lib.mdDoc ''
-
Method to determine the IP address to send to the dynamic DNS provider.
-
'';
-
};
-
-
verbose = mkOption {
-
default = false;
-
type = bool;
-
description = lib.mdDoc ''
-
Print verbose information.
-
'';
-
};
-
-
zone = mkOption {
-
default = "";
-
type = str;
-
description = lib.mdDoc ''
-
zone as required by some providers.
-
'';
-
};
-
-
extraConfig = mkOption {
-
default = "";
-
type = lines;
-
description = lib.mdDoc ''
-
Extra configuration. Contents will be added verbatim to the configuration file.
-
-
::: {.note}
-
`daemon` should not be added here because it does not work great with the systemd-timer approach the service uses.
-
:::
-
'';
-
};
-
};
-
};
-
-
-
###### implementation
-
-
config = mkIf config.services.ddclient.enable {
-
systemd.services.ddclient = {
-
description = "Dynamic DNS Client";
-
wantedBy = [ "multi-user.target" ];
-
after = [ "network.target" ];
-
restartTriggers = optional (cfg.configFile != null) cfg.configFile;
-
path = lib.optional (lib.hasPrefix "if," cfg.use) pkgs.iproute2;
-
-
serviceConfig = {
-
DynamicUser = true;
-
RuntimeDirectoryMode = "0700";
-
inherit RuntimeDirectory;
-
inherit StateDirectory;
-
Type = "oneshot";
-
ExecStartPre = "!${pkgs.writeShellScript "ddclient-prestart" preStart}";
-
ExecStart = "${lib.getBin cfg.package}/bin/ddclient -file /run/${RuntimeDirectory}/ddclient.conf";
-
};
-
};
-
-
systemd.timers.ddclient = {
-
description = "Run ddclient";
-
wantedBy = [ "timers.target" ];
-
timerConfig = {
-
OnBootSec = cfg.interval;
-
OnUnitInactiveSec = cfg.interval;
-
};
-
};
-
};
-
}
+1239 -176
nixos/modules/services/networking/hostapd.nix
···
{ config, lib, pkgs, utils, ... }:
+
# All hope abandon ye who enter here. hostapd's configuration
+
# format is ... special, and you won't be able to infer any
+
# of their assumptions from just reading the "documentation"
+
# (i.e. the example config). Assume footguns at all points -
+
# to make informed decisions you will probably need to look
+
# at hostapd's code. You have been warned, proceed with care.
+
let
+
inherit
+
(lib)
+
attrNames
+
attrValues
+
concatLists
+
concatMap
+
concatMapStrings
+
concatStringsSep
+
count
+
escapeShellArg
+
filter
+
flip
+
generators
+
getAttr
+
hasPrefix
+
imap0
+
isInt
+
isString
+
length
+
literalExpression
+
maintainers
+
mapAttrsToList
+
mdDoc
+
mkDefault
+
mkEnableOption
+
mkIf
+
mkOption
+
mkPackageOption
+
mkRemovedOptionModule
+
optional
+
optionalAttrs
+
optionalString
+
optionals
+
singleton
+
stringLength
+
toLower
+
types
+
unique
+
;
-
# TODO:
-
#
-
# asserts
-
# ensure that the nl80211 module is loaded/compiled in the kernel
-
# wpa_supplicant and hostapd on the same wireless interface doesn't make any sense
+
cfg = config.services.hostapd;
-
with lib;
+
extraSettingsFormat = {
+
type = let
+
singleAtom = types.oneOf [ types.bool types.int types.str ];
+
atom = types.either singleAtom (types.listOf singleAtom) // {
+
description = "atom (bool, int or string) or a list of them for duplicate keys";
+
};
+
in types.attrsOf atom;
-
let
+
generate = name: value: pkgs.writeText name (generators.toKeyValue {
+
listsAsDuplicateKeys = true;
+
mkKeyValue = generators.mkKeyValueDefault {
+
mkValueString = v:
+
if isInt v then toString v
+
else if isString v then v
+
else if true == v then "1"
+
else if false == v then "0"
+
else throw "unsupported type ${builtins.typeOf v}: ${(generators.toPretty {}) v}";
+
} "=";
+
} value);
+
};
-
cfg = config.services.hostapd;
+
# Generates the header for a single BSS (i.e. WiFi network)
+
writeBssHeader = radio: bss: bssIdx: pkgs.writeText "hostapd-radio-${radio}-bss-${bss}.conf" ''
+
''\n''\n# BSS ${toString bssIdx}: ${bss}
+
################################
-
escapedInterface = utils.escapeSystemdPath cfg.interface;
+
${if bssIdx == 0 then "interface" else "bss"}=${bss}
+
'';
+
+
makeRadioRuntimeFiles = radio: radioCfg:
+
pkgs.writeShellScript "make-hostapd-${radio}-files" (''
+
set -euo pipefail
-
configFile = pkgs.writeText "hostapd.conf" ''
-
interface=${cfg.interface}
-
driver=${cfg.driver}
-
ssid=${cfg.ssid}
-
hw_mode=${cfg.hwMode}
-
channel=${toString cfg.channel}
-
ieee80211n=1
-
ieee80211ac=1
-
${optionalString (cfg.countryCode != null) "country_code=${cfg.countryCode}"}
-
${optionalString (cfg.countryCode != null) "ieee80211d=1"}
+
hostapd_config_file=/run/hostapd/${escapeShellArg radio}.hostapd.conf
+
rm -f "$hostapd_config_file"
+
cat > "$hostapd_config_file" <<EOF
+
# Radio base configuration: ${radio}
+
################################
-
# logging (debug level)
-
logger_syslog=-1
-
logger_syslog_level=${toString cfg.logLevel}
-
logger_stdout=-1
-
logger_stdout_level=${toString cfg.logLevel}
+
EOF
-
ctrl_interface=/run/hostapd
-
ctrl_interface_group=${cfg.group}
+
cat ${escapeShellArg (extraSettingsFormat.generate "hostapd-radio-${radio}-extra.conf" radioCfg.settings)} >> "$hostapd_config_file"
+
${concatMapStrings (script: "${script} \"$hostapd_config_file\"\n") (attrValues radioCfg.dynamicConfigScripts)}
+
''
+
+ concatMapStrings (x: "${x}\n") (imap0 (i: f: f i)
+
(mapAttrsToList (bss: bssCfg: bssIdx: ''
+
''\n# BSS configuration: ${bss}
-
${optionalString cfg.wpa ''
-
wpa=2
-
wpa_pairwise=CCMP
-
wpa_passphrase=${cfg.wpaPassphrase}
-
''}
-
${optionalString cfg.noScan "noscan=1"}
+
mac_allow_file=/run/hostapd/${escapeShellArg bss}.mac.allow
+
rm -f "$mac_allow_file"
+
touch "$mac_allow_file"
-
${cfg.extraConfig}
-
'' ;
+
mac_deny_file=/run/hostapd/${escapeShellArg bss}.mac.deny
+
rm -f "$mac_deny_file"
+
touch "$mac_deny_file"
-
in
+
cat ${writeBssHeader radio bss bssIdx} >> "$hostapd_config_file"
+
cat ${escapeShellArg (extraSettingsFormat.generate "hostapd-radio-${radio}-bss-${bss}-extra.conf" bssCfg.settings)} >> "$hostapd_config_file"
+
${concatMapStrings (script: "${script} \"$hostapd_config_file\" \"$mac_allow_file\" \"$mac_deny_file\"\n") (attrValues bssCfg.dynamicConfigScripts)}
+
'') radioCfg.networks)));
-
{
-
###### interface
+
runtimeConfigFiles = mapAttrsToList (radio: _: "/run/hostapd/${radio}.hostapd.conf") cfg.radios;
+
in {
+
meta.maintainers = with maintainers; [ oddlama ];
options = {
-
services.hostapd = {
+
enable = mkEnableOption (mdDoc ''
+
Whether to enable hostapd. hostapd is a user space daemon for access point and
+
authentication servers. It implements IEEE 802.11 access point management,
+
IEEE 802.1X/WPA/WPA2/EAP Authenticators, RADIUS client, EAP server, and RADIUS
+
authentication server.
+
'');
-
enable = mkOption {
-
type = types.bool;
-
default = false;
-
description = lib.mdDoc ''
-
Enable putting a wireless interface into infrastructure mode,
-
allowing other wireless devices to associate with the wireless
-
interface and do wireless networking. A simple access point will
-
{option}`enable hostapd.wpa`,
-
{option}`hostapd.wpaPassphrase`, and
-
{option}`hostapd.ssid`, as well as DHCP on the wireless
-
interface to provide IP addresses to the associated stations, and
-
NAT (from the wireless interface to an upstream interface).
+
package = mkPackageOption pkgs "hostapd" {};
+
+
radios = mkOption {
+
default = {};
+
example = literalExpression ''
+
{
+
# Simple 2.4GHz AP
+
wlp2s0 = {
+
# countryCode = "US";
+
networks.wlp2s0 = {
+
ssid = "AP 1";
+
authentication.saePasswords = [{ password = "a flakey password"; }]; # Use saePasswordsFile if possible.
+
};
+
};
+
+
# WiFi 5 (5GHz) with two advertised networks
+
wlp3s0 = {
+
band = "5g";
+
channel = 0; # Enable automatic channel selection (ACS). Use only if your hardware supports it.
+
# countryCode = "US";
+
networks.wlp3s0 = {
+
ssid = "My AP";
+
authentication.saePasswords = [{ password = "a flakey password"; }]; # Use saePasswordsFile if possible.
+
};
+
networks.wlp3s0-1 = {
+
ssid = "Open AP with WiFi5";
+
authentication.mode = "none";
+
};
+
};
+
+
# Legacy WPA2 example
+
wlp4s0 = {
+
# countryCode = "US";
+
networks.wlp4s0 = {
+
ssid = "AP 2";
+
authentication = {
+
mode = "wpa2-sha256";
+
wpaPassword = "a flakey password"; # Use wpaPasswordFile if possible.
+
};
+
};
+
};
+
}
'';
-
};
+
description = mdDoc ''
+
This option allows you to define APs for one or multiple physical radios.
+
At least one radio must be specified.
-
interface = mkOption {
-
example = "wlp2s0";
-
type = types.str;
-
description = lib.mdDoc ''
-
The interfaces {command}`hostapd` will use.
+
For each radio, hostapd requires a separate logical interface (like wlp3s0, wlp3s1, ...).
+
A default interface is usually be created automatically by your system, but to use
+
multiple radios of a single device, it may be required to create additional logical interfaces
+
for example by using {option}`networking.wlanInterfaces`.
+
+
Each physical radio can only support a single hardware-mode that is configured via
+
({option}`services.hostapd.radios.<radio>.band`). To create a dual-band
+
or tri-band AP, you will have to use a device that has multiple physical radios
+
and supports configuring multiple APs (Refer to valid interface combinations in
+
{command}`iw list`).
'';
-
};
+
type = types.attrsOf (types.submodule (radioSubmod: {
+
options = {
+
driver = mkOption {
+
default = "nl80211";
+
example = "none";
+
type = types.str;
+
description = mdDoc ''
+
The driver {command}`hostapd` will use.
+
{var}`nl80211` is used with all Linux mac80211 drivers.
+
{var}`none` is used if building a standalone RADIUS server that does
+
not control any wireless/wired driver.
+
Most applications will probably use the default.
+
'';
+
};
+
+
noScan = mkOption {
+
type = types.bool;
+
default = false;
+
description = mdDoc ''
+
Disables scan for overlapping BSSs in HT40+/- mode.
+
Caution: turning this on will likely violate regulatory requirements!
+
'';
+
};
+
+
countryCode = mkOption {
+
default = null;
+
example = "US";
+
type = types.nullOr types.str;
+
description = mdDoc ''
+
Country code (ISO/IEC 3166-1). Used to set regulatory domain.
+
Set as needed to indicate country in which device is operating.
+
This can limit available channels and transmit power.
+
These two octets are used as the first two octets of the Country String
+
(dot11CountryString).
+
+
Setting this will force you to also enable IEEE 802.11d and IEEE 802.11h.
+
+
IEEE 802.11d: This advertises the countryCode and the set of allowed channels
+
and transmit power levels based on the regulatory limits.
+
+
IEEE802.11h: This enables radar detection and DFS (Dynamic Frequency Selection)
+
support if available. DFS support is required on outdoor 5 GHz channels in most
+
countries of the world.
+
'';
+
};
+
+
band = mkOption {
+
default = "2g";
+
type = types.enum ["2g" "5g" "6g" "60g"];
+
description = mdDoc ''
+
Specifies the frequency band to use, possible values are 2g for 2.4 GHz,
+
5g for 5 GHz, 6g for 6 GHz and 60g for 60 GHz.
+
'';
+
};
+
+
channel = mkOption {
+
default = 7;
+
example = 11;
+
type = types.int;
+
description = mdDoc ''
+
The channel to operate on. Use 0 to enable ACS (Automatic Channel Selection).
+
Beware that not every device supports ACS in which case {command}`hostapd`
+
will fail to start.
+
'';
+
};
+
+
settings = mkOption {
+
default = {};
+
example = { acs_exclude_dfs = true; };
+
type = types.submodule {
+
freeformType = extraSettingsFormat.type;
+
};
+
description = mdDoc ''
+
Extra configuration options to put at the end of global initialization, before defining BSSs.
+
To find out which options are global and which are per-bss you have to read hostapd's source code,
+
which is non-trivial and not documented otherwise.
+
+
Lists will be converted to multiple definitions of the same key, and booleans to 0/1.
+
Otherwise, the inputs are not modified or checked for correctness.
+
'';
+
};
+
+
dynamicConfigScripts = mkOption {
+
default = {};
+
type = types.attrsOf types.path;
+
example = literalExpression ''
+
{
+
exampleDynamicConfig = pkgs.writeShellScript "dynamic-config" '''
+
HOSTAPD_CONFIG=$1
+
+
cat >> "$HOSTAPD_CONFIG" << EOF
+
# Add some dynamically generated statements here,
+
# for example based on the physical adapter in use
+
EOF
+
''';
+
}
+
'';
+
description = mdDoc ''
+
All of these scripts will be executed in lexicographical order before hostapd
+
is started, right after the global segment was generated and may dynamically
+
append global options the generated configuration file.
+
+
The first argument will point to the configuration file that you may append to.
+
'';
+
};
+
+
#### IEEE 802.11n (WiFi 4) related configuration
+
+
wifi4 = {
+
enable = mkOption {
+
default = true;
+
type = types.bool;
+
description = mdDoc ''
+
Enables support for IEEE 802.11n (WiFi 4, HT).
+
This is enabled by default, since the vase majority of devices
+
are expected to support this.
+
'';
+
};
+
+
capabilities = mkOption {
+
type = types.listOf types.str;
+
default = ["HT40" "HT40-" "SHORT-GI-20" "SHORT-GI-40"];
+
example = ["LDPC" "HT40+" "HT40-" "GF" "SHORT-GI-20" "SHORT-GI-40" "TX-STBC" "RX-STBC1"];
+
description = mdDoc ''
+
HT (High Throughput) capabilities given as a list of flags.
+
Please refer to the hostapd documentation for allowed values and
+
only set values supported by your physical adapter.
+
+
The default contains common values supported by most adapters.
+
'';
+
};
+
+
require = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "Require stations (clients) to support WiFi 4 (HT) and disassociate them if they don't.";
+
};
+
};
+
+
#### IEEE 802.11ac (WiFi 5) related configuration
+
+
wifi5 = {
+
enable = mkOption {
+
default = true;
+
type = types.bool;
+
description = mdDoc "Enables support for IEEE 802.11ac (WiFi 5, VHT)";
+
};
+
+
capabilities = mkOption {
+
type = types.listOf types.str;
+
default = [];
+
example = ["SHORT-GI-80" "TX-STBC-2BY1" "RX-STBC-1" "RX-ANTENNA-PATTERN" "TX-ANTENNA-PATTERN"];
+
description = mdDoc ''
+
VHT (Very High Throughput) capabilities given as a list of flags.
+
Please refer to the hostapd documentation for allowed values and
+
only set values supported by your physical adapter.
+
'';
+
};
+
+
require = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "Require stations (clients) to support WiFi 5 (VHT) and disassociate them if they don't.";
+
};
+
+
operatingChannelWidth = mkOption {
+
default = "20or40";
+
type = types.enum ["20or40" "80" "160" "80+80"];
+
apply = x:
+
getAttr x {
+
"20or40" = 0;
+
"80" = 1;
+
"160" = 2;
+
"80+80" = 3;
+
};
+
description = mdDoc ''
+
Determines the operating channel width for VHT.
+
+
- {var}`"20or40"`: 20 or 40 MHz operating channel width
+
- {var}`"80"`: 80 MHz channel width
+
- {var}`"160"`: 160 MHz channel width
+
- {var}`"80+80"`: 80+80 MHz channel width
+
'';
+
};
+
};
+
+
#### IEEE 802.11ax (WiFi 6) related configuration
+
+
wifi6 = {
+
enable = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "Enables support for IEEE 802.11ax (WiFi 6, HE)";
+
};
+
+
require = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "Require stations (clients) to support WiFi 6 (HE) and disassociate them if they don't.";
+
};
+
+
singleUserBeamformer = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "HE single user beamformer support";
+
};
+
+
singleUserBeamformee = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "HE single user beamformee support";
+
};
+
+
multiUserBeamformer = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "HE multi user beamformee support";
+
};
+
+
operatingChannelWidth = mkOption {
+
default = "20or40";
+
type = types.enum ["20or40" "80" "160" "80+80"];
+
apply = x:
+
getAttr x {
+
"20or40" = 0;
+
"80" = 1;
+
"160" = 2;
+
"80+80" = 3;
+
};
+
description = mdDoc ''
+
Determines the operating channel width for HE.
+
+
- {var}`"20or40"`: 20 or 40 MHz operating channel width
+
- {var}`"80"`: 80 MHz channel width
+
- {var}`"160"`: 160 MHz channel width
+
- {var}`"80+80"`: 80+80 MHz channel width
+
'';
+
};
+
};
+
+
#### IEEE 802.11be (WiFi 7) related configuration
+
+
wifi7 = {
+
enable = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc ''
+
Enables support for IEEE 802.11be (WiFi 7, EHT). This is currently experimental
+
and requires you to manually enable CONFIG_IEEE80211BE when building hostapd.
+
'';
+
};
+
+
singleUserBeamformer = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "EHT single user beamformer support";
+
};
+
+
singleUserBeamformee = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "EHT single user beamformee support";
+
};
+
+
multiUserBeamformer = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc "EHT multi user beamformee support";
+
};
+
+
operatingChannelWidth = mkOption {
+
default = "20or40";
+
type = types.enum ["20or40" "80" "160" "80+80"];
+
apply = x:
+
getAttr x {
+
"20or40" = 0;
+
"80" = 1;
+
"160" = 2;
+
"80+80" = 3;
+
};
+
description = mdDoc ''
+
Determines the operating channel width for EHT.
+
+
- {var}`"20or40"`: 20 or 40 MHz operating channel width
+
- {var}`"80"`: 80 MHz channel width
+
- {var}`"160"`: 160 MHz channel width
+
- {var}`"80+80"`: 80+80 MHz channel width
+
'';
+
};
+
};
+
+
#### BSS definitions
+
+
networks = mkOption {
+
default = {};
+
example = literalExpression ''
+
{
+
wlp2s0 = {
+
ssid = "Primary advertised network";
+
authentication.saePasswords = [{ password = "a flakey password"; }]; # Use saePasswordsFile if possible.
+
};
+
wlp2s0-1 = {
+
ssid = "Secondary advertised network (Open)";
+
authentication.mode = "none";
+
};
+
}
+
'';
+
description = mdDoc ''
+
This defines a BSS, colloquially known as a WiFi network.
+
You have to specify at least one.
+
'';
+
type = types.attrsOf (types.submodule (bssSubmod: {
+
options = {
+
logLevel = mkOption {
+
default = 2;
+
type = types.int;
+
description = mdDoc ''
+
Levels (minimum value for logged events):
+
0 = verbose debugging
+
1 = debugging
+
2 = informational messages
+
3 = notification
+
4 = warning
+
'';
+
};
+
+
group = mkOption {
+
default = "wheel";
+
example = "network";
+
type = types.str;
+
description = mdDoc ''
+
Members of this group can access the control socket for this interface.
+
'';
+
};
+
+
utf8Ssid = mkOption {
+
default = true;
+
type = types.bool;
+
description = mdDoc "Whether the SSID is to be interpreted using UTF-8 encoding.";
+
};
+
+
ssid = mkOption {
+
example = "❄️ cool ❄️";
+
type = types.str;
+
description = mdDoc "SSID to be used in IEEE 802.11 management frames.";
+
};
+
+
bssid = mkOption {
+
type = types.nullOr types.str;
+
default = null;
+
example = "11:22:33:44:55:66";
+
description = mdDoc ''
+
Specifies the BSSID for this BSS. Usually determined automatically,
+
but for now you have to manually specify them when using multiple BSS.
+
Try assigning related addresses from the locally administered MAC address ranges,
+
by reusing the hardware address but replacing the second nibble with 2, 6, A or E.
+
(e.g. if real address is `XX:XX:XX:XX:XX`, try `X2:XX:XX:XX:XX:XX`, `X6:XX:XX:XX:XX:XX`, ...
+
for the second, third, ... BSS)
+
'';
+
};
+
+
macAcl = mkOption {
+
default = "deny";
+
type = types.enum ["deny" "allow" "radius"];
+
apply = x:
+
getAttr x {
+
"deny" = 0;
+
"allow" = 1;
+
"radius" = 2;
+
};
+
description = mdDoc ''
+
Station MAC address -based authentication. The following modes are available:
+
+
- {var}`"deny"`: Allow unless listed in {option}`macDeny` (default)
+
- {var}`"allow"`: Deny unless listed in {option}`macAllow`
+
- {var}`"radius"`: Use external radius server, but check both {option}`macAllow` and {option}`macDeny` first
+
+
Please note that this kind of access control requires a driver that uses
+
hostapd to take care of management frame processing and as such, this can be
+
used with driver=hostap or driver=nl80211, but not with driver=atheros.
+
'';
+
};
+
+
macAllow = mkOption {
+
type = types.listOf types.str;
+
default = [];
+
example = ["11:22:33:44:55:66"];
+
description = mdDoc ''
+
Specifies the MAC addresses to allow if {option}`macAcl` is set to {var}`"allow"` or {var}`"radius"`.
+
These values will be world-readable in the Nix store. Values will automatically be merged with
+
{option}`macAllowFile` if necessary.
+
'';
+
};
+
+
macAllowFile = mkOption {
+
type = types.nullOr types.path;
+
default = null;
+
description = mdDoc ''
+
Specifies a file containing the MAC addresses to allow if {option}`macAcl` is set to {var}`"allow"` or {var}`"radius"`.
+
The file should contain exactly one MAC address per line. Comments and empty lines are ignored,
+
only lines starting with a valid MAC address will be considered (e.g. `11:22:33:44:55:66`) and
+
any content after the MAC address is ignored.
+
'';
+
};
+
+
macDeny = mkOption {
+
type = types.listOf types.str;
+
default = [];
+
example = ["11:22:33:44:55:66"];
+
description = mdDoc ''
+
Specifies the MAC addresses to deny if {option}`macAcl` is set to {var}`"deny"` or {var}`"radius"`.
+
These values will be world-readable in the Nix store. Values will automatically be merged with
+
{option}`macDenyFile` if necessary.
+
'';
+
};
+
+
macDenyFile = mkOption {
+
type = types.nullOr types.path;
+
default = null;
+
description = mdDoc ''
+
Specifies a file containing the MAC addresses to deny if {option}`macAcl` is set to {var}`"deny"` or {var}`"radius"`.
+
The file should contain exactly one MAC address per line. Comments and empty lines are ignored,
+
only lines starting with a valid MAC address will be considered (e.g. `11:22:33:44:55:66`) and
+
any content after the MAC address is ignored.
+
'';
+
};
+
+
ignoreBroadcastSsid = mkOption {
+
default = "disabled";
+
type = types.enum ["disabled" "empty" "clear"];
+
apply = x:
+
getAttr x {
+
"disabled" = 0;
+
"empty" = 1;
+
"clear" = 2;
+
};
+
description = mdDoc ''
+
Send empty SSID in beacons and ignore probe request frames that do not
+
specify full SSID, i.e., require stations to know SSID. Note that this does
+
not increase security, since your clients will then broadcast the SSID instead,
+
which can increase congestion.
+
+
- {var}`"disabled"`: Advertise ssid normally.
+
- {var}`"empty"`: send empty (length=0) SSID in beacon and ignore probe request for broadcast SSID
+
- {var}`"clear"`: clear SSID (ASCII 0), but keep the original length (this may be required with some
+
legacy clients that do not support empty SSID) and ignore probe requests for broadcast SSID. Only
+
use this if empty does not work with your clients.
+
'';
+
};
+
+
apIsolate = mkOption {
+
default = false;
+
type = types.bool;
+
description = mdDoc ''
+
Isolate traffic between stations (clients) and prevent them from
+
communicating with each other.
+
'';
+
};
+
+
settings = mkOption {
+
default = {};
+
example = { multi_ap = true; };
+
type = types.submodule {
+
freeformType = extraSettingsFormat.type;
+
};
+
description = mdDoc ''
+
Extra configuration options to put at the end of this BSS's defintion in the
+
hostapd.conf for the associated interface. To find out which options are global
+
and which are per-bss you have to read hostapd's source code, which is non-trivial
+
and not documented otherwise.
+
+
Lists will be converted to multiple definitions of the same key, and booleans to 0/1.
+
Otherwise, the inputs are not modified or checked for correctness.
+
'';
+
};
+
+
dynamicConfigScripts = mkOption {
+
default = {};
+
type = types.attrsOf types.path;
+
example = literalExpression ''
+
{
+
exampleDynamicConfig = pkgs.writeShellScript "dynamic-config" '''
+
HOSTAPD_CONFIG=$1
+
# These always exist, but may or may not be used depending on the actual configuration
+
MAC_ALLOW_FILE=$2
+
MAC_DENY_FILE=$3
+
+
cat >> "$HOSTAPD_CONFIG" << EOF
+
# Add some dynamically generated statements here
+
EOF
+
''';
+
}
+
'';
+
description = mdDoc ''
+
All of these scripts will be executed in lexicographical order before hostapd
+
is started, right after the bss segment was generated and may dynamically
+
append bss options to the generated configuration file.
+
+
The first argument will point to the configuration file that you may append to.
+
The second and third argument will point to this BSS's MAC allow and MAC deny file respectively.
+
'';
+
};
+
+
#### IEEE 802.11i (WPA) configuration
+
+
authentication = {
+
mode = mkOption {
+
default = "wpa3-sae";
+
type = types.enum ["none" "wpa2-sha256" "wpa3-sae-transition" "wpa3-sae"];
+
description = mdDoc ''
+
Selects the authentication mode for this AP.
+
+
- {var}`"none"`: Don't configure any authentication. This will disable wpa alltogether
+
and create an open AP. Use {option}`settings` together with this option if you
+
want to configure the authentication manually. Any password options will still be
+
effective, if set.
+
- {var}`"wpa2-sha256"`: WPA2-Personal using SHA256 (IEEE 802.11i/RSN). Passwords are set
+
using {option}`wpaPassword` or preferably by {option}`wpaPasswordFile` or {option}`wpaPskFile`.
+
- {var}`"wpa3-sae-transition"`: Use WPA3-Personal (SAE) if possible, otherwise fallback
+
to WPA2-SHA256. Only use if necessary and switch to the newer WPA3-SAE when possible.
+
You will have to specify both {option}`wpaPassword` and {option}`saePasswords` (or one of their alternatives).
+
- {var}`"wpa3-sae"`: Use WPA3-Personal (SAE). This is currently the recommended way to
+
setup a secured WiFi AP (as of March 2023) and therefore the default. Passwords are set
+
using either {option}`saePasswords` or preferably {option}`saePasswordsFile`.
+
'';
+
};
+
+
pairwiseCiphers = mkOption {
+
default = ["CCMP"];
+
example = ["CCMP-256" "GCMP-256"];
+
type = types.listOf types.str;
+
description = mdDoc ''
+
Set of accepted cipher suites (encryption algorithms) for pairwise keys (unicast packets).
+
By default this allows just CCMP, which is the only commonly supported secure option.
+
Use {option}`enableRecommendedPairwiseCiphers` to also enable newer recommended ciphers.
-
noScan = mkOption {
-
type = types.bool;
-
default = false;
-
description = lib.mdDoc ''
-
Do not scan for overlapping BSSs in HT40+/- mode.
-
Caution: turning this on will violate regulatory requirements!
-
'';
-
};
+
Please refer to the hostapd documentation for allowed values. Generally, only
+
CCMP or GCMP modes should be considered safe options. Most devices support CCMP while
+
GCMP is often only available with devices supporting WiFi 5 (IEEE 802.11ac) or higher.
+
'';
+
};
-
driver = mkOption {
-
default = "nl80211";
-
example = "hostapd";
-
type = types.str;
-
description = lib.mdDoc ''
-
Which driver {command}`hostapd` will use.
-
Most applications will probably use the default.
-
'';
-
};
+
enableRecommendedPairwiseCiphers = mkOption {
+
default = false;
+
example = true;
+
type = types.bool;
+
description = mdDoc ''
+
Additionally enable the recommended set of pairwise ciphers.
+
This enables newer secure ciphers, additionally to those defined in {option}`pairwiseCiphers`.
+
You will have to test whether your hardware supports these by trial-and-error, because
+
even if `iw list` indicates hardware support, your driver might not expose it.
+
+
Beware {command}`hostapd` will most likely not return a useful error message in case
+
this is enabled despite the driver or hardware not supporting the newer ciphers.
+
Look out for messages like `Failed to set beacon parameters`.
+
'';
+
};
+
+
wpaPassword = mkOption {
+
default = null;
+
example = "a flakey password";
+
type = types.nullOr types.str;
+
description = mdDoc ''
+
Sets the password for WPA-PSK that will be converted to the pre-shared key.
+
The password length must be in the range [8, 63] characters. While some devices
+
may allow arbitrary characters (such as UTF-8) to be used, but the standard specifies
+
that each character in the passphrase must be an ASCII character in the range [0x20, 0x7e]
+
(IEEE Std. 802.11i-2004, Annex H.4.1). Use emojis at your own risk.
-
ssid = mkOption {
-
default = config.system.nixos.distroId;
-
defaultText = literalExpression "config.system.nixos.distroId";
-
example = "mySpecialSSID";
-
type = types.str;
-
description = lib.mdDoc "SSID to be used in IEEE 802.11 management frames.";
-
};
+
Not used when {option}`mode` is {var}`"wpa3-sae"`.
-
hwMode = mkOption {
-
default = "g";
-
type = types.enum [ "a" "b" "g" ];
-
description = lib.mdDoc ''
-
Operation mode.
-
(a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g).
-
'';
-
};
+
Warning: This password will get put into a world-readable file in the Nix store!
+
Using {option}`wpaPasswordFile` or {option}`wpaPskFile` instead is recommended.
+
'';
+
};
-
channel = mkOption {
-
default = 7;
-
example = 11;
-
type = types.int;
-
description = lib.mdDoc ''
-
Channel number (IEEE 802.11)
-
Please note that some drivers do not use this value from
-
{command}`hostapd` and the channel will need to be configured
-
separately with {command}`iwconfig`.
-
'';
-
};
+
wpaPasswordFile = mkOption {
+
default = null;
+
type = types.nullOr types.path;
+
description = mdDoc ''
+
Sets the password for WPA-PSK. Follows the same rules as {option}`wpaPassword`,
+
but reads the password from the given file to prevent the password from being
+
put into the Nix store.
-
group = mkOption {
-
default = "wheel";
-
example = "network";
-
type = types.str;
-
description = lib.mdDoc ''
-
Members of this group can control {command}`hostapd`.
-
'';
-
};
+
Not used when {option}`mode` is {var}`"wpa3-sae"`.
+
'';
+
};
-
wpa = mkOption {
-
type = types.bool;
-
default = true;
-
description = lib.mdDoc ''
-
Enable WPA (IEEE 802.11i/D3.0) to authenticate with the access point.
-
'';
-
};
+
wpaPskFile = mkOption {
+
default = null;
+
type = types.nullOr types.path;
+
description = mdDoc ''
+
Sets the password(s) for WPA-PSK. Similar to {option}`wpaPasswordFile`,
+
but additionally allows specifying multiple passwords, and some other options.
-
wpaPassphrase = mkOption {
-
default = "my_sekret";
-
example = "any_64_char_string";
-
type = types.str;
-
description = lib.mdDoc ''
-
WPA-PSK (pre-shared-key) passphrase. Clients will need this
-
passphrase to associate with this access point.
-
Warning: This passphrase will get put into a world-readable file in
-
the Nix store!
-
'';
-
};
+
Each line, except for empty lines and lines starting with #, must contain a
+
MAC address and either a 64-hex-digit PSK or a password separated with a space.
+
The password must follow the same rules as outlined in {option}`wpaPassword`.
+
The special MAC address `00:00:00:00:00:00` can be used to configure PSKs
+
that any client can use.
-
logLevel = mkOption {
-
default = 2;
-
type = types.int;
-
description = lib.mdDoc ''
-
Levels (minimum value for logged events):
-
0 = verbose debugging
-
1 = debugging
-
2 = informational messages
-
3 = notification
-
4 = warning
-
'';
-
};
+
An optional key identifier can be added by prefixing the line with `keyid=<keyid_string>`
+
An optional VLAN ID can be specified by prefixing the line with `vlanid=<VLAN ID>`.
+
An optional WPS tag can be added by prefixing the line with `wps=<0/1>` (default: 0).
+
Any matching entry with that tag will be used when generating a PSK for a WPS Enrollee
+
instead of generating a new random per-Enrollee PSK.
+
+
Not used when {option}`mode` is {var}`"wpa3-sae"`.
+
'';
+
};
+
+
saePasswords = mkOption {
+
default = [];
+
example = literalExpression ''
+
[
+
# Any client may use these passwords
+
{ password = "Wi-Figure it out"; }
+
{ password = "second password for everyone"; mac = "ff:ff:ff:ff:ff:ff"; }
+
+
# Only the client with MAC-address 11:22:33:44:55:66 can use this password
+
{ password = "sekret pazzword"; mac = "11:22:33:44:55:66"; }
+
]
+
'';
+
description = mdDoc ''
+
Sets allowed passwords for WPA3-SAE.
+
+
The last matching (based on peer MAC address and identifier) entry is used to
+
select which password to use. An empty string has the special meaning of
+
removing all previously added entries.
+
+
Warning: These entries will get put into a world-readable file in
+
the Nix store! Using {option}`saePasswordFile` instead is recommended.
+
+
Not used when {option}`mode` is {var}`"wpa2-sha256"`.
+
'';
+
type = types.listOf (types.submodule {
+
options = {
+
password = mkOption {
+
example = "a flakey password";
+
type = types.str;
+
description = mdDoc ''
+
The password for this entry. SAE technically imposes no restrictions on
+
password length or character set. But due to limitations of {command}`hostapd`'s
+
config file format, a true newline character cannot be parsed.
+
+
Warning: This password will get put into a world-readable file in
+
the Nix store! Using {option}`wpaPasswordFile` or {option}`wpaPskFile` is recommended.
+
'';
+
};
+
+
mac = mkOption {
+
default = null;
+
example = "11:22:33:44:55:66";
+
type = types.nullOr types.str;
+
description = mdDoc ''
+
If this attribute is not included, or if is set to the wildcard address (`ff:ff:ff:ff:ff:ff`),
+
the entry is available for any station (client) to use. If a specific peer MAC address is included,
+
only a station with that MAC address is allowed to use the entry.
+
'';
+
};
+
+
vlanid = mkOption {
+
default = null;
+
example = 1;
+
type = types.nullOr types.int;
+
description = mdDoc "If this attribute is given, all clients using this entry will get tagged with the given VLAN ID.";
+
};
+
+
pk = mkOption {
+
default = null;
+
example = "";
+
type = types.nullOr types.str;
+
description = mdDoc ''
+
If this attribute is given, SAE-PK will be enabled for this connection.
+
This prevents evil-twin attacks, but a public key is required additionally to connect.
+
(Essentially adds pubkey authentication such that the client can verify identity of the AP)
+
'';
+
};
+
+
id = mkOption {
+
default = null;
+
example = "";
+
type = types.nullOr types.str;
+
description = mdDoc ''
+
If this attribute is given with non-zero length, it will set the password identifier
+
for this entry. It can then only be used with that identifier.
+
'';
+
};
+
};
+
});
+
};
+
+
saePasswordsFile = mkOption {
+
default = null;
+
type = types.nullOr types.path;
+
description = mdDoc ''
+
Sets the password for WPA3-SAE. Follows the same rules as {option}`saePasswords`,
+
but reads the entries from the given file to prevent them from being
+
put into the Nix store.
+
+
One entry per line, empty lines and lines beginning with # will be ignored.
+
Each line must match the following format, although the order of optional
+
parameters doesn't matter:
+
`<password>[|mac=<peer mac>][|vlanid=<VLAN ID>][|pk=<m:ECPrivateKey-base64>][|id=<identifier>]`
+
+
Not used when {option}`mode` is {var}`"wpa2-sha256"`.
+
'';
+
};
+
+
saeAddToMacAllow = mkOption {
+
type = types.bool;
+
default = false;
+
description = mdDoc ''
+
If set, all sae password entries that have a non-wildcard MAC associated to
+
them will additionally be used to populate the MAC allow list. This is
+
additional to any entries set via {option}`macAllow` or {option}`macAllowFile`.
+
'';
+
};
+
};
+
+
managementFrameProtection = mkOption {
+
default = "required";
+
type = types.enum ["disabled" "optional" "required"];
+
apply = x:
+
getAttr x {
+
"disabled" = 0;
+
"optional" = 1;
+
"required" = 2;
+
};
+
description = mdDoc ''
+
Management frame protection (MFP) authenticates management frames
+
to prevent deauthentication (or related) attacks.
+
+
- {var}`"disabled"`: No management frame protection
+
- {var}`"optional"`: Use MFP if a connection allows it
+
- {var}`"required"`: Force MFP for all clients
+
'';
+
};
+
};
+
+
config = let
+
bss = bssSubmod.name;
+
bssCfg = bssSubmod.config;
+
+
pairwiseCiphers =
+
concatStringsSep " " (unique (bssCfg.authentication.pairwiseCiphers
+
++ optionals bssCfg.authentication.enableRecommendedPairwiseCiphers ["CCMP" "CCMP-256" "GCMP" "GCMP-256"]));
+
in {
+
settings = {
+
ssid = bssCfg.ssid;
+
utf8_ssid = bssCfg.ssid;
+
+
logger_syslog = mkDefault (-1);
+
logger_syslog_level = bssCfg.logLevel;
+
logger_stdout = mkDefault (-1);
+
logger_stdout_level = bssCfg.logLevel;
+
ctrl_interface = mkDefault "/run/hostapd";
+
ctrl_interface_group = bssCfg.group;
+
+
macaddr_acl = bssCfg.macAcl;
+
+
ignore_broadcast_ssid = bssCfg.ignoreBroadcastSsid;
+
+
# IEEE 802.11i (authentication) related configuration
+
# Encrypt management frames to protect against deauthentication and similar attacks
+
ieee80211w = bssCfg.managementFrameProtection;
+
+
# Only allow WPA by default and disable insecure WEP
+
auth_algs = mkDefault 1;
+
# Always enable QoS, which is required for 802.11n and above
+
wmm_enabled = mkDefault true;
+
ap_isolate = bssCfg.apIsolate;
+
+
sae_password = flip map bssCfg.authentication.saePasswords (
+
entry:
+
entry.password
+
+ optionalString (entry.mac != null) "|mac=${entry.mac}"
+
+ optionalString (entry.vlanid != null) "|vlanid=${toString entry.vlanid}"
+
+ optionalString (entry.pk != null) "|pk=${entry.pk}"
+
+ optionalString (entry.id != null) "|id=${entry.id}"
+
);
+
} // optionalAttrs (bssCfg.bssid != null) {
+
bssid = bssCfg.bssid;
+
} // optionalAttrs (bssCfg.macAllow != [] || bssCfg.macAllowFile != null || bssCfg.authentication.saeAddToMacAllow) {
+
accept_mac_file = "/run/hostapd/${bss}.mac.allow";
+
} // optionalAttrs (bssCfg.macDeny != [] || bssCfg.macDenyFile != null) {
+
deny_mac_file = "/run/hostapd/${bss}.mac.deny";
+
} // optionalAttrs (bssCfg.authentication.mode == "none") {
+
wpa = mkDefault 0;
+
} // optionalAttrs (bssCfg.authentication.mode == "wpa3-sae") {
+
wpa = 2;
+
wpa_key_mgmt = "SAE";
+
# Derive PWE using both hunting-and-pecking loop and hash-to-element
+
sae_pwe = 2;
+
# Prevent downgrade attacks by indicating to clients that they should
+
# disable any transition modes from now on.
+
transition_disable = "0x01";
+
} // optionalAttrs (bssCfg.authentication.mode == "wpa3-sae-transition") {
+
wpa = 2;
+
wpa_key_mgmt = "WPA-PSK-SHA256 SAE";
+
} // optionalAttrs (bssCfg.authentication.mode == "wpa2-sha256") {
+
wpa = 2;
+
wpa_key_mgmt = "WPA-PSK-SHA256";
+
} // optionalAttrs (bssCfg.authentication.mode != "none") {
+
wpa_pairwise = pairwiseCiphers;
+
rsn_pairwise = pairwiseCiphers;
+
} // optionalAttrs (bssCfg.authentication.wpaPassword != null) {
+
wpa_passphrase = bssCfg.authentication.wpaPassword;
+
} // optionalAttrs (bssCfg.authentication.wpaPskFile != null) {
+
wpa_psk_file = bssCfg.authentication.wpaPskFile;
+
};
-
countryCode = mkOption {
-
default = null;
-
example = "US";
-
type = with types; nullOr str;
-
description = lib.mdDoc ''
-
Country code (ISO/IEC 3166-1). Used to set regulatory domain.
-
Set as needed to indicate country in which device is operating.
-
This can limit available channels and transmit power.
-
These two octets are used as the first two octets of the Country String
-
(dot11CountryString).
-
If set this enables IEEE 802.11d. This advertises the countryCode and
-
the set of allowed channels and transmit power levels based on the
-
regulatory limits.
-
'';
-
};
+
dynamicConfigScripts = let
+
# All MAC addresses from SAE entries that aren't the wildcard address
+
saeMacs = filter (mac: mac != null && (toLower mac) != "ff:ff:ff:ff:ff:ff") (map (x: x.mac) bssCfg.authentication.saePasswords);
+
in {
+
"20-addMacAllow" = mkIf (bssCfg.macAllow != []) (pkgs.writeShellScript "add-mac-allow" ''
+
MAC_ALLOW_FILE=$2
+
cat >> "$MAC_ALLOW_FILE" <<EOF
+
${concatStringsSep "\n" bssCfg.macAllow}
+
EOF
+
'');
+
"20-addMacAllowFile" = mkIf (bssCfg.macAllowFile != null) (pkgs.writeShellScript "add-mac-allow-file" ''
+
MAC_ALLOW_FILE=$2
+
grep -Eo '^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})' ${escapeShellArg bssCfg.macAllowFile} >> "$MAC_ALLOW_FILE"
+
'');
+
"20-addMacAllowFromSae" = mkIf (bssCfg.authentication.saeAddToMacAllow && saeMacs != []) (pkgs.writeShellScript "add-mac-allow-from-sae" ''
+
MAC_ALLOW_FILE=$2
+
cat >> "$MAC_ALLOW_FILE" <<EOF
+
${concatStringsSep "\n" saeMacs}
+
EOF
+
'');
+
# Populate mac allow list from saePasswordsFile
+
# (filter for lines with mac=; exclude commented lines; filter for real mac-addresses; strip mac=)
+
"20-addMacAllowFromSaeFile" = mkIf (bssCfg.authentication.saeAddToMacAllow && bssCfg.authentication.saePasswordsFile != null) (pkgs.writeShellScript "add-mac-allow-from-sae-file" ''
+
MAC_ALLOW_FILE=$2
+
grep mac= ${escapeShellArg bssCfg.authentication.saePasswordsFile} \
+
| grep -v '\s*#' \
+
| grep -Eo 'mac=([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})' \
+
| sed 's|^mac=||' >> "$MAC_ALLOW_FILE"
+
'');
+
"20-addMacDeny" = mkIf (bssCfg.macDeny != []) (pkgs.writeShellScript "add-mac-deny" ''
+
MAC_DENY_FILE=$3
+
cat >> "$MAC_DENY_FILE" <<EOF
+
${concatStringsSep "\n" bssCfg.macDeny}
+
EOF
+
'');
+
"20-addMacDenyFile" = mkIf (bssCfg.macDenyFile != null) (pkgs.writeShellScript "add-mac-deny-file" ''
+
MAC_DENY_FILE=$3
+
grep -Eo '^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})' ${escapeShellArg bssCfg.macDenyFile} >> "$MAC_DENY_FILE"
+
'');
+
# Add wpa_passphrase from file
+
"20-wpaPasswordFile" = mkIf (bssCfg.authentication.wpaPasswordFile != null) (pkgs.writeShellScript "wpa-password-file" ''
+
HOSTAPD_CONFIG_FILE=$1
+
cat >> "$HOSTAPD_CONFIG_FILE" <<EOF
+
wpa_passphrase=$(cat ${escapeShellArg bssCfg.authentication.wpaPasswordFile})
+
EOF
+
'');
+
# Add sae passwords from file
+
"20-saePasswordsFile" = mkIf (bssCfg.authentication.saePasswordsFile != null) (pkgs.writeShellScript "sae-passwords-file" ''
+
HOSTAPD_CONFIG_FILE=$1
+
grep -v '\s*#' ${escapeShellArg bssCfg.authentication.saePasswordsFile} \
+
| sed 's/^/sae_password=/' >> "$HOSTAPD_CONFIG_FILE"
+
'');
+
};
+
};
+
}));
+
};
+
};
-
extraConfig = mkOption {
-
default = "";
-
example = ''
-
auth_algo=0
-
ieee80211n=1
-
ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40]
-
'';
-
type = types.lines;
-
description = lib.mdDoc "Extra configuration options to put in hostapd.conf.";
+
config.settings = let
+
radio = radioSubmod.name;
+
radioCfg = radioSubmod.config;
+
in {
+
driver = radioCfg.driver;
+
hw_mode = {
+
"2g" = "g";
+
"5g" = "a";
+
"6g" = "a";
+
"60g" = "ad";
+
}.${radioCfg.band};
+
channel = radioCfg.channel;
+
noscan = radioCfg.noScan;
+
} // optionalAttrs (radioCfg.countryCode != null) {
+
country_code = radioCfg.countryCode;
+
# IEEE 802.11d: Limit to frequencies allowed in country
+
ieee80211d = true;
+
# IEEE 802.11h: Enable radar detection and DFS (Dynamic Frequency Selection)
+
ieee80211h = true;
+
} // optionalAttrs radioCfg.wifi4.enable {
+
# IEEE 802.11n (WiFi 4) related configuration
+
ieee80211n = true;
+
require_ht = radioCfg.wifi4.require;
+
ht_capab = concatMapStrings (x: "[${x}]") radioCfg.wifi4.capabilities;
+
} // optionalAttrs radioCfg.wifi5.enable {
+
# IEEE 802.11ac (WiFi 5) related configuration
+
ieee80211ac = true;
+
require_vht = radioCfg.wifi5.require;
+
vht_oper_chwidth = radioCfg.wifi5.operatingChannelWidth;
+
vht_capab = concatMapStrings (x: "[${x}]") radioCfg.wifi5.capabilities;
+
} // optionalAttrs radioCfg.wifi6.enable {
+
# IEEE 802.11ax (WiFi 6) related configuration
+
ieee80211ax = true;
+
require_he = mkIf radioCfg.wifi6.require true;
+
he_oper_chwidth = radioCfg.wifi6.operatingChannelWidth;
+
he_su_beamformer = radioCfg.wifi6.singleUserBeamformer;
+
he_su_beamformee = radioCfg.wifi6.singleUserBeamformee;
+
he_mu_beamformer = radioCfg.wifi6.multiUserBeamformer;
+
} // optionalAttrs radioCfg.wifi7.enable {
+
# IEEE 802.11be (WiFi 7) related configuration
+
ieee80211be = true;
+
eht_oper_chwidth = radioCfg.wifi7.operatingChannelWidth;
+
eht_su_beamformer = radioCfg.wifi7.singleUserBeamformer;
+
eht_su_beamformee = radioCfg.wifi7.singleUserBeamformee;
+
eht_mu_beamformer = radioCfg.wifi7.multiUserBeamformer;
+
};
+
}));
};
};
};
+
imports = let
+
renamedOptionMessage = message: ''
+
${message}
+
Refer to the documentation of `services.hostapd.radios` for an example and more information.
+
'';
+
in [
+
(mkRemovedOptionModule ["services" "hostapd" "interface"]
+
(renamedOptionMessage "All other options for this interface are now set via `services.hostapd.radios.«interface».*`."))
-
###### implementation
+
(mkRemovedOptionModule ["services" "hostapd" "driver"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».driver`."))
+
(mkRemovedOptionModule ["services" "hostapd" "noScan"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».noScan`."))
+
(mkRemovedOptionModule ["services" "hostapd" "countryCode"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».countryCode`."))
+
(mkRemovedOptionModule ["services" "hostapd" "hwMode"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».band`."))
+
(mkRemovedOptionModule ["services" "hostapd" "channel"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».channel`."))
+
(mkRemovedOptionModule ["services" "hostapd" "extraConfig"]
+
(renamedOptionMessage ''
+
It has been replaced by `services.hostapd.radios.«interface».settings` and
+
`services.hostapd.radios.«interface».networks.«network».settings` respectively
+
for per-radio and per-network extra configuration. The module now supports a lot more
+
options inherently, so please re-check whether using settings is still necessary.''))
+
+
(mkRemovedOptionModule ["services" "hostapd" "logLevel"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».networks.«network».logLevel`."))
+
(mkRemovedOptionModule ["services" "hostapd" "group"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».networks.«network».group`."))
+
(mkRemovedOptionModule ["services" "hostapd" "ssid"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».networks.«network».ssid`."))
+
+
(mkRemovedOptionModule ["services" "hostapd" "wpa"]
+
(renamedOptionMessage "It has been replaced by `services.hostapd.radios.«interface».networks.«network».authentication.mode`."))
+
(mkRemovedOptionModule ["services" "hostapd" "wpaPassphrase"]
+
(renamedOptionMessage ''
+
It has been replaced by `services.hostapd.radios.«interface».networks.«network».authentication.wpaPassword`.
+
While upgrading your config, please consider using the newer SAE authentication scheme
+
and one of the new `passwordFile`-like options to avoid putting the password into the world readable nix-store.''))
+
];
config = mkIf cfg.enable {
+
assertions =
+
[
+
{
+
assertion = cfg.radios != {};
+
message = "At least one radio must be configured with hostapd!";
+
}
+
]
+
# Radio warnings
+
++ (concatLists (mapAttrsToList (
+
radio: radioCfg:
+
[
+
{
+
assertion = radioCfg.networks != {};
+
message = "hostapd radio ${radio}: At least one network must be configured!";
+
}
+
# XXX: There could be many more useful assertions about (band == xy) -> ensure other required settings.
+
# see https://github.com/openwrt/openwrt/blob/539cb5389d9514c99ec1f87bd4465f77c7ed9b93/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh#L158
+
{
+
assertion = length (filter (bss: bss == radio) (attrNames radioCfg.networks)) == 1;
+
message = ''hostapd radio ${radio}: Exactly one network must be named like the radio, for reasons internal to hostapd.'';
+
}
+
{
+
assertion = (radioCfg.wifi4.enable && builtins.elem "HT40-" radioCfg.wifi4.capabilities) -> radioCfg.channel != 0;
+
message = ''hostapd radio ${radio}: using ACS (channel = 0) together with HT40- (wifi4.capabilities) is unsupported by hostapd'';
+
}
+
]
+
# BSS warnings
+
++ (concatLists (mapAttrsToList (bss: bssCfg: let
+
auth = bssCfg.authentication;
+
countWpaPasswordDefinitions = count (x: x != null) [
+
auth.wpaPassword
+
auth.wpaPasswordFile
+
auth.wpaPskFile
+
];
+
in [
+
{
+
assertion = hasPrefix radio bss;
+
message = "hostapd radio ${radio} bss ${bss}: The bss (network) name ${bss} is invalid. It must be prefixed by the radio name for reasons internal to hostapd. A valid name would be e.g. ${radio}, ${radio}-1, ...";
+
}
+
{
+
assertion = (length (attrNames radioCfg.networks) > 1) -> (bssCfg.bssid != null);
+
message = ''hostapd radio ${radio} bss ${bss}: bssid must be specified manually (for now) since this radio uses multiple BSS.'';
+
}
+
{
+
assertion = auth.mode == "wpa3-sae" -> bssCfg.managementFrameProtection == 2;
+
message = ''hostapd radio ${radio} bss ${bss}: uses WPA3-SAE which requires managementFrameProtection="required"'';
+
}
+
{
+
assertion = auth.mode == "wpa3-sae-transition" -> bssCfg.managementFrameProtection != 0;
+
message = ''hostapd radio ${radio} bss ${bss}: uses WPA3-SAE in transition mode with WPA2-SHA256, which requires managementFrameProtection="optional" or ="required"'';
+
}
+
{
+
assertion = countWpaPasswordDefinitions <= 1;
+
message = ''hostapd radio ${radio} bss ${bss}: must use at most one WPA password option (wpaPassword, wpaPasswordFile, wpaPskFile)'';
+
}
+
{
+
assertion = auth.wpaPassword != null -> (stringLength auth.wpaPassword >= 8 && stringLength auth.wpaPassword <= 63);
+
message = ''hostapd radio ${radio} bss ${bss}: uses a wpaPassword of invalid length (must be in [8,63]).'';
+
}
+
{
+
assertion = auth.saePasswords == [] || auth.saePasswordsFile == null;
+
message = ''hostapd radio ${radio} bss ${bss}: must use only one SAE password option (saePasswords or saePasswordsFile)'';
+
}
+
{
+
assertion = auth.mode == "wpa3-sae" -> (auth.saePasswords != [] || auth.saePasswordsFile != null);
+
message = ''hostapd radio ${radio} bss ${bss}: uses WPA3-SAE which requires defining a sae password option'';
+
}
+
{
+
assertion = auth.mode == "wpa3-sae-transition" -> (auth.saePasswords != [] || auth.saePasswordsFile != null) && countWpaPasswordDefinitions == 1;
+
message = ''hostapd radio ${radio} bss ${bss}: uses WPA3-SAE in transition mode requires defining both a wpa password option and a sae password option'';
+
}
+
{
+
assertion = auth.mode == "wpa2-sha256" -> countWpaPasswordDefinitions == 1;
+
message = ''hostapd radio ${radio} bss ${bss}: uses WPA2-SHA256 which requires defining a wpa password option'';
+
}
+
])
+
radioCfg.networks))
+
)
+
cfg.radios));
-
environment.systemPackages = [ pkgs.hostapd ];
+
environment.systemPackages = [cfg.package];
-
services.udev.packages = optionals (cfg.countryCode != null) [ pkgs.crda ];
+
services.udev.packages = with pkgs; [crda];
-
systemd.services.hostapd =
-
{ description = "hostapd wireless AP";
+
systemd.services.hostapd = {
+
description = "IEEE 802.11 Host Access-Point Daemon";
-
path = [ pkgs.hostapd ];
-
after = [ "sys-subsystem-net-devices-${escapedInterface}.device" ];
-
bindsTo = [ "sys-subsystem-net-devices-${escapedInterface}.device" ];
-
requiredBy = [ "network-link-${cfg.interface}.service" ];
-
wantedBy = [ "multi-user.target" ];
+
path = [cfg.package];
+
after = map (radio: "sys-subsystem-net-devices-${utils.escapeSystemdPath radio}.device") (attrNames cfg.radios);
+
bindsTo = map (radio: "sys-subsystem-net-devices-${utils.escapeSystemdPath radio}.device") (attrNames cfg.radios);
+
wantedBy = ["multi-user.target"];
-
serviceConfig =
-
{ ExecStart = "${pkgs.hostapd}/bin/hostapd ${configFile}";
-
Restart = "always";
-
};
+
# Create merged configuration and acl files for each radio (and their bss's) prior to starting
+
preStart = concatStringsSep "\n" (mapAttrsToList makeRadioRuntimeFiles cfg.radios);
+
+
serviceConfig = {
+
ExecStart = "${cfg.package}/bin/hostapd ${concatStringsSep " " runtimeConfigFiles}";
+
Restart = "always";
+
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+
RuntimeDirectory = "hostapd";
+
+
# Hardening
+
LockPersonality = true;
+
MemoryDenyWriteExecute = true;
+
DevicePolicy = "closed";
+
DeviceAllow = "/dev/rfkill rw";
+
NoNewPrivileges = true;
+
PrivateUsers = false; # hostapd requires true root access.
+
PrivateTmp = true;
+
ProtectClock = true;
+
ProtectControlGroups = true;
+
ProtectHome = true;
+
ProtectHostname = true;
+
ProtectKernelLogs = true;
+
ProtectKernelModules = true;
+
ProtectKernelTunables = true;
+
ProtectProc = "invisible";
+
ProcSubset = "pid";
+
ProtectSystem = "strict";
+
RestrictAddressFamilies = [
+
"AF_INET"
+
"AF_INET6"
+
"AF_NETLINK"
+
"AF_UNIX"
+
];
+
RestrictNamespaces = true;
+
RestrictRealtime = true;
+
RestrictSUIDSGID = true;
+
SystemCallArchitectures = "native";
+
SystemCallFilter = [
+
"@system-service"
+
"~@privileged"
+
"@chown"
+
];
+
UMask = "0077";
};
+
};
};
}
+5 -2
nixos/modules/services/web-apps/plausible.nix
···
path = [ cfg.package ]
++ optional cfg.database.postgres.setup config.services.postgresql.package;
script = ''
-
export CONFIG_DIR=$CREDENTIALS_DIRECTORY
+
export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )"
+
export ADMIN_USER_PWD="$(< $CREDENTIALS_DIRECTORY/ADMIN_USER_PWD )"
+
export SECRET_KEY_BASE="$(< $CREDENTIALS_DIRECTORY/SECRET_KEY_BASE )"
-
export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )"
+
${lib.optionalString (cfg.mail.smtp.passwordFile != null)
+
''export SMTP_USER_PWD="$(< $CREDENTIALS_DIRECTORY/SMTP_USER_PWD )"''}
# setup
${cfg.package}/createdb.sh
+29 -6
nixos/modules/services/x11/display-managers/default.nix
···
Xft.hintstyle: ${fontconfig.hinting.style}
'';
+
# FIXME: this is an ugly hack.
+
# Some sessions (read: most WMs) don't activate systemd's `graphical-session.target`.
+
# Other sessions (read: most non-WMs) expect `graphical-session.target` to be reached
+
# when the entire session is actually ready. We used to just unconditionally force
+
# `graphical-session.target` to be activated in the session wrapper so things like
+
# xdg-autostart-generator work on sessions that are wrong, but this broke sessions
+
# that do things right. So, preserve this behavior (with some extra steps) by matching
+
# on XDG_CURRENT_DESKTOP and deliberately ignoring sessions we know can do the right thing.
+
fakeSession = action: ''
+
session_is_systemd_aware=$(
+
IFS=:
+
for i in $XDG_CURRENT_DESKTOP; do
+
case $i in
+
KDE|GNOME|X-NIXOS-SYSTEMD-AWARE) echo "1"; exit; ;;
+
*) ;;
+
esac
+
done
+
)
+
+
if [ -z "$session_is_systemd_aware" ]; then
+
/run/current-system/systemd/bin/systemctl --user ${action} nixos-fake-graphical-session.target
+
fi
+
'';
+
# file provided by services.xserver.displayManager.sessionData.wrapper
xsessionWrapper = pkgs.writeScript "xsession-wrapper"
''
···
${cfg.displayManager.sessionCommands}
-
# Start systemd user services for graphical sessions
-
/run/current-system/systemd/bin/systemctl --user start graphical-session.target
+
${fakeSession "start"}
# Allow the user to setup a custom session type.
if test -x ~/.xsession; then
···
"XDG_SESSION_ID"
];
-
systemd.user.targets.graphical-session = {
+
systemd.user.targets.nixos-fake-graphical-session = {
unitConfig = {
-
RefuseManualStart = false;
-
StopWhenUnneeded = false;
+
Description = "Fake graphical-session target for non-systemd-aware sessions";
+
BindsTo = "graphical-session.target";
};
};
···
test -n "$waitPID" && wait "$waitPID"
-
/run/current-system/systemd/bin/systemctl --user stop graphical-session.target
+
${fakeSession "stop"}
exit 0
'';
+92
nixos/modules/system/activation/activatable-system.nix
···
+
{ config, lib, pkgs, ... }:
+
+
let
+
inherit (lib)
+
mkOption
+
optionalString
+
types
+
;
+
+
perlWrapped = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
+
+
systemBuilderArgs = {
+
activationScript = config.system.activationScripts.script;
+
dryActivationScript = config.system.dryActivationScript;
+
};
+
+
systemBuilderCommands = ''
+
echo "$activationScript" > $out/activate
+
echo "$dryActivationScript" > $out/dry-activate
+
substituteInPlace $out/activate --subst-var-by out ''${!toplevelVar}
+
substituteInPlace $out/dry-activate --subst-var-by out ''${!toplevelVar}
+
chmod u+x $out/activate $out/dry-activate
+
unset activationScript dryActivationScript
+
+
mkdir $out/bin
+
substitute ${./switch-to-configuration.pl} $out/bin/switch-to-configuration \
+
--subst-var out \
+
--subst-var-by toplevel ''${!toplevelVar} \
+
--subst-var-by coreutils "${pkgs.coreutils}" \
+
--subst-var-by distroId ${lib.escapeShellArg config.system.nixos.distroId} \
+
--subst-var-by installBootLoader ${lib.escapeShellArg config.system.build.installBootLoader} \
+
--subst-var-by localeArchive "${config.i18n.glibcLocales}/lib/locale/locale-archive" \
+
--subst-var-by perl "${perlWrapped}" \
+
--subst-var-by shell "${pkgs.bash}/bin/sh" \
+
--subst-var-by su "${pkgs.shadow.su}/bin/su" \
+
--subst-var-by systemd "${config.systemd.package}" \
+
--subst-var-by utillinux "${pkgs.util-linux}" \
+
;
+
+
chmod +x $out/bin/switch-to-configuration
+
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
+
if ! output=$(${perlWrapped}/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
+
echo "switch-to-configuration syntax is not valid:"
+
echo "$output"
+
exit 1
+
fi
+
''}
+
'';
+
+
in
+
{
+
options = {
+
system.activatable = mkOption {
+
type = types.bool;
+
default = true;
+
description = ''
+
Whether to add the activation script to the system profile.
+
+
The default, to have the script available all the time, is what we normally
+
do, but for image based systems, this may not be needed or not be desirable.
+
'';
+
};
+
system.build.separateActivationScript = mkOption {
+
type = types.package;
+
description = ''
+
A separate activation script package that's not part of the system profile.
+
+
This is useful for configurations where `system.activatable` is `false`.
+
Otherwise, you can just use `system.build.toplevel`.
+
'';
+
};
+
};
+
config = {
+
system.systemBuilderCommands = lib.mkIf config.system.activatable systemBuilderCommands;
+
system.systemBuilderArgs = lib.mkIf config.system.activatable
+
(systemBuilderArgs // {
+
toplevelVar = "out";
+
});
+
+
system.build.separateActivationScript =
+
pkgs.runCommand
+
"separate-activation-script"
+
(systemBuilderArgs // {
+
toplevelVar = "toplevel";
+
toplevel = config.system.build.toplevel;
+
})
+
''
+
mkdir $out
+
${systemBuilderCommands}
+
'';
+
};
+
}
+21
nixos/modules/system/activation/activation-script.nix
···
`/usr/bin/env`.
'';
};
+
+
system.build.installBootLoader = mkOption {
+
internal = true;
+
# "; true" => make the `$out` argument from switch-to-configuration.pl
+
# go to `true` instead of `echo`, hiding the useless path
+
# from the log.
+
default = "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true";
+
description = lib.mdDoc ''
+
A program that writes a bootloader installation script to the path passed in the first command line argument.
+
+
See `nixos/modules/system/activation/switch-to-configuration.pl`.
+
'';
+
type = types.unique {
+
message = ''
+
Only one bootloader can be enabled at a time. This requirement has not
+
been checked until NixOS 22.05. Earlier versions defaulted to the last
+
definition. Change your configuration to enable only one bootloader.
+
'';
+
} (types.either types.str types.package);
+
};
+
};
+18 -16
nixos/modules/system/activation/switch-to-configuration.pl
···
## no critic(ValuesAndExpressions::ProhibitNoisyQuotes, ValuesAndExpressions::ProhibitMagicNumbers, ValuesAndExpressions::ProhibitEmptyQuotes, ValuesAndExpressions::ProhibitInterpolationOfLiterals)
## no critic(RegularExpressions::ProhibitEscapedMetacharacters)
-
# System closure path to switch to
+
# Location of activation scripts
my $out = "@out@";
+
# System closure path to switch to
+
my $toplevel = "@toplevel@";
# Path to the directory containing systemd tools of the old system
my $cur_systemd = abs_path("/run/current-system/sw/bin");
# Path to the systemd store path of the new system
···
chomp(my $install_boot_loader = <<'EOFBOOTLOADER');
@installBootLoader@
EOFBOOTLOADER
-
system("$install_boot_loader $out") == 0 or exit 1;
+
system("$install_boot_loader $toplevel") == 0 or exit 1;
}
# Just in case the new configuration hangs the system, do a sync now.
···
# Check if we can activate the new configuration.
my $cur_init_interface_version = read_file("/run/current-system/init-interface-version", err_mode => "quiet") // "";
-
my $new_init_interface_version = read_file("$out/init-interface-version");
+
my $new_init_interface_version = read_file("$toplevel/init-interface-version");
if ($new_init_interface_version ne $cur_init_interface_version) {
print STDERR <<'EOF';
···
$units_to_stop->{$socket} = 1;
# Only restart sockets that actually
# exist in new configuration:
-
if (-e "$out/etc/systemd/system/$socket") {
+
if (-e "$toplevel/etc/systemd/system/$socket") {
$units_to_start->{$socket} = 1;
if ($units_to_start eq $units_to_restart) {
record_unit($restart_list_file, $socket);
···
my $base_unit = $unit;
my $cur_unit_file = "/etc/systemd/system/$base_unit";
-
my $new_unit_file = "$out/etc/systemd/system/$base_unit";
+
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
# Detect template instances.
if (!-e $cur_unit_file && !-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
$base_unit = "$1\@.$2";
$cur_unit_file = "/etc/systemd/system/$base_unit";
-
$new_unit_file = "$out/etc/systemd/system/$base_unit";
+
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
}
my $base_name = $base_unit;
···
# we generated units for all mounts; then we could unify this with the
# unit checking code above.
my ($cur_fss, $cur_swaps) = parse_fstab("/etc/fstab");
-
my ($new_fss, $new_swaps) = parse_fstab("$out/etc/fstab");
+
my ($new_fss, $new_swaps) = parse_fstab("$toplevel/etc/fstab");
foreach my $mount_point (keys(%{$cur_fss})) {
my $cur = $cur_fss->{$mount_point};
my $new = $new_fss->{$mount_point};
···
my $cur_pid1_path = abs_path("/proc/1/exe") // "/unknown";
my $cur_systemd_system_config = abs_path("/etc/systemd/system.conf") // "/unknown";
my $new_pid1_path = abs_path("$new_systemd/lib/systemd/systemd") or die;
-
my $new_systemd_system_config = abs_path("$out/etc/systemd/system.conf") // "/unknown";
+
my $new_systemd_system_config = abs_path("$toplevel/etc/systemd/system.conf") // "/unknown";
my $restart_systemd = $cur_pid1_path ne $new_pid1_path;
if ($cur_systemd_system_config ne $new_systemd_system_config) {
···
foreach (split(/\n/msx, read_file($dry_restart_by_activation_file, err_mode => "quiet") // "")) {
my $unit = $_;
my $base_unit = $unit;
-
my $new_unit_file = "$out/etc/systemd/system/$base_unit";
+
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
# Detect template instances.
if (!-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
$base_unit = "$1\@.$2";
-
$new_unit_file = "$out/etc/systemd/system/$base_unit";
+
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
}
my $base_name = $base_unit;
···
}
-
syslog(LOG_NOTICE, "switching to system configuration $out");
+
syslog(LOG_NOTICE, "switching to system configuration $toplevel");
if (scalar(keys(%units_to_stop)) > 0) {
if (scalar(@units_to_stop_filtered)) {
···
foreach (split(/\n/msx, read_file($restart_by_activation_file, err_mode => "quiet") // "")) {
my $unit = $_;
my $base_unit = $unit;
-
my $new_unit_file = "$out/etc/systemd/system/$base_unit";
+
my $new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
# Detect template instances.
if (!-e $new_unit_file && $unit =~ /^(.*)@[^\.]*\.(.*)$/msx) {
$base_unit = "$1\@.$2";
-
$new_unit_file = "$out/etc/systemd/system/$base_unit";
+
$new_unit_file = "$toplevel/etc/systemd/system/$base_unit";
}
my $base_name = $base_unit;
···
for my $unit (keys(%units_to_reload)) {
if (!unit_is_active($unit)) {
# Figure out if we need to start the unit
-
my %unit_info = parse_unit("$out/etc/systemd/system/$unit");
+
my %unit_info = parse_unit("$toplevel/etc/systemd/system/$unit");
if (!(parse_systemd_bool(\%unit_info, "Unit", "RefuseManualStart", 0) || parse_systemd_bool(\%unit_info, "Unit", "X-OnlyManualStart", 0))) {
$units_to_start{$unit} = 1;
record_unit($start_list_file, $unit);
···
}
if ($res == 0) {
-
syslog(LOG_NOTICE, "finished switching to system configuration $out");
+
syslog(LOG_NOTICE, "finished switching to system configuration $toplevel");
} else {
-
syslog(LOG_ERR, "switching to system configuration $out failed (status $res)");
+
syslog(LOG_ERR, "switching to system configuration $toplevel failed (status $res)");
}
exit($res);
+11 -51
nixos/modules/system/activation/top-level.nix
···
ln -s ${config.hardware.firmware}/lib/firmware $out/firmware
''}
-
echo "$activationScript" > $out/activate
-
echo "$dryActivationScript" > $out/dry-activate
-
substituteInPlace $out/activate --subst-var out
-
substituteInPlace $out/dry-activate --subst-var out
-
chmod u+x $out/activate $out/dry-activate
-
unset activationScript dryActivationScript
-
${if config.boot.initrd.systemd.enable then ''
cp ${config.system.build.bootStage2} $out/prepare-root
substituteInPlace $out/prepare-root --subst-var-by systemConfig $out
···
echo -n "$nixosLabel" > $out/nixos-version
echo -n "${config.boot.kernelPackages.stdenv.hostPlatform.system}" > $out/system
-
mkdir $out/bin
-
export localeArchive="${config.i18n.glibcLocales}/lib/locale/locale-archive"
-
export distroId=${config.system.nixos.distroId};
-
substituteAll ${./switch-to-configuration.pl} $out/bin/switch-to-configuration
-
chmod +x $out/bin/switch-to-configuration
-
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
-
if ! output=$($perl/bin/perl -c $out/bin/switch-to-configuration 2>&1); then
-
echo "switch-to-configuration syntax is not valid:"
-
echo "$output"
-
exit 1
-
fi
-
''}
-
${config.system.systemBuilderCommands}
cp "$extraDependenciesPath" "$out/extra-dependencies"
···
# symlinks to the various parts of the built configuration (the
# kernel, systemd units, init scripts, etc.) as well as a script
# `switch-to-configuration' that activates the configuration and
-
# makes it bootable.
+
# makes it bootable. See `activatable-system.nix`.
baseSystem = pkgs.stdenvNoCC.mkDerivation ({
name = "nixos-system-${config.system.name}-${config.system.nixos.label}";
preferLocalBuild = true;
···
passAsFile = [ "extraDependencies" ];
buildCommand = systemBuilder;
-
inherit (pkgs) coreutils;
systemd = config.systemd.package;
-
shell = "${pkgs.bash}/bin/sh";
-
su = "${pkgs.shadow.su}/bin/su";
-
utillinux = pkgs.util-linux;
kernelParams = config.boot.kernelParams;
-
installBootLoader = config.system.build.installBootLoader;
-
activationScript = config.system.activationScripts.script;
-
dryActivationScript = config.system.dryActivationScript;
nixosLabel = config.system.nixos.label;
inherit (config.system) extraDependencies;
-
-
# Needed by switch-to-configuration.
-
perl = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
} // config.system.systemBuilderArgs);
# Handle assertions and warnings
···
};
system.build = {
-
installBootLoader = mkOption {
-
internal = true;
-
# "; true" => make the `$out` argument from switch-to-configuration.pl
-
# go to `true` instead of `echo`, hiding the useless path
-
# from the log.
-
default = "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true";
-
description = lib.mdDoc ''
-
A program that writes a bootloader installation script to the path passed in the first command line argument.
-
-
See `nixos/modules/system/activation/switch-to-configuration.pl`.
-
'';
-
type = types.unique {
-
message = ''
-
Only one bootloader can be enabled at a time. This requirement has not
-
been checked until NixOS 22.05. Earlier versions defaulted to the last
-
definition. Change your configuration to enable only one bootloader.
-
'';
-
} (types.either types.str types.package);
-
};
-
toplevel = mkOption {
type = types.package;
readOnly = true;
···
'';
system.systemBuilderArgs = {
+
+
# Legacy environment variables. These were used by the activation script,
+
# but some other script might still depend on them, although unlikely.
+
installBootLoader = config.system.build.installBootLoader;
+
localeArchive = "${config.i18n.glibcLocales}/lib/locale/locale-archive";
+
distroId = config.system.nixos.distroId;
+
perl = pkgs.perl.withPackages (p: with p; [ ConfigIniFiles FileSlurp ]);
+
# End if legacy environment variables
+
+
# Not actually used in the builder. `passedChecks` is just here to create
# the build dependencies. Checks are similar to build dependencies in the
# sense that if they fail, the system build fails. However, checks do not
+55 -9
nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix
···
Whether to create files with the system generations in
`/boot`.
`/boot/old` will hold files from old generations.
+
+
::: {.note}
+
These options are deprecated, unsupported, and may not work like expected.
+
:::
'';
};
···
type = types.bool;
description = lib.mdDoc ''
Enable using uboot as bootmanager for the raspberry pi.
+
+
::: {.note}
+
These options are deprecated, unsupported, and may not work like expected.
+
:::
'';
};
···
type = types.int;
description = lib.mdDoc ''
Maximum number of configurations in the boot menu.
+
+
::: {.note}
+
These options are deprecated, unsupported, and may not work like expected.
+
:::
'';
};
···
description = lib.mdDoc ''
Extra options that will be appended to `/boot/config.txt` file.
For possible values, see: https://www.raspberrypi.com/documentation/computers/config_txt.html
+
+
::: {.note}
+
These options are deprecated, unsupported, and may not work like expected.
+
:::
'';
};
};
};
-
config = mkIf cfg.enable {
-
assertions = singleton {
-
assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3;
-
message = "Only Raspberry Pi >= 3 supports aarch64.";
-
};
+
config = mkMerge[
+
(mkIf cfg.uboot.enable {
+
warnings = [
+
''
+
The option set for `boot.loader.raspberrypi.uboot` has been recommended against
+
for years, and is now formally deprecated.
-
system.build.installBootLoader = builder;
-
system.boot.loader.id = "raspberrypi";
-
system.boot.loader.kernelFile = pkgs.stdenv.hostPlatform.linux-kernel.target;
-
};
+
It is possible it already did not work like you expected.
+
+
It never worked on the Raspberry Pi 4 family.
+
+
These options will be removed by NixOS 24.11.
+
''
+
];
+
})
+
(mkIf cfg.enable {
+
warnings = [
+
''
+
The option set for `boot.loader.raspberrypi` has been recommended against
+
for years, and is now formally deprecated.
+
+
It is possible it already did not work like you expected.
+
+
It never worked on the Raspberry Pi 4 family.
+
+
These options will be removed by NixOS 24.11.
+
''
+
];
+
})
+
(mkIf cfg.enable {
+
assertions = singleton {
+
assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version >= 3;
+
message = "Only Raspberry Pi >= 3 supports aarch64.";
+
};
+
+
system.build.installBootLoader = builder;
+
system.boot.loader.id = "raspberrypi";
+
system.boot.loader.kernelFile = pkgs.stdenv.hostPlatform.linux-kernel.target;
+
})
+
];
}
+242
nixos/modules/system/boot/networkd.nix
···
"VLAN"
"IPVLAN"
"MACVLAN"
+
"MACVTAP"
"VXLAN"
"Tunnel"
"MACsec"
···
'';
};
+
macvtap = mkOption {
+
default = [ ];
+
type = types.listOf types.str;
+
description = lib.mdDoc ''
+
A list of macvtap interfaces to be added to the network section of the
+
unit. See {manpage}`systemd.network(5)` for details.
+
'';
+
};
+
vxlan = mkOption {
default = [ ];
type = types.listOf types.str;
···
[DHCPv6]
${attrsToSection def.dhcpV6Config}
''; };
+
+
networkToUnit = name: def:
+
{ inherit (def) enable;
+
text = commonMatchText def
+
+ optionalString (def.linkConfig != { }) ''
+
[Link]
+
${attrsToSection def.linkConfig}
+
''
+
+ ''
+
[Network]
+
''
+
+ attrsToSection def.networkConfig
+
+ optionalString (def.address != [ ]) ''
+
${concatStringsSep "\n" (map (s: "Address=${s}") def.address)}
+
''
+
+ optionalString (def.gateway != [ ]) ''
+
${concatStringsSep "\n" (map (s: "Gateway=${s}") def.gateway)}
+
''
+
+ optionalString (def.dns != [ ]) ''
+
${concatStringsSep "\n" (map (s: "DNS=${s}") def.dns)}
+
''
+
+ optionalString (def.ntp != [ ]) ''
+
${concatStringsSep "\n" (map (s: "NTP=${s}") def.ntp)}
+
''
+
+ optionalString (def.bridge != [ ]) ''
+
${concatStringsSep "\n" (map (s: "Bridge=${s}") def.bridge)}
+
''
+
+ optionalString (def.bond != [ ]) ''
+
${concatStringsSep "\n" (map (s: "Bond=${s}") def.bond)}
+
''
+
+ optionalString (def.vrf != [ ]) ''
+
${concatStringsSep "\n" (map (s: "VRF=${s}") def.vrf)}
+
''
+
+ optionalString (def.vlan != [ ]) ''
+
${concatStringsSep "\n" (map (s: "VLAN=${s}") def.vlan)}
+
''
+
+ optionalString (def.macvlan != [ ]) ''
+
${concatStringsSep "\n" (map (s: "MACVLAN=${s}") def.macvlan)}
+
''
+
+ optionalString (def.macvtap != [ ]) ''
+
${concatStringsSep "\n" (map (s: "MACVTAP=${s}") def.macvtap)}
+
''
+
+ optionalString (def.vxlan != [ ]) ''
+
${concatStringsSep "\n" (map (s: "VXLAN=${s}") def.vxlan)}
+
''
+
+ optionalString (def.tunnel != [ ]) ''
+
${concatStringsSep "\n" (map (s: "Tunnel=${s}") def.tunnel)}
+
''
+
+ optionalString (def.xfrm != [ ]) ''
+
${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
+
''
+
+ ''
+
+
''
+
+ flip concatMapStrings def.addresses (x: ''
+
[Address]
+
${attrsToSection x.addressConfig}
+
'')
+
+ flip concatMapStrings def.routingPolicyRules (x: ''
+
[RoutingPolicyRule]
+
${attrsToSection x.routingPolicyRuleConfig}
+
'')
+
+ flip concatMapStrings def.routes (x: ''
+
[Route]
+
${attrsToSection x.routeConfig}
+
'')
+
+ optionalString (def.dhcpV4Config != { }) ''
+
[DHCPv4]
+
${attrsToSection def.dhcpV4Config}
+
''
+
+ optionalString (def.dhcpV6Config != { }) ''
+
[DHCPv6]
+
${attrsToSection def.dhcpV6Config}
+
''
+
+ optionalString (def.dhcpPrefixDelegationConfig != { }) ''
+
[DHCPPrefixDelegation]
+
${attrsToSection def.dhcpPrefixDelegationConfig}
+
''
+
+ optionalString (def.ipv6AcceptRAConfig != { }) ''
+
[IPv6AcceptRA]
+
${attrsToSection def.ipv6AcceptRAConfig}
+
''
+
+ optionalString (def.dhcpServerConfig != { }) ''
+
[DHCPServer]
+
${attrsToSection def.dhcpServerConfig}
+
''
+
+ optionalString (def.ipv6SendRAConfig != { }) ''
+
[IPv6SendRA]
+
${attrsToSection def.ipv6SendRAConfig}
+
''
+
+ flip concatMapStrings def.ipv6Prefixes (x: ''
+
[IPv6Prefix]
+
${attrsToSection x.ipv6PrefixConfig}
+
'')
+
+ flip concatMapStrings def.ipv6RoutePrefixes (x: ''
+
[IPv6RoutePrefix]
+
${attrsToSection x.ipv6RoutePrefixConfig}
+
'')
+
+ flip concatMapStrings def.dhcpServerStaticLeases (x: ''
+
[DHCPServerStaticLease]
+
${attrsToSection x.dhcpServerStaticLeaseConfig}
+
'')
+
+ optionalString (def.bridgeConfig != { }) ''
+
[Bridge]
+
${attrsToSection def.bridgeConfig}
+
''
+
+ flip concatMapStrings def.bridgeFDBs (x: ''
+
[BridgeFDB]
+
${attrsToSection x.bridgeFDBConfig}
+
'')
+
+ flip concatMapStrings def.bridgeMDBs (x: ''
+
[BridgeMDB]
+
${attrsToSection x.bridgeMDBConfig}
+
'')
+
+ optionalString (def.lldpConfig != { }) ''
+
[LLDP]
+
${attrsToSection def.lldpConfig}
+
''
+
+ optionalString (def.canConfig != { }) ''
+
[CAN]
+
${attrsToSection def.canConfig}
+
''
+
+ optionalString (def.ipoIBConfig != { }) ''
+
[IPoIB]
+
${attrsToSection def.ipoIBConfig}
+
''
+
+ optionalString (def.qdiscConfig != { }) ''
+
[QDisc]
+
${attrsToSection def.qdiscConfig}
+
''
+
+ optionalString (def.networkEmulatorConfig != { }) ''
+
[NetworkEmulator]
+
${attrsToSection def.networkEmulatorConfig}
+
''
+
+ optionalString (def.tokenBucketFilterConfig != { }) ''
+
[TokenBucketFilter]
+
${attrsToSection def.tokenBucketFilterConfig}
+
''
+
+ optionalString (def.pieConfig != { }) ''
+
[PIE]
+
${attrsToSection def.pieConfig}
+
''
+
+ optionalString (def.flowQueuePIEConfig != { }) ''
+
[FlowQueuePIE]
+
${attrsToSection def.flowQueuePIEConfig}
+
''
+
+ optionalString (def.stochasticFairBlueConfig != { }) ''
+
[StochasticFairBlue]
+
${attrsToSection def.stochasticFairBlueConfig}
+
''
+
+ optionalString (def.stochasticFairnessQueueingConfig != { }) ''
+
[StochasticFairnessQueueing]
+
${attrsToSection def.stochasticFairnessQueueingConfig}
+
''
+
+ optionalString (def.bfifoConfig != { }) ''
+
[BFIFO]
+
${attrsToSection def.bfifoConfig}
+
''
+
+ optionalString (def.pfifoConfig != { }) ''
+
[PFIFO]
+
${attrsToSection def.pfifoConfig}
+
''
+
+ optionalString (def.pfifoHeadDropConfig != { }) ''
+
[PFIFOHeadDrop]
+
${attrsToSection def.pfifoHeadDropConfig}
+
''
+
+ optionalString (def.pfifoFastConfig != { }) ''
+
[PFIFOFast]
+
${attrsToSection def.pfifoFastConfig}
+
''
+
+ optionalString (def.cakeConfig != { }) ''
+
[CAKE]
+
${attrsToSection def.cakeConfig}
+
''
+
+ optionalString (def.controlledDelayConfig != { }) ''
+
[ControlledDelay]
+
${attrsToSection def.controlledDelayConfig}
+
''
+
+ optionalString (def.deficitRoundRobinSchedulerConfig != { }) ''
+
[DeficitRoundRobinScheduler]
+
${attrsToSection def.deficitRoundRobinSchedulerConfig}
+
''
+
+ optionalString (def.deficitRoundRobinSchedulerClassConfig != { }) ''
+
[DeficitRoundRobinSchedulerClass]
+
${attrsToSection def.deficitRoundRobinSchedulerClassConfig}
+
''
+
+ optionalString (def.enhancedTransmissionSelectionConfig != { }) ''
+
[EnhancedTransmissionSelection]
+
${attrsToSection def.enhancedTransmissionSelectionConfig}
+
''
+
+ optionalString (def.genericRandomEarlyDetectionConfig != { }) ''
+
[GenericRandomEarlyDetection]
+
${attrsToSection def.genericRandomEarlyDetectionConfig}
+
''
+
+ optionalString (def.fairQueueingControlledDelayConfig != { }) ''
+
[FairQueueingControlledDelay]
+
${attrsToSection def.fairQueueingControlledDelayConfig}
+
''
+
+ optionalString (def.fairQueueingConfig != { }) ''
+
[FairQueueing]
+
${attrsToSection def.fairQueueingConfig}
+
''
+
+ optionalString (def.trivialLinkEqualizerConfig != { }) ''
+
[TrivialLinkEqualizer]
+
${attrsToSection def.trivialLinkEqualizerConfig}
+
''
+
+ optionalString (def.hierarchyTokenBucketConfig != { }) ''
+
[HierarchyTokenBucket]
+
${attrsToSection def.hierarchyTokenBucketConfig}
+
''
+
+ optionalString (def.hierarchyTokenBucketClassConfig != { }) ''
+
[HierarchyTokenBucketClass]
+
${attrsToSection def.hierarchyTokenBucketClassConfig}
+
''
+
+ optionalString (def.heavyHitterFilterConfig != { }) ''
+
[HeavyHitterFilter]
+
${attrsToSection def.heavyHitterFilterConfig}
+
''
+
+ optionalString (def.quickFairQueueingConfig != { }) ''
+
[QuickFairQueueing]
+
${attrsToSection def.quickFairQueueingConfig}
+
''
+
+ optionalString (def.quickFairQueueingConfigClass != { }) ''
+
[QuickFairQueueingClass]
+
${attrsToSection def.quickFairQueueingConfigClass}
+
''
+
+ flip concatMapStrings def.bridgeVLANs (x: ''
+
[BridgeVLAN]
+
${attrsToSection x.bridgeVLANConfig}
+
'')
+
+ def.extraConfig;
+
};
mkUnitFiles = prefix: cfg: listToAttrs (map (name: {
name = "${prefix}systemd/network/${name}";
+44 -3
nixos/modules/tasks/filesystems/zfs.nix
···
Defaults to 0, which waits forever.
'';
};
+
+
removeLinuxDRM = lib.mkOption {
+
type = types.bool;
+
default = false;
+
description = lib.mdDoc ''
+
Linux 6.2 dropped some kernel symbols required on aarch64 required by zfs.
+
Enabling this option will bring them back to allow this kernel version.
+
Note that in some jurisdictions this may be illegal as it might be considered
+
removing copyright protection from the code.
+
See https://www.ifross.org/?q=en/artikel/ongoing-dispute-over-value-exportsymbolgpl-function for further information.
+
+
If configure your kernel package with `zfs.latestCompatibleLinuxPackages`, you will need to also pass removeLinuxDRM to that package like this:
+
+
```
+
{ pkgs, ... }: {
+
boot.kernelPackages = (pkgs.zfs.override {
+
removeLinuxDRM = pkgs.hostPlatform.isAarch64;
+
}).latestCompatibleLinuxPackages;
+
+
boot.zfs.removeLinuxDRM = true;
+
}
+
```
+
'';
+
};
};
services.zfs.autoSnapshot = {
···
# https://github.com/NixOS/nixpkgs/issues/106093
kernelParams = lib.optionals (!config.boot.zfs.allowHibernation) [ "nohibernate" ];
-
extraModulePackages = [
-
(if config.boot.zfs.enableUnstable then
+
extraModulePackages = let
+
kernelPkg = if config.boot.zfs.enableUnstable then
config.boot.kernelPackages.zfsUnstable
else
-
config.boot.kernelPackages.zfs)
+
config.boot.kernelPackages.zfs;
+
in [
+
(kernelPkg.override { inherit (cfgZfs) removeLinuxDRM; })
];
};
···
services.udev.packages = [ cfgZfs.package ]; # to hook zvol naming, etc.
systemd.packages = [ cfgZfs.package ];
+
+
# Export kernel_neon_* symbols again.
+
# This change is necessary until ZFS figures out a solution
+
# with upstream or in their build system to fill the gap for
+
# this symbol.
+
# In the meantime, we restore what was once a working piece of code
+
# in the kernel.
+
boot.kernelPatches = lib.optional (cfgZfs.removeLinuxDRM && pkgs.stdenv.hostPlatform.system == "aarch64-linux") {
+
name = "export-neon-symbols-as-gpl";
+
patch = pkgs.fetchpatch {
+
url = "https://github.com/torvalds/linux/commit/aaeca98456431a8d9382ecf48ac4843e252c07b3.patch";
+
hash = "sha256-L2g4G1tlWPIi/QRckMuHDcdWBcKpObSWSRTvbHRIwIk=";
+
revert = true;
+
};
+
};
systemd.services = let
createImportService' = pool: createImportService {
+40 -7
nixos/tests/switch-test.nix
···
};
};
+
simpleServiceSeparateActivationScript.configuration = {
+
system.activatable = false;
+
systemd.services.test = {
+
wantedBy = [ "multi-user.target" ];
+
serviceConfig = {
+
Type = "oneshot";
+
RemainAfterExit = true;
+
ExecStart = "${pkgs.coreutils}/bin/true";
+
ExecReload = "${pkgs.coreutils}/bin/true";
+
};
+
};
+
};
+
simpleServiceDifferentDescription.configuration = {
imports = [ simpleService.configuration ];
systemd.services.test.description = "Test unit";
···
};
testScript = { nodes, ... }: let
-
originalSystem = nodes.machine.config.system.build.toplevel;
-
otherSystem = nodes.other.config.system.build.toplevel;
-
machine = nodes.machine.config.system.build.toplevel;
+
originalSystem = nodes.machine.system.build.toplevel;
+
otherSystem = nodes.other.system.build.toplevel;
+
machine = nodes.machine.system.build.toplevel;
# Ensures failures pass through using pipefail, otherwise failing to
# switch-to-configuration is hidden by the success of `tee`.
···
in /* python */ ''
def switch_to_specialisation(system, name, action="test", fail=False):
if name == "":
-
stc = f"{system}/bin/switch-to-configuration"
+
switcher = f"{system}/bin/switch-to-configuration"
else:
-
stc = f"{system}/specialisation/{name}/bin/switch-to-configuration"
-
out = machine.fail(f"{stc} {action} 2>&1") if fail \
-
else machine.succeed(f"{stc} {action} 2>&1")
+
switcher = f"{system}/specialisation/{name}/bin/switch-to-configuration"
+
return run_switch(switcher, action, fail)
+
+
# like above but stc = switcher
+
def run_switch(switcher, action="test", fail=False):
+
out = machine.fail(f"{switcher} {action} 2>&1") if fail \
+
else machine.succeed(f"{switcher} {action} 2>&1")
assert_lacks(out, "switch-to-configuration line") # Perl warnings
return out
···
assert_lacks(out, "\nstarting the following units:")
assert_lacks(out, "the following new units were started:")
assert_contains(out, "would start the following units: test.service\n")
+
+
out = switch_to_specialisation("${machine}", "", action="test")
+
+
# Ensure the service can be started when the activation script isn't in toplevel
+
# This is a lot like "Start a simple service", except activation-only deps could be gc-ed
+
out = run_switch("${nodes.machine.specialisation.simpleServiceSeparateActivationScript.configuration.system.build.separateActivationScript}/bin/switch-to-configuration");
+
assert_lacks(out, "installing dummy bootloader") # test does not install a bootloader
+
assert_lacks(out, "stopping the following units:")
+
assert_lacks(out, "NOT restarting the following changed units:")
+
assert_contains(out, "reloading the following units: dbus.service\n") # huh
+
assert_lacks(out, "\nrestarting the following units:")
+
assert_lacks(out, "\nstarting the following units:")
+
assert_contains(out, "the following new units were started: test.service\n")
+
machine.succeed("! test -e /run/current-system/activate")
+
machine.succeed("! test -e /run/current-system/dry-activate")
+
machine.succeed("! test -e /run/current-system/bin/switch-to-configuration")
# Ensure \ works in unit names
out = switch_to_specialisation("${machine}", "unitWithBackslash")
+168 -55
nixos/tests/wpa_supplicant.nix
···
{
name = "wpa_supplicant";
meta = with lib.maintainers; {
-
maintainers = [ rnhmjoj ];
+
maintainers = [ oddlama rnhmjoj ];
};
-
nodes.machine = { ... }: {
-
imports = [ ../modules/profiles/minimal.nix ];
+
nodes = let
+
machineWithHostapd = extraConfigModule: { ... }: {
+
imports = [
+
../modules/profiles/minimal.nix
+
extraConfigModule
+
];
-
# add a virtual wlan interface
-
boot.kernelModules = [ "mac80211_hwsim" ];
+
# add a virtual wlan interface
+
boot.kernelModules = [ "mac80211_hwsim" ];
-
# wireless access point
-
services.hostapd = {
-
enable = true;
-
wpa = true;
-
interface = "wlan0";
-
ssid = "nixos-test";
-
wpaPassphrase = "reproducibility";
+
# wireless access point
+
services.hostapd = {
+
enable = true;
+
radios.wlan0 = {
+
band = "2g";
+
countryCode = "US";
+
networks = {
+
wlan0 = {
+
ssid = "nixos-test-sae";
+
authentication = {
+
mode = "wpa3-sae";
+
saePasswords = [ { password = "reproducibility"; } ];
+
};
+
bssid = "02:00:00:00:00:00";
+
};
+
wlan0-1 = {
+
ssid = "nixos-test-mixed";
+
authentication = {
+
mode = "wpa3-sae-transition";
+
saePasswordsFile = pkgs.writeText "password" "reproducibility";
+
wpaPasswordFile = pkgs.writeText "password" "reproducibility";
+
};
+
bssid = "02:00:00:00:00:01";
+
};
+
wlan0-2 = {
+
ssid = "nixos-test-wpa2";
+
authentication = {
+
mode = "wpa2-sha256";
+
wpaPassword = "reproducibility";
+
};
+
bssid = "02:00:00:00:00:02";
+
};
+
};
+
};
+
};
+
+
# wireless client
+
networking.wireless = {
+
# the override is needed because the wifi is
+
# disabled with mkVMOverride in qemu-vm.nix.
+
enable = lib.mkOverride 0 true;
+
userControlled.enable = true;
+
interfaces = [ "wlan1" ];
+
fallbackToWPA2 = lib.mkDefault true;
+
+
# networks will be added on-demand below for the specific
+
# network that should be tested
+
+
# secrets
+
environmentFile = pkgs.writeText "wpa-secrets" ''
+
PSK_NIXOS_TEST="reproducibility"
+
'';
+
};
};
+
in {
+
basic = { ... }: {
+
imports = [ ../modules/profiles/minimal.nix ];
-
# wireless client
-
networking.wireless = {
-
# the override is needed because the wifi is
-
# disabled with mkVMOverride in qemu-vm.nix.
-
enable = lib.mkOverride 0 true;
-
userControlled.enable = true;
-
interfaces = [ "wlan1" ];
-
fallbackToWPA2 = true;
+
# add a virtual wlan interface
+
boot.kernelModules = [ "mac80211_hwsim" ];
-
networks = {
-
# test WPA2 fallback
-
mixed-wpa = {
-
psk = "password";
-
authProtocols = [ "WPA-PSK" "SAE" ];
+
# wireless client
+
networking.wireless = {
+
# the override is needed because the wifi is
+
# disabled with mkVMOverride in qemu-vm.nix.
+
enable = lib.mkOverride 0 true;
+
userControlled.enable = true;
+
interfaces = [ "wlan1" ];
+
fallbackToWPA2 = true;
+
+
networks = {
+
# test WPA2 fallback
+
mixed-wpa = {
+
psk = "password";
+
authProtocols = [ "WPA-PSK" "SAE" ];
+
};
+
sae-only = {
+
psk = "password";
+
authProtocols = [ "SAE" ];
+
};
+
+
# secrets substitution test cases
+
test1.psk = "@PSK_VALID@"; # should be replaced
+
test2.psk = "@PSK_SPECIAL@"; # should be replaced
+
test3.psk = "@PSK_MISSING@"; # should not be replaced
+
test4.psk = "P@ssowrdWithSome@tSymbol"; # should not be replaced
};
-
sae-only = {
-
psk = "password";
+
+
# secrets
+
environmentFile = pkgs.writeText "wpa-secrets" ''
+
PSK_VALID="S0m3BadP4ssw0rd";
+
# taken from https://github.com/minimaxir/big-list-of-naughty-strings
+
PSK_SPECIAL=",./;'[]\-= <>?:\"{}|_+ !@#$%^\&*()`~";
+
'';
+
};
+
};
+
+
# Test connecting to the SAE-only hotspot using SAE
+
machineSae = machineWithHostapd {
+
networking.wireless = {
+
fallbackToWPA2 = false;
+
networks.nixos-test-sae = {
+
psk = "@PSK_NIXOS_TEST@";
authProtocols = [ "SAE" ];
};
+
};
+
};
-
# test network
-
nixos-test.psk = "@PSK_NIXOS_TEST@";
+
# Test connecting to the SAE and WPA2 mixed hotspot using SAE
+
machineMixedUsingSae = machineWithHostapd {
+
networking.wireless = {
+
fallbackToWPA2 = false;
+
networks.nixos-test-mixed = {
+
psk = "@PSK_NIXOS_TEST@";
+
authProtocols = [ "SAE" ];
+
};
+
};
+
};
-
# secrets substitution test cases
-
test1.psk = "@PSK_VALID@"; # should be replaced
-
test2.psk = "@PSK_SPECIAL@"; # should be replaced
-
test3.psk = "@PSK_MISSING@"; # should not be replaced
-
test4.psk = "P@ssowrdWithSome@tSymbol"; # should not be replaced
+
# Test connecting to the SAE and WPA2 mixed hotspot using WPA2
+
machineMixedUsingWpa2 = machineWithHostapd {
+
networking.wireless = {
+
fallbackToWPA2 = true;
+
networks.nixos-test-mixed = {
+
psk = "@PSK_NIXOS_TEST@";
+
authProtocols = [ "WPA-PSK-SHA256" ];
+
};
};
+
};
-
# secrets
-
environmentFile = pkgs.writeText "wpa-secrets" ''
-
PSK_NIXOS_TEST="reproducibility"
-
PSK_VALID="S0m3BadP4ssw0rd";
-
# taken from https://github.com/minimaxir/big-list-of-naughty-strings
-
PSK_SPECIAL=",./;'[]\-= <>?:\"{}|_+ !@#$%^\&*()`~";
-
'';
+
# Test connecting to the WPA2 legacy hotspot using WPA2
+
machineWpa2 = machineWithHostapd {
+
networking.wireless = {
+
fallbackToWPA2 = true;
+
networks.nixos-test-wpa2 = {
+
psk = "@PSK_NIXOS_TEST@";
+
authProtocols = [ "WPA-PSK-SHA256" ];
+
};
+
};
};
-
};
testScript =
···
config_file = "/run/wpa_supplicant/wpa_supplicant.conf"
with subtest("Configuration file is inaccessible to other users"):
-
machine.wait_for_file(config_file)
-
machine.fail(f"sudo -u nobody ls {config_file}")
+
basic.wait_for_file(config_file)
+
basic.fail(f"sudo -u nobody ls {config_file}")
with subtest("Secrets variables have been substituted"):
-
machine.fail(f"grep -q @PSK_VALID@ {config_file}")
-
machine.fail(f"grep -q @PSK_SPECIAL@ {config_file}")
-
machine.succeed(f"grep -q @PSK_MISSING@ {config_file}")
-
machine.succeed(f"grep -q P@ssowrdWithSome@tSymbol {config_file}")
+
basic.fail(f"grep -q @PSK_VALID@ {config_file}")
+
basic.fail(f"grep -q @PSK_SPECIAL@ {config_file}")
+
basic.succeed(f"grep -q @PSK_MISSING@ {config_file}")
+
basic.succeed(f"grep -q P@ssowrdWithSome@tSymbol {config_file}")
with subtest("WPA2 fallbacks have been generated"):
-
assert int(machine.succeed(f"grep -c sae-only {config_file}")) == 1
-
assert int(machine.succeed(f"grep -c mixed-wpa {config_file}")) == 2
+
assert int(basic.succeed(f"grep -c sae-only {config_file}")) == 1
+
assert int(basic.succeed(f"grep -c mixed-wpa {config_file}")) == 2
# save file for manual inspection
-
machine.copy_from_vm(config_file)
+
basic.copy_from_vm(config_file)
with subtest("Daemon is running and accepting connections"):
-
machine.wait_for_unit("wpa_supplicant-wlan1.service")
-
status = machine.succeed("wpa_cli -i wlan1 status")
+
basic.wait_for_unit("wpa_supplicant-wlan1.service")
+
status = basic.succeed("wpa_cli -i wlan1 status")
assert "Failed to connect" not in status, \
"Failed to connect to the daemon"
-
with subtest("Daemon can connect to the access point"):
-
machine.wait_until_succeeds(
+
machineSae.wait_for_unit("hostapd.service")
+
machineSae.copy_from_vm("/run/hostapd/wlan0.hostapd.conf")
+
with subtest("Daemon can connect to the SAE access point using SAE"):
+
machineSae.wait_until_succeeds(
+
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
+
)
+
+
with subtest("Daemon can connect to the SAE and WPA2 mixed access point using SAE"):
+
machineMixedUsingSae.wait_until_succeeds(
+
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
+
)
+
+
with subtest("Daemon can connect to the SAE and WPA2 mixed access point using WPA2"):
+
machineMixedUsingWpa2.wait_until_succeeds(
+
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
+
)
+
+
with subtest("Daemon can connect to the WPA2 access point using WPA2"):
+
machineWpa2.wait_until_succeeds(
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
)
'';
+5 -5
pkgs/applications/misc/1password/default.nix
···
if extension == "zip" then fetchzip args else fetchurl args;
pname = "1password-cli";
-
version = "2.18.0";
+
version = "2.19.0";
sources = rec {
-
aarch64-linux = fetch "linux_arm64" "sha256-BmYGx4DI/Hvj9hBBZo5iprQeUgMNqEkESDjYcOVAt4Q=" "zip";
-
i686-linux = fetch "linux_386" "sha256-KpacioVLSPju9iW7B/yVCS66CZTwCTVAjxoaeBscJe8=" "zip";
-
x86_64-linux = fetch "linux_amd64" "sha256-p4wztBVQ2x2RrODJhX3z72QQtF8mnvqk3wT72hiPE3o=" "zip";
-
aarch64-darwin = fetch "apple_universal" "sha256-GfmTx4WS5oGgXXWqlA4bEmQJyFTu/bZnoEhIfZpfqpg=" "pkg";
+
aarch64-linux = fetch "linux_arm64" "sha256-z5+zCYYJxtzehBeilSWH/nPEOh8rXpwJDVL+SDansmY=" "zip";
+
i686-linux = fetch "linux_386" "sha256-UGPWk0I/nCaqWWz/rwG/TSDie0/tarKroGi+7Ge7kE4=" "zip";
+
x86_64-linux = fetch "linux_amd64" "sha256-rSZM0GuroSqVokhkjPtk3+2+C9w5/Tkh2cvB+kShyHY=" "zip";
+
aarch64-darwin = fetch "apple_universal" "sha256-3zVD8LUdxhzroLlnQCiCVELEQMPmCriRff85ZlfgSKI=" "pkg";
x86_64-darwin = aarch64-darwin;
};
platforms = builtins.attrNames sources;
+10
pkgs/applications/misc/dasel/default.nix
···
{ lib
, buildGoModule
, fetchFromGitHub
+
, installShellFiles
}:
buildGoModule rec {
···
ldflags = [
"-s" "-w" "-X github.com/tomwright/dasel/v2/internal.Version=${version}"
];
+
+
nativeBuildInputs = [ installShellFiles ];
+
+
postInstall = ''
+
installShellCompletion --cmd dasel \
+
--bash <($out/bin/dasel completion bash) \
+
--fish <($out/bin/dasel completion fish) \
+
--zsh <($out/bin/dasel completion zsh)
+
'';
doInstallCheck = true;
installCheckPhase = ''
+3 -3
pkgs/applications/misc/sigi/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "sigi";
-
version = "3.6.0";
+
version = "3.6.1";
src = fetchCrate {
inherit pname version;
-
sha256 = "sha256-VhBrSepJdwJRu+AqXWUzdDO4ukJPeoZr07B/X8Jr/RA=";
+
sha256 = "sha256-UL4V/5XvqaqO4R2ievw379D/rzHf/ITgvG3BcSbMeTQ=";
};
-
cargoSha256 = "sha256-R1U0ZYQMA1VFd5zEjFzl5QhwqqEMaCFb/5H509IBj60=";
+
cargoSha256 = "sha256-wzTUK4AvJmBK7LX7CLCAeAXLDxMJA/3qs/KT1+pMaoI=";
nativeBuildInputs = [ installShellFiles ];
# In case anything goes wrong.
+3 -3
pkgs/applications/networking/cluster/civo/default.nix
···
buildGoModule rec {
pname = "civo";
-
version = "1.0.57";
+
version = "1.0.58";
src = fetchFromGitHub {
owner = "civo";
repo = "cli";
rev = "v${version}";
-
sha256 = "sha256-cG/JNZalIzhXyBH7OaiK4fedCQ05EvPUZFon5ajjOCE=";
+
sha256 = "sha256-beIIWwG8zawbOhZm8Xa3MAWPMbGi5PJYSeA/msb6FT4=";
};
-
vendorHash = "sha256-FL6zVyDkVxHZSrnL/7M4yqgl+oqVz/ekIfmrwWrMvk8=";
+
vendorHash = "sha256-2j0EjMH7QiDnXB1quEM6/hznt7oOpznasuIRod5LGA4=";
nativeBuildInputs = [ installShellFiles ];
+4 -4
pkgs/applications/networking/cluster/fluxcd/default.nix
···
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles, stdenv }:
let
-
version = "2.0.0-rc.5";
-
sha256 = "1akxmnbldsm7h4wf40jxsn56njdd5srkr6a3gsi223anl9c43gpx";
-
manifestsSha256 = "1vra1vqw38r17fdkcj5a5rmifpdzi29z5qggzy4h9bqsqhxy488f";
+
version = "2.0.0";
+
sha256 = "1iqwdbn7kcrg1dh0zh75zk3gwjsxjisdrzxywjfkm9jcvb6ygs7m";
+
manifestsSha256 = "1kyzgifvisykcj1hikbk7z9xwi5gj4pa19ngbkv7fcgv45clbj6s";
manifests = fetchzip {
url =
···
inherit sha256;
};
-
vendorSha256 = "sha256-kw1V2eFoqrTB+1dBQYqOopr7+AMY1OB80vM8UN4rsso=";
+
vendorSha256 = "sha256-OH1Kn+VZARqQ1L26zdjEOYseMT9fY+QVDhN+F+h6GZw=";
postUnpack = ''
cp -r ${manifests} source/cmd/flux/manifests
+4 -4
pkgs/applications/networking/cluster/k3s/1_26/chart-versions.nix
···
{
traefik-crd = {
-
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-20.3.1+up20.3.0.tgz";
-
sha256 = "1775vjldvqvhzdbzanxhbaqbmkih09yb91im651q8bc7z5sb9ckn";
+
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-21.2.1+up21.2.0.tgz";
+
sha256 = "05j3vyikb7g2z2i07rij9h4ki5lb2hb2rynpiqfd4l1y5qm0qhw9";
};
traefik = {
-
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-20.3.1+up20.3.0.tgz";
-
sha256 = "1rj0f0n0vgjcbzfwzhqmsd501i2f6vw145w9plbp8gwdyzmg2nc6";
+
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-21.2.1+up21.2.0.tgz";
+
sha256 = "0gvz0yzph2893scd0q10b938yc7f36b3zqs57pkjgqqpl1d0nwhg";
};
}
-123
pkgs/applications/networking/cluster/k3s/1_26/update.sh
···
-
#!/usr/bin/env nix-shell
-
#!nix-shell -i bash -p curl gnugrep gnused jq yq-go nix-prefetch
-
-
set -x -eu -o pipefail
-
-
WORKDIR=$(mktemp -d)
-
trap "rm -rf ${WORKDIR}" EXIT
-
-
NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"/
-
NIXPKGS_K3S_PATH=$(cd $(dirname ${BASH_SOURCE[0]}); pwd -P)/
-
cd ${NIXPKGS_K3S_PATH}
-
-
LATEST_TAG_RAWFILE=${WORKDIR}/latest_tag.json
-
curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
-
https://api.github.com/repos/k3s-io/k3s/releases > ${LATEST_TAG_RAWFILE}
-
-
LATEST_TAG_NAME=$(jq 'map(.tag_name)' ${LATEST_TAG_RAWFILE} | \
-
grep -v -e rc -e engine | tail -n +2 | head -n -1 | sed 's|[", ]||g' | sort -rV | head -n1)
-
-
K3S_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
-
-
K3S_COMMIT=$(curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
-
https://api.github.com/repos/k3s-io/k3s/tags \
-
| jq -r "map(select(.name == \"${LATEST_TAG_NAME}\")) | .[0] | .commit.sha")
-
-
K3S_REPO_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/k3s-io/k3s/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
-
-
FILE_SCRIPTS_DOWNLOAD=${WORKDIR}/scripts-download
-
curl --silent -f https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/download > $FILE_SCRIPTS_DOWNLOAD
-
-
FILE_SCRIPTS_VERSION=${WORKDIR}/scripts-version.sh
-
curl --silent -f https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/scripts/version.sh > $FILE_SCRIPTS_VERSION
-
-
FILE_TRAEFIK_MANIFEST=${WORKDIR}/traefik.yml
-
curl --silent -f -o "$FILE_TRAEFIK_MANIFEST" https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/manifests/traefik.yaml
-
-
CHART_FILES=( $(yq eval --no-doc .spec.chart "$FILE_TRAEFIK_MANIFEST" | xargs -n1 basename) )
-
# These files are:
-
# 1. traefik-crd-20.3.1+up20.3.0.tgz
-
# 2. traefik-20.3.1+up20.3.0.tgz
-
# at the time of writing
-
-
if [[ "${#CHART_FILES[@]}" != "2" ]]; then
-
echo "New manifest charts added, the packaging scripts will need to be updated: ${CHART_FILES}"
-
exit 1
-
fi
-
-
CHARTS_URL=https://k3s.io/k3s-charts/assets
-
# Get metadata for both files
-
rm -f chart-versions.nix.update
-
cat > chart-versions.nix.update <<EOF
-
{
-
traefik-crd = {
-
url = "${CHARTS_URL}/traefik-crd/${CHART_FILES[0]}";
-
sha256 = "$(nix-prefetch-url --quiet "${CHARTS_URL}/traefik-crd/${CHART_FILES[0]}")";
-
};
-
traefik = {
-
url = "${CHARTS_URL}/traefik/${CHART_FILES[1]}";
-
sha256 = "$(nix-prefetch-url --quiet "${CHARTS_URL}/traefik/${CHART_FILES[1]}")";
-
};
-
}
-
EOF
-
mv chart-versions.nix.update chart-versions.nix
-
-
FILE_GO_MOD=${WORKDIR}/go.mod
-
curl --silent https://raw.githubusercontent.com/k3s-io/k3s/${K3S_COMMIT}/go.mod > $FILE_GO_MOD
-
-
-
K3S_ROOT_VERSION=$(grep 'VERSION_ROOT=' ${FILE_SCRIPTS_VERSION} \
-
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
-
K3S_ROOT_SHA256=$(nix-prefetch-url --quiet --unpack \
-
"https://github.com/k3s-io/k3s-root/releases/download/v${K3S_ROOT_VERSION}/k3s-root-amd64.tar")
-
-
CNIPLUGINS_VERSION=$(grep 'VERSION_CNIPLUGINS=' ${FILE_SCRIPTS_VERSION} \
-
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
-
CNIPLUGINS_SHA256=$(nix-prefetch-url --quiet --unpack \
-
"https://github.com/rancher/plugins/archive/refs/tags/v${CNIPLUGINS_VERSION}.tar.gz")
-
-
CONTAINERD_VERSION=$(grep 'VERSION_CONTAINERD=' ${FILE_SCRIPTS_VERSION} \
-
| cut -d'=' -f2 | sed -e 's/"//g' -e 's/^v//')
-
CONTAINERD_SHA256=$(nix-prefetch-url --quiet --unpack \
-
"https://github.com/k3s-io/containerd/archive/refs/tags/v${CONTAINERD_VERSION}.tar.gz")
-
-
CRI_CTL_VERSION=$(grep github.com/kubernetes-sigs/cri-tools ${FILE_GO_MOD} \
-
| head -n1 | awk '{print $4}' | sed -e 's/"//g' -e 's/^v//')
-
-
setKV () {
-
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ${NIXPKGS_K3S_PATH}default.nix
-
}
-
-
setKV k3sVersion ${K3S_VERSION}
-
setKV k3sCommit ${K3S_COMMIT}
-
setKV k3sRepoSha256 ${K3S_REPO_SHA256}
-
-
setKV k3sRootVersion ${K3S_ROOT_VERSION}
-
setKV k3sRootSha256 ${K3S_ROOT_SHA256}
-
-
setKV k3sCNIVersion ${CNIPLUGINS_VERSION}
-
setKV k3sCNISha256 ${CNIPLUGINS_SHA256}
-
-
setKV containerdVersion ${CONTAINERD_VERSION}
-
setKV containerdSha256 ${CONTAINERD_SHA256}
-
-
setKV criCtlVersion ${CRI_CTL_VERSION}
-
-
set +e
-
K3S_VENDOR_SHA256=$(nix-prefetch -I nixpkgs=${NIXPKGS_ROOT} "{ sha256 }: (import ${NIXPKGS_ROOT}. {}).k3s.go-modules.overrideAttrs (_: { vendorSha256 = sha256; })")
-
set -e
-
-
if [ -n "${K3S_VENDOR_SHA256:-}" ]; then
-
setKV k3sVendorSha256 ${K3S_VENDOR_SHA256}
-
else
-
echo "Update failed. K3S_VENDOR_SHA256 is empty."
-
exit 1
-
fi
-
-
# `git` flag here is to be used by local maintainers to speed up the bump process
-
if [ $# -eq 1 ] && [ "$1" = "git" ]; then
-
OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_ROOT. {}; k3s.version or (builtins.parseDrvName k3s.name).version" | tr -d '"')"
-
git switch -c "package-k3s-${K3S_VERSION}"
-
git add "$NIXPKGS_K3S_PATH"/default.nix
-
git commit -m "k3s: ${OLD_VERSION} -> ${K3S_VERSION}"
-
fi
+14
pkgs/applications/networking/cluster/k3s/1_26/versions.nix
···
+
{
+
k3sVersion = "1.26.5+k3s1";
+
k3sCommit = "7cefebeaac7dbdd0bfec131ea7a43a45cb125354";
+
k3sRepoSha256 = "0iz8w24lhb3mgwnks79ky4nypdqbjn91zm4nrj1ar3abkb5i8bg3";
+
k3sVendorSha256 = "sha256-yPzpt9OZfW7qY9gFgrRVgmk2l9OSMMF85OY79MDCKTs=";
+
chartVersions = import ./chart-versions.nix;
+
k3sRootVersion = "0.12.2";
+
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
+
k3sCNIVersion = "1.2.0-k3s1";
+
k3sCNISha256 = "0hzcap4vbl94zsiqc66dlwjgql50gw5g6f0adag0p8yqwcy6vaw2";
+
containerdVersion = "1.7.1-k3s1";
+
containerdSha256 = "00k7nkclfxwbzcgnn8s7rkrxyn0zpk57nyy18icf23wsj352gfrn";
+
criCtlVersion = "1.26.0-rc.0-k3s1";
+
}
+5 -17
pkgs/applications/networking/cluster/k3s/builder.nix
···
# run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
criCtlVersion,
updateScript ? null,
-
# multicallContainerd is a temporary variable for migrating k3s versions
-
# forward, and can be removed once all callers set it.
-
# It is here so we can update 1.26 and 1.27 independently, but they'll both migrate to this.
-
# This variable controls whether we build with containerd as a separate
-
# binary, or as a k3s multicall. Upstream k3s changed this in 1.27.2 and
-
# 1.26.5. See https://github.com/k3s-io/k3s/issues/7419 for more context
-
multicallContainerd ? false,
}:
# builder.nix contains a "builder" expression that, given k3s version and hash
···
subPackages = [ "cmd/server" ];
ldflags = versionldflags;
-
tags = [ "libsqlite3" "linux" ] ++ lib.optional multicallContainerd "ctrd";
+
tags = [ "ctrd" "libsqlite3" "linux" ];
# create the multicall symlinks for k3s
postInstall = ''
mv $out/bin/server $out/bin/k3s
pushd $out
# taken verbatim from https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/build#L105-L113
+
ln -s k3s ./bin/containerd
ln -s k3s ./bin/crictl
ln -s k3s ./bin/ctr
ln -s k3s ./bin/k3s-agent
···
ln -s k3s ./bin/k3s-server
ln -s k3s ./bin/k3s-token
ln -s k3s ./bin/kubectl
-
'' + lib.optionalString multicallContainerd ''
-
# for the multicall binary, also do containerd per
-
# https://github.com/k3s-io/k3s/blob/v1.27.2%2Bk3s1/scripts/build#L136-L146
-
ln -s k3s ./bin/containerd
-
'' + ''
popd
'';
···
description = "The various binaries that get packaged into the final k3s binary";
};
};
-
# For the multicall binary, only used for the shim
+
# Only used for the shim since
# https://github.com/k3s-io/k3s/blob/v1.27.2%2Bk3s1/scripts/build#L153
k3sContainerd = buildGoModule {
pname = "k3s-containerd";
···
};
vendorSha256 = null;
buildInputs = [ btrfs-progs ];
-
subPackages = [ "cmd/containerd-shim-runc-v2" ] ++ lib.optional (!multicallContainerd) "cmd/containerd";
+
subPackages = [ "cmd/containerd-shim-runc-v2" ];
ldflags = versionldflags;
};
in
···
pname = "k3s";
version = k3sVersion;
-
tags = [ "libsqlite3" "linux" ] ++ lib.optional multicallContainerd "ctrd";
+
tags = [ "libsqlite3" "linux" "ctrd" ];
src = k3sRepo;
vendorSha256 = k3sVendorSha256;
···
rsync -a --no-perms ${k3sServer}/bin/ ./bin/
ln -vsf ${k3sCNIPlugins}/bin/cni ./bin/cni
ln -vsf ${k3sContainerd}/bin/containerd-shim-runc-v2 ./bin
-
${lib.optionalString (!multicallContainerd) "ln -vsf ${k3sContainerd}/bin/containerd ./bin/"}
rsync -a --no-perms --chmod u=rwX ${k3sRoot}/etc/ ./etc/
mkdir -p ./build/static/charts
+3 -15
pkgs/applications/networking/cluster/k3s/default.nix
···
common = opts: callPackage (k3s_builder opts);
in
{
-
k3s_1_26 = common {
-
k3sVersion = "1.26.4+k3s1";
-
k3sCommit = "8d0255af07e95b841952563253d27b0d10bd72f0";
-
k3sRepoSha256 = "0qlszdnlsvj3hzx2p0wl3zhaw908w8a62z6vlf2g69a3c75f55cs";
-
k3sVendorSha256 = "sha256-JXTsZYtTspu/pWMRSS2BcegktawBJ6BK7YEKbz1J/ao=";
-
chartVersions = import ./1_26/chart-versions.nix;
-
k3sRootVersion = "0.12.1";
-
k3sRootSha256 = "0724yx3zk89m2239fmdgwzf9w672pik71xqrvgb7pdmknmmdn9f4";
-
k3sCNIVersion = "1.1.1-k3s1";
-
k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
-
containerdVersion = "1.6.19-k3s1";
-
containerdSha256 = "12dwqh77wplg30kdi73d90qni23agw2cwxjd2p5lchq86mpmmwwr";
-
criCtlVersion = "1.26.0-rc.0-k3s1";
-
} { };
+
k3s_1_26 = common ((import ./1_26/versions.nix) // {
+
updateScript = [ ./update-script.sh "26" ];
+
}) { };
# 1_27 can be built with the same builder as 1_26
k3s_1_27 = common ((import ./1_27/versions.nix) // {
-
multicallContainerd = true;
updateScript = [ ./update-script.sh "27" ];
}) { };
}
+1 -1
pkgs/applications/networking/mailreaders/mutt/no-build-only-refs.patch
···
+ # 'gcc -v' output embedded into 'mutt -v'. But also might be
+ # ./configure-passed arguments.
+ sed \
-
+ -e 's@'$NIX_STORE'/[a-z0-9]\{32\}-@/<<NIX>>/@g'
+
+ -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g"
+}
+
if ./txt2c test </dev/null >/dev/null 2>&1; then
+265 -265
pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
···
{
-
version = "102.11.2";
+
version = "102.13.0";
sources = [
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/af/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/af/thunderbird-102.13.0.tar.bz2";
locale = "af";
arch = "linux-x86_64";
-
sha256 = "06657b0dab9a29c67778434d5dae8318322818391ff0f295c189a1a4f7d66534";
+
sha256 = "3812ed9ad59f56919d3909e1e17f3dc468f1da676a5a4360d2cf9aa359461d52";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ar/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ar/thunderbird-102.13.0.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
-
sha256 = "cb0136de2e08acea594b96c5e5b78dfee360fc3b15343ebba0d9da86a8e23e94";
+
sha256 = "445c872f9ec98a51ee3817c17d7996f8d11eb882c23bda75e3d0704734cf8fdd";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ast/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ast/thunderbird-102.13.0.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
-
sha256 = "df9f19a08c7e16f2a140086fa4592f5d184c73dbcfeff478790f5d59543b94b6";
+
sha256 = "063ce8970a09c00d6e3ae5780e4d57d7eb6f4b4c5b266da2b3df9e15a944b314";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/be/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/be/thunderbird-102.13.0.tar.bz2";
locale = "be";
arch = "linux-x86_64";
-
sha256 = "d1610e03d86b05c72e0725a781384a9f3584db52fcbba5c6e4b1d7a7a1a01e80";
+
sha256 = "f8e63ea388bf470beed170baf73e61b67feb15d116d04858ea1bdfdfb80e6f66";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/bg/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/bg/thunderbird-102.13.0.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
-
sha256 = "7cc0e959caaac9d2b7982c80c9df27467b4959f65e2674879e9c075980d89ac1";
+
sha256 = "ac8d8c729c39565b6346f141324c299e961bb85e4c944e13cc5cf786ce699d3e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/br/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/br/thunderbird-102.13.0.tar.bz2";
locale = "br";
arch = "linux-x86_64";
-
sha256 = "0d5be52f0d9ed94cf0f6bbda72b7b53d74ffcbdf14235d3c50dc6bafa8e704ab";
+
sha256 = "0a7f8eec56c9e9a5f5aea7f793601003b22f698e16cd0d3bec3d99cb39db5a4c";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ca/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ca/thunderbird-102.13.0.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
-
sha256 = "044fd058e8afa89c325376937a7d18652ddc9244ed11d9341dbfdd7645c35d59";
+
sha256 = "93a7552d8605b84ea0933fb407c471dcafed0b0f87facd4d970120f218c008c8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/cak/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/cak/thunderbird-102.13.0.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
-
sha256 = "829cbeea7a5f0666456961cde904abd5c7f8157fe9f25853359cb577ea085ffd";
+
sha256 = "f12bc1568b451319d0d60f098d9f40dbcc1ad517c4eee55cec7ab5fb747e7270";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/cs/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/cs/thunderbird-102.13.0.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
-
sha256 = "02197c9a51abd6938c22a41309f10e713064fa7cb149095dc0f61327916713c9";
+
sha256 = "05e11ee1c73d69c8ca7762103ba93e081fedea8487406385e60fe985b80f624f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/cy/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/cy/thunderbird-102.13.0.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
-
sha256 = "fd037542beab8c9c3396f2530296b63e646ab2de0a1bc91f68efc7b271e2e4de";
+
sha256 = "fc18fe46a4f2ce5b4cba11105de96849b8914cf3f9818c40aa2cb932e600462d";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/da/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/da/thunderbird-102.13.0.tar.bz2";
locale = "da";
arch = "linux-x86_64";
-
sha256 = "991a46e772289a699720a3e0f10e6ec82b2a7b4a3e5c3e66af1e0b266e893199";
+
sha256 = "964784f13838af07dcffa19ee65a5b04cd5da1d04239a522c5794bf94719d7f8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/de/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/de/thunderbird-102.13.0.tar.bz2";
locale = "de";
arch = "linux-x86_64";
-
sha256 = "92b5de1b2ff2ebd8541b86295e382393261d0485dca8bdf17a6ba4287af98679";
+
sha256 = "62545ff4203f8197b0ccef526c28f15a446c33bd12e8ff3fb4d9f136f5a9a5aa";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/dsb/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/dsb/thunderbird-102.13.0.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
-
sha256 = "86d5ef98137468ba2b78603b2a06cbd474c8314dc37a92759bcd948a9bffdd5c";
+
sha256 = "7c6b78377a35899cc0c3a2fd69798180b5429f4f4b806f677fdec2ad3628321a";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/el/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/el/thunderbird-102.13.0.tar.bz2";
locale = "el";
arch = "linux-x86_64";
-
sha256 = "1df3a70d2ecb6430bf7052428c9603a86d0052a4370843fe7e6771c1c2ca033c";
+
sha256 = "a19bbcc882c4f28fe6f598766f1f9bce3e364e86a9d043589feebe491850b6b6";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/en-CA/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/en-CA/thunderbird-102.13.0.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
-
sha256 = "5707c6f5aeeb6fa030237f4bb45b5b73b4c9e64f2912ea4d2ab28af55bb3a6e3";
+
sha256 = "c3fddd8331042d4fe9a0b63c27a7fe5ddbe4a6de8bf2b650116d0f3b0e58f5a1";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/en-GB/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/en-GB/thunderbird-102.13.0.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
-
sha256 = "0d98d3acc5d046ddb4cc2ef149fa180d005a77f7eb91bbbb10a188d562a65546";
+
sha256 = "01c525b0742c9434135c564877d6051f862e1ac8641b43efdfa3902509ce527e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/en-US/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/en-US/thunderbird-102.13.0.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
-
sha256 = "311cf498bcbeb56f45a53492498c4a094b3f30edbd11594498712997aff530b1";
+
sha256 = "60e363b604fd5e0c858e1c26224e4052c020d9f1b3bd7508f233ebef6ad7b05b";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/es-AR/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/es-AR/thunderbird-102.13.0.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
-
sha256 = "83e15b8babde61707d1833b3806fc626adc4e30a4d9ce7aaa9d788348de23b31";
+
sha256 = "a06676e96d86cccf57636b84c6a960f4e88335e5890e34428de25891dadbdae8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/es-ES/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/es-ES/thunderbird-102.13.0.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
-
sha256 = "67487065d864346bb6dd7504cf77a0cd5382b26ff1cdce02765b9f4bd26eb4f4";
+
sha256 = "6f0969919b33ea8da006dae62cdd2ab90e20c9ac3a0ca53524a05eff6134ea1f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/es-MX/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/es-MX/thunderbird-102.13.0.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
-
sha256 = "3485c3695b27b13bf6024f776524b2d8e26d09ace4773392c71ea6d22e911ce4";
+
sha256 = "55113bd54e3315abf2db2fc0d6b4afc68b8a53cd3a5a8167eb3f7a895129b61d";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/et/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/et/thunderbird-102.13.0.tar.bz2";
locale = "et";
arch = "linux-x86_64";
-
sha256 = "932b812b3149a6286d606b58b13211c52a2d832fd68f2081c090c1902cd144e0";
+
sha256 = "23e719b847b2942226abd20d11d45a0573d3d5428d2a741a06d94ff0f854db81";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/eu/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/eu/thunderbird-102.13.0.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
-
sha256 = "0f17272832d393df25a705a0a9938e346bf9f19408110f370a56ae4d0e46a249";
+
sha256 = "2e41dd8f77593c4207e89a3bcf883ac5f45ce732150108f5e5040d1e6754bbac";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/fi/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/fi/thunderbird-102.13.0.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
-
sha256 = "dd6886fd89e9512276033ddd6de95aec29ec6d51aa92db4e5887d5e0eba37c3f";
+
sha256 = "e5c9566a483654d182c8c2a9fddea75a5b3d19e91a16ec291b52a66db5e3a78f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/fr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/fr/thunderbird-102.13.0.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
-
sha256 = "df81ad12712cf75ca3572e0afbad252dd18512e081744fa12b9734561d6a9509";
+
sha256 = "1218794ed23f0e63db896391256b08f5d6e99eee2d6a8bfac53a7c64066a6022";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/fy-NL/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/fy-NL/thunderbird-102.13.0.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
-
sha256 = "6704b2be50f3e00998b26fe48a42d38fb58d3d2fc3bc7aa30bc274f82b813559";
+
sha256 = "ea87a523282a83c4c212bd463d0e936d7d76d2f9a1268857408169083cbb5494";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ga-IE/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ga-IE/thunderbird-102.13.0.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
-
sha256 = "87c3671056d947c7616f622ab060d99803bc81234ad394140eb92f8977fa93a2";
+
sha256 = "d8775cf3c06de8f7803b7f053956ebdd7636407229cd2f83bffe7451e9dabb73";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/gd/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/gd/thunderbird-102.13.0.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
-
sha256 = "46334a92360359c2d7af7d6ad315baee8ff750fe73def115e30651251676720d";
+
sha256 = "cce50897e78e16237450a98316719e87b3213cac98b101a72e77bf500940fad3";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/gl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/gl/thunderbird-102.13.0.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
-
sha256 = "e31ec9437c5c0dac3459668ae8011d2e016931b369c577dbe2bbc60b25d7f3e8";
+
sha256 = "8a43a71e1da836f53c76c6059ae0937f8a3d280f824958c0bb4a730e8a2acff9";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/he/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/he/thunderbird-102.13.0.tar.bz2";
locale = "he";
arch = "linux-x86_64";
-
sha256 = "ac0fb328c19521b83d34aed77ba507cb44dd2cf19e128c19eee25c59718ae9ec";
+
sha256 = "e9f96dedc206fc7eb2a1a8a98088434d13a193415eb470c00abd05e7310a19e7";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hr/thunderbird-102.13.0.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
-
sha256 = "7db4ff99ceab888d279f7083744afd88ce334244c577da1ca6e6433043d140fb";
+
sha256 = "d1e3958fb6f954fa97524606c180417c6e90eebf374e642b0a4710e25774e2e6";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hsb/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hsb/thunderbird-102.13.0.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
-
sha256 = "3db57f4ab334eebea1ba4da57633a1556ac0fc969adb0e363188b09d93771471";
+
sha256 = "02f86d0f0b829ec8b6a8e93192ed7d8181fbd8c0ee0f2d635283ad88f6e9f7d2";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hu/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hu/thunderbird-102.13.0.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
-
sha256 = "403f4f7bde69d6a3654b6f6a964e7e1aa9a3e4a29810d118c8df4f61da4059a5";
+
sha256 = "6281c33b9db6c5972914e5f85444e6b883c2e66037c05cbfc23418d8d299fa93";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/hy-AM/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/hy-AM/thunderbird-102.13.0.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
-
sha256 = "55ef72c23f436862002afddcc5030cf2a1e96b85d531ef233c66796fbfaeee9d";
+
sha256 = "6d7bfe6b749ef85c960756216f7c3763abf75cc00b73baf4a0219ce652b3ae62";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/id/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/id/thunderbird-102.13.0.tar.bz2";
locale = "id";
arch = "linux-x86_64";
-
sha256 = "73314109c10d6a96d2c8c0ad93ed910bb95e0952172128754a2d3127a30f0553";
+
sha256 = "cf065970ddeb180f0b2ce73f15f721e96bd6706141b7644dffbdd6af21cd1201";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/is/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/is/thunderbird-102.13.0.tar.bz2";
locale = "is";
arch = "linux-x86_64";
-
sha256 = "f6b731ee5938236bb28472790d5b07718ff26dba3a78081da53b04b1130c3f4b";
+
sha256 = "e690a87a67876ba67ff9277fecc972d265c2546028f356c0dc4c5efbc80e65ec";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/it/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/it/thunderbird-102.13.0.tar.bz2";
locale = "it";
arch = "linux-x86_64";
-
sha256 = "17903b5e43413a7d80ceed35f60402c2de2c95d9916080930756446b65fe02d2";
+
sha256 = "84584b57adb4cd3b56c59cbf33e8f212dfd9366c3bc0d52bf5e53bc1871c426d";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ja/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ja/thunderbird-102.13.0.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
-
sha256 = "34f009819fc3d8fbd780896ae4ad734da8829ab808f8b9a726644fcf72633750";
+
sha256 = "00969670a9447365c687aa5866ea802ed72b08916bae34c2b2bdb3f1b02ee8cf";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ka/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ka/thunderbird-102.13.0.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
-
sha256 = "73570b411f2d9e6bddd41c95b67869635414e14d32d511d0dc6e79b38a9c9b70";
+
sha256 = "be471a01f2d7aca4b666c4862242954e72c1e4cdbd6f05834879c055b48ea5bf";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/kab/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/kab/thunderbird-102.13.0.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
-
sha256 = "7178cb42412530a67612453cf527774c3cce792f626e2dde9db229b8515f2fca";
+
sha256 = "6fc2c3840aab2643689304c2c21da33df8b1cff291bf9007cd2cf676dd9f9164";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/kk/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/kk/thunderbird-102.13.0.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
-
sha256 = "d642b392a87ba0370a3c6c8a785aa5defb9d904f45632ab804484b62dcfb2e96";
+
sha256 = "b07b4cce24627aa0885eb4a288514a312244cf14e672d242159c77c70b86f17c";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ko/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ko/thunderbird-102.13.0.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
-
sha256 = "a6f19bf0bf8c926acf5c08b48eeaf311c7a371d90b1e0c7c5b7664f0f4f33fc1";
+
sha256 = "81275eb753aacc5b67325d294400de10f57654432d37ee53501048e38081fdb9";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/lt/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/lt/thunderbird-102.13.0.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
-
sha256 = "31f5833520473062179948d14f04e8ab8ca412b6d581cdc6b8f53fc66fab92de";
+
sha256 = "c51a317710356a65fb0dd8270f834e4e5e8d9e0918dfe18c84c24cdbd1dfd5ae";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/lv/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/lv/thunderbird-102.13.0.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
-
sha256 = "b4c92ede4839cb715672cd79c08092c4e68822104662fb5f21eb2f7082a8efb9";
+
sha256 = "e120bbaa79cd31bade34bf1393f705d1757719114d7fad2aeee45402fc58cbde";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ms/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ms/thunderbird-102.13.0.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
-
sha256 = "8b277a80d59f5230352964ed0b4a59afc39a54bce527aa7d4e75ffe885180ff2";
+
sha256 = "b747f5fd1e5c8c22879f06e4097f8006e3b4acb0a235cd67c4f1c45e40e19c9b";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/nb-NO/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/nb-NO/thunderbird-102.13.0.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
-
sha256 = "ffb1ab2d17175fd49c66e13d36173f4edf6ea827088ba194cb384d2a216d6548";
+
sha256 = "bbd8517de5607017fc78917ec89b59a8c26bc1d6f308ca034855ba48abb1a01a";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/nl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/nl/thunderbird-102.13.0.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
-
sha256 = "9b9bd1ee90090bbb84161fac47224107705f9f2fa257d5e9cb16f4e7ddc8a530";
+
sha256 = "f8cb2ee310014767becfe85e84a1aa5171067adab2513bf9d14e5dc9a72517be";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/nn-NO/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/nn-NO/thunderbird-102.13.0.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
-
sha256 = "80f78ce4721869b781e96509a1ebb695305aeddd3034a8166c3c1bde6a41a6a2";
+
sha256 = "b52959123138caa96d90b8cb85ebbe200e07733d34f3a9c262634f90af78ae03";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pa-IN/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pa-IN/thunderbird-102.13.0.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
-
sha256 = "2b51a64672a05449da2c8440a5e4742fa5898479bccdd26cbab9d634704026e1";
+
sha256 = "d2dceaab81cccd8ca0ddbd0466e3acc17eef256a12825f84cac65e1532b93a83";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pl/thunderbird-102.13.0.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
-
sha256 = "a8fba5214d99a7449842f2107bd6b93a574fb051f67d24d1545d653c78a03f6e";
+
sha256 = "b32e90a2a01668ecbf62b8931254f3206746d6d0b5de28fc7f8b26a6d06f659a";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pt-BR/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pt-BR/thunderbird-102.13.0.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
-
sha256 = "00a0890145d6d07f174e5791d8a4f7efa03da40b897b916f96da2d716e911b5a";
+
sha256 = "bb769f739108eedcf06b0ffe2681bd3946bec136eee9330facb439bc9c40447d";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/pt-PT/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/pt-PT/thunderbird-102.13.0.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
-
sha256 = "8321a8e2f7c08dd333860f3be037aed5f49d902add98c31827fe17d41c23e499";
+
sha256 = "f15ffe020b1ae6b41937dcc6722465b678a7914abd0af864ba23672ff66155d1";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/rm/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/rm/thunderbird-102.13.0.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
-
sha256 = "e17dbf00538d807cfd0a0c473cefc0b8ca944fa829368a85f966da419c809a53";
+
sha256 = "8468123d5bae3b9d796e74268e67ce115b4b5a5980aee1408759eed6f7d2cfc6";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ro/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ro/thunderbird-102.13.0.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
-
sha256 = "d62f90d3531227c388d100763c121b2557c72722e4caf830e1e73741b1a42cb0";
+
sha256 = "81e389511e1e4618e6554cd01b722300723ab18a39e74d91564fa5883f617c19";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/ru/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/ru/thunderbird-102.13.0.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
-
sha256 = "8db65e38f4860eda39cdaa40ecc48967987f5ffdf66c38b4dd7198ffeb355e01";
+
sha256 = "78462fc4f264b11c35c1892d81db775240c7795747f608b11064a5d092e79664";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sk/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sk/thunderbird-102.13.0.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
-
sha256 = "6c06dc997db44cb7b737177316180c3c827ab11cfe140cdf70d964a0117f0da0";
+
sha256 = "8a213598e861dd4166fce60d76d5f1658063f1a1e008ddf2f3114b3ea3f2d809";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sl/thunderbird-102.13.0.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
-
sha256 = "86a4cb37c1f10fd6dec910204320b2e8f875d74e7a4b82819bd51d6148446543";
+
sha256 = "cf85777c113fcc41e3485c62136a561ae0e21db70b4e79c4fb112280f6ab8260";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sq/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sq/thunderbird-102.13.0.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
-
sha256 = "7993c175bb55460f5c425b35e36295e6a6c1133c2c6f423591fa1f4524957347";
+
sha256 = "df09cef518f01f29bf1fcbcfef4ed82e0a917e0361f41618fa796ed20e6a8974";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sr/thunderbird-102.13.0.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
-
sha256 = "4066c7404822fd2f36e5cafc417f669e731f9dd430b590de15023904bdcb3a78";
+
sha256 = "af46328c71c61e1042af53e42b58aef5a1b9f82b93972f1a4354d1902e3802e0";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/sv-SE/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/sv-SE/thunderbird-102.13.0.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
-
sha256 = "f179450d28db9a234224afe95200ff329ecf56497a93e2e95064ab9f90d65944";
+
sha256 = "70ff6e9d0c28a4435521e5b744f6ebb783590d390dc1247fb17a80745ce5b81e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/th/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/th/thunderbird-102.13.0.tar.bz2";
locale = "th";
arch = "linux-x86_64";
-
sha256 = "ce1909b8d733c4a2eb5f7d217b05fa6fce8e036e4561e52078e5ddaa723d1d68";
+
sha256 = "6a9055143e689867a0e06c75bfa5103be1cc9e0e223c7a51ea6a8d16a37623a8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/tr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/tr/thunderbird-102.13.0.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
-
sha256 = "45ab9d4d14ecf590064d37282c02e8e1c95a5a4b27ee6a04919791ce0f876bf6";
+
sha256 = "8e00419a701a84949dd67f618df39b1603531190125af6d525da2f18c5d8c7f0";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/uk/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/uk/thunderbird-102.13.0.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
-
sha256 = "aab8145419c3346a48143b1d02a97d08e96cc23bca6fd04ad1ee8c4c4e885a70";
+
sha256 = "8a051c9dc20f3f0a968f5f7be38ab9c30281931bb1f6a3b90aaaed0d8455f359";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/uz/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/uz/thunderbird-102.13.0.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
-
sha256 = "4ea4a65878bc3e9336164d46fa9d546ad411aeeb3ae4095036ad35422a278d85";
+
sha256 = "73b68505012dd248c073aa8d67a108501fca53f020d44fc613e59b9532ff560e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/vi/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/vi/thunderbird-102.13.0.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
-
sha256 = "22baebada536992fc23d621b8aee58b845484cd1fda3a38d7b172a78e0ac1d6a";
+
sha256 = "51ac0cde7a05b4c1a1e81e289beb91ae6e8d21096d2f61dbaf6af457bc84640a";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/zh-CN/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/zh-CN/thunderbird-102.13.0.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
-
sha256 = "ea3c42846b9eefe08b6944a816b28aa50dcc116354b59f5360f3e6c0340d406f";
+
sha256 = "5616ff9e4b30bdf590b941ca46e6793d9d4357c6f323372ca6b6ad88bcb09c65";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-x86_64/zh-TW/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-x86_64/zh-TW/thunderbird-102.13.0.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
-
sha256 = "207c364f50ce57259134259c903844705339f4f25d1468ba565727254a179c79";
+
sha256 = "cab3bef46dae32ba86952152fec513cf48e7b37b034dc48b59f1c3ed43d817f6";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/af/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/af/thunderbird-102.13.0.tar.bz2";
locale = "af";
arch = "linux-i686";
-
sha256 = "a78eedffe820f56374ccd80827b90e08b85cd1697b778474bb37fded8dfd4771";
+
sha256 = "9d67e602573d53bb1b579308b2adf5f1dc9eea20d5323f10d0193372b3db968c";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ar/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ar/thunderbird-102.13.0.tar.bz2";
locale = "ar";
arch = "linux-i686";
-
sha256 = "5fe656dedc66b1cb928f33a1a8993cb946a869846eeeececabae7972ad786c79";
+
sha256 = "a0a4310cf8c87cf85a7e2c8f2335c615442c88c354c58b9dbcbe4ea1fbeb064e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ast/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ast/thunderbird-102.13.0.tar.bz2";
locale = "ast";
arch = "linux-i686";
-
sha256 = "d3f10468b757add94a3f97ba2293767e54373a615559b45f0c9598cc0abc4bc7";
+
sha256 = "47ca9ccbb5a4a04ab477b120465ebebe695c0a38a7e5a9cd8c9037c7e91ef993";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/be/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/be/thunderbird-102.13.0.tar.bz2";
locale = "be";
arch = "linux-i686";
-
sha256 = "245ba014e247e4a328ab5b05a4edd3d4394e8214e444ff55bd0d3a5ba51b2a85";
+
sha256 = "70466b7d0bb75617c5013615f1756eac2ccf48a89cfeaa1486c0256bc31aee11";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/bg/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/bg/thunderbird-102.13.0.tar.bz2";
locale = "bg";
arch = "linux-i686";
-
sha256 = "474d471395d9284852c647eab1fddc4db2269c819931edfb788a5580ac999d0a";
+
sha256 = "4166fc66cc4779fed44f8db3561b46012326dba958d75ea8b4eb23aeede40105";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/br/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/br/thunderbird-102.13.0.tar.bz2";
locale = "br";
arch = "linux-i686";
-
sha256 = "e5e9f42b1a8975b276558046f7b90cb3c57fae4fe95f95f92e7e209f7ee5bfcb";
+
sha256 = "23af915ff46d00d836f442af65ffcbdcd3a7668bf385855b626269320d30de89";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ca/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ca/thunderbird-102.13.0.tar.bz2";
locale = "ca";
arch = "linux-i686";
-
sha256 = "09faad4fb6472f21dc825ba496853848978be42dcf3aa66927f4ccb2b0b84d59";
+
sha256 = "ed309a1f5e787c6d9de1ecaa332bd5ad995d9dd44521eb141a8002f4c96f8b78";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/cak/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/cak/thunderbird-102.13.0.tar.bz2";
locale = "cak";
arch = "linux-i686";
-
sha256 = "c169b412dad7f8c341b941491bb81d23646855488523fbc5e5ec676c47db2a02";
+
sha256 = "04f0f440f98b6444d1c0044bca77c2c4bf75025ea9eff163159c182bb913697b";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/cs/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/cs/thunderbird-102.13.0.tar.bz2";
locale = "cs";
arch = "linux-i686";
-
sha256 = "b1342ff7c1c19c7e45eb12055ce4063376d2651da195333431d60e5fa4b17adb";
+
sha256 = "592e5fca7ef04ac14b400dcc326cef79baa48c4289e65106b6967eea37930cac";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/cy/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/cy/thunderbird-102.13.0.tar.bz2";
locale = "cy";
arch = "linux-i686";
-
sha256 = "ceecb82902badc017405af3a0c9f6eafcb3748b7746bf7d25dd2f7fc716e5126";
+
sha256 = "9f7862b5f26022f27d39331b1b0ce0972127a34474cc89fa44a369777f79311c";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/da/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/da/thunderbird-102.13.0.tar.bz2";
locale = "da";
arch = "linux-i686";
-
sha256 = "f2c9cae1c78995ad3e27b92c3f3eee998415b141883def9742d296be6e62a302";
+
sha256 = "1882e205f8e16eeef88306f30e4a1dfc5c415d1e1cf1041ce432362b84ce5b2f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/de/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/de/thunderbird-102.13.0.tar.bz2";
locale = "de";
arch = "linux-i686";
-
sha256 = "653bdd0f67b784fc078bdd1cd75f0d307b30d6c027b0e5fd7148d5e4cea2adcd";
+
sha256 = "00d1e7cd634c130c6f4a26333de10e82f7a18ef1fe766a6280a2614c1dd4290e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/dsb/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/dsb/thunderbird-102.13.0.tar.bz2";
locale = "dsb";
arch = "linux-i686";
-
sha256 = "98384b95001ec5e82fc8f53c76f5644ffe1f6624deefd3cf4d8bf6c4492619e4";
+
sha256 = "d14aaa3beeba7dd1f781c3eef74cb098a5f36944cfc240223d8f3d472b2c15b8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/el/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/el/thunderbird-102.13.0.tar.bz2";
locale = "el";
arch = "linux-i686";
-
sha256 = "ab7efc3b98f24a14e488dda8cb8206cbe83f49384352154fc20353c697201d6e";
+
sha256 = "cdeec1c38813d76523597a3d9afada7538517a2fd9705a64a9ae03484c3d00b5";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/en-CA/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/en-CA/thunderbird-102.13.0.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
-
sha256 = "d9c9fcf684aba3322bc7c386c48ae30bdf56c48a20902ec298e95be362c11c37";
+
sha256 = "553921daa097d493144a65dffd7e4706cf1d95541012db7eda8544690ee8977f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/en-GB/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/en-GB/thunderbird-102.13.0.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
-
sha256 = "49c80b30b66b675de13f3a1adfedfd0794dee6762c56967775665961bcd3959d";
+
sha256 = "60b796348c70fd0ea30fd85c1bdea52a027d25622286a9c33a24fa8aa87b1f2e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/en-US/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/en-US/thunderbird-102.13.0.tar.bz2";
locale = "en-US";
arch = "linux-i686";
-
sha256 = "0ce97d2b043907467d54cca44c85681f37d2a3b34a9575082d0b3ee05a82447c";
+
sha256 = "46cdf6a072c11cc8df062834d3c9e64e6ce71eabf1f4c7d55753dd95e2b21e83";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/es-AR/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/es-AR/thunderbird-102.13.0.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
-
sha256 = "6fea0ae72690c33c9cbf6cf4721afc16974d72f9fc287bd44e02e5e06cc7d2c8";
+
sha256 = "637a60a827e347abfc364786ca5ad2c7b6b3c0b61fbb7ef5c81dae7b61a3eeeb";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/es-ES/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/es-ES/thunderbird-102.13.0.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
-
sha256 = "add0932c8bb9356ac8cf67a57a2aaa3d93fc3f9a2357832f472935acbfe1f25d";
+
sha256 = "b110ecbae661e18079f8ee7e06c866da5c49c288e4d265366f9f4d6d3cdb7087";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/es-MX/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/es-MX/thunderbird-102.13.0.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
-
sha256 = "3aad7a26e7444751647e794c031218f6850f711494dc5b24e25d2848b9cf56f0";
+
sha256 = "63722c2ecd323216371633a67d6de071148898f62c8c44781bd5bc9aacd2b5eb";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/et/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/et/thunderbird-102.13.0.tar.bz2";
locale = "et";
arch = "linux-i686";
-
sha256 = "4bf21ba093b2d98a507f63fbb8a3c8c1bf790f0c4811bc664aa4475fcc8f1d3b";
+
sha256 = "93109b1876f212ab8a91d34c77dd137d87009c39fab3faef6f63ad72cb692567";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/eu/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/eu/thunderbird-102.13.0.tar.bz2";
locale = "eu";
arch = "linux-i686";
-
sha256 = "f01b207c5b35af66542e5961e63cc3734eecdabaa543c0ee693add78862e3508";
+
sha256 = "a2b8196598d00e09fc119c2a4f70e71ecac6080557d69671e3cea84361d1249e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/fi/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/fi/thunderbird-102.13.0.tar.bz2";
locale = "fi";
arch = "linux-i686";
-
sha256 = "e29744181614b98bf2c6dfb46da2f339eddd1d17f1ffe7499236442b5104a9b0";
+
sha256 = "92518485b0b0111c95b867d13d3a7199d3a3d0288d05636f6d69dde44f94521b";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/fr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/fr/thunderbird-102.13.0.tar.bz2";
locale = "fr";
arch = "linux-i686";
-
sha256 = "02708ed7bb7b83f058160f28524506f13f5c661f967e0cf8908f7d1b72965a45";
+
sha256 = "21ae453720831af4b06d261c5094ae6ccf4d730748c51eacfb5879f012460ea2";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/fy-NL/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/fy-NL/thunderbird-102.13.0.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
-
sha256 = "156940765e41e34c3f05f7f56c8634dd41e9e2194c3fe14d3d8e04af0d266a5a";
+
sha256 = "759689324eb65ca07b69fdb82d183399c0a0b2948e9b1c048f4919ff4f9520d5";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ga-IE/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ga-IE/thunderbird-102.13.0.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
-
sha256 = "2f5089a6f152efba12eac5a5096b91f360bccf99a061ea8145767807499d6e45";
+
sha256 = "2e0d71044e670dd130c311eb5c8175ea8ed8d44816b27226d81bd6b2b00d22da";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/gd/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/gd/thunderbird-102.13.0.tar.bz2";
locale = "gd";
arch = "linux-i686";
-
sha256 = "004cdf4b0db59ffd5463a543b6ee5859f96eef31d16a6e0bbce892e7bdfb3481";
+
sha256 = "aaa6c675b9a1d3a19bf736fdb8b3c07145871099f5eb102e7eac5e2b7613568b";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/gl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/gl/thunderbird-102.13.0.tar.bz2";
locale = "gl";
arch = "linux-i686";
-
sha256 = "c3d72bb143913728198c73f0dbec8933e791ead4d5b46d2bd2bbfdf9faa2a3db";
+
sha256 = "54ec7a64e53bba9c59ffc5a63f7668d28b1fdac2c42757be8d89815364873575";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/he/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/he/thunderbird-102.13.0.tar.bz2";
locale = "he";
arch = "linux-i686";
-
sha256 = "c120e4dde2fcbcabb383732512e455eb74c5b56e42edc1ffa91a6b513c369ceb";
+
sha256 = "896d7be34cdad5efdfcb958a8763f685a56adb64030563b61521d4b547760595";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hr/thunderbird-102.13.0.tar.bz2";
locale = "hr";
arch = "linux-i686";
-
sha256 = "156e3fe8927961aef8353d896c20fa78b237c3a2a40cd73b4f216c7893a69750";
+
sha256 = "968fbf7246d062344d5631720ffcb19e58a15655731a9550673c408ec1e0852f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hsb/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hsb/thunderbird-102.13.0.tar.bz2";
locale = "hsb";
arch = "linux-i686";
-
sha256 = "2a1a8f996815b7a57ba62f589393f7ecab7918a5acb9cbd54d901e014a9de730";
+
sha256 = "d393a1a8ec99b4b03eaa26560b5280c863b8935eba7274f69af54f9eae7cf365";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hu/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hu/thunderbird-102.13.0.tar.bz2";
locale = "hu";
arch = "linux-i686";
-
sha256 = "c7d541bbefeecc9cf1eaaa975205d7c8c9530a26746a3e8e9e4a9faea95fd99d";
+
sha256 = "d796099393afd865b7b3d37917f921dc3e667c0b0bd7dacb955a1d239620e723";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/hy-AM/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/hy-AM/thunderbird-102.13.0.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
-
sha256 = "41e1620345bbc30555e5a09459937ad5bd0ca0198aeab0065ade133f71aea34c";
+
sha256 = "a9cd46e49d6fac36a76c0b2a7728099b980923ffa4f16a398b6e6b1ed975f421";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/id/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/id/thunderbird-102.13.0.tar.bz2";
locale = "id";
arch = "linux-i686";
-
sha256 = "3ad8a34d3d92a83832135618158a93624e6063a4593237ebc94623c45a71b9bb";
+
sha256 = "621b0df18242dfd0d64b3554411e150e9249475a99918ec9d2e6ee8aa13ce602";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/is/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/is/thunderbird-102.13.0.tar.bz2";
locale = "is";
arch = "linux-i686";
-
sha256 = "15d378b909c271d87137aca66ac9e697b7b7de2fa17d24914873cd42af3c1613";
+
sha256 = "1a01815ae59babb7bef64a0d3768fbec23e5bbbed25bcfb37677825df72f29f7";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/it/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/it/thunderbird-102.13.0.tar.bz2";
locale = "it";
arch = "linux-i686";
-
sha256 = "8a761bf97c76d30e860a4cba1e2b3dcda550c20e87953f5b3903f2b859f2f41f";
+
sha256 = "e877a7bea6eb184352aa9f91f112059737f7709d9eaa27c3b911c91437e220bb";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ja/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ja/thunderbird-102.13.0.tar.bz2";
locale = "ja";
arch = "linux-i686";
-
sha256 = "2c9e60e49694770dd13493c3fd7f61e61a8ecc3d1e3521c3df4f5e403a0cb4da";
+
sha256 = "a9fe2b1273745213de8a3e723326db37cfe3446cf0922d55dd371c52dd6942f3";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ka/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ka/thunderbird-102.13.0.tar.bz2";
locale = "ka";
arch = "linux-i686";
-
sha256 = "8f6aa7f110e435eb21b80b43545c4bebc83d78c3524b58c9b2b9fdb7576a1caf";
+
sha256 = "d13862201e1a4b2911d820ede69e54c239656e91fb66594a789dd617efbc705f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/kab/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/kab/thunderbird-102.13.0.tar.bz2";
locale = "kab";
arch = "linux-i686";
-
sha256 = "0aca25c9f560c967352452f584857ec1670bbeef93cb5126a5a369fa2e2bfbb3";
+
sha256 = "3dccc3b3163c332c85d6171e6c5a366d1b6cc2d681b8b49413f8e119b554d6ef";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/kk/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/kk/thunderbird-102.13.0.tar.bz2";
locale = "kk";
arch = "linux-i686";
-
sha256 = "b3fd7ad0219c0d7cccd6e8d1ff6d57bb9ee9454982390a5eb1c25da0362e6a04";
+
sha256 = "4f236eb6094b24ad20fd1b9206b298539c62550d64ea6faab5b9e5c7af1b92a1";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ko/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ko/thunderbird-102.13.0.tar.bz2";
locale = "ko";
arch = "linux-i686";
-
sha256 = "878550b8d1b6b702969e1f44b11335581b74f49cda275128b5e888b1bb1c65c6";
+
sha256 = "12138c2913e4ace3f772218cad8428816a7f3053371e41160b2eac708aade294";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/lt/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/lt/thunderbird-102.13.0.tar.bz2";
locale = "lt";
arch = "linux-i686";
-
sha256 = "4adb4e7fb9e2858d08ba07ac0c45c39f19ea607454350406b66a7b8119d47eac";
+
sha256 = "63dab76b710a4733ce5eba4120bd3da6c8b98632e96c074ee093969fb40984f8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/lv/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/lv/thunderbird-102.13.0.tar.bz2";
locale = "lv";
arch = "linux-i686";
-
sha256 = "6de09c4e8d7d59a6d3397b42225a506820fd7270e0ee9397987ff8c1b39a9647";
+
sha256 = "ac18773d6fdbfb92cd30a8c33973bad927a82274dcd24c4cec23fd815256da39";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ms/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ms/thunderbird-102.13.0.tar.bz2";
locale = "ms";
arch = "linux-i686";
-
sha256 = "0c35682230d3250e3be1aad81d39507f814f701e3495b4eb6d4c044081848f82";
+
sha256 = "1bc302e2dd379a25c708edd51644f18331a73866e83add07b109890f5778edac";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/nb-NO/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/nb-NO/thunderbird-102.13.0.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
-
sha256 = "af75db1085dcf182c5570b47530685413e4ba425cd05c94c0280ae65dc4a54f4";
+
sha256 = "4d1655e7a258dfe4ef5c9863d47fcf8b01f4547f9a4cc2e676c3f3bc98412052";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/nl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/nl/thunderbird-102.13.0.tar.bz2";
locale = "nl";
arch = "linux-i686";
-
sha256 = "9ed4e326655f19d2bd9f373a3f0f0211a9c44a1d12ebb0bf84afe1a40d65c7cf";
+
sha256 = "168227b97f2ffc7c8a99dc87b7145135b66ed6148eee4506540e3044d643e8fb";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/nn-NO/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/nn-NO/thunderbird-102.13.0.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
-
sha256 = "2736a80c98790bab8a83bdf6dd0c8d627b5605f723d4625a90a8923c905cea5b";
+
sha256 = "d9dcbddf067edd1baaaa31468f32fb6f4ccd6278370c8c757e602f980e1685d8";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pa-IN/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pa-IN/thunderbird-102.13.0.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
-
sha256 = "1145f7b27c3472461c36312598e8e2fb97f0287571ab487a5faa72a55cb67cd8";
+
sha256 = "0b4d038a3cbcfdc5c34322a1cc760a996ba6542da144516cffc74e2ab7c04347";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pl/thunderbird-102.13.0.tar.bz2";
locale = "pl";
arch = "linux-i686";
-
sha256 = "f620e69104a461f0376279f5e67164ee153ece99230e5f3f8607dffc3830c8ca";
+
sha256 = "698bb68efacac0a8023729d2870da6932b1f80ec960d25fa259aed1b750f33ec";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pt-BR/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pt-BR/thunderbird-102.13.0.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
-
sha256 = "45410c053ee09fbe9eb669951cdc1aea923327134e8f6149a57157bad7980dc8";
+
sha256 = "e48c9494bccad7ea3a57a4f460edde3ff92b0f55eff3be082fbdf526d0192a0b";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/pt-PT/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/pt-PT/thunderbird-102.13.0.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
-
sha256 = "606e06996c137d5100fb41cfed3eb64f0d133412119d1dd9a0ac77c69dd3a9bd";
+
sha256 = "1afea038d789d2d8de1491d44273929557dfdcdd4241c60e404e2528320be2a5";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/rm/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/rm/thunderbird-102.13.0.tar.bz2";
locale = "rm";
arch = "linux-i686";
-
sha256 = "0c56f5bbcd93ebcf719211b745655bdd12c804e797a61a35725aefc9330ec039";
+
sha256 = "be4ab3c712469ed664b98ab9072e081cbc3ca82e76645c91c85b0073c6de6f6f";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ro/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ro/thunderbird-102.13.0.tar.bz2";
locale = "ro";
arch = "linux-i686";
-
sha256 = "2fa1770ba6c0f48565cdaa1a380f1a02d7c5bbf399a8e8733d534974496fc5fd";
+
sha256 = "e0d7f59728c25e47c69e7317cf51da00204c5258ddddc47e41951b1e925f503d";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/ru/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/ru/thunderbird-102.13.0.tar.bz2";
locale = "ru";
arch = "linux-i686";
-
sha256 = "5e163f9d577fa6b9ac90c68332f987627da0eddac178477fe2bc6086fe1b350b";
+
sha256 = "2b11c68a1f8f563225352681c731f56fc62e9f82ca083d74ae450d67511a37fc";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sk/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sk/thunderbird-102.13.0.tar.bz2";
locale = "sk";
arch = "linux-i686";
-
sha256 = "2fafac4b35aca28cdc0d5cb8052a7235586ab5c8c6b8407386586e395fee41dd";
+
sha256 = "5e60a97be9196398e5e517be8e15c500c6d5b86edf57c8e185f627e8392f5555";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sl/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sl/thunderbird-102.13.0.tar.bz2";
locale = "sl";
arch = "linux-i686";
-
sha256 = "e8eb2687ef4600143bf1a6174ddc01c9e12a33d82ceb479b4924704862ce5b44";
+
sha256 = "3bed2e3474989e68a68e743c429e6fedea5630050a45dc3736b481d8cf953173";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sq/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sq/thunderbird-102.13.0.tar.bz2";
locale = "sq";
arch = "linux-i686";
-
sha256 = "22d546d1b351894bd6e9b37570c32daf631e43f5cf1ba12783ba4c8b8b0f80b1";
+
sha256 = "849c502856746ec05120974a343c19183071a79f66b77d6dd1060f58d87049a2";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sr/thunderbird-102.13.0.tar.bz2";
locale = "sr";
arch = "linux-i686";
-
sha256 = "4f3005db6f7ecf49f41e38a23af1d10d87b1df2f83e004137ba5a7ea4eb554b3";
+
sha256 = "bc8228e4331bc9e862acecd5d01b57079423eeeb7967e1b1ab2b4ddd64f41b43";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/sv-SE/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/sv-SE/thunderbird-102.13.0.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
-
sha256 = "fc3dc64402a0ee3eeb0704480af026c4204eba64630ba8d47ca6a4bc003c05af";
+
sha256 = "3ccb87a29f4c1b063da10646322e57b92480cb51df56d2ad41433dd5bf6f3a48";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/th/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/th/thunderbird-102.13.0.tar.bz2";
locale = "th";
arch = "linux-i686";
-
sha256 = "02850d8dbb41dd178fe6ae6ec5e0fdaf35c7afdda5c07801b03ba2594d89e76d";
+
sha256 = "05f02ab04665e4aba0d4b1859170138b5b6e998bebb310f41883f92e8734b337";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/tr/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/tr/thunderbird-102.13.0.tar.bz2";
locale = "tr";
arch = "linux-i686";
-
sha256 = "bdc704b6ab1d9061140ba6e8083ddc77eac69284455920c451151fb3a27a35d8";
+
sha256 = "2dffa62fb27e406207d73a86669f4857319e781e9b99d21a95d04357e509ec1c";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/uk/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/uk/thunderbird-102.13.0.tar.bz2";
locale = "uk";
arch = "linux-i686";
-
sha256 = "5fbd2f2a2426c6994fc4aa1f32c59fa3b5f3dc5d0157407119f0033fb5f6277e";
+
sha256 = "6c8c42b9d14df637279898eda706cb1f34018ef2888615ead3f5804a344ecd41";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/uz/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/uz/thunderbird-102.13.0.tar.bz2";
locale = "uz";
arch = "linux-i686";
-
sha256 = "bd4bcdbbf474e0edd1d76757603826f52f95eb082f3aae11c0df85a8c6602ad4";
+
sha256 = "aca1844cd42125fa4f03ecc30e0339a8a0a5b5e9156812bf4d50f88feb69cf0e";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/vi/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/vi/thunderbird-102.13.0.tar.bz2";
locale = "vi";
arch = "linux-i686";
-
sha256 = "2c72cbabe914af118c6e29acb035a983884f629aa3bf9047a4e17c8329ced1a7";
+
sha256 = "7aa12859972ac0b49f01ce027158942e94e4226f16374f2a466bc86bedf68492";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/zh-CN/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/zh-CN/thunderbird-102.13.0.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
-
sha256 = "2c83f1997030cd94b020568d1678b96118a108979b4fbe5bc87a0b1cf27d19b9";
+
sha256 = "4df04c2f978ba6927b8f7b1b20c4a93e0b98c5a7cf3923ba76ceab3a1c474025";
}
-
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.11.2/linux-i686/zh-TW/thunderbird-102.11.2.tar.bz2";
+
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/102.13.0/linux-i686/zh-TW/thunderbird-102.13.0.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
-
sha256 = "c054c4762bb6e78a80d610020c1eaf10b0139d85b153157f083a28af652fb531";
+
sha256 = "f01c1ceb2303feb3272345705275f92e01e380e521d220b73ad268b6c1667092";
}
];
}
+2 -2
pkgs/applications/networking/mailreaders/thunderbird/packages.nix
···
thunderbird-102 = (buildMozillaMach rec {
pname = "thunderbird";
-
version = "102.12.0";
+
version = "102.13.0";
application = "comm/mail";
applicationName = "Mozilla Thunderbird";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-
sha512 = "303787a8f22a204e48784d54320d5f4adaeeeedbe4c2294cd26ad75792272ffc9453be7f0ab1434214b61a2cc46982c23c4fd447c4d80d588df4a7800225ddee";
+
sha512 = "1ed48220f91cc2c38f59067664c02f1f2098c843810b8f81cb8dee4fe98911d87aac352ab8639c68d0eed74297240cd9e0ce0e64a40360511be85315f2bfcfc6";
};
extraPatches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
+4 -18
pkgs/applications/version-management/gql/default.nix
···
, fetchFromGitHub
, pkg-config
, libgit2
-
, openssl
, zlib
-
, stdenv
-
, darwin
}:
rustPlatform.buildRustPackage rec {
pname = "gql";
-
version = "0.2.0";
+
version = "0.3.0";
src = fetchFromGitHub {
owner = "AmrDeveloper";
repo = "GQL";
rev = version;
-
hash = "sha256-3x4ExSEs22wFP4Z5cY9+F8yyVc5voHAT1odnyzkSlhc=";
+
hash = "sha256-n0v7Mvs7JL3YRsNov4/beoUAW8B4oKjDiRa3QY65V/o=";
};
-
cargoHash = "sha256-Xmf64yRyWrqYO/ydxEblChVPKnR47Uc55FVAY3DU7no=";
+
cargoHash = "sha256-dDjx84LPV3BHMzqyhJW73Z+0R4DlPsHhRlG62HGNxjI=";
nativeBuildInputs = [
pkg-config
···
buildInputs = [
libgit2
-
openssl
zlib
-
] ++ lib.optionals stdenv.isDarwin [
-
darwin.apple_sdk.frameworks.Security
];
-
env = {
-
OPENSSL_NO_VENDOR = true;
-
};
-
-
# Cargo.lock is outdated
-
preConfigure = ''
-
cargo metadata --offline
-
'';
-
meta = with lib; {
description = "A SQL like query language to perform queries on .git files";
homepage = "https://github.com/AmrDeveloper/GQL";
changelog = "https://github.com/AmrDeveloper/GQL/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
+
mainProgram = "gitql";
};
}
+4 -4
pkgs/applications/video/dmlive/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "dmlive";
-
version = "5.2.0";
+
version = "5.3.0";
src = fetchFromGitHub {
owner = "THMonster";
repo = pname;
-
rev = "53c55cb3c087bc00a882331307d210c2965b04d1"; # no tag
-
hash = "sha256-k15IjNGiY0ISEyWxlhZST4dtink/OtoJtv4/8nUn7qY=";
+
rev = "92ce90163c3d84f0fab99e6dc192a65c616ffd81"; # no tag
+
hash = "sha256-3eRC/XmvZXe3DyXOqSkNpTbddtGr/lcaTaFYqZLZq+w=";
};
-
cargoHash = "sha256-0zOwqxD3WX/4e19ywpghdfoGmh2KC+70HbTSYkVHzUA=";
+
cargoHash = "sha256-TQTdz+ZC5cZxWhccnUmXnq+j2EYM5486mIjn6Poe5a8=";
OPENSSL_NO_VENDOR = true;
+4
pkgs/applications/virtualization/lkl/default.nix
···
tools/lkl/lib/hijack/liblkl-hijack.so $lib/lib
'';
+
postFixup = ''
+
ln -s $out/bin/lklfuse $out/bin/mount.fuse.lklfuse
+
'';
+
# We turn off format and fortify because of these errors (fortify implies -O2, which breaks the jitter entropy code):
# fs/xfs/xfs_log_recover.c:2575:3: error: format not a string literal and no format arguments [-Werror=format-security]
# crypto/jitterentropy.c:54:3: error: #error "The CPU Jitter random number generator must not be compiled with optimizations. See documentation. Use the compiler switch -O0 for compiling jitterentropy.c."
+627 -256
pkgs/build-support/node/fetch-npm-deps/Cargo.lock
···
version = 3
[[package]]
-
name = "adler"
+
name = "aho-corasick"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+
dependencies = [
+
"memchr",
+
]
[[package]]
name = "anyhow"
-
version = "1.0.65"
+
version = "1.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
+
checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+
+
[[package]]
+
name = "async-channel"
+
version = "1.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+
dependencies = [
+
"concurrent-queue",
+
"event-listener",
+
"futures-core",
+
]
[[package]]
name = "autocfg"
···
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
+
name = "backoff"
+
version = "0.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+
dependencies = [
+
"getrandom",
+
"instant",
+
"rand",
+
]
+
+
[[package]]
name = "base64"
-
version = "0.13.0"
+
version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "bitflags"
···
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
+
name = "bitflags"
+
version = "2.3.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+
+
[[package]]
name = "block-buffer"
-
version = "0.10.2"
+
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"
+
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
"generic-array",
]
[[package]]
-
name = "bumpalo"
-
version = "3.11.0"
+
name = "bytes"
+
version = "1.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+
[[package]]
+
name = "castaway"
+
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d"
+
checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
[[package]]
name = "cc"
-
version = "1.0.73"
+
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
[[package]]
name = "cfg-if"
···
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
-
name = "chunked_transfer"
-
version = "1.4.0"
+
name = "concurrent-queue"
+
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
+
checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+
dependencies = [
+
"crossbeam-utils",
+
]
[[package]]
name = "cpufeatures"
-
version = "0.2.4"
+
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dc948ebb96241bb40ab73effeb80d9f93afaad49359d159a5e61be51619fe813"
+
checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
dependencies = [
"libc",
]
[[package]]
-
name = "crc32fast"
-
version = "1.3.2"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-
dependencies = [
-
"cfg-if",
-
]
-
-
[[package]]
name = "crossbeam-channel"
-
version = "0.5.6"
+
version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+
checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
dependencies = [
"cfg-if",
"crossbeam-utils",
···
[[package]]
name = "crossbeam-deque"
-
version = "0.8.2"
+
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+
checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
dependencies = [
"cfg-if",
"crossbeam-epoch",
···
[[package]]
name = "crossbeam-epoch"
-
version = "0.9.10"
+
version = "0.9.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1"
+
checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset",
-
"once_cell",
"scopeguard",
]
[[package]]
name = "crossbeam-utils"
-
version = "0.8.11"
+
version = "0.8.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
+
checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
dependencies = [
"cfg-if",
-
"once_cell",
]
[[package]]
···
]
[[package]]
+
name = "curl"
+
version = "0.4.44"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+
dependencies = [
+
"curl-sys",
+
"libc",
+
"openssl-probe",
+
"openssl-sys",
+
"schannel",
+
"socket2",
+
"winapi",
+
]
+
+
[[package]]
+
name = "curl-sys"
+
version = "0.4.63+curl-8.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "aeb0fef7046022a1e2ad67a004978f0e3cacb9e3123dc62ce768f92197b771dc"
+
dependencies = [
+
"cc",
+
"libc",
+
"libz-sys",
+
"openssl-sys",
+
"pkg-config",
+
"vcpkg",
+
"winapi",
+
]
+
+
[[package]]
name = "digest"
-
version = "0.10.5"
+
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
+
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
···
[[package]]
name = "either"
-
version = "1.8.0"
+
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+
checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[package]]
-
name = "fastrand"
-
version = "1.8.0"
+
name = "env_logger"
+
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+
checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
dependencies = [
-
"instant",
+
"humantime",
+
"is-terminal",
+
"log",
+
"regex",
+
"termcolor",
]
[[package]]
-
name = "flate2"
-
version = "1.0.24"
+
name = "errno"
+
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+
checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
dependencies = [
-
"crc32fast",
-
"miniz_oxide",
+
"errno-dragonfly",
+
"libc",
+
"windows-sys",
]
[[package]]
+
name = "errno-dragonfly"
+
version = "0.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+
dependencies = [
+
"cc",
+
"libc",
+
]
+
+
[[package]]
+
name = "event-listener"
+
version = "2.5.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+
[[package]]
+
name = "fastrand"
+
version = "1.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+
dependencies = [
+
"instant",
+
]
+
+
[[package]]
+
name = "fnv"
+
version = "1.0.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+
[[package]]
name = "form_urlencoded"
-
version = "1.1.0"
+
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+
checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
dependencies = [
"percent-encoding",
]
[[package]]
+
name = "futures-core"
+
version = "0.3.28"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+
[[package]]
+
name = "futures-io"
+
version = "0.3.28"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+
[[package]]
+
name = "futures-lite"
+
version = "1.13.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+
dependencies = [
+
"fastrand",
+
"futures-core",
+
"futures-io",
+
"memchr",
+
"parking",
+
"pin-project-lite",
+
"waker-fn",
+
]
+
+
[[package]]
name = "generic-array"
-
version = "0.14.6"
+
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
]
[[package]]
-
name = "hermit-abi"
-
version = "0.1.19"
+
name = "getrandom"
+
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
+
"cfg-if",
"libc",
+
"wasi",
]
[[package]]
+
name = "hermit-abi"
+
version = "0.3.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+
[[package]]
+
name = "http"
+
version = "0.2.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+
dependencies = [
+
"bytes",
+
"fnv",
+
"itoa",
+
]
+
+
[[package]]
+
name = "humantime"
+
version = "2.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+
[[package]]
name = "idna"
-
version = "0.3.0"
+
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+
checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
dependencies = [
"unicode-bidi",
"unicode-normalization",
···
]
[[package]]
-
name = "itoa"
-
version = "1.0.3"
+
name = "io-lifetimes"
+
version = "1.0.11"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+
dependencies = [
+
"hermit-abi",
+
"libc",
+
"windows-sys",
+
]
+
+
[[package]]
+
name = "is-terminal"
+
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
+
checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
+
dependencies = [
+
"hermit-abi",
+
"rustix 0.38.2",
+
"windows-sys",
+
]
[[package]]
-
name = "js-sys"
-
version = "0.3.59"
+
name = "isahc"
+
version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
+
checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
dependencies = [
-
"wasm-bindgen",
+
"async-channel",
+
"castaway",
+
"crossbeam-utils",
+
"curl",
+
"curl-sys",
+
"event-listener",
+
"futures-lite",
+
"http",
+
"log",
+
"once_cell",
+
"polling",
+
"slab",
+
"sluice",
+
"tracing",
+
"tracing-futures",
+
"url",
+
"waker-fn",
]
[[package]]
+
name = "itoa"
+
version = "1.0.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+
+
[[package]]
name = "libc"
-
version = "0.2.132"
+
version = "0.2.147"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
+
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
-
name = "log"
-
version = "0.4.17"
+
name = "libz-sys"
+
version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+
checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db"
dependencies = [
-
"cfg-if",
+
"cc",
+
"libc",
+
"pkg-config",
+
"vcpkg",
]
[[package]]
+
name = "linux-raw-sys"
+
version = "0.3.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+
[[package]]
+
name = "linux-raw-sys"
+
version = "0.4.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+
+
[[package]]
+
name = "log"
+
version = "0.4.19"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+
+
[[package]]
+
name = "memchr"
+
version = "2.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+
[[package]]
name = "memoffset"
-
version = "0.6.5"
+
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+
checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
dependencies = [
"autocfg",
]
[[package]]
-
name = "miniz_oxide"
-
version = "0.5.3"
+
name = "num_cpus"
+
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
+
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
-
"adler",
+
"hermit-abi",
+
"libc",
]
[[package]]
-
name = "num_cpus"
-
version = "1.13.1"
+
name = "once_cell"
+
version = "1.18.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+
[[package]]
+
name = "openssl-probe"
+
version = "0.1.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+
[[package]]
+
name = "openssl-sys"
+
version = "0.9.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+
checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
dependencies = [
-
"hermit-abi",
+
"cc",
"libc",
+
"pkg-config",
+
"vcpkg",
]
[[package]]
-
name = "once_cell"
-
version = "1.13.1"
+
name = "parking"
+
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e"
+
checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
[[package]]
name = "percent-encoding"
-
version = "2.2.0"
+
version = "2.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+
[[package]]
+
name = "pin-project"
+
version = "1.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842"
+
dependencies = [
+
"pin-project-internal",
+
]
+
+
[[package]]
+
name = "pin-project-internal"
+
version = "1.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c"
+
dependencies = [
+
"proc-macro2",
+
"quote",
+
"syn",
+
]
+
+
[[package]]
+
name = "pin-project-lite"
+
version = "0.2.10"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+
+
[[package]]
+
name = "pkg-config"
+
version = "0.3.27"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+
[[package]]
+
name = "polling"
+
version = "2.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+
dependencies = [
+
"autocfg",
+
"bitflags 1.3.2",
+
"cfg-if",
+
"concurrent-queue",
+
"libc",
+
"log",
+
"pin-project-lite",
+
"windows-sys",
+
]
+
+
[[package]]
+
name = "ppv-lite86"
+
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "prefetch-npm-deps"
version = "0.1.0"
dependencies = [
"anyhow",
+
"backoff",
"base64",
"digest",
+
"env_logger",
+
"isahc",
"rayon",
"serde",
"serde_json",
"sha1",
"sha2",
"tempfile",
-
"ureq",
"url",
"walkdir",
]
[[package]]
name = "proc-macro2"
-
version = "1.0.43"
+
version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab"
+
checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-
version = "1.0.21"
+
version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+
checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
dependencies = [
"proc-macro2",
]
[[package]]
+
name = "rand"
+
version = "0.8.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+
dependencies = [
+
"libc",
+
"rand_chacha",
+
"rand_core",
+
]
+
+
[[package]]
+
name = "rand_chacha"
+
version = "0.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+
dependencies = [
+
"ppv-lite86",
+
"rand_core",
+
]
+
+
[[package]]
+
name = "rand_core"
+
version = "0.6.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+
dependencies = [
+
"getrandom",
+
]
+
+
[[package]]
name = "rayon"
-
version = "1.5.3"
+
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+
checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
dependencies = [
-
"autocfg",
-
"crossbeam-deque",
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
-
version = "1.9.3"
+
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+
checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
···
[[package]]
name = "redox_syscall"
-
version = "0.2.16"
+
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
dependencies = [
-
"bitflags",
+
"bitflags 1.3.2",
]
[[package]]
-
name = "remove_dir_all"
-
version = "0.5.3"
+
name = "regex"
+
version = "1.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+
checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
dependencies = [
-
"winapi",
+
"aho-corasick",
+
"memchr",
+
"regex-syntax",
]
[[package]]
-
name = "ring"
-
version = "0.16.20"
+
name = "regex-syntax"
+
version = "0.7.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+
+
[[package]]
+
name = "rustix"
+
version = "0.37.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+
checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c"
dependencies = [
-
"cc",
+
"bitflags 1.3.2",
+
"errno",
+
"io-lifetimes",
"libc",
-
"once_cell",
-
"spin",
-
"untrusted",
-
"web-sys",
-
"winapi",
+
"linux-raw-sys 0.3.8",
+
"windows-sys",
]
[[package]]
-
name = "rustls"
-
version = "0.20.6"
+
name = "rustix"
+
version = "0.38.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033"
+
checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4"
dependencies = [
-
"log",
-
"ring",
-
"sct",
-
"webpki",
+
"bitflags 2.3.3",
+
"errno",
+
"libc",
+
"linux-raw-sys 0.4.3",
+
"windows-sys",
]
[[package]]
name = "ryu"
-
version = "1.0.11"
+
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+
checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
[[package]]
name = "same-file"
···
]
[[package]]
+
name = "schannel"
+
version = "0.1.22"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+
dependencies = [
+
"windows-sys",
+
]
+
+
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
-
name = "sct"
-
version = "0.7.0"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-
dependencies = [
-
"ring",
-
"untrusted",
-
]
-
-
[[package]]
name = "serde"
-
version = "1.0.145"
+
version = "1.0.166"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
+
checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-
version = "1.0.145"
+
version = "1.0.166"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
+
checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
dependencies = [
"proc-macro2",
"quote",
···
[[package]]
name = "serde_json"
-
version = "1.0.85"
+
version = "1.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44"
+
checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
dependencies = [
"itoa",
"ryu",
···
[[package]]
name = "sha2"
-
version = "0.10.6"
+
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+
checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
dependencies = [
"cfg-if",
"cpufeatures",
···
]
[[package]]
-
name = "spin"
-
version = "0.5.2"
+
name = "slab"
+
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+
dependencies = [
+
"autocfg",
+
]
+
+
[[package]]
+
name = "sluice"
+
version = "0.5.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+
dependencies = [
+
"async-channel",
+
"futures-core",
+
"futures-io",
+
]
+
+
[[package]]
+
name = "socket2"
+
version = "0.4.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+
dependencies = [
+
"libc",
+
"winapi",
+
]
[[package]]
name = "syn"
-
version = "1.0.99"
+
version = "2.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
+
checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
dependencies = [
"proc-macro2",
"quote",
···
[[package]]
name = "tempfile"
-
version = "3.3.0"
+
version = "3.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+
checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
dependencies = [
+
"autocfg",
"cfg-if",
"fastrand",
-
"libc",
"redox_syscall",
-
"remove_dir_all",
-
"winapi",
+
"rustix 0.37.22",
+
"windows-sys",
+
]
+
+
[[package]]
+
name = "termcolor"
+
version = "1.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+
dependencies = [
+
"winapi-util",
]
[[package]]
···
[[package]]
name = "tinyvec_macros"
-
version = "0.1.0"
+
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
-
name = "typenum"
-
version = "1.15.0"
+
name = "tracing"
+
version = "0.1.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+
dependencies = [
+
"cfg-if",
+
"log",
+
"pin-project-lite",
+
"tracing-attributes",
+
"tracing-core",
+
]
[[package]]
-
name = "unicode-bidi"
-
version = "0.3.8"
+
name = "tracing-attributes"
+
version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+
dependencies = [
+
"proc-macro2",
+
"quote",
+
"syn",
+
]
[[package]]
-
name = "unicode-ident"
-
version = "1.0.3"
+
name = "tracing-core"
+
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
+
checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+
dependencies = [
+
"once_cell",
+
]
[[package]]
-
name = "unicode-normalization"
-
version = "0.1.21"
+
name = "tracing-futures"
+
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+
checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
-
"tinyvec",
+
"pin-project",
+
"tracing",
]
[[package]]
-
name = "untrusted"
-
version = "0.7.1"
+
name = "typenum"
+
version = "1.16.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+
+
[[package]]
+
name = "unicode-bidi"
+
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]]
-
name = "ureq"
-
version = "2.5.0"
+
name = "unicode-ident"
+
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b97acb4c28a254fd7a4aeec976c46a7fa404eac4d7c134b30c75144846d7cb8f"
+
checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+
+
[[package]]
+
name = "unicode-normalization"
+
version = "0.1.22"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
dependencies = [
-
"base64",
-
"chunked_transfer",
-
"flate2",
-
"log",
-
"once_cell",
-
"rustls",
-
"url",
-
"webpki",
-
"webpki-roots",
+
"tinyvec",
]
[[package]]
name = "url"
-
version = "2.3.1"
+
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+
checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
dependencies = [
"form_urlencoded",
"idna",
···
]
[[package]]
+
name = "vcpkg"
+
version = "0.2.15"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
+
name = "waker-fn"
+
version = "1.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+
+
[[package]]
name = "walkdir"
-
version = "2.3.2"
+
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+
checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
dependencies = [
"same-file",
-
"winapi",
"winapi-util",
]
[[package]]
-
name = "wasm-bindgen"
-
version = "0.2.82"
+
name = "wasi"
+
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
-
dependencies = [
-
"cfg-if",
-
"wasm-bindgen-macro",
-
]
+
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
-
name = "wasm-bindgen-backend"
-
version = "0.2.82"
+
name = "winapi"
+
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
-
"bumpalo",
-
"log",
-
"once_cell",
-
"proc-macro2",
-
"quote",
-
"syn",
-
"wasm-bindgen-shared",
+
"winapi-i686-pc-windows-gnu",
+
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
-
name = "wasm-bindgen-macro"
-
version = "0.2.82"
+
name = "winapi-i686-pc-windows-gnu"
+
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
-
dependencies = [
-
"quote",
-
"wasm-bindgen-macro-support",
-
]
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
-
name = "wasm-bindgen-macro-support"
-
version = "0.2.82"
+
name = "winapi-util"
+
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
+
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
-
"proc-macro2",
-
"quote",
-
"syn",
-
"wasm-bindgen-backend",
-
"wasm-bindgen-shared",
+
"winapi",
]
[[package]]
-
name = "wasm-bindgen-shared"
-
version = "0.2.82"
+
name = "winapi-x86_64-pc-windows-gnu"
+
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
-
name = "web-sys"
-
version = "0.3.59"
+
name = "windows-sys"
+
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1"
+
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
-
"js-sys",
-
"wasm-bindgen",
+
"windows-targets",
]
[[package]]
-
name = "webpki"
-
version = "0.22.0"
+
name = "windows-targets"
+
version = "0.48.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+
checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
dependencies = [
-
"ring",
-
"untrusted",
+
"windows_aarch64_gnullvm",
+
"windows_aarch64_msvc",
+
"windows_i686_gnu",
+
"windows_i686_msvc",
+
"windows_x86_64_gnu",
+
"windows_x86_64_gnullvm",
+
"windows_x86_64_msvc",
]
[[package]]
-
name = "webpki-roots"
-
version = "0.22.4"
+
name = "windows_aarch64_gnullvm"
+
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf"
-
dependencies = [
-
"webpki",
-
]
+
checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
[[package]]
-
name = "winapi"
-
version = "0.3.9"
+
name = "windows_aarch64_msvc"
+
version = "0.48.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+
[[package]]
+
name = "windows_i686_gnu"
+
version = "0.48.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+
[[package]]
+
name = "windows_i686_msvc"
+
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-
dependencies = [
-
"winapi-i686-pc-windows-gnu",
-
"winapi-x86_64-pc-windows-gnu",
-
]
+
checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
[[package]]
-
name = "winapi-i686-pc-windows-gnu"
-
version = "0.4.0"
+
name = "windows_x86_64_gnu"
+
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
[[package]]
-
name = "winapi-util"
-
version = "0.1.5"
+
name = "windows_x86_64_gnullvm"
+
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-
dependencies = [
-
"winapi",
-
]
+
checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
[[package]]
-
name = "winapi-x86_64-pc-windows-gnu"
-
version = "0.4.0"
+
name = "windows_x86_64_msvc"
+
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+13 -11
pkgs/build-support/node/fetch-npm-deps/Cargo.toml
···
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-
anyhow = "1.0.65"
-
base64 = "0.13.0"
-
digest = "0.10.5"
-
rayon = "1.5.3"
-
serde = { version = "1.0.145", features = ["derive"] }
-
serde_json = "1.0.85"
+
anyhow = "1.0.71"
+
backoff = "0.4.0"
+
base64 = "0.21.2"
+
digest = "0.10.7"
+
env_logger = "0.10.0"
+
isahc = { version = "1.7.2", default_features = false }
+
rayon = "1.7.0"
+
serde = { version = "1.0.164", features = ["derive"] }
+
serde_json = "1.0.99"
sha1 = "0.10.5"
-
sha2 = "0.10.6"
-
tempfile = "3.3.0"
-
ureq = { version = "2.5.0" }
-
url = { version = "2.3.1", features = ["serde"] }
-
walkdir = "2.3.2"
+
sha2 = "0.10.7"
+
tempfile = "3.6.0"
+
url = { version = "2.4.0", features = ["serde"] }
+
walkdir = "2.3.3"
+9 -3
pkgs/build-support/node/fetch-npm-deps/default.nix
···
-
{ lib, stdenvNoCC, rustPlatform, makeWrapper, Security, gnutar, gzip, nix, testers, fetchurl, prefetch-npm-deps, fetchNpmDeps }:
+
{ lib, stdenvNoCC, rustPlatform, makeWrapper, pkg-config, curl, gnutar, gzip, nix, testers, fetchurl, cacert, prefetch-npm-deps, fetchNpmDeps }:
{
prefetch-npm-deps = rustPlatform.buildRustPackage {
···
cargoLock.lockFile = ./Cargo.lock;
-
nativeBuildInputs = [ makeWrapper ];
-
buildInputs = lib.optional stdenvNoCC.isDarwin Security;
+
nativeBuildInputs = [ makeWrapper pkg-config ];
+
buildInputs = [ curl ];
postInstall = ''
wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${lib.makeBinPath [ gnutar gzip nix ]}
···
'';
dontInstall = true;
+
+
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+
+
SSL_CERT_FILE = if (hash_.outputHash == "" || hash_.outputHash == lib.fakeSha256 || hash_.outputHash == lib.fakeSha512 || hash_.outputHash == lib.fakeHash)
+
then "${cacert}/etc/ssl/certs/ca-bundle.crt"
+
else "/no-cert-file.crt";
outputHashMode = "recursive";
} // hash_ // forceGitDeps_);
+3 -2
pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
···
+
use base64::prelude::{Engine, BASE64_STANDARD};
use digest::{Digest, Update};
use serde::{Deserialize, Serialize};
use sha1::Sha1;
···
let (algo, hash, integrity) = if let Some(integrity) = integrity {
let (algo, hash) = integrity.split_once('-').unwrap();
-
(algo.to_string(), base64::decode(hash)?, integrity)
+
(algo.to_string(), BASE64_STANDARD.decode(hash)?, integrity)
} else {
let hash = Sha512::new().chain(data).finalize();
(
String::from("sha512"),
hash.to_vec(),
-
format!("sha512-{}", base64::encode(hash)),
+
format!("sha512-{}", BASE64_STANDARD.encode(hash)),
)
};
+15
pkgs/build-support/node/fetch-npm-deps/src/main.rs
···
mod cacache;
mod parse;
+
mod util;
fn cache_map_path() -> Option<PathBuf> {
env::var_os("CACHE_MAP_PATH").map(PathBuf::from)
···
}
fn main() -> anyhow::Result<()> {
+
env_logger::init();
+
let args = env::args().collect::<Vec<_>>();
if args.len() < 2 {
···
println!("Prefetches npm dependencies for usage by fetchNpmDeps.");
process::exit(1);
+
}
+
+
if let Ok(jobs) = env::var("NIX_BUILD_CORES") {
+
if !jobs.is_empty() {
+
rayon::ThreadPoolBuilder::new()
+
.num_threads(
+
jobs.parse()
+
.expect("NIX_BUILD_CORES must be a whole number"),
+
)
+
.build_global()
+
.unwrap();
+
}
}
if args[1] == "--fixup-lockfile" {
+6 -33
pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
···
use rayon::prelude::*;
use serde_json::{Map, Value};
use std::{
-
fs, io,
+
fs,
+
io::{self, Read},
process::{Command, Stdio},
-
thread,
-
time::Duration,
};
use tempfile::{tempdir, TempDir};
-
use ureq::{Error, ErrorKind, Response};
use url::Url;
+
+
use crate::util;
pub mod lock;
···
let specifics = match get_hosted_git_url(&resolved)? {
Some(hosted) => {
-
let mut body = get_response(hosted.as_str())?.into_reader();
+
let mut body = util::get_url_with_retry(&hosted)?;
let workdir = tempdir()?;
···
Specifics::Registry { .. } => {
let mut body = Vec::new();
-
get_response(self.url.as_str())?
-
.into_reader()
-
.read_to_end(&mut body)?;
+
util::get_url_with_retry(&self.url)?.read_to_end(&mut body)?;
Ok(body)
}
···
Specifics::Git { .. } => None,
}
}
-
}
-
-
#[allow(clippy::result_large_err)]
-
fn get_response(url: &str) -> Result<Response, Error> {
-
for _ in 0..4 {
-
match ureq::get(url).call() {
-
Err(Error::Status(503 | 429, r)) => {
-
let retry: Option<u64> = r.header("retry-after").and_then(|h| h.parse().ok());
-
let retry = retry.unwrap_or(5);
-
eprintln!("{} for {}, retry in {}", r.status(), r.get_url(), retry);
-
thread::sleep(Duration::from_secs(retry));
-
}
-
Err(Error::Transport(t)) => match t.kind() {
-
ErrorKind::ConnectionFailed | ErrorKind::Dns | ErrorKind::Io => {
-
let retry = 5;
-
eprintln!("{} for {}, retry in {}", t.kind(), url, retry);
-
thread::sleep(Duration::from_secs(retry));
-
}
-
_ => return Err(Error::Transport(t)),
-
},
-
result => return result,
-
};
-
}
-
// Ran out of retries; try one last time and return whatever result we get.
-
ureq::get(url).call()
}
#[allow(clippy::case_sensitive_file_extension_comparisons)]
+45
pkgs/build-support/node/fetch-npm-deps/src/util.rs
···
+
use backoff::{retry, ExponentialBackoff};
+
use isahc::{
+
config::{CaCertificate, Configurable, RedirectPolicy, SslOption},
+
Body, Request, RequestExt,
+
};
+
use std::{env, path::Path};
+
use url::Url;
+
+
pub fn get_url(url: &Url) -> Result<Body, isahc::Error> {
+
let mut request = Request::get(url.as_str()).redirect_policy(RedirectPolicy::Limit(10));
+
+
// Respect SSL_CERT_FILE if environment variable exists
+
if let Ok(ssl_cert_file) = env::var("SSL_CERT_FILE") {
+
if Path::new(&ssl_cert_file).exists() {
+
// When file exists, use it. NIX_SSL_CERT_FILE will still override.
+
request = request.ssl_ca_certificate(CaCertificate::file(ssl_cert_file));
+
} else if env::var("outputHash").is_ok() {
+
// When file does not exist, assume we are downloading in a FOD and
+
// therefore do not need to check certificates, since the output is
+
// already hashed.
+
request = request.ssl_options(SslOption::DANGER_ACCEPT_INVALID_CERTS);
+
}
+
}
+
+
Ok(request.body(())?.send()?.into_body())
+
}
+
+
pub fn get_url_with_retry(url: &Url) -> Result<Body, isahc::Error> {
+
retry(ExponentialBackoff::default(), || {
+
get_url(url).map_err(|err| {
+
if err.is_network() || err.is_timeout() {
+
backoff::Error::transient(err)
+
} else {
+
backoff::Error::permanent(err)
+
}
+
})
+
})
+
.map_err(|backoff_err| match backoff_err {
+
backoff::Error::Permanent(err)
+
| backoff::Error::Transient {
+
err,
+
retry_after: _,
+
} => err,
+
})
+
}
-1
pkgs/desktops/plasma-5/kwin/default.nix
···
, kxmlgui
, plasma-framework
, libqaccessibilityclient
-
, python3
}:
# TODO (ttuegel): investigate qmlplugindump failure
+2 -2
pkgs/development/compilers/edk2/default.nix
···
edk2 = buildStdenv.mkDerivation {
pname = "edk2";
-
version = "202302";
+
version = "202305";
patches = [
# pass targetPrefix as an env var
···
repo = "edk2";
rev = "edk2-stable${edk2.version}";
fetchSubmodules = true;
-
sha256 = "sha256-KZ5bTdaStO2M1hLPx9LsUSMl9NEiZeYMmFiShxCJqJM=";
+
hash = "sha256-htOvV43Hw5K05g0SF3po69HncLyma3BtgpqYSdzRG4s=";
};
nativeBuildInputs = [ pythonEnv ];
+43 -7
pkgs/development/compilers/flutter/default.nix
···
getPatches = dir:
let files = builtins.attrNames (builtins.readDir dir);
in map (f: dir + ("/" + f)) files;
-
mkFlutter = { version, engineVersion, dartVersion, hash, dartHash, patches }:
+
mkFlutter = { version, engineVersion, dartVersion, flutterHash, dartHash, patches }:
let
args = {
inherit version engineVersion patches;
···
url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
sha256 = dartHash.aarch64-linux;
};
+
"${dartVersion}-x86_64-darwin" = fetchzip {
+
url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
+
sha256 = dartHash.x86_64-darwin;
+
};
+
"${dartVersion}-aarch64-darwin" = fetchzip {
+
url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
+
sha256 = dartHash.aarch64-darwin;
+
};
};
};
-
src = fetchzip {
-
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
-
sha256 = hash;
-
};
+
src = {
+
x86_64-linux = fetchzip {
+
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
+
sha256 = flutterHash.x86_64-linux;
+
};
+
aarch64-linux = fetchzip {
+
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
+
sha256 = flutterHash.aarch64-linux;
+
};
+
x86_64-darwin = fetchzip {
+
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_${version}-stable.zip";
+
sha256 = flutterHash.x86_64-darwin;
+
};
+
aarch64-darwin = fetchzip {
+
url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_arm64_${version}-stable.zip";
+
sha256 = flutterHash.aarch64-darwin;
+
};
+
}.${stdenv.hostPlatform.system};
};
in
(mkCustomFlutter args).overrideAttrs (prev: next: {
···
version = "3.10.5";
engineVersion = "45f6e009110df4f34ec2cf99f63cf73b71b7a420";
dartVersion = "3.0.5";
-
hash = "sha256-lLppUQzu+fl81TMYSPD+HA83BqeIg7bXpURyo49NPwI=";
dartHash = {
x86_64-linux = "sha256-UVVwPFk0qsKNR4JZMOGSGh1T482MN/8Xp4MZ3SA3C28=";
aarch64-linux = "sha256-phzaFfrv7qbZOOhPq92q39R6mr5vFeBqEmYDU7e7lZQ=";
+
x86_64-darwin = "sha256-4gJ659bNzs2lfI1LRwFACgu/ttkj+3xIrqLijju+CaI=";
+
aarch64-darwin = "sha256-RJt+muq5IrcAhVLYEgdbVygcY1oB7tnVCN+iqktC+6c=";
+
};
+
flutterHash = rec {
+
x86_64-linux = "sha256-lLppUQzu+fl81TMYSPD+HA83BqeIg7bXpURyo49NPwI=";
+
aarch64-linux = x86_64-linux;
+
x86_64-darwin = "sha256-1ZC5aCoGVBCeTSsu/ZEl1v53lLnzulx8Ya6YXvo4yIY=";
+
aarch64-darwin = "sha256-TCMempLjO47IbP5MAZVHlXXvNaURGo+EbaL0K8e27wU=";
};
patches = flutter3Patches;
};
···
version = "3.7.12";
engineVersion = "1a65d409c7a1438a34d21b60bf30a6fd5db59314";
dartVersion = "2.19.6";
-
hash = "sha256-5ExDBQXIpoZ5NwS66seY3m9/V8xDiyq/RdzldAyHdEE=";
dartHash = {
x86_64-linux = "sha256-4ezRuwhQHVCxZg5WbzU/tBUDvZVpfCo6coDE4K0UzXo=";
aarch64-linux = "sha256-pYmClIqOo0sRPOkrcF4xQbo0mHlrr1TkhT1fnNyYNck=";
+
x86_64-darwin = "sha256-tuIQhIOX2ub0u99CW/l7nCya9YVNokCZNgbVFqO4ils=";
+
aarch64-darwin = "sha256-Oe8/0ygDN3xf5/2I3N/OBzF0bps7Mg0K2zJKj+E9Nak=";
+
};
+
flutterHash = rec {
+
x86_64-linux = "sha256-5ExDBQXIpoZ5NwS66seY3m9/V8xDiyq/RdzldAyHdEE=";
+
aarch64-linux = x86_64-linux;
+
x86_64-darwin = "sha256-cJF8KB9fNb3hTZShDAPsMmr1neRdIMLvIl/m2tpzwQs=";
+
aarch64-darwin = "sha256-yetEE65UP2Wh9ocx7nClQjYLHO6lIbZPay1+I2tDSM4=";
};
patches = flutter3Patches;
};
+71 -9
pkgs/development/compilers/flutter/engine-artifacts/default.nix
···
, stdenv
, hostPlatform
, engineVersion
+
, fetchurl
, fetchzip
, autoPatchelfHook
-
, gtk3
+
, unzip
}:
let
···
};
};
+
darwin = {
+
"arm64" = {
+
base = [
+
{ archive = "artifacts.zip"; }
+
{ archive = "font-subset.zip"; }
+
];
+
variants = lib.genAttrs [ "profile" "release" ]
+
(variant: [
+
{ archive = "artifacts.zip"; }
+
]);
+
};
+
"x64" = {
+
base = [
+
{ archive = "FlutterEmbedder.framework.zip"; }
+
{ archive = "FlutterMacOS.framework.zip"; }
+
{ archive = "artifacts.zip"; }
+
{ archive = "font-subset.zip"; }
+
{ archive = "gen_snapshot.zip"; }
+
];
+
variants.profile = [
+
{ archive = "FlutterMacOS.framework.zip"; }
+
{ archive = "artifacts.zip"; }
+
{ archive = "gen_snapshot.zip"; }
+
];
+
variants.release = [
+
{ archive = "FlutterMacOS.dSYM.zip"; }
+
{ archive = "FlutterMacOS.framework.zip"; }
+
{ archive = "artifacts.zip"; }
+
{ archive = "gen_snapshot.zip"; }
+
];
+
};
+
};
+
+
ios =
+
(lib.genAttrs
+
[ "" ]
+
(arch:
+
{
+
base = [
+
{ archive = "artifacts.zip"; }
+
];
+
variants.profile = [
+
{ archive = "artifacts.zip"; }
+
];
+
variants.release = [
+
{ archive = "artifacts.zip"; }
+
{ archive = "Flutter.dSYM.zip"; }
+
];
+
}));
+
linux = lib.genAttrs
[ "arm64" "x64" ]
(arch:
···
let
artifactDirectory = if platform == null then null else "${platform}${lib.optionalString (variant != null) "-${variant}"}";
archiveBasename = lib.removeSuffix ".${(lib.last (lib.splitString "." archive))}" archive;
+
overrideUnpackCmd = builtins.elem archive [ "FlutterEmbedder.framework.zip" "FlutterMacOS.framework.zip" ];
in
stdenv.mkDerivation ({
pname = "flutter-artifact${lib.optionalString (platform != null) "-${artifactDirectory}"}-${archiveBasename}";
version = engineVersion;
-
src = fetchzip {
-
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
-
stripRoot = false;
-
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
-
};
+
nativeBuildInputs = [ unzip ]
+
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
-
nativeBuildInputs = [ autoPatchelfHook ];
+
src =
+
if overrideUnpackCmd then
+
(fetchurl {
+
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
+
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
+
}) else
+
(fetchzip {
+
url = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}${lib.optionalString (platform != null) "/${artifactDirectory}"}/${archive}";
+
stripRoot = false;
+
hash = (if artifactDirectory == null then hashes else hashes.${artifactDirectory}).${archive};
+
});
+
+
setSourceRoot = if overrideUnpackCmd then "sourceRoot=`pwd`" else null;
+
unpackCmd = if overrideUnpackCmd then "unzip -o $src -d $out" else null;
installPhase =
let
···
(architecture: variants: {
base = map
(args: mkArtifactDerivation ({
-
platform = "${os}-${architecture}";
+
platform = "${os}${lib.optionalString (architecture != "") "-${architecture}"}";
} // args))
variants.base;
variants = builtins.mapAttrs
(variant: variantArtifacts: map
(args: mkArtifactDerivation ({
-
platform = "${os}-${architecture}";
+
platform = "${os}${lib.optionalString (architecture != "") "-${architecture}"}";
inherit variant;
} // args))
variantArtifacts)
+88
pkgs/development/compilers/flutter/engine-artifacts/hashes.nix
···
android-arm-profile = {
"artifacts.zip" = "sha256-MErLoGJWXg4yJ6b6c5bqP8Nat6O7eYSfM71mMNAAQf4=";
"linux-x64.zip" = "sha256-0TZQ05HR7NRqHzeoHZ/sOrjKiSvCpMUH85YXXzV4URg=";
+
"darwin-x64.zip" = "sha256-gOmxGurYyuuGxPnzK+2O1s7d7x514R9MfincibxVTCI=";
};
android-arm-release = {
"artifacts.zip" = "sha256-hU4S4FOqUGokByZ47nzOqQ4A9QFshruqrpJvJUBHUho=";
"linux-x64.zip" = "sha256-AqNlqjOht+c2sdW5ReoF66ZJWJl1W4vGKbQ3YyderRY=";
+
"darwin-x64.zip" = "sha256-UiJNbIvjYvIX2oFNCz+TurUdhHS8vcl9X6WEkEs5hvU=";
};
android-arm64 = {
"artifacts.zip" = "sha256-ApNg3Uu9gyGNsx7sdpTCz1yADVAI5ZuNHgvgiuH9IpQ=";
···
android-arm64-profile = {
"artifacts.zip" = "sha256-D/8+WKPIkOaV3PwkCHiJROFlokm4lWWmtPQb93Yqwr0=";
"linux-x64.zip" = "sha256-S0RHLov6/C22VvGdvZV87Ybaxun8YBrw1gTgNklRcM0=";
+
"darwin-x64.zip" = "sha256-AWivGn0TCVEW+N8g9bpEP1JuKWhrccb+ANQgyLjBjfw=";
};
android-arm64-release = {
"artifacts.zip" = "sha256-OoYqHtwmT+VWJ+G+sMXM5+ux3h1Fnyo9Vj2za9cm5eE=";
"linux-x64.zip" = "sha256-NuXclg1a+Ofw5AWJ1tajpn2jYEZw6DluWxrFVL8rPfg=";
+
"darwin-x64.zip" = "sha256-/j5sVfyllkhsc9mpdbOqlT7VT1H6nD3Y+mYnWXDh0yI=";
};
android-x64 = {
"artifacts.zip" = "sha256-hrBvnzCj/24h5kat96avlgXi6WhMsos5aPlkgxOYo8Q=";
···
android-x64-profile = {
"artifacts.zip" = "sha256-xzSj/2ah9aQoosaNGkSWFP3bMNJqRSFc0+78XEBHwzM=";
"linux-x64.zip" = "sha256-HfBiz1JWlBQ8KEfmf8uDlVzFlDt3+VF2VeY82tsMjHs=";
+
"darwin-x64.zip" = "sha256-J5JJH9GAQaQKahimb09fLC59VchPP15iMHY9bDMfdf8=";
};
android-x64-release = {
"artifacts.zip" = "sha256-TcfMeA+8Uf9yRrYdEIsjip0cKmSUm2Ow1tkoE9803XY=";
"linux-x64.zip" = "sha256-D6efb6pj9+xjPnJu3O+ZCmwfatBzasuFZEFRntAiU9U=";
+
"darwin-x64.zip" = "sha256-hDftGgKqW6tzH/+jFOYfzxssbS01XtiWEeycJr3QSoc=";
};
android-x86 = {
"artifacts.zip" = "sha256-nN66nIrcbJHq2S4oIT5e2NCv7mS5Kw+HBv3ReHs+d3Y=";
···
android-x86-jit-release = {
"artifacts.zip" = "sha256-A8F6K78Ykp1rMsUmjD7B9nFFPAubZnqAqgWSzbNCRwk=";
};
+
darwin-arm64 = {
+
"artifacts.zip" = "sha256-lfkEToKFBBOee7KgOl1z/ZeMQwEBWkmAYb2Hbfk8dfg=";
+
"font-subset.zip" = "sha256-W7GnLvCobED7uyhpURF4T4SL4yZIQmE2JFQVQIxl0NI=";
+
};
+
darwin-arm64-profile = {
+
"artifacts.zip" = "sha256-DfYS+FEqjtq02jFRBqVR3SVWe4LAoPa5MMKWCbvF7mI=";
+
};
+
darwin-arm64-release = {
+
"artifacts.zip" = "sha256-gG/OcCJE3XPO6T8bltMtPxdlYX5HQ/4qYsdHe0OdDaE=";
+
};
+
darwin-x64 = {
+
"FlutterEmbedder.framework.zip" = "sha256-G84GGK6gtR+CYu9S/GhdNTL4KWqgFBp8QdvWOq+IZlk=";
+
"FlutterMacOS.framework.zip" = "sha256-1/txBoXDIs7Gn5zsZ4jYQXK73+iaZV4sRdYKqEBUTxU=";
+
"artifacts.zip" = "sha256-H7Moy6E1eRrOXYYAIgiJHOmstyy3YaCnu8O3IPr9BK8=";
+
"font-subset.zip" = "sha256-VSkG3zZw/4DDInwxPaMXT2B1LXIb0Ejkb2xf5SVrwW4=";
+
"gen_snapshot.zip" = "sha256-Pknv1fUcXGbWzt6So0DgWnvL4b43k51KMWiX1YXd2As=";
+
};
+
darwin-x64-profile = {
+
"FlutterMacOS.framework.zip" = "sha256-3umN1HNX4UA00EFsBnWS0X04QRKlcCnChDYd9L6x1L4=";
+
"artifacts.zip" = "sha256-8Aj2+nTKKeVLEYN+swVlVqRB/3fVSwrb3i1g1JUDsNY=";
+
"gen_snapshot.zip" = "sha256-bi3RqSdOQODpPmY+eBUQPiNeZ/bECoOUx/pOADpTZiA=";
+
};
+
darwin-x64-release = {
+
"FlutterMacOS.dSYM.zip" = "sha256-LfDQuCcBXEV3Jao/sbfIvjn1d2ZfZrWgzNzFE1zE3Rw=";
+
"FlutterMacOS.framework.zip" = "sha256-2xuPPJifdu/kvvtR0viMvbTOXfv8ndtNAhTmef8863o=";
+
"artifacts.zip" = "sha256-3p41zRjvWYCl/Kk/7/0MjV2FS10XEtyX1hYmxTHT8lU=";
+
"gen_snapshot.zip" = "sha256-ExXwj1QO1XQznZ49rW08tibA5BaURShE6pUYDokZfpE=";
+
};
"flutter_patched_sdk.zip" = "sha256-Pvsjttm5OwpJ/pW4UQXvvEiJYCM5CoZZfVXz5jef37k=";
"flutter_patched_sdk_product.zip" = "sha256-fhj2uUOrLwrzHrM6RNVpPNize5Qu6mLQDcSzLT2TbRA=";
+
ios = {
+
"artifacts.zip" = "sha256-yqJ4+lNsedRFbe11dBK4KGMX5+Nilj1V0i2E94n7q+0=";
+
};
+
ios-profile = {
+
"artifacts.zip" = "sha256-ZguLM1QoYyg5dXPw3Fl1zSLdbirShV3xZuxl1CfEf50=";
+
};
+
ios-release = {
+
"Flutter.dSYM.zip" = "sha256-Y57wt1y4NIdbRMM1r/d1Dv8bekwO9/9gpLkTEcw7Hfs=";
+
"artifacts.zip" = "sha256-Sm4Pkm1mWu3k5S+aws+kRpth+o3yTBYITg23LhnSViE=";
+
};
linux-arm64 = {
"artifacts.zip" = "sha256-xyKVaEFb5gVkVrPzDrOql5BmXGO0FnCSeXOoQ10ZFrw=";
"font-subset.zip" = "sha256-Ulwb6q2SzB4suMJhAM3zAwWOzlEImlu9Ha+w5u4QqIU=";
···
android-arm-profile = {
"artifacts.zip" = "sha256-MZK1zaSv9yuZaVDR1dReCM7WRDxKql0yxsPa8WFc1yw=";
"linux-x64.zip" = "sha256-9OlBv2C6Msj73g624TixbstudCTbdIJ6PzPMsbQENy4=";
+
"darwin-x64.zip" = "sha256-lVJ31F7UMaXQym3touJQ2cN8svKBaWJurDTVZPeMzCo=";
};
android-arm-release = {
"artifacts.zip" = "sha256-tjHckwoxQkkKoyTl6+wBKK40mFDmSDvCPNhBHVA+xxw=";
"linux-x64.zip" = "sha256-zE9oYkv4WBcbgEdYfYIcdDXX3tnYfCg+3KA3oA03nYA=";
+
"darwin-x64.zip" = "sha256-mCr29gIn808NF4k8kdC7oLTSU6AXq7I/bJF3BBdJlAo=";
};
android-arm64 = {
"artifacts.zip" = "sha256-8W/JrOGhAzHWpM2Jh9vjdkaB6ODmCItqcmF47GqbNQk=";
···
android-arm64-profile = {
"artifacts.zip" = "sha256-9SGBWp05lxLQTpLuzq8FYSQQOpjo8UL93Pv4YYFD4QE=";
"linux-x64.zip" = "sha256-5nH2AAxupRIhn8gNH+1V+vSP+qqfx5MS97EC4s3QHe8=";
+
"darwin-x64.zip" = "sha256-kkutEwKcj1wKJREbxbx8+DW53WVbizg6zKIFFVujgAM=";
};
android-arm64-release = {
"artifacts.zip" = "sha256-7O7RBfEo6enZtVNsnt4HH0bex8Xpz9mqCvb2LNLbg3Q=";
"linux-x64.zip" = "sha256-loucmX4+0R11L1nzewiMTeRZoB6wLK0WasW5W3rIvYU=";
+
"darwin-x64.zip" = "sha256-0bpNQDfIzQqwQpzThLfOXEEEpH/uCJCRF331d0/pzfs=";
};
android-x64 = {
"artifacts.zip" = "sha256-j7AezbyzH07yOR0/W1ttfCjMHMdOlXLQjAsu/ExqmqA=";
···
android-x64-profile = {
"artifacts.zip" = "sha256-J8cqdcHoj1hpo6zY5R6S9lvkVXp7wvzQlurM7TEUe+k=";
"linux-x64.zip" = "sha256-YuRHctkDjLZVGQr+m5uM+AxYNLkfqycV4UNcAp7JavE=";
+
"darwin-x64.zip" = "sha256-Mw8C279cVbQHTdIsHhIT5HWe52X8XXbkIDpVcEz1tWc=";
};
android-x64-release = {
"artifacts.zip" = "sha256-uhq3fXcxXjF4/YHSkf6V4wToL9jOUKBm3978j/7xI/s=";
"linux-x64.zip" = "sha256-iJfatLW7jVcrfNdVx/QOPiyON5ce0tSNGOBx0TILrKE=";
+
"darwin-x64.zip" = "sha256-3P3QZ+jW3Jl6PJvRY9pBHQdhj8UcsHFAjln8q6UlL+A=";
};
android-x86 = {
"artifacts.zip" = "sha256-/xLacCi65hg1gEahty0btrc+NR/jfebSAIt31qwIlZY=";
···
android-x86-jit-release = {
"artifacts.zip" = "sha256-Ntq0i+sFruDhlyp9VBxBnsNqqGoQeXMeIwfi+BNlr0Q=";
};
+
darwin-arm64 = {
+
"artifacts.zip" = "sha256-A21Tnn4jC5IzdL3c7n6/q9H6uJ/ofvJ+K9W8PPpAoYM=";
+
"font-subset.zip" = "sha256-NhnUOK1Gn4ekKOf5rDoy4HodzhlS8ylf/MN/6l4Dk18=";
+
};
+
darwin-arm64-profile = {
+
"artifacts.zip" = "sha256-aDWrz3bebC6kZRe2LgunsmFhbxJhmP1bsZv5A/SGF2Y=";
+
};
+
darwin-arm64-release = {
+
"artifacts.zip" = "sha256-F44e39KSX8juojFBV/CSvFES+RQW+gHKDWtfnydqiNo=";
+
};
+
darwin-x64 = {
+
"FlutterEmbedder.framework.zip" = "sha256-+S2unNH8cpfqUiPLTwGUUW00DdNYFDN8KM/O1pMdxQs=";
+
"FlutterMacOS.framework.zip" = "sha256-iCGXzxBhJGR6rWcECRg0W5Qv4I6ePo7UrWIqjQK1bWI=";
+
"artifacts.zip" = "sha256-2Ng0rxVDeMCH3kFHS7rhVd6R8oiJqvfsNDp+rzgtA50=";
+
"font-subset.zip" = "sha256-5IyNNLUT27WUCr61LjnMjmAZEv63ZaF+rl/p2XHFlVU=";
+
"gen_snapshot.zip" = "sha256-zPJaXPdvbQGx79c41XdRrBW/+3aV/INaPtO47+hHdxM=";
+
};
+
darwin-x64-profile = {
+
"FlutterMacOS.framework.zip" = "sha256-PV4sTACDGeLLPz+AchxngWrQypmmUVQ48bQlAfH323w=";
+
"artifacts.zip" = "sha256-LBosuXu9mPh5WT0Mmgu9rX5Nuy+iIGN8Xvi7uVAyFhc=";
+
"gen_snapshot.zip" = "sha256-douXVnavzSGBuld3WhwHagBNK6FEU679puM8/fNGz2I=";
+
};
+
darwin-x64-release = {
+
"FlutterMacOS.dSYM.zip" = "sha256-A8kyc1fmsGemgUVhI46yTC6XNkrXdoPYvwXomHoW6kM=";
+
"FlutterMacOS.framework.zip" = "sha256-dZ/MO9J+zanoGfvPaAinnANte92bQOlh697fd/LvGqA=";
+
"artifacts.zip" = "sha256-T/wxPd1LmstfGHr2Fx6cfhRifaGm6CUlig6cBMcOO5g=";
+
"gen_snapshot.zip" = "sha256-qeZxVp6btr/fUQRf7nOhlnSC03+QTcRaggiVOmPxVuo=";
+
};
"flutter_patched_sdk.zip" = "sha256-kRRFCqQGBDimqwMiSn4yRMNRfZHt03YJqsKW47IBIvQ=";
"flutter_patched_sdk_product.zip" = "sha256-BowamIQHPZgfcZbWG7OFrB5GeEwdcA7AdUrF2Y+KIds=";
+
ios = {
+
"artifacts.zip" = "sha256-VoofDPEBUW2jBrXg3Z556uC2UdrD9JCpioZNhX1p/P0=";
+
};
+
ios-profile = {
+
"artifacts.zip" = "sha256-5jDIqk7tWuRxXsAzrjBq9xzQrt/eREmmoEF3zc2xQ5M=";
+
};
+
ios-release = {
+
"Flutter.dSYM.zip" = "sha256-TuDld2LcHshl1mXcuIwfZgWLm1My4RpXUwI2B/QbLRk=";
+
"artifacts.zip" = "sha256-bGuUCKVqNNWWGVccVVKIBmCxTqgu4Q2Kj/Znnl9ZR2Q=";
+
};
linux-arm64 = {
"artifacts.zip" = "sha256-jME3ivE+M+ceAt3aGPSeVwPaW8UhwGQOoL5lmRUqrOU=";
"font-subset.zip" = "sha256-MqavBMXOlx5JX94Oe/8GGuuDNh7A2UkjiOrEhCDW5cc=";
+8 -4
pkgs/development/compilers/flutter/flutter.nix
···
, src
, lib
, stdenv
+
, darwin
, git
, which
}:
···
outputs = [ "out" "cache" ];
buildInputs = [ git ];
+
nativeBuildInputs = [ ]
+
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
preConfigure = ''
if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then
···
# Certain prebuilts should be replaced with Nix-built (or at least Nix-patched) equivalents.
rm -r \
-
bin/cache/dart-sdk \
-
bin/cache/artifacts/engine
+
$FLUTTER_ROOT/bin/cache/dart-sdk \
+
$FLUTTER_ROOT/bin/cache/artifacts/engine
'';
installPhase = ''
···
'';
doInstallCheck = true;
-
nativeInstallCheckInputs = [ which ];
+
nativeInstallCheckInputs = [ which ]
+
++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
installCheckPhase = ''
runHook preInstallCheck
···
'';
homepage = "https://flutter.dev";
license = licenses.bsd3;
-
platforms = [ "x86_64-linux" "aarch64-linux" ];
+
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
maintainers = with maintainers; [ babariviere ericdallo FlafyDev gilice hacker1024 ];
};
};
+11 -2
pkgs/development/compilers/flutter/wrapper.nix
···
{ lib
, stdenv
+
, darwin
, callPackage
, flutter
, supportsLinuxDesktop ? stdenv.hostPlatform.isLinux
-
, supportsAndroid ? stdenv.hostPlatform.isx86_64
+
, supportsAndroid ? (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin)
+
, supportsDarwin ? stdenv.hostPlatform.isDarwin
+
, supportsIOS ? stdenv.hostPlatform.isDarwin
, includedEngineArtifacts ? {
common = [
"flutter_patched_sdk"
···
platform = {
android = lib.optionalAttrs supportsAndroid
((lib.genAttrs [ "arm" "arm64" "x64" ] (architecture: [ "profile" "release" ])) // { x86 = [ "jit-release" ]; });
+
darwin = lib.optionalAttrs supportsDarwin
+
((lib.genAttrs [ "arm64" "x64" ] (architecture: [ "profile" "release" ])));
+
ios = lib.optionalAttrs supportsIOS
+
((lib.genAttrs [ "" ] (architecture: [ "profile" "release" ])));
linux = lib.optionalAttrs supportsLinuxDesktop
(lib.genAttrs ((lib.optional stdenv.hostPlatform.isx86_64 "x64") ++ (lib.optional stdenv.hostPlatform.isAarch64 "arm64"))
(architecture: [ "debug" "profile" "release" ]));
···
in
(callPackage ./sdk-symlink.nix { }) (runCommandLocal "flutter-wrapped"
{
-
nativeBuildInputs = [ makeWrapper ];
+
nativeBuildInputs = [
+
makeWrapper
+
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
passthru = flutter.passthru // {
inherit (flutter) version;
+21 -13
pkgs/development/embedded/stm32/stm32cubemx/default.nix
···
-
{ lib, stdenv, makeDesktopItem, copyDesktopItems, icoutils, fdupes, imagemagick, jdk11, fetchzip }:
+
{ lib, stdenv, makeDesktopItem, icoutils, fdupes, imagemagick, jdk11, fetchzip }:
# TODO: JDK16 causes STM32CubeMX to crash right now, so we fixed the version to JDK11
# This may be fixed in a future version of STM32CubeMX. This issue has been reported to ST:
# https://community.st.com/s/question/0D53W00000jnOzPSAU/stm32cubemx-crashes-on-launch-with-openjdk16
···
stripRoot = false;
};
-
nativeBuildInputs = [ icoutils fdupes imagemagick copyDesktopItems];
-
desktopItems = [
-
(makeDesktopItem {
-
name = "stm32CubeMX";
-
exec = "stm32cubemx";
-
desktopName = "STM32CubeMX";
-
categories = [ "Development" ];
-
comment = "STM32Cube initialization code generator";
-
icon = "stm32cubemx";
-
})
-
];
+
nativeBuildInputs = [ icoutils fdupes imagemagick ];
+
desktopItem = makeDesktopItem {
+
name = "STM32CubeMX";
+
exec = "stm32cubemx";
+
desktopName = "STM32CubeMX";
+
categories = [ "Development" ];
+
icon = "stm32cubemx";
+
comment = meta.description;
+
terminal = false;
+
startupNotify = false;
+
mimeTypes = [
+
"x-scheme-handler/sgnl"
+
"x-scheme-handler/signalcaptcha"
+
];
+
};
buildCommand = ''
-
mkdir -p $out/{bin,opt/STM32CubeMX}
+
mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
+
cp -r $src/MX/. $out/opt/STM32CubeMX/
chmod +rx $out/opt/STM32CubeMX/STM32CubeMX
+
cat << EOF > $out/bin/${pname}
#!${stdenv.shell}
${jdk11}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX
···
$out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
fi
done;
+
+
cp ${desktopItem}/share/applications/*.desktop $out/share/applications
'';
meta = with lib; {
+1 -1
pkgs/development/libraries/kde-frameworks/fetch.sh
···
-
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.107/ -A '*.tar.xz' )
+
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.108/ -A '*.tar.xz' )
+2 -2
pkgs/development/libraries/kde-frameworks/plasma-framework.nix
···
buildInputs = [
kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
kdeclarative kglobalaccel kguiaddons ki18n kiconthemes kio knotifications
-
kwayland kwindowsystem kxmlgui qtdeclarative qtscript qtx11extras kirigami2
+
kwayland kwindowsystem kxmlgui qtdeclarative qtscript qtx11extras
qtquickcontrols2
];
-
propagatedBuildInputs = [ kpackage kservice qtbase ];
+
propagatedBuildInputs = [ kpackage kservice qtbase kirigami2 ];
}
+332 -332
pkgs/development/libraries/kde-frameworks/srcs.nix
···
{
attica = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/attica-5.107.0.tar.xz";
-
sha256 = "1y0kxrr0janlba0pris35kaf31y8xqjksj0f6vpmww63jz53rjzx";
-
name = "attica-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/attica-5.108.0.tar.xz";
+
sha256 = "15didd7llqamp9wbvrynnf9cap2dqmwr51mz0pcjdk0iqs6ym4qq";
+
name = "attica-5.108.0.tar.xz";
};
};
baloo = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/baloo-5.107.0.tar.xz";
-
sha256 = "0i3sfzx9hsypzpw28n913kcrvg4vy1sb8civx86jdggamxslwhz2";
-
name = "baloo-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/baloo-5.108.0.tar.xz";
+
sha256 = "1n65nhr45vl0banbdjxhjf6wk5ypdx06qygqzqjbd9xbv7djj883";
+
name = "baloo-5.108.0.tar.xz";
};
};
bluez-qt = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/bluez-qt-5.107.0.tar.xz";
-
sha256 = "0wffp7vsl9z6kdfgjga5kf7dj48nm5r5nd7whiw4s0g9h63b0aig";
-
name = "bluez-qt-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/bluez-qt-5.108.0.tar.xz";
+
sha256 = "1yf2rbqp9997318ybnd8myvj26pzdkx55j6w86ibvn7hwgb77hhs";
+
name = "bluez-qt-5.108.0.tar.xz";
};
};
breeze-icons = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/breeze-icons-5.107.0.tar.xz";
-
sha256 = "0fhhpy34s05gx8nk7izc9ahdacbcl6yrfcr9q7k6825sngpmzck7";
-
name = "breeze-icons-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/breeze-icons-5.108.0.tar.xz";
+
sha256 = "175g6352lv8gq6sn4pkl91b51njdliryb82x2wdjbvzlc3zhfrcy";
+
name = "breeze-icons-5.108.0.tar.xz";
};
};
extra-cmake-modules = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/extra-cmake-modules-5.107.0.tar.xz";
-
sha256 = "1v9klrfi7m1228zysr1m6r5qrn8h6nkzgai6x40mjshydpasls9r";
-
name = "extra-cmake-modules-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/extra-cmake-modules-5.108.0.tar.xz";
+
sha256 = "0yj4xpzzz5q8140mqkl2s5zabfbks76a3rqfq3cc4d5x3b9an57z";
+
name = "extra-cmake-modules-5.108.0.tar.xz";
};
};
frameworkintegration = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/frameworkintegration-5.107.0.tar.xz";
-
sha256 = "0j5aa4j4v5dix8r80n49ihkp6f0mmgx420h4adq9sb80hsm1c67q";
-
name = "frameworkintegration-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/frameworkintegration-5.108.0.tar.xz";
+
sha256 = "09zba76xihqs2dpwm4gh7p36nj876ssa2gah55vl362wsj7xgf21";
+
name = "frameworkintegration-5.108.0.tar.xz";
};
};
kactivities = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kactivities-5.107.0.tar.xz";
-
sha256 = "0acv2grpq083289am1is012mjp8snsg7i57byw9qnniflwwrbdqr";
-
name = "kactivities-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kactivities-5.108.0.tar.xz";
+
sha256 = "0lqhfml91wh9376xr31ky8fl49yamfzz336bdjzj3i3ygqzyc7lh";
+
name = "kactivities-5.108.0.tar.xz";
};
};
kactivities-stats = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kactivities-stats-5.107.0.tar.xz";
-
sha256 = "1hp1ckmrjhmzx9ll2v974bf7hsccbpf76vlvxc47jl7b5x5l5337";
-
name = "kactivities-stats-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kactivities-stats-5.108.0.tar.xz";
+
sha256 = "03vpangw2zl2577vhcn0w1pp2hv3jgna79b18wv7i13s78v8k6ny";
+
name = "kactivities-stats-5.108.0.tar.xz";
};
};
kapidox = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kapidox-5.107.0.tar.xz";
-
sha256 = "1gxzxpv6lhz0hdkzq4vlv5dv715bfpf3wvdd9a0hm1v75lgl8aap";
-
name = "kapidox-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kapidox-5.108.0.tar.xz";
+
sha256 = "1xpapgzja66lwxagrynns2ycx4cdllld5b3xrxg67si3bjz9p70a";
+
name = "kapidox-5.108.0.tar.xz";
};
};
karchive = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/karchive-5.107.0.tar.xz";
-
sha256 = "0zsay002lsq5a8a9dqg97zzcv75rlbkklyv21qv8za7qk95vk378";
-
name = "karchive-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/karchive-5.108.0.tar.xz";
+
sha256 = "1rbmh0sfrgv7nkmmnf8zyd5x66g9bh6kj9ry2yzivqn73ralk44y";
+
name = "karchive-5.108.0.tar.xz";
};
};
kauth = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kauth-5.107.0.tar.xz";
-
sha256 = "1zwgvf1qhi2ls4lal735xgfgibk0q7h9x84v2s7zymww7fdpzg86";
-
name = "kauth-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kauth-5.108.0.tar.xz";
+
sha256 = "0xn0v1rzjsv1a856zcw9s9qkbfaq184663akc5rrapvvfcrm2vjz";
+
name = "kauth-5.108.0.tar.xz";
};
};
kbookmarks = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kbookmarks-5.107.0.tar.xz";
-
sha256 = "16gd3ijfpkvs5rzvk6bx8ydbz9dx0chv3m3zxxq4khcqbk8gmlah";
-
name = "kbookmarks-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kbookmarks-5.108.0.tar.xz";
+
sha256 = "1547i2x7mrryg4w6ij47f37savmp1jmq8wp2nhiij65cdnla3qbb";
+
name = "kbookmarks-5.108.0.tar.xz";
};
};
kcalendarcore = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcalendarcore-5.107.0.tar.xz";
-
sha256 = "0iswnbl73in465kgwbn9n3rllw82nasc31897nqc9ifcs6x45msl";
-
name = "kcalendarcore-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcalendarcore-5.108.0.tar.xz";
+
sha256 = "1wxlixz7624p7693lwxgdzyi30n9zgs0mgvwldp0q0llzpxqp5yv";
+
name = "kcalendarcore-5.108.0.tar.xz";
};
};
kcmutils = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcmutils-5.107.0.tar.xz";
-
sha256 = "1mahi2zxi3f8m45iynlgwxjz4g5aq0qg68sy7c85h6pvvg6dd626";
-
name = "kcmutils-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcmutils-5.108.0.tar.xz";
+
sha256 = "1zhs84wrd8fkgzxwf793c6yha5nsnid4id8vs4iy7gcyahyajchr";
+
name = "kcmutils-5.108.0.tar.xz";
};
};
kcodecs = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcodecs-5.107.0.tar.xz";
-
sha256 = "088jl5spmwm4ihmpgk17bsmkcjfn2323cypa12zrpcm4q1iqbc07";
-
name = "kcodecs-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcodecs-5.108.0.tar.xz";
+
sha256 = "12vav9ncxcf0vpmfp7wps91ax7azrwaxhqdq8z52vcyl0rvgy341";
+
name = "kcodecs-5.108.0.tar.xz";
};
};
kcompletion = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcompletion-5.107.0.tar.xz";
-
sha256 = "1xa9ckz9vhxb5m81m7hky68b96vfaq071vfhqs7zjaq9s9rn9ash";
-
name = "kcompletion-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcompletion-5.108.0.tar.xz";
+
sha256 = "0fgz30fb6wp2jb7bii5wy6akdzjiqy73w5mnmv0hi15mj2jkpgdq";
+
name = "kcompletion-5.108.0.tar.xz";
};
};
kconfig = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kconfig-5.107.0.tar.xz";
-
sha256 = "04svxr0pckqwx1kkvzsbgcqk5m921x6hps7pk7gn4pi5lnyd95wn";
-
name = "kconfig-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kconfig-5.108.0.tar.xz";
+
sha256 = "0gq30f5yx3razkn12zq7224sivl76jikf7c4xdfc9fw1k54sxbjd";
+
name = "kconfig-5.108.0.tar.xz";
};
};
kconfigwidgets = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kconfigwidgets-5.107.0.tar.xz";
-
sha256 = "0s608laxgdkzn33p0bb22yaa2w3brapbw4dcpnylc6rimdw8avgi";
-
name = "kconfigwidgets-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kconfigwidgets-5.108.0.tar.xz";
+
sha256 = "1raz1bxra0dvcwwzvhfmz1y0hvfrffpdymd116xyi5lnavyzdp46";
+
name = "kconfigwidgets-5.108.0.tar.xz";
};
};
kcontacts = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcontacts-5.107.0.tar.xz";
-
sha256 = "17dhbzgizqv5g3qf4wsaf8jgragjfmcrly4c761x5l3c7vwwrjiv";
-
name = "kcontacts-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcontacts-5.108.0.tar.xz";
+
sha256 = "15x6f05ngs3nmxpdi11bi4k4zpjnvx5cy3yxbdklls3f2wpq6jd4";
+
name = "kcontacts-5.108.0.tar.xz";
};
};
kcoreaddons = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcoreaddons-5.107.0.tar.xz";
-
sha256 = "115g3qmfpirvvqj0a2jyi9lgpahw19wc9351mfc2gasj914fxfk4";
-
name = "kcoreaddons-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcoreaddons-5.108.0.tar.xz";
+
sha256 = "0l8f59ijmcjvrpgysvrw2nmh3jqlzhlqxmgrvybipxpywams3cy8";
+
name = "kcoreaddons-5.108.0.tar.xz";
};
};
kcrash = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kcrash-5.107.0.tar.xz";
-
sha256 = "15gngmgridnxzz04f4mrw9c53l95qi9z3sj9wprlx9d0kgacs5sl";
-
name = "kcrash-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kcrash-5.108.0.tar.xz";
+
sha256 = "1990yfssxcmbpbq9pz2nv07fpnjih4q9ql2bz1nfnanrm858pi9y";
+
name = "kcrash-5.108.0.tar.xz";
};
};
kdav = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kdav-5.107.0.tar.xz";
-
sha256 = "0vwv1b3vlz1gizwrj1x4hkdzbkc1vad2mih0qlbhwdlxnx6sb7ap";
-
name = "kdav-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kdav-5.108.0.tar.xz";
+
sha256 = "0knpyzdfa0m1pyakq32pw2hwbaq2dkqj87p3n6p86wlf2rn66vir";
+
name = "kdav-5.108.0.tar.xz";
};
};
kdbusaddons = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kdbusaddons-5.107.0.tar.xz";
-
sha256 = "1f09xf4cm8qk4iklnr60yr2nm054ixnbh85diajbcm5j3v1y75jf";
-
name = "kdbusaddons-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kdbusaddons-5.108.0.tar.xz";
+
sha256 = "1siv9ndk0zr9yq6pwjs248zzsh4kgllfj1294jym80rxcb0z6g9r";
+
name = "kdbusaddons-5.108.0.tar.xz";
};
};
kdeclarative = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kdeclarative-5.107.0.tar.xz";
-
sha256 = "0m88i376jc4m80vlzz8wprg1cwvxvr4438n2i89jpz3nh63fsl6z";
-
name = "kdeclarative-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kdeclarative-5.108.0.tar.xz";
+
sha256 = "1kdg18a2xpgl6xkrk68nnbj57nwn8rv5yd5q5bfbfc8chibk9y4z";
+
name = "kdeclarative-5.108.0.tar.xz";
};
};
kded = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kded-5.107.0.tar.xz";
-
sha256 = "0fxpx3k9j8xnrwvqszj9m7s8vpdxjkz9jschc0m6pfqiqk7hhbyg";
-
name = "kded-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kded-5.108.0.tar.xz";
+
sha256 = "08aa3vjzr0mj4jahzqd2z7k8whavyyvcyhk67swqlpil9rmxm0s1";
+
name = "kded-5.108.0.tar.xz";
};
};
kdelibs4support = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kdelibs4support-5.107.0.tar.xz";
-
sha256 = "13qccs1f26ap4q1naiyknvp0p746zw4439yj4m3p6c3jd25md57g";
-
name = "kdelibs4support-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kdelibs4support-5.108.0.tar.xz";
+
sha256 = "1pqpcn4i6zcli8a2yf7fda6rwr0vs55jd9bjl0fgallyd6wl8qkf";
+
name = "kdelibs4support-5.108.0.tar.xz";
};
};
kdesignerplugin = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kdesignerplugin-5.107.0.tar.xz";
-
sha256 = "0lxyfyyfs7ykdz201zlycphnpr9lf3qr61a1914a5rkxqczc93b8";
-
name = "kdesignerplugin-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kdesignerplugin-5.108.0.tar.xz";
+
sha256 = "0ibd1sgyiawl7b25ag1qs80s0vai16ab1zmdrhx85gd1583vkyab";
+
name = "kdesignerplugin-5.108.0.tar.xz";
};
};
kdesu = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kdesu-5.107.0.tar.xz";
-
sha256 = "12hma81sqirfb848vac6igs68vb982rk5pyj3ypnc7jn13jif43x";
-
name = "kdesu-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kdesu-5.108.0.tar.xz";
+
sha256 = "1rhygp1r6099zrmnfvl2ldpm6rsilcy2x3bcb580bvqd536ir2yh";
+
name = "kdesu-5.108.0.tar.xz";
};
};
kdewebkit = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kdewebkit-5.107.0.tar.xz";
-
sha256 = "0dxnshx629az0dgpiy126by079x3gpxbhhg01z65c06dnlcjhl35";
-
name = "kdewebkit-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kdewebkit-5.108.0.tar.xz";
+
sha256 = "11d8swj6n24hdi7dr2nz8fi20ra8jfl9rkzlcsyzyblwaqc0fpzi";
+
name = "kdewebkit-5.108.0.tar.xz";
};
};
kdnssd = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kdnssd-5.107.0.tar.xz";
-
sha256 = "1jnh3dx2yxf9pz09majdzms7n398zfard1ggjp19jqnpa51vap0m";
-
name = "kdnssd-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kdnssd-5.108.0.tar.xz";
+
sha256 = "0pxlkwjjl2gzfjf9pd7j9m1nhc6jas0wd8994jgljgxc5dc94cn8";
+
name = "kdnssd-5.108.0.tar.xz";
};
};
kdoctools = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kdoctools-5.107.0.tar.xz";
-
sha256 = "0l0mf5hahn2s5yj7khqrxc8w1fxgwibbx5zz35s0xqaz7x4s0mlx";
-
name = "kdoctools-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kdoctools-5.108.0.tar.xz";
+
sha256 = "0zi3va3jn4jps9h9h94ivxkzxw7v5vqwxgikb321hnnjgxy4nzwr";
+
name = "kdoctools-5.108.0.tar.xz";
};
};
kemoticons = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kemoticons-5.107.0.tar.xz";
-
sha256 = "0k1yjm8ybbhm55xh46hl2h6c4cqh4hq8sryc6pjjg1fh6a179y2n";
-
name = "kemoticons-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kemoticons-5.108.0.tar.xz";
+
sha256 = "0p7q5s9mv7j0sy4mm513warzhqm44wiz4vxcp9kxbqcsw0awfad6";
+
name = "kemoticons-5.108.0.tar.xz";
};
};
kfilemetadata = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kfilemetadata-5.107.0.tar.xz";
-
sha256 = "1bcapkmz0zlbknl57byiyalrpk42gvgdycwq6jy9ij5p8m6z7d7d";
-
name = "kfilemetadata-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kfilemetadata-5.108.0.tar.xz";
+
sha256 = "0hhq8p6wpfbi33b604ls7q9309n6pm4aa4cgjwxrspn2q8yn6p7w";
+
name = "kfilemetadata-5.108.0.tar.xz";
};
};
kglobalaccel = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kglobalaccel-5.107.0.tar.xz";
-
sha256 = "1n4y6hwr53paabi4vlzsl8z82blrmvh3g3xhswdcw4dq6m1q4x58";
-
name = "kglobalaccel-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kglobalaccel-5.108.0.tar.xz";
+
sha256 = "0sf6v86pfhxva7n465p9pfidyzfjviam5kk8d6lrc23zjb559f3w";
+
name = "kglobalaccel-5.108.0.tar.xz";
};
};
kguiaddons = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kguiaddons-5.107.0.tar.xz";
-
sha256 = "1hc4k7vynxrvbrb66vw3la2ixhm96dz3basbwl6j6g6xlxn6wbxd";
-
name = "kguiaddons-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kguiaddons-5.108.0.tar.xz";
+
sha256 = "01yfv2ybqi894g7d1fy584x0nbmqlm7vi0b998zc52233blh8j51";
+
name = "kguiaddons-5.108.0.tar.xz";
};
};
kholidays = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kholidays-5.107.0.tar.xz";
-
sha256 = "0b23lb2dqhnkizr3pa9bj2z6rq1613q3cyfh770pksfps7lp0mna";
-
name = "kholidays-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kholidays-5.108.0.tar.xz";
+
sha256 = "03g484nm37vv8mnj4q6y6pdrhhiglni3s63gpxhc54zzhzxshpy5";
+
name = "kholidays-5.108.0.tar.xz";
};
};
khtml = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/khtml-5.107.0.tar.xz";
-
sha256 = "1zcms5h78nc0c69ah60lmjxq6ymb3213ya41hfx7q998dzd9fi9v";
-
name = "khtml-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/khtml-5.108.0.tar.xz";
+
sha256 = "0kasxgkxfibdj81a6iiv4ciqy5fd180lsk9sa1byd8y0bydd8kjv";
+
name = "khtml-5.108.0.tar.xz";
};
};
ki18n = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/ki18n-5.107.0.tar.xz";
-
sha256 = "1q4bbv14davg8pcxr1ngkbzk2q37m6lf2wzxiim7ydkm3giqzp8p";
-
name = "ki18n-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/ki18n-5.108.0.tar.xz";
+
sha256 = "0kpza0n900j8lf27d60ikl963616vcqnns8va6cg8y2lf2pmxvsr";
+
name = "ki18n-5.108.0.tar.xz";
};
};
kiconthemes = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kiconthemes-5.107.0.tar.xz";
-
sha256 = "0by44ra385kwj006l9jkqlpyqci79cspg3y41h3f0m4xpi4dn5sx";
-
name = "kiconthemes-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kiconthemes-5.108.0.tar.xz";
+
sha256 = "0r8lz4jkb1g46ll79pdv8bmig1ij8fp7k6cpcy9nhkkhq0ra7svk";
+
name = "kiconthemes-5.108.0.tar.xz";
};
};
kidletime = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kidletime-5.107.0.tar.xz";
-
sha256 = "0b3plz0hkxw0i8kklv79mfbk79x6p1swz6ffs4dz04hj3cl9lh1v";
-
name = "kidletime-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kidletime-5.108.0.tar.xz";
+
sha256 = "0cqb33xyqxh507332c30ja5anq99zj250b4sl6r6bn1z6j7yfzx7";
+
name = "kidletime-5.108.0.tar.xz";
};
};
kimageformats = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kimageformats-5.107.0.tar.xz";
-
sha256 = "1hfisk63anns3zsakgc4k4fhbx9ic2a4k75jxsmd337rdg9ql9cp";
-
name = "kimageformats-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kimageformats-5.108.0.tar.xz";
+
sha256 = "07myvknlvp28kn20l30x6q22fkva72qrfziryinxgsqlhgc3j87c";
+
name = "kimageformats-5.108.0.tar.xz";
};
};
kinit = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kinit-5.107.0.tar.xz";
-
sha256 = "1p28m3cvifgdw1rjzqy5xbvyzq383yhr50bkq6xn6b12ar239znf";
-
name = "kinit-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kinit-5.108.0.tar.xz";
+
sha256 = "1i03gn0s01jg2ridlymxf34ib88rkf30yz27h38g9fzaijjr46fi";
+
name = "kinit-5.108.0.tar.xz";
};
};
kio = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kio-5.107.0.tar.xz";
-
sha256 = "1bj8mi112xh5zi56i84d96jdc2ji2h72rhl126kfj88chdb1hsj5";
-
name = "kio-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kio-5.108.0.tar.xz";
+
sha256 = "1v5bpj90s5pwdvdkzcfpfgsgym7pxb3r22m4r7w9piq6n9s4c122";
+
name = "kio-5.108.0.tar.xz";
};
};
kirigami2 = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kirigami2-5.107.0.tar.xz";
-
sha256 = "1jdr1i74f90wkjgfyd3ickxwcjmkn1y78v3ggybkrqfx7lvd3hzm";
-
name = "kirigami2-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kirigami2-5.108.0.tar.xz";
+
sha256 = "0kbzqkvq169w9kl4z7l7zd21mgxqdsyv8ia2j6cwd3qqn4xd3nbp";
+
name = "kirigami2-5.108.0.tar.xz";
};
};
kitemmodels = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kitemmodels-5.107.0.tar.xz";
-
sha256 = "1bqiia07c4kbw89j0rw9dx7idflml7wr7sdkg9rmyq6hlpkamxdp";
-
name = "kitemmodels-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kitemmodels-5.108.0.tar.xz";
+
sha256 = "05dd1d1dxkbjrr6x73ndsrabzaa02m3cn1h4dmsgpydy1rkzbj9v";
+
name = "kitemmodels-5.108.0.tar.xz";
};
};
kitemviews = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kitemviews-5.107.0.tar.xz";
-
sha256 = "05qbl1r0js6rxdgz9ym6kpv3rlq4prxy121f8z0c224vivp0qinm";
-
name = "kitemviews-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kitemviews-5.108.0.tar.xz";
+
sha256 = "13dcy804lv6ws1gdfjczkbnlyig11ir4p2mi26ashbgrdfpywxv1";
+
name = "kitemviews-5.108.0.tar.xz";
};
};
kjobwidgets = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kjobwidgets-5.107.0.tar.xz";
-
sha256 = "14kbj31ghmx2wsl79dmgvkfzxlbrpds1z12mj6z91665vrmspq96";
-
name = "kjobwidgets-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kjobwidgets-5.108.0.tar.xz";
+
sha256 = "0vhv9gx8qq73hvalcyx4g8c1ji9qxb2rn5wp4mdl7n9pypd0gscq";
+
name = "kjobwidgets-5.108.0.tar.xz";
};
};
kjs = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kjs-5.107.0.tar.xz";
-
sha256 = "0d985bsvrqbfj068l3si3z0a6b9m6xz4zm6k3p7qh4382blb8dka";
-
name = "kjs-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kjs-5.108.0.tar.xz";
+
sha256 = "0xwih1jrdkgymr29cqr2jbj7byf8kqnbapr7wc8s0jxm5cwj2fgh";
+
name = "kjs-5.108.0.tar.xz";
};
};
kjsembed = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kjsembed-5.107.0.tar.xz";
-
sha256 = "1aridyby0aiakqsn58575hajhh8il5w48n41dh4ng6ax86d4jvkj";
-
name = "kjsembed-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kjsembed-5.108.0.tar.xz";
+
sha256 = "1nfi9mfph3yjglafm8clw8d1z4f4h9b71j5z4l50qsds65yv9b9a";
+
name = "kjsembed-5.108.0.tar.xz";
};
};
kmediaplayer = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kmediaplayer-5.107.0.tar.xz";
-
sha256 = "1m0iik73qia33yvpkirn3f8vpmwxyz69gaddxm2ac0n0xjznxrmj";
-
name = "kmediaplayer-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kmediaplayer-5.108.0.tar.xz";
+
sha256 = "1vkx11736wq0idxrzmfg6s2lcrilgl7yh7a97la6c3qqj2aggi08";
+
name = "kmediaplayer-5.108.0.tar.xz";
};
};
knewstuff = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/knewstuff-5.107.0.tar.xz";
-
sha256 = "16zjjamp2myb45v4wm6k00h9ghp7rgszjdb3ph1sh9fm86x3bnbq";
-
name = "knewstuff-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/knewstuff-5.108.0.tar.xz";
+
sha256 = "1hlzkacybf35lnl92vk8xkapkq5pygy8fqngskvj9f4692k6562s";
+
name = "knewstuff-5.108.0.tar.xz";
};
};
knotifications = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/knotifications-5.107.0.tar.xz";
-
sha256 = "0xigm6cgsdfa74nn4p3f66xfi4rkb1ynmisbf3bh6kf58rq4f7gf";
-
name = "knotifications-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/knotifications-5.108.0.tar.xz";
+
sha256 = "05qdmjjxj362zhwyk0vv83wfzsgjd4nxnvk2avhiscr2k46swn96";
+
name = "knotifications-5.108.0.tar.xz";
};
};
knotifyconfig = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/knotifyconfig-5.107.0.tar.xz";
-
sha256 = "0ydjxyalmx4364m2idmqahzyb351mq4bi1jf7ibs934lra7mdwg8";
-
name = "knotifyconfig-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/knotifyconfig-5.108.0.tar.xz";
+
sha256 = "1dby6ycqicsij9ngyk6ab7v14ybnsmxd51fkcy25k4c326w6yyca";
+
name = "knotifyconfig-5.108.0.tar.xz";
};
};
kpackage = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kpackage-5.107.0.tar.xz";
-
sha256 = "1ch4qj1sjwsf56ywqgns9ka07lc4dcw0j5hr75pibdvaap0n1bph";
-
name = "kpackage-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kpackage-5.108.0.tar.xz";
+
sha256 = "18185xi48an6fi0dinzfcc50lzq8cb5dx16sikmavcnhmfvlvw1g";
+
name = "kpackage-5.108.0.tar.xz";
};
};
kparts = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kparts-5.107.0.tar.xz";
-
sha256 = "1yx9iyd9r740hph24mc96gfql0vdd5s4mrixyk0lr3lj8j35bf00";
-
name = "kparts-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kparts-5.108.0.tar.xz";
+
sha256 = "0fckq2dpdqkqyaig61fnjanw2y9j28fckx1zrywnvyzd8q6hs4db";
+
name = "kparts-5.108.0.tar.xz";
};
};
kpeople = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kpeople-5.107.0.tar.xz";
-
sha256 = "18hr9ci9qbgrwds44knv1xcqxi71b04bw4xh3v1h2sw44srnwplj";
-
name = "kpeople-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kpeople-5.108.0.tar.xz";
+
sha256 = "0k2jnyp05rnjb4j31w4xi95qwparkqvp1m9664gvygwp9xxlnf4k";
+
name = "kpeople-5.108.0.tar.xz";
};
};
kplotting = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kplotting-5.107.0.tar.xz";
-
sha256 = "0gnk1rsrznmyq11f3r9i5pgfb9szscyhif1x0pns1qj24ax3sv2c";
-
name = "kplotting-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kplotting-5.108.0.tar.xz";
+
sha256 = "1rnkwxxms2raqswgwm0i4xgjqpzkz7wl2kbdra2gqscfz7a23s4p";
+
name = "kplotting-5.108.0.tar.xz";
};
};
kpty = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kpty-5.107.0.tar.xz";
-
sha256 = "1y0k92p8j3hpi6si3lqlvh121v8wqybqxhqkf3ygqhld23scazlh";
-
name = "kpty-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kpty-5.108.0.tar.xz";
+
sha256 = "11k1jv2wazlxbz5y7l94zsykcq544k1zbb49ximbdh45r3p5hdgw";
+
name = "kpty-5.108.0.tar.xz";
};
};
kquickcharts = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kquickcharts-5.107.0.tar.xz";
-
sha256 = "1xxrnkxxc8rjvy15zdp3fgiwrfzf67ib7jaxlax8f1s74mr76b4l";
-
name = "kquickcharts-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kquickcharts-5.108.0.tar.xz";
+
sha256 = "1wdmgala480qjipzpq9v85vy1i3n0qgria0rgn26ibhm2wmvmrpw";
+
name = "kquickcharts-5.108.0.tar.xz";
};
};
kross = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kross-5.107.0.tar.xz";
-
sha256 = "13myij7bx0id6vrwnrimfgjq3dwjw5rnpdpg09iawbzjx9yaq3iz";
-
name = "kross-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kross-5.108.0.tar.xz";
+
sha256 = "0j459d9610aayvzb1d9m045c71dmkgqx5bsx3lv8x1wffk8064sd";
+
name = "kross-5.108.0.tar.xz";
};
};
krunner = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/krunner-5.107.0.tar.xz";
-
sha256 = "06r27jmhqjifpv7fkyhin8qdygf3qzgmz2n34sa366qk5h1fij3m";
-
name = "krunner-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/krunner-5.108.0.tar.xz";
+
sha256 = "0yam10c31jzwsl4qzrrcr4caxk79jqg1fyrsavjzg14ahsknb5ih";
+
name = "krunner-5.108.0.tar.xz";
};
};
kservice = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kservice-5.107.0.tar.xz";
-
sha256 = "0bgr2jv11cjfb5fkq5ki39xin3kjqk0jbrjg419pay8xj90nsgq6";
-
name = "kservice-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kservice-5.108.0.tar.xz";
+
sha256 = "10dfnq3x9b30kbkpq1ifg6ywj8dmdqvd1szgrwf71077yzgsh9w2";
+
name = "kservice-5.108.0.tar.xz";
};
};
ktexteditor = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/ktexteditor-5.107.0.tar.xz";
-
sha256 = "165wrv5bdmixczcf1jr0j06fh31n5rchq24d4856p18vl56wg4cg";
-
name = "ktexteditor-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/ktexteditor-5.108.0.tar.xz";
+
sha256 = "0raz9h9y7zfynvacg4grwj0sd4v6w2kwpjkirvjr14zmfjq92mif";
+
name = "ktexteditor-5.108.0.tar.xz";
};
};
ktextwidgets = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/ktextwidgets-5.107.0.tar.xz";
-
sha256 = "1yx0dlvz5ssn5wqpx606vrzdfq14akpvmlayg41sx6hs4xzv0rjy";
-
name = "ktextwidgets-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/ktextwidgets-5.108.0.tar.xz";
+
sha256 = "1qz1ayrrqxarhx4h24ym2hm8gkjskgdi268jv16yvd33b122fv2c";
+
name = "ktextwidgets-5.108.0.tar.xz";
};
};
kunitconversion = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kunitconversion-5.107.0.tar.xz";
-
sha256 = "1y96gqkh7qvs37kb4f0gcqx2f2ilgcryxvcyfbngp3l4fpnvxxaw";
-
name = "kunitconversion-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kunitconversion-5.108.0.tar.xz";
+
sha256 = "1kwz5wx0s522mwb5gxjz6cxqdkzflcckmra9qikpjrzsngamrq3j";
+
name = "kunitconversion-5.108.0.tar.xz";
};
};
kwallet = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kwallet-5.107.0.tar.xz";
-
sha256 = "0xqx3gvqbgjvbp362wr0d42p4wcvwk0f5gqib8qa6zik3w0nly9f";
-
name = "kwallet-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kwallet-5.108.0.tar.xz";
+
sha256 = "1zx80h8mj3ijj1mm5m3396vwkfhpdm8qpb63rhg8szm9hwqhd5sq";
+
name = "kwallet-5.108.0.tar.xz";
};
};
kwayland = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kwayland-5.107.0.tar.xz";
-
sha256 = "0j8hjv9v2yxn922xd1lxlx017c658w2zs3ah0f343sl8cwbj2p45";
-
name = "kwayland-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kwayland-5.108.0.tar.xz";
+
sha256 = "11xk1rzizmqb0haqkg24kdd54a3fdqrxr2kh056irbnksp9p8k03";
+
name = "kwayland-5.108.0.tar.xz";
};
};
kwidgetsaddons = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kwidgetsaddons-5.107.0.tar.xz";
-
sha256 = "1jc7x0n1052pykmps3mpb06jj2pyyvcv0f5v2qymbxf36fcrp88g";
-
name = "kwidgetsaddons-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kwidgetsaddons-5.108.0.tar.xz";
+
sha256 = "1a7svxd0c5dzx5pqjddc38cybf21wrg1hfz91gkrlv9f7ai0k878";
+
name = "kwidgetsaddons-5.108.0.tar.xz";
};
};
kwindowsystem = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kwindowsystem-5.107.0.tar.xz";
-
sha256 = "07lkqqzbgnx6v4fzrcdi5xwznxs21rgg96j8ghs6s3zph8y7ram3";
-
name = "kwindowsystem-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kwindowsystem-5.108.0.tar.xz";
+
sha256 = "0112cgy09qw069v1lzaz6rp84p128mq3xqp3xink398xhp3nrkqd";
+
name = "kwindowsystem-5.108.0.tar.xz";
};
};
kxmlgui = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/kxmlgui-5.107.0.tar.xz";
-
sha256 = "1rc420zlmiivb4x00dlr9z8035crw974gviwzs6xag1v9j022j2b";
-
name = "kxmlgui-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/kxmlgui-5.108.0.tar.xz";
+
sha256 = "0v6nzq86wvbalbqq3dp47vymp31ws098c8dq0g43f6g7q3xjfxa1";
+
name = "kxmlgui-5.108.0.tar.xz";
};
};
kxmlrpcclient = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/portingAids/kxmlrpcclient-5.107.0.tar.xz";
-
sha256 = "0yfbbqkwbrfsanwf0kph5d81xyply17swxmnz5w5qwasdhk19chc";
-
name = "kxmlrpcclient-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/portingAids/kxmlrpcclient-5.108.0.tar.xz";
+
sha256 = "0pf5c5ja1mwdlf9pmc2601frwskkzhksz0n8w4qcwmwbaxrbspv0";
+
name = "kxmlrpcclient-5.108.0.tar.xz";
};
};
modemmanager-qt = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/modemmanager-qt-5.107.0.tar.xz";
-
sha256 = "0ff4sq4wq12qdrkb53wbnjdsccarf8bl6kpv831q0jhhbv06xpy1";
-
name = "modemmanager-qt-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/modemmanager-qt-5.108.0.tar.xz";
+
sha256 = "1rkz1m2dlfhny9zvy8axzgjxgh41cfnmpb52rwargmrsgplcx7rz";
+
name = "modemmanager-qt-5.108.0.tar.xz";
};
};
networkmanager-qt = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/networkmanager-qt-5.107.0.tar.xz";
-
sha256 = "0zqrsgq68n5wdw06sq75sgk63by41lr24dink6gkh8r0yqzgspv9";
-
name = "networkmanager-qt-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/networkmanager-qt-5.108.0.tar.xz";
+
sha256 = "0y9h1n4hccdzk5rp2bq7dyq617yg5myq7dcwnpnp1aik40647vjf";
+
name = "networkmanager-qt-5.108.0.tar.xz";
};
};
oxygen-icons5 = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/oxygen-icons5-5.107.0.tar.xz";
-
sha256 = "1l6glxkq62lzpzr6hvqwn3xb4jfw79w69nwjbbs5imbxndcrmz9s";
-
name = "oxygen-icons5-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/oxygen-icons5-5.108.0.tar.xz";
+
sha256 = "0w9zcgii9z91060cnqcalv8vnj03xrnjr5k6crx28szrpplqcvxd";
+
name = "oxygen-icons5-5.108.0.tar.xz";
};
};
plasma-framework = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/plasma-framework-5.107.0.tar.xz";
-
sha256 = "0ahgpwmaz2nnyg4qwf8ppdk70a718v65ldk8si6gvglf95daalv0";
-
name = "plasma-framework-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/plasma-framework-5.108.0.tar.xz";
+
sha256 = "131zxamyim4bpk006nmfw2zmcay5qnmm7lmy8rvcxn96vflrs6bb";
+
name = "plasma-framework-5.108.0.tar.xz";
};
};
prison = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/prison-5.107.0.tar.xz";
-
sha256 = "172alrpknjnc97ds1dizwgki40z82p1vzld2gib6pwykgzgjww6c";
-
name = "prison-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/prison-5.108.0.tar.xz";
+
sha256 = "1pn62pd7jy589z9y5r00m8d5rcqvrbskyr4a2yyfs24xv21x8lw4";
+
name = "prison-5.108.0.tar.xz";
};
};
purpose = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/purpose-5.107.0.tar.xz";
-
sha256 = "0b4x7x3kia5vn913mzfk0k0f0lhf0gpc3kjsw9pgy1mna8dg7kcr";
-
name = "purpose-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/purpose-5.108.0.tar.xz";
+
sha256 = "0gzgdycf96z0x61vs08dh46n9c2zc11zpjscfwzhrg2k9wsb90qd";
+
name = "purpose-5.108.0.tar.xz";
};
};
qqc2-desktop-style = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/qqc2-desktop-style-5.107.0.tar.xz";
-
sha256 = "0hpjy5w72hzihc7famdjj5arac8fw0d149iqpywldyzhk6bnrfaw";
-
name = "qqc2-desktop-style-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/qqc2-desktop-style-5.108.0.tar.xz";
+
sha256 = "1icv871q0z2wh147j3bg9xqizp2cyrsrsrsgbyyscpa9x5nlpvw9";
+
name = "qqc2-desktop-style-5.108.0.tar.xz";
};
};
solid = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/solid-5.107.0.tar.xz";
-
sha256 = "1w5b62hx8icjz8wkhkn0mhaykdm4mglf6d8qh759160v85fi2ia2";
-
name = "solid-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/solid-5.108.0.tar.xz";
+
sha256 = "0m4i7csrz167nm6h4pcd0413x6jvnd39cx13k9ayga9my36ba2r8";
+
name = "solid-5.108.0.tar.xz";
};
};
sonnet = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/sonnet-5.107.0.tar.xz";
-
sha256 = "0ix7jqjdlcd4jksrvgy5whpbl0i2ljs7pxkm9f8yg2pm3h5clgda";
-
name = "sonnet-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/sonnet-5.108.0.tar.xz";
+
sha256 = "00azygjvv0fw5agd28v3kqxc3qx1wa8j4afvn5y3ncarhb5ac7p1";
+
name = "sonnet-5.108.0.tar.xz";
};
};
syndication = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/syndication-5.107.0.tar.xz";
-
sha256 = "0jpqn34za7q62f8x2njyggq52h9riljr053ng25ykqvp3z2khk95";
-
name = "syndication-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/syndication-5.108.0.tar.xz";
+
sha256 = "0q1yhziwxj2dllqyapkqnsskhvzsjm5iz2my4pn8n0lfm90rdf8h";
+
name = "syndication-5.108.0.tar.xz";
};
};
syntax-highlighting = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/syntax-highlighting-5.107.0.tar.xz";
-
sha256 = "1narmiqlmgnhzxbwmcm4si8w684q3fdp4zh25w0kvwdvxvlx2bk7";
-
name = "syntax-highlighting-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/syntax-highlighting-5.108.0.tar.xz";
+
sha256 = "1lri80bv4i50xsd2wgyv383sqkxpav3smgk9ql5dil2n8pl219ky";
+
name = "syntax-highlighting-5.108.0.tar.xz";
};
};
threadweaver = {
-
version = "5.107.0";
+
version = "5.108.0";
src = fetchurl {
-
url = "${mirror}/stable/frameworks/5.107/threadweaver-5.107.0.tar.xz";
-
sha256 = "1wis770hbmzq920fnfg0pvz35bf4abbkkbnx7za9f89b7jpzmi66";
-
name = "threadweaver-5.107.0.tar.xz";
+
url = "${mirror}/stable/frameworks/5.108/threadweaver-5.108.0.tar.xz";
+
sha256 = "094nfqbhgg8yfri7fghn8dkjdf1k5iccshj0ns2b30snw87w8b29";
+
name = "threadweaver-5.108.0.tar.xz";
};
};
}
+5 -1
pkgs/development/libraries/libnitrokey/default.nix
···
owner = "Nitrokey";
repo = "libnitrokey";
rev = "v${finalAttrs.version}";
-
hash = "sha256-9ZMR1g04gNzslax6NpD6KykfUfjpKFIizaMMn06iJa0=";
+
hash = "sha256-4PEZ31QyVOmdhpKqTN8fwcHoLuu+w+OJ3fZeqwlE+io=";
+
# On OSX, libnitrokey depends on a custom version of hidapi in a submodule.
+
# Monitor https://github.com/Nitrokey/libnitrokey/issues/140 to see if we
+
# can remove this extra work one day.
+
fetchSubmodules = true;
};
nativeBuildInputs = [
+8 -4
pkgs/development/libraries/libpg_query/default.nix
···
-
{ lib, stdenv, fetchFromGitHub, which }:
+
{ lib, stdenv, fetchFromGitHub, which, squawk }:
stdenv.mkDerivation rec {
pname = "libpg_query";
-
version = "15-4.2.1";
+
version = "15-4.2.2";
src = fetchFromGitHub {
owner = "pganalyze";
repo = "libpg_query";
rev = version;
-
hash = "sha256-wbWW2r8Ai4Y+JBI5DbMuVx326bAxmEgQlTd6nnzqDXw=";
+
hash = "sha256-DjpfJj7WtQ4bACX8/lFDl+mwQGbeCJX+YN2hjZa0kks=";
};
nativeBuildInputs = [ which ];
···
doCheck = true;
checkTarget = "test";
+
passthru.tests = {
+
inherit squawk;
+
};
+
meta = with lib; {
homepage = "https://github.com/pganalyze/libpg_query";
description = "C library for accessing the PostgreSQL parser outside of the server environment";
-
changelog = "https://github.com/pganalyze/libpg_query/raw/${version}/CHANGELOG.md";
+
changelog = "https://github.com/pganalyze/libpg_query/blob/${version}/CHANGELOG.md";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = [ maintainers.marsam ];
+2 -2
pkgs/development/php-packages/php-cs-fixer/default.nix
···
let
pname = "php-cs-fixer";
-
version = "3.16.0";
+
version = "3.21.1";
in
mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
-
sha256 = "sha256-B4VzfsSwcffR/t4eREMLH9jRWCTumYel6GM4rpumVBY=";
+
sha256 = "sha256-f/hD2it/l2hWGVoIXQBJYDC7s7JPSE+7RzbpdeNNRvg=";
};
dontUnpack = true;
+2 -2
pkgs/development/python-modules/adafruit-platformdetect/default.nix
···
buildPythonPackage rec {
pname = "adafruit-platformdetect";
-
version = "3.46.0";
+
version = "3.47.0";
format = "pyproject";
disabled = pythonOlder "3.7";
···
src = fetchPypi {
pname = "Adafruit-PlatformDetect";
inherit version;
-
hash = "sha256-d8RhnMcTeHFDpVS+c5lETRz75vFPOMIaqbqPGVG4vHY=";
+
hash = "sha256-42YG+brxKCo16xp72+EhmCkgABC2BAFYNWTKqTT1jeE=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
+16 -16
pkgs/development/python-modules/argcomplete/default.nix
···
{ lib
, buildPythonPackage
-
, fetchPypi
-
, pexpect
+
, fetchFromGitHub
, pythonOlder
+
, setuptools
+
, setuptools-scm
}:
buildPythonPackage rec {
pname = "argcomplete";
-
version = "2.1.1";
-
format = "setuptools";
+
version = "3.1.1";
+
format = "pyproject";
-
disabled = pythonOlder "3.7";
+
disabled = pythonOlder "3.8";
-
src = fetchPypi {
-
inherit pname version;
-
hash = "sha256-cuCDQIUtMlREWcDBmq0bSKosOpbejG5XQkVrT1OMpS8=";
+
src = fetchFromGitHub {
+
owner = "kislyuk";
+
repo = pname;
+
rev = "refs/tags/v${version}";
+
hash = "sha256-N1Us/dpF/y638qIuwTzBiuv4vXfBMtWxmQnMBxNTUuc=";
};
-
postPatch = ''
-
substituteInPlace setup.py \
-
--replace '"coverage",' "" \
-
--replace " + lint_require" ""
-
'';
+
SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
propagatedBuildInputs = [
-
pexpect
+
nativeBuildInputs = [
+
setuptools
+
setuptools-scm
];
-
# tries to build and install test packages which fails
+
# Tries to build and install test packages which fails
doCheck = false;
pythonImportsCheck = [
+2 -2
pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
···
buildPythonPackage rec {
pname = "bluetooth-sensor-state-data";
-
version = "1.6.1";
+
version = "1.6.2";
format = "pyproject";
disabled = pythonOlder "3.9";
···
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
-
hash = "sha256-3qZlk6zV/AeFG4OSRONQ7EMw9Kk/yHjVHV2o64bxCGM=";
+
hash = "sha256-NC0l3wbQKz4MVM0kHbXBAUol74ir7V/JQgeYCVuyRs4=";
};
nativeBuildInputs = [
+76
pkgs/development/python-modules/celery-singleton/default.nix
···
+
{ lib
+
, buildPythonPackage
+
, fetchpatch
+
, fetchFromGitHub
+
, poetry-core
+
, celery
+
, redis
+
, pytestCheckHook
+
, pytest-celery
+
}:
+
+
buildPythonPackage rec {
+
pname = "celery-singleton";
+
version = "0.3.1";
+
format = "pyproject";
+
+
src = fetchFromGitHub {
+
owner = "steinitzu";
+
repo = "celery-singleton";
+
rev = version;
+
hash = "sha256-fHlakxxjYIADELZdxIj6rvsZ/+1QfnKvAg3w5cdzvDc=";
+
};
+
+
postPatch = ''
+
# Disable coverage reporting in tests
+
substituteInPlace setup.cfg \
+
--replace "--cov" "" \
+
--replace "--no-cov-on-fail" ""
+
'';
+
+
patches = [
+
# chore(poetry): use poetry-core
+
# https://github.com/steinitzu/celery-singleton/pull/54
+
(fetchpatch {
+
name = "use-poetry-core.patch";
+
url = "https://github.com/steinitzu/celery-singleton/pull/54/commits/634a001c92a1dff1fae513fc95d733ea9b87e4cf.patch";
+
hash = "sha256-lXN4khwyL96pWyBS+iuSkGEkegv4HxYtym+6JUcPa94=";
+
})
+
];
+
+
nativeBuildInputs = [
+
poetry-core
+
];
+
+
propagatedBuildInputs = [
+
celery
+
redis
+
];
+
+
checkInputs = [
+
pytestCheckHook
+
pytest-celery
+
];
+
+
pytestFlagsArray = [ "tests" ];
+
+
# Tests require a running Redis backend
+
disabledTests = [
+
"TestLock"
+
"TestUnlock"
+
"TestClear"
+
"TestSimpleTask"
+
"TestRaiseOnDuplicateConfig"
+
"TestUniqueOn"
+
];
+
+
pythonImportsCheck = [ "celery_singleton" ];
+
+
meta = with lib; {
+
description = "Seamlessly prevent duplicate executions of celery tasks";
+
homepage = "https://github.com/steinitzu/celery-singleton";
+
changelog = "https://github.com/steinitzu/celery-singleton/blob/${src.rev}/CHANGELOG.md";
+
license = licenses.mit;
+
maintainers = with maintainers; [ onny ];
+
};
+
}
+5 -2
pkgs/development/python-modules/censys/default.nix
···
{ lib
+
, argcomplete
, backoff
, buildPythonPackage
, fetchFromGitHub
···
buildPythonPackage rec {
pname = "censys";
-
version = "2.2.0";
+
version = "2.2.4";
format = "pyproject";
disabled = pythonOlder "3.7";
···
owner = "censys";
repo = "censys-python";
rev = "refs/tags/v${version}";
-
hash = "sha256-CtW6EN9oH/OIZ4XaoSuKlMYK9Mh/ewRs6y34xbfY234=";
+
hash = "sha256-gCq01lfAoKoS74C8gjj84mZpXDMtdNVaRLwhlEXwiPI=";
};
nativeBuildInputs = [
···
];
propagatedBuildInputs = [
+
argcomplete
backoff
requests
rich
···
meta = with lib; {
description = "Python API wrapper for the Censys Search Engine (censys.io)";
homepage = "https://github.com/censys/censys-python";
+
changelog = "https://github.com/censys/censys-python/releases/tag/v${version}";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
};
+54
pkgs/development/python-modules/django-cachalot/default.nix
···
+
{ lib
+
, buildPythonPackage
+
, fetchFromGitHub
+
, django
+
, django-debug-toolbar
+
, psycopg2
+
, beautifulsoup4
+
, python
+
}:
+
+
buildPythonPackage rec {
+
pname = "django-cachalot";
+
version = "2.5.3";
+
format = "setuptools";
+
+
src = fetchFromGitHub {
+
owner = "noripyt";
+
repo = "django-cachalot";
+
rev = "v${version}";
+
hash = "sha256-ayAN+PgK3aIpt4R8aeC6c6mRGTnfObycmkoXPTjx4WI=";
+
};
+
+
patches = [
+
# Disable tests for unsupported caching and database types which would
+
# require additional running backends
+
./disable-unsupported-tests.patch
+
];
+
+
propagatedBuildInputs = [
+
django
+
];
+
+
checkInputs = [
+
beautifulsoup4
+
django-debug-toolbar
+
psycopg2
+
];
+
+
pythonImportsCheck = [ "cachalot" ];
+
+
checkPhase = ''
+
runHook preCheck
+
${python.interpreter} runtests.py
+
runHook postCheck
+
'';
+
+
meta = with lib; {
+
description = "No effort, no worry, maximum performance";
+
homepage = "https://github.com/noripyt/django-cachalot";
+
changelog = "https://github.com/noripyt/django-cachalot/blob/${src.rev}/CHANGELOG.rst";
+
license = licenses.bsd3;
+
maintainers = with maintainers; [ onny ];
+
};
+
}
+65
pkgs/development/python-modules/django-cachalot/disable-unsupported-tests.patch
···
+
diff --git a/cachalot/tests/models.py b/cachalot/tests/models.py
+
index 8c48640..817602c 100644
+
--- a/cachalot/tests/models.py
+
+++ b/cachalot/tests/models.py
+
@@ -77,11 +77,6 @@ class PostgresModel(Model):
+
date_range = DateRangeField(null=True, blank=True)
+
datetime_range = DateTimeRangeField(null=True, blank=True)
+
+
- class Meta:
+
- # Tests schema name in table name.
+
- db_table = '"public"."cachalot_postgresmodel"'
+
-
+
-
+
class UnmanagedModel(Model):
+
name = CharField(max_length=50)
+
+
diff --git a/settings.py b/settings.py
+
index 19d7560..7095367 100644
+
--- a/settings.py
+
+++ b/settings.py
+
@@ -8,18 +8,9 @@ DATABASES = {
+
'ENGINE': 'django.db.backends.sqlite3',
+
'NAME': 'cachalot.sqlite3',
+
},
+
- 'postgresql': {
+
- 'ENGINE': 'django.db.backends.postgresql',
+
- 'NAME': 'cachalot',
+
- 'USER': 'cachalot',
+
- 'PASSWORD': 'password',
+
- 'HOST': '127.0.0.1',
+
- },
+
- 'mysql': {
+
- 'ENGINE': 'django.db.backends.mysql',
+
- 'NAME': 'cachalot',
+
- 'USER': 'root',
+
- 'HOST': '127.0.0.1',
+
+ 'test': {
+
+ 'ENGINE': 'django.db.backends.sqlite3',
+
+ 'NAME': ':memory:',
+
},
+
}
+
if 'MYSQL_PASSWORD' in os.environ:
+
@@ -36,22 +27,6 @@ DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
+
DATABASE_ROUTERS = ['cachalot.tests.db_router.PostgresRouter']
+
+
CACHES = {
+
- 'redis': {
+
- 'BACKEND': 'django_redis.cache.RedisCache',
+
- 'LOCATION': 'redis://127.0.0.1:6379/0',
+
- 'OPTIONS': {
+
- # Since we are using both Python 2 & 3 in tests, we need to use
+
- # a compatible pickle version to avoid unpickling errors when
+
- # running a Python 2 test after a Python 3 test.
+
- 'PICKLE_VERSION': 2,
+
- },
+
- },
+
- 'memcached': {
+
- 'BACKEND': 'django.core.cache.backends.memcached.'
+
- + ('PyMemcacheCache' if __DJ_V[0] > 2
+
- and (__DJ_V[1] > 1 or __DJ_V[0] > 3) else 'MemcachedCache'),
+
- 'LOCATION': '127.0.0.1:11211',
+
- },
+
'locmem': {
+
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
+
'OPTIONS': {
+2 -2
pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
···
buildPythonPackage rec {
pname = "faraday-agent-parameters-types";
-
version = "1.2.0";
+
version = "1.3.0";
format = "setuptools";
disabled = pythonOlder "3.7";
···
src = fetchPypi {
pname = "faraday_agent_parameters_types";
inherit version;
-
hash = "sha256-jQgE/eR8Gd9nMGijH9unhHCrLUn7DbWFkTauoz3O/sM=";
+
hash = "sha256-XWuWg8PzXdLIuUTZ5dnpFmFmqEhOReqIEmBbCpzdzrg=";
};
propagatedBuildInputs = [
-4
pkgs/development/python-modules/ipyparallel/default.nix
···
, hatchling
, ipykernel
, ipython
-
, ipython_genutils
, jupyter-client
-
, packaging
, psutil
, python-dateutil
, pythonOlder
···
entrypoints
ipykernel
ipython
-
ipython_genutils
jupyter-client
-
packaging
psutil
python-dateutil
pyzmq
+2 -2
pkgs/development/python-modules/pycfmodel/default.nix
···
buildPythonPackage rec {
pname = "pycfmodel";
-
version = "0.20.2";
+
version = "0.20.3";
format = "setuptools";
disabled = pythonOlder "3.7";
···
owner = "Skyscanner";
repo = pname;
rev = "refs/tags/${version}";
-
hash = "sha256-TumqpNaxH9YET56PhTXJVG/OQw3syXaYNtHn+Vyh6xI=";
+
hash = "sha256-dHgd6vnmlg+VXMp7QUZoT2aic1X05lJGm8hDrowALvk=";
};
propagatedBuildInputs = [
+3 -3
pkgs/development/python-modules/pyxbe/default.nix
···
buildPythonPackage rec {
pname = "pyxbe";
-
version = "1.0.1";
+
version = "1.0.2";
format = "setuptools";
disabled = pythonOlder "3.7";
···
owner = "mborgerson";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-oOY0g1F5sxGUxXAT19Ygq5q7pnxEhIAKmyYELR1PHEA=";
+
hash = "sha256-sm8/Lcsk3aL8/MB0cVrKNb8MoQPxGCGpHkEPWv+mPdo=";
};
nativeCheckInputs = [
···
# Update location for run with pytest
preCheck = ''
substituteInPlace tests/test_load.py \
-
--replace "'xbefiles'" "'tests/xbefiles'"
+
--replace '"xbefiles"' '"tests/xbefiles"'
'';
pythonImportsCheck = [
+2 -2
pkgs/development/python-modules/sentry-sdk/default.nix
···
buildPythonPackage rec {
pname = "sentry-sdk";
-
version = "1.27.0";
+
version = "1.27.1";
format = "setuptools";
disabled = pythonOlder "3.7";
···
owner = "getsentry";
repo = "sentry-python";
rev = "refs/tags/${version}";
-
hash = "sha256-MU/Uaul46jfVg30zMYgx5QJdXociFqZY+vsi53NqY5c=";
+
hash = "sha256-IXmSQg5I78wwKIzKyuJHypAJeMMGu2vuoo3bqyK1K+c=";
};
propagatedBuildInputs = [
+6 -5
pkgs/development/python-modules/socid-extractor/default.nix
···
buildPythonPackage rec {
pname = "socid-extractor";
-
version = "0.0.23";
+
version = "0.0.24";
format = "setuptools";
disabled = pythonOlder "3.8";
···
src = fetchFromGitHub {
owner = "soxoj";
repo = pname;
-
rev = "v${version}";
-
hash = "sha256-tDKwYgW1vEyPzuouPGK9tdTf3vNr+UaosHtQe23srG0=";
+
rev = "refs/tags/v${version}";
+
hash = "sha256-INewgfm+E2t4QfE+SRAm5a74AKsifNtnwC0WPBqPUns=";
};
propagatedBuildInputs = [
···
];
postPatch = ''
-
# https://github.com/soxoj/socid-extractor/pull/125
+
# https://github.com/soxoj/socid-extractor/pull/150
substituteInPlace requirements.txt \
-
--replace "beautifulsoup4~=4.10.0" "beautifulsoup4>=4.10.0"
+
--replace "beautifulsoup4~=4.11.1" "beautifulsoup4>=4.10.0"
'';
# Test require network access
···
meta = with lib; {
description = "Python module to extract details from personal pages";
homepage = "https://github.com/soxoj/socid-extractor";
+
changelog = "https://github.com/soxoj/socid-extractor/blob/v${version}/CHANGELOG.md";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [ fab ];
};
+3 -3
pkgs/development/tools/cloud-nuke/default.nix
···
buildGoModule rec {
pname = "cloud-nuke";
-
version = "0.31.2";
+
version = "0.32.0";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "refs/tags/v${version}";
-
hash = "sha256-t7LFAWdqbJLOmrac6IXgo+9TK53B7FWLFo1YAY4sPqs=";
+
hash = "sha256-jxhFBfz5CWycEXx86jL9inlP8nxNK7vbVn2U8EzQ7QA=";
};
-
vendorHash = "sha256-AbHjwHwgFwDOwgbuQI3D+zNY71ikA5CPlJUFQIDjhm0=";
+
vendorHash = "sha256-C2YXjfn3Pk0kL4G/cHsmr2VHUYGO+3s3eSiWVJZ2dX8=";
nativeBuildInputs = [
makeBinaryWrapper
+3 -3
pkgs/development/tools/go-task/default.nix
···
buildGoModule rec {
pname = "go-task";
-
version = "3.26.0";
+
version = "3.27.1";
src = fetchFromGitHub {
owner = pname;
repo = "task";
rev = "refs/tags/v${version}";
-
hash = "sha256-BmQL9e7/53IEDUGeiTcFQbK64/JDTwJvBVRrxGFmzMA=";
+
hash = "sha256-MwZtdxoWo5yeJKzbMIfigt0WUjZ52B8MeRsx43D8n1k=";
};
-
vendorHash = "sha256-iO4VzY/UyPJeSxDYAPq+dLuAD2FOaac8rlmAVM4GYB8=";
+
vendorHash = "sha256-05+/NbLks9Dp9Z7KscK9yeEzFJug7VFBqViievX6UOs=";
doCheck = false;
+3 -3
pkgs/development/tools/kdash/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "kdash";
-
version = "0.3.7";
+
version = "0.4.0";
src = fetchFromGitHub {
owner = "kdash-rs";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-qaPRC5W+dLNbrCYc8fKdaSm54OuObJ20tVYCF7ZANYs=";
+
sha256 = "sha256-U2Ne0wDgPkNZa68KbJ9Hke5l+tBAf7imu1Cj+r/uZUE=";
};
nativeBuildInputs = [ perl python3 pkg-config ];
···
buildInputs = [ openssl xorg.xcbutil ]
++ lib.optional stdenv.isDarwin AppKit;
-
cargoHash = "sha256-Z//EsuizhCZIItKfxF8xJs0aQQlhiprV0I2cIWEGsqg=";
+
cargoHash = "sha256-dX5p+eLhZlU1Xg2SoqtEYb8T3/lvoJa78zgQStLPZNE=";
meta = with lib; {
description = "A simple and fast dashboard for Kubernetes";
+7 -11
pkgs/development/tools/language-servers/vscode-langservers-extracted/default.nix
···
-
{ lib, stdenv, buildNpmPackage, fetchFromGitHub, vscode }:
+
{ lib, stdenv, buildNpmPackage, fetchFromGitHub, vscodium, vscode-extensions }:
buildNpmPackage rec {
pname = "vscode-langservers-extracted";
···
hash = "sha256-RLRDEHfEJ2ckn0HTMu0WbMK/o9W20Xwm+XI6kCq57u8=";
};
-
npmDepsHash = "sha256-QhiSj/DigsI4Bfwmk3wG4lDQOWuDDduc/sfJlXiEoGE=";
-
-
postPatch = ''
-
# TODO: Add vscode-eslint as a dependency
-
# Eliminate the vscode-eslint bin
-
sed -i '/^\s*"vscode-eslint-language-server":.*bin\//d' package.json package-lock.json
-
'';
+
npmDepsHash = "sha256-DhajWr+O0zgJALr7I/Nc5GmkOsa9QXfAQpZCaULV47M=";
buildPhase =
let
extensions =
if stdenv.isDarwin
-
then "${vscode}/Applications/Visual\\ Studio\\ Code.app/Contents/Resources/app/extensions"
-
else "${vscode}/lib/vscode/resources/app/extensions";
+
then "${vscodium}/Applications/VSCodium.app/Contents/Resources/app/extensions"
+
else "${vscodium}/lib/vscode/resources/app/extensions";
in
''
npx babel ${extensions}/css-language-features/server/dist/node \
···
--out-dir lib/json-language-server/node/
npx babel ${extensions}/markdown-language-features/server/dist/node \
--out-dir lib/markdown-language-server/node/
+
cp -r ${vscode-extensions.dbaeumer.vscode-eslint}/share/vscode/extensions/dbaeumer.vscode-eslint/server/out \
+
lib/eslint-language-server
mv lib/markdown-language-server/node/workerMain.js lib/markdown-language-server/node/main.js
'';
meta = with lib; {
-
description = "HTML/CSS/JSON/ESLint language servers extracted from vscode.";
+
description = "HTML/CSS/JSON/ESLint language servers extracted from vscode";
homepage = "https://github.com/hrsh7th/vscode-langservers-extracted";
license = licenses.mit;
maintainers = with maintainers; [ lord-valen ];
+3 -3
pkgs/development/tools/ls-lint/default.nix
···
buildGoModule rec {
pname = "ls-lint";
-
version = "2.0.0";
+
version = "2.0.1";
src = fetchFromGitHub {
owner = "loeffel-io";
repo = "ls-lint";
rev = "v${version}";
-
sha256 = "sha256-eEP/l3vdObdxUYIp8eSSCn3W0ypcmykbwQTDP083MVE=";
+
sha256 = "sha256-JG3gDmPfeGyiiIsFX0jFN1Xi9lY4eednmEfJLdu0atA=";
};
-
vendorHash = "sha256-nSHhU6z3ItCKBZy8ENBcAkXqSVo3DU6hAyezQczKShM=";
+
vendorHash = "sha256-/6Y20AvhUShaE1sNTccB62x8YkVLLjhl6fg5oY4gL4I=";
meta = with lib; {
description = "An extremely fast file and directory name linter";
+25
pkgs/development/tools/misc/complgen/default.nix
···
+
{ lib
+
, rustPlatform
+
, fetchFromGitHub
+
}:
+
+
rustPlatform.buildRustPackage {
+
pname = "complgen";
+
version = "unstable-2023-07-05";
+
+
src = fetchFromGitHub {
+
owner = "adaszko";
+
repo = "complgen";
+
rev = "e23474c3bd4544a8e6f7b51947616dbdb18fe1dd";
+
hash = "sha256-Ura4/yMLVRlgTiNiXNPMtKu4cPWge0bLQp/n+tgeDiM=";
+
};
+
+
cargoHash = "sha256-P7wHKrRUVlrLAaLYhVH/p3oOc7UCGP3aQZotVxyeJTs=";
+
+
meta = with lib; {
+
description = "Generate {bash,fish,zsh} completions from a single EBNF-like grammar";
+
homepage = "https://github.com/adaszko/complgen";
+
license = licenses.asl20;
+
maintainers = with maintainers; [ figsoda ];
+
};
+
}
+3 -3
pkgs/development/tools/rust/cargo-llvm-cov/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "cargo-llvm-cov";
-
version = "0.5.22";
+
version = "0.5.23";
src = fetchCrate {
inherit pname version;
-
sha256 = "sha256-nvDeKHOpDhszLxPFh1CZhA+NrFnKbminv8qlIT0qvx0=";
+
sha256 = "sha256-sAuarLfvgX6qjZV2eum3+wY5gRiCbRSbJUBgFIHd8y0=";
};
-
cargoSha256 = "sha256-krpvo55PNECVLh1SjZhXwFVjI6s2u7l/MPCYeDFsylM=";
+
cargoSha256 = "sha256-gGzVQqPHvjERvQV2Yo3wFP7n/w3atuLrHSch1CWui4I=";
# skip tests which require llvm-tools-preview
checkFlags = [
+6 -8
pkgs/development/tools/rust/cargo-show-asm/default.nix
···
{ lib
, rustPlatform
-
, fetchFromGitHub
+
, fetchCrate
, installShellFiles
, stdenv
, nix-update-script
···
rustPlatform.buildRustPackage rec {
pname = "cargo-show-asm";
-
version = "0.2.18";
+
version = "0.2.19";
-
src = fetchFromGitHub {
-
owner = "pacak";
-
repo = "cargo-show-asm";
-
rev = version;
-
hash = "sha256-K7hWXRS6bb9XZxIgZQeu22Gtt3WmXI63Xd97Unm6mHs=";
+
src = fetchCrate {
+
inherit pname version;
+
hash = "sha256-bIaEXlMIEQ2pnzjp7ll6iJFGAQjGb3HVBTbfGSPHrvg=";
};
-
cargoHash = "sha256-fLvJyWoZ2ncbw8ksKfuQ/0oTYFOdzBBCrmtVbbMSXjo=";
+
cargoHash = "sha256-qmxd6qt8pL/5TWPDCiBQrvqb6r7VAJOrSR1OSpibQFU=";
nativeBuildInputs = [
installShellFiles
+59
pkgs/os-specific/darwin/aldente/default.nix
···
+
{ lib
+
, stdenvNoCC
+
, fetchurl
+
, undmg
+
}:
+
+
stdenvNoCC.mkDerivation (finalAttrs: {
+
pname = "aldente";
+
version = "1.22";
+
+
src = fetchurl {
+
url = "https://github.com/davidwernhart/aldente-charge-limiter/releases/download/${finalAttrs.version}/AlDente.dmg";
+
hash = "sha256-y8S9SCDbvoKGtNqGQvJDSpbLhh7GqXUo7pLcMzuCnjo=";
+
};
+
+
dontBuild = true;
+
dontFixup = true;
+
+
nativeBuildInputs = [ undmg ];
+
+
# AlDente.dmg is not HFS formatted, default unpackPhase fails
+
# https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura
+
unpackCmd = ''
+
if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
+
mnt=$(mktemp -d -t ci-XXXXXXXXXX)
+
+
function finish {
+
/usr/bin/hdiutil detach $mnt -force
+
}
+
trap finish EXIT
+
+
/usr/bin/hdiutil attach -nobrowse -readonly $src -mountpoint $mnt
+
+
shopt -s extglob
+
DEST="$PWD"
+
(cd "$mnt"; cp -a !(Applications) "$DEST/")
+
'';
+
+
sourceRoot = "AlDente.app";
+
+
installPhase = ''
+
runHook preInstall
+
+
mkdir -p $out/Applications/AlDente.app
+
cp -R . $out/Applications/AlDente.app
+
+
runHook postInstall
+
'';
+
+
meta = with lib; {
+
description = "macOS tool to limit maximum charging percentage";
+
homepage = "https://apphousekitchen.com";
+
changelog = "https://github.com/davidwernhart/aldente-charge-limiter/releases/tag/${finalAttrs.version}";
+
license = with licenses; [ unfree ];
+
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+
maintainers = with maintainers; [ stepbrobd ];
+
platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+
};
+
})
+39 -12
pkgs/os-specific/linux/hostapd/default.nix
···
outputs = [ "out" "man" ];
+
# Based on hostapd's defconfig. Only differences are tracked.
extraConfig = ''
+
# Use epoll(7) instead of select(2) on linux
+
CONFIG_ELOOP_EPOLL=y
+
+
# Drivers
CONFIG_DRIVER_WIRED=y
-
CONFIG_LIBNL32=y
+
CONFIG_DRIVER_NONE=y
+
+
# Integrated EAP server
CONFIG_EAP_SIM=y
CONFIG_EAP_AKA=y
CONFIG_EAP_AKA_PRIME=y
CONFIG_EAP_PAX=y
+
CONFIG_EAP_PSK=y
CONFIG_EAP_PWD=y
CONFIG_EAP_SAKE=y
CONFIG_EAP_GPSK=y
···
CONFIG_EAP_IKEV2=y
CONFIG_EAP_TNC=y
CONFIG_EAP_EKE=y
+
+
CONFIG_TLS=openssl
+
CONFIG_TLSV11=y
+
CONFIG_TLSV12=y
+
+
CONFIG_SAE=y
+
CONFIG_SAE_PK=y
+
+
CONFIG_OWE=y
+
CONFIG_OCV=y
+
+
# TKIP is considered insecure and upstream support will be removed in the future
+
CONFIG_NO_TKIP=y
+
+
# Misc
CONFIG_RADIUS_SERVER=y
+
CONFIG_FULL_DYNAMIC_VLAN=y
+
CONFIG_VLAN_NETLINK=y
+
CONFIG_GETRANDOM=y
+
CONFIG_INTERWORKING=y
+
CONFIG_HS20=y
+
CONFIG_FST=y
+
CONFIG_FST_TEST=y
+
CONFIG_ACS=y
+
CONFIG_WNM=y
+
CONFIG_MBO=y
+
CONFIG_IEEE80211R=y
+
CONFIG_IEEE80211W=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y
CONFIG_IEEE80211AX=y
-
CONFIG_FULL_DYNAMIC_VLAN=y
-
CONFIG_VLAN_NETLINK=y
-
CONFIG_TLS=openssl
-
CONFIG_TLSV11=y
-
CONFIG_TLSV12=y
-
CONFIG_INTERNETWORKING=y
-
CONFIG_HS20=y
-
CONFIG_ACS=y
-
CONFIG_GETRANDOM=y
-
CONFIG_SAE=y
'' + lib.optionalString (sqlite != null) ''
CONFIG_SQLITE=y
'';
+
passAsFile = [ "extraConfig" ];
+
configurePhase = ''
cd hostapd
cp -v defconfig .config
-
echo "$extraConfig" >> .config
+
cat $extraConfigPath >> .config
cat -n .config
substituteInPlace Makefile --replace /usr/local $out
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libnl-3.0)"
+1
pkgs/os-specific/linux/wpa_supplicant/default.nix
···
CONFIG_LIBNL32=y
CONFIG_OWE=y
CONFIG_P2P=y
+
CONFIG_SAE_PK=y
CONFIG_TDLS=y
CONFIG_TLS=openssl
CONFIG_TLSV11=y
+6 -2
pkgs/os-specific/linux/zfs/stable.nix
···
, kernel ? null
, stdenv
, linuxKernel
+
, removeLinuxDRM ? false
, ...
} @ args:
···
callPackage ./generic.nix args {
# check the release notes for compatible kernels
kernelCompatible =
-
if stdenv'.isx86_64
+
if stdenv'.isx86_64 || removeLinuxDRM
then kernel.kernelOlder "6.4"
else kernel.kernelOlder "6.2";
-
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_3;
+
latestCompatibleLinuxPackages = if stdenv'.isx86_64 || removeLinuxDRM then
+
linuxKernel.packages.linux_6_3
+
else
+
linuxKernel.packages.linux_6_1;
# this package should point to the latest release.
version = "2.1.12";
+10 -6
pkgs/os-specific/linux/zfs/unstable.nix
···
, kernel ? null
, stdenv
, linuxKernel
+
, removeLinuxDRM ? false
, ...
} @ args:
···
# NOTE:
# zfs-2.1.9<=x<=2.1.10 is broken with aarch64-linux-6.2
# for future releases, please delete this condition.
-
kernelCompatible = if stdenv'.isx86_64
-
then kernel.kernelOlder "6.3"
+
kernelCompatible = if stdenv'.isx86_64 || removeLinuxDRM
+
then kernel.kernelOlder "6.4"
else kernel.kernelOlder "6.2";
-
latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_1;
+
+
latestCompatibleLinuxPackages = if stdenv'.isx86_64 || removeLinuxDRM then
+
linuxKernel.packages.linux_6_3
+
else
+
linuxKernel.packages.linux_6_1;
# this package should point to a version / git revision compatible with the latest kernel release
# IMPORTANT: Always use a tagged release candidate or commits from the
# zfs-<version>-staging branch, because this is tested by the OpenZFS
# maintainers.
-
version = "2.1.12-staging-2023-04-18";
-
rev = "e25f9131d679692704c11dc0c1df6d4585b70c35";
+
version = "2.1.12";
-
sha256 = "tJLwyqUj1l5F0WKZDeMGrEFa8fc/axKqm31xtN51a5M=";
+
sha256 = "eYUR5d4gpTrlFu6j1uL83DWL9uPGgAUDRdSEb73V5i4=";
isUnstable = true;
}
+2 -2
pkgs/servers/misc/gobgpd/default.nix
···
buildGoModule rec {
pname = "gobgpd";
-
version = "3.15.0";
+
version = "3.16.0";
src = fetchFromGitHub {
owner = "osrg";
repo = "gobgp";
rev = "refs/tags/v${version}";
-
hash = "sha256-s4kZepphr3QMUFpxdJW5exZKfUPVTisFTRN81tZnQUY=";
+
hash = "sha256-RdZk2I7QvIWEeiL81N5PLJYE0KHYbkvjJeDXTg3F9c4=";
};
vendorHash = "sha256-Z7vYpDQIKc4elVBLiGtxF3D9pec4QNvWFLpux/29t1Y=";
+4 -5
pkgs/servers/monitoring/prometheus/default.nix
···
{ stdenv
, lib
, go
-
, pkgs
, buildGoModule
, fetchFromGitHub
, fetchurl
···
}:
let
-
version = "2.44.0";
+
version = "2.45.0";
webUiStatic = fetchurl {
url = "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-web-ui-${version}.tar.gz";
-
sha256 = "sha256-4FNW78V5bQWbTwmaEpvKaB5f/+uYqXjf0F+FONZq5c4=";
+
hash = "sha256-xfIxq1cFkLjSxjPPdCjgv+FOvbUGdeZpRecbSIFUAXo=";
};
in
buildGoModule rec {
···
owner = "prometheus";
repo = "prometheus";
rev = "v${version}";
-
sha256 = "sha256-JCEJQ0GjP0jxyQudmgo2krjxXmsOFSwzh9Cm1XsrFZo=";
+
hash = "sha256-smc51YrWW8jPzmIkOi0kKaAGUS3TUXpzGDLyslhRVUE=";
};
-
vendorSha256 = "sha256-dR69FWhiT5FLQjZ1G0uf2QPCu9nEp2YkRjrkP1a/948=";
+
vendorHash = "sha256-W958ODhmRL4GAM6hZd71BgEmrwrzR2XHoDrc+rBo4TI=";
excludedPackages = [ "documentation/prometheus-mixin" ];
+40
pkgs/servers/rinetd/default.nix
···
+
{ lib
+
, autoreconfHook
+
, fetchFromGitHub
+
, rinetd
+
, stdenv
+
, testers
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "rinetd";
+
version = "0.73";
+
+
src = fetchFromGitHub {
+
owner = "samhocevar";
+
repo = "rinetd";
+
rev = "v${version}";
+
hash = "sha256-W8PLGd3RwmBTh1kw3k8+ZfP6AzRhZORCkxZzQ9ZbPN4=";
+
};
+
+
nativeBuildInputs = [
+
autoreconfHook
+
];
+
+
preConfigure = ''
+
./bootstrap
+
'';
+
+
passthru.tests.version = testers.testVersion {
+
package = rinetd;
+
command = "rinetd --version";
+
};
+
+
meta = with lib; {
+
description = "TCP/UDP port redirector";
+
homepage = "https://github.com/samhocevar/rinetd";
+
changelog = "https://github.com/samhocevar/rinetd/blob/${src.rev}/CHANGES.md";
+
license = licenses.gpl2Plus;
+
maintainers = with maintainers; [ janik ];
+
};
+
}
+3 -3
pkgs/servers/zigbee2mqtt/default.nix
···
buildNpmPackage rec {
pname = "zigbee2mqtt";
-
version = "1.32.0";
+
version = "1.32.1";
src = fetchFromGitHub {
owner = "Koenkk";
repo = "zigbee2mqtt";
rev = version;
-
hash = "sha256-OUd6Q9/JtllTSAzR879MrgWz5MZnRsEolGsuQbxURh8=";
+
hash = "sha256-HHu3aycYvcv7c4CMvv9GzeB4ZAleLDW/nRKmWahSQ88=";
};
-
npmDepsHash = "sha256-GoowjWCBfMcN5qWG2rV6wSPx01TozIb5KDh77D49F/M=";
+
npmDepsHash = "sha256-uryyBFGNdsOVferTNTQ8+O3gv+lJ3mCuaU/47UzqcMk=";
nativeBuildInputs = [
python3
+13 -17
pkgs/tools/backup/bup/default.nix
···
{ lib, stdenv, fetchFromGitHub, makeWrapper
-
, perl, pandoc, python3Packages, git
+
, perl, pandoc, python3, git
, par2cmdline ? null, par2Support ? true
}:
assert par2Support -> par2cmdline != null;
-
let version = "0.32"; in
+
let
+
version = "0.33.2";
+
+
pythonDeps = with python3.pkgs; [ setuptools tornado ]
+
++ lib.optionals (!stdenv.isDarwin) [ pyxattr pylibacl fuse ];
+
in
stdenv.mkDerivation {
pname = "bup";
···
repo = "bup";
owner = "bup";
rev = version;
-
sha256 = "sha256-SWnEJ5jwu/Jr2NLsTS8ajWay0WX/gYbOc3J6w00DndI=";
+
hash = "sha256-DDVCrY4SFqzKukXm8rIq90xAW2U+yYyhyPmUhslMMWI=";
};
-
buildInputs = [
-
git
-
(python3Packages.python.withPackages
-
(p: with p; [ setuptools tornado ]
-
++ lib.optionals (!stdenv.isDarwin) [ pyxattr pylibacl fuse ]))
-
];
+
buildInputs = [ git python3 ];
nativeBuildInputs = [ pandoc perl makeWrapper ];
-
postPatch = ''
-
patchShebangs .
-
substituteInPlace Makefile --replace "-Werror" ""
-
'' + lib.optionalString par2Support ''
-
substituteInPlace cmd/fsck-cmd.py --replace "'par2'" "'${par2cmdline}/bin/par2'"
-
'';
+
postPatch = "patchShebangs .";
dontAddPrefix = true;
···
postInstall = ''
wrapProgram $out/bin/bup \
-
--prefix PATH : ${git}/bin
+
--prefix PATH : ${lib.makeBinPath [ git par2cmdline ]} \
+
--prefix NIX_PYTHONPATH : ${lib.makeSearchPathOutput "lib" python3.sitePackages pythonDeps}
'';
meta = with lib; {
···
'';
platforms = platforms.linux ++ platforms.darwin;
-
maintainers = with maintainers; [ ];
+
maintainers = with maintainers; [ rnhmjoj ];
};
}
+9 -1
pkgs/tools/misc/grub/default.nix
···
-
{ lib, stdenv, runCommand, fetchFromSavannah, flex, bison, python3, autoconf, automake, libtool, bash
+
{ lib, stdenv, runCommand, fetchFromSavannah, fetchpatch, flex, bison, python3, autoconf, automake, libtool, bash
, rsync, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
, buildPackages
, nixosTests
···
patches = [
./fix-bash-completion.patch
./add-hidden-menu-entries.patch
+
+
# Revert upstream commit that breaks reading XFS filesystems
+
# FIXME: remove when fixed upstream
+
(fetchpatch {
+
url = "https://git.savannah.gnu.org/cgit/grub.git/patch/?id=ef7850c757fb3dd2462a512cfa0ff19c89fcc0b1";
+
revert = true;
+
hash = "sha256-p8Kcv9d7ri4eJU6Fgqyzdj0hV5MHSe50AF02FPDJx2Y=";
+
})
];
postPatch = if kbdcompSupport then ''
-45
pkgs/tools/networking/ddclient/default.nix
···
-
{ lib, fetchFromGitHub, perlPackages, autoreconfHook, iproute2, perl }:
-
-
perlPackages.buildPerlPackage rec {
-
pname = "ddclient";
-
version = "3.10.0";
-
-
outputs = [ "out" ];
-
-
src = fetchFromGitHub {
-
owner = "ddclient";
-
repo = "ddclient";
-
rev = "v${version}";
-
sha256 = "sha256-wWUkjXwVNZRJR1rXPn3IkDRi9is9vsRuNC/zq8RpB1E=";
-
};
-
-
postPatch = ''
-
touch Makefile.PL
-
'';
-
-
nativeBuildInputs = [ autoreconfHook ];
-
-
buildInputs = with perlPackages; [ IOSocketINET6 IOSocketSSL JSONPP ];
-
-
installPhase = ''
-
runHook preInstall
-
-
# patch sheebang ddclient script which only exists after buildPhase
-
preConfigure
-
install -Dm755 ddclient $out/bin/ddclient
-
install -Dm644 -t $out/share/doc/ddclient COP* README.* ChangeLog.md
-
-
runHook postInstall
-
'';
-
-
# TODO: run upstream tests
-
doCheck = false;
-
-
meta = with lib; {
-
description = "Client for updating dynamic DNS service entries";
-
homepage = "https://ddclient.net/";
-
license = licenses.gpl2Plus;
-
platforms = platforms.linux;
-
maintainers = with maintainers; [ SuperSandro2000 ];
-
};
-
}
+7 -2
pkgs/tools/security/cfripper/default.nix
···
python3.pkgs.buildPythonApplication rec {
pname = "cfripper";
-
version = "1.13.1";
+
version = "1.13.2";
src = fetchFromGitHub {
owner = "Skyscanner";
repo = pname;
rev = "refs/tags/${version}";
-
hash = "sha256-V27eZoeg5r+h8W1H66eNauGOvV8tT/oo4fRfSLhz1MY=";
+
hash = "sha256-wcOtj56l2bUYE+WdbDwtB3aWlP2zEAFaaqw4THcHxbY=";
};
propagatedBuildInputs = with python3.pkgs; [
···
# Tests are failing
"tests/test_boto3_client.py"
"tests/config/test_pluggy.py"
+
];
+
+
disabledTests = [
+
# Assertion fails
+
"test_multiple_resources_with_wildcard_resources_are_detected"
];
pythonImportsCheck = [
+2 -2
pkgs/tools/security/exploitdb/default.nix
···
stdenv.mkDerivation rec {
pname = "exploitdb";
-
version = "2023-07-05";
+
version = "2023-07-08";
src = fetchFromGitLab {
owner = "exploit-database";
repo = pname;
rev = "refs/tags/${version}";
-
hash = "sha256-YJ7RR4PMa87Fw8dtRK4t+rDI1uyLfW8vQ/Rp1gr/Qw0=";
+
hash = "sha256-hOPTK7nkKmLsVb6GJIE4FTdCGU6PdjQtUpTXzhsMXXo=";
};
nativeBuildInputs = [
+12 -5
pkgs/tools/text/djot-js/default.nix
···
{ lib
, buildNpmPackage
, fetchFromGitHub
+
, fetchpatch
, installShellFiles
}:
···
hash = "sha256-W/ZQXJXvFEIgj5PeI+jvw4nIkNP4qa1NyQCOv0unIuA=";
};
-
npmDepsHash = "sha256-WOsStvm7UC2Jnb803mHoJxDUs1I8dDT7HRPdpIXQne8=";
+
npmDepsHash = "sha256-x/Oc39S6XwZ/ZsS/lmMU9OkHLlKuUxETYmD8pdHAIg8=";
+
+
patches = [
+
# djot.js v0.2.3 doesn't include package-lock.json in the repository
+
# remove at next release
+
(fetchpatch {
+
name = "add-package-lock-json-and-yarn-lock-to-repository.patch";
+
url = "https://github.com/jgm/djot.js/commit/15ed52755b2968932d4a9a80805b9ea6183fe539.patch";
+
hash = "sha256-saNmU7z4IOOG3ptXMFDSNci5uu0d2GiVZ/FAlaNccTc=";
+
})
+
];
nativeBuildInputs = [
installShellFiles
];
-
-
postPatch = ''
-
ln -s ${./package-lock.json} package-lock.json
-
'';
postInstall = ''
installManPage doc/djot.1
-5556
pkgs/tools/text/djot-js/package-lock.json
···
-
{
-
"name": "@djot/djot",
-
"version": "0.2.3",
-
"lockfileVersion": 3,
-
"requires": true,
-
"packages": {
-
"": {
-
"name": "@djot/djot",
-
"version": "0.2.3",
-
"license": "MIT",
-
"bin": {
-
"djot": "lib/cli.js"
-
},
-
"devDependencies": {
-
"@types/jest": "^29.2.4",
-
"@typescript-eslint/eslint-plugin": "^5.46.1",
-
"@typescript-eslint/parser": "^5.46.1",
-
"benchmark": "^2.1.4",
-
"eslint": "^8.29.0",
-
"jest": "^29.3.1",
-
"ts-jest": "^29.0.3",
-
"ts-loader": "^9.4.2",
-
"typescript": "^4.9.4",
-
"typescript-language-server": "^3.0.1",
-
"webpack": "^5.75.0",
-
"webpack-cli": "^5.0.1"
-
},
-
"engines": {
-
"node": ">=17.0.0"
-
}
-
},
-
"node_modules/@ampproject/remapping": {
-
"version": "2.2.1",
-
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
-
"integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/gen-mapping": "^0.3.0",
-
"@jridgewell/trace-mapping": "^0.3.9"
-
},
-
"engines": {
-
"node": ">=6.0.0"
-
}
-
},
-
"node_modules/@babel/code-frame": {
-
"version": "7.21.4",
-
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
-
"integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
-
"dev": true,
-
"dependencies": {
-
"@babel/highlight": "^7.18.6"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/compat-data": {
-
"version": "7.22.3",
-
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz",
-
"integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/core": {
-
"version": "7.22.1",
-
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz",
-
"integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==",
-
"dev": true,
-
"dependencies": {
-
"@ampproject/remapping": "^2.2.0",
-
"@babel/code-frame": "^7.21.4",
-
"@babel/generator": "^7.22.0",
-
"@babel/helper-compilation-targets": "^7.22.1",
-
"@babel/helper-module-transforms": "^7.22.1",
-
"@babel/helpers": "^7.22.0",
-
"@babel/parser": "^7.22.0",
-
"@babel/template": "^7.21.9",
-
"@babel/traverse": "^7.22.1",
-
"@babel/types": "^7.22.0",
-
"convert-source-map": "^1.7.0",
-
"debug": "^4.1.0",
-
"gensync": "^1.0.0-beta.2",
-
"json5": "^2.2.2",
-
"semver": "^6.3.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/babel"
-
}
-
},
-
"node_modules/@babel/core/node_modules/convert-source-map": {
-
"version": "1.9.0",
-
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
-
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-
"dev": true
-
},
-
"node_modules/@babel/core/node_modules/semver": {
-
"version": "6.3.0",
-
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-
"dev": true,
-
"bin": {
-
"semver": "bin/semver.js"
-
}
-
},
-
"node_modules/@babel/generator": {
-
"version": "7.22.3",
-
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz",
-
"integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.22.3",
-
"@jridgewell/gen-mapping": "^0.3.2",
-
"@jridgewell/trace-mapping": "^0.3.17",
-
"jsesc": "^2.5.1"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-compilation-targets": {
-
"version": "7.22.1",
-
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz",
-
"integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==",
-
"dev": true,
-
"dependencies": {
-
"@babel/compat-data": "^7.22.0",
-
"@babel/helper-validator-option": "^7.21.0",
-
"browserslist": "^4.21.3",
-
"lru-cache": "^5.1.1",
-
"semver": "^6.3.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0"
-
}
-
},
-
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
-
"version": "6.3.0",
-
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-
"dev": true,
-
"bin": {
-
"semver": "bin/semver.js"
-
}
-
},
-
"node_modules/@babel/helper-environment-visitor": {
-
"version": "7.22.1",
-
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz",
-
"integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-function-name": {
-
"version": "7.21.0",
-
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
-
"integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/template": "^7.20.7",
-
"@babel/types": "^7.21.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-hoist-variables": {
-
"version": "7.18.6",
-
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
-
"integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.18.6"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-module-imports": {
-
"version": "7.21.4",
-
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
-
"integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.21.4"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-module-transforms": {
-
"version": "7.22.1",
-
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz",
-
"integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-environment-visitor": "^7.22.1",
-
"@babel/helper-module-imports": "^7.21.4",
-
"@babel/helper-simple-access": "^7.21.5",
-
"@babel/helper-split-export-declaration": "^7.18.6",
-
"@babel/helper-validator-identifier": "^7.19.1",
-
"@babel/template": "^7.21.9",
-
"@babel/traverse": "^7.22.1",
-
"@babel/types": "^7.22.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-plugin-utils": {
-
"version": "7.21.5",
-
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
-
"integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-simple-access": {
-
"version": "7.21.5",
-
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
-
"integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.21.5"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-split-export-declaration": {
-
"version": "7.18.6",
-
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
-
"integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.18.6"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-string-parser": {
-
"version": "7.21.5",
-
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
-
"integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-validator-identifier": {
-
"version": "7.19.1",
-
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
-
"integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helper-validator-option": {
-
"version": "7.21.0",
-
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
-
"integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/helpers": {
-
"version": "7.22.3",
-
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz",
-
"integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==",
-
"dev": true,
-
"dependencies": {
-
"@babel/template": "^7.21.9",
-
"@babel/traverse": "^7.22.1",
-
"@babel/types": "^7.22.3"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/highlight": {
-
"version": "7.18.6",
-
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-
"integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-validator-identifier": "^7.18.6",
-
"chalk": "^2.0.0",
-
"js-tokens": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/highlight/node_modules/ansi-styles": {
-
"version": "3.2.1",
-
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-
"dev": true,
-
"dependencies": {
-
"color-convert": "^1.9.0"
-
},
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/@babel/highlight/node_modules/chalk": {
-
"version": "2.4.2",
-
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-
"dev": true,
-
"dependencies": {
-
"ansi-styles": "^3.2.1",
-
"escape-string-regexp": "^1.0.5",
-
"supports-color": "^5.3.0"
-
},
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/@babel/highlight/node_modules/color-convert": {
-
"version": "1.9.3",
-
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-
"dev": true,
-
"dependencies": {
-
"color-name": "1.1.3"
-
}
-
},
-
"node_modules/@babel/highlight/node_modules/color-name": {
-
"version": "1.1.3",
-
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-
"dev": true
-
},
-
"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
-
"version": "1.0.5",
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.8.0"
-
}
-
},
-
"node_modules/@babel/highlight/node_modules/has-flag": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-
"dev": true,
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/@babel/highlight/node_modules/supports-color": {
-
"version": "5.5.0",
-
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-
"dev": true,
-
"dependencies": {
-
"has-flag": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/@babel/parser": {
-
"version": "7.22.4",
-
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz",
-
"integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==",
-
"dev": true,
-
"bin": {
-
"parser": "bin/babel-parser.js"
-
},
-
"engines": {
-
"node": ">=6.0.0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-async-generators": {
-
"version": "7.8.4",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
-
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-bigint": {
-
"version": "7.8.3",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
-
"integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-class-properties": {
-
"version": "7.12.13",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
-
"integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.12.13"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-import-meta": {
-
"version": "7.10.4",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
-
"integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.10.4"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-json-strings": {
-
"version": "7.8.3",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
-
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-jsx": {
-
"version": "7.21.4",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz",
-
"integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.20.2"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-logical-assignment-operators": {
-
"version": "7.10.4",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
-
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.10.4"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
-
"version": "7.8.3",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
-
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-numeric-separator": {
-
"version": "7.10.4",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
-
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.10.4"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-object-rest-spread": {
-
"version": "7.8.3",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
-
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-optional-catch-binding": {
-
"version": "7.8.3",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
-
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-optional-chaining": {
-
"version": "7.8.3",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
-
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.8.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-top-level-await": {
-
"version": "7.14.5",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
-
"integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.14.5"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/plugin-syntax-typescript": {
-
"version": "7.21.4",
-
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz",
-
"integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.20.2"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0-0"
-
}
-
},
-
"node_modules/@babel/template": {
-
"version": "7.21.9",
-
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz",
-
"integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==",
-
"dev": true,
-
"dependencies": {
-
"@babel/code-frame": "^7.21.4",
-
"@babel/parser": "^7.21.9",
-
"@babel/types": "^7.21.5"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/traverse": {
-
"version": "7.22.4",
-
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz",
-
"integrity": "sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==",
-
"dev": true,
-
"dependencies": {
-
"@babel/code-frame": "^7.21.4",
-
"@babel/generator": "^7.22.3",
-
"@babel/helper-environment-visitor": "^7.22.1",
-
"@babel/helper-function-name": "^7.21.0",
-
"@babel/helper-hoist-variables": "^7.18.6",
-
"@babel/helper-split-export-declaration": "^7.18.6",
-
"@babel/parser": "^7.22.4",
-
"@babel/types": "^7.22.4",
-
"debug": "^4.1.0",
-
"globals": "^11.1.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@babel/traverse/node_modules/globals": {
-
"version": "11.12.0",
-
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
-
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
-
"dev": true,
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/@babel/types": {
-
"version": "7.22.4",
-
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz",
-
"integrity": "sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-string-parser": "^7.21.5",
-
"@babel/helper-validator-identifier": "^7.19.1",
-
"to-fast-properties": "^2.0.0"
-
},
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/@bcoe/v8-coverage": {
-
"version": "0.2.3",
-
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
-
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
-
"dev": true
-
},
-
"node_modules/@discoveryjs/json-ext": {
-
"version": "0.5.7",
-
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
-
"integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
-
"dev": true,
-
"engines": {
-
"node": ">=10.0.0"
-
}
-
},
-
"node_modules/@eslint-community/eslint-utils": {
-
"version": "4.4.0",
-
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-
"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
-
"dev": true,
-
"dependencies": {
-
"eslint-visitor-keys": "^3.3.0"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"peerDependencies": {
-
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
-
}
-
},
-
"node_modules/@eslint-community/regexpp": {
-
"version": "4.5.1",
-
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
-
"integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
-
"dev": true,
-
"engines": {
-
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
-
}
-
},
-
"node_modules/@eslint/eslintrc": {
-
"version": "2.0.3",
-
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
-
"integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
-
"dev": true,
-
"dependencies": {
-
"ajv": "^6.12.4",
-
"debug": "^4.3.2",
-
"espree": "^9.5.2",
-
"globals": "^13.19.0",
-
"ignore": "^5.2.0",
-
"import-fresh": "^3.2.1",
-
"js-yaml": "^4.1.0",
-
"minimatch": "^3.1.2",
-
"strip-json-comments": "^3.1.1"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"url": "https://opencollective.com/eslint"
-
}
-
},
-
"node_modules/@eslint/js": {
-
"version": "8.42.0",
-
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
-
"integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==",
-
"dev": true,
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
}
-
},
-
"node_modules/@humanwhocodes/config-array": {
-
"version": "0.11.10",
-
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
-
"integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
-
"dev": true,
-
"dependencies": {
-
"@humanwhocodes/object-schema": "^1.2.1",
-
"debug": "^4.1.1",
-
"minimatch": "^3.0.5"
-
},
-
"engines": {
-
"node": ">=10.10.0"
-
}
-
},
-
"node_modules/@humanwhocodes/module-importer": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
-
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
-
"dev": true,
-
"engines": {
-
"node": ">=12.22"
-
},
-
"funding": {
-
"type": "github",
-
"url": "https://github.com/sponsors/nzakas"
-
}
-
},
-
"node_modules/@humanwhocodes/object-schema": {
-
"version": "1.2.1",
-
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
-
"dev": true
-
},
-
"node_modules/@istanbuljs/load-nyc-config": {
-
"version": "1.1.0",
-
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
-
"integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
-
"dev": true,
-
"dependencies": {
-
"camelcase": "^5.3.1",
-
"find-up": "^4.1.0",
-
"get-package-type": "^0.1.0",
-
"js-yaml": "^3.13.1",
-
"resolve-from": "^5.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
-
"version": "1.0.10",
-
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-
"dev": true,
-
"dependencies": {
-
"sprintf-js": "~1.0.2"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
-
"version": "4.1.0",
-
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-
"dev": true,
-
"dependencies": {
-
"locate-path": "^5.0.0",
-
"path-exists": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
-
"version": "3.14.1",
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
-
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
-
"dev": true,
-
"dependencies": {
-
"argparse": "^1.0.7",
-
"esprima": "^4.0.0"
-
},
-
"bin": {
-
"js-yaml": "bin/js-yaml.js"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
-
"version": "5.0.0",
-
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-
"dev": true,
-
"dependencies": {
-
"p-locate": "^4.1.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
-
"version": "2.3.0",
-
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
-
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-
"dev": true,
-
"dependencies": {
-
"p-try": "^2.0.0"
-
},
-
"engines": {
-
"node": ">=6"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
-
"version": "4.1.0",
-
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-
"dev": true,
-
"dependencies": {
-
"p-limit": "^2.2.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
-
"version": "5.0.0",
-
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/@istanbuljs/schema": {
-
"version": "0.1.3",
-
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
-
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/@jest/console": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz",
-
"integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"chalk": "^4.0.0",
-
"jest-message-util": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"slash": "^3.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/core": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz",
-
"integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/console": "^29.5.0",
-
"@jest/reporters": "^29.5.0",
-
"@jest/test-result": "^29.5.0",
-
"@jest/transform": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"ansi-escapes": "^4.2.1",
-
"chalk": "^4.0.0",
-
"ci-info": "^3.2.0",
-
"exit": "^0.1.2",
-
"graceful-fs": "^4.2.9",
-
"jest-changed-files": "^29.5.0",
-
"jest-config": "^29.5.0",
-
"jest-haste-map": "^29.5.0",
-
"jest-message-util": "^29.5.0",
-
"jest-regex-util": "^29.4.3",
-
"jest-resolve": "^29.5.0",
-
"jest-resolve-dependencies": "^29.5.0",
-
"jest-runner": "^29.5.0",
-
"jest-runtime": "^29.5.0",
-
"jest-snapshot": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"jest-validate": "^29.5.0",
-
"jest-watcher": "^29.5.0",
-
"micromatch": "^4.0.4",
-
"pretty-format": "^29.5.0",
-
"slash": "^3.0.0",
-
"strip-ansi": "^6.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-
},
-
"peerDependenciesMeta": {
-
"node-notifier": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@jest/environment": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz",
-
"integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/fake-timers": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"jest-mock": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/expect": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz",
-
"integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==",
-
"dev": true,
-
"dependencies": {
-
"expect": "^29.5.0",
-
"jest-snapshot": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/expect-utils": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz",
-
"integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==",
-
"dev": true,
-
"dependencies": {
-
"jest-get-type": "^29.4.3"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/fake-timers": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz",
-
"integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"@sinonjs/fake-timers": "^10.0.2",
-
"@types/node": "*",
-
"jest-message-util": "^29.5.0",
-
"jest-mock": "^29.5.0",
-
"jest-util": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/globals": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz",
-
"integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/environment": "^29.5.0",
-
"@jest/expect": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"jest-mock": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/reporters": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz",
-
"integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==",
-
"dev": true,
-
"dependencies": {
-
"@bcoe/v8-coverage": "^0.2.3",
-
"@jest/console": "^29.5.0",
-
"@jest/test-result": "^29.5.0",
-
"@jest/transform": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@jridgewell/trace-mapping": "^0.3.15",
-
"@types/node": "*",
-
"chalk": "^4.0.0",
-
"collect-v8-coverage": "^1.0.0",
-
"exit": "^0.1.2",
-
"glob": "^7.1.3",
-
"graceful-fs": "^4.2.9",
-
"istanbul-lib-coverage": "^3.0.0",
-
"istanbul-lib-instrument": "^5.1.0",
-
"istanbul-lib-report": "^3.0.0",
-
"istanbul-lib-source-maps": "^4.0.0",
-
"istanbul-reports": "^3.1.3",
-
"jest-message-util": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"jest-worker": "^29.5.0",
-
"slash": "^3.0.0",
-
"string-length": "^4.0.1",
-
"strip-ansi": "^6.0.0",
-
"v8-to-istanbul": "^9.0.1"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-
},
-
"peerDependenciesMeta": {
-
"node-notifier": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@jest/schemas": {
-
"version": "29.4.3",
-
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
-
"integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
-
"dev": true,
-
"dependencies": {
-
"@sinclair/typebox": "^0.25.16"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/source-map": {
-
"version": "29.4.3",
-
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz",
-
"integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/trace-mapping": "^0.3.15",
-
"callsites": "^3.0.0",
-
"graceful-fs": "^4.2.9"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/test-result": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz",
-
"integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/console": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/istanbul-lib-coverage": "^2.0.0",
-
"collect-v8-coverage": "^1.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/test-sequencer": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz",
-
"integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/test-result": "^29.5.0",
-
"graceful-fs": "^4.2.9",
-
"jest-haste-map": "^29.5.0",
-
"slash": "^3.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/transform": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz",
-
"integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==",
-
"dev": true,
-
"dependencies": {
-
"@babel/core": "^7.11.6",
-
"@jest/types": "^29.5.0",
-
"@jridgewell/trace-mapping": "^0.3.15",
-
"babel-plugin-istanbul": "^6.1.1",
-
"chalk": "^4.0.0",
-
"convert-source-map": "^2.0.0",
-
"fast-json-stable-stringify": "^2.1.0",
-
"graceful-fs": "^4.2.9",
-
"jest-haste-map": "^29.5.0",
-
"jest-regex-util": "^29.4.3",
-
"jest-util": "^29.5.0",
-
"micromatch": "^4.0.4",
-
"pirates": "^4.0.4",
-
"slash": "^3.0.0",
-
"write-file-atomic": "^4.0.2"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jest/types": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
-
"integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
-
"dev": true,
-
"dependencies": {
-
"@jest/schemas": "^29.4.3",
-
"@types/istanbul-lib-coverage": "^2.0.0",
-
"@types/istanbul-reports": "^3.0.0",
-
"@types/node": "*",
-
"@types/yargs": "^17.0.8",
-
"chalk": "^4.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/@jridgewell/gen-mapping": {
-
"version": "0.3.3",
-
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
-
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/set-array": "^1.0.1",
-
"@jridgewell/sourcemap-codec": "^1.4.10",
-
"@jridgewell/trace-mapping": "^0.3.9"
-
},
-
"engines": {
-
"node": ">=6.0.0"
-
}
-
},
-
"node_modules/@jridgewell/resolve-uri": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
-
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.0.0"
-
}
-
},
-
"node_modules/@jridgewell/set-array": {
-
"version": "1.1.2",
-
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.0.0"
-
}
-
},
-
"node_modules/@jridgewell/source-map": {
-
"version": "0.3.3",
-
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz",
-
"integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/gen-mapping": "^0.3.0",
-
"@jridgewell/trace-mapping": "^0.3.9"
-
}
-
},
-
"node_modules/@jridgewell/sourcemap-codec": {
-
"version": "1.4.15",
-
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
-
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
-
"dev": true
-
},
-
"node_modules/@jridgewell/trace-mapping": {
-
"version": "0.3.18",
-
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
-
"integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/resolve-uri": "3.1.0",
-
"@jridgewell/sourcemap-codec": "1.4.14"
-
}
-
},
-
"node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
-
"version": "1.4.14",
-
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
-
"dev": true
-
},
-
"node_modules/@nodelib/fs.scandir": {
-
"version": "2.1.5",
-
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-
"dev": true,
-
"dependencies": {
-
"@nodelib/fs.stat": "2.0.5",
-
"run-parallel": "^1.1.9"
-
},
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/@nodelib/fs.stat": {
-
"version": "2.0.5",
-
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-
"dev": true,
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/@nodelib/fs.walk": {
-
"version": "1.2.8",
-
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-
"dev": true,
-
"dependencies": {
-
"@nodelib/fs.scandir": "2.1.5",
-
"fastq": "^1.6.0"
-
},
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/@sinclair/typebox": {
-
"version": "0.25.24",
-
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
-
"integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
-
"dev": true
-
},
-
"node_modules/@sinonjs/commons": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
-
"integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
-
"dev": true,
-
"dependencies": {
-
"type-detect": "4.0.8"
-
}
-
},
-
"node_modules/@sinonjs/fake-timers": {
-
"version": "10.2.0",
-
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz",
-
"integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==",
-
"dev": true,
-
"dependencies": {
-
"@sinonjs/commons": "^3.0.0"
-
}
-
},
-
"node_modules/@types/babel__core": {
-
"version": "7.20.1",
-
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
-
"integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
-
"dev": true,
-
"dependencies": {
-
"@babel/parser": "^7.20.7",
-
"@babel/types": "^7.20.7",
-
"@types/babel__generator": "*",
-
"@types/babel__template": "*",
-
"@types/babel__traverse": "*"
-
}
-
},
-
"node_modules/@types/babel__generator": {
-
"version": "7.6.4",
-
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
-
"integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.0.0"
-
}
-
},
-
"node_modules/@types/babel__template": {
-
"version": "7.4.1",
-
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
-
"integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
-
"dev": true,
-
"dependencies": {
-
"@babel/parser": "^7.1.0",
-
"@babel/types": "^7.0.0"
-
}
-
},
-
"node_modules/@types/babel__traverse": {
-
"version": "7.20.1",
-
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz",
-
"integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/types": "^7.20.7"
-
}
-
},
-
"node_modules/@types/eslint": {
-
"version": "8.40.0",
-
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.40.0.tgz",
-
"integrity": "sha512-nbq2mvc/tBrK9zQQuItvjJl++GTN5j06DaPtp3hZCpngmG6Q3xoyEmd0TwZI0gAy/G1X0zhGBbr2imsGFdFV0g==",
-
"dev": true,
-
"dependencies": {
-
"@types/estree": "*",
-
"@types/json-schema": "*"
-
}
-
},
-
"node_modules/@types/eslint-scope": {
-
"version": "3.7.4",
-
"resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
-
"integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
-
"dev": true,
-
"dependencies": {
-
"@types/eslint": "*",
-
"@types/estree": "*"
-
}
-
},
-
"node_modules/@types/estree": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
-
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
-
"dev": true
-
},
-
"node_modules/@types/graceful-fs": {
-
"version": "4.1.6",
-
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
-
"integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
-
"dev": true,
-
"dependencies": {
-
"@types/node": "*"
-
}
-
},
-
"node_modules/@types/istanbul-lib-coverage": {
-
"version": "2.0.4",
-
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
-
"integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
-
"dev": true
-
},
-
"node_modules/@types/istanbul-lib-report": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
-
"integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
-
"dev": true,
-
"dependencies": {
-
"@types/istanbul-lib-coverage": "*"
-
}
-
},
-
"node_modules/@types/istanbul-reports": {
-
"version": "3.0.1",
-
"resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
-
"integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
-
"dev": true,
-
"dependencies": {
-
"@types/istanbul-lib-report": "*"
-
}
-
},
-
"node_modules/@types/jest": {
-
"version": "29.5.2",
-
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz",
-
"integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==",
-
"dev": true,
-
"dependencies": {
-
"expect": "^29.0.0",
-
"pretty-format": "^29.0.0"
-
}
-
},
-
"node_modules/@types/json-schema": {
-
"version": "7.0.12",
-
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
-
"integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
-
"dev": true
-
},
-
"node_modules/@types/node": {
-
"version": "20.2.5",
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz",
-
"integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==",
-
"dev": true
-
},
-
"node_modules/@types/prettier": {
-
"version": "2.7.3",
-
"resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
-
"integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
-
"dev": true
-
},
-
"node_modules/@types/semver": {
-
"version": "7.5.0",
-
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
-
"integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
-
"dev": true
-
},
-
"node_modules/@types/stack-utils": {
-
"version": "2.0.1",
-
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
-
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
-
"dev": true
-
},
-
"node_modules/@types/yargs": {
-
"version": "17.0.24",
-
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz",
-
"integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==",
-
"dev": true,
-
"dependencies": {
-
"@types/yargs-parser": "*"
-
}
-
},
-
"node_modules/@types/yargs-parser": {
-
"version": "21.0.0",
-
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
-
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
-
"dev": true
-
},
-
"node_modules/@typescript-eslint/eslint-plugin": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz",
-
"integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==",
-
"dev": true,
-
"dependencies": {
-
"@eslint-community/regexpp": "^4.4.0",
-
"@typescript-eslint/scope-manager": "5.59.8",
-
"@typescript-eslint/type-utils": "5.59.8",
-
"@typescript-eslint/utils": "5.59.8",
-
"debug": "^4.3.4",
-
"grapheme-splitter": "^1.0.4",
-
"ignore": "^5.2.0",
-
"natural-compare-lite": "^1.4.0",
-
"semver": "^7.3.7",
-
"tsutils": "^3.21.0"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
},
-
"peerDependencies": {
-
"@typescript-eslint/parser": "^5.0.0",
-
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
-
},
-
"peerDependenciesMeta": {
-
"typescript": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@typescript-eslint/parser": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz",
-
"integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==",
-
"dev": true,
-
"dependencies": {
-
"@typescript-eslint/scope-manager": "5.59.8",
-
"@typescript-eslint/types": "5.59.8",
-
"@typescript-eslint/typescript-estree": "5.59.8",
-
"debug": "^4.3.4"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
},
-
"peerDependencies": {
-
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
-
},
-
"peerDependenciesMeta": {
-
"typescript": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@typescript-eslint/scope-manager": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz",
-
"integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==",
-
"dev": true,
-
"dependencies": {
-
"@typescript-eslint/types": "5.59.8",
-
"@typescript-eslint/visitor-keys": "5.59.8"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
}
-
},
-
"node_modules/@typescript-eslint/type-utils": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz",
-
"integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==",
-
"dev": true,
-
"dependencies": {
-
"@typescript-eslint/typescript-estree": "5.59.8",
-
"@typescript-eslint/utils": "5.59.8",
-
"debug": "^4.3.4",
-
"tsutils": "^3.21.0"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
},
-
"peerDependencies": {
-
"eslint": "*"
-
},
-
"peerDependenciesMeta": {
-
"typescript": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@typescript-eslint/types": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz",
-
"integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==",
-
"dev": true,
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
}
-
},
-
"node_modules/@typescript-eslint/typescript-estree": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz",
-
"integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==",
-
"dev": true,
-
"dependencies": {
-
"@typescript-eslint/types": "5.59.8",
-
"@typescript-eslint/visitor-keys": "5.59.8",
-
"debug": "^4.3.4",
-
"globby": "^11.1.0",
-
"is-glob": "^4.0.3",
-
"semver": "^7.3.7",
-
"tsutils": "^3.21.0"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
},
-
"peerDependenciesMeta": {
-
"typescript": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@typescript-eslint/utils": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz",
-
"integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==",
-
"dev": true,
-
"dependencies": {
-
"@eslint-community/eslint-utils": "^4.2.0",
-
"@types/json-schema": "^7.0.9",
-
"@types/semver": "^7.3.12",
-
"@typescript-eslint/scope-manager": "5.59.8",
-
"@typescript-eslint/types": "5.59.8",
-
"@typescript-eslint/typescript-estree": "5.59.8",
-
"eslint-scope": "^5.1.1",
-
"semver": "^7.3.7"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
},
-
"peerDependencies": {
-
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
-
}
-
},
-
"node_modules/@typescript-eslint/visitor-keys": {
-
"version": "5.59.8",
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz",
-
"integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==",
-
"dev": true,
-
"dependencies": {
-
"@typescript-eslint/types": "5.59.8",
-
"eslint-visitor-keys": "^3.3.0"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/typescript-eslint"
-
}
-
},
-
"node_modules/@webassemblyjs/ast": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
-
"integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/helper-numbers": "1.11.6",
-
"@webassemblyjs/helper-wasm-bytecode": "1.11.6"
-
}
-
},
-
"node_modules/@webassemblyjs/floating-point-hex-parser": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
-
"integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
-
"dev": true
-
},
-
"node_modules/@webassemblyjs/helper-api-error": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
-
"integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
-
"dev": true
-
},
-
"node_modules/@webassemblyjs/helper-buffer": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
-
"integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
-
"dev": true
-
},
-
"node_modules/@webassemblyjs/helper-numbers": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
-
"integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/floating-point-hex-parser": "1.11.6",
-
"@webassemblyjs/helper-api-error": "1.11.6",
-
"@xtuc/long": "4.2.2"
-
}
-
},
-
"node_modules/@webassemblyjs/helper-wasm-bytecode": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
-
"integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
-
"dev": true
-
},
-
"node_modules/@webassemblyjs/helper-wasm-section": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
-
"integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/ast": "1.11.6",
-
"@webassemblyjs/helper-buffer": "1.11.6",
-
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-
"@webassemblyjs/wasm-gen": "1.11.6"
-
}
-
},
-
"node_modules/@webassemblyjs/ieee754": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
-
"integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
-
"dev": true,
-
"dependencies": {
-
"@xtuc/ieee754": "^1.2.0"
-
}
-
},
-
"node_modules/@webassemblyjs/leb128": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
-
"integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
-
"dev": true,
-
"dependencies": {
-
"@xtuc/long": "4.2.2"
-
}
-
},
-
"node_modules/@webassemblyjs/utf8": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
-
"integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
-
"dev": true
-
},
-
"node_modules/@webassemblyjs/wasm-edit": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
-
"integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/ast": "1.11.6",
-
"@webassemblyjs/helper-buffer": "1.11.6",
-
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-
"@webassemblyjs/helper-wasm-section": "1.11.6",
-
"@webassemblyjs/wasm-gen": "1.11.6",
-
"@webassemblyjs/wasm-opt": "1.11.6",
-
"@webassemblyjs/wasm-parser": "1.11.6",
-
"@webassemblyjs/wast-printer": "1.11.6"
-
}
-
},
-
"node_modules/@webassemblyjs/wasm-gen": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
-
"integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/ast": "1.11.6",
-
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-
"@webassemblyjs/ieee754": "1.11.6",
-
"@webassemblyjs/leb128": "1.11.6",
-
"@webassemblyjs/utf8": "1.11.6"
-
}
-
},
-
"node_modules/@webassemblyjs/wasm-opt": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
-
"integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/ast": "1.11.6",
-
"@webassemblyjs/helper-buffer": "1.11.6",
-
"@webassemblyjs/wasm-gen": "1.11.6",
-
"@webassemblyjs/wasm-parser": "1.11.6"
-
}
-
},
-
"node_modules/@webassemblyjs/wasm-parser": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
-
"integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/ast": "1.11.6",
-
"@webassemblyjs/helper-api-error": "1.11.6",
-
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-
"@webassemblyjs/ieee754": "1.11.6",
-
"@webassemblyjs/leb128": "1.11.6",
-
"@webassemblyjs/utf8": "1.11.6"
-
}
-
},
-
"node_modules/@webassemblyjs/wast-printer": {
-
"version": "1.11.6",
-
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
-
"integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
-
"dev": true,
-
"dependencies": {
-
"@webassemblyjs/ast": "1.11.6",
-
"@xtuc/long": "4.2.2"
-
}
-
},
-
"node_modules/@webpack-cli/configtest": {
-
"version": "2.1.1",
-
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
-
"integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
-
"dev": true,
-
"engines": {
-
"node": ">=14.15.0"
-
},
-
"peerDependencies": {
-
"webpack": "5.x.x",
-
"webpack-cli": "5.x.x"
-
}
-
},
-
"node_modules/@webpack-cli/info": {
-
"version": "2.0.2",
-
"resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
-
"integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
-
"dev": true,
-
"engines": {
-
"node": ">=14.15.0"
-
},
-
"peerDependencies": {
-
"webpack": "5.x.x",
-
"webpack-cli": "5.x.x"
-
}
-
},
-
"node_modules/@webpack-cli/serve": {
-
"version": "2.0.5",
-
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
-
"integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=14.15.0"
-
},
-
"peerDependencies": {
-
"webpack": "5.x.x",
-
"webpack-cli": "5.x.x"
-
},
-
"peerDependenciesMeta": {
-
"webpack-dev-server": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/@xtuc/ieee754": {
-
"version": "1.2.0",
-
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
-
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
-
"dev": true
-
},
-
"node_modules/@xtuc/long": {
-
"version": "4.2.2",
-
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
-
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
-
"dev": true
-
},
-
"node_modules/acorn": {
-
"version": "8.8.2",
-
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
-
"integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
-
"dev": true,
-
"bin": {
-
"acorn": "bin/acorn"
-
},
-
"engines": {
-
"node": ">=0.4.0"
-
}
-
},
-
"node_modules/acorn-import-assertions": {
-
"version": "1.9.0",
-
"resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
-
"integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
-
"dev": true,
-
"peerDependencies": {
-
"acorn": "^8"
-
}
-
},
-
"node_modules/acorn-jsx": {
-
"version": "5.3.2",
-
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-
"dev": true,
-
"peerDependencies": {
-
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
-
}
-
},
-
"node_modules/ajv": {
-
"version": "6.12.6",
-
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
-
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-
"dev": true,
-
"dependencies": {
-
"fast-deep-equal": "^3.1.1",
-
"fast-json-stable-stringify": "^2.0.0",
-
"json-schema-traverse": "^0.4.1",
-
"uri-js": "^4.2.2"
-
},
-
"funding": {
-
"type": "github",
-
"url": "https://github.com/sponsors/epoberezkin"
-
}
-
},
-
"node_modules/ajv-keywords": {
-
"version": "3.5.2",
-
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
-
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
-
"dev": true,
-
"peerDependencies": {
-
"ajv": "^6.9.1"
-
}
-
},
-
"node_modules/ansi-escapes": {
-
"version": "4.3.2",
-
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
-
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
-
"dev": true,
-
"dependencies": {
-
"type-fest": "^0.21.3"
-
},
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/ansi-escapes/node_modules/type-fest": {
-
"version": "0.21.3",
-
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
-
"integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/ansi-regex": {
-
"version": "5.0.1",
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/ansi-styles": {
-
"version": "4.3.0",
-
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-
"dev": true,
-
"dependencies": {
-
"color-convert": "^2.0.1"
-
},
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
-
}
-
},
-
"node_modules/anymatch": {
-
"version": "3.1.3",
-
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
-
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
-
"dev": true,
-
"dependencies": {
-
"normalize-path": "^3.0.0",
-
"picomatch": "^2.0.4"
-
},
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/argparse": {
-
"version": "2.0.1",
-
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
-
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
-
"dev": true
-
},
-
"node_modules/array-union": {
-
"version": "2.1.0",
-
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
-
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/babel-jest": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
-
"integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==",
-
"dev": true,
-
"dependencies": {
-
"@jest/transform": "^29.5.0",
-
"@types/babel__core": "^7.1.14",
-
"babel-plugin-istanbul": "^6.1.1",
-
"babel-preset-jest": "^29.5.0",
-
"chalk": "^4.0.0",
-
"graceful-fs": "^4.2.9",
-
"slash": "^3.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.8.0"
-
}
-
},
-
"node_modules/babel-plugin-istanbul": {
-
"version": "6.1.1",
-
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
-
"integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/helper-plugin-utils": "^7.0.0",
-
"@istanbuljs/load-nyc-config": "^1.0.0",
-
"@istanbuljs/schema": "^0.1.2",
-
"istanbul-lib-instrument": "^5.0.4",
-
"test-exclude": "^6.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/babel-plugin-jest-hoist": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz",
-
"integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==",
-
"dev": true,
-
"dependencies": {
-
"@babel/template": "^7.3.3",
-
"@babel/types": "^7.3.3",
-
"@types/babel__core": "^7.1.14",
-
"@types/babel__traverse": "^7.0.6"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/babel-preset-current-node-syntax": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
-
"integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
-
"dev": true,
-
"dependencies": {
-
"@babel/plugin-syntax-async-generators": "^7.8.4",
-
"@babel/plugin-syntax-bigint": "^7.8.3",
-
"@babel/plugin-syntax-class-properties": "^7.8.3",
-
"@babel/plugin-syntax-import-meta": "^7.8.3",
-
"@babel/plugin-syntax-json-strings": "^7.8.3",
-
"@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
-
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
-
"@babel/plugin-syntax-numeric-separator": "^7.8.3",
-
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
-
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
-
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
-
"@babel/plugin-syntax-top-level-await": "^7.8.3"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0"
-
}
-
},
-
"node_modules/babel-preset-jest": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz",
-
"integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==",
-
"dev": true,
-
"dependencies": {
-
"babel-plugin-jest-hoist": "^29.5.0",
-
"babel-preset-current-node-syntax": "^1.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"@babel/core": "^7.0.0"
-
}
-
},
-
"node_modules/balanced-match": {
-
"version": "1.0.2",
-
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
-
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
-
"dev": true
-
},
-
"node_modules/benchmark": {
-
"version": "2.1.4",
-
"resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz",
-
"integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==",
-
"dev": true,
-
"dependencies": {
-
"lodash": "^4.17.4",
-
"platform": "^1.3.3"
-
}
-
},
-
"node_modules/brace-expansion": {
-
"version": "1.1.11",
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-
"dev": true,
-
"dependencies": {
-
"balanced-match": "^1.0.0",
-
"concat-map": "0.0.1"
-
}
-
},
-
"node_modules/braces": {
-
"version": "3.0.2",
-
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-
"dev": true,
-
"dependencies": {
-
"fill-range": "^7.0.1"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/browserslist": {
-
"version": "4.21.7",
-
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz",
-
"integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "opencollective",
-
"url": "https://opencollective.com/browserslist"
-
},
-
{
-
"type": "tidelift",
-
"url": "https://tidelift.com/funding/github/npm/browserslist"
-
},
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/ai"
-
}
-
],
-
"dependencies": {
-
"caniuse-lite": "^1.0.30001489",
-
"electron-to-chromium": "^1.4.411",
-
"node-releases": "^2.0.12",
-
"update-browserslist-db": "^1.0.11"
-
},
-
"bin": {
-
"browserslist": "cli.js"
-
},
-
"engines": {
-
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
-
}
-
},
-
"node_modules/bs-logger": {
-
"version": "0.2.6",
-
"resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
-
"integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
-
"dev": true,
-
"dependencies": {
-
"fast-json-stable-stringify": "2.x"
-
},
-
"engines": {
-
"node": ">= 6"
-
}
-
},
-
"node_modules/bser": {
-
"version": "2.1.1",
-
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
-
"integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
-
"dev": true,
-
"dependencies": {
-
"node-int64": "^0.4.0"
-
}
-
},
-
"node_modules/buffer-from": {
-
"version": "1.1.2",
-
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
-
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
-
"dev": true
-
},
-
"node_modules/callsites": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/camelcase": {
-
"version": "5.3.1",
-
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/caniuse-lite": {
-
"version": "1.0.30001494",
-
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001494.tgz",
-
"integrity": "sha512-sY2B5Qyl46ZzfYDegrl8GBCzdawSLT4ThM9b9F+aDYUrAG2zCOyMbd2Tq34mS1g4ZKBfjRlzOohQMxx28x6wJg==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "opencollective",
-
"url": "https://opencollective.com/browserslist"
-
},
-
{
-
"type": "tidelift",
-
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-
},
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/ai"
-
}
-
]
-
},
-
"node_modules/chalk": {
-
"version": "4.1.2",
-
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-
"dev": true,
-
"dependencies": {
-
"ansi-styles": "^4.1.0",
-
"supports-color": "^7.1.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/chalk/chalk?sponsor=1"
-
}
-
},
-
"node_modules/char-regex": {
-
"version": "1.0.2",
-
"resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
-
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/chrome-trace-event": {
-
"version": "1.0.3",
-
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
-
"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.0"
-
}
-
},
-
"node_modules/ci-info": {
-
"version": "3.8.0",
-
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz",
-
"integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/sibiraj-s"
-
}
-
],
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/cjs-module-lexer": {
-
"version": "1.2.2",
-
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
-
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
-
"dev": true
-
},
-
"node_modules/cliui": {
-
"version": "8.0.1",
-
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
-
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
-
"dev": true,
-
"dependencies": {
-
"string-width": "^4.2.0",
-
"strip-ansi": "^6.0.1",
-
"wrap-ansi": "^7.0.0"
-
},
-
"engines": {
-
"node": ">=12"
-
}
-
},
-
"node_modules/clone-deep": {
-
"version": "4.0.1",
-
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
-
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
-
"dev": true,
-
"dependencies": {
-
"is-plain-object": "^2.0.4",
-
"kind-of": "^6.0.2",
-
"shallow-clone": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/co": {
-
"version": "4.6.0",
-
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
-
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
-
"dev": true,
-
"engines": {
-
"iojs": ">= 1.0.0",
-
"node": ">= 0.12.0"
-
}
-
},
-
"node_modules/collect-v8-coverage": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
-
"integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
-
"dev": true
-
},
-
"node_modules/color-convert": {
-
"version": "2.0.1",
-
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-
"dev": true,
-
"dependencies": {
-
"color-name": "~1.1.4"
-
},
-
"engines": {
-
"node": ">=7.0.0"
-
}
-
},
-
"node_modules/color-name": {
-
"version": "1.1.4",
-
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-
"dev": true
-
},
-
"node_modules/colorette": {
-
"version": "2.0.20",
-
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
-
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
-
"dev": true
-
},
-
"node_modules/commander": {
-
"version": "2.20.3",
-
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
-
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
-
"dev": true
-
},
-
"node_modules/concat-map": {
-
"version": "0.0.1",
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
-
"dev": true
-
},
-
"node_modules/convert-source-map": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
-
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
-
"dev": true
-
},
-
"node_modules/cross-spawn": {
-
"version": "7.0.3",
-
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
-
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-
"dev": true,
-
"dependencies": {
-
"path-key": "^3.1.0",
-
"shebang-command": "^2.0.0",
-
"which": "^2.0.1"
-
},
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/debug": {
-
"version": "4.3.4",
-
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-
"dev": true,
-
"dependencies": {
-
"ms": "2.1.2"
-
},
-
"engines": {
-
"node": ">=6.0"
-
},
-
"peerDependenciesMeta": {
-
"supports-color": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/dedent": {
-
"version": "0.7.0",
-
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
-
"integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
-
"dev": true
-
},
-
"node_modules/deep-is": {
-
"version": "0.1.4",
-
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
-
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
-
"dev": true
-
},
-
"node_modules/deepmerge": {
-
"version": "4.3.1",
-
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
-
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/detect-newline": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
-
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/diff-sequences": {
-
"version": "29.4.3",
-
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
-
"integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
-
"dev": true,
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/dir-glob": {
-
"version": "3.0.1",
-
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
-
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
-
"dev": true,
-
"dependencies": {
-
"path-type": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/doctrine": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-
"dev": true,
-
"dependencies": {
-
"esutils": "^2.0.2"
-
},
-
"engines": {
-
"node": ">=6.0.0"
-
}
-
},
-
"node_modules/electron-to-chromium": {
-
"version": "1.4.419",
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz",
-
"integrity": "sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw==",
-
"dev": true
-
},
-
"node_modules/emittery": {
-
"version": "0.13.1",
-
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
-
"integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=12"
-
},
-
"funding": {
-
"url": "https://github.com/sindresorhus/emittery?sponsor=1"
-
}
-
},
-
"node_modules/emoji-regex": {
-
"version": "8.0.0",
-
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-
"dev": true
-
},
-
"node_modules/enhanced-resolve": {
-
"version": "5.14.1",
-
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz",
-
"integrity": "sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==",
-
"dev": true,
-
"dependencies": {
-
"graceful-fs": "^4.2.4",
-
"tapable": "^2.2.0"
-
},
-
"engines": {
-
"node": ">=10.13.0"
-
}
-
},
-
"node_modules/envinfo": {
-
"version": "7.8.1",
-
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
-
"integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
-
"dev": true,
-
"bin": {
-
"envinfo": "dist/cli.js"
-
},
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/error-ex": {
-
"version": "1.3.2",
-
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
-
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
-
"dev": true,
-
"dependencies": {
-
"is-arrayish": "^0.2.1"
-
}
-
},
-
"node_modules/es-module-lexer": {
-
"version": "1.2.1",
-
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz",
-
"integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==",
-
"dev": true
-
},
-
"node_modules/escalade": {
-
"version": "3.1.1",
-
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
-
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/escape-string-regexp": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
-
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/eslint": {
-
"version": "8.42.0",
-
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
-
"integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
-
"dev": true,
-
"dependencies": {
-
"@eslint-community/eslint-utils": "^4.2.0",
-
"@eslint-community/regexpp": "^4.4.0",
-
"@eslint/eslintrc": "^2.0.3",
-
"@eslint/js": "8.42.0",
-
"@humanwhocodes/config-array": "^0.11.10",
-
"@humanwhocodes/module-importer": "^1.0.1",
-
"@nodelib/fs.walk": "^1.2.8",
-
"ajv": "^6.10.0",
-
"chalk": "^4.0.0",
-
"cross-spawn": "^7.0.2",
-
"debug": "^4.3.2",
-
"doctrine": "^3.0.0",
-
"escape-string-regexp": "^4.0.0",
-
"eslint-scope": "^7.2.0",
-
"eslint-visitor-keys": "^3.4.1",
-
"espree": "^9.5.2",
-
"esquery": "^1.4.2",
-
"esutils": "^2.0.2",
-
"fast-deep-equal": "^3.1.3",
-
"file-entry-cache": "^6.0.1",
-
"find-up": "^5.0.0",
-
"glob-parent": "^6.0.2",
-
"globals": "^13.19.0",
-
"graphemer": "^1.4.0",
-
"ignore": "^5.2.0",
-
"import-fresh": "^3.0.0",
-
"imurmurhash": "^0.1.4",
-
"is-glob": "^4.0.0",
-
"is-path-inside": "^3.0.3",
-
"js-yaml": "^4.1.0",
-
"json-stable-stringify-without-jsonify": "^1.0.1",
-
"levn": "^0.4.1",
-
"lodash.merge": "^4.6.2",
-
"minimatch": "^3.1.2",
-
"natural-compare": "^1.4.0",
-
"optionator": "^0.9.1",
-
"strip-ansi": "^6.0.1",
-
"strip-json-comments": "^3.1.0",
-
"text-table": "^0.2.0"
-
},
-
"bin": {
-
"eslint": "bin/eslint.js"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"url": "https://opencollective.com/eslint"
-
}
-
},
-
"node_modules/eslint-scope": {
-
"version": "5.1.1",
-
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
-
"dev": true,
-
"dependencies": {
-
"esrecurse": "^4.3.0",
-
"estraverse": "^4.1.1"
-
},
-
"engines": {
-
"node": ">=8.0.0"
-
}
-
},
-
"node_modules/eslint-visitor-keys": {
-
"version": "3.4.1",
-
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
-
"integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
-
"dev": true,
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"url": "https://opencollective.com/eslint"
-
}
-
},
-
"node_modules/eslint/node_modules/eslint-scope": {
-
"version": "7.2.0",
-
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
-
"integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
-
"dev": true,
-
"dependencies": {
-
"esrecurse": "^4.3.0",
-
"estraverse": "^5.2.0"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"url": "https://opencollective.com/eslint"
-
}
-
},
-
"node_modules/eslint/node_modules/estraverse": {
-
"version": "5.3.0",
-
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-
"dev": true,
-
"engines": {
-
"node": ">=4.0"
-
}
-
},
-
"node_modules/espree": {
-
"version": "9.5.2",
-
"resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
-
"integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
-
"dev": true,
-
"dependencies": {
-
"acorn": "^8.8.0",
-
"acorn-jsx": "^5.3.2",
-
"eslint-visitor-keys": "^3.4.1"
-
},
-
"engines": {
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
},
-
"funding": {
-
"url": "https://opencollective.com/eslint"
-
}
-
},
-
"node_modules/esprima": {
-
"version": "4.0.1",
-
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-
"dev": true,
-
"bin": {
-
"esparse": "bin/esparse.js",
-
"esvalidate": "bin/esvalidate.js"
-
},
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/esquery": {
-
"version": "1.5.0",
-
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
-
"integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
-
"dev": true,
-
"dependencies": {
-
"estraverse": "^5.1.0"
-
},
-
"engines": {
-
"node": ">=0.10"
-
}
-
},
-
"node_modules/esquery/node_modules/estraverse": {
-
"version": "5.3.0",
-
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-
"dev": true,
-
"engines": {
-
"node": ">=4.0"
-
}
-
},
-
"node_modules/esrecurse": {
-
"version": "4.3.0",
-
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
-
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-
"dev": true,
-
"dependencies": {
-
"estraverse": "^5.2.0"
-
},
-
"engines": {
-
"node": ">=4.0"
-
}
-
},
-
"node_modules/esrecurse/node_modules/estraverse": {
-
"version": "5.3.0",
-
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-
"dev": true,
-
"engines": {
-
"node": ">=4.0"
-
}
-
},
-
"node_modules/estraverse": {
-
"version": "4.3.0",
-
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-
"dev": true,
-
"engines": {
-
"node": ">=4.0"
-
}
-
},
-
"node_modules/esutils": {
-
"version": "2.0.3",
-
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
-
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/events": {
-
"version": "3.3.0",
-
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
-
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.8.x"
-
}
-
},
-
"node_modules/execa": {
-
"version": "5.1.1",
-
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
-
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
-
"dev": true,
-
"dependencies": {
-
"cross-spawn": "^7.0.3",
-
"get-stream": "^6.0.0",
-
"human-signals": "^2.1.0",
-
"is-stream": "^2.0.0",
-
"merge-stream": "^2.0.0",
-
"npm-run-path": "^4.0.1",
-
"onetime": "^5.1.2",
-
"signal-exit": "^3.0.3",
-
"strip-final-newline": "^2.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sindresorhus/execa?sponsor=1"
-
}
-
},
-
"node_modules/exit": {
-
"version": "0.1.2",
-
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
-
"integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
-
"dev": true,
-
"engines": {
-
"node": ">= 0.8.0"
-
}
-
},
-
"node_modules/expect": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz",
-
"integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==",
-
"dev": true,
-
"dependencies": {
-
"@jest/expect-utils": "^29.5.0",
-
"jest-get-type": "^29.4.3",
-
"jest-matcher-utils": "^29.5.0",
-
"jest-message-util": "^29.5.0",
-
"jest-util": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/fast-deep-equal": {
-
"version": "3.1.3",
-
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
-
"dev": true
-
},
-
"node_modules/fast-glob": {
-
"version": "3.2.12",
-
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
-
"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
-
"dev": true,
-
"dependencies": {
-
"@nodelib/fs.stat": "^2.0.2",
-
"@nodelib/fs.walk": "^1.2.3",
-
"glob-parent": "^5.1.2",
-
"merge2": "^1.3.0",
-
"micromatch": "^4.0.4"
-
},
-
"engines": {
-
"node": ">=8.6.0"
-
}
-
},
-
"node_modules/fast-glob/node_modules/glob-parent": {
-
"version": "5.1.2",
-
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-
"dev": true,
-
"dependencies": {
-
"is-glob": "^4.0.1"
-
},
-
"engines": {
-
"node": ">= 6"
-
}
-
},
-
"node_modules/fast-json-stable-stringify": {
-
"version": "2.1.0",
-
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-
"dev": true
-
},
-
"node_modules/fast-levenshtein": {
-
"version": "2.0.6",
-
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
-
"dev": true
-
},
-
"node_modules/fastest-levenshtein": {
-
"version": "1.0.16",
-
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
-
"integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
-
"dev": true,
-
"engines": {
-
"node": ">= 4.9.1"
-
}
-
},
-
"node_modules/fastq": {
-
"version": "1.15.0",
-
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
-
"integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
-
"dev": true,
-
"dependencies": {
-
"reusify": "^1.0.4"
-
}
-
},
-
"node_modules/fb-watchman": {
-
"version": "2.0.2",
-
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
-
"integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
-
"dev": true,
-
"dependencies": {
-
"bser": "2.1.1"
-
}
-
},
-
"node_modules/file-entry-cache": {
-
"version": "6.0.1",
-
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-
"dev": true,
-
"dependencies": {
-
"flat-cache": "^3.0.4"
-
},
-
"engines": {
-
"node": "^10.12.0 || >=12.0.0"
-
}
-
},
-
"node_modules/fill-range": {
-
"version": "7.0.1",
-
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-
"dev": true,
-
"dependencies": {
-
"to-regex-range": "^5.0.1"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/find-up": {
-
"version": "5.0.0",
-
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
-
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
-
"dev": true,
-
"dependencies": {
-
"locate-path": "^6.0.0",
-
"path-exists": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/flat-cache": {
-
"version": "3.0.4",
-
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
-
"dev": true,
-
"dependencies": {
-
"flatted": "^3.1.0",
-
"rimraf": "^3.0.2"
-
},
-
"engines": {
-
"node": "^10.12.0 || >=12.0.0"
-
}
-
},
-
"node_modules/flatted": {
-
"version": "3.2.7",
-
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
-
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
-
"dev": true
-
},
-
"node_modules/fs.realpath": {
-
"version": "1.0.0",
-
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
-
"dev": true
-
},
-
"node_modules/fsevents": {
-
"version": "2.3.2",
-
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
-
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
-
"dev": true,
-
"hasInstallScript": true,
-
"optional": true,
-
"os": [
-
"darwin"
-
],
-
"engines": {
-
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
-
}
-
},
-
"node_modules/function-bind": {
-
"version": "1.1.1",
-
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-
"dev": true
-
},
-
"node_modules/gensync": {
-
"version": "1.0.0-beta.2",
-
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
-
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.9.0"
-
}
-
},
-
"node_modules/get-caller-file": {
-
"version": "2.0.5",
-
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
-
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-
"dev": true,
-
"engines": {
-
"node": "6.* || 8.* || >= 10.*"
-
}
-
},
-
"node_modules/get-package-type": {
-
"version": "0.1.0",
-
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
-
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
-
"dev": true,
-
"engines": {
-
"node": ">=8.0.0"
-
}
-
},
-
"node_modules/get-stream": {
-
"version": "6.0.1",
-
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
-
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/glob": {
-
"version": "7.2.3",
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
-
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
-
"dev": true,
-
"dependencies": {
-
"fs.realpath": "^1.0.0",
-
"inflight": "^1.0.4",
-
"inherits": "2",
-
"minimatch": "^3.1.1",
-
"once": "^1.3.0",
-
"path-is-absolute": "^1.0.0"
-
},
-
"engines": {
-
"node": "*"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/isaacs"
-
}
-
},
-
"node_modules/glob-parent": {
-
"version": "6.0.2",
-
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-
"dev": true,
-
"dependencies": {
-
"is-glob": "^4.0.3"
-
},
-
"engines": {
-
"node": ">=10.13.0"
-
}
-
},
-
"node_modules/glob-to-regexp": {
-
"version": "0.4.1",
-
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
-
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
-
"dev": true
-
},
-
"node_modules/globals": {
-
"version": "13.20.0",
-
"resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
-
"integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
-
"dev": true,
-
"dependencies": {
-
"type-fest": "^0.20.2"
-
},
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/globby": {
-
"version": "11.1.0",
-
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
-
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-
"dev": true,
-
"dependencies": {
-
"array-union": "^2.1.0",
-
"dir-glob": "^3.0.1",
-
"fast-glob": "^3.2.9",
-
"ignore": "^5.2.0",
-
"merge2": "^1.4.1",
-
"slash": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/graceful-fs": {
-
"version": "4.2.11",
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
-
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
-
"dev": true
-
},
-
"node_modules/grapheme-splitter": {
-
"version": "1.0.4",
-
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
-
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
-
"dev": true
-
},
-
"node_modules/graphemer": {
-
"version": "1.4.0",
-
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
-
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
-
"dev": true
-
},
-
"node_modules/has": {
-
"version": "1.0.3",
-
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-
"dev": true,
-
"dependencies": {
-
"function-bind": "^1.1.1"
-
},
-
"engines": {
-
"node": ">= 0.4.0"
-
}
-
},
-
"node_modules/has-flag": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/html-escaper": {
-
"version": "2.0.2",
-
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
-
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
-
"dev": true
-
},
-
"node_modules/human-signals": {
-
"version": "2.1.0",
-
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
-
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
-
"dev": true,
-
"engines": {
-
"node": ">=10.17.0"
-
}
-
},
-
"node_modules/ignore": {
-
"version": "5.2.4",
-
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
-
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
-
"dev": true,
-
"engines": {
-
"node": ">= 4"
-
}
-
},
-
"node_modules/import-fresh": {
-
"version": "3.3.0",
-
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
-
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-
"dev": true,
-
"dependencies": {
-
"parent-module": "^1.0.0",
-
"resolve-from": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=6"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/import-local": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
-
"integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
-
"dev": true,
-
"dependencies": {
-
"pkg-dir": "^4.2.0",
-
"resolve-cwd": "^3.0.0"
-
},
-
"bin": {
-
"import-local-fixture": "fixtures/cli.js"
-
},
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/imurmurhash": {
-
"version": "0.1.4",
-
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.8.19"
-
}
-
},
-
"node_modules/inflight": {
-
"version": "1.0.6",
-
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
-
"dev": true,
-
"dependencies": {
-
"once": "^1.3.0",
-
"wrappy": "1"
-
}
-
},
-
"node_modules/inherits": {
-
"version": "2.0.4",
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
-
"dev": true
-
},
-
"node_modules/interpret": {
-
"version": "3.1.1",
-
"resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
-
"integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=10.13.0"
-
}
-
},
-
"node_modules/is-arrayish": {
-
"version": "0.2.1",
-
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
-
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
-
"dev": true
-
},
-
"node_modules/is-core-module": {
-
"version": "2.12.1",
-
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
-
"integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
-
"dev": true,
-
"dependencies": {
-
"has": "^1.0.3"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/ljharb"
-
}
-
},
-
"node_modules/is-extglob": {
-
"version": "2.1.1",
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/is-fullwidth-code-point": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/is-generator-fn": {
-
"version": "2.1.0",
-
"resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
-
"integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/is-glob": {
-
"version": "4.0.3",
-
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
-
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-
"dev": true,
-
"dependencies": {
-
"is-extglob": "^2.1.1"
-
},
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/is-number": {
-
"version": "7.0.0",
-
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.12.0"
-
}
-
},
-
"node_modules/is-path-inside": {
-
"version": "3.0.3",
-
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
-
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/is-plain-object": {
-
"version": "2.0.4",
-
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
-
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
-
"dev": true,
-
"dependencies": {
-
"isobject": "^3.0.1"
-
},
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/is-stream": {
-
"version": "2.0.1",
-
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
-
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/isexe": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
-
"dev": true
-
},
-
"node_modules/isobject": {
-
"version": "3.0.1",
-
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
-
"integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/istanbul-lib-coverage": {
-
"version": "3.2.0",
-
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
-
"integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/istanbul-lib-instrument": {
-
"version": "5.2.1",
-
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
-
"integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/core": "^7.12.3",
-
"@babel/parser": "^7.14.7",
-
"@istanbuljs/schema": "^0.1.2",
-
"istanbul-lib-coverage": "^3.2.0",
-
"semver": "^6.3.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/istanbul-lib-instrument/node_modules/semver": {
-
"version": "6.3.0",
-
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-
"dev": true,
-
"bin": {
-
"semver": "bin/semver.js"
-
}
-
},
-
"node_modules/istanbul-lib-report": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
-
"integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
-
"dev": true,
-
"dependencies": {
-
"istanbul-lib-coverage": "^3.0.0",
-
"make-dir": "^3.0.0",
-
"supports-color": "^7.1.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/istanbul-lib-source-maps": {
-
"version": "4.0.1",
-
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
-
"integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
-
"dev": true,
-
"dependencies": {
-
"debug": "^4.1.1",
-
"istanbul-lib-coverage": "^3.0.0",
-
"source-map": "^0.6.1"
-
},
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/istanbul-reports": {
-
"version": "3.1.5",
-
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
-
"integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
-
"dev": true,
-
"dependencies": {
-
"html-escaper": "^2.0.0",
-
"istanbul-lib-report": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/jest": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
-
"integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/core": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"import-local": "^3.0.2",
-
"jest-cli": "^29.5.0"
-
},
-
"bin": {
-
"jest": "bin/jest.js"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-
},
-
"peerDependenciesMeta": {
-
"node-notifier": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/jest-changed-files": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz",
-
"integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==",
-
"dev": true,
-
"dependencies": {
-
"execa": "^5.0.0",
-
"p-limit": "^3.1.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-circus": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz",
-
"integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==",
-
"dev": true,
-
"dependencies": {
-
"@jest/environment": "^29.5.0",
-
"@jest/expect": "^29.5.0",
-
"@jest/test-result": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"chalk": "^4.0.0",
-
"co": "^4.6.0",
-
"dedent": "^0.7.0",
-
"is-generator-fn": "^2.0.0",
-
"jest-each": "^29.5.0",
-
"jest-matcher-utils": "^29.5.0",
-
"jest-message-util": "^29.5.0",
-
"jest-runtime": "^29.5.0",
-
"jest-snapshot": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"p-limit": "^3.1.0",
-
"pretty-format": "^29.5.0",
-
"pure-rand": "^6.0.0",
-
"slash": "^3.0.0",
-
"stack-utils": "^2.0.3"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-cli": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz",
-
"integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==",
-
"dev": true,
-
"dependencies": {
-
"@jest/core": "^29.5.0",
-
"@jest/test-result": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"chalk": "^4.0.0",
-
"exit": "^0.1.2",
-
"graceful-fs": "^4.2.9",
-
"import-local": "^3.0.2",
-
"jest-config": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"jest-validate": "^29.5.0",
-
"prompts": "^2.0.1",
-
"yargs": "^17.3.1"
-
},
-
"bin": {
-
"jest": "bin/jest.js"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-
},
-
"peerDependenciesMeta": {
-
"node-notifier": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/jest-config": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz",
-
"integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/core": "^7.11.6",
-
"@jest/test-sequencer": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"babel-jest": "^29.5.0",
-
"chalk": "^4.0.0",
-
"ci-info": "^3.2.0",
-
"deepmerge": "^4.2.2",
-
"glob": "^7.1.3",
-
"graceful-fs": "^4.2.9",
-
"jest-circus": "^29.5.0",
-
"jest-environment-node": "^29.5.0",
-
"jest-get-type": "^29.4.3",
-
"jest-regex-util": "^29.4.3",
-
"jest-resolve": "^29.5.0",
-
"jest-runner": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"jest-validate": "^29.5.0",
-
"micromatch": "^4.0.4",
-
"parse-json": "^5.2.0",
-
"pretty-format": "^29.5.0",
-
"slash": "^3.0.0",
-
"strip-json-comments": "^3.1.1"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"@types/node": "*",
-
"ts-node": ">=9.0.0"
-
},
-
"peerDependenciesMeta": {
-
"@types/node": {
-
"optional": true
-
},
-
"ts-node": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/jest-diff": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
-
"integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
-
"dev": true,
-
"dependencies": {
-
"chalk": "^4.0.0",
-
"diff-sequences": "^29.4.3",
-
"jest-get-type": "^29.4.3",
-
"pretty-format": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-docblock": {
-
"version": "29.4.3",
-
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz",
-
"integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==",
-
"dev": true,
-
"dependencies": {
-
"detect-newline": "^3.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-each": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz",
-
"integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"chalk": "^4.0.0",
-
"jest-get-type": "^29.4.3",
-
"jest-util": "^29.5.0",
-
"pretty-format": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-environment-node": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz",
-
"integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==",
-
"dev": true,
-
"dependencies": {
-
"@jest/environment": "^29.5.0",
-
"@jest/fake-timers": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"jest-mock": "^29.5.0",
-
"jest-util": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-get-type": {
-
"version": "29.4.3",
-
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
-
"integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
-
"dev": true,
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-haste-map": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz",
-
"integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"@types/graceful-fs": "^4.1.3",
-
"@types/node": "*",
-
"anymatch": "^3.0.3",
-
"fb-watchman": "^2.0.0",
-
"graceful-fs": "^4.2.9",
-
"jest-regex-util": "^29.4.3",
-
"jest-util": "^29.5.0",
-
"jest-worker": "^29.5.0",
-
"micromatch": "^4.0.4",
-
"walker": "^1.0.8"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"optionalDependencies": {
-
"fsevents": "^2.3.2"
-
}
-
},
-
"node_modules/jest-leak-detector": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz",
-
"integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==",
-
"dev": true,
-
"dependencies": {
-
"jest-get-type": "^29.4.3",
-
"pretty-format": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-matcher-utils": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz",
-
"integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==",
-
"dev": true,
-
"dependencies": {
-
"chalk": "^4.0.0",
-
"jest-diff": "^29.5.0",
-
"jest-get-type": "^29.4.3",
-
"pretty-format": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-message-util": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz",
-
"integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==",
-
"dev": true,
-
"dependencies": {
-
"@babel/code-frame": "^7.12.13",
-
"@jest/types": "^29.5.0",
-
"@types/stack-utils": "^2.0.0",
-
"chalk": "^4.0.0",
-
"graceful-fs": "^4.2.9",
-
"micromatch": "^4.0.4",
-
"pretty-format": "^29.5.0",
-
"slash": "^3.0.0",
-
"stack-utils": "^2.0.3"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-mock": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz",
-
"integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"jest-util": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-pnp-resolver": {
-
"version": "1.2.3",
-
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
-
"integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
},
-
"peerDependencies": {
-
"jest-resolve": "*"
-
},
-
"peerDependenciesMeta": {
-
"jest-resolve": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/jest-regex-util": {
-
"version": "29.4.3",
-
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz",
-
"integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==",
-
"dev": true,
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-resolve": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz",
-
"integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==",
-
"dev": true,
-
"dependencies": {
-
"chalk": "^4.0.0",
-
"graceful-fs": "^4.2.9",
-
"jest-haste-map": "^29.5.0",
-
"jest-pnp-resolver": "^1.2.2",
-
"jest-util": "^29.5.0",
-
"jest-validate": "^29.5.0",
-
"resolve": "^1.20.0",
-
"resolve.exports": "^2.0.0",
-
"slash": "^3.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-resolve-dependencies": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz",
-
"integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==",
-
"dev": true,
-
"dependencies": {
-
"jest-regex-util": "^29.4.3",
-
"jest-snapshot": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-runner": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz",
-
"integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/console": "^29.5.0",
-
"@jest/environment": "^29.5.0",
-
"@jest/test-result": "^29.5.0",
-
"@jest/transform": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"chalk": "^4.0.0",
-
"emittery": "^0.13.1",
-
"graceful-fs": "^4.2.9",
-
"jest-docblock": "^29.4.3",
-
"jest-environment-node": "^29.5.0",
-
"jest-haste-map": "^29.5.0",
-
"jest-leak-detector": "^29.5.0",
-
"jest-message-util": "^29.5.0",
-
"jest-resolve": "^29.5.0",
-
"jest-runtime": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"jest-watcher": "^29.5.0",
-
"jest-worker": "^29.5.0",
-
"p-limit": "^3.1.0",
-
"source-map-support": "0.5.13"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-runtime": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz",
-
"integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==",
-
"dev": true,
-
"dependencies": {
-
"@jest/environment": "^29.5.0",
-
"@jest/fake-timers": "^29.5.0",
-
"@jest/globals": "^29.5.0",
-
"@jest/source-map": "^29.4.3",
-
"@jest/test-result": "^29.5.0",
-
"@jest/transform": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"chalk": "^4.0.0",
-
"cjs-module-lexer": "^1.0.0",
-
"collect-v8-coverage": "^1.0.0",
-
"glob": "^7.1.3",
-
"graceful-fs": "^4.2.9",
-
"jest-haste-map": "^29.5.0",
-
"jest-message-util": "^29.5.0",
-
"jest-mock": "^29.5.0",
-
"jest-regex-util": "^29.4.3",
-
"jest-resolve": "^29.5.0",
-
"jest-snapshot": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"slash": "^3.0.0",
-
"strip-bom": "^4.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-snapshot": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz",
-
"integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==",
-
"dev": true,
-
"dependencies": {
-
"@babel/core": "^7.11.6",
-
"@babel/generator": "^7.7.2",
-
"@babel/plugin-syntax-jsx": "^7.7.2",
-
"@babel/plugin-syntax-typescript": "^7.7.2",
-
"@babel/traverse": "^7.7.2",
-
"@babel/types": "^7.3.3",
-
"@jest/expect-utils": "^29.5.0",
-
"@jest/transform": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/babel__traverse": "^7.0.6",
-
"@types/prettier": "^2.1.5",
-
"babel-preset-current-node-syntax": "^1.0.0",
-
"chalk": "^4.0.0",
-
"expect": "^29.5.0",
-
"graceful-fs": "^4.2.9",
-
"jest-diff": "^29.5.0",
-
"jest-get-type": "^29.4.3",
-
"jest-matcher-utils": "^29.5.0",
-
"jest-message-util": "^29.5.0",
-
"jest-util": "^29.5.0",
-
"natural-compare": "^1.4.0",
-
"pretty-format": "^29.5.0",
-
"semver": "^7.3.5"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-util": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
-
"integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"chalk": "^4.0.0",
-
"ci-info": "^3.2.0",
-
"graceful-fs": "^4.2.9",
-
"picomatch": "^2.2.3"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-validate": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz",
-
"integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==",
-
"dev": true,
-
"dependencies": {
-
"@jest/types": "^29.5.0",
-
"camelcase": "^6.2.0",
-
"chalk": "^4.0.0",
-
"jest-get-type": "^29.4.3",
-
"leven": "^3.1.0",
-
"pretty-format": "^29.5.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-validate/node_modules/camelcase": {
-
"version": "6.3.0",
-
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
-
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/jest-watcher": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz",
-
"integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==",
-
"dev": true,
-
"dependencies": {
-
"@jest/test-result": "^29.5.0",
-
"@jest/types": "^29.5.0",
-
"@types/node": "*",
-
"ansi-escapes": "^4.2.1",
-
"chalk": "^4.0.0",
-
"emittery": "^0.13.1",
-
"jest-util": "^29.5.0",
-
"string-length": "^4.0.1"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-worker": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz",
-
"integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==",
-
"dev": true,
-
"dependencies": {
-
"@types/node": "*",
-
"jest-util": "^29.5.0",
-
"merge-stream": "^2.0.0",
-
"supports-color": "^8.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/jest-worker/node_modules/supports-color": {
-
"version": "8.1.1",
-
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-
"dev": true,
-
"dependencies": {
-
"has-flag": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/chalk/supports-color?sponsor=1"
-
}
-
},
-
"node_modules/js-tokens": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-
"dev": true
-
},
-
"node_modules/js-yaml": {
-
"version": "4.1.0",
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
-
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-
"dev": true,
-
"dependencies": {
-
"argparse": "^2.0.1"
-
},
-
"bin": {
-
"js-yaml": "bin/js-yaml.js"
-
}
-
},
-
"node_modules/jsesc": {
-
"version": "2.5.2",
-
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
-
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-
"dev": true,
-
"bin": {
-
"jsesc": "bin/jsesc"
-
},
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/json-parse-even-better-errors": {
-
"version": "2.3.1",
-
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
-
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
-
"dev": true
-
},
-
"node_modules/json-schema-traverse": {
-
"version": "0.4.1",
-
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-
"dev": true
-
},
-
"node_modules/json-stable-stringify-without-jsonify": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
-
"dev": true
-
},
-
"node_modules/json5": {
-
"version": "2.2.3",
-
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
-
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
-
"dev": true,
-
"bin": {
-
"json5": "lib/cli.js"
-
},
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/kind-of": {
-
"version": "6.0.3",
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
-
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/kleur": {
-
"version": "3.0.3",
-
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
-
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/leven": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
-
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/levn": {
-
"version": "0.4.1",
-
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
-
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-
"dev": true,
-
"dependencies": {
-
"prelude-ls": "^1.2.1",
-
"type-check": "~0.4.0"
-
},
-
"engines": {
-
"node": ">= 0.8.0"
-
}
-
},
-
"node_modules/lines-and-columns": {
-
"version": "1.2.4",
-
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
-
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
-
"dev": true
-
},
-
"node_modules/loader-runner": {
-
"version": "4.3.0",
-
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
-
"integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
-
"dev": true,
-
"engines": {
-
"node": ">=6.11.5"
-
}
-
},
-
"node_modules/locate-path": {
-
"version": "6.0.0",
-
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
-
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
-
"dev": true,
-
"dependencies": {
-
"p-locate": "^5.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/lodash": {
-
"version": "4.17.21",
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
-
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-
"dev": true
-
},
-
"node_modules/lodash.memoize": {
-
"version": "4.1.2",
-
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
-
"integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
-
"dev": true
-
},
-
"node_modules/lodash.merge": {
-
"version": "4.6.2",
-
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
-
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
-
"dev": true
-
},
-
"node_modules/lru-cache": {
-
"version": "5.1.1",
-
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
-
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-
"dev": true,
-
"dependencies": {
-
"yallist": "^3.0.2"
-
}
-
},
-
"node_modules/make-dir": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
-
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
-
"dev": true,
-
"dependencies": {
-
"semver": "^6.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/make-dir/node_modules/semver": {
-
"version": "6.3.0",
-
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
-
"dev": true,
-
"bin": {
-
"semver": "bin/semver.js"
-
}
-
},
-
"node_modules/make-error": {
-
"version": "1.3.6",
-
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
-
"dev": true
-
},
-
"node_modules/makeerror": {
-
"version": "1.0.12",
-
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
-
"integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
-
"dev": true,
-
"dependencies": {
-
"tmpl": "1.0.5"
-
}
-
},
-
"node_modules/merge-stream": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
-
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
-
"dev": true
-
},
-
"node_modules/merge2": {
-
"version": "1.4.1",
-
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-
"dev": true,
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/micromatch": {
-
"version": "4.0.5",
-
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
-
"dev": true,
-
"dependencies": {
-
"braces": "^3.0.2",
-
"picomatch": "^2.3.1"
-
},
-
"engines": {
-
"node": ">=8.6"
-
}
-
},
-
"node_modules/mime-db": {
-
"version": "1.52.0",
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
-
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
-
"dev": true,
-
"engines": {
-
"node": ">= 0.6"
-
}
-
},
-
"node_modules/mime-types": {
-
"version": "2.1.35",
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
-
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
-
"dev": true,
-
"dependencies": {
-
"mime-db": "1.52.0"
-
},
-
"engines": {
-
"node": ">= 0.6"
-
}
-
},
-
"node_modules/mimic-fn": {
-
"version": "2.1.0",
-
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/minimatch": {
-
"version": "3.1.2",
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-
"dev": true,
-
"dependencies": {
-
"brace-expansion": "^1.1.7"
-
},
-
"engines": {
-
"node": "*"
-
}
-
},
-
"node_modules/ms": {
-
"version": "2.1.2",
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
-
"dev": true
-
},
-
"node_modules/natural-compare": {
-
"version": "1.4.0",
-
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
-
"dev": true
-
},
-
"node_modules/natural-compare-lite": {
-
"version": "1.4.0",
-
"resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
-
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
-
"dev": true
-
},
-
"node_modules/neo-async": {
-
"version": "2.6.2",
-
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
-
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
-
"dev": true
-
},
-
"node_modules/node-int64": {
-
"version": "0.4.0",
-
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
-
"integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
-
"dev": true
-
},
-
"node_modules/node-releases": {
-
"version": "2.0.12",
-
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
-
"integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
-
"dev": true
-
},
-
"node_modules/normalize-path": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
-
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/npm-run-path": {
-
"version": "4.0.1",
-
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
-
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
-
"dev": true,
-
"dependencies": {
-
"path-key": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/once": {
-
"version": "1.4.0",
-
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
-
"dev": true,
-
"dependencies": {
-
"wrappy": "1"
-
}
-
},
-
"node_modules/onetime": {
-
"version": "5.1.2",
-
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
-
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
-
"dev": true,
-
"dependencies": {
-
"mimic-fn": "^2.1.0"
-
},
-
"engines": {
-
"node": ">=6"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/optionator": {
-
"version": "0.9.1",
-
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-
"integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
-
"dev": true,
-
"dependencies": {
-
"deep-is": "^0.1.3",
-
"fast-levenshtein": "^2.0.6",
-
"levn": "^0.4.1",
-
"prelude-ls": "^1.2.1",
-
"type-check": "^0.4.0",
-
"word-wrap": "^1.2.3"
-
},
-
"engines": {
-
"node": ">= 0.8.0"
-
}
-
},
-
"node_modules/p-limit": {
-
"version": "3.1.0",
-
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
-
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
-
"dev": true,
-
"dependencies": {
-
"yocto-queue": "^0.1.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/p-locate": {
-
"version": "5.0.0",
-
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
-
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
-
"dev": true,
-
"dependencies": {
-
"p-limit": "^3.0.2"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/p-try": {
-
"version": "2.2.0",
-
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/parent-module": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-
"dev": true,
-
"dependencies": {
-
"callsites": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/parse-json": {
-
"version": "5.2.0",
-
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
-
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
-
"dev": true,
-
"dependencies": {
-
"@babel/code-frame": "^7.0.0",
-
"error-ex": "^1.3.1",
-
"json-parse-even-better-errors": "^2.3.0",
-
"lines-and-columns": "^1.1.6"
-
},
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/path-exists": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/path-is-absolute": {
-
"version": "1.0.1",
-
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/path-key": {
-
"version": "3.1.1",
-
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
-
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/path-parse": {
-
"version": "1.0.7",
-
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
-
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
-
"dev": true
-
},
-
"node_modules/path-type": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
-
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/picocolors": {
-
"version": "1.0.0",
-
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
-
"dev": true
-
},
-
"node_modules/picomatch": {
-
"version": "2.3.1",
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-
"dev": true,
-
"engines": {
-
"node": ">=8.6"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/jonschlinkert"
-
}
-
},
-
"node_modules/pirates": {
-
"version": "4.0.5",
-
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
-
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
-
"dev": true,
-
"engines": {
-
"node": ">= 6"
-
}
-
},
-
"node_modules/pkg-dir": {
-
"version": "4.2.0",
-
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
-
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
-
"dev": true,
-
"dependencies": {
-
"find-up": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/pkg-dir/node_modules/find-up": {
-
"version": "4.1.0",
-
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-
"dev": true,
-
"dependencies": {
-
"locate-path": "^5.0.0",
-
"path-exists": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/pkg-dir/node_modules/locate-path": {
-
"version": "5.0.0",
-
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-
"dev": true,
-
"dependencies": {
-
"p-locate": "^4.1.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/pkg-dir/node_modules/p-limit": {
-
"version": "2.3.0",
-
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
-
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-
"dev": true,
-
"dependencies": {
-
"p-try": "^2.0.0"
-
},
-
"engines": {
-
"node": ">=6"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/pkg-dir/node_modules/p-locate": {
-
"version": "4.1.0",
-
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-
"dev": true,
-
"dependencies": {
-
"p-limit": "^2.2.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/platform": {
-
"version": "1.3.6",
-
"resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
-
"integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==",
-
"dev": true
-
},
-
"node_modules/prelude-ls": {
-
"version": "1.2.1",
-
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
-
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
-
"dev": true,
-
"engines": {
-
"node": ">= 0.8.0"
-
}
-
},
-
"node_modules/pretty-format": {
-
"version": "29.5.0",
-
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
-
"integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
-
"dev": true,
-
"dependencies": {
-
"@jest/schemas": "^29.4.3",
-
"ansi-styles": "^5.0.0",
-
"react-is": "^18.0.0"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
}
-
},
-
"node_modules/pretty-format/node_modules/ansi-styles": {
-
"version": "5.2.0",
-
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
-
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
-
}
-
},
-
"node_modules/prompts": {
-
"version": "2.4.2",
-
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
-
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
-
"dev": true,
-
"dependencies": {
-
"kleur": "^3.0.3",
-
"sisteransi": "^1.0.5"
-
},
-
"engines": {
-
"node": ">= 6"
-
}
-
},
-
"node_modules/punycode": {
-
"version": "2.3.0",
-
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
-
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/pure-rand": {
-
"version": "6.0.2",
-
"resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz",
-
"integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "individual",
-
"url": "https://github.com/sponsors/dubzzz"
-
},
-
{
-
"type": "opencollective",
-
"url": "https://opencollective.com/fast-check"
-
}
-
]
-
},
-
"node_modules/queue-microtask": {
-
"version": "1.2.3",
-
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/feross"
-
},
-
{
-
"type": "patreon",
-
"url": "https://www.patreon.com/feross"
-
},
-
{
-
"type": "consulting",
-
"url": "https://feross.org/support"
-
}
-
]
-
},
-
"node_modules/randombytes": {
-
"version": "2.1.0",
-
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
-
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
-
"dev": true,
-
"dependencies": {
-
"safe-buffer": "^5.1.0"
-
}
-
},
-
"node_modules/react-is": {
-
"version": "18.2.0",
-
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
-
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
-
"dev": true
-
},
-
"node_modules/rechoir": {
-
"version": "0.8.0",
-
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
-
"integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
-
"dev": true,
-
"dependencies": {
-
"resolve": "^1.20.0"
-
},
-
"engines": {
-
"node": ">= 10.13.0"
-
}
-
},
-
"node_modules/require-directory": {
-
"version": "2.1.1",
-
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/resolve": {
-
"version": "1.22.2",
-
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
-
"integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
-
"dev": true,
-
"dependencies": {
-
"is-core-module": "^2.11.0",
-
"path-parse": "^1.0.7",
-
"supports-preserve-symlinks-flag": "^1.0.0"
-
},
-
"bin": {
-
"resolve": "bin/resolve"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/ljharb"
-
}
-
},
-
"node_modules/resolve-cwd": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
-
"integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
-
"dev": true,
-
"dependencies": {
-
"resolve-from": "^5.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/resolve-cwd/node_modules/resolve-from": {
-
"version": "5.0.0",
-
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
-
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/resolve-from": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-
"dev": true,
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/resolve.exports": {
-
"version": "2.0.2",
-
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
-
"integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/reusify": {
-
"version": "1.0.4",
-
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
-
"dev": true,
-
"engines": {
-
"iojs": ">=1.0.0",
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/rimraf": {
-
"version": "3.0.2",
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-
"dev": true,
-
"dependencies": {
-
"glob": "^7.1.3"
-
},
-
"bin": {
-
"rimraf": "bin.js"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/isaacs"
-
}
-
},
-
"node_modules/run-parallel": {
-
"version": "1.2.0",
-
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/feross"
-
},
-
{
-
"type": "patreon",
-
"url": "https://www.patreon.com/feross"
-
},
-
{
-
"type": "consulting",
-
"url": "https://feross.org/support"
-
}
-
],
-
"dependencies": {
-
"queue-microtask": "^1.2.2"
-
}
-
},
-
"node_modules/safe-buffer": {
-
"version": "5.2.1",
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/feross"
-
},
-
{
-
"type": "patreon",
-
"url": "https://www.patreon.com/feross"
-
},
-
{
-
"type": "consulting",
-
"url": "https://feross.org/support"
-
}
-
]
-
},
-
"node_modules/schema-utils": {
-
"version": "3.1.2",
-
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz",
-
"integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==",
-
"dev": true,
-
"dependencies": {
-
"@types/json-schema": "^7.0.8",
-
"ajv": "^6.12.5",
-
"ajv-keywords": "^3.5.2"
-
},
-
"engines": {
-
"node": ">= 10.13.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/webpack"
-
}
-
},
-
"node_modules/semver": {
-
"version": "7.5.1",
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
-
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
-
"dev": true,
-
"dependencies": {
-
"lru-cache": "^6.0.0"
-
},
-
"bin": {
-
"semver": "bin/semver.js"
-
},
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/semver/node_modules/lru-cache": {
-
"version": "6.0.0",
-
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-
"dev": true,
-
"dependencies": {
-
"yallist": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/semver/node_modules/yallist": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-
"dev": true
-
},
-
"node_modules/serialize-javascript": {
-
"version": "6.0.1",
-
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
-
"integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
-
"dev": true,
-
"dependencies": {
-
"randombytes": "^2.1.0"
-
}
-
},
-
"node_modules/shallow-clone": {
-
"version": "3.0.1",
-
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
-
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
-
"dev": true,
-
"dependencies": {
-
"kind-of": "^6.0.2"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/shebang-command": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
-
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-
"dev": true,
-
"dependencies": {
-
"shebang-regex": "^3.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/shebang-regex": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
-
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/signal-exit": {
-
"version": "3.0.7",
-
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
-
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-
"dev": true
-
},
-
"node_modules/sisteransi": {
-
"version": "1.0.5",
-
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
-
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
-
"dev": true
-
},
-
"node_modules/slash": {
-
"version": "3.0.0",
-
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
-
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/source-map": {
-
"version": "0.6.1",
-
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/source-map-support": {
-
"version": "0.5.13",
-
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
-
"integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
-
"dev": true,
-
"dependencies": {
-
"buffer-from": "^1.0.0",
-
"source-map": "^0.6.0"
-
}
-
},
-
"node_modules/sprintf-js": {
-
"version": "1.0.3",
-
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
-
"dev": true
-
},
-
"node_modules/stack-utils": {
-
"version": "2.0.6",
-
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
-
"integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
-
"dev": true,
-
"dependencies": {
-
"escape-string-regexp": "^2.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/stack-utils/node_modules/escape-string-regexp": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
-
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/string-length": {
-
"version": "4.0.2",
-
"resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
-
"integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
-
"dev": true,
-
"dependencies": {
-
"char-regex": "^1.0.2",
-
"strip-ansi": "^6.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/string-width": {
-
"version": "4.2.3",
-
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-
"dev": true,
-
"dependencies": {
-
"emoji-regex": "^8.0.0",
-
"is-fullwidth-code-point": "^3.0.0",
-
"strip-ansi": "^6.0.1"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/strip-ansi": {
-
"version": "6.0.1",
-
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-
"dev": true,
-
"dependencies": {
-
"ansi-regex": "^5.0.1"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/strip-bom": {
-
"version": "4.0.0",
-
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
-
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/strip-final-newline": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
-
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/strip-json-comments": {
-
"version": "3.1.1",
-
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-
"dev": true,
-
"engines": {
-
"node": ">=8"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/supports-color": {
-
"version": "7.2.0",
-
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-
"dev": true,
-
"dependencies": {
-
"has-flag": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/supports-preserve-symlinks-flag": {
-
"version": "1.0.0",
-
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
-
"dev": true,
-
"engines": {
-
"node": ">= 0.4"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/ljharb"
-
}
-
},
-
"node_modules/tapable": {
-
"version": "2.2.1",
-
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
-
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=6"
-
}
-
},
-
"node_modules/terser": {
-
"version": "5.17.7",
-
"resolved": "https://registry.npmjs.org/terser/-/terser-5.17.7.tgz",
-
"integrity": "sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/source-map": "^0.3.3",
-
"acorn": "^8.8.2",
-
"commander": "^2.20.0",
-
"source-map-support": "~0.5.20"
-
},
-
"bin": {
-
"terser": "bin/terser"
-
},
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/terser-webpack-plugin": {
-
"version": "5.3.9",
-
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
-
"integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/trace-mapping": "^0.3.17",
-
"jest-worker": "^27.4.5",
-
"schema-utils": "^3.1.1",
-
"serialize-javascript": "^6.0.1",
-
"terser": "^5.16.8"
-
},
-
"engines": {
-
"node": ">= 10.13.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/webpack"
-
},
-
"peerDependencies": {
-
"webpack": "^5.1.0"
-
},
-
"peerDependenciesMeta": {
-
"@swc/core": {
-
"optional": true
-
},
-
"esbuild": {
-
"optional": true
-
},
-
"uglify-js": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/terser-webpack-plugin/node_modules/jest-worker": {
-
"version": "27.5.1",
-
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
-
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
-
"dev": true,
-
"dependencies": {
-
"@types/node": "*",
-
"merge-stream": "^2.0.0",
-
"supports-color": "^8.0.0"
-
},
-
"engines": {
-
"node": ">= 10.13.0"
-
}
-
},
-
"node_modules/terser-webpack-plugin/node_modules/supports-color": {
-
"version": "8.1.1",
-
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-
"dev": true,
-
"dependencies": {
-
"has-flag": "^4.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/chalk/supports-color?sponsor=1"
-
}
-
},
-
"node_modules/terser/node_modules/source-map-support": {
-
"version": "0.5.21",
-
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
-
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
-
"dev": true,
-
"dependencies": {
-
"buffer-from": "^1.0.0",
-
"source-map": "^0.6.0"
-
}
-
},
-
"node_modules/test-exclude": {
-
"version": "6.0.0",
-
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
-
"integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
-
"dev": true,
-
"dependencies": {
-
"@istanbuljs/schema": "^0.1.2",
-
"glob": "^7.1.4",
-
"minimatch": "^3.0.4"
-
},
-
"engines": {
-
"node": ">=8"
-
}
-
},
-
"node_modules/text-table": {
-
"version": "0.2.0",
-
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
-
"dev": true
-
},
-
"node_modules/tmpl": {
-
"version": "1.0.5",
-
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
-
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
-
"dev": true
-
},
-
"node_modules/to-fast-properties": {
-
"version": "2.0.0",
-
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-
"dev": true,
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/to-regex-range": {
-
"version": "5.0.1",
-
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-
"dev": true,
-
"dependencies": {
-
"is-number": "^7.0.0"
-
},
-
"engines": {
-
"node": ">=8.0"
-
}
-
},
-
"node_modules/ts-jest": {
-
"version": "29.1.0",
-
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz",
-
"integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==",
-
"dev": true,
-
"dependencies": {
-
"bs-logger": "0.x",
-
"fast-json-stable-stringify": "2.x",
-
"jest-util": "^29.0.0",
-
"json5": "^2.2.3",
-
"lodash.memoize": "4.x",
-
"make-error": "1.x",
-
"semver": "7.x",
-
"yargs-parser": "^21.0.1"
-
},
-
"bin": {
-
"ts-jest": "cli.js"
-
},
-
"engines": {
-
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
-
},
-
"peerDependencies": {
-
"@babel/core": ">=7.0.0-beta.0 <8",
-
"@jest/types": "^29.0.0",
-
"babel-jest": "^29.0.0",
-
"jest": "^29.0.0",
-
"typescript": ">=4.3 <6"
-
},
-
"peerDependenciesMeta": {
-
"@babel/core": {
-
"optional": true
-
},
-
"@jest/types": {
-
"optional": true
-
},
-
"babel-jest": {
-
"optional": true
-
},
-
"esbuild": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/ts-loader": {
-
"version": "9.4.3",
-
"resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.3.tgz",
-
"integrity": "sha512-n3hBnm6ozJYzwiwt5YRiJZkzktftRpMiBApHaJPoWLA+qetQBAXkHqCLM6nwSdRDimqVtA5ocIkcTRLMTt7yzA==",
-
"dev": true,
-
"dependencies": {
-
"chalk": "^4.1.0",
-
"enhanced-resolve": "^5.0.0",
-
"micromatch": "^4.0.0",
-
"semver": "^7.3.4"
-
},
-
"engines": {
-
"node": ">=12.0.0"
-
},
-
"peerDependencies": {
-
"typescript": "*",
-
"webpack": "^5.0.0"
-
}
-
},
-
"node_modules/tslib": {
-
"version": "1.14.1",
-
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-
"dev": true
-
},
-
"node_modules/tsutils": {
-
"version": "3.21.0",
-
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
-
"dev": true,
-
"dependencies": {
-
"tslib": "^1.8.1"
-
},
-
"engines": {
-
"node": ">= 6"
-
},
-
"peerDependencies": {
-
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
-
}
-
},
-
"node_modules/type-check": {
-
"version": "0.4.0",
-
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
-
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-
"dev": true,
-
"dependencies": {
-
"prelude-ls": "^1.2.1"
-
},
-
"engines": {
-
"node": ">= 0.8.0"
-
}
-
},
-
"node_modules/type-detect": {
-
"version": "4.0.8",
-
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
-
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
-
"dev": true,
-
"engines": {
-
"node": ">=4"
-
}
-
},
-
"node_modules/type-fest": {
-
"version": "0.20.2",
-
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
},
-
"node_modules/typescript": {
-
"version": "4.9.5",
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
-
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
-
"dev": true,
-
"bin": {
-
"tsc": "bin/tsc",
-
"tsserver": "bin/tsserver"
-
},
-
"engines": {
-
"node": ">=4.2.0"
-
}
-
},
-
"node_modules/typescript-language-server": {
-
"version": "3.3.2",
-
"resolved": "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-3.3.2.tgz",
-
"integrity": "sha512-jzun53CIkTbpAki0nP+hk5baGW+86SNNlVhyIj2ZUy45zUkCnmoetWuAtfRRQYrlIr8x4QB3ymGJPuwDQSd/ew==",
-
"dev": true,
-
"bin": {
-
"typescript-language-server": "lib/cli.mjs"
-
},
-
"engines": {
-
"node": ">=14.17"
-
}
-
},
-
"node_modules/update-browserslist-db": {
-
"version": "1.0.11",
-
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
-
"integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
-
"dev": true,
-
"funding": [
-
{
-
"type": "opencollective",
-
"url": "https://opencollective.com/browserslist"
-
},
-
{
-
"type": "tidelift",
-
"url": "https://tidelift.com/funding/github/npm/browserslist"
-
},
-
{
-
"type": "github",
-
"url": "https://github.com/sponsors/ai"
-
}
-
],
-
"dependencies": {
-
"escalade": "^3.1.1",
-
"picocolors": "^1.0.0"
-
},
-
"bin": {
-
"update-browserslist-db": "cli.js"
-
},
-
"peerDependencies": {
-
"browserslist": ">= 4.21.0"
-
}
-
},
-
"node_modules/uri-js": {
-
"version": "4.4.1",
-
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
-
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-
"dev": true,
-
"dependencies": {
-
"punycode": "^2.1.0"
-
}
-
},
-
"node_modules/v8-to-istanbul": {
-
"version": "9.1.0",
-
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
-
"integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
-
"dev": true,
-
"dependencies": {
-
"@jridgewell/trace-mapping": "^0.3.12",
-
"@types/istanbul-lib-coverage": "^2.0.1",
-
"convert-source-map": "^1.6.0"
-
},
-
"engines": {
-
"node": ">=10.12.0"
-
}
-
},
-
"node_modules/v8-to-istanbul/node_modules/convert-source-map": {
-
"version": "1.9.0",
-
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
-
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-
"dev": true
-
},
-
"node_modules/walker": {
-
"version": "1.0.8",
-
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
-
"integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
-
"dev": true,
-
"dependencies": {
-
"makeerror": "1.0.12"
-
}
-
},
-
"node_modules/watchpack": {
-
"version": "2.4.0",
-
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
-
"integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
-
"dev": true,
-
"dependencies": {
-
"glob-to-regexp": "^0.4.1",
-
"graceful-fs": "^4.1.2"
-
},
-
"engines": {
-
"node": ">=10.13.0"
-
}
-
},
-
"node_modules/webpack": {
-
"version": "5.85.1",
-
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.85.1.tgz",
-
"integrity": "sha512-xTb7MRf4LY8Z5rzn7aIx4TDrwYJrjcHnIfU1TqtyZOoObyuGSpAUwIvVuqq5wPnv7WEgQr8UvO1q/dgoGG4HjA==",
-
"dev": true,
-
"dependencies": {
-
"@types/eslint-scope": "^3.7.3",
-
"@types/estree": "^1.0.0",
-
"@webassemblyjs/ast": "^1.11.5",
-
"@webassemblyjs/wasm-edit": "^1.11.5",
-
"@webassemblyjs/wasm-parser": "^1.11.5",
-
"acorn": "^8.7.1",
-
"acorn-import-assertions": "^1.9.0",
-
"browserslist": "^4.14.5",
-
"chrome-trace-event": "^1.0.2",
-
"enhanced-resolve": "^5.14.1",
-
"es-module-lexer": "^1.2.1",
-
"eslint-scope": "5.1.1",
-
"events": "^3.2.0",
-
"glob-to-regexp": "^0.4.1",
-
"graceful-fs": "^4.2.9",
-
"json-parse-even-better-errors": "^2.3.1",
-
"loader-runner": "^4.2.0",
-
"mime-types": "^2.1.27",
-
"neo-async": "^2.6.2",
-
"schema-utils": "^3.1.2",
-
"tapable": "^2.1.1",
-
"terser-webpack-plugin": "^5.3.7",
-
"watchpack": "^2.4.0",
-
"webpack-sources": "^3.2.3"
-
},
-
"bin": {
-
"webpack": "bin/webpack.js"
-
},
-
"engines": {
-
"node": ">=10.13.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/webpack"
-
},
-
"peerDependenciesMeta": {
-
"webpack-cli": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/webpack-cli": {
-
"version": "5.1.3",
-
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.3.tgz",
-
"integrity": "sha512-MTuk7NUMvEHQUSXCpvUrF1q2p0FJS40dPFfqQvG3jTWcgv/8plBNz2Kv2HXZiLGPnfmSAA5uCtCILO1JBmmkfw==",
-
"dev": true,
-
"dependencies": {
-
"@discoveryjs/json-ext": "^0.5.0",
-
"@webpack-cli/configtest": "^2.1.1",
-
"@webpack-cli/info": "^2.0.2",
-
"@webpack-cli/serve": "^2.0.5",
-
"colorette": "^2.0.14",
-
"commander": "^10.0.1",
-
"cross-spawn": "^7.0.3",
-
"envinfo": "^7.7.3",
-
"fastest-levenshtein": "^1.0.12",
-
"import-local": "^3.0.2",
-
"interpret": "^3.1.1",
-
"rechoir": "^0.8.0",
-
"webpack-merge": "^5.7.3"
-
},
-
"bin": {
-
"webpack-cli": "bin/cli.js"
-
},
-
"engines": {
-
"node": ">=14.15.0"
-
},
-
"funding": {
-
"type": "opencollective",
-
"url": "https://opencollective.com/webpack"
-
},
-
"peerDependencies": {
-
"webpack": "5.x.x"
-
},
-
"peerDependenciesMeta": {
-
"@webpack-cli/generators": {
-
"optional": true
-
},
-
"webpack-bundle-analyzer": {
-
"optional": true
-
},
-
"webpack-dev-server": {
-
"optional": true
-
}
-
}
-
},
-
"node_modules/webpack-cli/node_modules/commander": {
-
"version": "10.0.1",
-
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
-
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
-
"dev": true,
-
"engines": {
-
"node": ">=14"
-
}
-
},
-
"node_modules/webpack-merge": {
-
"version": "5.9.0",
-
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz",
-
"integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==",
-
"dev": true,
-
"dependencies": {
-
"clone-deep": "^4.0.1",
-
"wildcard": "^2.0.0"
-
},
-
"engines": {
-
"node": ">=10.0.0"
-
}
-
},
-
"node_modules/webpack-sources": {
-
"version": "3.2.3",
-
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
-
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
-
"dev": true,
-
"engines": {
-
"node": ">=10.13.0"
-
}
-
},
-
"node_modules/which": {
-
"version": "2.0.2",
-
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
-
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-
"dev": true,
-
"dependencies": {
-
"isexe": "^2.0.0"
-
},
-
"bin": {
-
"node-which": "bin/node-which"
-
},
-
"engines": {
-
"node": ">= 8"
-
}
-
},
-
"node_modules/wildcard": {
-
"version": "2.0.1",
-
"resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
-
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
-
"dev": true
-
},
-
"node_modules/word-wrap": {
-
"version": "1.2.3",
-
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-
"dev": true,
-
"engines": {
-
"node": ">=0.10.0"
-
}
-
},
-
"node_modules/wrap-ansi": {
-
"version": "7.0.0",
-
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-
"dev": true,
-
"dependencies": {
-
"ansi-styles": "^4.0.0",
-
"string-width": "^4.1.0",
-
"strip-ansi": "^6.0.0"
-
},
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
-
}
-
},
-
"node_modules/wrappy": {
-
"version": "1.0.2",
-
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
-
"dev": true
-
},
-
"node_modules/write-file-atomic": {
-
"version": "4.0.2",
-
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
-
"integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
-
"dev": true,
-
"dependencies": {
-
"imurmurhash": "^0.1.4",
-
"signal-exit": "^3.0.7"
-
},
-
"engines": {
-
"node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-
}
-
},
-
"node_modules/y18n": {
-
"version": "5.0.8",
-
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
-
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
}
-
},
-
"node_modules/yallist": {
-
"version": "3.1.1",
-
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
-
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
-
"dev": true
-
},
-
"node_modules/yargs": {
-
"version": "17.7.2",
-
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
-
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
-
"dev": true,
-
"dependencies": {
-
"cliui": "^8.0.1",
-
"escalade": "^3.1.1",
-
"get-caller-file": "^2.0.5",
-
"require-directory": "^2.1.1",
-
"string-width": "^4.2.3",
-
"y18n": "^5.0.5",
-
"yargs-parser": "^21.1.1"
-
},
-
"engines": {
-
"node": ">=12"
-
}
-
},
-
"node_modules/yargs-parser": {
-
"version": "21.1.1",
-
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
-
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
-
"dev": true,
-
"engines": {
-
"node": ">=12"
-
}
-
},
-
"node_modules/yocto-queue": {
-
"version": "0.1.0",
-
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
-
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
-
"dev": true,
-
"engines": {
-
"node": ">=10"
-
},
-
"funding": {
-
"url": "https://github.com/sponsors/sindresorhus"
-
}
-
}
-
}
-
}
+1
pkgs/top-level/aliases.nix
···
bitcoind-classic = throw "bitcoind-classic has been removed: the Bitcoin Classic project has closed down, https://bitcoinclassic.com/news/closing.html"; # Added 2022-11-24
bitcoin-gold = throw "bitcoin-gold has been removed since it's unnmaintained and will stop building with Qt > 5.14"; # Added 2022-11-24
bitcoind-gold = throw "bitcoin-gold has been removed since it's unnmaintained: https://github.com/BTCGPU/BTCGPU/graphs/code-frequency"; # Added 2022-11-24
+
ddclient = throw "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`."; # Added 2023-07-04
digibyte = throw "digibyte has been removed since it's unnmaintained and will stop building with Qt > 5.14"; # Added 2022-11-24
digibyted = throw "digibyted has been removed since it's unnmaintained: https://github.com/digibyte/digibyte/graphs/code-frequency"; # Added 2022-11-24
bitsnbots = throw "bitsnbots has been removed because it was broken and upstream missing"; # Added 2021-08-22
+8 -5
pkgs/top-level/all-packages.nix
···
ddcutil = callPackage ../tools/misc/ddcutil { };
-
ddclient = callPackage ../tools/networking/ddclient { };
-
dd_rescue = callPackage ../tools/system/dd_rescue { };
ddh = callPackage ../tools/system/ddh { };
···
npmHooks = callPackage ../build-support/node/build-npm-package/hooks { };
-
inherit (callPackage ../build-support/node/fetch-npm-deps {
-
inherit (darwin.apple_sdk.frameworks) Security;
-
}) fetchNpmDeps prefetch-npm-deps;
+
inherit (callPackage ../build-support/node/fetch-npm-deps { })
+
fetchNpmDeps prefetch-npm-deps;
nodePackages_latest = dontRecurseIntoAttrs nodejs_latest.pkgs;
···
complexity = callPackage ../development/tools/misc/complexity { };
+
complgen = callPackage ../development/tools/misc/complgen { };
+
conan = callPackage ../development/tools/build-managers/conan { };
cookiecutter = with python3Packages; toPythonApplication cookiecutter;
···
acpid = callPackage ../os-specific/linux/acpid { };
acpitool = callPackage ../os-specific/linux/acpitool { };
+
+
aldente = callPackage ../os-specific/darwin/aldente { };
alfred = callPackage ../os-specific/linux/batman-adv/alfred.nix { };
···
inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
stdenv = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
});
+
+
rinetd = callPackage ../servers/rinetd { };
rink = callPackage ../applications/science/misc/rink {
inherit (darwin.apple_sdk.frameworks) Security;
+4
pkgs/top-level/python-packages.nix
···
celery-redbeat = callPackage ../development/python-modules/celery-redbeat { };
+
celery-singleton = callPackage ../development/python-modules/celery-singleton { };
+
cement = callPackage ../development/python-modules/cement { };
cemm = callPackage ../development/python-modules/cemm { };
···
django-bootstrap3 = callPackage ../development/python-modules/django-bootstrap3 { };
django-bootstrap4 = callPackage ../development/python-modules/django-bootstrap4 { };
+
+
django-cachalot = callPackage ../development/python-modules/django-cachalot { };
django-cache-url = callPackage ../development/python-modules/django-cache-url { };