about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--lib/systems/examples.nix2
-rw-r--r--maintainers/maintainer-list.nix34
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2211.section.xml16
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md3
-rw-r--r--nixos/modules/i18n/input-method/ibus.nix2
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix10
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/programs/kdeconnect.nix4
-rw-r--r--nixos/modules/services/databases/dragonflydb.nix152
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix2
-rw-r--r--nixos/modules/services/misc/persistent-evdev.nix60
-rw-r--r--nixos/modules/services/misc/sourcehut/builds.nix236
-rw-r--r--nixos/modules/services/misc/sourcehut/default.nix79
-rw-r--r--nixos/modules/services/misc/sourcehut/dispatch.nix127
-rw-r--r--nixos/modules/services/misc/sourcehut/git.nix217
-rw-r--r--nixos/modules/services/misc/sourcehut/hg.nix175
-rw-r--r--nixos/modules/services/misc/sourcehut/hub.nix120
-rw-r--r--nixos/modules/services/misc/sourcehut/lists.nix187
-rw-r--r--nixos/modules/services/misc/sourcehut/man.nix124
-rw-r--r--nixos/modules/services/misc/sourcehut/meta.nix213
-rw-r--r--nixos/modules/services/misc/sourcehut/paste.nix135
-rw-r--r--nixos/modules/services/misc/sourcehut/service.nix2
-rw-r--r--nixos/modules/services/misc/sourcehut/todo.nix163
-rw-r--r--nixos/modules/services/system/localtime.nix2
-rw-r--r--nixos/modules/virtualisation/amazon-ec2-amis.nix50
-rw-r--r--nixos/tests/sourcehut.nix42
-rw-r--r--pkgs/applications/audio/picard/default.nix4
-rw-r--r--pkgs/applications/editors/atom/env.nix8
-rw-r--r--pkgs/applications/editors/kodestudio/default.nix135
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix4
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix28
-rw-r--r--pkgs/applications/misc/authy/default.nix91
-rw-r--r--pkgs/applications/misc/cura/stable.nix72
-rw-r--r--pkgs/applications/misc/feedbackd/default.nix12
-rw-r--r--pkgs/applications/misc/haxor-news/default.nix8
-rw-r--r--pkgs/applications/misc/obsidian/default.nix4
-rw-r--r--pkgs/applications/misc/plover/default.nix25
-rw-r--r--pkgs/applications/misc/privacyidea/default.nix20
-rw-r--r--pkgs/applications/misc/stw/default.nix32
-rw-r--r--pkgs/applications/misc/sway-launcher-desktop/default.nix2
-rw-r--r--pkgs/applications/misc/ydict/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json9
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix5
-rw-r--r--pkgs/applications/networking/cluster/tgswitch/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json4
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix60
-rw-r--r--pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix67
-rw-r--r--pkgs/applications/networking/instant-messengers/torchat/default.nix40
-rw-r--r--pkgs/applications/office/appflowy/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/gpredict/default.nix12
-rw-r--r--pkgs/applications/science/logic/coq/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/sourcehut/builds.nix29
-rw-r--r--pkgs/applications/version-management/sourcehut/core.nix13
-rw-r--r--pkgs/applications/version-management/sourcehut/default.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix32
-rw-r--r--pkgs/applications/version-management/sourcehut/git.nix58
-rw-r--r--pkgs/applications/version-management/sourcehut/hg.nix38
-rw-r--r--pkgs/applications/version-management/sourcehut/hub.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/lists.nix25
-rw-r--r--pkgs/applications/version-management/sourcehut/man.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/meta.nix22
-rw-r--r--pkgs/applications/version-management/sourcehut/pages.nix18
-rw-r--r--pkgs/applications/version-management/sourcehut/paste.nix9
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch69
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch42
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/git/0001-Revert-Add-webhook-queue-monitoring.patch50
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/lists/0001-Revert-Add-webhook-queue-monitoring.patch48
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch48
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/todo/0001-Revert-Add-webhook-queue-monitoring.patch50
-rw-r--r--pkgs/applications/version-management/sourcehut/scm.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/todo.nix25
-rwxr-xr-xpkgs/applications/version-management/sourcehut/update.sh2
-rw-r--r--pkgs/applications/video/qarte/default.nix8
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/window-managers/fbpanel/default.nix4
-rw-r--r--pkgs/desktops/cdesktopenv/default.nix5
-rw-r--r--pkgs/development/compilers/gcl/default.nix5
-rw-r--r--pkgs/development/compilers/gmqcc/default.nix43
-rw-r--r--pkgs/development/coq-modules/bignums/default.nix1
-rw-r--r--pkgs/development/coq-modules/coq-elpi/default.nix7
-rw-r--r--pkgs/development/go-modules/generic/default.nix5
-rw-r--r--pkgs/development/libraries/hidapi/default.nix4
-rw-r--r--pkgs/development/libraries/libagar/libagar_test.nix6
-rw-r--r--pkgs/development/libraries/libdeltachat/default.nix6
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix4
-rw-r--r--pkgs/development/libraries/libosinfo/default.nix3
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix10
-rw-r--r--pkgs/development/libraries/libzim/default.nix4
-rw-r--r--pkgs/development/libraries/physics/cernlib/default.nix5
-rw-r--r--pkgs/development/libraries/sptk/default.nix31
-rw-r--r--pkgs/development/node-packages/node-packages.nix2263
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/wasm/default.nix7
-rw-r--r--pkgs/development/python-modules/adb-shell/default.nix4
-rw-r--r--pkgs/development/python-modules/canonicaljson/default.nix4
-rw-r--r--pkgs/development/python-modules/dash/default.nix39
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/docopt-ng/default.nix4
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix4
-rw-r--r--pkgs/development/python-modules/fastapi-mail/default.nix6
-rw-r--r--pkgs/development/python-modules/fido2/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-appengine-logging/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix2
-rw-r--r--pkgs/development/python-modules/google-cloud-org-policy/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-secret-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-securitycenter/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-trace/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-translate/default.nix4
-rw-r--r--pkgs/development/python-modules/inkex/default.nix6
-rw-r--r--pkgs/development/python-modules/mkdocs-material/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix8
-rw-r--r--pkgs/development/python-modules/pre-commit-hooks/default.nix6
-rw-r--r--pkgs/development/python-modules/pulumi/default.nix15
-rw-r--r--pkgs/development/python-modules/pyfxa/default.nix63
-rw-r--r--pkgs/development/python-modules/pyroute2-core/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ethtool/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ipdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ipset/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ndb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-nftables/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-nslink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-protocols/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyshark/default.nix6
-rw-r--r--pkgs/development/python-modules/pysigma-backend-insightidr/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-backend-splunk/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-windows/default.nix5
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix4
-rw-r--r--pkgs/development/python-modules/quantum-gateway/default.nix9
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/default.nix4
-rw-r--r--pkgs/development/python-modules/staticjinja/default.nix4
-rw-r--r--pkgs/development/python-modules/validphys2/default.nix10
-rw-r--r--pkgs/development/python-modules/webexteamssdk/default.nix13
-rw-r--r--pkgs/development/python-modules/xknx/default.nix4
-rw-r--r--pkgs/development/python-modules/yolink-api/default.nix4
-rw-r--r--pkgs/development/python2-modules/click/default.nix28
-rw-r--r--pkgs/development/python2-modules/cryptography/default.nix86
-rw-r--r--pkgs/development/python2-modules/cryptography/vectors.nix24
-rw-r--r--pkgs/development/python2-modules/decorator/default.nix21
-rw-r--r--pkgs/development/python2-modules/flask/default.nix28
-rw-r--r--pkgs/development/python2-modules/freezegun/default.nix29
-rw-r--r--pkgs/development/python2-modules/ipaddr/default.nix23
-rw-r--r--pkgs/development/python2-modules/itsdangerous/default.nix21
-rw-r--r--pkgs/development/python2-modules/libcloud/default.nix39
-rw-r--r--pkgs/development/python2-modules/lpod/default.nix31
-rw-r--r--pkgs/development/python2-modules/pyjwt/default.nix47
-rw-r--r--pkgs/development/python2-modules/urllib3/default.nix84
-rw-r--r--pkgs/development/python2-modules/vcrpy/default.nix48
-rw-r--r--pkgs/development/python2-modules/werkzeug/default.nix60
-rw-r--r--pkgs/development/python2-modules/wsproto/default.nix25
-rw-r--r--pkgs/development/python2-modules/wxPython/default.nix91
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix15
-rw-r--r--pkgs/development/tools/analysis/eresi/default.nix7
-rw-r--r--pkgs/development/tools/apksigner/default.nix1
-rw-r--r--pkgs/development/tools/easyjson/deps.nix11
-rw-r--r--pkgs/development/tools/goa/deps.nix75
-rw-r--r--pkgs/development/tools/goresym/default.nix2
-rw-r--r--pkgs/development/tools/kubernetes-controller-tools/default.nix6
-rw-r--r--pkgs/development/tools/metals/default.nix4
-rw-r--r--pkgs/development/tools/misc/inotify-tools/default.nix4
-rw-r--r--pkgs/development/tools/misc/kibana/6.x.nix63
-rw-r--r--pkgs/development/tools/misc/pwninit/default.nix35
-rw-r--r--pkgs/development/tools/vend/default.nix37
-rw-r--r--pkgs/development/tools/vend/remove_tidy.patch13
-rw-r--r--pkgs/development/web/nodejs/v10.nix14
-rw-r--r--pkgs/games/gargoyle/default.nix6
-rw-r--r--pkgs/games/macopix/default.nix5
-rw-r--r--pkgs/games/stuntrally/default.nix10
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix4
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix23
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix10
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix22
-rw-r--r--pkgs/os-specific/linux/usbip/default.nix4
-rw-r--r--pkgs/servers/coturn/default.nix7
-rw-r--r--pkgs/servers/dendrite/default.nix6
-rw-r--r--pkgs/servers/http/webhook/default.nix21
-rw-r--r--pkgs/servers/monitoring/prometheus/nats-exporter.nix22
-rw-r--r--pkgs/servers/nosql/dragonflydb/default.nix109
-rw-r--r--pkgs/servers/nosql/dragonflydb/fixes.patch132
-rw-r--r--pkgs/servers/nosql/dragonflydb/glog.patch553
-rw-r--r--pkgs/servers/persistent-evdev/default.nix42
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix20
-rw-r--r--pkgs/shells/fish/plugins/hydro.nix2
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools-cross.nix11
-rw-r--r--pkgs/tools/admin/certigo/default.nix21
-rw-r--r--pkgs/tools/compression/bzip3/default.nix5
-rw-r--r--pkgs/tools/compression/efficient-compression-tool/default.nix39
-rw-r--r--pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch108
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix4
-rw-r--r--pkgs/tools/graphics/ifm/default.nix5
-rw-r--r--pkgs/tools/misc/csvs-to-sqlite/default.nix8
-rw-r--r--pkgs/tools/misc/mprocs/default.nix8
-rw-r--r--pkgs/tools/misc/zellij/default.nix8
-rw-r--r--pkgs/tools/package-management/nix/default.nix12
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix24
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/sigma-cli/default.nix3
-rw-r--r--pkgs/tools/text/ispell/default.nix4
-rw-r--r--pkgs/tools/text/ltex-ls/default.nix34
-rw-r--r--pkgs/tools/virtualization/cloud-init/default.nix1
-rw-r--r--pkgs/top-level/aliases.nix5
-rw-r--r--pkgs/top-level/all-packages.nix52
-rw-r--r--pkgs/top-level/coq-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix7
-rw-r--r--pkgs/top-level/python2-packages.nix34
219 files changed, 3493 insertions, 5118 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ef620f5bc5c5..fb5e5b545955 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -104,10 +104,10 @@ This also works for PR's that have already been merged, and might take a couple
 You can also create the backport manually:
 
 1. Take note of the commits in which the change was introduced into `master` branch.
-2. Check out the target _release branch_, e.g. `release-21.11`. Do not use a _channel branch_ like `nixos-21.11` or `nixpkgs-21.11-darwin`.
+2. Check out the target _release branch_, e.g. `release-22.05`. Do not use a _channel branch_ like `nixos-22.05` or `nixpkgs-22.05-darwin`.
 3. Create a branch for your change, e.g. `git checkout -b backport`.
 4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
-5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-21.11`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[21.11]`.
+5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-22.05`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[22.05]`.
 6. When the backport pull request is merged and you have the necessary privileges you can also replace the label `9.needs: port to stable` with `8.has: port to stable` on the original pull request. This way maintainers can keep track of missing backports easier.
 
 ## Criteria for Backporting changes
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index e41290864ed1..b26407117c85 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -306,8 +306,6 @@ rec {
 
   # BSDs
 
-  amd64-netbsd = lib.warn "The amd64-netbsd system example is deprecated. Use x86_64-netbsd instead." x86_64-netbsd;
-
   x86_64-netbsd = {
     config = "x86_64-unknown-netbsd";
     libc = "nblibc";
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index b4c4029925f7..aa97c52565b0 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -8799,17 +8799,6 @@
     githubId = 3073833;
     name = "Massimo Redaelli";
   };
-  mrhedgehog = {
-    name = "Mr Hedgehog";
-    email = "hedgehog@mrhedgehog.xyz";
-    matrix = "@mrhedgehog:jupiterbroadcasting.com";
-    github = "ModdedGamers";
-    githubId = 35778371;
-    keys = [{
-      longkeyid = "rsa4096/0x7D5107866B1C6752";
-      fingerprint = "38A0 29B0 4A7E 4C13 A4BB  86C8 7D51 0786 6B1C 6752";
-    }];
-  };
   mrkkrp = {
     email = "markkarpov92@gmail.com";
     github = "mrkkrp";
@@ -9104,6 +9093,12 @@
     githubId = 3747396;
     name = "Nathan Isom";
   };
+  necrophcodr = {
+    email = "nc@scalehost.eu";
+    github = "necrophcodr";
+    githubId = 575887;
+    name = "Steffen Rytter Postas";
+  };
   neilmayhew = {
     email = "nix@neil.mayhew.name";
     github = "neilmayhew";
@@ -11488,6 +11483,12 @@
     githubId = 59476;
     name = "Peter Schuller";
   };
+  scoder12 = {
+    name = "Spencer Pogorzelski";
+    email = "34356756+Scoder12@users.noreply.github.com";
+    github = "scoder12";
+    githubId = 34356756;
+  };
   scolobb = {
     email = "sivanov@colimite.fr";
     github = "scolobb";
@@ -12779,6 +12780,17 @@
     githubId = 8547242;
     name = "Stefan Rohrbacher";
   };
+  thehedgeh0g = {
+    name = "The Hedgehog";
+    email = "hedgehog@mrhedgehog.xyz";
+    matrix = "@mrhedgehog:jupiterbroadcasting.com";
+    github = "ModdedGamers";
+    githubId = 35778371;
+    keys = [{
+      longkeyid = "rsa4096/0x7D5107866B1C6752";
+      fingerprint = "38A0 29B0 4A7E 4C13 A4BB  86C8 7D51 0786 6B1C 6752";
+    }];
+  };
   thelegy = {
     email = "mail+nixos@0jb.de";
     github = "thelegy";
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index 65ba6033c834..5c29f98b28df 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -50,11 +50,27 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://dragonflydb.io/">dragonflydb</link>,
+          a modern replacement for Redis and Memcached. Available as
+          <link linkend="opt-services.dragonflydb.enable">services.dragonflydb</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://github.com/leetronics/infnoise">infnoise</link>,
           a hardware True Random Number Generator dongle. Available as
           <link xlink:href="options.html#opt-services.infnoise.enable">services.infnoise</link>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://github.com/aiberia/persistent-evdev">persistent-evdev</link>,
+          a daemon to add virtual proxy devices that mirror a physical
+          input device but persist even if the underlying hardware is
+          hot-plugged. Available as
+          <link linkend="opt-services.persistent-evdev.enable">services.persistent-evdev</link>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.11-incompatibilities">
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 864fe5c69346..624bde2c83d7 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -25,8 +25,11 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [appvm](https://github.com/jollheef/appvm), Nix based app VMs. Available as [virtualisation.appvm](options.html#opt-virtualisation.appvm.enable).
 
+- [dragonflydb](https://dragonflydb.io/), a modern replacement for Redis and Memcached. Available as [services.dragonflydb](#opt-services.dragonflydb.enable).
+
 - [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
   Available as [services.infnoise](options.html#opt-services.infnoise.enable).
+- [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable).
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
diff --git a/nixos/modules/i18n/input-method/ibus.nix b/nixos/modules/i18n/input-method/ibus.nix
index c5b0cbc21502..d9d9864ab9e0 100644
--- a/nixos/modules/i18n/input-method/ibus.nix
+++ b/nixos/modules/i18n/input-method/ibus.nix
@@ -67,7 +67,7 @@ in
     programs.dconf.packages = [ ibusPackage ];
 
     services.dbus.packages = [
-      ibusAutostart
+      ibusPackage
     ];
 
     environment.variables = {
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 8fc8cc4baad5..bd09724ebfa2 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,7 +1,7 @@
 {
-  x86_64-linux = "/nix/store/6mjgljq8sm9bsz6k22as5ar3jw78644m-nix-2.8.1";
-  i686-linux = "/nix/store/c4yjv4l8wncdla6ycicvsjrdf40xjkpp-nix-2.8.1";
-  aarch64-linux = "/nix/store/qkgvks80mdibq7m86hqasgr5lpixbnmh-nix-2.8.1";
-  x86_64-darwin = "/nix/store/riz4mzb1xhp36088ffnp40lz52bpxz01-nix-2.8.1";
-  aarch64-darwin = "/nix/store/dirm8hsnmvvzjs21hrx8i84w8k453jzp-nix-2.8.1";
+  x86_64-linux = "/nix/store/6g4fla3vkcxihph282a0v3cd10709y7c-nix-2.9.1";
+  i686-linux = "/nix/store/j143221z44469zx21f5m9a47x7y1jpr5-nix-2.9.1";
+  aarch64-linux = "/nix/store/c4z3vy1sgm49la8bvmdrrpssgk4iw2nk-nix-2.9.1";
+  x86_64-darwin = "/nix/store/cqdwb7khf6zg94bz7lnvfjqx6z775qaw-nix-2.9.1";
+  aarch64-darwin = "/nix/store/1brkxcs287n1px2i4fq39l7h51hjv0f8-nix-2.9.1";
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index d59d7bfe40d9..d67602a26761 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -348,6 +348,7 @@
   ./services/databases/clickhouse.nix
   ./services/databases/cockroachdb.nix
   ./services/databases/couchdb.nix
+  ./services/databases/dragonflydb.nix
   ./services/databases/firebird.nix
   ./services/databases/foundationdb.nix
   ./services/databases/hbase.nix
@@ -605,6 +606,7 @@
   ./services/misc/packagekit.nix
   ./services/misc/paperless.nix
   ./services/misc/parsoid.nix
+  ./services/misc/persistent-evdev.nix
   ./services/misc/plex.nix
   ./services/misc/plikd.nix
   ./services/misc/podgrab.nix
diff --git a/nixos/modules/programs/kdeconnect.nix b/nixos/modules/programs/kdeconnect.nix
index df698e84dd70..10d6e18a3d14 100644
--- a/nixos/modules/programs/kdeconnect.nix
+++ b/nixos/modules/programs/kdeconnect.nix
@@ -12,8 +12,8 @@ with lib;
       implementation if you use Gnome.
     '';
     package = mkOption {
-      default = pkgs.kdeconnect;
-      defaultText = literalExpression "pkgs.kdeconnect";
+      default = pkgs.plasma5Packages.kdeconnect-kde;
+      defaultText = literalExpression "pkgs.plasma5Packages.kdeconnect-kde";
       type = types.package;
       example = literalExpression "pkgs.gnomeExtensions.gsconnect";
       description = ''
diff --git a/nixos/modules/services/databases/dragonflydb.nix b/nixos/modules/services/databases/dragonflydb.nix
new file mode 100644
index 000000000000..e72afa9d9089
--- /dev/null
+++ b/nixos/modules/services/databases/dragonflydb.nix
@@ -0,0 +1,152 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.dragonflydb;
+  dragonflydb = pkgs.dragonflydb;
+
+  settings =
+    {
+      port = cfg.port;
+      dir = "/var/lib/dragonflydb";
+      keys_output_limit = cfg.keysOutputLimit;
+    } //
+    (lib.optionalAttrs (cfg.bind != null) { bind = cfg.bind; }) //
+    (lib.optionalAttrs (cfg.requirePass != null) { requirepass = cfg.requirePass; }) //
+    (lib.optionalAttrs (cfg.maxMemory != null) { maxmemory = cfg.maxMemory; }) //
+    (lib.optionalAttrs (cfg.memcachePort != null) { memcache_port = cfg.memcachePort; }) //
+    (lib.optionalAttrs (cfg.dbNum != null) { dbnum = cfg.dbNum; }) //
+    (lib.optionalAttrs (cfg.cacheMode != null) { cache_mode = cfg.cacheMode; });
+in
+{
+
+  ###### interface
+
+  options = {
+    services.dragonflydb = {
+      enable = mkEnableOption "DragonflyDB";
+
+      user = mkOption {
+        type = types.str;
+        default = "dragonfly";
+        description = "The user to run DragonflyDB as";
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 6379;
+        description = "The TCP port to accept connections.";
+      };
+
+      bind = mkOption {
+        type = with types; nullOr str;
+        default = "127.0.0.1";
+        description = ''
+          The IP interface to bind to.
+          <literal>null</literal> means "all interfaces".
+        '';
+      };
+
+      requirePass = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        description = "Password for database";
+        example = "letmein!";
+      };
+
+      maxMemory = mkOption {
+        type = with types; nullOr ints.unsigned;
+        default = null;
+        description = ''
+          The maximum amount of memory to use for storage (in bytes).
+          <literal>null</literal> means this will be automatically set.
+        '';
+      };
+
+      memcachePort = mkOption {
+        type = with types; nullOr port;
+        default = null;
+        description = ''
+          To enable memcached compatible API on this port.
+          <literal>null</literal> means disabled.
+        '';
+      };
+
+      keysOutputLimit = mkOption {
+        type = types.ints.unsigned;
+        default = 8192;
+        description = ''
+          Maximum number of returned keys in keys command.
+          <literal>keys</literal> is a dangerous command.
+          We truncate its result to avoid blowup in memory when fetching too many keys.
+        '';
+      };
+
+      dbNum = mkOption {
+        type = with types; nullOr ints.unsigned;
+        default = null;
+        description = "Maximum number of supported databases for <literal>select</literal>";
+      };
+
+      cacheMode = mkOption {
+        type = with types; nullOr bool;
+        default = null;
+        description = ''
+          Once this mode is on, Dragonfly will evict items least likely to be stumbled
+          upon in the future but only when it is near maxmemory limit.
+        '';
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf config.services.dragonflydb.enable {
+
+    users.users = optionalAttrs (cfg.user == "dragonfly") {
+      dragonfly.description = "DragonflyDB server user";
+      dragonfly.isSystemUser = true;
+      dragonfly.group = "dragonfly";
+    };
+    users.groups = optionalAttrs (cfg.user == "dragonfly") { dragonfly = { }; };
+
+    environment.systemPackages = [ dragonflydb ];
+
+    systemd.services.dragonflydb = {
+      description = "DragonflyDB server";
+
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        ExecStart = "${dragonflydb}/bin/dragonfly --alsologtostderr ${builtins.concatStringsSep " " (attrsets.mapAttrsToList (n: v: "--${n} ${strings.escapeShellArg v}") settings)}";
+
+        User = cfg.user;
+
+        # Filesystem access
+        ReadWritePaths = [ settings.dir ];
+        StateDirectory = "dragonflydb";
+        StateDirectoryMode = "0700";
+        # Process Properties
+        LimitMEMLOCK = "infinity";
+        # Caps
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+        # Sandboxing
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        LockPersonality = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+        RestrictRealtime = true;
+        PrivateMounts = true;
+        MemoryDenyWriteExecute = true;
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index a4d2d10af70f..f6f74d12e106 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -734,7 +734,7 @@ in
             CPUSchedulingPolicy = cfg.daemonCPUSchedPolicy;
             IOSchedulingClass = cfg.daemonIOSchedClass;
             IOSchedulingPriority = cfg.daemonIOSchedPriority;
-            LimitNOFILE = 4096;
+            LimitNOFILE = 1048576;
           };
 
         restartTriggers = [ nixConf ];
diff --git a/nixos/modules/services/misc/persistent-evdev.nix b/nixos/modules/services/misc/persistent-evdev.nix
new file mode 100644
index 000000000000..401d20010b12
--- /dev/null
+++ b/nixos/modules/services/misc/persistent-evdev.nix
@@ -0,0 +1,60 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.persistent-evdev;
+  settingsFormat = pkgs.formats.json {};
+
+  configFile = settingsFormat.generate "persistent-evdev-config" {
+    cache = "/var/cache/persistent-evdev";
+    devices = lib.mapAttrs (virt: phys: "/dev/input/by-id/${phys}") cfg.devices;
+  };
+in
+{
+  options.services.persistent-evdev = {
+    enable = lib.mkEnableOption "virtual input devices that persist even if the backing device is hotplugged";
+
+    devices = lib.mkOption {
+      default = {};
+      type = with lib.types; attrsOf str;
+      description = ''
+        A set of virtual proxy device labels with backing physical device ids.
+
+        Physical devices should already exist in <filename class="devicefile">/dev/input/by-id/</filename>.
+        Proxy devices will be automatically given a <literal>uinput-</literal> prefix.
+
+        See the <link xlink:href="https://github.com/aiberia/persistent-evdev#example-usage-with-libvirt">
+        project page</link> for example configuration of virtual devices with libvirt
+        and remember to add <literal>uinput-*</literal> devices to the qemu
+        <literal>cgroup_device_acl</literal> list (see <xref linkend="opt-virtualisation.libvirtd.qemu.verbatimConfig"/>).
+      '';
+      example = lib.literalExpression ''
+        {
+          persist-mouse0 = "usb-Logitech_G403_Prodigy_Gaming_Mouse_078738533531-event-if01";
+          persist-mouse1 = "usb-Logitech_G403_Prodigy_Gaming_Mouse_078738533531-event-mouse";
+          persist-mouse2 = "usb-Logitech_G403_Prodigy_Gaming_Mouse_078738533531-if01-event-kbd";
+          persist-keyboard0 = "usb-Microsoft_Natural®_Ergonomic_Keyboard_4000-event-kbd";
+          persist-keyboard1 = "usb-Microsoft_Natural®_Ergonomic_Keyboard_4000-if01-event-kbd";
+        }
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+
+    systemd.services.persistent-evdev = {
+      documentation = [ "https://github.com/aiberia/persistent-evdev/blob/master/README.md" ];
+      description = "Persistent evdev proxy";
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        Restart = "on-failure";
+        ExecStart = "${pkgs.persistent-evdev}/bin/persistent-evdev.py ${configFile}";
+        CacheDirectory = "persistent-evdev";
+      };
+    };
+
+    services.udev.packages = [ pkgs.persistent-evdev ];
+  };
+
+  meta.maintainers = with lib.maintainers; [ lodi ];
+}
diff --git a/nixos/modules/services/misc/sourcehut/builds.nix b/nixos/modules/services/misc/sourcehut/builds.nix
deleted file mode 100644
index 685a132d3507..000000000000
--- a/nixos/modules/services/misc/sourcehut/builds.nix
+++ /dev/null
@@ -1,236 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  scfg = cfg.builds;
-  rcfg = config.services.redis;
-  iniKey = "builds.sr.ht";
-
-  drv = pkgs.sourcehut.buildsrht;
-in
-{
-  options.services.sourcehut.builds = {
-    user = mkOption {
-      type = types.str;
-      default = "buildsrht";
-      description = ''
-        User for builds.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5002;
-      description = ''
-        Port on which the "builds" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "builds.sr.ht";
-      description = ''
-        PostgreSQL database name for builds.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/buildsrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/buildsrht"'';
-      description = ''
-        State path for builds.sr.ht.
-      '';
-    };
-
-    enableWorker = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Run workers for builds.sr.ht.
-      '';
-    };
-
-    images = mkOption {
-      type = types.attrsOf (types.attrsOf (types.attrsOf types.package));
-      default = { };
-      example = lib.literalExpression ''(let
-          # Pinning unstable to allow usage with flakes and limit rebuilds.
-          pkgs_unstable = builtins.fetchGit {
-              url = "https://github.com/NixOS/nixpkgs";
-              rev = "ff96a0fa5635770390b184ae74debea75c3fd534";
-              ref = "nixos-unstable";
-          };
-          image_from_nixpkgs = pkgs_unstable: (import ("''${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
-            pkgs = (import pkgs_unstable {});
-          });
-        in
-        {
-          nixos.unstable.x86_64 = image_from_nixpkgs pkgs_unstable;
-        }
-      )'';
-      description = ''
-        Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
-      '';
-    };
-
-  };
-
-  config = with scfg; let
-    image_dirs = lib.lists.flatten (
-      lib.attrsets.mapAttrsToList
-        (distro: revs:
-          lib.attrsets.mapAttrsToList
-            (rev: archs:
-              lib.attrsets.mapAttrsToList
-                (arch: image:
-                  pkgs.runCommand "buildsrht-images" { } ''
-                    mkdir -p $out/${distro}/${rev}/${arch}
-                    ln -s ${image}/*.qcow2 $out/${distro}/${rev}/${arch}/root.img.qcow2
-                  '')
-                archs)
-            revs)
-        scfg.images);
-    image_dir_pre = pkgs.symlinkJoin {
-      name = "builds.sr.ht-worker-images-pre";
-      paths = image_dirs ++ [
-        "${pkgs.sourcehut.buildsrht}/lib/images"
-      ];
-    };
-    image_dir = pkgs.runCommand "builds.sr.ht-worker-images" { } ''
-      mkdir -p $out/images
-      cp -Lr ${image_dir_pre}/* $out/images
-    '';
-  in
-  lib.mkIf (cfg.enable && elem "builds" cfg.services) {
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          extraGroups = lib.optionals cfg.builds.enableWorker [ "docker" ];
-          description = "builds.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0755 ${user} ${user} -"
-      ] ++ (lib.optionals cfg.builds.enableWorker
-        [ "d ${statePath}/logs 0775 ${user} ${user} - -" ]
-      );
-
-      services = {
-        buildsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey
-          {
-            after = [ "postgresql.service" "network.target" ];
-            requires = [ "postgresql.service" ];
-            wantedBy = [ "multi-user.target" ];
-
-            description = "builds.sr.ht website service";
-
-            serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-
-            # Hack to bypass this hack: https://git.sr.ht/~sircmpwn/core.sr.ht/tree/master/item/srht-update-profiles#L6
-          } // { preStart = " "; };
-
-        buildsrht-worker = {
-          enable = scfg.enableWorker;
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-          partOf = [ "buildsrht.service" ];
-          description = "builds.sr.ht worker service";
-          path = [ pkgs.openssh pkgs.docker ];
-          preStart = let qemuPackage = pkgs.qemu_kvm;
-          in ''
-            if [[ "$(docker images -q qemu:latest 2> /dev/null)" == "" || "$(cat ${statePath}/docker-image-qemu 2> /dev/null || true)" != "${qemuPackage.version}" ]]; then
-              # Create and import qemu:latest image for docker
-              ${
-                pkgs.dockerTools.streamLayeredImage {
-                  name = "qemu";
-                  tag = "latest";
-                  contents = [ qemuPackage ];
-                }
-              } | docker load
-              # Mark down current package version
-              printf "%s" "${qemuPackage.version}" > ${statePath}/docker-image-qemu
-            fi
-          '';
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Group = "nginx";
-            Restart = "always";
-          };
-          serviceConfig.ExecStart = "${pkgs.sourcehut.buildsrht}/bin/builds.sr.ht-worker";
-        };
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL builds.sr.ht is being served at (protocol://domain)
-      "builds.sr.ht".origin = mkDefault "http://builds.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "builds.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "builds.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "builds.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "builds.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # builds.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "builds.sr.ht".oauth-client-id = mkDefault null;
-      "builds.sr.ht".oauth-client-secret = mkDefault null;
-      # The redis connection used for the celery worker
-      "builds.sr.ht".redis = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/3";
-      # The shell used for ssh
-      "builds.sr.ht".shell = mkDefault "runner-shell";
-      # Register the builds.sr.ht dispatcher
-      "git.sr.ht::dispatch".${builtins.unsafeDiscardStringContext "${pkgs.sourcehut.buildsrht}/bin/buildsrht-keys"} = mkDefault "${user}:${user}";
-
-      # Location for build logs, images, and control command
-    } // lib.attrsets.optionalAttrs scfg.enableWorker {
-      # Default worker stores logs that are accessible via this address:port
-      "builds.sr.ht::worker".name = mkDefault "127.0.0.1:5020";
-      "builds.sr.ht::worker".buildlogs = mkDefault "${scfg.statePath}/logs";
-      "builds.sr.ht::worker".images = mkDefault "${image_dir}/images";
-      "builds.sr.ht::worker".controlcmd = mkDefault "${image_dir}/images/control";
-      "builds.sr.ht::worker".timeout = mkDefault "3m";
-    };
-
-    services.nginx.virtualHosts."logs.${cfg.originBase}" =
-      if scfg.enableWorker then {
-        listen = with builtins; let address = split ":" cfg.settings."builds.sr.ht::worker".name;
-        in [{ addr = elemAt address 0; port = lib.toInt (elemAt address 2); }];
-        locations."/logs".root = "${scfg.statePath}";
-      } else { };
-
-    services.nginx.virtualHosts."builds.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.buildsrht}/${pkgs.sourcehut.python.sitePackages}/buildsrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/default.nix b/nixos/modules/services/misc/sourcehut/default.nix
index 5a6d011a729a..3ff2837900ec 100644
--- a/nixos/modules/services/misc/sourcehut/default.nix
+++ b/nixos/modules/services/misc/sourcehut/default.nix
@@ -83,7 +83,7 @@ let
   python = pkgs.sourcehut.python.withPackages (ps: with ps; [
     gunicorn
     eventlet
-    # For monitoring Celery: sudo -u listssrht celery --app listssrht.process -b redis+socket:///run/redis-sourcehut/redis.sock?virtual_host=5 flower
+    # For monitoring Celery: sudo -u listssrht celery --app listssrht.process -b redis+socket:///run/redis-sourcehut/redis.sock?virtual_host=1 flower
     flower
     # Sourcehut services
     srht
@@ -238,20 +238,32 @@ in
           };
           smtp-user = mkOptionNullOrStr "Outgoing SMTP user.";
           smtp-password = mkOptionNullOrStr "Outgoing SMTP password.";
-          smtp-from = mkOptionNullOrStr "Outgoing SMTP FROM.";
+          smtp-from = mkOption {
+            type = types.str;
+            description = "Outgoing SMTP FROM.";
+          };
           error-to = mkOptionNullOrStr "Address receiving application exceptions";
           error-from = mkOptionNullOrStr "Address sending application exceptions";
-          pgp-privkey = mkOptionNullOrStr ''
-            An absolute file path (which should be outside the Nix-store)
-            to an OpenPGP private key.
+          pgp-privkey = mkOption {
+            type = types.str;
+            description = ''
+              An absolute file path (which should be outside the Nix-store)
+              to an OpenPGP private key.
 
-            Your PGP key information (DO NOT mix up pub and priv here)
-            You must remove the password from your secret key, if present.
-            You can do this with <code>gpg --edit-key [key-id]</code>,
-            then use the <code>passwd</code> command and do not enter a new password.
-          '';
-          pgp-pubkey = mkOptionNullOrStr "OpenPGP public key.";
-          pgp-key-id = mkOptionNullOrStr "OpenPGP key identifier.";
+              Your PGP key information (DO NOT mix up pub and priv here)
+              You must remove the password from your secret key, if present.
+              You can do this with <code>gpg --edit-key [key-id]</code>,
+              then use the <code>passwd</code> command and do not enter a new password.
+            '';
+          };
+          pgp-pubkey = mkOption {
+            type = with types; either path str;
+            description = "OpenPGP public key.";
+          };
+          pgp-key-id = mkOption {
+            type = types.str;
+            description = "OpenPGP key identifier.";
+          };
         };
         options.objects = {
           s3-upstream = mkOption {
@@ -905,6 +917,11 @@ in
       inherit configIniOfService;
       srvsrht = "buildsrht";
       port = 5002;
+      extraServices.buildsrht-api = {
+        serviceConfig.Restart = "always";
+        serviceConfig.RestartSec = "5s";
+        serviceConfig.ExecStart = "${pkgs.sourcehut.buildsrht}/bin/buildsrht-api -b ${cfg.listenAddress}:${toString (cfg.builds.port + 100)}";
+      };
       # TODO: a celery worker on the master and worker are apparently needed
       extraServices.buildsrht-worker = let
         qemuPackage = pkgs.qemu_kvm;
@@ -928,13 +945,13 @@ in
           fi
         '';
         serviceConfig = {
-          ExecStart = "${pkgs.sourcehut.buildsrht}/bin/builds.sr.ht-worker";
+          ExecStart = "${pkgs.sourcehut.buildsrht}/bin/buildsrht-worker";
           BindPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ];
           LogsDirectory = [ "sourcehut/${serviceName}" ];
           RuntimeDirectory = [ "sourcehut/${serviceName}/subdir" ];
           StateDirectory = [ "sourcehut/${serviceName}" ];
           TimeoutStartSec = "1800s";
-          # builds.sr.ht-worker looks up ../config.ini
+          # buildsrht-worker looks up ../config.ini
           WorkingDirectory = "-"+"/run/sourcehut/${serviceName}/subdir";
         };
       };
@@ -952,12 +969,12 @@ in
           ) cfg.builds.images
         );
         image_dir_pre = pkgs.symlinkJoin {
-          name = "builds.sr.ht-worker-images-pre";
+          name = "buildsrht-worker-images-pre";
           paths = image_dirs;
             # FIXME: not working, apparently because ubuntu/latest is a broken link
             # ++ [ "${pkgs.sourcehut.buildsrht}/lib/images" ];
         };
-        image_dir = pkgs.runCommand "builds.sr.ht-worker-images" { } ''
+        image_dir = pkgs.runCommand "buildsrht-worker-images" { } ''
           mkdir -p $out/images
           cp -Lr ${image_dir_pre}/* $out/images
         '';
@@ -1081,6 +1098,11 @@ in
           };
         })
       ];
+      extraServices.gitsrht-api = {
+        serviceConfig.Restart = "always";
+        serviceConfig.RestartSec = "5s";
+        serviceConfig.ExecStart = "${pkgs.sourcehut.gitsrht}/bin/gitsrht-api -b ${cfg.listenAddress}:${toString (cfg.git.port + 100)}";
+      };
       extraServices.gitsrht-fcgiwrap = mkIf cfg.nginx.enable {
         serviceConfig = {
           # Socket is passed by gitsrht-fcgiwrap.socket
@@ -1124,6 +1146,11 @@ in
         timerConfig.OnCalendar = ["daily"];
         timerConfig.AccuracySec = "1h";
       };
+      extraServices.hgsrht-api = {
+        serviceConfig.Restart = "always";
+        serviceConfig.RestartSec = "5s";
+        serviceConfig.ExecStart = "${pkgs.sourcehut.hgsrht}/bin/hgsrht-api -b ${cfg.listenAddress}:${toString (cfg.hg.port + 100)}";
+      };
       extraConfig = mkMerge [
         {
           users.users.${cfg.hg.user}.shell = pkgs.bash;
@@ -1184,6 +1211,11 @@ in
       inherit configIniOfService;
       port = 5006;
       webhooks = true;
+      extraServices.listssrht-api = {
+        serviceConfig.Restart = "always";
+        serviceConfig.RestartSec = "5s";
+        serviceConfig.ExecStart = "${pkgs.sourcehut.listssrht}/bin/listssrht-api -b ${cfg.listenAddress}:${toString (cfg.lists.port + 100)}";
+      };
       # Receive the mail from Postfix and enqueue them into Redis and PostgreSQL
       extraServices.listssrht-lmtp = {
         wants = [ "postfix.service" ];
@@ -1232,9 +1264,13 @@ in
       inherit configIniOfService;
       port = 5000;
       webhooks = true;
+      extraTimers.metasrht-daily.timerConfig = {
+        OnCalendar = ["daily"];
+        AccuracySec = "1h";
+      };
       extraServices.metasrht-api = {
         serviceConfig.Restart = "always";
-        serviceConfig.RestartSec = "2s";
+        serviceConfig.RestartSec = "5s";
         preStart = "set -x\n" + concatStringsSep "\n\n" (attrValues (mapAttrs (k: s:
           let srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht$" k;
               srv = head srvMatch;
@@ -1248,10 +1284,6 @@ in
           ) cfg.settings));
         serviceConfig.ExecStart = "${pkgs.sourcehut.metasrht}/bin/metasrht-api -b ${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
       };
-      extraTimers.metasrht-daily.timerConfig = {
-        OnCalendar = ["daily"];
-        AccuracySec = "1h";
-      };
       extraConfig = mkMerge [
         {
           assertions = [
@@ -1348,6 +1380,11 @@ in
       inherit configIniOfService;
       port = 5003;
       webhooks = true;
+      extraServices.todosrht-api = {
+        serviceConfig.Restart = "always";
+        serviceConfig.RestartSec = "5s";
+        serviceConfig.ExecStart = "${pkgs.sourcehut.todosrht}/bin/todosrht-api -b ${cfg.listenAddress}:${toString (cfg.todo.port + 100)}";
+      };
       extraServices.todosrht-lmtp = {
         wants = [ "postfix.service" ];
         unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service";
diff --git a/nixos/modules/services/misc/sourcehut/dispatch.nix b/nixos/modules/services/misc/sourcehut/dispatch.nix
deleted file mode 100644
index 292a51d3e1c5..000000000000
--- a/nixos/modules/services/misc/sourcehut/dispatch.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.dispatch;
-  iniKey = "dispatch.sr.ht";
-
-  drv = pkgs.sourcehut.dispatchsrht;
-in
-{
-  options.services.sourcehut.dispatch = {
-    user = mkOption {
-      type = types.str;
-      default = "dispatchsrht";
-      description = ''
-        User for dispatch.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5005;
-      description = ''
-        Port on which the "dispatch" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "dispatch.sr.ht";
-      description = ''
-        PostgreSQL database name for dispatch.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/dispatchsrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/dispatchsrht"'';
-      description = ''
-        State path for dispatch.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "dispatch" cfg.services) {
-
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          description = "dispatch.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services.dispatchsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-        after = [ "postgresql.service" "network.target" ];
-        requires = [ "postgresql.service" ];
-        wantedBy = [ "multi-user.target" ];
-
-        description = "dispatch.sr.ht website service";
-
-        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL dispatch.sr.ht is being served at (protocol://domain)
-      "dispatch.sr.ht".origin = mkDefault "http://dispatch.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "dispatch.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "dispatch.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "dispatch.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "dispatch.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # dispatch.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "dispatch.sr.ht".oauth-client-id = mkDefault null;
-      "dispatch.sr.ht".oauth-client-secret = mkDefault null;
-
-      # Github Integration
-      "dispatch.sr.ht::github".oauth-client-id = mkDefault null;
-      "dispatch.sr.ht::github".oauth-client-secret = mkDefault null;
-
-      # Gitlab Integration
-      "dispatch.sr.ht::gitlab".enabled = mkDefault null;
-      "dispatch.sr.ht::gitlab".canonical-upstream = mkDefault "gitlab.com";
-      "dispatch.sr.ht::gitlab".repo-cache = mkDefault "./repo-cache";
-      # "dispatch.sr.ht::gitlab"."gitlab.com" = mkDefault "GitLab:application id:secret";
-    };
-
-    services.nginx.virtualHosts."dispatch.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.dispatchsrht}/${pkgs.sourcehut.python.sitePackages}/dispatchsrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/git.nix b/nixos/modules/services/misc/sourcehut/git.nix
deleted file mode 100644
index ff110905d184..000000000000
--- a/nixos/modules/services/misc/sourcehut/git.nix
+++ /dev/null
@@ -1,217 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  scfg = cfg.git;
-  iniKey = "git.sr.ht";
-
-  rcfg = config.services.redis;
-  drv = pkgs.sourcehut.gitsrht;
-in
-{
-  options.services.sourcehut.git = {
-    user = mkOption {
-      type = types.str;
-      visible = false;
-      internal = true;
-      readOnly = true;
-      default = "git";
-      description = ''
-        User for git.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5001;
-      description = ''
-        Port on which the "git" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "git.sr.ht";
-      description = ''
-        PostgreSQL database name for git.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/gitsrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/gitsrht"'';
-      description = ''
-        State path for git.sr.ht.
-      '';
-    };
-
-    package = mkOption {
-      type = types.package;
-      default = pkgs.git;
-      defaultText = literalExpression "pkgs.git";
-      example = literalExpression "pkgs.gitFull";
-      description = ''
-        Git package for git.sr.ht. This can help silence collisions.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "git" cfg.services) {
-    # sshd refuses to run with `Unsafe AuthorizedKeysCommand ... bad ownership or modes for directory /nix/store`
-    environment.etc."ssh/gitsrht-dispatch" = {
-      mode = "0755";
-      text = ''
-        #! ${pkgs.stdenv.shell}
-        ${cfg.python}/bin/gitsrht-dispatch "$@"
-      '';
-    };
-
-    # Needs this in the $PATH when sshing into the server
-    environment.systemPackages = [ cfg.git.package ];
-
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          # https://stackoverflow.com/questions/22314298/git-push-results-in-fatal-protocol-error-bad-line-length-character-this
-          # Probably could use gitsrht-shell if output is restricted to just parameters...
-          shell = pkgs.bash;
-          description = "git.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services = {
-      cron.systemCronJobs = [ "*/20 * * * * ${cfg.python}/bin/gitsrht-periodic" ];
-      fcgiwrap.enable = true;
-
-      openssh.authorizedKeysCommand = ''/etc/ssh/gitsrht-dispatch "%u" "%h" "%t" "%k"'';
-      openssh.authorizedKeysCommandUser = "root";
-      openssh.extraConfig = ''
-        PermitUserEnvironment SRHT_*
-      '';
-
-      postgresql = {
-        authentication = ''
-          local ${database} ${user} trust
-        '';
-        ensureDatabases = [ database ];
-        ensureUsers = [
-          {
-            name = user;
-            ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-          }
-        ];
-      };
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        # /var/log is owned by root
-        "f /var/log/git-srht-shell 0644 ${user} ${user} -"
-
-        "d ${statePath} 0750 ${user} ${user} -"
-        "d ${cfg.settings."${iniKey}".repos} 2755 ${user} ${user} -"
-      ];
-
-      services = {
-        gitsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-          after = [ "redis.service" "postgresql.service" "network.target" ];
-          requires = [ "redis.service" "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          # Needs internally to create repos at the very least
-          path = [ pkgs.git ];
-          description = "git.sr.ht website service";
-
-          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-        };
-
-        gitsrht-webhooks = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "git.sr.ht webhooks service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-          };
-
-          serviceConfig.ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
-        };
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL git.sr.ht is being served at (protocol://domain)
-      "git.sr.ht".origin = mkDefault "http://git.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "git.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "git.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "git.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "git.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # The redis connection used for the webhooks worker
-      "git.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1";
-
-      # A post-update script which is installed in every git repo.
-      "git.sr.ht".post-update-script = mkDefault "${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
-
-      # git.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "git.sr.ht".oauth-client-id = mkDefault null;
-      "git.sr.ht".oauth-client-secret = mkDefault null;
-      # Path to git repositories on disk
-      "git.sr.ht".repos = mkDefault "/var/lib/git";
-
-      "git.sr.ht".outgoing-domain = mkDefault "http://git.${cfg.originBase}";
-
-      # The authorized keys hook uses this to dispatch to various handlers
-      # The format is a program to exec into as the key, and the user to match as the
-      # value. When someone tries to log in as this user, this program is executed
-      # and is expected to omit an AuthorizedKeys file.
-      #
-      # Discard of the string context is in order to allow derivation-derived strings.
-      # This is safe if the relevant package is installed which will be the case if the setting is utilized.
-      "git.sr.ht::dispatch".${builtins.unsafeDiscardStringContext "${pkgs.sourcehut.gitsrht}/bin/gitsrht-keys"} = mkDefault "${user}:${user}";
-    };
-
-    services.nginx.virtualHosts."git.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.gitsrht}/${pkgs.sourcehut.python.sitePackages}/gitsrht";
-      extraConfig = ''
-            location = /authorize {
-            proxy_pass http://${cfg.address}:${toString port};
-            proxy_pass_request_body off;
-            proxy_set_header Content-Length "";
-            proxy_set_header X-Original-URI $request_uri;
-        }
-            location ~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$ {
-                auth_request /authorize;
-                root /var/lib/git;
-                fastcgi_pass unix:/run/fcgiwrap.sock;
-                fastcgi_param SCRIPT_FILENAME ${pkgs.git}/bin/git-http-backend;
-                fastcgi_param PATH_INFO $uri;
-                fastcgi_param GIT_PROJECT_ROOT $document_root;
-                fastcgi_read_timeout 500s;
-                include ${config.services.nginx.package}/conf/fastcgi_params;
-                gzip off;
-            }
-      '';
-
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/hg.nix b/nixos/modules/services/misc/sourcehut/hg.nix
deleted file mode 100644
index 6ba1df8b6ddb..000000000000
--- a/nixos/modules/services/misc/sourcehut/hg.nix
+++ /dev/null
@@ -1,175 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  scfg = cfg.hg;
-  iniKey = "hg.sr.ht";
-
-  rcfg = config.services.redis;
-  drv = pkgs.sourcehut.hgsrht;
-in
-{
-  options.services.sourcehut.hg = {
-    user = mkOption {
-      type = types.str;
-      internal = true;
-      readOnly = true;
-      default = "hg";
-      description = ''
-        User for hg.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5010;
-      description = ''
-        Port on which the "hg" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "hg.sr.ht";
-      description = ''
-        PostgreSQL database name for hg.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/hgsrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/hgsrht"'';
-      description = ''
-        State path for hg.sr.ht.
-      '';
-    };
-
-    cloneBundles = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "hg" cfg.services) {
-    # In case it ever comes into being
-    environment.etc."ssh/hgsrht-dispatch" = {
-      mode = "0755";
-      text = ''
-        #! ${pkgs.stdenv.shell}
-        ${cfg.python}/bin/gitsrht-dispatch $@
-      '';
-    };
-
-    environment.systemPackages = [ pkgs.mercurial ];
-
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          # Assuming hg.sr.ht needs this too
-          shell = pkgs.bash;
-          description = "hg.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services = {
-      cron.systemCronJobs = [ "*/20 * * * * ${cfg.python}/bin/hgsrht-periodic" ]
-        ++ optional cloneBundles "0 * * * * ${cfg.python}/bin/hgsrht-clonebundles";
-
-      openssh.authorizedKeysCommand = ''/etc/ssh/hgsrht-dispatch "%u" "%h" "%t" "%k"'';
-      openssh.authorizedKeysCommandUser = "root";
-      openssh.extraConfig = ''
-        PermitUserEnvironment SRHT_*
-      '';
-
-      postgresql = {
-        authentication = ''
-          local ${database} ${user} trust
-        '';
-        ensureDatabases = [ database ];
-        ensureUsers = [
-          {
-            name = user;
-            ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-          }
-        ];
-      };
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        # /var/log is owned by root
-        "f /var/log/hg-srht-shell 0644 ${user} ${user} -"
-
-        "d ${statePath} 0750 ${user} ${user} -"
-        "d ${cfg.settings."${iniKey}".repos} 2755 ${user} ${user} -"
-      ];
-
-      services.hgsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-        after = [ "redis.service" "postgresql.service" "network.target" ];
-        requires = [ "redis.service" "postgresql.service" ];
-        wantedBy = [ "multi-user.target" ];
-
-        path = [ pkgs.mercurial ];
-        description = "hg.sr.ht website service";
-
-        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL hg.sr.ht is being served at (protocol://domain)
-      "hg.sr.ht".origin = mkDefault "http://hg.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "hg.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "hg.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "hg.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # The redis connection used for the webhooks worker
-      "hg.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1";
-      # A post-update script which is installed in every mercurial repo.
-      "hg.sr.ht".changegroup-script = mkDefault "${cfg.python}/bin/hgsrht-hook-changegroup";
-      # hg.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "hg.sr.ht".oauth-client-id = mkDefault null;
-      "hg.sr.ht".oauth-client-secret = mkDefault null;
-      # Path to mercurial repositories on disk
-      "hg.sr.ht".repos = mkDefault "/var/lib/hg";
-      # Path to the srht mercurial extension
-      # (defaults to where the hgsrht code is)
-      # "hg.sr.ht".srhtext = mkDefault null;
-      # .hg/store size (in MB) past which the nightly job generates clone bundles.
-      # "hg.sr.ht".clone_bundle_threshold = mkDefault 50;
-      # Path to hg-ssh (if not in $PATH)
-      # "hg.sr.ht".hg_ssh = mkDefault /path/to/hg-ssh;
-
-      # The authorized keys hook uses this to dispatch to various handlers
-      # The format is a program to exec into as the key, and the user to match as the
-      # value. When someone tries to log in as this user, this program is executed
-      # and is expected to omit an AuthorizedKeys file.
-      #
-      # Uncomment the relevant lines to enable the various sr.ht dispatchers.
-      "hg.sr.ht::dispatch"."/run/current-system/sw/bin/hgsrht-keys" = mkDefault "${user}:${user}";
-    };
-
-    # TODO: requires testing and addition of hg-specific requirements
-    services.nginx.virtualHosts."hg.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.hgsrht}/${pkgs.sourcehut.python.sitePackages}/hgsrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/hub.nix b/nixos/modules/services/misc/sourcehut/hub.nix
deleted file mode 100644
index 7d137a765056..000000000000
--- a/nixos/modules/services/misc/sourcehut/hub.nix
+++ /dev/null
@@ -1,120 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.hub;
-  iniKey = "hub.sr.ht";
-
-  drv = pkgs.sourcehut.hubsrht;
-in
-{
-  options.services.sourcehut.hub = {
-    user = mkOption {
-      type = types.str;
-      default = "hubsrht";
-      description = ''
-        User for hub.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5014;
-      description = ''
-        Port on which the "hub" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "hub.sr.ht";
-      description = ''
-        PostgreSQL database name for hub.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/hubsrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/hubsrht"'';
-      description = ''
-        State path for hub.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "hub" cfg.services) {
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          description = "hub.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services.hubsrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-        after = [ "postgresql.service" "network.target" ];
-        requires = [ "postgresql.service" ];
-        wantedBy = [ "multi-user.target" ];
-
-        description = "hub.sr.ht website service";
-
-        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL hub.sr.ht is being served at (protocol://domain)
-      "hub.sr.ht".origin = mkDefault "http://hub.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "hub.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "hub.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "hub.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "hub.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # hub.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "hub.sr.ht".oauth-client-id = mkDefault null;
-      "hub.sr.ht".oauth-client-secret = mkDefault null;
-    };
-
-    services.nginx.virtualHosts."${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.hubsrht}/${pkgs.sourcehut.python.sitePackages}/hubsrht";
-    };
-    services.nginx.virtualHosts."hub.${cfg.originBase}" = {
-      globalRedirect = "${cfg.originBase}";
-      forceSSL = true;
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/lists.nix b/nixos/modules/services/misc/sourcehut/lists.nix
deleted file mode 100644
index 76f155caa05b..000000000000
--- a/nixos/modules/services/misc/sourcehut/lists.nix
+++ /dev/null
@@ -1,187 +0,0 @@
-# Email setup is fairly involved, useful references:
-# https://drewdevault.com/2018/08/05/Local-mail-server.html
-
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.lists;
-  iniKey = "lists.sr.ht";
-
-  rcfg = config.services.redis;
-  drv = pkgs.sourcehut.listssrht;
-in
-{
-  options.services.sourcehut.lists = {
-    user = mkOption {
-      type = types.str;
-      default = "listssrht";
-      description = ''
-        User for lists.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5006;
-      description = ''
-        Port on which the "lists" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "lists.sr.ht";
-      description = ''
-        PostgreSQL database name for lists.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/listssrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/listssrht"'';
-      description = ''
-        State path for lists.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "lists" cfg.services) {
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          extraGroups = [ "postfix" ];
-          description = "lists.sr.ht user";
-        };
-      };
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services = {
-        listssrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "lists.sr.ht website service";
-
-          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-        };
-
-        listssrht-process = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "lists.sr.ht process service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.process worker --loglevel=info";
-          };
-        };
-
-        listssrht-lmtp = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "lists.sr.ht process service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-            ExecStart = "${cfg.python}/bin/listssrht-lmtp";
-          };
-        };
-
-
-        listssrht-webhooks = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "lists.sr.ht webhooks service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
-          };
-        };
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL lists.sr.ht is being served at (protocol://domain)
-      "lists.sr.ht".origin = mkDefault "http://lists.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "lists.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "lists.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "lists.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "lists.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # lists.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "lists.sr.ht".oauth-client-id = mkDefault null;
-      "lists.sr.ht".oauth-client-secret = mkDefault null;
-      # Outgoing email for notifications generated by users
-      "lists.sr.ht".notify-from = mkDefault "CHANGEME@example.org";
-      # The redis connection used for the webhooks worker
-      "lists.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/2";
-      # The redis connection used for the celery worker
-      "lists.sr.ht".redis = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/4";
-      # Network-key
-      "lists.sr.ht".network-key = mkDefault null;
-      # Allow creation
-      "lists.sr.ht".allow-new-lists = mkDefault "no";
-      # Posting Domain
-      "lists.sr.ht".posting-domain = mkDefault "lists.${cfg.originBase}";
-
-      # Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
-      # Alternatively, specify IP:PORT and an SMTP server will be run instead.
-      "lists.sr.ht::worker".sock = mkDefault "/tmp/lists.sr.ht-lmtp.sock";
-      # The lmtp daemon will make the unix socket group-read/write for users in this
-      # group.
-      "lists.sr.ht::worker".sock-group = mkDefault "postfix";
-      "lists.sr.ht::worker".reject-url = mkDefault "https://man.sr.ht/lists.sr.ht/etiquette.md";
-      "lists.sr.ht::worker".reject-mimetypes = mkDefault "text/html";
-
-    };
-
-    services.nginx.virtualHosts."lists.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.listssrht}/${pkgs.sourcehut.python.sitePackages}/listssrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/man.nix b/nixos/modules/services/misc/sourcehut/man.nix
deleted file mode 100644
index 8ca271c32ee3..000000000000
--- a/nixos/modules/services/misc/sourcehut/man.nix
+++ /dev/null
@@ -1,124 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.man;
-  iniKey = "man.sr.ht";
-
-  drv = pkgs.sourcehut.mansrht;
-in
-{
-  options.services.sourcehut.man = {
-    user = mkOption {
-      type = types.str;
-      default = "mansrht";
-      description = ''
-        User for man.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5004;
-      description = ''
-        Port on which the "man" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "man.sr.ht";
-      description = ''
-        PostgreSQL database name for man.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/mansrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/mansrht"'';
-      description = ''
-        State path for man.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "man" cfg.services) {
-    assertions =
-      [
-        {
-          assertion = hasAttrByPath [ "git.sr.ht" "oauth-client-id" ] cfgIni;
-          message = "man.sr.ht needs access to git.sr.ht.";
-        }
-      ];
-
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          description = "man.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services.mansrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-        after = [ "postgresql.service" "network.target" ];
-        requires = [ "postgresql.service" ];
-        wantedBy = [ "multi-user.target" ];
-
-        description = "man.sr.ht website service";
-
-        serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL man.sr.ht is being served at (protocol://domain)
-      "man.sr.ht".origin = mkDefault "http://man.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "man.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "man.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "man.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "man.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # man.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "man.sr.ht".oauth-client-id = mkDefault null;
-      "man.sr.ht".oauth-client-secret = mkDefault null;
-    };
-
-    services.nginx.virtualHosts."man.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.mansrht}/${pkgs.sourcehut.python.sitePackages}/mansrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/meta.nix b/nixos/modules/services/misc/sourcehut/meta.nix
deleted file mode 100644
index 33e4f2332b53..000000000000
--- a/nixos/modules/services/misc/sourcehut/meta.nix
+++ /dev/null
@@ -1,213 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.meta;
-  iniKey = "meta.sr.ht";
-
-  rcfg = config.services.redis;
-  drv = pkgs.sourcehut.metasrht;
-in
-{
-  options.services.sourcehut.meta = {
-    user = mkOption {
-      type = types.str;
-      default = "metasrht";
-      description = ''
-        User for meta.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5000;
-      description = ''
-        Port on which the "meta" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "meta.sr.ht";
-      description = ''
-        PostgreSQL database name for meta.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/metasrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/metasrht"'';
-      description = ''
-        State path for meta.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "meta" cfg.services) {
-    assertions =
-      [
-        {
-          assertion = with cfgIni."meta.sr.ht::billing"; enabled == "yes" -> (stripe-public-key != null && stripe-secret-key != null);
-          message = "If meta.sr.ht::billing is enabled, the keys should be defined.";
-        }
-      ];
-
-    users = {
-      users = {
-        ${user} = {
-          isSystemUser = true;
-          group = user;
-          description = "meta.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.cron.systemCronJobs = [ "0 0 * * * ${cfg.python}/bin/metasrht-daily" ];
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services = {
-        metasrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "meta.sr.ht website service";
-
-          preStart = ''
-            # Configure client(s) as "preauthorized"
-            ${concatMapStringsSep "\n\n"
-              (attr: ''
-                if ! test -e "${statePath}/${attr}.oauth" || [ "$(cat ${statePath}/${attr}.oauth)" != "${cfgIni."${attr}".oauth-client-id}" ]; then
-                  # Configure ${attr}'s OAuth client as "preauthorized"
-                  psql ${database} \
-                    -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${cfgIni."${attr}".oauth-client-id}'"
-
-                  printf "%s" "${cfgIni."${attr}".oauth-client-id}" > "${statePath}/${attr}.oauth"
-                fi
-              '')
-              (builtins.attrNames (filterAttrs
-                (k: v: !(hasInfix "::" k) && builtins.hasAttr "oauth-client-id" v && v.oauth-client-id != null)
-                cfg.settings))}
-          '';
-
-          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-        };
-
-        metasrht-api = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "meta.sr.ht api service";
-
-          preStart = ''
-            # Configure client(s) as "preauthorized"
-            ${concatMapStringsSep "\n\n"
-              (attr: ''
-                if ! test -e "${statePath}/${attr}.oauth" || [ "$(cat ${statePath}/${attr}.oauth)" != "${cfgIni."${attr}".oauth-client-id}" ]; then
-                  # Configure ${attr}'s OAuth client as "preauthorized"
-                  psql ${database} \
-                    -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${cfgIni."${attr}".oauth-client-id}'"
-
-                  printf "%s" "${cfgIni."${attr}".oauth-client-id}" > "${statePath}/${attr}.oauth"
-                fi
-              '')
-              (builtins.attrNames (filterAttrs
-                (k: v: !(hasInfix "::" k) && builtins.hasAttr "oauth-client-id" v && v.oauth-client-id != null)
-                cfg.settings))}
-          '';
-
-          serviceConfig.ExecStart = "${pkgs.sourcehut.metasrht}/bin/metasrht-api -b :${toString (port + 100)}";
-        };
-
-        metasrht-webhooks = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "meta.sr.ht webhooks service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
-          };
-
-        };
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL meta.sr.ht is being served at (protocol://domain)
-      "meta.sr.ht".origin = mkDefault "https://meta.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "meta.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "meta.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "meta.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "meta.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # If "yes", the user will be sent the stock sourcehut welcome emails after
-      # signup (requires cron to be configured properly). These are specific to the
-      # sr.ht instance so you probably want to patch these before enabling this.
-      "meta.sr.ht".welcome-emails = mkDefault "no";
-
-      # The redis connection used for the webhooks worker
-      "meta.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/6";
-
-      # If "no", public registration will not be permitted.
-      "meta.sr.ht::settings".registration = mkDefault "no";
-      # Where to redirect new users upon registration
-      "meta.sr.ht::settings".onboarding-redirect = mkDefault "https://meta.${cfg.originBase}";
-      # How many invites each user is issued upon registration (only applicable if
-      # open registration is disabled)
-      "meta.sr.ht::settings".user-invites = mkDefault 5;
-
-      # Origin URL for API, 100 more than web
-      "meta.sr.ht".api-origin = mkDefault "http://localhost:5100";
-
-      # You can add aliases for the client IDs of commonly used OAuth clients here.
-      #
-      # Example:
-      "meta.sr.ht::aliases" = mkDefault { };
-      # "meta.sr.ht::aliases"."git.sr.ht" = 12345;
-
-      # "yes" to enable the billing system
-      "meta.sr.ht::billing".enabled = mkDefault "no";
-      # Get your keys at https://dashboard.stripe.com/account/apikeys
-      "meta.sr.ht::billing".stripe-public-key = mkDefault null;
-      "meta.sr.ht::billing".stripe-secret-key = mkDefault null;
-    };
-
-    services.nginx.virtualHosts."meta.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.metasrht}/${pkgs.sourcehut.python.sitePackages}/metasrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/paste.nix b/nixos/modules/services/misc/sourcehut/paste.nix
deleted file mode 100644
index b481ebaf8917..000000000000
--- a/nixos/modules/services/misc/sourcehut/paste.nix
+++ /dev/null
@@ -1,135 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.paste;
-  iniKey = "paste.sr.ht";
-
-  rcfg = config.services.redis;
-  drv = pkgs.sourcehut.pastesrht;
-in
-{
-  options.services.sourcehut.paste = {
-    user = mkOption {
-      type = types.str;
-      default = "pastesrht";
-      description = ''
-        User for paste.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5011;
-      description = ''
-        Port on which the "paste" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "paste.sr.ht";
-      description = ''
-        PostgreSQL database name for paste.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/pastesrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/pastesrht"'';
-      description = ''
-        State path for pastesrht.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "paste" cfg.services) {
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          description = "paste.sr.ht user";
-        };
-      };
-
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services = {
-        pastesrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "paste.sr.ht website service";
-
-          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-        };
-
-        pastesrht-webhooks = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "paste.sr.ht webhooks service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
-          };
-
-        };
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL paste.sr.ht is being served at (protocol://domain)
-      "paste.sr.ht".origin = mkDefault "http://paste.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "paste.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "paste.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "paste.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "paste.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # paste.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "paste.sr.ht".oauth-client-id = mkDefault null;
-      "paste.sr.ht".oauth-client-secret = mkDefault null;
-      "paste.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/5";
-    };
-
-    services.nginx.virtualHosts."paste.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.pastesrht}/${pkgs.sourcehut.python.sitePackages}/pastesrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/misc/sourcehut/service.nix b/nixos/modules/services/misc/sourcehut/service.nix
index f1706ad0a6a8..4ecc7a726690 100644
--- a/nixos/modules/services/misc/sourcehut/service.nix
+++ b/nixos/modules/services/misc/sourcehut/service.nix
@@ -148,7 +148,7 @@ in
     redis = {
       host = mkOption {
         type = types.str;
-        default = "unix:/run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
+        default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
         example = "redis://shared.wireguard:6379/0";
         description = ''
           The redis host URL. This is used for caching and temporary storage, and must
diff --git a/nixos/modules/services/misc/sourcehut/todo.nix b/nixos/modules/services/misc/sourcehut/todo.nix
deleted file mode 100644
index 262fa48f59d4..000000000000
--- a/nixos/modules/services/misc/sourcehut/todo.nix
+++ /dev/null
@@ -1,163 +0,0 @@
-{ config, lib, options, pkgs, ... }:
-
-with lib;
-let
-  cfg = config.services.sourcehut;
-  opt = options.services.sourcehut;
-  cfgIni = cfg.settings;
-  scfg = cfg.todo;
-  iniKey = "todo.sr.ht";
-
-  rcfg = config.services.redis;
-  drv = pkgs.sourcehut.todosrht;
-in
-{
-  options.services.sourcehut.todo = {
-    user = mkOption {
-      type = types.str;
-      default = "todosrht";
-      description = ''
-        User for todo.sr.ht.
-      '';
-    };
-
-    port = mkOption {
-      type = types.port;
-      default = 5003;
-      description = ''
-        Port on which the "todo" module should listen.
-      '';
-    };
-
-    database = mkOption {
-      type = types.str;
-      default = "todo.sr.ht";
-      description = ''
-        PostgreSQL database name for todo.sr.ht.
-      '';
-    };
-
-    statePath = mkOption {
-      type = types.path;
-      default = "${cfg.statePath}/todosrht";
-      defaultText = literalExpression ''"''${config.${opt.statePath}}/todosrht"'';
-      description = ''
-        State path for todo.sr.ht.
-      '';
-    };
-  };
-
-  config = with scfg; lib.mkIf (cfg.enable && elem "todo" cfg.services) {
-    users = {
-      users = {
-        "${user}" = {
-          isSystemUser = true;
-          group = user;
-          extraGroups = [ "postfix" ];
-          description = "todo.sr.ht user";
-        };
-      };
-      groups = {
-        "${user}" = { };
-      };
-    };
-
-    services.postgresql = {
-      authentication = ''
-        local ${database} ${user} trust
-      '';
-      ensureDatabases = [ database ];
-      ensureUsers = [
-        {
-          name = user;
-          ensurePermissions = { "DATABASE \"${database}\"" = "ALL PRIVILEGES"; };
-        }
-      ];
-    };
-
-    systemd = {
-      tmpfiles.rules = [
-        "d ${statePath} 0750 ${user} ${user} -"
-      ];
-
-      services = {
-        todosrht = import ./service.nix { inherit config pkgs lib; } scfg drv iniKey {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "todo.sr.ht website service";
-
-          serviceConfig.ExecStart = "${cfg.python}/bin/gunicorn ${drv.pname}.app:app -b ${cfg.address}:${toString port}";
-        };
-
-       todosrht-lmtp = {
-         after = [ "postgresql.service" "network.target" ];
-         bindsTo = [ "postgresql.service" ];
-         wantedBy = [ "multi-user.target" ];
-
-         description = "todo.sr.ht process service";
-         serviceConfig = {
-           Type = "simple";
-           User = user;
-           Restart = "always";
-           ExecStart = "${cfg.python}/bin/todosrht-lmtp";
-         };
-       };
-
-        todosrht-webhooks = {
-          after = [ "postgresql.service" "network.target" ];
-          requires = [ "postgresql.service" ];
-          wantedBy = [ "multi-user.target" ];
-
-          description = "todo.sr.ht webhooks service";
-          serviceConfig = {
-            Type = "simple";
-            User = user;
-            Restart = "always";
-            ExecStart = "${cfg.python}/bin/celery -A ${drv.pname}.webhooks worker --loglevel=info";
-          };
-
-        };
-      };
-    };
-
-    services.sourcehut.settings = {
-      # URL todo.sr.ht is being served at (protocol://domain)
-      "todo.sr.ht".origin = mkDefault "http://todo.${cfg.originBase}";
-      # Address and port to bind the debug server to
-      "todo.sr.ht".debug-host = mkDefault "0.0.0.0";
-      "todo.sr.ht".debug-port = mkDefault port;
-      # Configures the SQLAlchemy connection string for the database.
-      "todo.sr.ht".connection-string = mkDefault "postgresql:///${database}?user=${user}&host=/var/run/postgresql";
-      # Set to "yes" to automatically run migrations on package upgrade.
-      "todo.sr.ht".migrate-on-upgrade = mkDefault "yes";
-      # todo.sr.ht's OAuth client ID and secret for meta.sr.ht
-      # Register your client at meta.example.org/oauth
-      "todo.sr.ht".oauth-client-id = mkDefault null;
-      "todo.sr.ht".oauth-client-secret = mkDefault null;
-      # Outgoing email for notifications generated by users
-      "todo.sr.ht".notify-from = mkDefault "CHANGEME@example.org";
-      # The redis connection used for the webhooks worker
-      "todo.sr.ht".webhooks = mkDefault "redis://${rcfg.bind}:${toString rcfg.port}/1";
-      # Network-key
-      "todo.sr.ht".network-key = mkDefault null;
-
-      # Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
-      # Alternatively, specify IP:PORT and an SMTP server will be run instead.
-      "todo.sr.ht::mail".sock = mkDefault "/tmp/todo.sr.ht-lmtp.sock";
-      # The lmtp daemon will make the unix socket group-read/write for users in this
-      # group.
-      "todo.sr.ht::mail".sock-group = mkDefault "postfix";
-
-      "todo.sr.ht::mail".posting-domain = mkDefault "todo.${cfg.originBase}";
-    };
-
-    services.nginx.virtualHosts."todo.${cfg.originBase}" = {
-      forceSSL = true;
-      locations."/".proxyPass = "http://${cfg.address}:${toString port}";
-      locations."/query".proxyPass = "http://${cfg.address}:${toString (port + 100)}";
-      locations."/static".root = "${pkgs.sourcehut.todosrht}/${pkgs.sourcehut.python.sitePackages}/todosrht";
-    };
-  };
-}
diff --git a/nixos/modules/services/system/localtime.nix b/nixos/modules/services/system/localtime.nix
index 6383e454e76b..689453375f5a 100644
--- a/nixos/modules/services/system/localtime.nix
+++ b/nixos/modules/services/system/localtime.nix
@@ -5,6 +5,8 @@ with lib;
 let
   cfg = config.services.localtimed;
 in {
+  imports = [ (lib.mkRenamedOptionModule [ "services" "localtime" ] [ "services" "localtimed" ]) ];
+
   options = {
     services.localtimed = {
       enable = mkOption {
diff --git a/nixos/modules/virtualisation/amazon-ec2-amis.nix b/nixos/modules/virtualisation/amazon-ec2-amis.nix
index 91b5237e3371..0324c5332cff 100644
--- a/nixos/modules/virtualisation/amazon-ec2-amis.nix
+++ b/nixos/modules/virtualisation/amazon-ec2-amis.nix
@@ -440,5 +440,53 @@ let self = {
   "21.11".ap-east-1.aarch64-linux.hvm-ebs = "ami-0aa3b50a4f2822a00";
   "21.11".sa-east-1.aarch64-linux.hvm-ebs = "ami-00f68eff453d3fe69";
 
-  latest = self."21.11";
+  # 22.05.342.a634c8f6c1f
+
+  "22.05".eu-west-1.x86_64-linux.hvm-ebs = "ami-00badba5cfa0a0c0d";
+  "22.05".af-south-1.x86_64-linux.hvm-ebs = "ami-0d3a6166c1ea4d7b4";
+  "22.05".ap-east-1.x86_64-linux.hvm-ebs = "ami-06445325c360470d8";
+  "22.05".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-009c422293bcf3721";
+  "22.05".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0bfc0397525a67ed8";
+  "22.05".ap-northeast-3.x86_64-linux.hvm-ebs = "ami-0a1fb4d4e08a6065e";
+  "22.05".ap-south-1.x86_64-linux.hvm-ebs = "ami-07ad258dcc69239d2";
+  "22.05".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0f59f7f33cba8b1a4";
+  "22.05".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0d1e49fe30aec165d";
+  "22.05".ap-southeast-3.x86_64-linux.hvm-ebs = "ami-0f5cb24a1e3fc62dd";
+  "22.05".ca-central-1.x86_64-linux.hvm-ebs = "ami-0551a595ba7916462";
+  "22.05".eu-central-1.x86_64-linux.hvm-ebs = "ami-0702eee2e75d541d1";
+  "22.05".eu-north-1.x86_64-linux.hvm-ebs = "ami-0fc6838942cb7d9cb";
+  "22.05".eu-south-1.x86_64-linux.hvm-ebs = "ami-0df9463b8965cdb80";
+  "22.05".eu-west-2.x86_64-linux.hvm-ebs = "ami-08f3c1eb533a42ac1";
+  "22.05".eu-west-3.x86_64-linux.hvm-ebs = "ami-04b50c79dc4009c97";
+  "22.05".me-south-1.x86_64-linux.hvm-ebs = "ami-05c52087afab7024d";
+  "22.05".sa-east-1.x86_64-linux.hvm-ebs = "ami-0732aa0f0c28f281b";
+  "22.05".us-east-1.x86_64-linux.hvm-ebs = "ami-0223db08811f6fb2d";
+  "22.05".us-east-2.x86_64-linux.hvm-ebs = "ami-0a743534fa3e51b41";
+  "22.05".us-west-1.x86_64-linux.hvm-ebs = "ami-0d72ab697beab5ea5";
+  "22.05".us-west-2.x86_64-linux.hvm-ebs = "ami-034946f0c47088751";
+
+  "22.05".eu-west-1.aarch64-linux.hvm-ebs = "ami-08114069426233360";
+  "22.05".af-south-1.aarch64-linux.hvm-ebs = "ami-0a9b83913abd61694";
+  "22.05".ap-east-1.aarch64-linux.hvm-ebs = "ami-03966ad4547f532b7";
+  "22.05".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-0eb7e152c8d5aae7d";
+  "22.05".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-08369e00c5528762b";
+  "22.05".ap-northeast-3.aarch64-linux.hvm-ebs = "ami-0fa14b8d48cdd57c3";
+  "22.05".ap-south-1.aarch64-linux.hvm-ebs = "ami-0f2ca3b542ff0913b";
+  "22.05".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-087def0511ef2687d";
+  "22.05".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-0aa90985199011f04";
+  "22.05".ap-southeast-3.aarch64-linux.hvm-ebs = "ami-0c86c52790deefa23";
+  "22.05".ca-central-1.aarch64-linux.hvm-ebs = "ami-06e932cc9c20403e4";
+  "22.05".eu-central-1.aarch64-linux.hvm-ebs = "ami-07680df1026a9b54c";
+  "22.05".eu-north-1.aarch64-linux.hvm-ebs = "ami-0cbe9f2725e4de706";
+  "22.05".eu-south-1.aarch64-linux.hvm-ebs = "ami-01a83c3892925765f";
+  "22.05".eu-west-2.aarch64-linux.hvm-ebs = "ami-049024d086d039b54";
+  "22.05".eu-west-3.aarch64-linux.hvm-ebs = "ami-0c0ebe20ebfc635a1";
+  "22.05".me-south-1.aarch64-linux.hvm-ebs = "ami-0d662fcaac553e945";
+  "22.05".sa-east-1.aarch64-linux.hvm-ebs = "ami-0888c8f703e00fdb8";
+  "22.05".us-east-1.aarch64-linux.hvm-ebs = "ami-03536a13324333073";
+  "22.05".us-east-2.aarch64-linux.hvm-ebs = "ami-067611519fa817aaa";
+  "22.05".us-west-1.aarch64-linux.hvm-ebs = "ami-0f96be48071c13ab2";
+  "22.05".us-west-2.aarch64-linux.hvm-ebs = "ami-084bc5d777585adfb";
+
+  latest = self."22.05";
 }; in self
diff --git a/nixos/tests/sourcehut.nix b/nixos/tests/sourcehut.nix
index 34a60247e00e..d52fbddd20f3 100644
--- a/nixos/tests/sourcehut.nix
+++ b/nixos/tests/sourcehut.nix
@@ -169,6 +169,45 @@ in
         oauth-client-id = "d07cb713d920702e";
       };
       settings.webhooks.private-key = pkgs.writeText "webhook-key" "Ra3IjxgFiwG9jxgp4WALQIZw/BMYt30xWiOsqD0J7EA=";
+      settings.mail = {
+        smtp-from = "root+hut@${domain}";
+        # WARNING: take care to keep pgp-privkey outside the Nix store in production,
+        # or use LoadCredentialEncrypted=
+        pgp-privkey = toString (pkgs.writeText "sourcehut.pgp-privkey" ''
+          -----BEGIN PGP PRIVATE KEY BLOCK-----
+
+          lFgEYqDRORYJKwYBBAHaRw8BAQdAehGoy36FUx2OesYm07be2rtLyvR5Pb/ltstd
+          Gk7hYQoAAP9X4oPmxxrHN8LewBpWITdBomNqlHoiP7mI0nz/BOPJHxEktDZuaXhv
+          cy90ZXN0cy9zb3VyY2VodXQgPHJvb3QraHV0QHNvdXJjZWh1dC5sb2NhbGRvbWFp
+          bj6IlwQTFgoAPxYhBPqjgjnL8RHN4JnADNicgXaYm0jJBQJioNE5AhsDBQkDwmcA
+          BgsJCAcDCgUVCgkICwUWAwIBAAIeBQIXgAAKCRDYnIF2mJtIySVCAP9e2nHsVHSi
+          2B1YGZpVG7Xf36vxljmMkbroQy+0gBPwRwEAq+jaiQqlbGhQ7R/HMFcAxBIVsq8h
+          Aw1rngsUd0o3dAicXQRioNE5EgorBgEEAZdVAQUBAQdAXZV2Sd5ZNBVTBbTGavMv
+          D6ORrUh8z7TI/3CsxCE7+yADAQgHAAD/c1RU9xH+V/uI1fE7HIn/zL0LUPpsuce2
+          cH++g4u3kBgTOYh+BBgWCgAmFiEE+qOCOcvxEc3gmcAM2JyBdpibSMkFAmKg0TkC
+          GwwFCQPCZwAACgkQ2JyBdpibSMlKagD/cTre6p1m8QuJ7kwmCFRSz5tBzIuYMMgN
+          xtT7dmS91csA/35fWsOykSiFRojQ7ccCSUTHL7ApF2EbL968tP/D2hIG
+          =Hjoc
+          -----END PGP PRIVATE KEY BLOCK-----
+        '');
+        pgp-pubkey = pkgs.writeText "sourcehut.pgp-pubkey" ''
+          -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+          mDMEYqDRORYJKwYBBAHaRw8BAQdAehGoy36FUx2OesYm07be2rtLyvR5Pb/ltstd
+          Gk7hYQq0Nm5peG9zL3Rlc3RzL3NvdXJjZWh1dCA8cm9vdCtodXRAc291cmNlaHV0
+          LmxvY2FsZG9tYWluPoiXBBMWCgA/FiEE+qOCOcvxEc3gmcAM2JyBdpibSMkFAmKg
+          0TkCGwMFCQPCZwAGCwkIBwMKBRUKCQgLBRYDAgEAAh4FAheAAAoJENicgXaYm0jJ
+          JUIA/17acexUdKLYHVgZmlUbtd/fq/GWOYyRuuhDL7SAE/BHAQCr6NqJCqVsaFDt
+          H8cwVwDEEhWyryEDDWueCxR3Sjd0CLg4BGKg0TkSCisGAQQBl1UBBQEBB0BdlXZJ
+          3lk0FVMFtMZq8y8Po5GtSHzPtMj/cKzEITv7IAMBCAeIfgQYFgoAJhYhBPqjgjnL
+          8RHN4JnADNicgXaYm0jJBQJioNE5AhsMBQkDwmcAAAoJENicgXaYm0jJSmoA/3E6
+          3uqdZvELie5MJghUUs+bQcyLmDDIDcbU+3ZkvdXLAP9+X1rDspEohUaI0O3HAklE
+          xy+wKRdhGy/evLT/w9oSBg==
+          =pJD7
+          -----END PGP PUBLIC KEY BLOCK-----
+        '';
+        pgp-key-id = "0xFAA38239CBF111CDE099C00CD89C8176989B48C9";
+      };
     };
 
     networking.firewall.allowedTCPPorts = [ 443 ];
@@ -195,6 +234,7 @@ in
     # Testing metasrht
     machine.wait_for_unit("metasrht-api.service")
     machine.wait_for_unit("metasrht.service")
+    machine.wait_for_unit("metasrht-webhooks.service")
     machine.wait_for_open_port(5000)
     machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}")
     machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}")
@@ -206,7 +246,9 @@ in
     #machine.wait_for_unit("buildsrht-worker.service")
 
     # Testing gitsrht
+    machine.wait_for_unit("gitsrht-api.service")
     machine.wait_for_unit("gitsrht.service")
+    machine.wait_for_unit("gitsrht-webhooks.service")
     machine.succeed("curl -sL http://git.${domain} | grep git.${domain}")
   '';
 })
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index aff62e96576a..481f151ed561 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -18,13 +18,13 @@ let
 in
 pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.8";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = pname;
     rev = "refs/tags/release-${version}";
-    sha256 = "sha256-DG5b3mw6AL4HSF3diGXOqIeH/eXGqLOsbcnPbD6kznE=";
+    sha256 = "sha256-KEKOouTNmmZiPyKo8xCQv6Zkreidtz2DaEbHjuwJJvY=";
   };
 
   nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
diff --git a/pkgs/applications/editors/atom/env.nix b/pkgs/applications/editors/atom/env.nix
index e59b03beba85..a5ca5775aae3 100644
--- a/pkgs/applications/editors/atom/env.nix
+++ b/pkgs/applications/editors/atom/env.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, zlib, glib, alsa-lib, dbus, gtk3, atk, pango, freetype, fontconfig
-, libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpg-error, nspr
-, gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
+, gdk-pixbuf, cairo, cups, expat, libgpg-error, nspr
+, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
 , at-spi2-core, libdbusmenu, libdrm, mesa
 }:
 
 let
   packages = [
-    stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype libgnome-keyring3
-    fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr gconf nss
+    stdenv.cc.cc zlib glib dbus gtk3 atk pango freetype
+    fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr nss
     xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
diff --git a/pkgs/applications/editors/kodestudio/default.nix b/pkgs/applications/editors/kodestudio/default.nix
deleted file mode 100644
index 2620a87ce425..000000000000
--- a/pkgs/applications/editors/kodestudio/default.nix
+++ /dev/null
@@ -1,135 +0,0 @@
-{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
-, # Patchelf dependencies:
-  alsa-lib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, libGLU, libGL
-, openssl, xorg, zlib
-}:
-
-let
-
-  version = "17.1";
-
-  sha256 = if stdenv.hostPlatform.system == "x86_64-linux"  then "1kddisnvlk48jip6k59mw3wlkrl7rkck2lxpaghn0gfx02cvms5f"
-      else if stdenv.hostPlatform.system == "i686-cygwin"   then "1izp42afrlh4yd322ax9w85ki388gnkqfqbw8dwnn4k3j7r5487z"
-      else throw "Unsupported system: ${stdenv.hostPlatform.system}";
-
-  urlBase = "https://github.com/Kode/KodeStudio/releases/download/v${version}/KodeStudio-";
-
-  urlStr = if stdenv.hostPlatform.system == "x86_64-linux"  then urlBase + "linux64.tar.gz"
-      else if stdenv.hostPlatform.system == "i686-cygwin"   then urlBase + "win32.zip"
-      else throw "Unsupported system: ${stdenv.hostPlatform.system}";
-
-in
-
-  stdenv.mkDerivation {
-    pname = "kodestudio";
-    inherit version;
-
-    src = fetchurl {
-        url = urlStr;
-        inherit sha256;
-    };
-
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ libXScrnSaver ];
-
-    desktopItem = makeDesktopItem {
-      name = "kodestudio";
-      exec = "kodestudio";
-      icon = "kodestudio";
-      comment = "Kode Studio is an IDE for Kha based on Visual Studio Code";
-      desktopName = "Kode Studio";
-      genericName = "Text Editor";
-      categories = [ "GNOME" "GTK" "Utility" "TextEditor" "Development" ];
-    };
-
-    sourceRoot = ".";
-
-    installPhase = ''
-      mkdir -p $out
-      cp -r ./* $out
-    '';
-
-    postFixup = lib.optionalString (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux") ''
-      # Patch Binaries
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath "$out:${atomEnv.libPath}" \
-          $out/kodestudio
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib:${xorg.libXinerama}/lib:${xorg.libX11}/lib:${alsa-lib}/lib:${libGL}/lib:${libGLU}/lib:${lib.getLib openssl}/lib" \
-          $out/resources/app/extensions/krom/Krom/linux/Krom
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib" \
-          $out/resources/app/extensions/kha/Kha/Kore/Tools/krafix/krafix-linux64
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib" \
-          $out/resources/app/extensions/kha/Kha/Kore/Tools/kraffiti/kraffiti-linux64
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" \
-          $out/resources/app/extensions/kha/Kha/Tools/kravur/kravur-linux64
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib:${zlib}/lib" \
-          $out/resources/app/extensions/kha/Kha/Tools/haxe/haxe-linux64
-      patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath ".:${stdenv.cc.libc}/lib:${libvorbis}/lib:${libogg}/lib:${flac.out}/lib" \
-          $out/resources/app/extensions/kha/Kha/Tools/oggenc/oggenc-linux64
-
-      # Patch Shared Objects
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/libnode.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib" $out/libffmpeg.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libv8_libplatform.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libicuuc.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libv8_libbase.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libv8.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/extensions/krom/Krom/linux/libicui18n.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${boehmgc}/lib" $out/resources/app/extensions/kha/Kha/Backends/Kore/khacpp/project/libs/nekoapi/bin/RPi/libneko.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${boehmgc}/lib" $out/resources/app/extensions/kha/Kha/Backends/Kore/khacpp/project/libs/nekoapi/bin/Linux64/libneko.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${boehmgc}/lib" $out/resources/app/extensions/kha/Kha/Backends/Kore/khacpp/project/libs/nekoapi/bin/Linux/libneko.so
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/pty.js/build/Release/pty.node
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/gc-signals/build/Release/gcsignals.node
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/gc-signals/build/Release/obj.target/gcsignals.node
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/oniguruma/build/Release/onig_scanner.node
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib" $out/resources/app/node_modules/oniguruma/build/Release/obj.target/onig_scanner.node
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib:${xorg.libX11}/lib" $out/resources/app/node_modules/native-keymap/build/Release/keymapping.node
-      patchelf --set-rpath ".:${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib:${xorg.libX11}/lib" $out/resources/app/node_modules/native-keymap/build/Release/obj.target/keymapping.node
-
-      # Rewrite VSCODE_PATH inside bin/kodestudio to $out
-      substituteInPlace $out/bin/kodestudio --replace "/usr/share/kodestudio" $out
-
-      # Patch library calls that expects nix store files to be mode 644:
-      #   A stat is made on srcFile (in the nix store), and its mode used
-      #   for destFile, but it expects the mode to be read write, whereas
-      #   all regular files in the nix store are made read only.
-      #   (33188 is 100644 octal, the required mode)
-      substituteInPlace $out/resources/app/extensions/kha/Kha/Tools/khamake/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js --replace "stat.mode" "33188"
-      substituteInPlace $out/resources/app/extensions/kha/Kha/Kore/Tools/koremake/node_modules/fs-extra/lib/copy-sync/copy-file-sync.js --replace "stat.mode" "33188"
-
-      # Wrap preload libXss
-      wrapProgram $out/bin/kodestudio \
-          --prefix LD_PRELOAD : ${lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
-    '';
-
-    meta = with lib; {
-      description = ''
-        An IDE for Kha based on Visual Studio Code
-      '';
-      longDescription = ''
-        Kode Studio is an IDE for Kha based on Visual Studio Code.
-
-        Kha and Kore are multimedia frameworks for Haxe and C++ respectively
-        (with JavaScript coming soon). Using Kha or Kore you can access all
-        hardware at the lowest possible level in a completely portable way.
-      '';
-      homepage = "http://kode.tech/";
-      downloadPage = "https://github.com/Kode/KodeStudio/releases";
-      license = licenses.mit;
-      maintainers = [ maintainers.patternspandemic ];
-      platforms = [ "x86_64-linux" "i686-cygwin" ];
-    };
-  }
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index ad934c705440..aae268df3f54 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -2364,8 +2364,8 @@ let
         mktplcRef = {
           name = "vspacecode";
           publisher = "VSpaceCode";
-          version = "0.10.1";
-          sha256 = "sha256-H7SCC/ZhDswMQjLX+qpQa6A1N83MobJRPC4pyIbZ1kA=";
+          version = "0.10.9";
+          sha256 = "sha256-16oC2BghY7mB/W0niTDtKGMAC9pt6m0utSOJ0lgbpAU=";
         };
         meta = {
           license = lib.licenses.mit;
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index d3f854966406..674a87dea47e 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "19.0.1";
+  version = "19.0.2";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
-    sha256 = "da9fb38970987b7d5b84fd0d91824f206ba7a3681a7354adc6d6e795c7613828";
+    sha256 = "46b4e7269628100ea3c083dee75308d9746780e46eac15d2c5495fdeece7e323";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 75bfe5cff93d..4a6e28c3cf07 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -5,7 +5,6 @@
 , cairo
 , cmake
 , fetchurl
-, fetchpatch
 , gettext
 , ghostscript
 , glib
@@ -44,20 +43,25 @@
 let
   python3Env = python3.withPackages
     (ps: with ps; [
+      appdirs
+      beautifulsoup4
+      cachecontrol
       numpy
       lxml
       pillow
       scour
       pyserial
-    ]);
+      requests
+      pygobject3
+    ] ++ inkex.propagatedBuildInputs);
 in
 stdenv.mkDerivation rec {
   pname = "inkscape";
-  version = "1.1.2";
+  version = "1.2";
 
   src = fetchurl {
-    url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.xz";
-    sha256 = "sha256-P/5UoG0LJaTNi260JFNu8e0gW+E0Q6Oc1DfIx7ibltE=";
+    url = "https://media.inkscape.org/dl/resources/file/inkscape-${version}.tar.xz";
+    sha256 = "jZsxFCVUlFZk7f7+LWtVkQpQmXZfcXanEQfDTx3N5q0=";
   };
 
   # Inkscape hits the ARGMAX when linking on macOS. It appears to be
@@ -73,20 +77,6 @@ stdenv.mkDerivation rec {
       # e.g., those from the "Effects" menu.
       python3 = "${python3Env}/bin/python";
     })
-
-    # Fix build with poppler 22.03
-    # https://gitlab.com/inkscape/inkscape/-/merge_requests/4187
-    (fetchpatch {
-      url = "https://gitlab.com/inkscape/inkscape/-/commit/a18c57ffff313fd08bc8a44f6b6bf0b01d7e9b75.patch";
-      sha256 = "UZb8ZTtfA5667uo5ZlVQ5vPowiSgd4ItAJ9U1BOsRQg=";
-    })
-
-    # Fix build with poppler 22.04
-    # https://gitlab.com/inkscape/inkscape/-/merge_requests/4266
-    (fetchpatch {
-      url = "https://gitlab.com/inkscape/inkscape/-/commit/d989cdf1059c78bc3bb6414330242073768d640b.patch";
-      sha256 = "2cJZdunbRgPIwhJgz1dQoQRw3ZYZ2Fp6c3hpVBV2PbE=";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/misc/authy/default.nix b/pkgs/applications/misc/authy/default.nix
index 1dfe075fa840..c448b86d0c4d 100644
--- a/pkgs/applications/misc/authy/default.nix
+++ b/pkgs/applications/misc/authy/default.nix
@@ -1,79 +1,21 @@
-{ alsa-lib
-, at-spi2-atk
-, at-spi2-core
-, atk
-, autoPatchelfHook
-, cairo
-, cups
-, dbus
-, electron_9
-, expat
+{ autoPatchelfHook
+, electron
 , fetchurl
-, gdk-pixbuf
-, glib
-, gtk3
 , lib
-, libappindicator-gtk3
-, libdbusmenu-gtk3
-, libuuid
 , makeWrapper
-, nspr
-, nss
-, pango
 , squashfsTools
 , stdenv
-, systemd
-, xorg
 }:
 
-let
-  # Currently only works with electron 9
-  electron = electron_9;
-in
-
 stdenv.mkDerivation rec {
   pname = "authy";
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/authy?channel=stable' | jq '.download_url,.version'
-  version = "2.1.0";
-  rev = "9";
-
-  buildInputs = [
-    alsa-lib
-    at-spi2-atk
-    at-spi2-core
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    gdk-pixbuf
-    glib
-    gtk3
-    libappindicator-gtk3
-    libdbusmenu-gtk3
-    libuuid
-    nspr
-    nss
-    pango
-    stdenv.cc.cc
-    systemd
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-    xorg.libxcb
-  ];
+  version = "2.2.0";
+  rev = "10";
 
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
-    sha256 = "sha256-RxjxOYrbneVctyTJTMvoN/UdREohaZWb1kTdEeI6mUU=";
+    sha256 = "sha256-sB9/fVV/qp+DfjxpvzIUHsLkeEu35i2rEv1/JYMytG8=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
@@ -95,25 +37,16 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/lib/
-
-    cp -r ./* $out/
-    rm -R ./*
+    mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
 
-    # The snap package has the `ffmpeg.so` file which is copied over with other .so files
-    mv $out/*.so $out/lib/
+    # Copy only what is needed
+    cp -r resources* $out/
+    cp -r locales* $out/
+    cp meta/gui/authy.desktop $out/share/applications/
+    cp meta/gui/icon.png $out/share/pixmaps/authy.png
 
     # Replace icon name in Desktop file
-    sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/meta/gui/authy.desktop"
-
-    # Move the desktop file, icon, binary to their appropriate locations
-    mkdir -p $out/bin $out/share/applications $out/share/pixmaps/apps
-    cp $out/meta/gui/authy.desktop $out/share/applications/
-    cp $out/meta/gui/icon.png $out/share/pixmaps/authy.png
-    cp $out/${pname} $out/bin/${pname}
-
-    # Cleanup
-    rm -r $out/{data-dir,gnome-platform,meta,scripts,usr,*.sh,*.so}
+    sed -i 's|''${SNAP}/meta/gui/icon.png|authy|g' "$out/share/applications/authy.desktop"
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/misc/cura/stable.nix b/pkgs/applications/misc/cura/stable.nix
deleted file mode 100644
index d330a8a5ae28..000000000000
--- a/pkgs/applications/misc/cura/stable.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "cura";
-  version = "15.06.03";
-
-  src = fetchFromGitHub {
-    owner = "daid";
-    repo = "Cura";
-    rev = version;
-    sha256 = "sha256-o1cAi4Wi19WOijlRB9iYwNEpSNnmywUj5Bth8rRhqFA=";
-  };
-
-  desktopItem = makeDesktopItem {
-    name = "Cura";
-    exec = "cura";
-    icon = "cura";
-    comment = "Cura";
-    desktopName = "Cura";
-    genericName = "3D printing host software";
-    categories = [ "GNOME" "GTK" "Utility" ];
-  };
-
-  python_deps = with python27Packages; [ pyopengl pyserial numpy wxPython30 power setuptools ];
-
-  pythonPath = python_deps;
-
-  propagatedBuildInputs = python_deps;
-
-  buildInputs = [ curaengine python27Packages.wrapPython ];
-
-  configurePhase = "";
-  buildPhase = "";
-
-  patches = [ ./numpy-cast.patch ];
-
-  installPhase = ''
-    # Install Python code.
-    site_packages=$out/lib/python2.7/site-packages
-    mkdir -p $site_packages
-    cp -r Cura $site_packages/
-
-    # Install resources.
-    resources=$out/share/cura
-    mkdir -p $resources
-    cp -r resources/* $resources/
-    sed -i 's|os.path.join(os.path.dirname(__file__), "../../resources")|"'$resources'"|g' $site_packages/Cura/util/resources.py
-
-    # Install executable.
-    mkdir -p $out/bin
-    cp Cura/cura.py $out/bin/cura
-    chmod +x $out/bin/cura
-    sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' $out/bin/cura
-    wrapPythonPrograms
-
-    # Make it find CuraEngine.
-    echo "def getEngineFilename(): return '${curaengine}/bin/CuraEngine'" >> $site_packages/Cura/util/sliceEngine.py
-
-    # Install desktop item.
-    mkdir -p "$out"/share/applications
-    cp "$desktopItem"/share/applications/* "$out"/share/applications/
-    mkdir -p "$out"/share/icons
-    ln -s "$resources/images/c.png" "$out"/share/icons/cura.png
-  '';
-
-  meta = with lib; {
-    description = "3D printing host software";
-    homepage = "https://github.com/daid/Cura";
-    license = licenses.agpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/misc/feedbackd/default.nix b/pkgs/applications/misc/feedbackd/default.nix
index 0892f2e2d02c..ad1660173159 100644
--- a/pkgs/applications/misc/feedbackd/default.nix
+++ b/pkgs/applications/misc/feedbackd/default.nix
@@ -32,7 +32,9 @@ stdenv.mkDerivation rec {
   # only a Debian package release that is tagged in the upstream repo
   version = "0.0.0+git20220520";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    # remove if cross-compiling gobject-introspection works
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
@@ -61,7 +63,13 @@ stdenv.mkDerivation rec {
     libgudev
   ];
 
-  mesonFlags = [ "-Dgtk_doc=true" "-Dman=true" ];
+  mesonFlags = [
+    "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
+    "-Dman=true"
+    # TODO(mindavi): introspection broken due to https://github.com/NixOS/nixpkgs/issues/72868
+    #                can be removed if cross-compiling gobject-introspection works.
+    "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
+  ];
 
   checkInputs = [
     dbus
diff --git a/pkgs/applications/misc/haxor-news/default.nix b/pkgs/applications/misc/haxor-news/default.nix
index c93d31f66305..9170af04e61c 100644
--- a/pkgs/applications/misc/haxor-news/default.nix
+++ b/pkgs/applications/misc/haxor-news/default.nix
@@ -16,7 +16,13 @@ let
         };
       });
       # Use click 7
-      click = self.callPackage ../../../development/python2-modules/click/default.nix { };
+      click = super.click.overridePythonAttrs (old: rec {
+        version = "7.1.2";
+        src = old.src.override {
+          inherit version;
+          sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
+        };
+      });
     };
   };
 in
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index 8daf50f82e70..8e7acbe8223d 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -12,7 +12,7 @@
 let
   inherit (stdenv.hostPlatform) system;
   pname = "obsidian";
-  version = "0.14.6";
+  version = "0.14.15";
   appname = "Obsidian";
   meta = with lib; {
     description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
@@ -25,7 +25,7 @@ let
   filename = if stdenv.isDarwin then "Obsidian-${version}-universal.dmg" else "obsidian-${version}.tar.gz";
   src = fetchurl {
     url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/${filename}";
-    sha256 = if stdenv.isDarwin then "1zzccwlim3gi6f5czzyddqjzy1xsk6ayx1hljhw6bmnid72km3q2" else "sha256-KieAE13SIYHDoXTqzk1QY+TPjwF9LRzlfm1yFg9hsTc=";
+    sha256 = if stdenv.isDarwin then "10c5255nbgqiigcwq6kmhzcgafq91k25wnxj3jxabzc0hs7pn4m5" else "sha256-bSLt4EnlCtxZeKIahr618qMuK9ogUhxn+NKO2GPkjOQ=";
   };
 
   icon = fetchurl {
diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix
index 02162a4039e3..6bd4ee6b3c18 100644
--- a/pkgs/applications/misc/plover/default.nix
+++ b/pkgs/applications/misc/plover/default.nix
@@ -2,30 +2,7 @@
   qtbase, mkDerivationWith }:
 
 {
-  stable = with python27Packages; buildPythonPackage rec {
-    pname = "plover";
-    version = "3.1.1";
-
-    meta = with lib; {
-      broken = stdenv.isDarwin;
-      description = "OpenSteno Plover stenography software";
-      maintainers = with maintainers; [ twey kovirobi ];
-      license     = licenses.gpl2;
-    };
-
-    src = fetchFromGitHub {
-      owner = "openstenoproject";
-      repo = "plover";
-      rev = "v${version}";
-      sha256 = "sha256-LIhTwHMphg+xTR9NKvjAZ6p0mmqPNcZd9C4cgnenmYQ=";
-    };
-
-    nativeBuildInputs     = [ setuptools-scm ];
-    buildInputs           = [ pytest mock ];
-    propagatedBuildInputs = [
-      six setuptools pyserial appdirs hidapi wxPython xlib wmctrl dbus-python
-    ];
-  };
+  stable = throw "plover.stable was removed because it used Python 2. Use plover.dev instead."; # added 2022-06-05
 
   dev = with python3Packages; mkDerivationWith buildPythonPackage rec {
     pname = "plover";
diff --git a/pkgs/applications/misc/privacyidea/default.nix b/pkgs/applications/misc/privacyidea/default.nix
index d89364280795..5c3afc301556 100644
--- a/pkgs/applications/misc/privacyidea/default.nix
+++ b/pkgs/applications/misc/privacyidea/default.nix
@@ -65,18 +65,30 @@ let
           sha256 = "sha256-WUxngH+xYjizDES99082wCzfItHIzake+KDtjav1Ygo=";
         };
       });
-      # Required by flask-babel
       itsdangerous = super.itsdangerous.overridePythonAttrs (old: rec {
-        version = "2.0.1";
+        version = "1.1.0";
+        src = old.src.override {
+          inherit version;
+          sha256 = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19";
+        };
+      });
+      flask = super.flask.overridePythonAttrs (old: rec {
+        version = "1.1.4";
         src = old.src.override {
           inherit version;
-          sha256 = "sha256-nnJNaPwikCoUNTUfhMP7hiPzA//8xWaky5Ut+MVyz/A=";
+          sha256 = "0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196";
         };
       });
-      flask = self.callPackage ../../../development/python2-modules/flask { };
       sqlsoup = super.sqlsoup.overrideAttrs ({ meta ? {}, ... }: {
         meta = meta // { broken = false; };
       });
+      click = super.click.overridePythonAttrs (old: rec {
+        version = "7.1.2";
+        src = old.src.override {
+          inherit version;
+          sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
+        };
+      });
     };
   };
 in
diff --git a/pkgs/applications/misc/stw/default.nix b/pkgs/applications/misc/stw/default.nix
new file mode 100644
index 000000000000..e7c11fd4b9a5
--- /dev/null
+++ b/pkgs/applications/misc/stw/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+, fontconfig
+, libXft
+, libXrender
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stw";
+  version = "unstable-2022-02-04";
+
+  src = fetchFromGitHub {
+    owner = "sineemore";
+    repo = pname;
+    rev = "c034e04ac912c157f9faa35cb769ba93d92486a0";
+    sha256 = "sha256-YohHF1O0lm6QWJv/wkS4RVJvWaOjcYSZNls6tt4hbqo==";
+  };
+
+  buildInputs = [ libX11 fontconfig libXft libXrender ];
+
+  makeFlags = [ "CC:=$(CC)" "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A simple text widget for X resembling the watch(1) command";
+    license = licenses.mit;
+    maintainers = with maintainers; [ somasis ];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/applications/misc/sway-launcher-desktop/default.nix b/pkgs/applications/misc/sway-launcher-desktop/default.nix
index 7955e5c8ce1d..b67122965234 100644
--- a/pkgs/applications/misc/sway-launcher-desktop/default.nix
+++ b/pkgs/applications/misc/sway-launcher-desktop/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/Biont/sway-launcher-desktop/releases/tag/v${version}";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mrhedgehog ];
+    maintainers = [ maintainers.thehedgeh0g ];
     mainProgram = "${pname}";
   };
 }
diff --git a/pkgs/applications/misc/ydict/default.nix b/pkgs/applications/misc/ydict/default.nix
index 49370870f692..9440c2368100 100644
--- a/pkgs/applications/misc/ydict/default.nix
+++ b/pkgs/applications/misc/ydict/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ydict";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "ydict";
     rev = "v${version}";
-    sha256 = "sha256-zhjsXZsRk0UNijjqjGjZh4TiPxAM5p+ic3JMx2wrPeY=";
+    sha256 = "sha256-qrGOrqI+PXsDNCmgcCPDNn6qUYu2emhYSkYsz4sj27M=";
   };
 
-  vendorSha256 = "sha256-O6czDfKD18rGVMIZv6II09oQu1w0ijQRuZRGt2gj9Cs=";
+  vendorSha256 = "sha256-c5nQVQd4n978kFAAKcx5mX2Jz16ZOhS8iL/oxS1o5xs=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index 8476fc810ba4..da240b337bfc 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 let
   # look for GO_LDFLAGS getting set in the Makefile
-  version = "1.0.5";
-  sha256 = "sha256-xgzIbhgV1AAUa0tooYtzUMqK4Co3PvWQ0YbZuf0JgFE=";
-  vendorSha256 = "sha256-Gp30qCGV+EaJ1lvfleZHRWVL6rdSj0mvpumWsqr9IT0=";
-  pkgsVersion = "v1.0.0-17-g7567bf4";
-  extrasVersion = "v1.0.0-3-g6327c36";
+  version = "1.0.6";
+  sha256 = "sha256-4cUaQWqVndp06eFgqInOMMGITbTdZO5BOqXW2XEpuWU=";
+  vendorSha256 = "sha256-7q35d+jbIDe7fAy6nL5FWdSovBb/f64HYLHGL+zE6bI=";
+  pkgsVersion = "v1.0.0-25-gcf9709e";
+  extrasVersion = "v1.0.0-4-g05b0920";
 in
 buildGoModule rec {
   pname = "talosctl";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index b8f8a3db736c..db7b11b7c382 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -518,6 +518,15 @@
     "vendorSha256": "sha256-HrsjhaMlzs+uel5tBlxJD69Kkjl+4qVisWWREANBx40=",
     "version": "5.0.2"
   },
+  "hetznerdns": {
+    "owner": "timohirt",
+    "provider-source-address": "registry.terraform.io/timohirt/hetznerdns",
+    "repo": "terraform-provider-hetznerdns",
+    "rev": "v2.1.0",
+    "sha256": "sha256-QmD9UlQpyvEz4in1I960J0eC6xNtgk5z8tZUxaApOwE=",
+    "vendorSha256": "sha256-Bat/S4e5vzT0/XOhJ9zCWLa4IE4owLC6ec1yvEh+c0Y=",
+    "version": "2.1.0"
+  },
   "htpasswd": {
     "owner": "loafoe",
     "provider-source-address": "registry.terraform.io/loafoe/htpasswd",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 2df294449f8b..0532dd84868b 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -196,7 +196,10 @@ rec {
     sha256 = "sha256-LkRCumyNHVBSsXRp1ovNMGCeidK/jVCjh9H1HSE1Lm8=";
     vendorSha256 = "sha256-CVgAmPM0nt0Wx+N0qs+IO5KwCWnbfif70EHjBi0bIsQ=";
     patches = [ ./provider-path-0_15.patch ];
-    passthru = { inherit plugins; };
+    passthru = {
+      inherit plugins;
+      tests = { inherit terraform_plugins_test; };
+    };
   };
 
   # Tests that the plugins are being used. Terraform looks at the specific
diff --git a/pkgs/applications/networking/cluster/tgswitch/default.nix b/pkgs/applications/networking/cluster/tgswitch/default.nix
index 5f669a6b9d8a..44c16bd4668d 100644
--- a/pkgs/applications/networking/cluster/tgswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tgswitch/default.nix
@@ -1,5 +1,5 @@
-{ buildGoPackage, lib, fetchFromGitHub }:
-buildGoPackage rec {
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
   pname = "tgswitch";
   version = "0.5.389";
 
@@ -10,7 +10,14 @@ buildGoPackage rec {
     sha256 = "sha256-6hErfI7LEJFgOoJR8IF9jTSBwqbQYeGiwdeJShqxVQ0=";
   };
 
-  goPackagePath = "github.com/warrensbox/tgswitch";
+  vendorSha256 = null;
+
+  ldflags = [ "-s" "-w" ];
+
+  # There are many modifications need to be done to make tests run. For example:
+  # 1. Network access
+  # 2. Operation on `/var/empty` not permitted on macOS
+  doCheck= false;
 
   meta = with lib; {
     description = "A command line tool to switch between different versions of terragrunt";
@@ -19,3 +26,4 @@ buildGoPackage rec {
     maintainers = with maintainers; [ psibi ];
   };
 }
+
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index 94ffd40364c0..980ff7e9b548 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -18,17 +18,17 @@
 
 let
   libdeltachat' = libdeltachat.overrideAttrs (old: rec {
-    version = "1.84.0";
+    version = "1.86.0";
     src = fetchFromGitHub {
       owner = "deltachat";
       repo = "deltachat-core-rust";
       rev = version;
-      hash = "sha256-ZG3siulXVHTbdSd9tmenljFODZ3LWX+BXn6OJfrbEYA=";
+      hash = "sha256-VLS93Ffeit2rVmXxYkXcnf8eDA3DC2/wKYZTh56QCk0=";
     };
     cargoDeps = rustPlatform.fetchCargoTarball {
       inherit src;
       name = "${old.pname}-${version}";
-      hash = "sha256-vQ+A4dEWh5+BgWOdxd7GTPuHk6M6bHgGnZcWNwR/Urs=";
+      hash = "sha256-4rpoDQ3o0WdWg/TmazTI+J0hL/MxwHcNMXWMq7GE7Tk=";
     };
   });
   electronExec = if stdenv.isDarwin then
@@ -46,13 +46,13 @@ let
   });
 in nodePackages.deltachat-desktop.override rec {
   pname = "deltachat-desktop";
-  version = "1.30.0";
+  version = "1.30.1";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    hash = "sha256-vp6vqoQvkAe7QPy4210r/5c1GNaGWgYvG0LyLqtCAxw=";
+    hash = "sha256-gZjZbXiqhFVfThZOsvL/nKkf6MX+E3KB5ldEAIuzBYA=";
   };
 
   nativeBuildInputs = [
@@ -122,6 +122,7 @@ in nodePackages.deltachat-desktop.override rec {
     homepage = "https://github.com/deltachat/deltachat-desktop";
     changelog = "https://github.com/deltachat/deltachat-desktop/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
+    mainProgram = "deltachat";
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index f331bdf190ee..96778eda7aa6 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,6 +1,6 @@
 {
   "name": "deltachat-desktop",
-  "version": "1.30.0",
+  "version": "1.30.1",
   "dependencies": {
     "@blueprintjs/core": "^4.1.2",
     "@deltachat/message_parser_wasm": "^0.4.0",
@@ -9,7 +9,7 @@
     "application-config": "^1.0.1",
     "classnames": "^2.3.1",
     "debounce": "^1.2.0",
-    "deltachat-node": "1.84.0",
+    "deltachat-node": "1.86.0",
     "emoji-js-clean": "^4.0.0",
     "emoji-mart": "^3.0.1",
     "emoji-regex": "^9.2.2",
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 287c23401e06..ab471ef47fb7 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -2,7 +2,7 @@
 let
   inherit (pkgs) callPackage fetchurl;
   versions = if stdenv.isLinux then {
-    stable = "0.0.17";
+    stable = "0.0.18";
     ptb = "0.0.29";
     canary = "0.0.135";
   } else {
@@ -21,7 +21,7 @@ let
       stable = fetchurl {
         url =
           "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-        sha256 = "058k0cmbm4y572jqw83bayb2zzl2fw2aaz0zj1gvg6sxblp76qil";
+        sha256 = "1hl01rf3l6kblx5v7rwnwms30iz8zw6dwlkjsx2f1iipljgkh5q4";
       };
       ptb = fetchurl {
         url =
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index 3f26cfc4f6d3..7c18ebf763c8 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -22,11 +22,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gajim";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchurl {
     url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
-    sha256 = "sha256:151lbz9092z8r2yva5039g867chcid3n804jk7hjawrd9vnw81az";
+    sha256 = "sha256:0n6v96pwgds8655877fjgsphq4rd4gb9mz7cbqp4nkd4m7kvr3xv";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
deleted file mode 100644
index 6a6302e74955..000000000000
--- a/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, stdenv, fetchurl, python27Packages, file }:
-
-let
-  inherit (python27Packages) python;
-  requirements = (import ./requirements.nix {
-    inherit lib fetchurl;
-    pythonPackages = python27Packages;
-  });
-
-in
-  stdenv.mkDerivation rec {
-    pname = "salut-a-toi";
-    version = "0.6.1";
-
-    src = fetchurl {
-      url = "ftp://ftp.goffi.org/sat/sat-${version}.tar.bz2";
-      sha256 = "0kn9403n8fpzl0hsb9kkzicsmzq2fjl627l31yykbqzc4nsr780d";
-    };
-
-    buildInputs = with python27Packages;
-    [
-      python twisted urwid wxPython pygobject2
-      dbus-python wrapPython setuptools file
-      pycrypto pyxdg
-    ] ++  (with requirements; [
-      pyfeed
-      wokkel
-    ]);
-
-    configurePhase = ''
-      sed -i "/use_setuptools/d" setup.py
-      sed -e "s@sys.prefix@'$out'@g" -i setup.py
-      sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${python27Packages.twisted}/bin\"" -i src/sat.sh
-      sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/${python.sitePackages}"" -i src/sat.sh
-
-      echo 'import wokkel.muc' | python
-    '';
-
-    buildPhase = ''
-      ${python.interpreter} setup.py build
-    '';
-
-    installPhase = ''
-      ${python.interpreter} setup.py install --prefix="$out"
-
-      for i in "$out/bin"/*; do
-      head -n 1 "$i" | grep -E '[/ ]python( |$)' && {
-        wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/${python.sitePackages}"
-      } || true
-      done
-    '';
-
-    meta = with lib; {
-      homepage = "http://sat.goffi.org/";
-      description = "A multi-frontend XMPP client";
-      platforms = platforms.linux;
-      maintainers = [ maintainers.raskin ];
-      license = licenses.gpl3Plus;
-    };
-  }
diff --git a/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
deleted file mode 100644
index a8e711c447d5..000000000000
--- a/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ fetchurl
-, lib
-, pythonPackages
-}:
-
-let
-  buildPythonPackage = pythonPackages.buildPythonPackage;
-
-  xe = buildPythonPackage rec {
-    url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
-    name = lib.nameFromURL url ".tar";
-    src = fetchurl {
-      inherit url;
-      sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
-    };
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = {
-      homepage = "http://home.blarg.net/~steveha/xe.html";
-      description = "XML elements";
-    };
-  };
-
-in {
-
-  pyfeed = (buildPythonPackage rec {
-    url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
-
-    name = lib.nameFromURL url ".tar";
-
-    src = fetchurl {
-      inherit url;
-      sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
-    };
-
-    propagatedBuildInputs = [ xe ];
-
-    # error: invalid command 'test'
-    doCheck = false;
-
-    meta = with lib; {
-      homepage = "http://home.blarg.net/~steveha/pyfeed.html";
-      description = "Tools for syndication feeds";
-    };
-
-  });
-
-  wokkel = buildPythonPackage (rec {
-    url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
-    name = lib.nameFromURL url ".tar";
-    src = fetchurl {
-      inherit url;
-      sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
-    };
-
-    propagatedBuildInputs = with pythonPackages; [twisted python-dateutil];
-
-    meta = with lib; {
-      description = "Some (mainly XMPP-related) additions to twisted";
-      homepage = "http://wokkel.ik.nu/";
-      license = licenses.mit;
-    };
-  });
-
-}
diff --git a/pkgs/applications/networking/instant-messengers/torchat/default.nix b/pkgs/applications/networking/instant-messengers/torchat/default.nix
deleted file mode 100644
index 224a70ce9f72..000000000000
--- a/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, python2, unzip, tor }:
-
-stdenv.mkDerivation rec {
-  pname = "torchat";
-  version = "0.9.9.553";
-
-  src = fetchFromGitHub {
-    owner = "prof7bit";
-    repo = "TorChat";
-    rev = version;
-    sha256 = "2LHG9qxZDo5rV6wsputdRo2Y1aHs+irMwt1ucFnXQE0=";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = with python2.pkgs; [ python wxPython wrapPython ];
-  pythonPath = with python2.pkgs; [ wxPython ];
-
-  preConfigure = "cd torchat/src; rm portable.txt";
-
-  installPhase = ''
-    substituteInPlace "Tor/tor.sh" --replace "tor -f" "${tor}/bin/tor -f"
-
-    wrapPythonPrograms
-
-    mkdir -p $out/lib/torchat
-    cp -rf * $out/lib/torchat
-    makeWrapper ${python2}/bin/python $out/bin/torchat \
-        --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \
-        --chdir "$out/lib/torchat" \
-        --add-flags "-O $out/lib/torchat/torchat.py"
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/prof7bit/TorChat";
-    description = "Instant messaging application on top of the Tor network and it's location hidden services";
-    license = licenses.gpl3;
-    maintainers = [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/office/appflowy/default.nix b/pkgs/applications/office/appflowy/default.nix
index abc8e33fd370..821447fdfa26 100644
--- a/pkgs/applications/office/appflowy/default.nix
+++ b/pkgs/applications/office/appflowy/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "appflowy";
-  version = "0.0.3";
+  version = "0.0.4";
 
   src = fetchzip {
     url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-linux-x86.tar.gz";
-    sha256 = "sha256-m9vfgytSKnWLf6hwKjIGcU/7OCmIBiF4hJ/yIRBdSpQ=";
+    sha256 = "sha256-ke3cuRi+ZlBSWawg66cGrV928dOBp0EniNakitmgUso=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/astronomy/gpredict/default.nix b/pkgs/applications/science/astronomy/gpredict/default.nix
index 3f82ff7b52a8..1fd2d4ac2adc 100644
--- a/pkgs/applications/science/astronomy/gpredict/default.nix
+++ b/pkgs/applications/science/astronomy/gpredict/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, intltool
 , gtk3, glib, curl, goocanvas2, gpsd
 , hamlib, wrapGAppsHook
 }:
@@ -14,6 +14,16 @@ in stdenv.mkDerivation {
     sha256 = "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7";
   };
 
+  patches = [
+    # Pull upstream fix for -fno-common toolchains:
+    #   https://github.com/csete/gpredict/issues/195
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/csete/gpredict/commit/c565bb3d48777bfe17114b5d01cd81150521f056.patch";
+      sha256 = "1jhy9hpqlachq32bkij60q3dxkgi1kkr80rm29jjxqpmambf406a";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
   buildInputs = [ curl glib gtk3 goocanvas2 gpsd hamlib ];
 
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index c85bcd21a0cc..f91b336cbf6f 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -49,6 +49,7 @@ let
    "8.15.0".sha256     = "sha256:1ma76wfrpfsl72yh10w1ys2a0vi0mdc2jc79kdc8nrmxkhpw1nxx";
    "8.15.1".sha256     = "sha256:1dsa04jzkx5pw69pmxn0l55q4w88lg6fvz7clbga0bazzsfnsgd6";
    "8.15.2".sha256     = "sha256:0gn8dz69scxnxaq6ycb3x34bjfk9wlp1y2xn8w69kg9fm4b6gkc7";
+   "8.16+rc1".sha256   = "sha256-dU+E0Mz7MVntbQIeG9I59ANBaHaXXSrjCRdoqZ5TO60=";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 329076346881..295e0e4ac819 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.11.3";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-b00bP0usTpYr5EShyckmZ+a1Mw48payU/KllSck47fI=";
+    sha256 = "sha256-gJwSnaOJc7W5zA/7D8tmXi3g+or5cNIlJ2J6gS51D6I=";
   };
 
-  vendorSha256 = "sha256-soNQXtpQ217scP606UA05+r9WIrUAMOCDBsfLKrVD+Q=";
+  vendorSha256 = "sha256-du4IQNQPwM245yr0dSe1C7TU6gaFgvZhxaXi3xsKuWY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix
index 350afd07fe19..b8f9a0f1522a 100644
--- a/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/pkgs/applications/version-management/sourcehut/builds.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromSourcehut
-, buildPythonPackage
 , buildGoModule
+, buildPythonPackage
 , srht
 , redis
 , celery
@@ -9,21 +9,29 @@
 , markdown
 , ansi2html
 , python
+, unzip
 }:
 let
-  version = "0.75.2";
+  version = "0.81.0";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "builds.sr.ht";
     rev = version;
-    sha256 = "sha256-SwyxMzmp9baRQ0vceuEn/OpfIv7z7jwq/l67hdOHXjM=";
+    sha256 = "sha256-oUSzanRFZ2dQTgm/VuNhqUaUAPq7ffxR7OtBKtE61DE=";
   };
 
-  buildWorker = src: buildGoModule {
+  buildsrht-api = buildGoModule ({
     inherit src version;
-    pname = "builds-sr-ht-worker";
+    pname = "buildsrht-api";
+    modRoot = "api";
+    vendorSha256 = "sha256-roTwqtg4Y846PNtLdRN/LV3Jd0LVElqjFy3DJcrwoaI=";
+  } // import ./fix-gqlgen-trimpath.nix { inherit unzip; });
 
+  buildsrht-worker = buildGoModule {
+    inherit src version;
+    sourceRoot = "source/worker";
+    pname = "buildsrht-worker";
     vendorSha256 = "sha256-Pf1M9a43eK4jr6QMi6kRHA8DodXQU0pqq9ua5VC3ER0=";
   };
 in
@@ -31,10 +39,10 @@ buildPythonPackage rec {
   inherit src version;
   pname = "buildsrht";
 
-  patches = [
-    # Revert change breaking Unix socket support for Redis
-    patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
-  ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api worker" ""
+  '';
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -58,7 +66,8 @@ buildPythonPackage rec {
 
     cp -r images $out/lib
     cp contrib/submit_image_build $out/bin/builds.sr.ht
-    cp ${buildWorker "${src}/worker"}/bin/worker $out/bin/builds.sr.ht-worker
+    ln -s ${buildsrht-api}/bin/api $out/bin/buildsrht-api
+    ln -s ${buildsrht-worker}/bin/worker $out/bin/buildsrht-worker
   '';
 
   pythonImportsCheck = [ "buildsrht" ];
diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix
index 805da8c32821..ff56c62c62e9 100644
--- a/pkgs/applications/version-management/sourcehut/core.nix
+++ b/pkgs/applications/version-management/sourcehut/core.nix
@@ -1,5 +1,5 @@
 { lib
-, fetchgit
+, fetchFromSourcehut
 , fetchNodeModules
 , buildPythonPackage
 , pgpy
@@ -29,12 +29,13 @@
 
 buildPythonPackage rec {
   pname = "srht";
-  version = "0.68.14";
+  version = "0.69.0";
 
-  src = fetchgit {
-    url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "core.sr.ht";
     rev = version;
-    sha256 = "sha256-BY3W2rwrg0mhH3CltgUqg6Xv8Ve5VZNY/lI1cfbAjYM=";
+    sha256 = "sha256-s/I0wxtPggjTkkTZnhm77PxdQjiT0Vq2MIk7JMvdupc=";
     fetchSubmodules = true;
   };
 
@@ -47,6 +48,8 @@ buildPythonPackage rec {
   patches = [
     # Disable check for npm
     ./disable-npm-install.patch
+    # Fix Unix socket support in RedisQueueCollector
+    patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix
index 00810f208cc5..aee65dee3bbb 100644
--- a/pkgs/applications/version-management/sourcehut/default.nix
+++ b/pkgs/applications/version-management/sourcehut/default.nix
@@ -2,6 +2,7 @@
 , openssl
 , callPackage
 , recurseIntoAttrs
+, nixosTests
 }:
 
 # To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
@@ -44,4 +45,7 @@ with python.pkgs; recurseIntoAttrs {
   pagessrht = pagessrht;
   pastesrht = toPythonApplication pastesrht;
   todosrht = toPythonApplication todosrht;
+  passthru.tests = {
+    nixos-sourcehut = nixosTests.sourcehut;
+  };
 }
diff --git a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix
new file mode 100644
index 000000000000..629d767a1caf
--- /dev/null
+++ b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix
@@ -0,0 +1,32 @@
+{ unzip
+, gqlgenVersion ? "0.17.2"
+}:
+{
+  overrideModAttrs = (_: {
+    # No need to workaround -trimpath: it's not used in go-modules,
+    # but do download `go generate`'s dependencies nonetheless.
+    preBuild = ''
+      go generate ./loaders
+      go generate ./graph
+    '';
+  });
+
+  # Workaround this error:
+  #   go: git.sr.ht/~emersion/go-emailthreads@v0.0.0-20220412093310-4fd792e343ba: module lookup disabled by GOPROXY=off
+  #   tidy failed: go mod tidy failed: exit status 1
+  #   graph/generate.go:10: running "go": exit status 1
+  proxyVendor = true;
+
+  nativeBuildInputs = [ unzip ];
+
+  # Workaround -trimpath in the package derivation:
+  # https://github.com/99designs/gqlgen/issues/1537
+  # This is to give `go generate ./graph` access to gqlgen's *.gotpl files
+  # If it fails, the gqlgenVersion may have to be updated.
+  preBuild = ''
+    unzip ''${GOPROXY#"file://"}/github.com/99designs/gqlgen/@v/v${gqlgenVersion}.zip
+    go generate ./loaders
+    go generate ./graph
+    rm -rf github.com
+  '';
+}
diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix
index 318bee4cf517..1f76e5cb65f8 100644
--- a/pkgs/applications/version-management/sourcehut/git.nix
+++ b/pkgs/applications/version-management/sourcehut/git.nix
@@ -1,57 +1,67 @@
 { lib
 , fetchFromSourcehut
-, buildPythonPackage
 , buildGoModule
+, buildPythonPackage
 , python
 , srht
 , pygit2
 , scmsrht
+, unzip
 }:
 let
-  version = "0.77.3";
+  version = "0.78.20";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "git.sr.ht";
     rev = version;
-    sha256 = "sha256-eJvXCcmdiUzTK0EqNJkLEZsAfr6toD/378HObnMbOWM=";
+    sha256 = "sha256-rZsTtHobsgRVmMOjPa1fiKrPsNyFu/gOsmO0cTl5MqQ=";
   };
 
-  buildShell = src: buildGoModule {
+  gitApi = buildGoModule ({
     inherit src version;
-    pname = "gitsrht-shell";
-    vendorSha256 = "sha256-aqUFICp0C2reqb2p6JCPAUIRsxzSv0t9BHoNWrTYfqk=";
-  };
+    pname = "gitsrht-api";
+    modRoot = "api";
+    vendorSha256 = "sha256-cCs9FUBusaAou9w4TDOg8GKxhRcsPbSNcQpxvFH/+so=";
+  } // import ./fix-gqlgen-trimpath.nix { inherit unzip; });
 
-  buildDispatcher = src: buildGoModule {
+  gitDispatch = buildGoModule {
     inherit src version;
-    pname = "gitsrht-dispatcher";
+    pname = "gitsrht-dispatch";
+    modRoot = "gitsrht-dispatch";
     vendorSha256 = "sha256-qWXPHo86s6iuRBhRMtmD5jxnAWKdrWHtA/iSUkdw89M=";
   };
 
-  buildKeys = src: buildGoModule {
+  gitKeys = buildGoModule {
     inherit src version;
     pname = "gitsrht-keys";
+    modRoot = "gitsrht-keys";
     vendorSha256 = "sha256-9pojS69HCKVHUceyOpGtv9ewcxFD4WsOVsEzkmWJkF4=";
   };
 
-  buildUpdateHook = src: buildGoModule {
+  gitShell = buildGoModule {
     inherit src version;
-    pname = "gitsrht-update-hook";
-    vendorSha256 = "sha256-sBlG7EFqdDm7CkAHVX50Mf4N3sl1rPNmWExG/bfbfGA=";
+    pname = "gitsrht-shell";
+    modRoot = "gitsrht-shell";
+    vendorSha256 = "sha256-WqfvSPuVsOHA//86u33atMfeA11+DJhjLmWy8Ivq0NI=";
   };
 
-  updateHook = buildUpdateHook "${src}/gitsrht-update-hook";
+  gitUpdateHook = buildGoModule {
+    inherit src version;
+    pname = "gitsrht-update-hook";
+    modRoot = "gitsrht-update-hook";
+    vendorSha256 = "sha256-Bc3yPabS2S+qiroHFKrtkII/CfzBDYQ6xWxKHAME+Tc=";
+  };
 
 in
 buildPythonPackage rec {
   inherit src version;
   pname = "gitsrht";
 
-  patches = [
-    # Revert change breaking Unix socket support for Redis
-    patches/redis-socket/git/0001-Revert-Add-webhook-queue-monitoring.patch
-  ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api gitsrht-dispatch gitsrht-keys gitsrht-shell gitsrht-update-hook" ""
+  '';
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -68,14 +78,12 @@ buildPythonPackage rec {
 
   postInstall = ''
     mkdir -p $out/bin
-    cp ${buildShell "${src}/gitsrht-shell"}/bin/gitsrht-shell $out/bin/gitsrht-shell
-    cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
-    cp ${buildKeys "${src}/gitsrht-keys"}/bin/gitsrht-keys $out/bin/gitsrht-keys
-    cp ${updateHook}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
+    ln -s ${gitApi}/bin/api $out/bin/gitsrht-api
+    ln -s ${gitDispatch}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
+    ln -s ${gitKeys}/bin/gitsrht-keys $out/bin/gitsrht-keys
+    ln -s ${gitShell}/bin/gitsrht-shell $out/bin/gitsrht-shell
+    ln -s ${gitUpdateHook}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
   '';
-  passthru = {
-    inherit updateHook;
-  };
 
   pythonImportsCheck = [ "gitsrht" ];
 
diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix
index f3e778b2f31b..c1470c3fc5c6 100644
--- a/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/pkgs/applications/version-management/sourcehut/hg.nix
@@ -1,21 +1,44 @@
 { lib
-, fetchhg
+, fetchFromSourcehut
+, buildGoModule
 , buildPythonPackage
 , srht
 , hglib
 , scmsrht
 , unidiff
 , python
+, unzip
 }:
 
 buildPythonPackage rec {
   pname = "hgsrht";
-  version = "0.29.4";
+  version = "0.31.3";
 
-  src = fetchhg {
-    url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "hg.sr.ht";
     rev = version;
-    sha256 = "Jn9M/R5tJK/GeJDWGo3LWCK2nwsfI9zh+/yo2M+X6Sk=";
+    sha256 = "4Qe08gqsSTMQVQBchFPEUXuxM8ZAAQGJT1EOcDjkZa0=";
+    vc = "hg";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api hgsrht-keys" ""
+  '';
+
+  hgsrht-api = buildGoModule ({
+    inherit src version;
+    pname = "hgsrht-api";
+    modRoot = "api";
+    vendorSha256 = "sha256-uIP3W7UJkP68HJUF33kz5xfg/KBiaSwMozFYmQJQkys=";
+  } // import ./fix-gqlgen-trimpath.nix { inherit unzip; });
+
+  hgsrht-keys = buildGoModule {
+    inherit src version;
+    pname = "hgsrht-keys";
+    modRoot = "hgsrht-keys";
+    vendorSha256 = "sha256-7ti8xCjSrxsslF7/1X/GY4FDl+69hPL4UwCDfjxmJLU=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -32,6 +55,11 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  postInstall = ''
+    ln -s ${hgsrht-api}/bin/api $out/bin/hgsrht-api
+    ln -s ${hgsrht-keys}/bin/hgsrht-keys $out/bin/hgsrht-keys
+  '';
+
   pythonImportsCheck = [ "hgsrht" ];
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/sourcehut/hub.nix b/pkgs/applications/version-management/sourcehut/hub.nix
index 511ec359fc4b..75d9efe5bd93 100644
--- a/pkgs/applications/version-management/sourcehut/hub.nix
+++ b/pkgs/applications/version-management/sourcehut/hub.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "hubsrht";
-  version = "0.14.4";
+  version = "0.14.14";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "hub.sr.ht";
     rev = version;
-    sha256 = "sha256-7HF+jykWGqzPWA0YtJZQZU7pnID1yexcqLkEf2HpnSs=";
+    sha256 = "sha256-4n6oQ+AAvdJY/5KflxAp62chjyrlSUkmt319DKZk33w=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix
index 3ba6375a9138..d981598a7b19 100644
--- a/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/pkgs/applications/version-management/sourcehut/lists.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromSourcehut
+, buildGoModule
 , buildPythonPackage
 , srht
 , asyncpg
@@ -8,23 +9,31 @@
 , emailthreads
 , redis
 , python
+, unzip
 }:
 
 buildPythonPackage rec {
   pname = "listssrht";
-  version = "0.51.7";
+  version = "0.51.11";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "lists.sr.ht";
     rev = version;
-    sha256 = "sha256-oNY5A98oVoL2JKO0fU/8YVl8u7ywmHb/RHD8A6z9yIM=";
+    sha256 = "sha256-Qb70oOazZfmHpC5r0oMYCFdvfAeKbq3mQA8+M56YYnY=";
   };
 
-  patches = [
-    # Revert change breaking Unix socket support for Redis
-    patches/redis-socket/lists/0001-Revert-Add-webhook-queue-monitoring.patch
-  ];
+  listssrht-api = buildGoModule ({
+    inherit src version;
+    pname = "listssrht-api";
+    modRoot = "api";
+    vendorSha256 = "sha256-xnmMkRSokbhWD+kz0XQ9AinYdm6/50FRBISURPvlzD0=";
+  } // import ./fix-gqlgen-trimpath.nix { inherit unzip;});
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api" ""
+  '';
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -42,6 +51,10 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  postInstall = ''
+    ln -s ${listssrht-api}/bin/api $out/bin/listssrht-api
+  '';
+
   pythonImportsCheck = [ "listssrht" ];
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix
index 8d43f297a4f8..530101d57352 100644
--- a/pkgs/applications/version-management/sourcehut/man.nix
+++ b/pkgs/applications/version-management/sourcehut/man.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "mansrht";
-  version = "0.15.23";
+  version = "0.15.26";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "man.sr.ht";
     rev = version;
-    sha256 = "sha256-xrBptXdwMee+YkPup/BYL/iXBhCzSUQ5htSHIw/1Ncc=";
+    sha256 = "sha256-5xZH6DrTXMdWd26OGICp7lZ/QDjACIa7zNUJHB7jzGo=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix
index ab19cc88d25e..4572fc81b288 100644
--- a/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/pkgs/applications/version-management/sourcehut/meta.nix
@@ -16,32 +16,34 @@
 , weasyprint
 , prometheus-client
 , python
+, unzip
 }:
 let
-  version = "0.57.5";
+  version = "0.58.18";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "meta.sr.ht";
     rev = version;
-    sha256 = "sha256-qsCwZaCiqvY445U053OCWD98jlIUi9NB2jWVP2oW3Vk=";
+    sha256 = "sha256-OjbQHAzG2nZwpJUIvhKaCJWZbhZDC2R6C+SkbKUpk8o=";
   };
 
-  buildApi = src: buildGoModule {
+  metasrht-api = buildGoModule ({
     inherit src version;
     pname = "metasrht-api";
-    vendorSha256 = "sha256-8Ubrr9qRlgW2wsLHrPHwulSWLz+gp4VPcTvOZpg8TYM=";
-  };
+    modRoot = "api";
+    vendorSha256 = "sha256-kiEuEYZFbwJ6SbKFtxH4SiRaZmqYriRHPoHdTX28+d0=";
+  } // import ./fix-gqlgen-trimpath.nix { inherit unzip; });
 
 in
 buildPythonPackage rec {
   pname = "metasrht";
   inherit version src;
 
-  patches = [
-    # Revert change breaking Unix socket support for Redis
-    patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
-  ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api" ""
+  '';
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -68,7 +70,7 @@ buildPythonPackage rec {
 
   postInstall = ''
     mkdir -p $out/bin
-    cp ${buildApi "${src}/api/"}/bin/api $out/bin/metasrht-api
+    ln -s ${metasrht-api}/bin/api $out/bin/metasrht-api
   '';
 
   pythonImportsCheck = [ "metasrht" ];
diff --git a/pkgs/applications/version-management/sourcehut/pages.nix b/pkgs/applications/version-management/sourcehut/pages.nix
index b6a18b5bda77..edb9379c6ded 100644
--- a/pkgs/applications/version-management/sourcehut/pages.nix
+++ b/pkgs/applications/version-management/sourcehut/pages.nix
@@ -1,20 +1,26 @@
 { lib
 , fetchFromSourcehut
 , buildGoModule
+, unzip
 }:
 
-buildGoModule rec {
+buildGoModule (rec {
   pname = "pagessrht";
-  version = "0.6.2";
+  version = "0.7.4";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "pages.sr.ht";
     rev = version;
-    sha256 = "sha256-ob0+t9V2o8lhVC6fXbi1rNm0Mnbs+GoyAmhBqVZ13PA=";
+    sha256 = "sha256-WM9T2LS8yIqaR0PQQRgMk/tiMYcw8DZVPMqMWkj/5RY=";
   };
 
-  vendorSha256 = "sha256-b0sHSH0jkKoIVq045N96wszuLJDegkkj0v50nuDFleU=";
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: server" ""
+  '';
+
+  vendorSha256 = "sha256-VOqY/nStqGyfWOXnJSZX8UYyp2kzcibQM2NRNysHYEc=";
 
   postInstall = ''
     mkdir -p $out/share/sql/
@@ -27,4 +33,6 @@ buildGoModule rec {
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
-}
+  # There is no ./loaders but this does not cause troubles
+  # to go generate
+} // import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion= "0.17.9"; })
diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix
index c411f8e8c954..e31473bd3436 100644
--- a/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/pkgs/applications/version-management/sourcehut/paste.nix
@@ -8,15 +8,20 @@
 
 buildPythonPackage rec {
   pname = "pastesrht";
-  version = "0.13.6";
+  version = "0.13.8";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "paste.sr.ht";
     rev = version;
-    sha256 = "sha256-Khcqk86iD9nxiKXN3+8mSLNoDau2qXNFOrLdkVu+rH8=";
+    sha256 = "sha256-Zji9FyYUtsklYz4qyLbtduusteC7WujLCMmvZKcqYis=";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api" ""
+  '';
+
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
deleted file mode 100644
index ae8e95ddc0c2..000000000000
--- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 069b03f85847ed4a9223183b62ee53f420838911 Mon Sep 17 00:00:00 2001
-From: Julien Moutinho <julm+srht@sourcephile.fr>
-Date: Thu, 16 Dec 2021 04:54:24 +0100
-Subject: [PATCH builds.sr.ht] Revert "Add build submission and queue
- monitoring"
-
-This reverts commit 690f1aa16c77e418dc40109cd5e8fdf4a7ed947a.
-
-This has broken Unix socket support for Redis
-See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
----
- buildsrht/app.py    | 3 ---
- buildsrht/runner.py | 9 +--------
- 2 files changed, 1 insertion(+), 11 deletions(-)
-
-diff --git a/buildsrht/app.py b/buildsrht/app.py
-index e5321a2..7c9977c 100644
---- a/buildsrht/app.py
-+++ b/buildsrht/app.py
-@@ -36,9 +36,6 @@ class BuildApp(SrhtFlask):
-         self.register_blueprint(secrets)
-         self.register_blueprint(gql_blueprint)
- 
--        from buildsrht.runner import builds_queue_metrics_collector
--        self.metrics_registry.register(builds_queue_metrics_collector)
--
-         @self.context_processor
-         def inject():
-             return {
-diff --git a/buildsrht/runner.py b/buildsrht/runner.py
-index 7773452..0389c8e 100644
---- a/buildsrht/runner.py
-+++ b/buildsrht/runner.py
-@@ -5,13 +5,10 @@ from srht.config import cfg
- from srht.database import db
- from srht.email import send_email
- from srht.oauth import UserType
--from srht.metrics import RedisQueueCollector
--from prometheus_client import Counter
- 
- allow_free = cfg("builds.sr.ht", "allow-free", default="no") == "yes"
- 
--builds_broker = cfg("builds.sr.ht", "redis")
--runner = Celery('builds', broker=builds_broker, config_source={
-+runner = Celery('builds', broker=cfg("builds.sr.ht", "redis"), config_source={
-     "CELERY_TASK_SERIALIZER": "json",
-     "CELERY_ACCEPT_CONTENT": ["json"],
-     "CELERY_RESULT_SERIALIZER": "json",
-@@ -19,9 +16,6 @@ runner = Celery('builds', broker=builds_broker, config_source={
-     "CELERY_TASK_PROTOCOL": 1
- })
- 
--builds_queue_metrics_collector = RedisQueueCollector(builds_broker, "buildsrht_builds", "Number of builds currently in queue")
--builds_submitted = Counter("buildsrht_builds_submited", "Number of builds submitted")
--
- def queue_build(job, manifest):
-     from buildsrht.types import JobStatus
-     job.status = JobStatus.queued
-@@ -34,7 +28,6 @@ def queue_build(job, manifest):
-                 cfg("sr.ht", "owner-email"),
-                 "Cryptocurrency mining attempt on builds.sr.ht")
-     else:
--        builds_submitted.inc()
-         run_build.delay(job.id, manifest.to_dict())
- 
- def requires_payment(user):
--- 
-2.34.0
-
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch
new file mode 100644
index 000000000000..889331f3e07f
--- /dev/null
+++ b/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch
@@ -0,0 +1,42 @@
+From 76dd636151735671be74ba9d55f773e190e22827 Mon Sep 17 00:00:00 2001
+From: Julien Moutinho <julm+srht@sourcephile.fr>
+Date: Fri, 13 May 2022 22:40:46 +0200
+Subject: [PATCH core.sr.ht] Fix Unix socket support in RedisQueueCollector
+
+The broker URL is not necessarily in the format expected by Redis.from_url
+
+Especially, Redis.from_url supports this format for Unix sockets:
+    unix:///run/redis-sourcehut-metasrht/redis.sock?db=0
+See https://redis-py.readthedocs.io/en/stable/#redis.ConnectionPool.from_url
+
+Whereas Celery+Kombu support Redis but also other transports
+and thus expect another scheme:
+    redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1
+See https://docs.celeryproject.org/en/stable/userguide/configuration.html#redis-backend-settings
+and https://github.com/celery/celery/blob/e5d99801e4b56a02af4a2e183879c767228d2817/celery/backends/redis.py#L299-L352
+and https://github.com/celery/kombu/blob/master/kombu/utils/url.py
+---
+ srht/metrics.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/srht/metrics.py b/srht/metrics.py
+index 68caf8e..2df5777 100644
+--- a/srht/metrics.py
++++ b/srht/metrics.py
+@@ -1,11 +1,12 @@
+ import time
++from celery import Celery
+ from prometheus_client.metrics_core import GaugeMetricFamily
+ from redis import Redis, ResponseError
+ 
+ 
+ class RedisQueueCollector:
+     def __init__(self, broker, name, documentation, queue_name="celery"):
+-        self.redis = Redis.from_url(broker)
++        self.redis = Celery("collector", broker=broker).connection_for_read().channel().client
+         self.queue_name = queue_name
+         self.name = name
+         self.documentation = documentation
+-- 
+2.35.1
+
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/git/0001-Revert-Add-webhook-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/git/0001-Revert-Add-webhook-queue-monitoring.patch
deleted file mode 100644
index 4c526dd23e11..000000000000
--- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/git/0001-Revert-Add-webhook-queue-monitoring.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 5ccb5386304c26f25b0a9eb10ce9edb6da32f91a Mon Sep 17 00:00:00 2001
-From: Julien Moutinho <julm+srht@sourcephile.fr>
-Date: Sat, 12 Feb 2022 00:11:59 +0100
-Subject: [PATCH git.sr.ht] Revert "Add webhook queue monitoring"
-
-This reverts commit 7ea630b776947ab82438d0ffa263b0f9d33ebff3.
-
-Which has broken Unix socket support for Redis.
-See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
----
- gitsrht/app.py      | 3 ---
- gitsrht/webhooks.py | 5 +----
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/gitsrht/app.py b/gitsrht/app.py
-index e9ccb56..4928851 100644
---- a/gitsrht/app.py
-+++ b/gitsrht/app.py
-@@ -48,9 +48,6 @@ class GitApp(ScmSrhtFlask):
-         self.add_template_filter(url_quote)
-         self.add_template_filter(commit_links)
- 
--        from gitsrht.webhooks import webhook_metrics_collector
--        self.metrics_registry.register(webhook_metrics_collector)
--
-         @self.context_processor
-         def inject():
-             notice = session.get("notice")
-diff --git a/gitsrht/webhooks.py b/gitsrht/webhooks.py
-index 8a203fe..6240d50 100644
---- a/gitsrht/webhooks.py
-+++ b/gitsrht/webhooks.py
-@@ -7,13 +7,10 @@ if not hasattr(db, "session"):
-     db.init()
- from srht.webhook import Event
- from srht.webhook.celery import CeleryWebhook, make_worker
--from srht.metrics import RedisQueueCollector
- from scmsrht.webhooks import UserWebhook
- import sqlalchemy as sa
- 
--webhook_broker = cfg("git.sr.ht", "webhooks")
--worker = make_worker(broker=webhook_broker)
--webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
-+worker = make_worker(broker=cfg("git.sr.ht", "webhooks"))
- 
- class RepoWebhook(CeleryWebhook):
-     events = [
--- 
-2.34.1
-
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/lists/0001-Revert-Add-webhook-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/lists/0001-Revert-Add-webhook-queue-monitoring.patch
deleted file mode 100644
index 872d285b9bb0..000000000000
--- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/lists/0001-Revert-Add-webhook-queue-monitoring.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 730e090f31b150d42be4b4722751f8e4610835b0 Mon Sep 17 00:00:00 2001
-From: Julien Moutinho <julm+srht@sourcephile.fr>
-Date: Sat, 12 Feb 2022 00:38:12 +0100
-Subject: [PATCH lists.sr.ht] Revert "Add webhook queue monitoring"
-
-This reverts commit e74e344808e8d523a9786cefcbf64c9a247d7a0e.
-
-Which has broken Unix socket support for Redis.
-See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
----
- listssrht/app.py      | 3 ---
- listssrht/webhooks.py | 5 +----
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/listssrht/app.py b/listssrht/app.py
-index aec59f3..83a355d 100644
---- a/listssrht/app.py
-+++ b/listssrht/app.py
-@@ -29,9 +29,6 @@ class ListsApp(SrhtFlask):
-         self.register_blueprint(user)
-         self.register_blueprint(gql_blueprint)
- 
--        from listssrht.webhooks import webhook_metrics_collector
--        self.metrics_registry.register(webhook_metrics_collector)
--
-         @self.context_processor
-         def inject():
-             from listssrht.types import ListAccess
-diff --git a/listssrht/webhooks.py b/listssrht/webhooks.py
-index ae5b1cb..86421ba 100644
---- a/listssrht/webhooks.py
-+++ b/listssrht/webhooks.py
-@@ -8,11 +8,8 @@ if not hasattr(db, "session"):
-     db.init()
- from srht.webhook import Event
- from srht.webhook.celery import CeleryWebhook, make_worker
--from srht.metrics import RedisQueueCollector
- 
--webhook_broker = cfg("lists.sr.ht", "webhooks")
--worker = make_worker(broker=webhook_broker)
--webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
-+worker = make_worker(broker=cfg("lists.sr.ht", "webhooks"))
- 
- class ListWebhook(CeleryWebhook):
-     events = [
--- 
-2.34.1
-
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
deleted file mode 100644
index 9ec37670b060..000000000000
--- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d88bee195797c6c294320617ff14798da94cd0f3 Mon Sep 17 00:00:00 2001
-From: Julien Moutinho <julm+srht@sourcephile.fr>
-Date: Thu, 16 Dec 2021 04:52:08 +0100
-Subject: [PATCH meta.sr.ht] Revert "Add webhook queue monitoring"
-
-This reverts commit 9931df3c23094af5179df9ef019ca732b8125dac.
-
-This has broken Unix socket support for Redis.
-See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
----
- metasrht/app.py      | 3 ---
- metasrht/webhooks.py | 5 +----
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/metasrht/app.py b/metasrht/app.py
-index b190875..89c59bc 100644
---- a/metasrht/app.py
-+++ b/metasrht/app.py
-@@ -49,9 +49,6 @@ class MetaApp(SrhtFlask):
-             from metasrht.blueprints.billing import billing
-             self.register_blueprint(billing)
- 
--        from metasrht.webhooks import webhook_metrics_collector
--        self.metrics_registry.register(webhook_metrics_collector)
--
-         @self.context_processor
-         def inject():
-             return {
-diff --git a/metasrht/webhooks.py b/metasrht/webhooks.py
-index 3e1149e..3f0ba01 100644
---- a/metasrht/webhooks.py
-+++ b/metasrht/webhooks.py
-@@ -7,11 +7,8 @@ if not hasattr(db, "session"):
-     db.init()
- from srht.webhook import Event
- from srht.webhook.celery import CeleryWebhook, make_worker
--from srht.metrics import RedisQueueCollector
- 
--webhook_broker = cfg("meta.sr.ht", "webhooks", "redis://")
--worker = make_worker(broker=webhook_broker)
--webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
-+worker = make_worker(broker=cfg("meta.sr.ht", "webhooks", "redis://"))
- 
- class UserWebhook(CeleryWebhook):
-     events = [
--- 
-2.34.0
-
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/todo/0001-Revert-Add-webhook-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/todo/0001-Revert-Add-webhook-queue-monitoring.patch
deleted file mode 100644
index 861608c11843..000000000000
--- a/pkgs/applications/version-management/sourcehut/patches/redis-socket/todo/0001-Revert-Add-webhook-queue-monitoring.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 42a27ea60d8454552d54e1f51f1b976d1067fc32 Mon Sep 17 00:00:00 2001
-From: Julien Moutinho <julm+srht@sourcephile.fr>
-Date: Sat, 12 Feb 2022 00:30:29 +0100
-Subject: [PATCH todo.sr.ht] Revert "Add webhook queue monitoring"
-
-This reverts commit 320a5e8f7cd16ca43928c36f0320593f84d986fa.
-
-Which has broken Unix socket support for Redis.
-See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
----
- todosrht/flask.py    | 3 ---
- todosrht/webhooks.py | 6 +-----
- 2 files changed, 1 insertion(+), 8 deletions(-)
-
-diff --git a/todosrht/flask.py b/todosrht/flask.py
-index 5e8ac66..9d0fd27 100644
---- a/todosrht/flask.py
-+++ b/todosrht/flask.py
-@@ -43,9 +43,6 @@ class TodoApp(SrhtFlask):
-         self.add_template_filter(urls.tracker_url)
-         self.add_template_filter(urls.user_url)
- 
--        from todosrht.webhooks import webhook_metrics_collector
--        self.metrics_registry.register(webhook_metrics_collector)
--
-         @self.context_processor
-         def inject():
-             return {
-diff --git a/todosrht/webhooks.py b/todosrht/webhooks.py
-index eb8e08a..950047f 100644
---- a/todosrht/webhooks.py
-+++ b/todosrht/webhooks.py
-@@ -7,13 +7,9 @@ if not hasattr(db, "session"):
-     db.init()
- from srht.webhook import Event
- from srht.webhook.celery import CeleryWebhook, make_worker
--from srht.metrics import RedisQueueCollector
- import sqlalchemy as sa
- 
--
--webhooks_broker = cfg("todo.sr.ht", "webhooks")
--worker = make_worker(broker=webhooks_broker)
--webhook_metrics_collector = RedisQueueCollector(webhooks_broker, "srht_webhooks", "Webhook queue length")
-+worker = make_worker(broker=cfg("todo.sr.ht", "webhooks"))
- 
- import todosrht.tracker_import
- 
--- 
-2.34.1
-
diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix
index 10da3018843a..49eea05a7a7a 100644
--- a/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/pkgs/applications/version-management/sourcehut/scm.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "scmsrht";
-  version = "0.22.19"; # Untagged version
+  version = "0.22.22";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "scm.sr.ht";
     rev = version;
-    sha256 = "sha256-/QryPjWJ2S0Ov9DTdrwbM81HYucHiYcLh0oKacflywI=";
+    sha256 = "sha256-iSzzyI8HZOpOb4dyt520MV/wds14fNag2+UOF09KS7w=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix
index 1446e68fa69d..0278fb6bd173 100644
--- a/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/pkgs/applications/version-management/sourcehut/todo.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromSourcehut
+, buildGoModule
 , buildPythonPackage
 , srht
 , redis
@@ -8,23 +9,31 @@
 , pytest
 , factory_boy
 , python
+, unzip
 }:
 
 buildPythonPackage rec {
   pname = "todosrht";
-  version = "0.67.2";
+  version = "0.72.2";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "todo.sr.ht";
     rev = version;
-    sha256 = "sha256-/QHsMlhzyah85ubZyx8j4GDUoITuWcLDJKosbZGeOZU=";
+    sha256 = "sha256-FLjVO8Y/9s2gFfMXwcY7Rj3WNzPEBYs1AEjiVZFWsT8=";
   };
 
-  patches = [
-    # Revert change breaking Unix socket support for Redis
-    patches/redis-socket/todo/0001-Revert-Add-webhook-queue-monitoring.patch
-  ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "all: api" ""
+  '';
+
+  todosrht-api = buildGoModule ({
+    inherit src version;
+    pname = "todosrht-api";
+    modRoot = "api";
+    vendorSha256 = "sha256-LB1H4jwnvoEyaaYJ09NI/M6IkgZwRet/fkso6b9EPV0=";
+  } // import ./fix-gqlgen-trimpath.nix {inherit unzip;});
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -40,6 +49,10 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  postInstall = ''
+    ln -s ${todosrht-api}/bin/api $out/bin/todosrht-api
+  '';
+
   # pytest tests fail
   checkInputs = [
     pytest
diff --git a/pkgs/applications/version-management/sourcehut/update.sh b/pkgs/applications/version-management/sourcehut/update.sh
index 97509397aef5..e13ce09da4c7 100755
--- a/pkgs/applications/version-management/sourcehut/update.sh
+++ b/pkgs/applications/version-management/sourcehut/update.sh
@@ -16,7 +16,7 @@ version() {
 }
 
 src_url() {
-  nix-instantiate --eval --strict --expr " with import $root {}; let src = sourcehut.python.pkgs.$1.drvAttrs.src; in src.url or src.meta.homepage" | tr -d '"'
+  nix-instantiate --eval --strict --expr " with import $root {}; let src = sourcehut.python.pkgs.$1.drvAttrs.src; in src.meta.homepage" | tr -d '"'
 }
 
 get_latest_version() {
diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix
index 5fc62912c24a..dd2a7dadc2f7 100644
--- a/pkgs/applications/video/qarte/default.nix
+++ b/pkgs/applications/video/qarte/default.nix
@@ -1,15 +1,15 @@
 { mkDerivation, lib, fetchbzr, python3, rtmpdump }:
 
 let
-  pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
+  pythonEnv = python3.withPackages (ps: with ps; [ m3u8 pyqt5_with_qtmultimedia ]);
 in mkDerivation {
   pname = "qarte";
-  version = "4.15.1";
+  version = "4.17.1";
 
   src = fetchbzr {
     url = "http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4";
-    rev = "67";
-    sha256 = "sha256:0ajvrvpyqyyxnq9nv69p3sr6c1kplphvrpph75k76yl0av94j2s3";
+    rev = "74";
+    sha256 = "sha256:18ky9qwfvbifd0xrbmnfm3cm2vyy5jgf9rrca2hby46sjf2745h4";
   };
 
   buildInputs = [ pythonEnv ];
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 29be2112896b..8c4fbce8e1e9 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "containerd";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "sha256-WEHhx9xSxzBoViujGc4yNt9K2gSMfU6GFmsYk3WDfu8=";
+    sha256 = "sha256-cmarbad6VzcGTCHT/NtApkYsK/oo6WZQ//q8Fvh+ez8=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/window-managers/fbpanel/default.nix b/pkgs/applications/window-managers/fbpanel/default.nix
index 1a87f29f67cd..33a313eb8eec 100644
--- a/pkgs/applications/window-managers/fbpanel/default.nix
+++ b/pkgs/applications/window-managers/fbpanel/default.nix
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
       --replace "CFLAGSX =" "CFLAGSX = -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
   '';
 
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: plugin.o:(.bss+0x0): multiple definition of `stam'; panel.o:(.bss+0x20): first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
   NIX_LDFLAGS="-lX11";
 
   meta = with lib; {
diff --git a/pkgs/desktops/cdesktopenv/default.nix b/pkgs/desktops/cdesktopenv/default.nix
index 8039caa74be6..acb423f44bd3 100644
--- a/pkgs/desktops/cdesktopenv/default.nix
+++ b/pkgs/desktops/cdesktopenv/default.nix
@@ -49,6 +49,11 @@ in stdenv.mkDerivation rec {
   # build fails otherwise
   enableParallelBuilding = false;
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: raima/startup.o:/build/cde-2.3.2/lib/DtSearch/raima/dbtype.h:408: multiple definition of
+  #     `__SK__'; raima/alloc.o:/build/cde-2.3.2/lib/DtSearch/raima/dbtype.h:408: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   makeFlags = [
     "World"
     "BOOTSTRAPCFLAGS=-I${xorgproto}/include/X11"
diff --git a/pkgs/development/compilers/gcl/default.nix b/pkgs/development/compilers/gcl/default.nix
index 6d0471dacbb5..e6ccc2598035 100644
--- a/pkgs/development/compilers/gcl/default.nix
+++ b/pkgs/development/compilers/gcl/default.nix
@@ -40,7 +40,10 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "pic" "bindnow" ];
 
-  NIX_CFLAGS_COMPILE = "-fgnu89-inline";
+  # -fcommon: workaround build failure on -fno-common toolchains:
+  #   ld: ./libgclp.a(user_match.o):(.bss+0x18): multiple definition of
+  #     `tf'; ./libpre_gcl.a(main.o):(.bss+0x326d90): first defined here
+  NIX_CFLAGS_COMPILE = "-fgnu89-inline -fcommon";
 
   meta = with lib; {
     description = "GNU Common Lisp compiler working via GCC";
diff --git a/pkgs/development/compilers/gmqcc/default.nix b/pkgs/development/compilers/gmqcc/default.nix
new file mode 100644
index 000000000000..f3b25e2dbd4a
--- /dev/null
+++ b/pkgs/development/compilers/gmqcc/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, pkgs
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gmqcc";
+  version = "unstable-2021-07-09";
+
+  src = fetchFromGitHub {
+    owner = "graphitemaster";
+    repo = "gmqcc";
+    rev = "297eab9e5e2c9cc4f41201b68821593a5cf9a725";
+    sha256 = "1hl2qn7402ia03kjkblj4q4wfypxkil99sivsyk2vrnwwpdp4nzx";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    install -m755 gmqcc $out/bin
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://graphitemaster.github.io/gmqcc/";
+    description = "A modern QuakeC compiler";
+    longDescription = ''
+      For an enduring period of time the options for a decent compiler for
+      the Quake C programming language were confined to a specific compiler
+      known as QCC. Attempts were made to extend and improve upon the design
+      of QCC, but many foreseen the consequences of building on a broken
+      foundation. The solution was obvious, a new compiler; one born from
+      the NIH realm of sarcastic wit.
+      We welcome you. You won't find a better Quake C compiler.
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ necrophcodr ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix
index a53b8199fe96..798ea04368f8 100644
--- a/pkgs/development/coq-modules/bignums/default.nix
+++ b/pkgs/development/coq-modules/bignums/default.nix
@@ -8,6 +8,7 @@ with lib; mkCoqDerivation {
   defaultVersion = if versions.isGe "8.6" coq.coq-version
     then "${coq.coq-version}.0" else null;
 
+  release."8.16.0".sha256 = "sha256-DH3iWwatPlhhCVYVlgL2WLkvneSVzSXUiKo2e0+1zR4=";
   release."8.15.0".sha256 = "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns";
   release."8.14.0".sha256 = "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06";
   release."8.13.0".sha256 = "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y";
diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix
index 03fe8c32d5c3..4b471b55b482 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -6,20 +6,21 @@ with builtins; with lib; let
     { case = "8.12"; out = { version = "1.12.0"; };}
     { case = "8.13"; out = { version = "1.13.7"; };}
     { case = "8.14"; out = { version = "1.13.7"; };}
-    { case = "8.15"; out = { version = "1.14.1"; };}
-  ] { version = "1.14.1"; } );
+    { case = "8.15"; out = { version = "1.15.0"; };}
+  ] {} );
 in mkCoqDerivation {
   pname = "elpi";
   repo  = "coq-elpi";
   owner = "LPCIC";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
-    { case = "8.15"; out = "1.13.0"; }
+    { case = "8.15"; out = "1.14.0"; }
     { case = "8.14"; out = "1.11.2"; }
     { case = "8.13"; out = "1.11.1"; }
     { case = "8.12"; out = "1.8.3_8.12"; }
     { case = "8.11"; out = "1.6.3_8.11"; }
   ] null;
+  release."1.14.0".sha256     = "sha256:1v2p5dlpviwzky2i14cj7gcgf8cr0j54bdm9fl5iz1ckx60j6nvp";
   release."1.13.0".sha256     = "1j7s7dlnjbw222gnbrsjgmjck1yrx7h6hwm8zikcyxi0zys17w7n";
   release."1.12.1".sha256     = "sha256-4mO6/co7NcIQSGIQJyoO8lNWXr6dqz+bIYPO/G0cPkY=";
   release."1.11.2".sha256     = "0qk5cfh15y2zrja7267629dybd3irvxk1raz7z8qfir25a81ckd4";
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 4dff2d82848d..7cab5d38c7b3 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -41,9 +41,6 @@
 
 , meta ? {}
 
-# disabled
-, runVend ? false
-
 # Not needed with buildGoModule
 , goPackagePath ? ""
 
@@ -55,8 +52,6 @@
 
 with builtins;
 
-assert runVend != false -> throw "`runVend` has been replaced by `proxyVendor`";
-
 assert goPackagePath != "" -> throw "`goPackagePath` is not needed with `buildGoModule`";
 
 let
diff --git a/pkgs/development/libraries/hidapi/default.nix b/pkgs/development/libraries/hidapi/default.nix
index ffe534ede4af..b29b64c2a757 100644
--- a/pkgs/development/libraries/hidapi/default.nix
+++ b/pkgs/development/libraries/hidapi/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hidapi";
-  version = "0.11.2";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "libusb";
     repo = "hidapi";
     rev = "${pname}-${version}";
-    sha256 = "sha256-zSAhnvnDI3+q8VwZ8fIx/YmvwTpL87PBJ2C1mTmD7Ko=";
+    sha256 = "sha256-SMhlcB7LcViC6UFVYACjunxsGkvSOKC3mbLBH4XQSzM=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/libagar/libagar_test.nix b/pkgs/development/libraries/libagar/libagar_test.nix
index d4712efd6f1e..19efea263c07 100644
--- a/pkgs/development/libraries/libagar/libagar_test.nix
+++ b/pkgs/development/libraries/libagar/libagar_test.nix
@@ -7,6 +7,12 @@ stdenv.mkDerivation {
 
   sourceRoot = "agar-1.5.0/tests";
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: textdlg.o:(.bss+0x0): multiple definition of `someString';
+  #     configsettings.o:(.bss+0x0): first defined here
+  # TODO: the workaround can be removed once nixpkgs updates to 1.6.0.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   preConfigure = ''
     substituteInPlace configure.in \
       --replace '_BSD_SOURCE' '_DEFAULT_SOURCE'
diff --git a/pkgs/development/libraries/libdeltachat/default.nix b/pkgs/development/libraries/libdeltachat/default.nix
index a8915e92e58a..db7db4cce626 100644
--- a/pkgs/development/libraries/libdeltachat/default.nix
+++ b/pkgs/development/libraries/libdeltachat/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdeltachat";
-  version = "1.85.0";
+  version = "1.86.0";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-core-rust";
     rev = version;
-    hash = "sha256-bgx1j2ESAv9cRe3Iv6nYOS7bUAQcXj3Ta4rAC800Nf8=";
+    hash = "sha256-VLS93Ffeit2rVmXxYkXcnf8eDA3DC2/wKYZTh56QCk0=";
   };
 
   patches = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-7ZdN/7CKFuFOIReM7BkMsO/E2lPyDnl4ssPhK5BPLh8=";
+    hash = "sha256-4rpoDQ3o0WdWg/TmazTI+J0hL/MxwHcNMXWMq7GE7Tk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 66134eaffe09..e136fc1a5585 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, pkg-config, libmnl }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.1";
+  version = "1.2.2";
   pname = "libnftnl";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "0z4khm2mnys9mcl8ckwf19cw20jgrv8650nfncy3xcgs2k2aa23m";
+    hash = "sha256-nvwAT50VkY1o+emOGU1V4DAWjzO7Z8PnpUW3QMntbQo=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/libosinfo/default.nix b/pkgs/development/libraries/libosinfo/default.nix
index a1dd23357dec..894aee90ff4b 100644
--- a/pkgs/development/libraries/libosinfo/default.nix
+++ b/pkgs/development/libraries/libosinfo/default.nix
@@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-olLgD8WA3rIdoNqMCqA7jDHoRAuESMi5gUP6tHfTIwU=";
   };
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "devdoc";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index d83a4e0a707a..da3bc925c820 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -1,5 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, mpfr, libxml2, intltool, pkg-config, doxygen,
-  autoreconfHook, readline, libiconv, icu, curl, gnuplot, gettext }:
+{ lib, stdenv, fetchFromGitHub
+, mpfr, gnuplot
+, readline
+, libxml2, curl
+, intltool, libiconv, icu, gettext
+, pkg-config, doxygen, autoreconfHook, buildPackages
+}:
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
@@ -16,6 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ intltool pkg-config autoreconfHook doxygen ];
   buildInputs = [ curl gettext libiconv readline ];
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
   propagatedBuildInputs = [ libxml2 mpfr icu ];
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/libzim/default.nix b/pkgs/development/libraries/libzim/default.nix
index 5191da60ce26..3f290d4ffa3c 100644
--- a/pkgs/development/libraries/libzim/default.nix
+++ b/pkgs/development/libraries/libzim/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libzim";
-  version = "7.2.0";
+  version = "7.2.2";
 
   src = fetchFromGitHub {
     owner = "openzim";
     repo = pname;
     rev = version;
-    sha256 = "sha256-H4YUAbH4X6oJIZyhI23LemngtOtKNrHHl3KSU1ilAmo=";
+    sha256 = "sha256-AEhhjinnnMA4NbYL7NVHYeRZX/zfNiidbY/VeFjZuQs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/physics/cernlib/default.nix b/pkgs/development/libraries/physics/cernlib/default.nix
index ca328e2bac46..77ad6e201a32 100644
--- a/pkgs/development/libraries/physics/cernlib/default.nix
+++ b/pkgs/development/libraries/physics/cernlib/default.nix
@@ -53,6 +53,11 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS = [ "-Wno-return-type" ];
 
+  # Workaround build failure on -fno-common toolchains:
+  # ld: libpacklib.a(kedit.o):kuip/klink1.h:11: multiple definition of `klnkaddr';
+  #   libzftplib.a(zftpcdf.o):zftp/zftpcdf.c:155: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   makeFlags = [
     "FORTRANOPTIONS=$(FFLAGS)"
     "CCOPTIONS=$(NIX_CFLAGS)"
diff --git a/pkgs/development/libraries/sptk/default.nix b/pkgs/development/libraries/sptk/default.nix
new file mode 100644
index 000000000000..6b62b831cb98
--- /dev/null
+++ b/pkgs/development/libraries/sptk/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, cmake
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sptk";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "sp-nitech";
+    repo = "SPTK";
+    rev = "v${version}";
+    hash = "sha256-Be3Pbg+vt/P3FplZN7yBL+HVq/BmzaBcwKOBsbH7r9g=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    changelog = "https://github.com/sp-nitech/SPTK/releases/tag/v${version}";
+    description = "Suite of speech signal processing tools";
+    homepage = "https://github.com/sp-nitech/SPTK";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 10600b44db37..336793be1f6e 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -481,31 +481,31 @@ let
         sha512 = "+D3xnPD5985iphgAqgUerBDs371a2WzzoEVi7eHJUMMsP/gEnSTdSH0HNxsqhYv6CW4EdKtvDAQdAwA1VtCf2A==";
       };
     };
-    "@aws-sdk/client-s3-3.100.0" = {
+    "@aws-sdk/client-s3-3.105.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.100.0.tgz";
-        sha512 = "UmgFdJabWtiUS4dWsC3kZ+ZMvH5QUUbDnLS8pT12duwLGt+xlWPn3PUkV8kL6qjG6XePLUgCqFTLjDD4tsTZNg==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.105.0.tgz";
+        sha512 = "aYHUW8r+YrMPULRBKaFnEKMeWiWf4vE7qEOzRdyucSViyl9ZGqlbxBBAFVRlfGtIRb783DDeeR2j94ruGqMP5Q==";
       };
     };
-    "@aws-sdk/client-sso-3.100.0" = {
+    "@aws-sdk/client-sso-3.105.0" = {
       name = "_at_aws-sdk_slash_client-sso";
       packageName = "@aws-sdk/client-sso";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.100.0.tgz";
-        sha512 = "nmBRUO5QfQ2IO8fHb37p8HT3n1ZooPb3sfTQejrpFH9Eq82VEOatIGt6yH3yTQ8+mhbabEhV5aY2wt/0D7wGVA==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.105.0.tgz";
+        sha512 = "Lp92m3ayckXpAElpgZ8E6JEGB7B5sBsjCkTmYeZq3uVXF8uCVMQFmFo4v2yndLQ3NFCEE8qN2PE8obLDOAsNIA==";
       };
     };
-    "@aws-sdk/client-sts-3.100.0" = {
+    "@aws-sdk/client-sts-3.105.0" = {
       name = "_at_aws-sdk_slash_client-sts";
       packageName = "@aws-sdk/client-sts";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.100.0.tgz";
-        sha512 = "WHy0e6COf6/LfMsYqG9H4SGaQRDjuckMtwOLtu6cYr4cro3bOU5pNuyEjAdUHCpuhZgiE6gkZozhTlxMJqIuRQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.105.0.tgz";
+        sha512 = "ZZyw5hu0Ip/jHc9umpWTnWNUHV270fS25LB7fecUwQeC/cok+EvaG5QGBVI5t0GSUynEIC0sNlG9SDc1wLTZPA==";
       };
     };
     "@aws-sdk/config-resolver-3.80.0" = {
@@ -535,22 +535,22 @@ let
         sha512 = "BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==";
       };
     };
-    "@aws-sdk/credential-provider-ini-3.100.0" = {
+    "@aws-sdk/credential-provider-ini-3.105.0" = {
       name = "_at_aws-sdk_slash_credential-provider-ini";
       packageName = "@aws-sdk/credential-provider-ini";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.100.0.tgz";
-        sha512 = "2pCtth/Iv4mATRwb2g1nJdd9TolMyhTnhcskopukFvzp13VS5cgtz0hgYmJNnztTF8lpKJhJaidtKS5JJTWnHg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.105.0.tgz";
+        sha512 = "qYEUciSpeIBkIDt3ljWkVphG7OUIvQOMklYjtEYjYGFjHX7GuyNbV0NI0T6W/edV0aU/a/KpBi0uKd93Gi43Lg==";
       };
     };
-    "@aws-sdk/credential-provider-node-3.100.0" = {
+    "@aws-sdk/credential-provider-node-3.105.0" = {
       name = "_at_aws-sdk_slash_credential-provider-node";
       packageName = "@aws-sdk/credential-provider-node";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.100.0.tgz";
-        sha512 = "PMIPnn/dhv9tlWR0qXnANJpTumujWfhKnLAsV3BUqB1K9IzWqz/zXjCT0jcSUTY8X/VkSuehtBdCKvOOM5mMqg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.105.0.tgz";
+        sha512 = "A781wWAcghqw21Vddj2jZo1BeKDyqqMcBYIuXJxjwK4fq+IBxlnI6De1vzv3H7QxosDyDS4mKWGW2FqUQI8ofg==";
       };
     };
     "@aws-sdk/credential-provider-process-3.80.0" = {
@@ -562,13 +562,13 @@ let
         sha512 = "3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==";
       };
     };
-    "@aws-sdk/credential-provider-sso-3.100.0" = {
+    "@aws-sdk/credential-provider-sso-3.105.0" = {
       name = "_at_aws-sdk_slash_credential-provider-sso";
       packageName = "@aws-sdk/credential-provider-sso";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.100.0.tgz";
-        sha512 = "DwJvrh77vBJ1/fS9z0i2QuIvSk4pATA4DH8AEWoQ8LQX97tp3es7gZV5Wu93wFsEyIYC8penz6pNVq5QajMk2A==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.105.0.tgz";
+        sha512 = "oHvMZ0uHfOzFkepX29GPXUrI7HTQklQl01laVxEdCNtgZGfos9gjz+xPUDBCaoiEzM+xF9uu4wtaQ15c1bCclQ==";
       };
     };
     "@aws-sdk/credential-provider-web-identity-3.78.0" = {
@@ -760,6 +760,15 @@ let
         sha512 = "GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==";
       };
     };
+    "@aws-sdk/middleware-recursion-detection-3.105.0" = {
+      name = "_at_aws-sdk_slash_middleware-recursion-detection";
+      packageName = "@aws-sdk/middleware-recursion-detection";
+      version = "3.105.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.105.0.tgz";
+        sha512 = "KksW6cBQ3BWTNlN+4eMW8//oqsuKLYJsSUsdSLQb7MFBHnw+6r8GS9WXMYN0IBswlhdYi9fv83zlKDTV21ZL+g==";
+      };
+    };
     "@aws-sdk/middleware-retry-3.80.0" = {
       name = "_at_aws-sdk_slash_middleware-retry";
       packageName = "@aws-sdk/middleware-retry";
@@ -769,13 +778,13 @@ let
         sha512 = "CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==";
       };
     };
-    "@aws-sdk/middleware-sdk-s3-3.86.0" = {
+    "@aws-sdk/middleware-sdk-s3-3.105.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-s3";
       packageName = "@aws-sdk/middleware-sdk-s3";
-      version = "3.86.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.86.0.tgz";
-        sha512 = "1L9q8iJXy/KNyVR8JRs4DZ5SJse6nJPiK4AR8c2xF5FWHdGoFaLcdqpg2/TLB1kpdcfGgNp96uCROxh+IPXtDQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.105.0.tgz";
+        sha512 = "GI2vYiboOc3GNpjNUtGyBVi9R6hwLhjId2PPqchyiRntlzz9CfF4F2qMjH/Vv0kE383hT8TN+5kGmaVSmeJqmg==";
       };
     };
     "@aws-sdk/middleware-sdk-sts-3.78.0" = {
@@ -886,13 +895,13 @@ let
         sha512 = "csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==";
       };
     };
-    "@aws-sdk/s3-request-presigner-3.100.0" = {
+    "@aws-sdk/s3-request-presigner-3.105.0" = {
       name = "_at_aws-sdk_slash_s3-request-presigner";
       packageName = "@aws-sdk/s3-request-presigner";
-      version = "3.100.0";
+      version = "3.105.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.100.0.tgz";
-        sha512 = "32j9o2ChP2pzsua5+Ci9XFKBsFXxlE5muVD9CSpEG9UfUieORAvXsZVChu86IWBFR2nQRm0vebrwJC2tKsgu1A==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.105.0.tgz";
+        sha512 = "qnHScqU8PgY5mB1QmhkiRM6sz++RmUJKqzVjulpEv5iYzk3ey+eCf+4m3mDj7dx6Siw+ThAwTxVzkilnJNvJZg==";
       };
     };
     "@aws-sdk/service-error-classification-3.78.0" = {
@@ -3685,22 +3694,22 @@ let
         sha512 = "na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==";
       };
     };
-    "@fluentui/font-icons-mdl2-8.4.0" = {
+    "@fluentui/font-icons-mdl2-8.4.1" = {
       name = "_at_fluentui_slash_font-icons-mdl2";
       packageName = "@fluentui/font-icons-mdl2";
-      version = "8.4.0";
+      version = "8.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.0.tgz";
-        sha512 = "AV3XEOXfMwpXPdK+MJhJqCd9F9SLHTwsLEgP7Veebcg6cHxnYLcQME/QjwOjlVSdApg7pa1anJ0Fmjy4P85s5Q==";
+        url = "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.1.tgz";
+        sha512 = "nKVb7Jd52EQYASNHNtOVXT01SIzB4MoCPdKxXkwU1rvLe5u6RzAd4UHxjes09/KuvKrIG/Ixo0nv5mb+6NN2sw==";
       };
     };
-    "@fluentui/foundation-legacy-8.2.7" = {
+    "@fluentui/foundation-legacy-8.2.8" = {
       name = "_at_fluentui_slash_foundation-legacy";
       packageName = "@fluentui/foundation-legacy";
-      version = "8.2.7";
+      version = "8.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.7.tgz";
-        sha512 = "/ehXnwMj2UkjJZc2pdhgBtmpEs4sghxbw2avm4vybFMeLpqyF7stXAGou3/v1ifjMqbYkSYo06uG/kk1B8vqSw==";
+        url = "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.8.tgz";
+        sha512 = "9K99k/Cexcn6+U5bbJe8sojd3U6/WID7zmqyDhlVfQDL5napa4Myv9049ToUQ6IUnDJSTZOnuHrWMoK5maUOdw==";
       };
     };
     "@fluentui/keyboard-key-0.4.1" = {
@@ -3721,22 +3730,22 @@ let
         sha512 = "ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==";
       };
     };
-    "@fluentui/react-8.72.1" = {
+    "@fluentui/react-8.72.2" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "8.72.1";
+      version = "8.72.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-8.72.1.tgz";
-        sha512 = "Uumnx5JzeSgirc/cfgXlgx95FExid2bgOp4n2X5YKViHwlqGrI5FTfcMQ47W8iwjK4RKBWlu+3yiYajlQ3kYAQ==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-8.72.2.tgz";
+        sha512 = "/Wn2qIhHl5fJ7zhTNURbs3KzgXe3NuJOBirpZUd/RkLaWxEgb+1+ylw9ijae4Ll65LmEC3Qyu98o+ALxVS83Ww==";
       };
     };
-    "@fluentui/react-focus-8.6.0" = {
+    "@fluentui/react-focus-8.6.1" = {
       name = "_at_fluentui_slash_react-focus";
       packageName = "@fluentui/react-focus";
-      version = "8.6.0";
+      version = "8.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.6.0.tgz";
-        sha512 = "mQWAHZHmKd8hlUqNeagbIYMANECtFVPyizmDl1GIlhpT6bP7LR8xSf5oZ+Yv52tjhWjY4KWfivH9+fiBEUh5Wg==";
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.6.1.tgz";
+        sha512 = "0DasQ31xEqND3OMd+svWto68+U5p6Z8Z+U92jZAlahfh5A6dRcDixu42hQkETmYg8oYaF0zMsVHAZKPx5EVy7w==";
       };
     };
     "@fluentui/react-hooks-8.5.5" = {
@@ -3775,13 +3784,13 @@ let
         sha512 = "SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==";
       };
     };
-    "@fluentui/style-utilities-8.6.7" = {
+    "@fluentui/style-utilities-8.7.0" = {
       name = "_at_fluentui_slash_style-utilities";
       packageName = "@fluentui/style-utilities";
-      version = "8.6.7";
+      version = "8.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.6.7.tgz";
-        sha512 = "FVMXM9cuCuEVWvyJLE7rXVmbIvnY6lmyTbJcOwiyZMmQbQkggZnuJPJhDSCHjDW1DiVhEKjqBqOoiV7WqnDvMQ==";
+        url = "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.0.tgz";
+        sha512 = "coba9Xj85nlAtToSCV0dD5sHq4BSQk/pUD9y4ZfNhm7vAlju5caQFhpwCs+qsZQ2OIkkpeF2YzJ/SHjNrMECqw==";
       };
     };
     "@fluentui/theme-2.6.6" = {
@@ -3919,13 +3928,13 @@ let
         sha512 = "IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==";
       };
     };
-    "@graphql-tools/batch-execute-8.4.9" = {
+    "@graphql-tools/batch-execute-8.4.10" = {
       name = "_at_graphql-tools_slash_batch-execute";
       packageName = "@graphql-tools/batch-execute";
-      version = "8.4.9";
+      version = "8.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.4.9.tgz";
-        sha512 = "McfAPdxP4mRGqm+NKQ0AN8aZXG7AnCcKqQxu5k0RP8Llg/81rImHqgBPO8L8GUW8E0Sx+PzeXmipHjS0MceN2Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.4.10.tgz";
+        sha512 = "rugHElhKYZgb6w3mBuNdgjMIo0LW5QbwIwJ1bc9VKWh51dCQmNwJS1Nx8qFWUjhmjVJWbvKWqYb6Z7wTGnOc3g==";
       };
     };
     "@graphql-tools/delegate-7.1.5" = {
@@ -3937,13 +3946,13 @@ let
         sha512 = "bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==";
       };
     };
-    "@graphql-tools/delegate-8.7.10" = {
+    "@graphql-tools/delegate-8.7.11" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "8.7.10";
+      version = "8.7.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.7.10.tgz";
-        sha512 = "gzkXErvQEuCQF3Fn6ImADeuVHgiqIVE64Va4p3LMK2D/gDwwLeTVc7jY5rjd9oZwxz6JkVD77inbFjA/Nnqlxg==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.7.11.tgz";
+        sha512 = "Rm9ThQHPOz/78OsoB8pZF+8YJm7cHsFMbGa67Q2hLmEAf2xLmNKvsfKfnxYuLnfmpdRxdSmab/ecHZ0qW/DS5w==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
@@ -3955,22 +3964,22 @@ let
         sha512 = "5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==";
       };
     };
-    "@graphql-tools/graphql-file-loader-7.3.14" = {
+    "@graphql-tools/graphql-file-loader-7.3.15" = {
       name = "_at_graphql-tools_slash_graphql-file-loader";
       packageName = "@graphql-tools/graphql-file-loader";
-      version = "7.3.14";
+      version = "7.3.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.14.tgz";
-        sha512 = "BuzHyfml0SMxJuzHGO1Bl9kx6e6qrAyy47KNKOOpot3E0YYnQL53zCYCDQJ+sYjZIrE7Qi4wnMVHb44+juqN+g==";
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.15.tgz";
+        sha512 = "Sw9XadW3bxH3ACNXE8Tsjh+BVedRCJTuRn3NfO//zOYQZiC3HDTzq9MvnW1a00SmPCXg47rxQpq9L3bdLX0Ohg==";
       };
     };
-    "@graphql-tools/import-6.6.16" = {
+    "@graphql-tools/import-6.6.17" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.6.16";
+      version = "6.6.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.16.tgz";
-        sha512 = "IKQMKysNL2Pq+aFpR28N9F7jGAUSRYS9q0RRwl9Ocr4UofqQDmUboECM9BiYUDmT3/h7dQTimb0tdNqHP+QCjA==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.17.tgz";
+        sha512 = "rnKT2ZaFM+IbSFE0iOGG5sqdaDDv/XHHH43VIpV4ozryKoK9re3qrhEgfDOHaW47zMLGKrHLPCC/QGf0IpJquw==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -3982,13 +3991,13 @@ let
         sha512 = "CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==";
       };
     };
-    "@graphql-tools/json-file-loader-7.3.14" = {
+    "@graphql-tools/json-file-loader-7.3.15" = {
       name = "_at_graphql-tools_slash_json-file-loader";
       packageName = "@graphql-tools/json-file-loader";
-      version = "7.3.14";
+      version = "7.3.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.14.tgz";
-        sha512 = "3/KJ52gTQrbF1HvUlN3/yKkA2ImiavgF2LGqsd+P4KmWt1nWpsu30M5VboECmLyLGjv7CQkM2ISE8GXy9IdzhA==";
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.15.tgz";
+        sha512 = "aPxIWBahYVPAVeGxzAsoEsLm+KVfxPcx/wIUZZX8+02YYmuICNT0TeSAk6Q6iuKMJCS7gtU5eYVdEM7qzC2EfA==";
       };
     };
     "@graphql-tools/load-6.2.4" = {
@@ -4000,13 +4009,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/load-7.5.13" = {
+    "@graphql-tools/load-7.5.14" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "7.5.13";
+      version = "7.5.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.13.tgz";
-        sha512 = "GQ/RyVZUUVfxJ8jEg2sU0WK5i5VR7WLxMutbIvkYP3dcf1QpXSmQvCDP97smfJA34SYlkGUTP/B3PagfnAmhqQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.14.tgz";
+        sha512 = "K7H4tKKGFliRyjbG92KCuv2fS2pHlRxkcNcDtuEQlA8dhthS9qGB14Ld4eHDuRq1RvHTS6mye5NE1alyY44K9g==";
       };
     };
     "@graphql-tools/merge-6.2.17" = {
@@ -4018,13 +4027,13 @@ let
         sha512 = "G5YrOew39fZf16VIrc49q3c8dBqQDD0ax5LYPiNja00xsXDi0T9zsEWVt06ApjtSdSF6HDddlu5S12QjeN8Tow==";
       };
     };
-    "@graphql-tools/merge-8.2.13" = {
+    "@graphql-tools/merge-8.2.14" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "8.2.13";
+      version = "8.2.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz";
-        sha512 = "lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.14.tgz";
+        sha512 = "od6lTF732nwPX91G79eiJf+dyRBHxCaKe7QL4IYeH4d1k+NYqx/ihYpFJNjDaqxmpHH92Hr+TxsP9SYRK3/QKg==";
       };
     };
     "@graphql-tools/schema-7.1.5" = {
@@ -4036,13 +4045,13 @@ let
         sha512 = "uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==";
       };
     };
-    "@graphql-tools/schema-8.3.13" = {
+    "@graphql-tools/schema-8.3.14" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "8.3.13";
+      version = "8.3.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz";
-        sha512 = "e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.14.tgz";
+        sha512 = "ntA4pKwyyPHFFKcIw17FfqGZAiTNZl0tHieQpPIkN5fPc4oHcXOfaj1vBjtIC/Qn6H7XBBu3l2kMA8FpobdxTQ==";
       };
     };
     "@graphql-tools/url-loader-6.10.1" = {
@@ -4054,13 +4063,13 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
-    "@graphql-tools/url-loader-7.9.23" = {
+    "@graphql-tools/url-loader-7.9.24" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "7.9.23";
+      version = "7.9.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.23.tgz";
-        sha512 = "6IYn5bIaqlWHQksvuPCEPqr8pIuuXBaF8/XbcVdT7otPkyGIQjTxoOkLiWIQj5682aEgZ9Ky21KKcp7qOTWmDQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.24.tgz";
+        sha512 = "DpIP9EVZSyhSJgX3P2/ka7lzmpDLqOQ4hDkt1oCBcRDzkeyMOKl5XQAg5/X6AaIonhss+/el0ELqTVOHt9zDxQ==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -4090,13 +4099,13 @@ let
         sha512 = "gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==";
       };
     };
-    "@graphql-tools/utils-8.6.12" = {
+    "@graphql-tools/utils-8.6.13" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "8.6.12";
+      version = "8.6.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz";
-        sha512 = "WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.13.tgz";
+        sha512 = "FiVqrQzj4cgz0HcZ3CxUs8NtBGPZFpmsVyIgwmL6YCwIhjJQnT72h8G3/vk5zVfjfesht85YGp0inWWuoCKWzg==";
       };
     };
     "@graphql-tools/wrap-7.0.8" = {
@@ -4108,22 +4117,13 @@ let
         sha512 = "1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==";
       };
     };
-    "@graphql-tools/wrap-8.4.19" = {
+    "@graphql-tools/wrap-8.4.20" = {
       name = "_at_graphql-tools_slash_wrap";
       packageName = "@graphql-tools/wrap";
-      version = "8.4.19";
+      version = "8.4.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.19.tgz";
-        sha512 = "S+1zh+9+4MK3HSQMPjwerLybMtD8LCfte/wsZK4JgYhls2INrLJZEMquMxhQTma4jkKBL48GZtESIP0hFTP4Ow==";
-      };
-    };
-    "@grpc/grpc-js-1.5.7" = {
-      name = "_at_grpc_slash_grpc-js";
-      packageName = "@grpc/grpc-js";
-      version = "1.5.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz";
-        sha512 = "RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.20.tgz";
+        sha512 = "qzlrOg9ddaA+30OdG8NU/zDPV2sbJ4Rvool+Zf0nLVRqkAUP/1uxXTQBLgEJKO1xxTlhJ+27FCJ42lG6JG9ZrA==";
       };
     };
     "@grpc/grpc-js-1.6.1" = {
@@ -4909,544 +4909,544 @@ let
         sha512 = "Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==";
       };
     };
-    "@lerna/add-5.0.0" = {
+    "@lerna/add-5.1.0" = {
       name = "_at_lerna_slash_add";
       packageName = "@lerna/add";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/add/-/add-5.0.0.tgz";
-        sha512 = "KdIOQL+88iHU9zuAU8Be1AL4cOVmm77nlckylsNaVVTiomNipr/h7lStiBO52BoMkwKzNwOH6He5HGY0Yo7s2w==";
+        url = "https://registry.npmjs.org/@lerna/add/-/add-5.1.0.tgz";
+        sha512 = "JK6ezKNQCfXnuHuxd63HcFbgVzfXMcyC0HFKCU5juPaIvqVCXBFR2xNy4gYcMPE9dZS9THT719hf3c0RgWMl0w==";
       };
     };
-    "@lerna/bootstrap-5.0.0" = {
+    "@lerna/bootstrap-5.1.0" = {
       name = "_at_lerna_slash_bootstrap";
       packageName = "@lerna/bootstrap";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.0.0.tgz";
-        sha512 = "2m1BxKbYwDABy+uE/Da3EQM61R58bI3YQ0o1rsFQq1u0ltL9CJxw1o0lMg84hwMsBb4D+kLIXLqetYlLVgbr0Q==";
+        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.1.0.tgz";
+        sha512 = "TAIoRLiHfmFB1wZlHQ+YkkSaniqWshcxz2703U5iwrCeSOtWRE5+4G7d0wvNAXTLou8Azxjx+gXzU32IHS7k1g==";
       };
     };
-    "@lerna/changed-5.0.0" = {
+    "@lerna/changed-5.1.0" = {
       name = "_at_lerna_slash_changed";
       packageName = "@lerna/changed";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/changed/-/changed-5.0.0.tgz";
-        sha512 = "A24MHipPGODmzQBH1uIMPPUUOc1Zm7Qe/eSYzm52bFHtVxWH0nIVXfunadoMX32NhzKQH3Sw8X2rWHPQSRoUvA==";
+        url = "https://registry.npmjs.org/@lerna/changed/-/changed-5.1.0.tgz";
+        sha512 = "u6yHa/CLG9rQd0+TZLNSYTjiDIqN6hCfLbXrnT3oVsGmu2Agp/uSGvMS9SXsQEmztQLevOEZ/Rl7LCPVBa21dg==";
       };
     };
-    "@lerna/check-working-tree-5.0.0" = {
+    "@lerna/check-working-tree-5.1.0" = {
       name = "_at_lerna_slash_check-working-tree";
       packageName = "@lerna/check-working-tree";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.0.0.tgz";
-        sha512 = "PnUMdpT2qS4o+vs+7l5fFIizstGdqSkhLG+Z9ZiY5OMtnGd+pmAFQFlbLSZSmdvQSOSobl9fhB1St8qhPD60xQ==";
+        url = "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.1.0.tgz";
+        sha512 = "Vd6Roa0TIXZVXXplx/EP/A4QtHFeCFHbk2MbK7t7CWiCK9pEU9nhF/j6SJhuPes3z1mSOn/FjaN2JjShvJII1w==";
       };
     };
-    "@lerna/child-process-5.0.0" = {
+    "@lerna/child-process-5.1.0" = {
       name = "_at_lerna_slash_child-process";
       packageName = "@lerna/child-process";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.0.0.tgz";
-        sha512 = "cFVNkedrlU8XTt15EvUtQ84hqtV4oToQW/elKNv//mhCz06HY8Y+Ia6XevK2zrIhZjS6DT576F/7SmTk3vnpmg==";
+        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.1.0.tgz";
+        sha512 = "BkPkeFpApuPYBYvnqLjdY3/qQV/6zouchrtMUnaQ3N8pdkU/NkSDEeBtl4hR5Coyb1jGjpYt63IrrD4i4Snyvg==";
       };
     };
-    "@lerna/clean-5.0.0" = {
+    "@lerna/clean-5.1.0" = {
       name = "_at_lerna_slash_clean";
       packageName = "@lerna/clean";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/clean/-/clean-5.0.0.tgz";
-        sha512 = "7B+0Nx6MEPmCfnEa1JFyZwJsC7qlGrikWXyLglLb/wcbapYVsuDauOl9AT1iOFoXKw82P77HWYUKWeD9DQgw/w==";
+        url = "https://registry.npmjs.org/@lerna/clean/-/clean-5.1.0.tgz";
+        sha512 = "hX0Y6cumy3Gn21WriFUEJgznbfaZQQYrOQJDu5FOd9EShKb0gfWpX8l/DmnDfcQoIXJSYV85oHPuB619sdZwUA==";
       };
     };
-    "@lerna/cli-5.0.0" = {
+    "@lerna/cli-5.1.0" = {
       name = "_at_lerna_slash_cli";
       packageName = "@lerna/cli";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/cli/-/cli-5.0.0.tgz";
-        sha512 = "g8Nifko8XNySOl8u2molSHVl+fk/E1e5FSn/W2ekeijmc3ezktp+xbPWofNq71N/d297+KPQpLBfwzXSo9ufIQ==";
+        url = "https://registry.npmjs.org/@lerna/cli/-/cli-5.1.0.tgz";
+        sha512 = "Mwod1swfQvYat60S2/otQVe64WQMUtdnNz/GaKoIbyIekqUC0Ozo6Ui0Qv9UdmowADdIRpHPEb3tK1i8Ze7rew==";
       };
     };
-    "@lerna/collect-uncommitted-5.0.0" = {
+    "@lerna/collect-uncommitted-5.1.0" = {
       name = "_at_lerna_slash_collect-uncommitted";
       packageName = "@lerna/collect-uncommitted";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.0.0.tgz";
-        sha512 = "mga/2S9rK0TP5UCulWiCTrC/uKaiIlOro1n8R3oCw6eRw9eupCSRx5zGI7pdh8CPD82MDL7w0a6OTep3WBSBVA==";
+        url = "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.0.tgz";
+        sha512 = "NTE0z3mRILv/NY5iWUCbXt0W3LWYr5oBHXPRDwYOtb4K3c7WXHIZ6v4ZtsGFG++K+74Ak1sZj8wCQjntUklx9w==";
       };
     };
-    "@lerna/collect-updates-5.0.0" = {
+    "@lerna/collect-updates-5.1.0" = {
       name = "_at_lerna_slash_collect-updates";
       packageName = "@lerna/collect-updates";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.0.0.tgz";
-        sha512 = "X82i8SVgBXLCk8vbKWfQPRLTAXROCANL8Z/bU1l6n7yycsHKdjrrlNi1+KprFdfRsMvSm10R4qPNcl9jgsp/IA==";
+        url = "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.1.0.tgz";
+        sha512 = "MKRTTZpBNeMsSp2FAjbczGN08ni2Cxrb4Y+RRX3FFNi46T+hfugkWWJraXRXJ+D4HNt6IsndxK0/5J6G3sIl9A==";
       };
     };
-    "@lerna/command-5.0.0" = {
+    "@lerna/command-5.1.0" = {
       name = "_at_lerna_slash_command";
       packageName = "@lerna/command";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/command/-/command-5.0.0.tgz";
-        sha512 = "j7/apU5d/nhSc1qIZgcV03KyO5jz3y7cwSum3IuK8/XF6rKwt3FVnbue1V3l9sJ6IRJjsRGKyViB1IdP5nSX4Q==";
+        url = "https://registry.npmjs.org/@lerna/command/-/command-5.1.0.tgz";
+        sha512 = "lPHtnvjsYVEqMQ06YjHcSqZrH7jjMPLC9vCo6lkm43QvtLmow5tGzUSt+ZkXJFa5iQp3/Qdzuf3KV2Oq2FAFbw==";
       };
     };
-    "@lerna/conventional-commits-5.0.0" = {
+    "@lerna/conventional-commits-5.1.0" = {
       name = "_at_lerna_slash_conventional-commits";
       packageName = "@lerna/conventional-commits";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.0.0.tgz";
-        sha512 = "tUCRTAycDCtSlCEI0hublq4uKHeV0UHpwIb3Fdt6iv2AoTSPBSX/Dwu/6VqguysOSEkkR4M2JCOLvJCl4IMxwg==";
+        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.1.0.tgz";
+        sha512 = "bC0oITKwaAGbM3I7pE3jf5NwwzjUoQH68DC1WAtaJurCtSvvuM00irtz8KqXeWsW9nUtY68gYUuV5btSkEZ4FA==";
       };
     };
-    "@lerna/create-5.0.0" = {
+    "@lerna/create-5.1.0" = {
       name = "_at_lerna_slash_create";
       packageName = "@lerna/create";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create/-/create-5.0.0.tgz";
-        sha512 = "sdFTVTLOVuhHpzIYhFAwK0Ry3p4d7uMe9ZG/Ii128/pB9kEEfCth+1WBq6mBpYZ5mOLLgxJbWalbiJFl0toQRw==";
+        url = "https://registry.npmjs.org/@lerna/create/-/create-5.1.0.tgz";
+        sha512 = "5xw46aZrAQhJByKMyNs78Nl3SZI6yxqNA12pQR7HWf+2/VX29dxKao6W+4658OQIOw2G148TTadP4G9zRiRKRw==";
       };
     };
-    "@lerna/create-symlink-5.0.0" = {
+    "@lerna/create-symlink-5.1.0" = {
       name = "_at_lerna_slash_create-symlink";
       packageName = "@lerna/create-symlink";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.0.0.tgz";
-        sha512 = "nHYNacrh15Y0yEofVlUVu9dhf4JjIn9hY7v7rOUXzUeQ91iXY5Q3PVHkBeRUigyT5CWP5qozZwraCMwp+lDWYg==";
+        url = "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.1.0.tgz";
+        sha512 = "FYCNdgP0xf65CokOyFFI63sAA2MfZbSPyDqRHyIJXkrjLCXIl6NZDsu6ppM2XqczDtawmo9YFPAUGZ2QgfowIQ==";
       };
     };
-    "@lerna/describe-ref-5.0.0" = {
+    "@lerna/describe-ref-5.1.0" = {
       name = "_at_lerna_slash_describe-ref";
       packageName = "@lerna/describe-ref";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.0.0.tgz";
-        sha512 = "iLvMHp3nl4wcMR3/lVkz0ng7pAHfLQ7yvz2HsYBq7wllCcEzpchzPgyVzyvbpJ+Ke/MKjQTsrHE/yOGOH67GVw==";
+        url = "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.1.0.tgz";
+        sha512 = "eM7H4JJUyzpDoonSuH0kl3/UggvZUAE5UNFhkW2dTJESABusg7UOOnw615iwfiFcm9VeqEs7rXdhRpeBorPj4A==";
       };
     };
-    "@lerna/diff-5.0.0" = {
+    "@lerna/diff-5.1.0" = {
       name = "_at_lerna_slash_diff";
       packageName = "@lerna/diff";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/diff/-/diff-5.0.0.tgz";
-        sha512 = "S4XJ6i9oP77cSmJ3oRUJGMgrI+jOTmkYWur2nqgSdyJBE1J2eClgTJknb3WAHg2cHALT18WzFqNghFOGM+9dRA==";
+        url = "https://registry.npmjs.org/@lerna/diff/-/diff-5.1.0.tgz";
+        sha512 = "IfI9wLklqM9PRtdLXd3nZL0B/Dh0AdQ4hkEUexxQQYa9vGSk8f1oZ8W/mMQ43yvF+HrLOq9ggR0ZFR+9rm9fDA==";
       };
     };
-    "@lerna/exec-5.0.0" = {
+    "@lerna/exec-5.1.0" = {
       name = "_at_lerna_slash_exec";
       packageName = "@lerna/exec";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/exec/-/exec-5.0.0.tgz";
-        sha512 = "g5i+2RclCGWLsl88m11j99YM2Gqnwa2lxZ5tDeqqWZFno6Dlvop17Yl6/MFH42EgM2DQHUUCammvcLIAJ2XwEA==";
+        url = "https://registry.npmjs.org/@lerna/exec/-/exec-5.1.0.tgz";
+        sha512 = "JgHz/hTF47mRPd3o+gRtHSv7DMOvnXAkVdj/YLTCPgJ4IMvIeVY70sCWuvnJPo728k4fdIrgmw0BWpUBD64q9w==";
       };
     };
-    "@lerna/filter-options-5.0.0" = {
+    "@lerna/filter-options-5.1.0" = {
       name = "_at_lerna_slash_filter-options";
       packageName = "@lerna/filter-options";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.0.0.tgz";
-        sha512 = "un73aYkXlzKlnDPx2AlqNW+ArCZ20XaX+Y6C0F+av9VZriiBsCgZTnflhih9fiSMnXjN5r9CA8YdWvZqa3oAcQ==";
+        url = "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.1.0.tgz";
+        sha512 = "FeUb2jjbNNm1pBbEclktQ7Yqxy5KBxpHAuHic4Arruaai2lxYEQaJKb3NoTFT+cBlY1zFPQcjc8bPbEshu0vuA==";
       };
     };
-    "@lerna/filter-packages-5.0.0" = {
+    "@lerna/filter-packages-5.1.0" = {
       name = "_at_lerna_slash_filter-packages";
       packageName = "@lerna/filter-packages";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.0.0.tgz";
-        sha512 = "+EIjVVaMPDZ05F/gZa+kcXjBOLXqEamcEIDr+2ZXRgJmnrLx9BBY1B7sBEFHg7JXbeOKS+fKtMGVveV0SzgH3Q==";
+        url = "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.1.0.tgz";
+        sha512 = "X5FuSDeYBcEPPKmea/uA3FLz4Vheqv9Dmm3ZkVE+w9TRb1t52azavPm/bm99I/7aKr4+clOgf7AZ4NqFOaA+aQ==";
       };
     };
-    "@lerna/get-npm-exec-opts-5.0.0" = {
+    "@lerna/get-npm-exec-opts-5.1.0" = {
       name = "_at_lerna_slash_get-npm-exec-opts";
       packageName = "@lerna/get-npm-exec-opts";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.0.0.tgz";
-        sha512 = "ZOg3kc5FXYA1kVFD2hfJOl64hNASWD6panwD0HlyzXgfKKTDRm/P/qtAqS8WGCzQWgEdx4wvsDe/58Lzzh6QzQ==";
+        url = "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.0.tgz";
+        sha512 = "54lkBLpuwq9XTaiejkNOvBk75SUNOj6YxZY+lbZzfMxqy107w4Fcwp3MdvYFaRO+0q8aderdYOUysv0X4q62Xg==";
       };
     };
-    "@lerna/get-packed-5.0.0" = {
+    "@lerna/get-packed-5.1.0" = {
       name = "_at_lerna_slash_get-packed";
       packageName = "@lerna/get-packed";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.0.0.tgz";
-        sha512 = "fks7Tg7DvcCZxRWPS3JAWVuLnwjPC/hLlNsdYmK9nN3+RtPhmYQgBjLSONcENw1E46t4Aph72lA9nLcYBLksqw==";
+        url = "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.1.0.tgz";
+        sha512 = "waCjBLhIJ2Y1C3H3ny6zMFLH3Y8z6+ZiGYGgKXFuBD6ovmqZz7QInY63i+6FWIgwTE4FakbDsTK0xhaJEjz6/g==";
       };
     };
-    "@lerna/github-client-5.0.0" = {
+    "@lerna/github-client-5.1.0" = {
       name = "_at_lerna_slash_github-client";
       packageName = "@lerna/github-client";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.0.0.tgz";
-        sha512 = "NoEyRkQ8XgBnrjRfC9ph1npfg1/4OdYG+r8lG/1WkJbdt1Wlym4VNZU2BYPMWwSQYMJuppoEr0LL2uuVcS4ZUw==";
+        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.1.0.tgz";
+        sha512 = "wow6KytR+pPXU+0DyCWnNuMdCTRotQCtGf5K+2PziJI0zfow4uFh60hs58bRrv3GgotnXeEB6433tYdajNa+nA==";
       };
     };
-    "@lerna/gitlab-client-5.0.0" = {
+    "@lerna/gitlab-client-5.1.0" = {
       name = "_at_lerna_slash_gitlab-client";
       packageName = "@lerna/gitlab-client";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.0.0.tgz";
-        sha512 = "WREAT7qzta9hxNxktTX0x1/sEMpBP+4Gc00QSJYXt+ZzxY0t5RUx/ZK5pQl+IDhtkajrvXT6fSfZjMxxyE8hhQ==";
+        url = "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.1.0.tgz";
+        sha512 = "nXUK6h8SpYRdocrzhA3wJDZ6ghQREBBxPbA5v2jVSY2xR3NxOcWjYOpq2BaQ5KE0j4OYenFL1kNn6baAQsw/XQ==";
       };
     };
-    "@lerna/global-options-5.0.0" = {
+    "@lerna/global-options-5.1.0" = {
       name = "_at_lerna_slash_global-options";
       packageName = "@lerna/global-options";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.0.0.tgz";
-        sha512 = "PZYy/3mTZwtA9lNmHHRCc/Ty1W20qGJ/BdDIo4bw/Bk0AOcoBCLT9b3Mjijkl4AbC9+eSGk3flUYapCGVuS32Q==";
+        url = "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.1.0.tgz";
+        sha512 = "yh66x9+gQk5Wcjoys10DyzJ6EkCdx2+wjW9gdY+1KyfKHY3v4sLgHohGi8o7lKLr3ihaT/MgZSKmN9oLGpJVow==";
       };
     };
-    "@lerna/has-npm-version-5.0.0" = {
+    "@lerna/has-npm-version-5.1.0" = {
       name = "_at_lerna_slash_has-npm-version";
       packageName = "@lerna/has-npm-version";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.0.0.tgz";
-        sha512 = "zJPgcml86nhJFJTpT+kjkcafuCFvK7PSq3oDC2KJxwB1bhlYwy+SKtAEypHSsHQ2DwP0YgPITcy1pvtHkie1SA==";
+        url = "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.1.0.tgz";
+        sha512 = "qihV4JthS3RG2w/GoioPIuU5MCauWI9+dddNgh5rHGfOuOudE4kPOLBa0CpcV06fjpgFNiyL0QOoSok2LVvnBQ==";
       };
     };
-    "@lerna/import-5.0.0" = {
+    "@lerna/import-5.1.0" = {
       name = "_at_lerna_slash_import";
       packageName = "@lerna/import";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/import/-/import-5.0.0.tgz";
-        sha512 = "cD+Is7eV/I+ZU0Wlg+yAgKaZbOvfzA7kBj2Qu1HtxeLhc7joTR8PFW1gNjEsvrWOTiaHAtObbo1A+MKYQ/T12g==";
+        url = "https://registry.npmjs.org/@lerna/import/-/import-5.1.0.tgz";
+        sha512 = "oG7KmYCiXikYFk8VXvew2hioFKNUgve0NGXpIW3eHM5vtWUoGa2EA+5TDJnzXWNDiW27PULrD/MBBfLchWfIpA==";
       };
     };
-    "@lerna/info-5.0.0" = {
+    "@lerna/info-5.1.0" = {
       name = "_at_lerna_slash_info";
       packageName = "@lerna/info";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/info/-/info-5.0.0.tgz";
-        sha512 = "k9TMK81apTjxxpnjfFOABKXndTtHBPgB8UO+I6zKhsfRqVb9FCz2MHOx8cQiSyolvNyGSQdSylSo4p7EBBomQQ==";
+        url = "https://registry.npmjs.org/@lerna/info/-/info-5.1.0.tgz";
+        sha512 = "RS25MvC2PpbPg8110e1FXo4rgU8VH0749/Kt4qwoMjXOxx/XecLWB69+YT1XZwi42XnzmfTSBWpi7ZuKZF++HA==";
       };
     };
-    "@lerna/init-5.0.0" = {
+    "@lerna/init-5.1.0" = {
       name = "_at_lerna_slash_init";
       packageName = "@lerna/init";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/init/-/init-5.0.0.tgz";
-        sha512 = "2n68x7AIqVa+Vev9xF3NV9ba0C599KYf7JsIrQ5ESv4593ftInJpwgMwjroLT3X/Chi4BK7y2/xGmrfFVwgILg==";
+        url = "https://registry.npmjs.org/@lerna/init/-/init-5.1.0.tgz";
+        sha512 = "Nhc6rUCYLo17zqZF3ONoyw7d6TEhQwADdEiDe3LWe2lv/AuTGFI7ZNgo5gduLkAsfw54i8kGUQNh2/lvfGqB1g==";
       };
     };
-    "@lerna/link-5.0.0" = {
+    "@lerna/link-5.1.0" = {
       name = "_at_lerna_slash_link";
       packageName = "@lerna/link";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/link/-/link-5.0.0.tgz";
-        sha512 = "00YxQ06TVhQJthOjcuxCCJRjkAM+qM/8Lv0ckdCzBBCSr4RdAGBp6QcAX/gjLNasgmNpyiza3ADet7mCH7uodw==";
+        url = "https://registry.npmjs.org/@lerna/link/-/link-5.1.0.tgz";
+        sha512 = "OHShGKIe83/GcBVivmFWO6R9g3K8MDZfKwtcgBxy6GeLNQ+IfxxwOIbPEcn2afpBrEuGaisaNHKf00YnnmCdRQ==";
       };
     };
-    "@lerna/list-5.0.0" = {
+    "@lerna/list-5.1.0" = {
       name = "_at_lerna_slash_list";
       packageName = "@lerna/list";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/list/-/list-5.0.0.tgz";
-        sha512 = "+B0yFil2AFdiYO8hyU1bFbKXGBAUUQQ43/fp2XS2jBFCipLme4eTILL5gMKOhr2Xg9AsfYPXRMRer5VW7qTeeQ==";
+        url = "https://registry.npmjs.org/@lerna/list/-/list-5.1.0.tgz";
+        sha512 = "MW+2ebEm/eEcHfEpdS/JM8XC0OrBbVH1HbTTHba7WUHTvjIeKj8qFD6wJa4YSqVWLC415Ev9ET9JnesIfL375w==";
       };
     };
-    "@lerna/listable-5.0.0" = {
+    "@lerna/listable-5.1.0" = {
       name = "_at_lerna_slash_listable";
       packageName = "@lerna/listable";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/listable/-/listable-5.0.0.tgz";
-        sha512 = "Rd5sE7KTbqA8u048qThH5IyBuJIwMcUnEObjFyJyKpc1SEWSumo4yAYmcEeN/9z62tcdud5wHYPSbVgfXJq37g==";
+        url = "https://registry.npmjs.org/@lerna/listable/-/listable-5.1.0.tgz";
+        sha512 = "L+zlyn+6LltxzER8c1GXq4k1EaRluuzQmEBIXnlHYgAQxrYpZ/L8U8h4zXWyaxUoJULHBCoLWxGq2cgJFxHE3w==";
       };
     };
-    "@lerna/log-packed-5.0.0" = {
+    "@lerna/log-packed-5.1.0" = {
       name = "_at_lerna_slash_log-packed";
       packageName = "@lerna/log-packed";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.0.0.tgz";
-        sha512 = "0TxKX+XnlEYj0du9U2kg3HEyIb/0QsM0Slt8utuCxALUnXRHTEKohjqVKsBdvh1QmJpnUbL5I+vfoYqno4Y42w==";
+        url = "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.1.0.tgz";
+        sha512 = "nHoVWnq01RkIC4BDfGWRjaGSuKuVx31eY/JDx0NV+eVGoaTAp5YgMmZilRBSIQPRBlGMxEex89YLfXmOWfXuPg==";
       };
     };
-    "@lerna/npm-conf-5.0.0" = {
+    "@lerna/npm-conf-5.1.0" = {
       name = "_at_lerna_slash_npm-conf";
       packageName = "@lerna/npm-conf";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.0.0.tgz";
-        sha512 = "KSftxtMNVhLol1JNwFFNgh5jiCG010pewM+uKeSrUe0BCB3lnidiEDzu2CCn8JYYfIXqAiou/pScUiOxVLpcAA==";
+        url = "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.1.0.tgz";
+        sha512 = "S//5yGukBEhVveGxrjKkGd7YUhAD2Es9wz5ec5GkfxH3jmPtc0Uxn/v87p7P6zxR/elt0fnFiwyK9Za1CDcmaA==";
       };
     };
-    "@lerna/npm-dist-tag-5.0.0" = {
+    "@lerna/npm-dist-tag-5.1.0" = {
       name = "_at_lerna_slash_npm-dist-tag";
       packageName = "@lerna/npm-dist-tag";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.0.0.tgz";
-        sha512 = "ccUFhp9Wu/FHW5/5fL+vLiSTcUZXtKQ7c0RMXtNRzIdTXBxPBkVi1k5QAnBAAffsz6Owc/K++cb+/zQ/asrG3g==";
+        url = "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.0.tgz";
+        sha512 = "PlLJKsSUfdizQRMhvVCvnpGparTO9JTdybkiOeKApbz+BEnL+eANodY+eJs+ubO2mMsku8LEGyyUs2OyCP/23Q==";
       };
     };
-    "@lerna/npm-install-5.0.0" = {
+    "@lerna/npm-install-5.1.0" = {
       name = "_at_lerna_slash_npm-install";
       packageName = "@lerna/npm-install";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.0.0.tgz";
-        sha512 = "72Jf05JCIdeSBWXAiNjd/y2AQH4Ojgas55ojV2sAcEYz2wgyR7wSpiI6fHBRlRP+3XPjV9MXKxI3ZwOnznQxqQ==";
+        url = "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.1.0.tgz";
+        sha512 = "uUiAN9eLyrvTjGKPLSgRtFi6Bu9QDGNu/EbYG14iBPLOmFbFVyhAQr4QHJ8lA/orJDKrTgEMWVl/rI++MX9Hxw==";
       };
     };
-    "@lerna/npm-publish-5.0.0" = {
+    "@lerna/npm-publish-5.1.0" = {
       name = "_at_lerna_slash_npm-publish";
       packageName = "@lerna/npm-publish";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.0.0.tgz";
-        sha512 = "jnapZ2jRajSzshSfd1Y3rHH5R7QC+JJlYST04FBebIH3VePwDT7uAglDCI4um2THvxkW4420EzE4BUMUwKlnXA==";
+        url = "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.1.0.tgz";
+        sha512 = "vGCxUG1T2TmSzSlIMs8FGpdyLjv3kD8Wl68mI4g3NC4uOHuOPGCXlLjbgYlcT/v+d3L69jDfTFgiZhTiPFx8Jg==";
       };
     };
-    "@lerna/npm-run-script-5.0.0" = {
+    "@lerna/npm-run-script-5.1.0" = {
       name = "_at_lerna_slash_npm-run-script";
       packageName = "@lerna/npm-run-script";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.0.0.tgz";
-        sha512 = "qgGf0Wc/E2YxPwIiF8kC/OB9ffPf0/HVtPVkqrblVuNE9XVP80WilOH966PIDiXzwXaCo/cTswFoBeseccYRGw==";
+        url = "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.1.0.tgz";
+        sha512 = "zaBfisZVSd0q8Q9+Dm4p9d1GoWdLjSbMpIs00QA/dTXtMr+X64AVcgZVsiXqxCzK/ZJh6uOPsUbv6NNMhFQERA==";
       };
     };
-    "@lerna/otplease-5.0.0" = {
+    "@lerna/otplease-5.1.0" = {
       name = "_at_lerna_slash_otplease";
       packageName = "@lerna/otplease";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.0.0.tgz";
-        sha512 = "QLLkEy1DPN1XFRAAZDHxAD26MHFQDHfzB6KKSzRYxbHc6lH/YbDaMH1RloSWIm7Hwkxl/3NgpokgN4Lj5XFuzg==";
+        url = "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.1.0.tgz";
+        sha512 = "s3ps5aPcUlSUMVQ92UZSEairm+9MXOtlZ1P0BEolUL+e/Fj6jKL2r8A+RRfTXXoIDNLmAiM7BXkkUqvtHTWScw==";
       };
     };
-    "@lerna/output-5.0.0" = {
+    "@lerna/output-5.1.0" = {
       name = "_at_lerna_slash_output";
       packageName = "@lerna/output";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/output/-/output-5.0.0.tgz";
-        sha512 = "/7sUJQWPcvnLudjVIdN7t9MlfBLuP4JCDAWgQMqZe+wpQRuKNyKQ5dLBH5NHU/ElJCjAwMPfWuk3mh3GuvuiGA==";
+        url = "https://registry.npmjs.org/@lerna/output/-/output-5.1.0.tgz";
+        sha512 = "UKkyTFmZrDYOXKtXlub8K8uQ3FrbA59x6lxjCV1ucUuodIVuFU5zT604ae5zPy8eLPDSy3UmjkxkAlnbEw13OA==";
       };
     };
-    "@lerna/pack-directory-5.0.0" = {
+    "@lerna/pack-directory-5.1.0" = {
       name = "_at_lerna_slash_pack-directory";
       packageName = "@lerna/pack-directory";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.0.0.tgz";
-        sha512 = "E1SNDS7xSWhJrTSmRzJK7DibneljrymviKcsZW3mRl4TmF4CpYJmNXCMlhEtKEy6ghnGQvnl3/4+eslHDJ5J/w==";
+        url = "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.1.0.tgz";
+        sha512 = "OBYtkUz5GpDvU+JCZSIPwB7XCv6B9xILd3pYYCM5ditkwI3te+J9AZt+aleYa1/NfJdTxenPdBjui656dCEMdw==";
       };
     };
-    "@lerna/package-5.0.0" = {
+    "@lerna/package-5.1.0" = {
       name = "_at_lerna_slash_package";
       packageName = "@lerna/package";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/package/-/package-5.0.0.tgz";
-        sha512 = "/JiUU88bhbYEUTzPqoGLGwrrdWWTIVMlBb1OPxCGNGDEqYYNySX+OTTSs3zGMcmJnRNI0UyQALiEd0sh3JFN5w==";
+        url = "https://registry.npmjs.org/@lerna/package/-/package-5.1.0.tgz";
+        sha512 = "Y2HF4Lrv4E7AwT97+G1lx6qIJB4Wzi4nHsNOgRC/dK4Hr7b5Qubv2bPEcb0mMqWlwSrvYQI4Zacelgy/mgxPsA==";
       };
     };
-    "@lerna/package-graph-5.0.0" = {
+    "@lerna/package-graph-5.1.0" = {
       name = "_at_lerna_slash_package-graph";
       packageName = "@lerna/package-graph";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.0.0.tgz";
-        sha512 = "Z3QeUQVjux0Blo64rA3/NivoLDlsQBjsZRIgGLbcQh7l7pJrqLK1WyNCBbPJ0KQNljQqUXthCKzdefnEWe37Ew==";
+        url = "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.1.0.tgz";
+        sha512 = "Ero1z9fnu65WxzrAzw9/I5+kfbT7HkyV9F9MTxYpnk7zOAAYvR4qSCkc/yNEJPr4kN8NvcY8CifNEQtORxkVXg==";
       };
     };
-    "@lerna/prerelease-id-from-version-5.0.0" = {
+    "@lerna/prerelease-id-from-version-5.1.0" = {
       name = "_at_lerna_slash_prerelease-id-from-version";
       packageName = "@lerna/prerelease-id-from-version";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.0.0.tgz";
-        sha512 = "bUZwyx6evRn2RxogOQXaiYxRK1U/1Mh/KLO4n49wUhqb8S8Vb9aG3+7lLOgg4ZugHpj9KAlD3YGEKvwYQiWzhg==";
+        url = "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.0.tgz";
+        sha512 = "sNjthszV+VkBVHPfTVquxoUQ+p8mtBxPFFoLjK+Bq+57xdmV6VGhZ/QL8HTQ7H7y8KzWuqVNMl0Z7G6PZXON9g==";
       };
     };
-    "@lerna/profiler-5.0.0" = {
+    "@lerna/profiler-5.1.0" = {
       name = "_at_lerna_slash_profiler";
       packageName = "@lerna/profiler";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.0.0.tgz";
-        sha512 = "hFX+ZtoH7BdDoGI+bqOYaSptJTFI58wNK9qq/pHwL5ksV7vOhxP2cQAuo1SjgBKHGl0Ex/9ZT080YVV4jP1ehw==";
+        url = "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.1.0.tgz";
+        sha512 = "/CCYMtkF2xj3kjD9w29k7TDe40K/gk7goR2fvUf/6akPBG2KhFY+sQ0TQ2Ojnaym75OAn4WXta+FLdTQSdAFRQ==";
       };
     };
-    "@lerna/project-5.0.0" = {
+    "@lerna/project-5.1.0" = {
       name = "_at_lerna_slash_project";
       packageName = "@lerna/project";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/project/-/project-5.0.0.tgz";
-        sha512 = "+izHk7D/Di2b0s69AzKzAa/qBz32H9s67oN9aKntrjNylpY7iN5opU157l60Kh4TprYHU5bLisqzFLZsHHADGw==";
+        url = "https://registry.npmjs.org/@lerna/project/-/project-5.1.0.tgz";
+        sha512 = "QLrF+2CzPjP3ew8MJejI4pupRZDJvhpTDx/2f1sSfmHOiPsyxmx7DNhc/p9780MOhrSlokqDNfXDKph8bN3TrQ==";
       };
     };
-    "@lerna/prompt-5.0.0" = {
+    "@lerna/prompt-5.1.0" = {
       name = "_at_lerna_slash_prompt";
       packageName = "@lerna/prompt";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.0.0.tgz";
-        sha512 = "cq2k04kOPY1yuJNHJn4qfBDDrCi9PF4Q228JICa6bxaONRf/C/TRsEQXHVIdlax8B3l53LnlGv5GECwRuvkQbA==";
+        url = "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.1.0.tgz";
+        sha512 = "CiQEtULXK3zF+mwP5bKhXvPKpw2fqXxLZ4InfokYVcLcR3PgUyu8wmmDxFqkaG7hZnBcDPsn/QAE2P9yYvvoDQ==";
       };
     };
-    "@lerna/publish-5.0.0" = {
+    "@lerna/publish-5.1.0" = {
       name = "_at_lerna_slash_publish";
       packageName = "@lerna/publish";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/publish/-/publish-5.0.0.tgz";
-        sha512 = "QEWFtN8fW1M+YXEQOWb2XBBCT137CrwHYK29ojMXW9HShvSZezf8Q/niH91nZ4kIhWdpOGz4w3rKopsumAM5SA==";
+        url = "https://registry.npmjs.org/@lerna/publish/-/publish-5.1.0.tgz";
+        sha512 = "7WlmuY5SxlFQz80EAziv0vgO0wbUufns9RYZZv8QKM6c17tBJJbRxguc3oxCx8m7V3BvrBeyvLBZUJhIKcyGNw==";
       };
     };
-    "@lerna/pulse-till-done-5.0.0" = {
+    "@lerna/pulse-till-done-5.1.0" = {
       name = "_at_lerna_slash_pulse-till-done";
       packageName = "@lerna/pulse-till-done";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.0.0.tgz";
-        sha512 = "qFeVybGIZbQSWKasWIzZmHsvCQMC/AwTz5B44a0zTt5eSNQuI65HRpKKUgmFFu/Jzd7u+yp7eP+NQ53gjOcQlQ==";
+        url = "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.1.0.tgz";
+        sha512 = "CSYYtWk2/FMx7D7J/91MKstX+/zHdhtxAnSl+c+MDcf8gOtrcEdI41h4UDJi/q7E1STWvIhcq5OmFTOipoP37w==";
       };
     };
-    "@lerna/query-graph-5.0.0" = {
+    "@lerna/query-graph-5.1.0" = {
       name = "_at_lerna_slash_query-graph";
       packageName = "@lerna/query-graph";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.0.0.tgz";
-        sha512 = "C/HXssBI8DVsZ/7IDW6JG9xhoHtWywi3L5oZB9q84MBYpQ9otUv6zbB+K4JCj7w9WHcuFWe2T/mc9wsaFuvB5g==";
+        url = "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.1.0.tgz";
+        sha512 = "O/c7frgoQFzmgOOWqm+EcY8s2zDKZBq3zyoy5xCbx5ohG5OBA7pHti3SvOP2Ex+YnAwl50r6Eb9Jdixo5ydWHg==";
       };
     };
-    "@lerna/resolve-symlink-5.0.0" = {
+    "@lerna/resolve-symlink-5.1.0" = {
       name = "_at_lerna_slash_resolve-symlink";
       packageName = "@lerna/resolve-symlink";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.0.0.tgz";
-        sha512 = "O1EMQh3O3nKjLyI2guCCaxmi9xzZXpiMZhrz2ki5ENEDB2N1+f7cZ2THT0lEOIkLRuADI6hrzoN1obJ+TTk+KQ==";
+        url = "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.1.0.tgz";
+        sha512 = "dNIdtQMgsTLkeAZ5U7VH2oPt/ha81XgEiutIvgjjQH87Y5lYRNkX++ahN2/ccnDbv4aPf0tMxFEtRU6Jbh88Lw==";
       };
     };
-    "@lerna/rimraf-dir-5.0.0" = {
+    "@lerna/rimraf-dir-5.1.0" = {
       name = "_at_lerna_slash_rimraf-dir";
       packageName = "@lerna/rimraf-dir";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.0.0.tgz";
-        sha512 = "hWJg/13CiSUrWWEek3B/A1mkvBbcPvG5z69/Ugyerdpzlw44ubf02MAZ0/kXPJjkICI2hMrS07YotQ60LdYpCw==";
+        url = "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.1.0.tgz";
+        sha512 = "RkLxq2SveLuhEFeVb6tRBzdxiOVJcV56CfcKupCAHmhewEI2At+T/mbqTSzIr+dX3tIWni1uDg2ASWdfgQbGZw==";
       };
     };
-    "@lerna/run-5.0.0" = {
+    "@lerna/run-5.1.0" = {
       name = "_at_lerna_slash_run";
       packageName = "@lerna/run";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run/-/run-5.0.0.tgz";
-        sha512 = "8nBZstqKSO+7wHlKk1g+iexSYRVVNJq/u5ZbAzBiHNrABtqA6/0G7q9vsAEMsnPZ8ARAUYpwvbfKTipjpWH0VA==";
+        url = "https://registry.npmjs.org/@lerna/run/-/run-5.1.0.tgz";
+        sha512 = "RoBRZCoGklAbCvhPXh9CjUkB0IhdR0FciiFXlB+Wl1y6LZeNB5QEztCArrWiMO17gpa8+ZWAguPaWXhOcH1LZw==";
       };
     };
-    "@lerna/run-lifecycle-5.0.0" = {
+    "@lerna/run-lifecycle-5.1.0" = {
       name = "_at_lerna_slash_run-lifecycle";
       packageName = "@lerna/run-lifecycle";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.0.0.tgz";
-        sha512 = "36mAm9rC5DSliFShI0Y4ICjgrJXdIIVt7VW9rdbdJ8/XYjRHDzhGPB9Sc1neJOVlGL4DmaArvh5tGgo62KPJYQ==";
+        url = "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.1.0.tgz";
+        sha512 = "CJ9LunNtzsLIt9wemwirBaIGGmwrHuEWWa7wIqPKee0R3LZJoUP471A/xK7eAkzmo2rty1JriMPsqg2SyfFDZg==";
       };
     };
-    "@lerna/run-topologically-5.0.0" = {
+    "@lerna/run-topologically-5.1.0" = {
       name = "_at_lerna_slash_run-topologically";
       packageName = "@lerna/run-topologically";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.0.0.tgz";
-        sha512 = "B2s1N/+r3sfPOLRA2svNk+C52JpXQleMuGap0yhOx5mZzR1M2Lo4vpe9Ody4hCvXQjfdLx/U342fxVmgugUtfQ==";
+        url = "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.1.0.tgz";
+        sha512 = "CZs9GhiTVkfPsMivOzfrf8eWzSoKxJY57arwfPwSFmUdUTok6uZKmC4bo6uqd1eyRGIba6j03ivg0ehUbr7APQ==";
       };
     };
-    "@lerna/symlink-binary-5.0.0" = {
+    "@lerna/symlink-binary-5.1.0" = {
       name = "_at_lerna_slash_symlink-binary";
       packageName = "@lerna/symlink-binary";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.0.0.tgz";
-        sha512 = "uYyiiNjkdL1tWf8MDXIIyCa/a2gmYaUxagqMgEZ4wRtOk+PDypDwMUFVop/EQtUWZqG5CAJBJYOztG3DdapTbA==";
+        url = "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.1.0.tgz";
+        sha512 = "D357qFkPhADU/bjK3vSPydG85gQGspgGg83EupAyocCPUyH0vE2YGNF713CXRTaMOkV8oxoH/QDcUVmqGybTVA==";
       };
     };
-    "@lerna/symlink-dependencies-5.0.0" = {
+    "@lerna/symlink-dependencies-5.1.0" = {
       name = "_at_lerna_slash_symlink-dependencies";
       packageName = "@lerna/symlink-dependencies";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.0.0.tgz";
-        sha512 = "wlZGOOB87XMy278hpF4fOwGNnjTXf1vJ/cFHIdKsJAiDipyhtnuCiJLBDPh4NzEGb02o4rhaqt8Nl5yWRu9CNA==";
+        url = "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.0.tgz";
+        sha512 = "DN+Zk/aAbfhDx5dxbccb0n6AFj27cO3Tu+RITmzt1N4KfIrVpcsrxRN+dt+pc945SE8ccdO5vkKrybijjlGb4Q==";
       };
     };
-    "@lerna/temp-write-5.0.0" = {
+    "@lerna/temp-write-5.1.0" = {
       name = "_at_lerna_slash_temp-write";
       packageName = "@lerna/temp-write";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.0.0.tgz";
-        sha512 = "JOkRR6xyASuBy1udyS/VD52Wgywnz7cSKppD+QKIDseNzTq27I9mNmb702BSXNXIdD19lLVQ7q6WoAlpnelnZg==";
+        url = "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.1.0.tgz";
+        sha512 = "IvtYcrnWISEe9nBjhvq+o1mfn85Kup6rd+/PHb3jFmxx7E6ON4BnuqGPOOjmEjboMIRaopWQrkuCoIVotP+sDw==";
       };
     };
-    "@lerna/timer-5.0.0" = {
+    "@lerna/timer-5.1.0" = {
       name = "_at_lerna_slash_timer";
       packageName = "@lerna/timer";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/timer/-/timer-5.0.0.tgz";
-        sha512 = "p2vevkpB6V/b0aR8VyMLDfg0Arp9VvMxcZOEu+IfZ9XKTtnbwjWPHKUOS34x/VGa6bnOIWjE046ixWymOs/fTw==";
+        url = "https://registry.npmjs.org/@lerna/timer/-/timer-5.1.0.tgz";
+        sha512 = "ukVB3eDBKjZd8TjOSB3uHJWpPBtf7Ryk5AfA1yAotVd0Uk4wztGE6ULpGteAAS4AyJ1Tw9Ux7OLWu6QGVNvYLQ==";
       };
     };
-    "@lerna/validation-error-5.0.0" = {
+    "@lerna/validation-error-5.1.0" = {
       name = "_at_lerna_slash_validation-error";
       packageName = "@lerna/validation-error";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.0.0.tgz";
-        sha512 = "fu/MhqRXiRQM2cirP/HoSkfwc5XtJ21G60WHv74RnanKBqWEZAUALWa3MQN2sYhVV/FpDW3GLkO008IW5NWzdg==";
+        url = "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.1.0.tgz";
+        sha512 = "Csogf+BzsMa8vxj51KcHIg3RVWr0FbIkRXXALRT5c/shUsV7NClV/cpz35r3DzBIXdh168LftHBW49wxPXX5uw==";
       };
     };
-    "@lerna/version-5.0.0" = {
+    "@lerna/version-5.1.0" = {
       name = "_at_lerna_slash_version";
       packageName = "@lerna/version";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/version/-/version-5.0.0.tgz";
-        sha512 = "M8KvdyG5kR/d3wgg5S46Q2YMf0L9iw9MiumTvlDP4ckysTt+04kS74Vp4+aClgPM4xaoI5OuMrs6wy5ICcd3Pw==";
+        url = "https://registry.npmjs.org/@lerna/version/-/version-5.1.0.tgz";
+        sha512 = "KXvrudKfAUl/Fx1QkZXIaQ62O6/hcUZO48vCDG5ngEIfCUYxSneNgC/mp1J1rh3qC5ame9T3crP//ixYjGyHqQ==";
       };
     };
-    "@lerna/write-log-file-5.0.0" = {
+    "@lerna/write-log-file-5.1.0" = {
       name = "_at_lerna_slash_write-log-file";
       packageName = "@lerna/write-log-file";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.0.0.tgz";
-        sha512 = "kpPNxe9xm36QbCWY7DwO96Na6FpCHzZinJtw6ttBHslIcdR38lZuCp+/2KfJcVsRIPNOsp1VvgP7EZIKiBhgjw==";
+        url = "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.1.0.tgz";
+        sha512 = "azYryoUcNnpKmV09PhyvkBManGvdWWdY3Zb6MGF73/mDeM4G9UoM/6mpNrcPwS3oEzKrc0hTwquuP3QyPiSuWw==";
       };
     };
     "@lezer/common-0.15.12" = {
@@ -5827,13 +5827,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.267" = {
+    "@microsoft/load-themed-styles-1.10.268" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.267";
+      version = "1.10.268";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.267.tgz";
-        sha512 = "KlmENglyBXXtPfou+1kUtSIHZHmJrmDHYMvTXe82Ibucv+bpFg3xt3qd6UnqqwtaIM3SA+nKu8AhaL9FX6uk4A==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.268.tgz";
+        sha512 = "2n4beGOWbxJp6D+eatPWocpywcJUlNCtkjQ6k7RSHiLWuv23HetqmESqrqZTTDjQ3JG0jOv+wVkXVNqXcfVlPw==";
       };
     };
     "@mischnic/json-sourcemap-0.1.0" = {
@@ -6727,13 +6727,13 @@ let
         sha512 = "hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==";
       };
     };
-    "@opentelemetry/semantic-conventions-1.3.0" = {
+    "@opentelemetry/semantic-conventions-1.3.1" = {
       name = "_at_opentelemetry_slash_semantic-conventions";
       packageName = "@opentelemetry/semantic-conventions";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.0.tgz";
-        sha512 = "7lmGpLL/7EHQcLVBxxOesgQQS7JSxzF/Xqx7VNMxAQbo14dzJEX6Ks0hb4LHqEMpCrKpErWXi4JxYCGrRJgx9A==";
+        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz";
+        sha512 = "wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA==";
       };
     };
     "@ot-builder/bin-composite-types-1.5.2" = {
@@ -7717,22 +7717,22 @@ let
         sha512 = "DiIjtous4XPuR2deTctD3/RVZy/vRzVYBgYYvHV313MmTfkbVP60qLH5txrT3/bYNvnb0poNDelLS6U0kqlvHA==";
       };
     };
-    "@prisma/engines-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a" = {
+    "@prisma/engines-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a";
+      version = "3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a.tgz";
-        sha512 = "LwZvI3FY6f43xFjQNRuE10JM5R8vJzFTSmbV9X0Wuhv9kscLkjRlZt0BEoiHmO+2HA3B3xxbMfB5du7ZoSFXGg==";
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372.tgz";
+        sha512 = "S5T0NuVF2+NoKoxY5bN6O/7avv4ifcjqqk5+JFZ6C4g+P7JMM3nY0wGBPI+46A8yGIDsyyFmvFTYiIDsEUwUeQ==";
       };
     };
-    "@prisma/prisma-fmt-wasm-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a" = {
+    "@prisma/prisma-fmt-wasm-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372" = {
       name = "_at_prisma_slash_prisma-fmt-wasm";
       packageName = "@prisma/prisma-fmt-wasm";
-      version = "3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a";
+      version = "3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a.tgz";
-        sha512 = "YwiGDAfUqLPz1NIyd6y6LyT1ViiTCXNx7AFWuMwb7aGhBmzhfuTeo/MQpzlA9x90wKh2ACJ4Fa3nZS5Wvr8xbg==";
+        url = "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372.tgz";
+        sha512 = "WZPmtF1rejy5aWyldms+zwP2IvI/g/j09fOD9+PnJJYAzgOXqGcp9lp0StTWZI0mZ1xNMlF5EIbcQHTWxGDYnw==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -9625,15 +9625,6 @@ let
         sha512 = "ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==";
       };
     };
-    "@types/node-17.0.21" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "17.0.21";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz";
-        sha512 = "DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==";
-      };
-    };
     "@types/node-17.0.23" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -10273,15 +10264,6 @@ let
         sha512 = "JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==";
       };
     };
-    "@types/ws-8.5.2" = {
-      name = "_at_types_slash_ws";
-      packageName = "@types/ws";
-      version = "8.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-8.5.2.tgz";
-        sha512 = "VXI82ykONr5tacHEojnErTQk+KQSoYbW1NB6iz6wUwrNd+BqfkfggQNoNdCqhJSzbNumShPERbM+Pc5zpfhlbw==";
-      };
-    };
     "@types/ws-8.5.3" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
@@ -10354,13 +10336,13 @@ let
         sha512 = "aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==";
       };
     };
-    "@typescript-eslint/eslint-plugin-5.27.0" = {
+    "@typescript-eslint/eslint-plugin-5.27.1" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz";
-        sha512 = "DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz";
+        sha512 = "6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==";
       };
     };
     "@typescript-eslint/experimental-utils-4.33.0" = {
@@ -10381,13 +10363,13 @@ let
         sha512 = "ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==";
       };
     };
-    "@typescript-eslint/parser-5.27.0" = {
+    "@typescript-eslint/parser-5.27.1" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz";
-        sha512 = "8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz";
+        sha512 = "7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==";
       };
     };
     "@typescript-eslint/scope-manager-4.33.0" = {
@@ -10399,22 +10381,22 @@ let
         sha512 = "5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==";
       };
     };
-    "@typescript-eslint/scope-manager-5.27.0" = {
+    "@typescript-eslint/scope-manager-5.27.1" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz";
-        sha512 = "VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz";
+        sha512 = "fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==";
       };
     };
-    "@typescript-eslint/type-utils-5.27.0" = {
+    "@typescript-eslint/type-utils-5.27.1" = {
       name = "_at_typescript-eslint_slash_type-utils";
       packageName = "@typescript-eslint/type-utils";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz";
-        sha512 = "vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz";
+        sha512 = "+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==";
       };
     };
     "@typescript-eslint/types-4.33.0" = {
@@ -10426,13 +10408,13 @@ let
         sha512 = "zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==";
       };
     };
-    "@typescript-eslint/types-5.27.0" = {
+    "@typescript-eslint/types-5.27.1" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz";
-        sha512 = "lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz";
+        sha512 = "LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==";
       };
     };
     "@typescript-eslint/typescript-estree-4.33.0" = {
@@ -10444,22 +10426,22 @@ let
         sha512 = "rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==";
       };
     };
-    "@typescript-eslint/typescript-estree-5.27.0" = {
+    "@typescript-eslint/typescript-estree-5.27.1" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz";
-        sha512 = "QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz";
+        sha512 = "DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==";
       };
     };
-    "@typescript-eslint/utils-5.27.0" = {
+    "@typescript-eslint/utils-5.27.1" = {
       name = "_at_typescript-eslint_slash_utils";
       packageName = "@typescript-eslint/utils";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz";
-        sha512 = "nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz";
+        sha512 = "mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==";
       };
     };
     "@typescript-eslint/visitor-keys-4.33.0" = {
@@ -10471,13 +10453,13 @@ let
         sha512 = "uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==";
       };
     };
-    "@typescript-eslint/visitor-keys-5.27.0" = {
+    "@typescript-eslint/visitor-keys-5.27.1" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "5.27.0";
+      version = "5.27.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz";
-        sha512 = "46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz";
+        sha512 = "xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==";
       };
     };
     "@ungap/promise-all-settled-1.1.2" = {
@@ -10543,13 +10525,13 @@ let
         sha512 = "klR5oN7S3WJsZz0r6Xsq7o8YlFEyU3/00VmlpZzIPVFzKfbcEjXo/sVR5lQBUqNKuOzhcbxaFtzW9aOyHjmPYA==";
       };
     };
-    "@vercel/node-2.0.0" = {
+    "@vercel/node-2.0.1" = {
       name = "_at_vercel_slash_node";
       packageName = "@vercel/node";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/node/-/node-2.0.0.tgz";
-        sha512 = "wGEZ/Ge2GrmcBQmuJHFq2h0gTy4XOn2oYJyceVnOsMPwSZXMdZet2E3xSff5VfmrK2yGxO4mUIBeYjsPH+ZwWg==";
+        url = "https://registry.npmjs.org/@vercel/node/-/node-2.0.1.tgz";
+        sha512 = "49VaRMz7R5H1I0fjLowF+y1rM7f7maLxxXZV2cKYZgkw8/6KnHOopfLtLWAVoiY8rIyLmGSxM1zT4ZrlyKMdww==";
       };
     };
     "@vercel/node-bridge-3.0.0" = {
@@ -10732,40 +10714,40 @@ let
         sha512 = "KmJUazIEZWhy0UaFHV5Uy8AXpTqJgCPizEHhtxs3f8mIkUnwWjcQFG7FGfsAW7RgsN8hwcSZ5ZFjmXhllVwrkw==";
       };
     };
-    "@vue/compiler-core-3.2.36" = {
+    "@vue/compiler-core-3.2.37" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.36.tgz";
-        sha512 = "bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz";
+        sha512 = "81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==";
       };
     };
-    "@vue/compiler-dom-3.2.36" = {
+    "@vue/compiler-dom-3.2.37" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz";
-        sha512 = "tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz";
+        sha512 = "yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==";
       };
     };
-    "@vue/compiler-sfc-3.2.36" = {
+    "@vue/compiler-sfc-3.2.37" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz";
-        sha512 = "AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz";
+        sha512 = "+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==";
       };
     };
-    "@vue/compiler-ssr-3.2.36" = {
+    "@vue/compiler-ssr-3.2.37" = {
       name = "_at_vue_slash_compiler-ssr";
       packageName = "@vue/compiler-ssr";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz";
-        sha512 = "+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw==";
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz";
+        sha512 = "7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==";
       };
     };
     "@vue/component-compiler-utils-3.3.0" = {
@@ -10804,40 +10786,40 @@ let
         sha512 = "LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==";
       };
     };
-    "@vue/reactivity-3.2.36" = {
+    "@vue/reactivity-3.2.37" = {
       name = "_at_vue_slash_reactivity";
       packageName = "@vue/reactivity";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.36.tgz";
-        sha512 = "c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA==";
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz";
+        sha512 = "/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==";
       };
     };
-    "@vue/reactivity-transform-3.2.36" = {
+    "@vue/reactivity-transform-3.2.37" = {
       name = "_at_vue_slash_reactivity-transform";
       packageName = "@vue/reactivity-transform";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz";
-        sha512 = "Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA==";
+        url = "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz";
+        sha512 = "IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==";
       };
     };
-    "@vue/runtime-core-3.2.36" = {
+    "@vue/runtime-core-3.2.37" = {
       name = "_at_vue_slash_runtime-core";
       packageName = "@vue/runtime-core";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.36.tgz";
-        sha512 = "PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ==";
+        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz";
+        sha512 = "JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==";
       };
     };
-    "@vue/shared-3.2.36" = {
+    "@vue/shared-3.2.37" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.2.36";
+      version = "3.2.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.36.tgz";
-        sha512 = "JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz";
+        sha512 = "4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==";
       };
     };
     "@vue/web-component-wrapper-1.3.0" = {
@@ -13351,13 +13333,13 @@ let
         sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
       };
     };
-    "arg-5.0.1" = {
+    "arg-5.0.2" = {
       name = "arg";
       packageName = "arg";
-      version = "5.0.1";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz";
-        sha512 = "e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==";
+        url = "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz";
+        sha512 = "PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==";
       };
     };
     "argparse-1.0.10" = {
@@ -14242,6 +14224,15 @@ let
         sha512 = "spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==";
       };
     };
+    "async-3.2.4" = {
+      name = "async";
+      packageName = "async";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-3.2.4.tgz";
+        sha512 = "iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==";
+      };
+    };
     "async-append-only-log-3.1.4" = {
       name = "async-append-only-log";
       packageName = "async-append-only-log";
@@ -14593,13 +14584,22 @@ let
         sha512 = "545VawhsCQ7yEx9jZKV0hTTW3FS/waycISWMvnNwqRfpU9o4FQ4DSu3je7ekn5yFKM+91dxJC+IfJgtIV8WaUw==";
       };
     };
-    "aws-sdk-2.1148.0" = {
+    "aws-sdk-2.1149.0" = {
+      name = "aws-sdk";
+      packageName = "aws-sdk";
+      version = "2.1149.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1149.0.tgz";
+        sha512 = "wNb3YMLhXoK4UkjXhGAWMjRdrXT/Zhv3KdgPmd7VWlr3nXMViLwVJEEYdVmALUdkzCefdzY1JUTRLMgCxtn9EA==";
+      };
+    };
+    "aws-sdk-2.1150.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1148.0";
+      version = "2.1150.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1148.0.tgz";
-        sha512 = "FUYAyveKmS5eqIiGQgrGVsLZwwtI+K6S6Gz8oJf56pgypZCo9dV+cXO4aaS+vN0+LSmGh6dSKc6G8h8FYASIJg==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1150.0.tgz";
+        sha512 = "SNbVXNlFGNFVcztPk7iWnjtGL+Afm1nyidpvX2rEqYdap2Ow57njZJXvghQUici4Xhqe+BUuG+x1orlFjapo4g==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -15700,13 +15700,13 @@ let
         sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
       };
     };
-    "bipf-1.6.5" = {
+    "bipf-1.9.0" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.6.5";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.6.5.tgz";
-        sha512 = "d3OnzFUE2G1nwJYP2pPGzLUz6PrMRWgRKi9ssfMN1GPDVCl8qGVDq+c+8I5p8Nnog0vZN4IOq1ojUufHfFRk8w==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.9.0.tgz";
+        sha512 = "B/d8IADy5Y4v/CTMRWxLD8ONd2qRkF+2DbZLeIUql7PukfAiBhlGlw5qJcIU03l21qMEyvbi4PdntatH+j40vA==";
       };
     };
     "bit-field-1.5.3" = {
@@ -16330,13 +16330,13 @@ let
         sha512 = "RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==";
       };
     };
-    "bonjour-service-1.0.12" = {
+    "bonjour-service-1.0.13" = {
       name = "bonjour-service";
       packageName = "bonjour-service";
-      version = "1.0.12";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.12.tgz";
-        sha512 = "pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw==";
+        url = "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz";
+        sha512 = "LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==";
       };
     };
     "boolbase-1.0.0" = {
@@ -16843,13 +16843,13 @@ let
         sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
       };
     };
-    "browserslist-4.20.3" = {
+    "browserslist-4.20.4" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.20.3";
+      version = "4.20.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz";
-        sha512 = "NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz";
+        sha512 = "ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==";
       };
     };
     "brq-0.1.8" = {
@@ -17978,13 +17978,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001346" = {
+    "caniuse-lite-1.0.30001349" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001346";
+      version = "1.0.30001349";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001346.tgz";
-        sha512 = "q6ibZUO2t88QCIPayP/euuDREq+aMAxFE5S70PkrLh0iTDj/zEhgvJRKC2+CvXY6EWc6oQwUR48lL5vCW6jiXQ==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001349.tgz";
+        sha512 = "VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw==";
       };
     };
     "canvas-2.9.1" = {
@@ -18149,22 +18149,22 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-2.3.17" = {
+    "cdk8s-2.3.19" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "2.3.17";
+      version = "2.3.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.3.17.tgz";
-        sha512 = "NOQwj7YlbGd0ySr9E0VNCY3zoSv26Ijnq8o1tunNZziLprghnIGQvqVYScKlWGukm7spZ9X659xjVg+BupLEbQ==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.3.19.tgz";
+        sha512 = "TxAMyZPDMbglBlJMS0X1keCbKm2ObWI9keQKgVrtHt24REdYoaMrwJ4ap+IqweTgYGjiOs+XgStQqd7Exfrjvg==";
       };
     };
-    "cdk8s-plus-22-2.0.0-rc.7" = {
+    "cdk8s-plus-22-2.0.0-rc.11" = {
       name = "cdk8s-plus-22";
       packageName = "cdk8s-plus-22";
-      version = "2.0.0-rc.7";
+      version = "2.0.0-rc.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-2.0.0-rc.7.tgz";
-        sha512 = "GPsowxakBJndHtn11cC028Uu8pxzjMbpv4lgNk6jbvUZ9WrHv4xH7hTQ6E916IY5eG0NAqBiTRR3zih28h1Ihw==";
+        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-2.0.0-rc.11.tgz";
+        sha512 = "wxumx8Tt/ZM1EHfK9Me/1sO4wP1bD5VdbodvMdPrz8izJPghzJ496DD5b4MWtaldOK+iDMMqx/bxCCR+QOXNrQ==";
       };
     };
     "cdktf-0.11.1" = {
@@ -20840,13 +20840,13 @@ let
         sha512 = "xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==";
       };
     };
-    "constructs-10.1.27" = {
+    "constructs-10.1.31" = {
       name = "constructs";
       packageName = "constructs";
-      version = "10.1.27";
+      version = "10.1.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-10.1.27.tgz";
-        sha512 = "OZwFH5VTPlPg5/PODDhusBPfRUw2OYVamuUJsoVIxdHfb/F8KSY6d4EKcQiwSU+xSSfTRtBjGCbty/ZkMEzqfg==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-10.1.31.tgz";
+        sha512 = "rL5Vmy65kr+7n4swyEmD8gwrpiCtoUfhb1wNdg8UsdfzZT5AoU+fYx1shDOBpwAibm6yTim3Vjs/ZPR2iUFFQw==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -21741,13 +21741,13 @@ let
         sha512 = "gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==";
       };
     };
-    "create-gatsby-2.15.1" = {
+    "create-gatsby-2.16.0" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "2.15.1";
+      version = "2.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.15.1.tgz";
-        sha512 = "oFZtU5NP5jUa/A/y6p8L2pNkW+BoE0aTPTYbZ+pwQw9sE7MfYeI+t9yNDBA/9qVaaAqUt7104NkQbix/mT1GVw==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.16.0.tgz";
+        sha512 = "X/4fu+C8qBtfI9JTnnhI+zBFwe2V7uC27XEnA/9GbCp507xuiqkO6MuUJGDxdhe0cDBub+KD+3TLQ94XaXiJpg==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -23667,13 +23667,13 @@ let
         sha512 = "2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==";
       };
     };
-    "dayjs-1.11.2" = {
+    "dayjs-1.11.3" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.11.2";
+      version = "1.11.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz";
-        sha512 = "F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz";
+        sha512 = "xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==";
       };
     };
     "dayjs-1.8.36" = {
@@ -24531,13 +24531,13 @@ let
         sha512 = "bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==";
       };
     };
-    "deltachat-node-1.84.0" = {
+    "deltachat-node-1.86.0" = {
       name = "deltachat-node";
       packageName = "deltachat-node";
-      version = "1.84.0";
+      version = "1.86.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deltachat-node/-/deltachat-node-1.84.0.tgz";
-        sha512 = "/7tF4782VhWYtGgT1pbbodG0rkyhNQHhpkTLSrejJzl+PddC0CzOXYN8L7lcx5T9Pkxa3UPTsf7lDtlrNphRjg==";
+        url = "https://registry.npmjs.org/deltachat-node/-/deltachat-node-1.86.0.tgz";
+        sha512 = "mePZbE0tyYlOj7hXrQNyvMVn2NI6/K0obP9uIxZC11iTZMhFtJVUG+O18yWOLUCsDeCIDFJnrXDUc4HRbBndWw==";
       };
     };
     "denodeify-1.2.1" = {
@@ -26124,13 +26124,13 @@ let
         sha512 = "WvaW1EgRinDQ61khHFZfx30rkPQG5ItaOT0wrI7iJv9A3SbghriQGfZQfHZs25fWLBe6/vkv05LOqg6aDw6Wzw==";
       };
     };
-    "electron-to-chromium-1.4.146" = {
+    "electron-to-chromium-1.4.147" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.146";
+      version = "1.4.147";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.146.tgz";
-        sha512 = "4eWebzDLd+hYLm4csbyMU2EbBnqhwl8Oe9eF/7CBDPWcRxFmqzx4izxvHH+lofQxzieg8UbB8ZuzNTxeukzfTg==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.147.tgz";
+        sha512 = "czclPqxLMPqPMkahKcske4TaS5lcznsc26ByBlEFDU8grTBVK9C5W6K9I6oEEhm4Ai4jTihGnys90xY1yjXcRg==";
       };
     };
     "electrum-client-git+https://github.com/janoside/electrum-client" = {
@@ -26819,13 +26819,13 @@ let
         sha512 = "XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==";
       };
     };
-    "error-stack-parser-2.0.7" = {
+    "error-stack-parser-2.1.4" = {
       name = "error-stack-parser";
       packageName = "error-stack-parser";
-      version = "2.0.7";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz";
-        sha512 = "chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==";
+        url = "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz";
+        sha512 = "Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==";
       };
     };
     "errorhandler-1.5.1" = {
@@ -30914,13 +30914,13 @@ let
         sha512 = "xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==";
       };
     };
-    "fuse.js-6.4.1" = {
+    "fuse.js-6.6.2" = {
       name = "fuse.js";
       packageName = "fuse.js";
-      version = "6.4.1";
+      version = "6.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.1.tgz";
-        sha512 = "+hAS7KYgLXontDh/vqffs7wIBw0ceb9Sx8ywZQhOsiQGcSO5zInGhttWOUYQYlvV/yYMJOacQ129Xs3mP3+oZQ==";
+        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz";
+        sha512 = "cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==";
       };
     };
     "fuzzy-0.1.3" = {
@@ -30968,22 +30968,22 @@ let
         sha512 = "mDc8EQJKtxjp9PMYS3PbpjjbX3oXhBTxoGaPahw620XZBIHJ4+nvw5KN/tRtmmSDR9dypstGNvqQ3C29QGoGHQ==";
       };
     };
-    "gatsby-core-utils-3.15.0" = {
+    "gatsby-core-utils-3.16.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "3.15.0";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.15.0.tgz";
-        sha512 = "aLNrH3gGUIeD9XGk3z/27N5qaVx7y3AAgs/Vu6PJm69t25kTwuOHKNzhlnHkIZypznZkkVeN7QbHBkIKam/ZIQ==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.16.0.tgz";
+        sha512 = "cr3aIlzfzQkXSKng0dfAkg+v+Q0WOFJ1CCpM6HFvMykYtw5vSdaLxs6gwNmtPowG1wmCHkQ+pcyqppP+IdmVsg==";
       };
     };
-    "gatsby-telemetry-3.15.0" = {
+    "gatsby-telemetry-3.16.0" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "3.15.0";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.15.0.tgz";
-        sha512 = "pXHnw79qmfN5bAVkgdQMCnq7rZFxfGU1YkZJQAG+gCsLRpDgYxgxZYhkbdRJzyF8vMYiCp7HlNsCMvBA75Rpug==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.16.0.tgz";
+        sha512 = "u7s3/VoWwYO7gyqiEn7J1YiNxsdn26WSFL9egFM5jH1IMnj86fiFM4EnDfcaZ5MSTEA1dFqBa6hidwhrpv2rhw==";
       };
     };
     "gauge-1.2.7" = {
@@ -32166,15 +32166,6 @@ let
         sha512 = "wYGVAa8/sh9ggF5qWoOs6eArcAgwEPkDNvf637jHRHkMUznvs7m/Q2vrc0KLN6B8px3nnRJqJcXK4mTK6lLFmg==";
       };
     };
-    "goldengate-11.1.0" = {
-      name = "goldengate";
-      packageName = "goldengate";
-      version = "11.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.1.0.tgz";
-        sha512 = "nwrFxarqF2kxQXEzgcfvfqh64eokhcfyPl5i/RXGueRwUUSV7XW64A4BehcPcjKMKMxPM9RZarBTwa4vdnSZMA==";
-      };
-    };
     "goldengate-11.2.1" = {
       name = "goldengate";
       packageName = "goldengate";
@@ -32391,15 +32382,6 @@ let
         sha512 = "8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==";
       };
     };
-    "grammy-1.8.2" = {
-      name = "grammy";
-      packageName = "grammy";
-      version = "1.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/grammy/-/grammy-1.8.2.tgz";
-        sha512 = "mD3E/QxYJYfT8jPxWDxJPszVQteMtPoLHAMvXT1EsjEBvxCbrFVg5U3TKaA6Xgl6fhinBcv2yFT6tWw3h+xJzQ==";
-      };
-    };
     "grammy-1.8.3" = {
       name = "grammy";
       packageName = "grammy";
@@ -35595,15 +35577,6 @@ let
         sha512 = "0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==";
       };
     };
-    "inquirer-8.2.2" = {
-      name = "inquirer";
-      packageName = "inquirer";
-      version = "8.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-8.2.2.tgz";
-        sha512 = "pG7I/si6K/0X7p1qU+rfWnpTE1UIkTONN1wxtzh0d+dHXtT/JG6qBgLxoyHVsQa8cFABxAPh0pD6uUUHiAoaow==";
-      };
-    };
     "inquirer-8.2.4" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -38187,13 +38160,13 @@ let
         sha512 = "Ni9PffhJtYtdD7VwxH6V2MnievekGfUefosGCHadog0/jAevRu6HPjYeMHbUemn0IPE8d4wGa8UsOGsX+iKy2g==";
       };
     };
-    "jpeg-js-0.4.3" = {
+    "jpeg-js-0.4.4" = {
       name = "jpeg-js";
       packageName = "jpeg-js";
-      version = "0.4.3";
+      version = "0.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz";
-        sha512 = "ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==";
+        url = "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz";
+        sha512 = "WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==";
       };
     };
     "jpeg-turbo-0.4.0" = {
@@ -38602,13 +38575,13 @@ let
         sha512 = "aJgfBwn3srai/4HGwYx5si+W4kuzaQh2/1xCzgpiOKwu/n0UZg0IB7z59IG6HQ/G5Yfu8Mc6AEfjAsi0kj2dbA==";
       };
     };
-    "jsii-srcmak-0.1.581" = {
+    "jsii-srcmak-0.1.583" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.581";
+      version = "0.1.583";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.581.tgz";
-        sha512 = "Jcq1NJWZ4TaQDm/Awrh5uW8WwyPzLlz4nKEG5yKVCFE3eIBu2X0On39TFDoxWRICNe2bln/0vyja2J/t40mH9g==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.583.tgz";
+        sha512 = "xuNRWTcnjLqJyEWDY5CBnK4eg5KUXGVkQiTFJs0YQOEfw0MLo5RzHrIlG/XST30wF0vkuPccSHVnjCIpUbGjzQ==";
       };
     };
     "json-bigint-1.0.0" = {
@@ -38899,13 +38872,13 @@ let
         sha512 = "YRZbUnyaJZLZUJSRi2G/MqahCyRv9n/ds+4oIetjDF3jWQA7AG7iSeKTiZiCNqtMZM7HDyt0e/W6lEnoGEmMGA==";
       };
     };
-    "json2jsii-0.3.31" = {
+    "json2jsii-0.3.33" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.3.31";
+      version = "0.3.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.3.31.tgz";
-        sha512 = "KcemeN9+s2gZj7Di2Xp05TSEx1U64SiBvOq91vKlLmRvpWxtL7gGjnOzZhHdlbL4xSUQkufLg/T3ZcoR1ZxmQw==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.3.33.tgz";
+        sha512 = "yD0aMAWTRmsdM+n7WyCRg17/TvY/O9+/dI1245scj1nGd1KnK1SJrR307N9G9625+/NzFFc2E87CwPLSAhpg5A==";
       };
     };
     "json3-3.2.6" = {
@@ -40510,15 +40483,6 @@ let
         sha512 = "qKbf39l3k4xoY8ia0uDOvUkw8Zm3hlfiSrZasVdELlo4TJvrfZmHF5YadlWHdYFz9zFEeF4jINL3KQKGcYwliQ==";
       };
     };
-    "lightning-5.8.2" = {
-      name = "lightning";
-      packageName = "lightning";
-      version = "5.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-5.8.2.tgz";
-        sha512 = "ryJlD9qhbUSq4ZS6Q0WXnTgmj3IMqN1iBfUJoGAMzSbSGZAS8E8eejci88naBbbDA0N34hALpSsa5Ok7JayAdQ==";
-      };
-    };
     "lightning-5.9.0" = {
       name = "lightning";
       packageName = "lightning";
@@ -40771,15 +40735,6 @@ let
         sha512 = "gspWk34tDANhjn+brdqZstJMptGiwj4qFNVg0Zey9ds+BUlif+Lgf5szrfOVzZ8gVRkk1Lgbz7i78+V7YK7SCA==";
       };
     };
-    "ln-accounting-5.0.6" = {
-      name = "ln-accounting";
-      packageName = "ln-accounting";
-      version = "5.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ln-accounting/-/ln-accounting-5.0.6.tgz";
-        sha512 = "ep+JDvgqQTINsUskIAlLgXE2mVsR01Atl0kFbd5D41RjCvr6tnTGocKG5CSxmp5USIpQnY2Jan1VQkXjrLukBg==";
-      };
-    };
     "ln-accounting-5.0.7" = {
       name = "ln-accounting";
       packageName = "ln-accounting";
@@ -40843,15 +40798,6 @@ let
         sha512 = "cmPDZUENkwB3Wvef16qvpYgpyEFE8eSpdkf00eMIWgUWqMcw4YYxMYrHlMvq0mELcyzQRmYld5yXUAQdQ43VAw==";
       };
     };
-    "ln-service-53.9.3" = {
-      name = "ln-service";
-      packageName = "ln-service";
-      version = "53.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.9.3.tgz";
-        sha512 = "vB7pnTJveZSMHbyO6qyGbxNqo+rNTYexb3PONon2+Ow4fBUQW5eeBTj+LguuQdN7AgpXX/PHZUQM0TPFeHlVWw==";
-      };
-    };
     "ln-sync-3.12.0" = {
       name = "ln-sync";
       packageName = "ln-sync";
@@ -40870,13 +40816,13 @@ let
         sha512 = "Wr1g/H0Vi322P7oLmSksNJxSgDbmyIAuVwSwHbo+tVpDRdJUSw/RxhRquLdFz/8ienXm2S9ylcaI8e21Xh6xJA==";
       };
     };
-    "ln-telegram-3.21.5" = {
+    "ln-telegram-3.22.1" = {
       name = "ln-telegram";
       packageName = "ln-telegram";
-      version = "3.21.5";
+      version = "3.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.21.5.tgz";
-        sha512 = "/x9yM8h9LyHMwZL/mjV95rS6zpKZDgATtSiPwYlsh+ZhAswVk3jcitgLckIJHV6I9kzgZb61ZIbPCk6o530MJQ==";
+        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.22.1.tgz";
+        sha512 = "chYAssyd0UN97gCIoN1WDm4Ymlhs1xGIIsl9F5QHYV/ogpSZPsWHWyDPnQPMNhC3ik27H+LD5R7YjmQj8fEPlA==";
       };
     };
     "load-bmfont-1.4.1" = {
@@ -42869,13 +42815,13 @@ let
         sha512 = "zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==";
       };
     };
-    "luxon-2.3.2" = {
+    "luxon-2.4.0" = {
       name = "luxon";
       packageName = "luxon";
-      version = "2.3.2";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/luxon/-/luxon-2.3.2.tgz";
-        sha512 = "MlAQQVMFhGk4WUA6gpfsy0QycnKP0+NlCBJRVRNPxxSIbjrCbQ65nrpJD3FVyJNZLuJ0uoqL57ye6BmDYgHaSw==";
+        url = "https://registry.npmjs.org/luxon/-/luxon-2.4.0.tgz";
+        sha512 = "w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA==";
       };
     };
     "lzma-native-8.0.6" = {
@@ -45812,13 +45758,13 @@ let
         sha512 = "3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==";
       };
     };
-    "mongodb-4.6.0" = {
+    "mongodb-4.7.0" = {
       name = "mongodb";
       packageName = "mongodb";
-      version = "4.6.0";
+      version = "4.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mongodb/-/mongodb-4.6.0.tgz";
-        sha512 = "1gsxVXmjFTPJ+CkMG9olE4bcVsyY8lBJN9m5B5vj+LZ7wkBqq3PO8RVmNX9GwCBOBz1KV0zM00vPviUearSv7A==";
+        url = "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz";
+        sha512 = "HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==";
       };
     };
     "mongodb-connection-string-url-2.5.2" = {
@@ -50440,15 +50386,6 @@ let
         sha512 = "RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==";
       };
     };
-    "p2tr-1.3.0" = {
-      name = "p2tr";
-      packageName = "p2tr";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p2tr/-/p2tr-1.3.0.tgz";
-        sha512 = "LdnkVwu808S7ngeKpUjJZDWXsWXqMLYtTGE2pXtKjpIs5Nn2qL6d84Sh+/gxyeJHtTz0qmOEuYnFfn61/TuU0A==";
-      };
-    };
     "p2tr-1.3.1" = {
       name = "p2tr";
       packageName = "p2tr";
@@ -50980,13 +50917,13 @@ let
         sha512 = "1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==";
       };
     };
-    "parse-path-4.0.3" = {
+    "parse-path-4.0.4" = {
       name = "parse-path";
       packageName = "parse-path";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz";
-        sha512 = "9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==";
+        url = "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz";
+        sha512 = "Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==";
       };
     };
     "parse-png-2.1.0" = {
@@ -55273,13 +55210,13 @@ let
         sha512 = "U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==";
       };
     };
-    "puppeteer-14.2.1" = {
+    "puppeteer-14.3.0" = {
       name = "puppeteer";
       packageName = "puppeteer";
-      version = "14.2.1";
+      version = "14.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-14.2.1.tgz";
-        sha512 = "cIEsAbEbNYqHbkvdZY4+YSdxVwh4YFqOHSezuLpu46XAYlKkQeAMdJQ+mDAxg9v77gIn8PHJ6PlftIVsWKRACA==";
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-14.3.0.tgz";
+        sha512 = "pDtg1+vyw1UPIhUjh2/VW1HUdQnaZJHfMacrJciR3AVm+PBiqdCEcFeFb3UJ/CDEQlHOClm3/WFa7IjY25zIGg==";
       };
     };
     "purest-3.1.0" = {
@@ -55498,6 +55435,15 @@ let
         sha512 = "wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==";
       };
     };
+    "qs-6.10.5" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.10.5.tgz";
+        sha512 = "O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==";
+      };
+    };
     "qs-6.2.3" = {
       name = "qs";
       packageName = "qs";
@@ -56449,7 +56395,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/read/-/read-1.0.5.tgz";
-        sha1 = "007a3d169478aa710a491727e453effb92e76203";
+        sha512 = "hDLATrzYLoMu23c/69pMC6u3fO3Y0qLTIygJkEZHLOn+AO2gSapu6QgrgwX9ehyVtaRoZVZbF4IuiZPPRdGgdg==";
       };
     };
     "read-1.0.7" = {
@@ -56458,7 +56404,7 @@ let
       version = "1.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/read/-/read-1.0.7.tgz";
-        sha1 = "b3da19bd052431a97671d44a42634adf710b40c4";
+        sha512 = "rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==";
       };
     };
     "read-all-stream-3.1.0" = {
@@ -56467,7 +56413,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz";
-        sha1 = "35c3e177f2078ef789ee4bfafa4373074eaef4fa";
+        sha512 = "DI1drPHbmBcUDWrJ7ull/F2Qb8HkwBncVx8/RpKYFSIACYaVRQReISYPdZz/mt1y1+qMCOrfReTopERmaxtP6w==";
       };
     };
     "read-cache-1.0.0" = {
@@ -56476,7 +56422,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz";
-        sha1 = "e664ef31161166c9751cdbe8dbcf86b5fb58f774";
+        sha512 = "Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==";
       };
     };
     "read-chunk-2.1.0" = {
@@ -56485,7 +56431,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz";
-        sha1 = "6a04c0928005ed9d42e1a6ac5600e19cbc7ff655";
+        sha512 = "QQqB2O9KX/BnztP1xkTRsBxABcWHCXTqQYmEm/DdNId1nw+leKkZvV/g5oCKUrXolGtU3zouoIxMLToAYyDgDw==";
       };
     };
     "read-chunk-3.2.0" = {
@@ -56530,7 +56476,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-metadata/-/read-metadata-1.0.0.tgz";
-        sha1 = "6df9cbe51184e8ceb7d0668b40ee5191e6f3dac6";
+        sha512 = "XJdiOrkzOlIac9vXNvgp/4I8qj9EPuHlbf/eoX2rusLFjdKjp0TQ82V3cj+AFjXBzzoZ1TaqAtHnGsR3UdO1Gw==";
       };
     };
     "read-only-stream-2.0.0" = {
@@ -56539,7 +56485,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz";
-        sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
+        sha512 = "3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==";
       };
     };
     "read-package-json-3.0.1" = {
@@ -56584,7 +56530,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz";
-        sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+        sha512 = "7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==";
       };
     };
     "read-pkg-2.0.0" = {
@@ -56593,7 +56539,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz";
-        sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+        sha512 = "eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==";
       };
     };
     "read-pkg-3.0.0" = {
@@ -56602,7 +56548,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
-        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+        sha512 = "BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==";
       };
     };
     "read-pkg-5.2.0" = {
@@ -56629,7 +56575,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
-        sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+        sha512 = "WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==";
       };
     };
     "read-pkg-up-2.0.0" = {
@@ -56638,7 +56584,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
-        sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+        sha512 = "1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==";
       };
     };
     "read-pkg-up-3.0.0" = {
@@ -56647,7 +56593,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
-        sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
+        sha512 = "YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==";
       };
     };
     "read-pkg-up-4.0.0" = {
@@ -56692,7 +56638,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.2.tgz";
-        sha1 = "213ce36864fc1f0d4e98e03b9eb92c64042299d4";
+        sha512 = "El0AJ9aGxDbvoPzWx9rlD84bzmrhdoxytBbN4R4+fb9Wjx2UHdY9ghDTQPIFYw/eL7KwaKgyrTv2iH6IvCk3Ig==";
       };
     };
     "readable-stream-1.0.27-1" = {
@@ -56701,7 +56647,7 @@ let
       version = "1.0.27-1";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz";
-        sha1 = "6b67983c20357cefd07f0165001a16d710d91078";
+        sha512 = "uQE31HGhpMrqZwtDjRliOs2aC3XBi+DdkhLs+Xa0dvVD5eDiZr3+k8rKVZcyTzxosgtMw7B/twQsK3P1KTZeVg==";
       };
     };
     "readable-stream-1.0.34" = {
@@ -56710,7 +56656,7 @@ let
       version = "1.0.34";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz";
-        sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+        sha512 = "ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==";
       };
     };
     "readable-stream-1.1.14" = {
@@ -56719,7 +56665,7 @@ let
       version = "1.1.14";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
-        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+        sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==";
       };
     };
     "readable-stream-2.0.6" = {
@@ -56728,7 +56674,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz";
-        sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
+        sha512 = "TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==";
       };
     };
     "readable-stream-2.3.0" = {
@@ -56827,7 +56773,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz";
-        sha1 = "c580d77ef2cfc8752b132498060dc9793a7ac01c";
+        sha512 = "k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==";
       };
     };
     "readline-sync-1.4.10" = {
@@ -56845,7 +56791,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz";
-        sha1 = "99443ba6e83b830ef3051bfd7dc241a82728d568";
+        sha512 = "qs8GGG+hLGMaDOGjd+mDglDoYcHDkjIY7z5RU0/ApsGT0qypyrWskNeemUqD+UxIXiZoMYT5aLwGp4ehoyZhIg==";
       };
     };
     "readline2-1.0.1" = {
@@ -56854,7 +56800,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz";
-        sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
+        sha512 = "8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==";
       };
     };
     "real-require-0.1.0" = {
@@ -56872,7 +56818,7 @@ let
       version = "0.10.43";
       src = fetchurl {
         url = "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz";
-        sha1 = "b95d50f6d60761a5f6252e15d80678168491ce7f";
+        sha512 = "GC1g4P336t8WOpzVGFOo83m14xQfHbVqe+eDus+4oubobkWb/kONwMWSG6+K3BUtBOoUdUU+GT9kmNCSOBv9+g==";
       };
     };
     "recast-0.11.23" = {
@@ -56881,7 +56827,7 @@ let
       version = "0.11.23";
       src = fetchurl {
         url = "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz";
-        sha1 = "451fd3004ab1e4df9b4e4b66376b2a21912462d3";
+        sha512 = "+nixG+3NugceyR8O1bLU45qs84JgI3+8EauyRZafLgC9XbdAOIVgwV1Pe2da0YzGo62KzWoZwUpVEQf6qNAXWA==";
       };
     };
     "recast-0.17.2" = {
@@ -56908,7 +56854,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
-        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+        sha512 = "HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==";
       };
     };
     "rechoir-0.7.1" = {
@@ -56944,7 +56890,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/recursive-readdir-sync/-/recursive-readdir-sync-1.0.6.tgz";
-        sha1 = "1dbf6d32f3c5bb8d3cde97a6c588d547a9e13d56";
+        sha512 = "QhkBh/V7T3L2m8FrwZEZ/VnSZU35bv7DSy/VlKVfcq10zvwwuxeuDLH7DZYFGHFyXefHchZmsHFLELR7poGjog==";
       };
     };
     "recursive-watch-1.1.4" = {
@@ -56962,7 +56908,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz";
-        sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+        sha512 = "qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==";
       };
     };
     "redent-2.0.0" = {
@@ -56971,7 +56917,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz";
-        sha1 = "c1b2007b42d57eb1389079b3c8333639d5e1ccaa";
+        sha512 = "XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==";
       };
     };
     "redent-3.0.0" = {
@@ -56998,7 +56944,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz";
-        sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
+        sha512 = "FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==";
       };
     };
     "redis-3.1.1" = {
@@ -57034,7 +56980,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz";
-        sha1 = "eb62d2adb15e4eaf4610c04afe1529384250abad";
+        sha512 = "1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==";
       };
     };
     "redis-parser-3.0.0" = {
@@ -57043,7 +56989,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz";
-        sha1 = "b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4";
+        sha512 = "DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==";
       };
     };
     "redoc-2.0.0-rc.72" = {
@@ -57061,7 +57007,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz";
-        sha1 = "e0c93542c574521bea13df0f9488ed82ab77c5da";
+        sha512 = "y0wyCcdQul3hI3xHfIs0vg/jSbboQc/YTOAqaxjFG7At+XSexduuOqBVL9SmOLSwa/ldkbzVzdwuk9s2EKTAZg==";
       };
     };
     "reduce-flatten-1.0.1" = {
@@ -57070,7 +57016,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz";
-        sha1 = "258c78efd153ddf93cb561237f61184f3696e327";
+        sha512 = "j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==";
       };
     };
     "redux-3.7.2" = {
@@ -57241,7 +57187,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/register-protocol-win32/-/register-protocol-win32-1.1.0.tgz";
-        sha1 = "ac961c69caaa2d609eec368aa0e4daf81a2dfee3";
+        sha512 = "Ca1loTkt5v1zZYBOCHDLiw21A/68iWbukmoCqauoczcXOBz14U8/tBeTa78ftdmrk7TgJIjLqbq5B8w3MettlQ==";
       };
     };
     "registry-auth-token-3.3.2" = {
@@ -57277,7 +57223,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz";
-        sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+        sha512 = "ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==";
       };
     };
     "registry-url-5.1.0" = {
@@ -57367,7 +57313,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz";
-        sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
+        sha512 = "QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==";
       };
     };
     "relateurl-0.2.7" = {
@@ -57376,7 +57322,7 @@ let
       version = "0.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz";
-        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+        sha512 = "G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==";
       };
     };
     "relative-3.0.2" = {
@@ -57385,7 +57331,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/relative/-/relative-3.0.2.tgz";
-        sha1 = "0dcd8ec54a5d35a3c15e104503d65375b5a5367f";
+        sha512 = "Q5W2qeYtY9GbiR8z1yHNZ1DGhyjb4AnLEjt8iE6XfcC1QIu+FAtj3HQaO0wH28H1mX6cqNLvAqWhP402dxJGyA==";
       };
     };
     "relative-url-1.0.2" = {
@@ -57394,7 +57340,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/relative-url/-/relative-url-1.0.2.tgz";
-        sha1 = "d21c52a72d6061018bcee9f9c9fc106bf7d65287";
+        sha512 = "jI1AmBVFFMXwQ3I6tIYVmVOjy8f+ogHbqkeb8/LL9tszEQiTV8I0l8XT4oEomUOoxfm698f92gYlNKeA/9LJVQ==";
       };
     };
     "relaxed-json-1.0.3" = {
@@ -57421,7 +57367,7 @@ let
       version = "3.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/remark/-/remark-3.2.3.tgz";
-        sha1 = "802a38c3aa98c9e1e3ea015eeba211d27cb65e1f";
+        sha512 = "E+WibagMmLjs7y5d6qWRiwbL2/z0zbkLwCqvmNlxBTx2Y1ufZ06sir+ZdyQXTxDiEbkbsrX6kG883ItjrEkaSQ==";
       };
     };
     "remark-footnotes-3.0.0" = {
@@ -57484,7 +57430,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/remark-html/-/remark-html-2.0.2.tgz";
-        sha1 = "592a347bdd3d5881f4f080c98b5b152fb1407a92";
+        sha512 = "2yj8Oad44uo/IWOssZs3Y4AvfrA9nGZqiHsL7ePyZuntPKjtljHZDcroljlQQ+sJryO3Bjnnj30e7wi8aTp/hQ==";
       };
     };
     "remark-lint-8.0.0" = {
@@ -58051,7 +57997,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz";
-        sha1 = "05f1a593f16e42e1fb90ebf59de8e569525f9523";
+        sha512 = "wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==";
       };
     };
     "remove-markdown-0.1.0" = {
@@ -58060,7 +58006,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.1.0.tgz";
-        sha1 = "cf8b66e9e6fcb4acc9721048adeee7a357698ba9";
+        sha512 = "MQ7eQbVShqsGdx4rO1wg0THlPUUKYGWDATsk7od6oH0FuPYUNW+yu/MUMluV5v+eKyJBlqcW4xBb8fZNS1ch6g==";
       };
     };
     "remove-trailing-separator-1.1.0" = {
@@ -58069,7 +58015,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+        sha512 = "/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==";
       };
     };
     "remove-trailing-slash-0.1.1" = {
@@ -58114,7 +58060,7 @@ let
       version = "1.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+        sha512 = "PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==";
       };
     };
     "repeating-1.1.3" = {
@@ -58123,7 +58069,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz";
-        sha1 = "3d4114218877537494f97f77f9785fab810fa4ac";
+        sha512 = "Nh30JLeMHdoI+AsQ5eblhZ7YlTsM9wiJQe/AHIunlK3KWzvXhXb36IJ7K1IOeRjIOtzMjdUHjwXUFxKJoPTSOg==";
       };
     };
     "repeating-2.0.1" = {
@@ -58132,7 +58078,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
-        sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+        sha512 = "ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==";
       };
     };
     "replace-buffer-1.2.1" = {
@@ -58150,7 +58096,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz";
-        sha1 = "29bbd92078a739f0bcce2b4ee41e837953522924";
+        sha512 = "AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==";
       };
     };
     "replace-ext-1.0.0" = {
@@ -58159,7 +58105,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz";
-        sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
+        sha512 = "vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==";
       };
     };
     "replace-ext-1.0.1" = {
@@ -58177,7 +58123,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz";
-        sha1 = "e87f6d513b928dde808260c12be7fec6ff6e798c";
+        sha512 = "CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==";
       };
     };
     "request-2.76.0" = {
@@ -58186,7 +58132,7 @@ let
       version = "2.76.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.76.0.tgz";
-        sha1 = "be44505afef70360a0436955106be3945d95560e";
+        sha512 = "oAqKWlLKtLtHlLa/dxjQ0Q03rXvGeNd4Kdj63cIbxmi2VulqWTuccD5V8a7GtI3QjtJ9294dltpp4PMBokIsww==";
       };
     };
     "request-2.81.0" = {
@@ -58195,7 +58141,7 @@ let
       version = "2.81.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
-        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+        sha512 = "IZnsR7voF0miGSu29EXPRgPTuEsI/+aibNSBbN1pplrfartF5wDYGADz3iD9vmBVf2r00rckWZf8BtS5kk7Niw==";
       };
     };
     "request-2.88.0" = {
@@ -58222,7 +58168,7 @@ let
       version = "2.9.203";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.9.203.tgz";
-        sha1 = "6c1711a5407fb94a114219563e44145bcbf4723a";
+        sha512 = "OWtna9w7yRI/gcfu3VaURgIwE1FHgbz5+fHGQ9GJTHcJ4+uvHnDjXd+N7mVDOv5+1fp1CRPzUSY2wcM345Z2Fw==";
       };
     };
     "request-as-curl-0.1.0" = {
@@ -58231,7 +58177,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-as-curl/-/request-as-curl-0.1.0.tgz";
-        sha1 = "f017ac5b2060e1c4fc9677575c381a08249d5bf7";
+        sha512 = "dl51G1i9HLy2TGuNoBqYvo1qWV6dmMJtO8Z7ua7SrHBTpxoz9IR+bOlYUxGKzM27VaSeNN06xAJSIKG6CjnUNg==";
       };
     };
     "request-compose-1.2.3" = {
@@ -58285,7 +58231,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz";
-        sha1 = "5d36bb57961c673aa5b788dbc8141fdf23b44e08";
+        sha512 = "dxdraeZVUNEn9AvLrxkgB2k6buTlym71dJk1fk4v8j3Ou3RKNm07BcgbHdj2lLgYGfqX71F+awb1MR+tWPFJzA==";
       };
     };
     "request-promise-4.2.6" = {
@@ -58330,7 +58276,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
-        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+        sha512 = "fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==";
       };
     };
     "require-from-string-2.0.2" = {
@@ -58357,7 +58303,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+        sha512 = "IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==";
       };
     };
     "require-main-filename-2.0.0" = {
@@ -58375,7 +58321,7 @@ let
       version = "0.8.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz";
-        sha1 = "7999539fc9e047a37928fa196f8e1563dabd36de";
+        sha512 = "AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==";
       };
     };
     "require-uncached-1.0.3" = {
@@ -58384,7 +58330,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz";
-        sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+        sha512 = "Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==";
       };
     };
     "requireg-0.2.2" = {
@@ -58411,7 +58357,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz";
-        sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+        sha512 = "KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==";
       };
     };
     "requizzle-0.2.3" = {
@@ -58423,13 +58369,13 @@ let
         sha512 = "YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==";
       };
     };
-    "reselect-4.1.5" = {
+    "reselect-4.1.6" = {
       name = "reselect";
       packageName = "reselect";
-      version = "4.1.5";
+      version = "4.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz";
-        sha512 = "uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==";
+        url = "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz";
+        sha512 = "ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==";
       };
     };
     "reserved-words-0.1.2" = {
@@ -58438,7 +58384,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz";
-        sha1 = "00a0940f98cd501aeaaac316411d9adc52b31ab1";
+        sha512 = "0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==";
       };
     };
     "resize-observer-polyfill-1.5.1" = {
@@ -58483,7 +58429,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
-        sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+        sha512 = "ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==";
       };
     };
     "resolve-cwd-3.0.0" = {
@@ -58501,7 +58447,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz";
-        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+        sha512 = "R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==";
       };
     };
     "resolve-from-1.0.1" = {
@@ -58510,7 +58456,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz";
-        sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+        sha512 = "kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==";
       };
     };
     "resolve-from-2.0.0" = {
@@ -58519,7 +58465,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz";
-        sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57";
+        sha512 = "qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==";
       };
     };
     "resolve-from-3.0.0" = {
@@ -58528,7 +58474,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
-        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+        sha512 = "GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==";
       };
     };
     "resolve-from-4.0.0" = {
@@ -58564,7 +58510,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz";
-        sha1 = "32bb9e39c06d67338dc9378c0d6d6074566ad131";
+        sha512 = "NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==";
       };
     };
     "resolve-package-1.0.1" = {
@@ -58573,7 +58519,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-package/-/resolve-package-1.0.1.tgz";
-        sha1 = "686f70b188bd7d675f5bbc4282ccda060abb9d27";
+        sha512 = "rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g==";
       };
     };
     "resolve-path-1.4.0" = {
@@ -58582,7 +58528,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz";
-        sha1 = "c4bda9f5efb2fce65247873ab36bb4d834fe16f7";
+        sha512 = "i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==";
       };
     };
     "resolve-protobuf-schema-2.1.0" = {
@@ -58600,7 +58546,7 @@ let
       version = "0.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
-        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+        sha512 = "ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==";
       };
     };
     "resp-modifier-6.0.2" = {
@@ -58609,7 +58555,7 @@ let
       version = "6.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz";
-        sha1 = "b124de5c4fbafcba541f48ffa73970f4aa456b4f";
+        sha512 = "U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==";
       };
     };
     "responselike-1.0.2" = {
@@ -58618,7 +58564,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz";
-        sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7";
+        sha512 = "/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==";
       };
     };
     "responselike-2.0.0" = {
@@ -58636,7 +58582,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/restify/-/restify-4.0.3.tgz";
-        sha1 = "e1e5b7ad9d4f6aeacd20e28f44a045f26c146dbc";
+        sha512 = "Wj+p3Y+5KFv+bzb7X+4H+RKaITS7y84xhR8KH1BfytpX6K1mnUVDqq2Kp0/jk/awSDQrWrkLtf0gzWfsmT1zcg==";
       };
     };
     "restify-clients-1.5.2" = {
@@ -58645,7 +58591,7 @@ let
       version = "1.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/restify-clients/-/restify-clients-1.5.2.tgz";
-        sha1 = "d4b13d82f287e77e2eb5daae14e6ef8534aa7389";
+        sha512 = "y4aJHEdQnAmQ8MyAuGSfVJCjAdArjPC5lmMTiWT1zDWi7GHQ1vTDoRng76mYZo1ev7bzd5YY/F3W3O/RRH//nQ==";
       };
     };
     "restify-clients-1.6.0" = {
@@ -58654,7 +58600,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/restify-clients/-/restify-clients-1.6.0.tgz";
-        sha1 = "1eaac176185162104dcc546f944950b70229f8e5";
+        sha512 = "q5kF/KHkwC10PhEjZkgQnWCIVCq5rlKF+fbqjl51e28ArkztJNI5czFzwCd/4Qz3HRrfwidk1XcAKLxY75dT6w==";
       };
     };
     "restify-errors-3.0.0" = {
@@ -58663,7 +58609,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/restify-errors/-/restify-errors-3.0.0.tgz";
-        sha1 = "3b17177d43954acece4291465a97ce1b58cf3d57";
+        sha512 = "FvaN/X/a8uz1MJ9o/VsdHZ+GSbRoWdye8mUxpBab+U+tsXu5LZ5ywF/not/b0QnA6A3SBIPmiForlaXnMGRnNQ==";
       };
     };
     "restify-errors-3.1.0" = {
@@ -58672,7 +58618,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/restify-errors/-/restify-errors-3.1.0.tgz";
-        sha1 = "06b5479477874c0856d782a12c8707dcdad53f16";
+        sha512 = "4RDQs4zirMPXH03y5LKIFoAs+LvO9HTd5Ig4KfD5h4yRtTC5aWK/F2L1g9O2CSjTsgNIc+d0ib0f1rSob3FjNg==";
       };
     };
     "restore-cursor-1.0.1" = {
@@ -58681,7 +58627,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz";
-        sha1 = "34661f46886327fed2991479152252df92daa541";
+        sha512 = "reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==";
       };
     };
     "restore-cursor-2.0.0" = {
@@ -58690,7 +58636,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz";
-        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+        sha512 = "6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==";
       };
     };
     "restore-cursor-3.1.0" = {
@@ -58717,7 +58663,7 @@ let
       version = "0.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
-        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+        sha512 = "Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==";
       };
     };
     "ret-0.1.15" = {
@@ -58807,7 +58753,7 @@ let
       version = "0.10.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz";
-        sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
+        sha512 = "ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==";
       };
     };
     "retry-0.12.0" = {
@@ -58816,7 +58762,7 @@ let
       version = "0.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
-        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+        sha512 = "9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==";
       };
     };
     "retry-0.13.1" = {
@@ -58834,7 +58780,7 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz";
-        sha1 = "fdc90eed943fde11b893554b8cc63d0e899ba918";
+        sha512 = "txv1qsctZq8ei9J/uCXgaKKFPjlBB0H2hvtnzw9rjKWFNUFtKh59WprXxpAeAey3/QeWwHdxMFqStPaOAgy+dA==";
       };
     };
     "retry-0.9.0" = {
@@ -58843,7 +58789,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz";
-        sha1 = "6f697e50a0e4ddc8c8f7fb547a9b60dead43678d";
+        sha512 = "bkzdIZ5Xyim12j0jq6CQAHpfdsa2VqieWF6eN8vT2MXxCxLAZhgVUyu5EEMevJyXML+XWTxVbZ7mLaKx5F/DZw==";
       };
     };
     "retry-request-4.2.2" = {
@@ -58870,7 +58816,7 @@ let
       version = "0.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz";
-        sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
+        sha512 = "xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg==";
       };
     };
     "reveal.js-4.3.1" = {
@@ -58888,7 +58834,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/reverse-http/-/reverse-http-1.3.0.tgz";
-        sha1 = "61a9644bdea483aa281ffb62706e642f1a73a239";
+        sha512 = "Bf9dO6G+st4L0Qj0qliH0djWf2w6NY5ijOyYQpMOZduS6kw+7xAZ3Li6ApISbSeIhpGVNgr+MpF5B0kuXwt2gg==";
       };
     };
     "rfc-3986-1.0.1" = {
@@ -58897,7 +58843,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rfc-3986/-/rfc-3986-1.0.1.tgz";
-        sha1 = "eeeb88342fadbe8027c0f36ada921a13e6f96206";
+        sha512 = "4LMcbvBonVhsufIwa7Po+HhK0rznNyvQxIG/14/wTm7W88eFQy1jU+T7i5afaWOQ53czEJlaI3ua9pzZtqXE0w==";
       };
     };
     "rfdc-1.3.0" = {
@@ -58915,7 +58861,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz";
-        sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
+        sha512 = "gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==";
       };
     };
     "rgba-regex-1.0.0" = {
@@ -58924,7 +58870,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz";
-        sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
+        sha512 = "zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==";
       };
     };
     "rgbcolor-1.0.1" = {
@@ -58933,7 +58879,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz";
-        sha1 = "d6505ecdb304a6595da26fa4b43307306775945d";
+        sha512 = "9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==";
       };
     };
     "right-align-0.1.3" = {
@@ -58942,7 +58888,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
+        sha512 = "yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==";
       };
     };
     "right-pad-1.0.1" = {
@@ -58951,7 +58897,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz";
-        sha1 = "8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0";
+        sha512 = "bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==";
       };
     };
     "rimraf-2.2.8" = {
@@ -58960,7 +58906,7 @@ let
       version = "2.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
-        sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
+        sha512 = "R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==";
       };
     };
     "rimraf-2.4.4" = {
@@ -58969,7 +58915,7 @@ let
       version = "2.4.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz";
-        sha1 = "b528ce2ebe0e6d89fb03b265de11d61da0dbcf82";
+        sha512 = "vM55sE6DOvNEHSEIQ7uCej02DKQYcGdnl1ToNfGy9t2jNrfNYcP5OwSkdeDXEpMtDqHEEFOORhvP0jA3/kBk1w==";
       };
     };
     "rimraf-2.4.5" = {
@@ -58978,7 +58924,7 @@ let
       version = "2.4.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz";
-        sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
+        sha512 = "J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==";
       };
     };
     "rimraf-2.6.3" = {
@@ -59041,7 +58987,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz";
-        sha1 = "f33fe9cfb52bbfd520aa18323bc65db110a1b76c";
+        sha512 = "fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==";
       };
     };
     "rng-0.2.2" = {
@@ -59050,7 +58996,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/rng/-/rng-0.2.2.tgz";
-        sha1 = "df43e80d9bc82ad4430bcfef03f49c717e8b2e8c";
+        sha512 = "3F/A3swXdqb4JLpF22zwlCllyXlUWEE3T35GzJ+Vvtx4HnUYVAXovaK2TyUC04UlpxdVxB+E7HaKdDrGeOcJuA==";
       };
     };
     "roarr-2.15.4" = {
@@ -59095,7 +59041,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/root-check/-/root-check-1.0.0.tgz";
-        sha1 = "c52a794bf0db9fad567536e41898f0c9e0a86697";
+        sha512 = "lt1ts72QmU7jh1DlOJqFN/le/aiRGAbchSSMhNpLQubDWPEOe0YKCcrhprkgyMxxFAcrEhyfTTUfc+Dj/bo4JA==";
       };
     };
     "round-to-6.0.0" = {
@@ -59113,7 +59059,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/router/-/router-0.6.2.tgz";
-        sha1 = "6f04063a2d04eba3303a1bbc6765eef63037cf3d";
+        sha512 = "tTMBCMVSP+sfSQyBbFrUuVPfxfKBhy6Hciz/SttYRxKteFqjPljrH2GqXoPSCOeubSgxPDRAbQOCvQzp2hNTOA==";
       };
     };
     "router-1.3.7" = {
@@ -59131,7 +59077,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/router-ips/-/router-ips-1.0.0.tgz";
-        sha1 = "44e00858ebebc0133d58e40b2cd8a1fbb04203f5";
+        sha512 = "yBo6F52Un/WYioXbedBGvrKIiofbwt+4cUhdqDb9fNMJBI4D4jOy7jlxxaRVEvICPKU7xMmJDtDFR6YswX/sFQ==";
       };
     };
     "rss-parser-3.12.0" = {
@@ -59176,7 +59122,7 @@ let
       version = "4.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/rttc/-/rttc-4.5.2.tgz";
-        sha1 = "ba6a3e92898b4274f123bbac49485d7616a37cbc";
+        sha512 = "6zLypmR2nKV20f9MHIsdR3+P8l7k4CxzKRn7nI/6Wlt5h4K8Gu64mXGTjaRAo/Cr8UVGRWdeFOtvpzixgA7SSA==";
       };
     };
     "rttc-7.4.0" = {
@@ -59185,7 +59131,7 @@ let
       version = "7.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/rttc/-/rttc-7.4.0.tgz";
-        sha1 = "bc9cacd46add923deb62495a01934eb7ef619fb4";
+        sha512 = "IcG+W2xwl+Ywsupu1ytLTtgnOz4PDOFJeTeSB2jG+xDTpBCFSf4tBGsS+VijwEJEXdJZ6+/3sYZuOv7KTX29Sw==";
       };
     };
     "run-async-0.1.0" = {
@@ -59194,7 +59140,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz";
-        sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
+        sha512 = "qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==";
       };
     };
     "run-async-2.4.1" = {
@@ -59239,7 +59185,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz";
-        sha1 = "e848396f057d223f24386924618e25694161ec47";
+        sha512 = "ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==";
       };
     };
     "run-series-1.1.9" = {
@@ -59266,7 +59212,7 @@ let
       version = "0.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/rw/-/rw-0.1.4.tgz";
-        sha1 = "4903cbd80248ae0ede685bf58fd236a7a9b29a3e";
+        sha512 = "vSj3D96kMcjNyqPcp65wBRIDImGSrUuMxngNNxvw8MQaO+aQ6llzRPH7XcJy5zrpb3wU++045+Uz/IDIM684iw==";
       };
     };
     "rw-1.3.3" = {
@@ -59275,7 +59221,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz";
-        sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
+        sha512 = "PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==";
       };
     };
     "rwlock-5.0.0" = {
@@ -59284,7 +59230,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/rwlock/-/rwlock-5.0.0.tgz";
-        sha1 = "888d6a77a3351cc1a209204ef2ee1722093836cf";
+        sha512 = "XgzRqLMfCcm9QfZuPav9cV3Xin5TRcIlp4X/SH3CvB+x5D2AakdlEepfJKDd8ByncvfpcxNWdRZVUl38PS6ZJg==";
       };
     };
     "rx-2.5.3" = {
@@ -59293,7 +59239,7 @@ let
       version = "2.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz";
-        sha1 = "21adc7d80f02002af50dae97fd9dbf248755f566";
+        sha512 = "u5qvfulb7NXoY/+OE28920WEgFi6aiDjf5iF9rA2f9tBXejLgTLd0WxkclvIQWjFFHfNJlb7pSTsrjgiDh+Uug==";
       };
     };
     "rx-4.1.0" = {
@@ -59302,7 +59248,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz";
-        sha1 = "a5f13ff79ef3b740fe30aa803fb09f98805d4782";
+        sha512 = "CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==";
       };
     };
     "rx-lite-3.1.2" = {
@@ -59311,7 +59257,7 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz";
-        sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
+        sha512 = "1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==";
       };
     };
     "rx-lite-4.0.8" = {
@@ -59320,7 +59266,7 @@ let
       version = "4.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz";
-        sha1 = "0b1e11af8bc44836f04a6407e92da42467b79444";
+        sha512 = "Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==";
       };
     };
     "rx-lite-aggregates-4.0.8" = {
@@ -59329,7 +59275,7 @@ let
       version = "4.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz";
-        sha1 = "753b87a89a11c95467c4ac1626c4efc4e05c67be";
+        sha512 = "3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==";
       };
     };
     "rxjs-5.5.12" = {
@@ -59365,7 +59311,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/s3-stream-upload/-/s3-stream-upload-2.0.2.tgz";
-        sha1 = "60342f12d4aa06ea8f389fb761a5393aedca017f";
+        sha512 = "hSfGZ4InIUMH29niWCAkcDvmOGwADSy7j2Ktm6+nKI+ub6nPoLOboo1D+Q3mEIutTHu0J4+Sv92J0GOk5hAonQ==";
       };
     };
     "s3signed-0.1.0" = {
@@ -59374,7 +59320,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/s3signed/-/s3signed-0.1.0.tgz";
-        sha1 = "ae03b86259413215ed43e99285c8c347579735fb";
+        sha512 = "08Jc0+GAaFjXgvl8qQytu6+wVBfcUUyCJDocj5kBUeq9YA+6mAM/6psDNxrg4PVkkLBvAK75mnjlaGckfOtDKA==";
       };
     };
     "s3urls-1.5.2" = {
@@ -59383,7 +59329,7 @@ let
       version = "1.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/s3urls/-/s3urls-1.5.2.tgz";
-        sha1 = "182a991208fc1ab5214443eb250fc8f53b4bc9ea";
+        sha512 = "3f4kprxnwAqoiVdR/XFoc997YEt0b6oY1VKrhl+kuWnHaUQ2cVe73TcQaww8geX5FKPuGBHl90xv70q7SlbBew==";
       };
     };
     "sade-1.8.1" = {
@@ -59401,7 +59347,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz";
-        sha1 = "d263ca54696cd8a306b5ca6551e92de57918fbe7";
+        sha512 = "cr7dZWLwOeaFBLTIuZeYdkfO7UzGIKhjYENJFAxUOMKWGaWDm2nJM2rzxNRm5Owu0DH3ApwNo6kx5idXZfb/Iw==";
       };
     };
     "safe-buffer-5.1.1" = {
@@ -59455,7 +59401,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
-        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+        sha512 = "aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==";
       };
     };
     "safe-stable-stringify-2.3.1" = {
@@ -59482,7 +59428,7 @@ let
       version = "0.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz";
-        sha1 = "741e245e231f07cafb6fdf0f133adfa216a502ad";
+        sha512 = "3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==";
       };
     };
     "sandwich-stream-2.0.2" = {
@@ -59509,7 +59455,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sasl-anonymous/-/sasl-anonymous-0.1.0.tgz";
-        sha1 = "f544c7e824df2a40d9ad4733829572cc8d9ed5a5";
+        sha512 = "x+0sdsV0Gie2EexxAUsx6ZoB+X6OCthlNBvAQncQxreEWQJByAPntj0EAgTlJc2kZicoc+yFzeR6cl8VfsQGfA==";
       };
     };
     "sasl-plain-0.1.0" = {
@@ -59518,7 +59464,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sasl-plain/-/sasl-plain-0.1.0.tgz";
-        sha1 = "cf145e7c02222b64d60c0806d9cd2ae5380426cc";
+        sha512 = "X8mCSfR8y0NryTu0tuVyr4IS2jBunBgyG+3a0gEEkd0nlHGiyqJhlc4EIkzmSwaa7F8S4yo+LS6Cu5qxRkJrmg==";
       };
     };
     "sasl-scram-sha-1-1.2.1" = {
@@ -59527,7 +59473,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sasl-scram-sha-1/-/sasl-scram-sha-1-1.2.1.tgz";
-        sha1 = "d88d51feaa0ff320d8eb1d6fc75657653f9dcd4b";
+        sha512 = "o63gNo+EGsk1ML0bNeUAjRomIIcG7VaUyA+ffhd9MME5BjqVEpp42YkmBBZqzz1KmJG3YqpRLE4PfUe7FjexaA==";
       };
     };
     "saslmechanisms-0.1.1" = {
@@ -59536,7 +59482,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/saslmechanisms/-/saslmechanisms-0.1.1.tgz";
-        sha1 = "478be1429500fcfaa780be88b3343ced7d2a9182";
+        sha512 = "pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==";
       };
     };
     "saslprep-1.0.3" = {
@@ -59581,7 +59527,7 @@ let
       version = "0.5.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz";
-        sha1 = "d472db228eb331c2506b0e8c15524adb939d12c1";
+        sha512 = "c0YL9VcSfcdH3F1Qij9qpYJFpKFKMXNOkLWFssBL3RuF7ZS8oZhllR2rWlCRjDTJsfq3R6wbSsaRU6o0rkEdNw==";
       };
     };
     "sax-1.1.4" = {
@@ -59590,7 +59536,7 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz";
-        sha1 = "74b6d33c9ae1e001510f179a91168588f1aedaa9";
+        sha512 = "5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==";
       };
     };
     "sax-1.2.1" = {
@@ -59599,7 +59545,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz";
-        sha1 = "7b8e656190b228e81a66aea748480d828cd2d37a";
+        sha512 = "8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==";
       };
     };
     "sax-1.2.4" = {
@@ -63050,13 +62996,13 @@ let
         sha512 = "EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==";
       };
     };
-    "stackframe-1.2.1" = {
+    "stackframe-1.3.4" = {
       name = "stackframe";
       packageName = "stackframe";
-      version = "1.2.1";
+      version = "1.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz";
-        sha512 = "h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==";
+        url = "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz";
+        sha512 = "oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==";
       };
     };
     "stampit-1.2.0" = {
@@ -64994,13 +64940,13 @@ let
         sha512 = "dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==";
       };
     };
-    "sync-fetch-0.3.1" = {
+    "sync-fetch-0.4.1" = {
       name = "sync-fetch";
       packageName = "sync-fetch";
-      version = "0.3.1";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.1.tgz";
-        sha512 = "xj5qiCDap/03kpci5a+qc5wSJjc8ZSixgG2EUmH1B8Ea2sfWclQA7eH40hiHPCtkCn6MCk4Wb+dqcXdCy2PP3g==";
+        url = "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.4.1.tgz";
+        sha512 = "JDtyFEvnKUzt1CxRtzzsGgkBanEv8XRmLyJo0F0nGkpCR8EjYmpOJJXz8GA/SWtlPU0nAYh0+CNMNnFworGyOA==";
       };
     };
     "syntax-error-1.4.0" = {
@@ -67515,15 +67461,6 @@ let
         sha512 = "yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==";
       };
     };
-    "type-fest-2.12.0" = {
-      name = "type-fest";
-      packageName = "type-fest";
-      version = "2.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.12.0.tgz";
-        sha512 = "Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==";
-      };
-    };
     "type-fest-2.12.2" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -67857,13 +67794,13 @@ let
         sha512 = "FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==";
       };
     };
-    "uglify-js-3.15.5" = {
+    "uglify-js-3.16.0" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.15.5";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz";
-        sha512 = "hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz";
+        sha512 = "FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -73573,13 +73510,13 @@ let
         sha1 = "f164263325ae671f53836fb210c7ddbcfda46598";
       };
     };
-    "xss-1.0.12" = {
+    "xss-1.0.13" = {
       name = "xss";
       packageName = "xss";
-      version = "1.0.12";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xss/-/xss-1.0.12.tgz";
-        sha512 = "8pXgz5BUUfKMrb81tmcbvLNA97ab4d6HdoBHYF5XYHa8oarc2s64hF+oqI4FhBHVBWvEM1wHGy+vqt8kZhCaNw==";
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz";
+        sha512 = "clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==";
       };
     };
     "xstream-11.14.0" = {
@@ -74957,7 +74894,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."to-through-2.0.0"
       sources."type-fest-1.4.0"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."unxhr-1.0.1"
@@ -75014,22 +74951,22 @@ in
           sources."vscode-uri-2.1.2"
         ];
       })
-      (sources."@vue/compiler-core-3.2.36" // {
+      (sources."@vue/compiler-core-3.2.37" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-dom-3.2.36"
-      (sources."@vue/compiler-sfc-3.2.36" // {
+      sources."@vue/compiler-dom-3.2.37"
+      (sources."@vue/compiler-sfc-3.2.37" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-ssr-3.2.36"
-      sources."@vue/reactivity-3.2.36"
-      sources."@vue/reactivity-transform-3.2.36"
-      sources."@vue/runtime-core-3.2.36"
-      sources."@vue/shared-3.2.36"
+      sources."@vue/compiler-ssr-3.2.37"
+      sources."@vue/reactivity-3.2.37"
+      sources."@vue/reactivity-transform-3.2.37"
+      sources."@vue/runtime-core-3.2.37"
+      sources."@vue/shared-3.2.37"
       sources."dedent-js-1.0.1"
       sources."emmet-2.3.6"
       sources."estree-walker-2.0.2"
@@ -75261,7 +75198,7 @@ in
       sources."proper-lockfile-4.1.2"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       (sources."raw-body-2.5.1" // {
         dependencies = [
           sources."depd-2.0.0"
@@ -75804,7 +75741,7 @@ in
       sources."picomatch-2.3.1"
       sources."prepend-http-3.0.1"
       sources."pump-3.0.0"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."querystringify-2.2.0"
       sources."quick-lru-5.1.1"
       (sources."read-pkg-6.0.0" // {
@@ -77104,7 +77041,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uc.micro-1.0.6"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."underscore-1.13.4"
       sources."union-value-1.0.1"
       (sources."universal-url-2.0.0" // {
@@ -77366,11 +77303,11 @@ in
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.3"
@@ -77388,7 +77325,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enhanced-resolve-5.9.3"
@@ -77768,7 +77705,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1148.0" // {
+      (sources."aws-sdk-2.1149.0" // {
         dependencies = [
           sources."uuid-8.0.0"
         ];
@@ -77861,7 +77798,7 @@ in
       sources."graceful-fs-4.2.10"
       (sources."grant-4.7.0" // {
         dependencies = [
-          sources."qs-6.10.3"
+          sources."qs-6.10.5"
         ];
       })
       sources."har-schema-2.0.0"
@@ -78264,9 +78201,9 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-5.0.4"
       sources."@vue/cli-ui-addon-widgets-5.0.4"
-      sources."@vue/compiler-core-3.2.36"
-      sources."@vue/compiler-dom-3.2.36"
-      sources."@vue/shared-3.2.36"
+      sources."@vue/compiler-core-3.2.37"
+      sources."@vue/compiler-dom-3.2.37"
+      sources."@vue/shared-3.2.37"
       (sources."@wry/equality-0.1.11" // {
         dependencies = [
           sources."tslib-1.14.1"
@@ -78357,7 +78294,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -78376,7 +78313,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."caw-2.0.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -78497,7 +78434,7 @@ in
       sources."easy-stack-1.0.1"
       sources."ee-first-1.1.1"
       sources."ejs-3.1.8"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -78741,7 +78678,7 @@ in
       sources."iterall-1.3.0"
       (sources."jake-10.8.5" // {
         dependencies = [
-          sources."async-3.2.3"
+          sources."async-3.2.4"
         ];
       })
       sources."javascript-stringify-2.1.0"
@@ -79189,7 +79126,7 @@ in
       sources."ws-7.5.8"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      (sources."xss-1.0.12" // {
+      (sources."xss-1.0.13" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -79943,11 +79880,11 @@ in
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
-      sources."browserslist-4.20.3"
-      sources."caniuse-lite-1.0.30001346"
+      sources."browserslist-4.20.4"
+      sources."caniuse-lite-1.0.30001349"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -79957,7 +79894,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."debug-4.3.4"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -80342,9 +80279,9 @@ in
       sha512 = "ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==";
     };
     dependencies = [
-      sources."browserslist-4.20.3"
-      sources."caniuse-lite-1.0.30001346"
-      sources."electron-to-chromium-1.4.146"
+      sources."browserslist-4.20.4"
+      sources."caniuse-lite-1.0.30001349"
+      sources."electron-to-chromium-1.4.147"
       sources."escalade-3.1.1"
       sources."fraction.js-4.2.0"
       sources."node-releases-2.0.5"
@@ -80379,7 +80316,7 @@ in
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."ast-types-0.13.4"
-      (sources."aws-sdk-2.1148.0" // {
+      (sources."aws-sdk-2.1149.0" // {
         dependencies = [
           sources."uuid-8.0.0"
         ];
@@ -80999,10 +80936,10 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "12.10.0";
+    version = "12.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-12.10.0.tgz";
-      sha512 = "pJeuMYSv09VEXOfHmF7/B8kWXdVkUAnN8hoyzGJFbpchiopyvahKYHwdgav4RzSQ1CzuhnDC1LGMtwCOXekctA==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-12.11.0.tgz";
+      sha512 = "ajrj5cYPvL1MAEwFi7i3PQA3eYwJ/Pyr74P/xoQELHPgTz6hq+HY3KWGJMc8A6UF10QsgySW/nMAeAkJcb5/5w==";
     };
     dependencies = [
       (sources."@alexbosworth/caporal-1.4.4" // {
@@ -81149,7 +81086,7 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.9.1"
-      sources."colorette-2.0.16"
+      sources."colorette-2.0.17"
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
@@ -81357,6 +81294,7 @@ in
           sources."@types/node-17.0.33"
           sources."bn.js-5.2.0"
           sources."bolt07-1.8.1"
+          sources."colorette-2.0.16"
           (sources."lightning-5.16.0" // {
             dependencies = [
               sources."psbt-2.0.1"
@@ -81372,156 +81310,7 @@ in
           sources."ws-8.6.0"
         ];
       })
-      (sources."ln-telegram-3.21.5" // {
-        dependencies = [
-          sources."@grpc/grpc-js-1.6.4"
-          sources."@grpc/proto-loader-0.6.9"
-          sources."@types/node-17.0.23"
-          sources."@types/ws-8.5.2"
-          sources."bn.js-5.2.0"
-          sources."body-parser-1.19.2"
-          sources."bolt01-1.2.4"
-          sources."bolt07-1.8.1"
-          sources."bolt09-0.2.2"
-          sources."cookie-0.4.2"
-          (sources."debug-4.3.4" // {
-            dependencies = [
-              sources."ms-2.1.2"
-            ];
-          })
-          sources."depd-1.1.2"
-          sources."destroy-1.0.4"
-          sources."express-4.17.3"
-          sources."finalhandler-1.1.2"
-          (sources."goldengate-11.2.1" // {
-            dependencies = [
-              sources."ln-service-53.11.0"
-            ];
-          })
-          sources."grammy-1.8.2"
-          sources."http-errors-1.8.1"
-          sources."invoices-2.0.5"
-          (sources."lightning-5.10.1" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.6.2"
-              sources."body-parser-1.20.0"
-              sources."bolt09-0.2.3"
-              sources."depd-2.0.0"
-              sources."destroy-1.2.0"
-              sources."http-errors-2.0.0"
-              sources."on-finished-2.4.1"
-              sources."qs-6.10.3"
-              sources."raw-body-2.5.1"
-              sources."statuses-2.0.1"
-            ];
-          })
-          (sources."ln-accounting-5.0.6" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.5.7"
-              sources."@types/node-17.0.21"
-              sources."bolt07-1.8.0"
-              sources."bolt09-0.2.1"
-              (sources."goldengate-11.1.0" // {
-                dependencies = [
-                  sources."asyncjs-util-1.2.8"
-                  sources."ln-service-53.9.3"
-                ];
-              })
-              sources."invoices-2.0.4"
-              (sources."lightning-5.8.2" // {
-                dependencies = [
-                  sources."asyncjs-util-1.2.8"
-                  sources."bolt09-0.2.2"
-                  sources."tiny-secp256k1-2.2.1"
-                ];
-              })
-              (sources."ln-service-53.10.0" // {
-                dependencies = [
-                  sources."@grpc/grpc-js-1.6.1"
-                  sources."@types/node-17.0.23"
-                  sources."@types/ws-8.5.3"
-                  sources."asyncjs-util-1.2.8"
-                  sources."bolt09-0.2.2"
-                  sources."lightning-5.9.0"
-                  sources."tiny-secp256k1-2.2.1"
-                  sources."type-fest-2.12.2"
-                ];
-              })
-              sources."psbt-2.0.0"
-              sources."type-fest-2.12.0"
-              sources."uint8array-tools-0.0.7"
-            ];
-          })
-          (sources."ln-service-53.15.0" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.6.7"
-              sources."@types/node-17.0.25"
-              sources."@types/ws-8.5.3"
-              sources."body-parser-1.20.0"
-              sources."bolt09-0.2.3"
-              sources."debug-2.6.9"
-              sources."depd-2.0.0"
-              sources."destroy-1.2.0"
-              sources."http-errors-2.0.0"
-              sources."invoices-2.0.6"
-              sources."lightning-5.14.0"
-              sources."ms-2.0.0"
-              sources."on-finished-2.4.1"
-              sources."qs-6.10.3"
-              sources."raw-body-2.5.1"
-              sources."statuses-2.0.1"
-              sources."tiny-secp256k1-2.2.1"
-              sources."uint8array-tools-0.0.7"
-            ];
-          })
-          (sources."ln-sync-3.12.0" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.6.1"
-              sources."@types/ws-8.5.3"
-              sources."bolt09-0.2.1"
-              (sources."invoices-2.0.4" // {
-                dependencies = [
-                  sources."bolt07-1.8.0"
-                  sources."tiny-secp256k1-2.2.0"
-                ];
-              })
-              (sources."lightning-5.9.0" // {
-                dependencies = [
-                  sources."asyncjs-util-1.2.8"
-                  sources."bolt07-1.8.0"
-                  sources."bolt09-0.2.2"
-                  sources."psbt-2.0.0"
-                ];
-              })
-              (sources."ln-service-53.10.0" // {
-                dependencies = [
-                  sources."bolt07-1.8.0"
-                ];
-              })
-              sources."tiny-secp256k1-2.2.1"
-              sources."uint8array-tools-0.0.7"
-            ];
-          })
-          sources."ms-2.1.3"
-          sources."on-finished-2.3.0"
-          (sources."p2tr-1.3.0" // {
-            dependencies = [
-              sources."tiny-secp256k1-2.2.1"
-              sources."uint8array-tools-0.0.7"
-            ];
-          })
-          sources."psbt-2.0.1"
-          sources."qs-6.9.7"
-          sources."raw-body-2.4.3"
-          sources."safe-buffer-5.2.1"
-          sources."send-0.17.2"
-          sources."serve-static-1.14.2"
-          sources."statuses-1.5.0"
-          sources."tiny-secp256k1-2.2.0"
-          sources."type-fest-2.12.2"
-          sources."ws-8.5.0"
-        ];
-      })
+      sources."ln-telegram-3.22.1"
       sources."lodash-4.17.21"
       sources."lodash.camelcase-4.3.0"
       sources."lodash.difference-4.5.0"
@@ -81548,7 +81337,7 @@ in
       sources."long-4.0.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
-      sources."luxon-2.3.2"
+      sources."luxon-2.4.0"
       sources."macaroon-3.0.4"
       (sources."make-dir-3.1.0" // {
         dependencies = [
@@ -81619,6 +81408,7 @@ in
           sources."bolt01-1.2.4"
           sources."bolt07-1.8.1"
           sources."bolt09-0.2.2"
+          sources."colorette-2.0.16"
           sources."cookie-0.4.2"
           sources."depd-1.1.2"
           sources."destroy-1.0.4"
@@ -82626,7 +82416,7 @@ in
       sources."asn1-0.2.6"
       sources."assert-never-1.2.1"
       sources."assert-plus-1.0.0"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
@@ -84079,10 +83869,10 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "2.0.11";
+    version = "2.0.13";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.0.11.tgz";
-      sha512 = "mZKk7BqqEJXbls3+hqwx93c/31E+mSV4B7lc9PP2KdbmdRt2Qfgql3Q/AKIqrnMXMXpQkEh4tM0HqxMjA/Jeqw==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.0.13.tgz";
+      sha512 = "bupth/QUGwryG8KIjgBb8catXS8OcgzUj6tZPJ+OGC4rppGLZOfkiyW0+rQsQ5BRGos8SZi9iGiFltSZVSM9PA==";
     };
     dependencies = [
       sources."@jsii/check-node-1.59.0"
@@ -84101,8 +83891,8 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdk8s-2.3.17"
-      sources."cdk8s-plus-22-2.0.0-rc.7"
+      sources."cdk8s-2.3.19"
+      sources."cdk8s-plus-22-2.0.0-rc.11"
       sources."chalk-4.1.2"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
@@ -84115,7 +83905,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.30.0"
-      sources."constructs-10.1.27"
+      sources."constructs-10.1.31"
       sources."date-format-4.0.11"
       sources."debug-4.3.4"
       sources."decamelize-5.0.1"
@@ -84205,14 +83995,14 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.581" // {
+      (sources."jsii-srcmak-0.1.583" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2jsii-0.3.31"
+      sources."json2jsii-0.3.33"
       sources."jsonfile-6.1.0"
       sources."jsonschema-1.4.1"
       sources."locate-path-5.0.0"
@@ -84389,7 +84179,7 @@ in
       sources."combined-stream-1.0.8"
       sources."commonmark-0.30.0"
       sources."concat-map-0.0.1"
-      sources."constructs-10.1.27"
+      sources."constructs-10.1.31"
       sources."cookie-0.4.2"
       sources."cross-spawn-7.0.3"
       sources."date-format-4.0.11"
@@ -84537,7 +84327,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-srcmak-0.1.581" // {
+      (sources."jsii-srcmak-0.1.583" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -84946,10 +84736,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.23.3";
+    version = "0.23.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.23.3.tgz";
-      sha512 = "IJ6Z7wmyhufVD69rzc0NI4g4OH7fw88bJhfhZCeqTikk50IKBfd7D3hikuF8hbilu0M+67Z2RlZkaFFUgrnLhQ==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.23.4.tgz";
+      sha512 = "XaA+RgnSMLmGpJnXLGWZCH5sONP80uYLpzNlwObMvs0AOuN3vXsu7qTE90qc5Jt/S6RIkF+u/XGDVb/z51E12g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85771,11 +85561,11 @@ in
         ];
       })
       sources."braces-3.0.2"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -85812,7 +85602,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -86812,7 +86602,7 @@ in
     dependencies = [
       sources."@colors/colors-1.5.0"
       sources."@dabh/diagnostics-2.0.3"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."bintrees-1.0.2"
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
@@ -87054,7 +86844,7 @@ in
       sources."through2-4.0.2"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -87944,7 +87734,7 @@ in
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."quicktask-1.1.0"
       sources."raf-3.3.2"
       sources."readable-stream-2.3.7"
@@ -88958,7 +88748,7 @@ in
   "deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop" = nodeEnv.buildNodePackage {
     name = "deltachat-desktop";
     packageName = "deltachat-desktop";
-    version = "1.30.0";
+    version = "1.30.1";
     src = ../../applications/networking/instant-messengers/deltachat-desktop;
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
@@ -89151,7 +88941,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
       sources."cache-base-1.0.1"
@@ -89163,7 +88953,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camel-case-4.1.2"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."capital-case-1.0.4"
       sources."chalk-2.4.2"
       sources."change-case-4.1.2"
@@ -89191,20 +88981,10 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."component-emitter-1.3.0"
-      (sources."concat-stream-1.6.2" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."concat-stream-1.6.2"
       sources."config-chain-1.1.13"
       sources."constant-case-3.0.4"
-      (sources."convert-source-map-1.8.0" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."convert-source-map-1.8.0"
       sources."copy-descriptor-0.1.1"
       (sources."core-js-compat-3.22.8" // {
         dependencies = [
@@ -89223,7 +89003,7 @@ in
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.4"
       sources."define-property-2.0.2"
-      sources."deltachat-node-1.84.0"
+      sources."deltachat-node-1.86.0"
       sources."detect-node-2.1.0"
       sources."dom-helpers-5.2.1"
       sources."dom4-2.1.6"
@@ -89235,14 +89015,14 @@ in
           sources."@types/node-16.11.38"
         ];
       })
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-js-clean-4.0.0"
       sources."emoji-mart-3.0.1"
       sources."emoji-regex-9.2.2"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.1"
-      sources."error-stack-parser-2.0.7"
+      sources."error-stack-parser-2.1.4"
       sources."es6-error-4.1.1"
       sources."esbuild-0.12.29"
       sources."escalade-3.1.1"
@@ -89481,14 +89261,8 @@ in
       sources."react-window-1.8.7"
       sources."react-window-infinite-loader-1.0.7"
       sources."react-zoom-pan-pinch-2.1.3"
-      sources."readable-stream-3.6.0"
-      (sources."readdirp-2.2.1" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."readable-stream-2.3.7"
+      sources."readdirp-2.2.1"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-10.0.1"
       sources."regenerator-runtime-0.13.9"
@@ -89514,7 +89288,7 @@ in
       sources."roarr-2.15.4"
       sources."rtcpeerconnection-shim-1.2.15"
       sources."rw-0.1.4"
-      sources."safe-buffer-5.2.1"
+      sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       (sources."sass-1.52.2" // {
         dependencies = [
@@ -89581,9 +89355,8 @@ in
       sources."source-map-support-0.5.21"
       sources."source-map-url-0.4.1"
       sources."split-string-3.1.0"
-      sources."split2-3.2.2"
       sources."sprintf-js-1.1.2"
-      sources."stackframe-1.2.1"
+      sources."stackframe-1.3.4"
       (sources."static-extend-0.1.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -89602,7 +89375,7 @@ in
         ];
       })
       sources."stream-exhaust-1.0.2"
-      sources."string_decoder-1.3.0"
+      sources."string_decoder-1.1.1"
       sources."strip-json-comments-2.0.1"
       sources."sumchecker-3.0.1"
       sources."supercluster-7.1.5"
@@ -90643,13 +90416,13 @@ in
       sources."auto-bind-4.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."caller-callsite-4.1.0"
       sources."caller-path-3.0.1"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -90678,7 +90451,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -90943,17 +90716,17 @@ in
       })
       sources."@fluentui/date-time-utilities-8.5.1"
       sources."@fluentui/dom-utilities-2.2.1"
-      sources."@fluentui/font-icons-mdl2-8.4.0"
-      sources."@fluentui/foundation-legacy-8.2.7"
+      sources."@fluentui/font-icons-mdl2-8.4.1"
+      sources."@fluentui/foundation-legacy-8.2.8"
       sources."@fluentui/keyboard-key-0.4.1"
       sources."@fluentui/merge-styles-8.5.2"
-      sources."@fluentui/react-8.72.1"
-      sources."@fluentui/react-focus-8.6.0"
+      sources."@fluentui/react-8.72.2"
+      sources."@fluentui/react-focus-8.6.1"
       sources."@fluentui/react-hooks-8.5.5"
       sources."@fluentui/react-portal-compat-context-9.0.0-rc.2"
       sources."@fluentui/react-window-provider-2.2.1"
       sources."@fluentui/set-version-8.2.1"
-      sources."@fluentui/style-utilities-8.6.7"
+      sources."@fluentui/style-utilities-8.7.0"
       sources."@fluentui/theme-2.6.6"
       sources."@fluentui/utilities-8.8.3"
       (sources."@gulp-sourcemaps/identity-map-2.0.1" // {
@@ -90977,7 +90750,7 @@ in
         ];
       })
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."@microsoft/load-themed-styles-1.10.267"
+      sources."@microsoft/load-themed-styles-1.10.268"
       sources."@node-rs/crc32-1.5.1"
       sources."@node-rs/crc32-android-arm-eabi-1.5.1"
       sources."@node-rs/crc32-android-arm64-1.5.1"
@@ -91903,7 +91676,7 @@ in
         ];
       })
       sources."mkdirp-1.0.4"
-      sources."mongodb-4.6.0"
+      sources."mongodb-4.7.0"
       sources."mongodb-connection-string-url-2.5.2"
       (sources."morgan-1.10.0" // {
         dependencies = [
@@ -92849,7 +92622,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.2"
       sources."buffer-indexof-1.1.1"
@@ -92891,7 +92664,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
@@ -93132,7 +92905,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -93157,7 +92930,7 @@ in
       sources."entities-2.2.0"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."error-stack-parser-2.0.7"
+      sources."error-stack-parser-2.1.4"
       sources."es-abstract-1.20.1"
       sources."es-array-method-boxes-properly-1.0.0"
       sources."es-to-primitive-1.2.1"
@@ -94105,7 +93878,7 @@ in
       sources."sshpk-1.17.0"
       sources."ssri-6.0.2"
       sources."stable-0.1.8"
-      sources."stackframe-1.2.1"
+      sources."stackframe-1.3.4"
       (sources."static-extend-0.1.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -95017,7 +94790,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      (sources."browserslist-4.20.3" // {
+      (sources."browserslist-4.20.4" // {
         dependencies = [
           sources."picocolors-1.0.0"
         ];
@@ -95050,7 +94823,7 @@ in
       })
       sources."camelcase-6.3.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -95309,7 +95082,7 @@ in
       sources."duplexer3-0.1.4"
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -96868,7 +96641,7 @@ in
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."caller-callsite-4.1.0"
@@ -96876,7 +96649,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
@@ -96901,7 +96674,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.981744"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -97511,7 +97284,7 @@ in
         ];
       })
       sources."@opentelemetry/api-1.1.0"
-      sources."@opentelemetry/semantic-conventions-1.3.0"
+      sources."@opentelemetry/semantic-conventions-1.3.1"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -97571,7 +97344,7 @@ in
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."ast-types-0.13.4"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
@@ -99259,7 +99032,7 @@ in
       sources."which-typed-array-1.1.8"
       (sources."winston-3.7.2" // {
         dependencies = [
-          sources."async-3.2.3"
+          sources."async-3.2.4"
           sources."readable-stream-3.6.0"
         ];
       })
@@ -99367,10 +99140,10 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "4.15.1";
+    version = "4.16.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.15.1.tgz";
-      sha512 = "PlwcfOYVpG1/YsctnY8M2sNt1wNR46AQD0SKg/lTMdjB/EhBp4jNQNYTEp5eZihOu7Ap98/igM+RMrAUFttj5g==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.16.0.tgz";
+      sha512 = "VBQK46y5ZFKNQT4rCH134Du//y2hrxf7NXPB4WN+WzzplwtSo6wmU7cG1rPZWVNDCwZcJ1fpJCVIgKA62zAivw==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
@@ -99466,7 +99239,7 @@ in
       sources."boolbase-1.0.0"
       sources."boxen-5.1.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.2" // {
         dependencies = [
@@ -99475,7 +99248,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -99513,7 +99286,7 @@ in
       sources."configstore-5.0.1"
       sources."convert-hrtime-3.0.0"
       sources."convert-source-map-1.8.0"
-      sources."create-gatsby-2.15.1"
+      sources."create-gatsby-2.16.0"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -99540,7 +99313,7 @@ in
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
@@ -99575,8 +99348,8 @@ in
       sources."fs-extra-10.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."gatsby-core-utils-3.15.0"
-      (sources."gatsby-telemetry-3.15.0" // {
+      sources."gatsby-core-utils-3.16.0"
+      (sources."gatsby-telemetry-3.16.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."boxen-4.2.0"
@@ -99720,7 +99493,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."parse-path-4.0.3"
+      sources."parse-path-4.0.4"
       sources."parse-url-6.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
@@ -99735,7 +99508,7 @@ in
       sources."protocols-1.4.8"
       sources."pump-3.0.0"
       sources."pupa-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."query-string-6.14.1"
       sources."quick-lru-5.1.1"
       (sources."rc-1.2.8" // {
@@ -99781,7 +99554,6 @@ in
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
       sources."sisteransi-1.0.5"
-      sources."source-map-0.7.3"
       sources."split-on-first-1.1.0"
       sources."stack-trace-0.0.10"
       sources."strict-uri-encode-2.0.0"
@@ -100403,7 +100175,7 @@ in
       })
       sources."p-cancelable-2.1.1"
       sources."pump-3.0.0"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."query-string-7.1.1"
       sources."quick-lru-5.1.1"
       sources."readable-stream-3.6.0"
@@ -100437,10 +100209,10 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "5.0.0";
+    version = "5.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-5.0.0.tgz";
-      sha512 = "DFiHpvCtnsX/e80RZSFhLZz7e9Ev102M3vLy9UYGi4XUaB5A1d158rLvVNi2Z66+5eKgaGi0k6L83i2QhI06ow==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-5.0.1.tgz";
+      sha512 = "+uivild4BxNtPJhPU/iArWJx2cEcOqzwNmzca567AAiWB8RhDxTeXwoTPxbg15P6W1ykyWnfGKKvvfSuUNL++Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
@@ -100553,7 +100325,7 @@ in
         ];
       })
       sources."function-bind-1.1.1"
-      sources."fuse.js-6.4.1"
+      sources."fuse.js-6.6.2"
       sources."get-stream-6.0.1"
       sources."get-uri-3.0.2"
       sources."global-dirs-3.0.0"
@@ -100580,7 +100352,7 @@ in
       sources."indent-string-4.0.0"
       sources."inherits-2.0.4"
       sources."ini-2.0.0"
-      (sources."inquirer-8.2.2" // {
+      (sources."inquirer-8.2.4" // {
         dependencies = [
           sources."chalk-4.1.2"
         ];
@@ -101030,9 +100802,9 @@ in
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/import-6.6.16" // {
+      (sources."@graphql-tools/import-6.6.17" // {
         dependencies = [
-          sources."@graphql-tools/utils-8.6.12"
+          sources."@graphql-tools/utils-8.6.13"
           sources."tslib-2.4.0"
         ];
       })
@@ -101057,10 +100829,10 @@ in
           sources."tslib-2.3.1"
         ];
       })
-      (sources."@graphql-tools/schema-8.3.13" // {
+      (sources."@graphql-tools/schema-8.3.14" // {
         dependencies = [
-          sources."@graphql-tools/merge-8.2.13"
-          sources."@graphql-tools/utils-8.6.12"
+          sources."@graphql-tools/merge-8.2.14"
+          sources."@graphql-tools/utils-8.6.13"
           sources."tslib-2.4.0"
         ];
       })
@@ -101584,21 +101356,21 @@ in
       })
       sources."@cronvel/get-pixels-3.4.0"
       sources."@endemolshinegroup/cosmiconfig-typescript-loader-3.0.2"
-      sources."@graphql-tools/batch-execute-8.4.9"
-      sources."@graphql-tools/delegate-8.7.10"
-      sources."@graphql-tools/graphql-file-loader-7.3.14"
-      sources."@graphql-tools/import-6.6.16"
-      sources."@graphql-tools/json-file-loader-7.3.14"
-      sources."@graphql-tools/load-7.5.13"
-      sources."@graphql-tools/merge-8.2.13"
-      sources."@graphql-tools/schema-8.3.13"
-      (sources."@graphql-tools/url-loader-7.9.23" // {
+      sources."@graphql-tools/batch-execute-8.4.10"
+      sources."@graphql-tools/delegate-8.7.11"
+      sources."@graphql-tools/graphql-file-loader-7.3.15"
+      sources."@graphql-tools/import-6.6.17"
+      sources."@graphql-tools/json-file-loader-7.3.15"
+      sources."@graphql-tools/load-7.5.14"
+      sources."@graphql-tools/merge-8.2.14"
+      sources."@graphql-tools/schema-8.3.14"
+      (sources."@graphql-tools/url-loader-7.9.24" // {
         dependencies = [
           sources."ws-8.7.0"
         ];
       })
-      sources."@graphql-tools/utils-8.6.12"
-      sources."@graphql-tools/wrap-8.4.19"
+      sources."@graphql-tools/utils-8.6.13"
+      sources."@graphql-tools/wrap-8.4.20"
       sources."@iarna/toml-2.2.5"
       sources."@n1ru4l/graphql-live-query-0.9.0"
       sources."@nodelib/fs.scandir-2.1.5"
@@ -101788,7 +101560,7 @@ in
       sources."isomorphic-fetch-3.0.0"
       sources."isomorphic-ws-4.0.1"
       sources."iterall-1.3.0"
-      sources."jpeg-js-0.4.3"
+      sources."jpeg-js-0.4.4"
       sources."js-tokens-4.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."jsonfile-4.0.0"
@@ -101891,7 +101663,7 @@ in
         ];
       })
       sources."symbol-observable-1.2.0"
-      sources."sync-fetch-0.3.1"
+      sources."sync-fetch-0.4.1"
       sources."terminal-kit-1.49.4"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
@@ -103131,7 +102903,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -103228,7 +103000,7 @@ in
       sources."object-inspect-1.12.2"
       sources."opener-1.5.2"
       sources."portfinder-1.0.28"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."requires-port-1.0.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
@@ -103432,7 +103204,7 @@ in
       sources."assert-plus-1.0.0"
       sources."async-2.6.4"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.1148.0"
+      sources."aws-sdk-2.1150.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."base64-js-1.5.1"
@@ -103603,7 +103375,7 @@ in
       sources."verror-1.10.1"
       (sources."winston-2.4.6" // {
         dependencies = [
-          sources."async-3.2.3"
+          sources."async-3.2.4"
           sources."colors-1.0.3"
         ];
       })
@@ -104468,7 +104240,7 @@ in
       sources."proxy-agent-4.0.1"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."raw-body-2.5.1"
       sources."readable-stream-3.6.0"
       sources."restore-cursor-2.0.0"
@@ -104745,7 +104517,7 @@ in
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
       sources."chalk-4.1.2"
@@ -104914,13 +104686,13 @@ in
       sources."@aws-sdk/abort-controller-3.78.0"
       sources."@aws-sdk/chunked-blob-reader-3.55.0"
       sources."@aws-sdk/chunked-blob-reader-native-3.58.0"
-      (sources."@aws-sdk/client-s3-3.100.0" // {
+      (sources."@aws-sdk/client-s3-3.105.0" // {
         dependencies = [
           sources."fast-xml-parser-3.19.0"
         ];
       })
-      sources."@aws-sdk/client-sso-3.100.0"
-      (sources."@aws-sdk/client-sts-3.100.0" // {
+      sources."@aws-sdk/client-sso-3.105.0"
+      (sources."@aws-sdk/client-sts-3.105.0" // {
         dependencies = [
           sources."fast-xml-parser-3.19.0"
         ];
@@ -104928,10 +104700,10 @@ in
       sources."@aws-sdk/config-resolver-3.80.0"
       sources."@aws-sdk/credential-provider-env-3.78.0"
       sources."@aws-sdk/credential-provider-imds-3.81.0"
-      sources."@aws-sdk/credential-provider-ini-3.100.0"
-      sources."@aws-sdk/credential-provider-node-3.100.0"
+      sources."@aws-sdk/credential-provider-ini-3.105.0"
+      sources."@aws-sdk/credential-provider-node-3.105.0"
       sources."@aws-sdk/credential-provider-process-3.80.0"
-      sources."@aws-sdk/credential-provider-sso-3.100.0"
+      sources."@aws-sdk/credential-provider-sso-3.105.0"
       sources."@aws-sdk/credential-provider-web-identity-3.78.0"
       sources."@aws-sdk/eventstream-marshaller-3.78.0"
       sources."@aws-sdk/eventstream-serde-browser-3.78.0"
@@ -104953,12 +104725,13 @@ in
       sources."@aws-sdk/middleware-host-header-3.78.0"
       sources."@aws-sdk/middleware-location-constraint-3.78.0"
       sources."@aws-sdk/middleware-logger-3.78.0"
+      sources."@aws-sdk/middleware-recursion-detection-3.105.0"
       (sources."@aws-sdk/middleware-retry-3.80.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
       })
-      sources."@aws-sdk/middleware-sdk-s3-3.86.0"
+      sources."@aws-sdk/middleware-sdk-s3-3.105.0"
       sources."@aws-sdk/middleware-sdk-sts-3.78.0"
       sources."@aws-sdk/middleware-serde-3.78.0"
       sources."@aws-sdk/middleware-signing-3.78.0"
@@ -104971,7 +104744,7 @@ in
       sources."@aws-sdk/protocol-http-3.78.0"
       sources."@aws-sdk/querystring-builder-3.78.0"
       sources."@aws-sdk/querystring-parser-3.78.0"
-      sources."@aws-sdk/s3-request-presigner-3.100.0"
+      sources."@aws-sdk/s3-request-presigner-3.105.0"
       sources."@aws-sdk/service-error-classification-3.78.0"
       sources."@aws-sdk/shared-ini-file-loader-3.80.0"
       sources."@aws-sdk/signature-v4-3.78.0"
@@ -105110,7 +104883,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1148.0" // {
+      (sources."aws-sdk-2.1150.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-8.0.0"
@@ -105456,7 +105229,7 @@ in
       sources."isobject-2.1.0"
       sources."isstream-0.1.2"
       sources."jmespath-0.16.0"
-      sources."jpeg-js-0.4.3"
+      sources."jpeg-js-0.4.4"
       sources."js-tokens-4.0.0"
       sources."js-yaml-4.1.0"
       sources."jsbn-0.1.1"
@@ -105687,7 +105460,7 @@ in
         ];
       })
       sources."requires-port-1.0.0"
-      sources."reselect-4.1.5"
+      sources."reselect-4.1.6"
       sources."resolve-url-0.2.1"
       sources."retry-0.10.1"
       sources."rimraf-2.7.1"
@@ -106160,7 +105933,7 @@ in
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
       sources."side-channel-1.0.4"
@@ -107203,7 +106976,7 @@ in
       sources."picomatch-2.3.1"
       sources."pkg-up-3.1.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."queue-microtask-1.2.3"
       sources."redeyed-2.1.1"
       sources."restore-cursor-3.1.0"
@@ -107257,10 +107030,10 @@ in
   katex = nodeEnv.buildNodePackage {
     name = "katex";
     packageName = "katex";
-    version = "0.15.6";
+    version = "0.16.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz";
-      sha512 = "UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==";
+      url = "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz";
+      sha512 = "wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==";
     };
     dependencies = [
       sources."commander-8.3.0"
@@ -107587,12 +107360,12 @@ in
       sources."braces-3.0.2"
       sources."browser-or-node-1.3.0"
       sources."browser-process-hrtime-1.0.0"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."chalk-2.4.2"
       sources."chardet-1.4.0"
       sources."chownr-1.1.4"
@@ -107660,7 +107433,7 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -108652,10 +108425,10 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "5.0.0";
+    version = "5.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-5.0.0.tgz";
-      sha512 = "dUYmJ7H9k/xHtwKpQWLTNUa1jnFUiW4o4K2LFkRchlIijoIUT4yK/RprIxNvYCrLrEaOdZryvY5UZvSHI2tBxA==";
+      url = "https://registry.npmjs.org/lerna/-/lerna-5.1.0.tgz";
+      sha512 = "Ur55ZCdELQzpMmJmcw3qzk0khqMQizYvpsOE9j0Q7rPtJ/5NfsDo3moMgLwTevmT3LeijyBaJmXVAU/z6rbPDg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
@@ -108673,56 +108446,56 @@ in
       sources."@gar/promisify-1.1.3"
       sources."@hutson/parse-repository-url-3.0.2"
       sources."@isaacs/string-locale-compare-1.1.0"
-      sources."@lerna/add-5.0.0"
-      sources."@lerna/bootstrap-5.0.0"
-      sources."@lerna/changed-5.0.0"
-      sources."@lerna/check-working-tree-5.0.0"
-      sources."@lerna/child-process-5.0.0"
-      sources."@lerna/clean-5.0.0"
-      sources."@lerna/cli-5.0.0"
-      sources."@lerna/collect-uncommitted-5.0.0"
-      sources."@lerna/collect-updates-5.0.0"
-      sources."@lerna/command-5.0.0"
-      (sources."@lerna/conventional-commits-5.0.0" // {
+      sources."@lerna/add-5.1.0"
+      sources."@lerna/bootstrap-5.1.0"
+      sources."@lerna/changed-5.1.0"
+      sources."@lerna/check-working-tree-5.1.0"
+      sources."@lerna/child-process-5.1.0"
+      sources."@lerna/clean-5.1.0"
+      sources."@lerna/cli-5.1.0"
+      sources."@lerna/collect-uncommitted-5.1.0"
+      sources."@lerna/collect-updates-5.1.0"
+      sources."@lerna/command-5.1.0"
+      (sources."@lerna/conventional-commits-5.1.0" // {
         dependencies = [
           sources."pify-5.0.0"
         ];
       })
-      (sources."@lerna/create-5.0.0" // {
+      (sources."@lerna/create-5.1.0" // {
         dependencies = [
           sources."pify-5.0.0"
           sources."yargs-parser-20.2.4"
         ];
       })
-      sources."@lerna/create-symlink-5.0.0"
-      sources."@lerna/describe-ref-5.0.0"
-      sources."@lerna/diff-5.0.0"
-      sources."@lerna/exec-5.0.0"
-      sources."@lerna/filter-options-5.0.0"
-      sources."@lerna/filter-packages-5.0.0"
-      sources."@lerna/get-npm-exec-opts-5.0.0"
-      (sources."@lerna/get-packed-5.0.0" // {
+      sources."@lerna/create-symlink-5.1.0"
+      sources."@lerna/describe-ref-5.1.0"
+      sources."@lerna/diff-5.1.0"
+      sources."@lerna/exec-5.1.0"
+      sources."@lerna/filter-options-5.1.0"
+      sources."@lerna/filter-packages-5.1.0"
+      sources."@lerna/get-npm-exec-opts-5.1.0"
+      (sources."@lerna/get-packed-5.1.0" // {
         dependencies = [
           sources."ssri-8.0.1"
         ];
       })
-      sources."@lerna/github-client-5.0.0"
-      sources."@lerna/gitlab-client-5.0.0"
-      sources."@lerna/global-options-5.0.0"
-      sources."@lerna/has-npm-version-5.0.0"
-      sources."@lerna/import-5.0.0"
-      sources."@lerna/info-5.0.0"
-      sources."@lerna/init-5.0.0"
-      sources."@lerna/link-5.0.0"
-      sources."@lerna/list-5.0.0"
-      sources."@lerna/listable-5.0.0"
-      sources."@lerna/log-packed-5.0.0"
-      (sources."@lerna/npm-conf-5.0.0" // {
+      sources."@lerna/github-client-5.1.0"
+      sources."@lerna/gitlab-client-5.1.0"
+      sources."@lerna/global-options-5.1.0"
+      sources."@lerna/has-npm-version-5.1.0"
+      sources."@lerna/import-5.1.0"
+      sources."@lerna/info-5.1.0"
+      sources."@lerna/init-5.1.0"
+      sources."@lerna/link-5.1.0"
+      sources."@lerna/list-5.1.0"
+      sources."@lerna/listable-5.1.0"
+      sources."@lerna/log-packed-5.1.0"
+      (sources."@lerna/npm-conf-5.1.0" // {
         dependencies = [
           sources."pify-5.0.0"
         ];
       })
-      (sources."@lerna/npm-dist-tag-5.0.0" // {
+      (sources."@lerna/npm-dist-tag-5.1.0" // {
         dependencies = [
           sources."cacache-15.3.0"
           sources."make-fetch-happen-8.0.14"
@@ -108731,30 +108504,30 @@ in
           sources."ssri-8.0.1"
         ];
       })
-      sources."@lerna/npm-install-5.0.0"
-      (sources."@lerna/npm-publish-5.0.0" // {
+      sources."@lerna/npm-install-5.1.0"
+      (sources."@lerna/npm-publish-5.1.0" // {
         dependencies = [
           sources."normalize-package-data-3.0.3"
           sources."pify-5.0.0"
           sources."read-package-json-3.0.1"
         ];
       })
-      sources."@lerna/npm-run-script-5.0.0"
-      sources."@lerna/otplease-5.0.0"
-      sources."@lerna/output-5.0.0"
-      (sources."@lerna/pack-directory-5.0.0" // {
+      sources."@lerna/npm-run-script-5.1.0"
+      sources."@lerna/otplease-5.1.0"
+      sources."@lerna/output-5.1.0"
+      (sources."@lerna/pack-directory-5.1.0" // {
         dependencies = [
           sources."ignore-walk-3.0.4"
           sources."npm-packlist-2.2.2"
         ];
       })
-      sources."@lerna/package-5.0.0"
-      sources."@lerna/package-graph-5.0.0"
-      sources."@lerna/prerelease-id-from-version-5.0.0"
-      sources."@lerna/profiler-5.0.0"
-      sources."@lerna/project-5.0.0"
-      sources."@lerna/prompt-5.0.0"
-      (sources."@lerna/publish-5.0.0" // {
+      sources."@lerna/package-5.1.0"
+      sources."@lerna/package-graph-5.1.0"
+      sources."@lerna/prerelease-id-from-version-5.1.0"
+      sources."@lerna/profiler-5.1.0"
+      sources."@lerna/project-5.1.0"
+      sources."@lerna/prompt-5.1.0"
+      (sources."@lerna/publish-5.1.0" // {
         dependencies = [
           sources."cacache-15.3.0"
           sources."make-fetch-happen-8.0.14"
@@ -108763,25 +108536,25 @@ in
           sources."ssri-8.0.1"
         ];
       })
-      sources."@lerna/pulse-till-done-5.0.0"
-      sources."@lerna/query-graph-5.0.0"
-      sources."@lerna/resolve-symlink-5.0.0"
-      sources."@lerna/rimraf-dir-5.0.0"
-      sources."@lerna/run-5.0.0"
-      sources."@lerna/run-lifecycle-5.0.0"
-      sources."@lerna/run-topologically-5.0.0"
-      sources."@lerna/symlink-binary-5.0.0"
-      sources."@lerna/symlink-dependencies-5.0.0"
-      (sources."@lerna/temp-write-5.0.0" // {
+      sources."@lerna/pulse-till-done-5.1.0"
+      sources."@lerna/query-graph-5.1.0"
+      sources."@lerna/resolve-symlink-5.1.0"
+      sources."@lerna/rimraf-dir-5.1.0"
+      sources."@lerna/run-5.1.0"
+      sources."@lerna/run-lifecycle-5.1.0"
+      sources."@lerna/run-topologically-5.1.0"
+      sources."@lerna/symlink-binary-5.1.0"
+      sources."@lerna/symlink-dependencies-5.1.0"
+      (sources."@lerna/temp-write-5.1.0" // {
         dependencies = [
           sources."make-dir-3.1.0"
           sources."semver-6.3.0"
         ];
       })
-      sources."@lerna/timer-5.0.0"
-      sources."@lerna/validation-error-5.0.0"
-      sources."@lerna/version-5.0.0"
-      (sources."@lerna/write-log-file-5.0.0" // {
+      sources."@lerna/timer-5.1.0"
+      sources."@lerna/validation-error-5.1.0"
+      sources."@lerna/version-5.1.0"
+      (sources."@lerna/write-log-file-5.1.0" // {
         dependencies = [
           sources."write-file-atomic-3.0.3"
         ];
@@ -109268,7 +109041,7 @@ in
       sources."parent-module-1.0.1"
       sources."parse-conflict-json-2.0.2"
       sources."parse-json-5.2.0"
-      sources."parse-path-4.0.3"
+      sources."parse-path-4.0.4"
       sources."parse-url-6.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
@@ -109289,7 +109062,7 @@ in
       sources."protocols-1.4.8"
       sources."punycode-2.1.1"
       sources."q-1.5.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."query-string-6.14.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
@@ -109386,7 +109159,7 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."universal-user-agent-6.0.0"
@@ -110735,7 +110508,7 @@ in
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."boolbase-1.0.0"
       sources."chalk-4.1.2"
       sources."cheerio-1.0.0-rc.11"
@@ -110794,7 +110567,7 @@ in
       sources."accepts-1.3.8"
       sources."after-0.8.2"
       sources."arraybuffer.slice-0.0.7"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."async-limiter-1.0.1"
       sources."backo2-1.0.2"
       sources."base64-arraybuffer-0.1.5"
@@ -111397,7 +111170,7 @@ in
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-14.2.1"
+      sources."puppeteer-14.3.0"
       sources."readable-stream-3.6.0"
       sources."rimraf-3.0.2"
       sources."robust-predicates-3.0.1"
@@ -111586,7 +111359,7 @@ in
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
       sources."side-channel-1.0.4"
@@ -112067,7 +111840,7 @@ in
       sources."@colors/colors-1.5.0"
       sources."@dabh/diagnostics-2.0.3"
       sources."@msgpack/msgpack-2.7.2"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -114680,7 +114453,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -114697,7 +114470,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -114834,7 +114607,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -115590,10 +115363,10 @@ in
       sources."ansi-styles-3.2.1"
       sources."base-x-3.0.9"
       sources."boolbase-1.0.0"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -115624,7 +115397,7 @@ in
       sources."domutils-2.8.0"
       sources."dotenv-7.0.0"
       sources."dotenv-expand-5.1.0"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."entities-3.0.1"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
@@ -115960,7 +115733,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -117016,7 +116789,7 @@ in
         ];
       })
       sources."ast-types-0.13.4"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       (sources."async-listener-0.6.10" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -117202,10 +116975,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "7.1.8";
+    version = "7.1.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-7.1.8.tgz";
-      sha512 = "6E+iGdkAcEtEvmxgLGpHiK51ArFK8mBUFIQ6/x5LeL+YCWbi1r1Fy2UPN1dDWUjy2xauLjgIMp/KQ5s5b85EBA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-7.1.9.tgz";
+      sha512 = "YWA+iqayHb0MndHTyqvVPKQVYVCOoBYlQNLP3hAf2DT/Iw2EHVcP18yCT+xnsPNvkC4VYfQepE6AZvySQue1TA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -117512,13 +117285,13 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "3.14.0";
+    version = "3.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-3.14.0.tgz";
-      sha512 = "l9MOgNCn/paDE+i1K2fp9NZ+Du4trzPTJsGkaQHVBufTGqzoYHuNk8JfzXuIn0Gte6/ZjyKj652Jq/Lc1tp2yw==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-3.15.0.tgz";
+      sha512 = "HL1kGDuFi9PdhbVLYsQO9vAH9uRFAHk7ifUOQxSrzUDs7R4VfLtg45VvXz8VHwcgLY5h0OrDVe1TdEX7a4o9tg==";
     };
     dependencies = [
-      sources."@prisma/engines-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a"
+      sources."@prisma/engines-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -117533,21 +117306,21 @@ in
   "@prisma/language-server" = nodeEnv.buildNodePackage {
     name = "_at_prisma_slash_language-server";
     packageName = "@prisma/language-server";
-    version = "3.14.0";
+    version = "3.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-3.14.0.tgz";
-      sha512 = "KP562fcqP010ja+Srt6Hi3XOooVQ11SwMAFvY9SxJfdRaLvU/vLxGW3+SnkAjq3tbQ0ij1ZyJTmshMWh/Vwevw==";
+      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-3.15.0.tgz";
+      sha512 = "zTftMfWBTa2fA2PLUsAiWTML8RbhFceX2/xD02Rajv3zaslDDAmfoe/+KHJ7BUpcP9yACLENUJIEA43qeT9uHQ==";
     };
     dependencies = [
-      sources."@prisma/prisma-fmt-wasm-3.14.0-36.2b0c12756921c891fec4f68d9444e18c7d5d4a6a"
+      sources."@prisma/prisma-fmt-wasm-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372"
       sources."@types/js-levenshtein-1.1.1"
       sources."js-levenshtein-1.1.6"
       sources."klona-2.0.5"
-      sources."vscode-jsonrpc-6.0.0"
-      sources."vscode-languageserver-7.0.0"
-      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-jsonrpc-8.0.1"
+      sources."vscode-languageserver-8.0.1"
+      sources."vscode-languageserver-protocol-3.17.1"
       sources."vscode-languageserver-textdocument-1.0.4"
-      sources."vscode-languageserver-types-3.16.0"
+      sources."vscode-languageserver-types-3.17.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -118037,7 +117810,7 @@ in
       sources."prepend-http-2.0.0"
       sources."prompts-2.4.2"
       sources."pump-3.0.0"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."rc-1.2.8"
       sources."readline-sync-1.4.10"
       sources."register-protocol-win32-1.1.0"
@@ -118318,7 +118091,7 @@ in
     version = "2.0.1";
     src = fetchurl {
       url = "https://registry.npmjs.org/react-native-cli/-/react-native-cli-2.0.1.tgz";
-      sha1 = "f2cd3c7aa1b83828cdfba630e2dfd817df766d54";
+      sha512 = "QgkB1urUhGe9q1vcqQLIfNdCd/Qf3MdNQe19QO6lVjhIVKljlVMKtaK8RaZ8PCNB/cdXlO/G3tKUGk+ghMXE6w==";
     };
     dependencies = [
       sources."ansi-regex-2.1.1"
@@ -118737,7 +118510,7 @@ in
         ];
       })
       sources."browserify-zlib-0.1.4"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -118771,7 +118544,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -118992,7 +118765,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -120205,7 +119978,7 @@ in
     version = "0.13.3";
     src = fetchurl {
       url = "https://registry.npmjs.org/react-tools/-/react-tools-0.13.3.tgz";
-      sha1 = "da6ac7d4d7777a59a5e951cf46e72fd4b6b40a2c";
+      sha512 = "lmdjIRNk2cVUdlF/dyy6oP0nG2qrlX5qKFYRtiC5zK5Sg5QqgUEOrcS7Jz+kPNeOj9OWT7NfrR/cDvbGGSjCyg==";
     };
     dependencies = [
       sources."acorn-5.7.4"
@@ -120636,7 +120409,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       (sources."uri-js-4.4.1" // {
         dependencies = [
           sources."punycode-2.1.1"
@@ -121180,10 +120953,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.75.5";
+    version = "2.75.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.75.5.tgz";
-      sha512 = "JzNlJZDison3o2mOxVmb44Oz7t74EfSd1SQrplQk0wSaXV7uLQXtVdHbxlcT3w+8tZ1TL4r/eLfc7nAbz38BBA==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz";
+      sha512 = "OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -121215,14 +120988,14 @@ in
       sources."@types/json-schema-7.0.11"
       sources."@types/node-14.17.34"
       sources."@types/vscode-1.66.0"
-      sources."@typescript-eslint/eslint-plugin-5.27.0"
-      sources."@typescript-eslint/parser-5.27.0"
-      sources."@typescript-eslint/scope-manager-5.27.0"
-      sources."@typescript-eslint/type-utils-5.27.0"
-      sources."@typescript-eslint/types-5.27.0"
-      sources."@typescript-eslint/typescript-estree-5.27.0"
-      sources."@typescript-eslint/utils-5.27.0"
-      sources."@typescript-eslint/visitor-keys-5.27.0"
+      sources."@typescript-eslint/eslint-plugin-5.27.1"
+      sources."@typescript-eslint/parser-5.27.1"
+      sources."@typescript-eslint/scope-manager-5.27.1"
+      sources."@typescript-eslint/type-utils-5.27.1"
+      sources."@typescript-eslint/types-5.27.1"
+      sources."@typescript-eslint/typescript-estree-5.27.1"
+      sources."@typescript-eslint/utils-5.27.1"
+      sources."@typescript-eslint/visitor-keys-5.27.1"
       sources."@vscode/test-electron-2.1.3"
       sources."acorn-8.7.1"
       sources."acorn-jsx-5.3.2"
@@ -121487,7 +121260,7 @@ in
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."queue-microtask-1.2.3"
       (sources."rc-1.2.8" // {
         dependencies = [
@@ -121628,7 +121401,7 @@ in
     version = "0.0.5";
     src = fetchurl {
       url = "https://registry.npmjs.org/s3http/-/s3http-0.0.5.tgz";
-      sha1 = "c8fa1fffb8258ce68adf75df73f90fbb6f23d198";
+      sha512 = "AvzoPrG52y/LXjDmKiRoLrZbTJHXdfGYqzHlVLTrdK/+aeCI+RyGB/F1gd9qs6qwP4c1Ntdgvx9W5FziivG4+Q==";
     };
     dependencies = [
       sources."aws-sdk-1.18.0"
@@ -121691,7 +121464,7 @@ in
       sources."object-inspect-1.12.2"
       (sources."openid-2.0.10" // {
         dependencies = [
-          sources."qs-6.10.3"
+          sources."qs-6.10.5"
         ];
       })
       sources."pause-0.0.1"
@@ -121956,10 +121729,10 @@ in
       sources."archiver-utils-2.1.0"
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.1148.0" // {
+      (sources."aws-sdk-2.1150.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -122052,7 +121825,7 @@ in
           sources."type-1.2.0"
         ];
       })
-      sources."dayjs-1.11.2"
+      sources."dayjs-1.11.3"
       sources."debug-4.3.4"
       (sources."decompress-4.2.1" // {
         dependencies = [
@@ -122274,7 +122047,7 @@ in
       sources."promise-queue-2.2.5"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."querystring-0.2.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
@@ -123032,10 +122805,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.946.0";
+    version = "1.947.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.946.0.tgz";
-      sha512 = "3XE1rk5qF1DOb5t5bQlOFDyp4x1V7HjpppH+RDVIqq7is0Hf9NTHeOpeNALplJjVVyEIfAzqiJThKupWDx5ptg==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.947.0.tgz";
+      sha512 = "/u+HyhaIaFhnrpn+aOiGR0ts9ZR7mr6uiqgRn5EQIwaFKpCFOEnOJTlQAM25ggomqmxRldArMMXe4dBWw855LA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -123330,7 +123103,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.6.5"
+      sources."bipf-1.9.0"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -124297,7 +124070,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.1148.0" // {
+      (sources."aws-sdk-2.1150.0" // {
         dependencies = [
           sources."uuid-8.0.0"
         ];
@@ -124692,7 +124465,7 @@ in
       sources."once-1.4.0"
       (sources."openid-2.0.10" // {
         dependencies = [
-          sources."qs-6.10.3"
+          sources."qs-6.10.5"
         ];
       })
       sources."options-0.0.6"
@@ -124894,7 +124667,7 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."form-data-2.5.1"
-          sources."qs-6.10.3"
+          sources."qs-6.10.5"
           sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
         ];
@@ -124908,7 +124681,7 @@ in
           sources."esprima-4.0.1"
           sources."js-yaml-3.14.1"
           sources."lodash-3.10.1"
-          sources."qs-6.10.3"
+          sources."qs-6.10.5"
         ];
       })
       sources."swagger-schema-official-2.0.0-bab6bed"
@@ -124993,7 +124766,7 @@ in
       sources."window-size-0.1.0"
       (sources."winston-2.4.6" // {
         dependencies = [
-          sources."async-3.2.3"
+          sources."async-3.2.4"
         ];
       })
       sources."with-5.1.1"
@@ -126070,7 +125843,7 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."ms-2.1.3"
-          sources."qs-6.10.3"
+          sources."qs-6.10.5"
           sources."superagent-3.8.3"
         ];
       })
@@ -126250,7 +126023,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."undefsafe-2.0.5"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -126323,7 +126096,7 @@ in
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
       sources."anymatch-3.1.2"
-      sources."arg-5.0.1"
+      sources."arg-5.0.2"
       sources."binary-extensions-2.2.0"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
@@ -128688,7 +128461,7 @@ in
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
@@ -130439,7 +130212,7 @@ in
       sources."ajv-6.12.6"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
@@ -130882,10 +130655,10 @@ in
   typescript-language-server = nodeEnv.buildNodePackage {
     name = "typescript-language-server";
     packageName = "typescript-language-server";
-    version = "0.10.1";
+    version = "0.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-0.10.1.tgz";
-      sha512 = "Lk98jYbHthLOhldFziQhk0TubE7RvUtQaVW5un7hOR2uDVH78lQHf5RZsgtmlAECgZRxWXgTOJUZ+BWJ+v/a7A==";
+      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-0.11.0.tgz";
+      sha512 = "8nfW0+Ei7/h6c2/KCeduPbFxMDVJWok/H593v+gajxXrOCX4VMyoEVsu7BswMyyah8GWDbcNdNi9c812eBtH2A==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -130955,7 +130728,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.4"
+      sources."vscode-languageserver-textdocument-1.0.5"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-3.0.3"
       sources."which-2.0.2"
@@ -130974,10 +130747,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.15.5";
+    version = "3.16.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz";
-      sha512 = "hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz";
+      sha512 = "FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -131041,7 +130814,7 @@ in
       })
       sources."any-promise-1.3.0"
       sources."array-flatten-1.1.1"
-      sources."async-3.2.3"
+      sources."async-3.2.4"
       sources."balanced-match-1.0.2"
       sources."base64id-2.0.0"
       sources."blueimp-md5-2.19.0"
@@ -131651,10 +131424,10 @@ in
   vercel = nodeEnv.buildNodePackage {
     name = "vercel";
     packageName = "vercel";
-    version = "25.0.0";
+    version = "25.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vercel/-/vercel-25.0.0.tgz";
-      sha512 = "vBv5rKPiONRhE2Sh4QLzw77xwT0xKLPW3fF2kplF5JhKNonppC2Yvx+ktV2mUNzkCkNM7ruaVPktCiTgoJIBWQ==";
+      url = "https://registry.npmjs.org/vercel/-/vercel-25.0.1.tgz";
+      sha512 = "/IOCUIvxXw1by90fSOeTCgWQ8qMDgE7Mmcs7pb3CVLVdcZRJt6LJ97x49daFaLU/y4UKsPPGpB3brzdvqHVTBg==";
     };
     dependencies = [
       sources."@babel/runtime-7.18.3"
@@ -131684,7 +131457,7 @@ in
       sources."@vercel/go-2.0.0"
       sources."@vercel/next-3.0.0"
       sources."@vercel/nft-0.19.1"
-      sources."@vercel/node-2.0.0"
+      sources."@vercel/node-2.0.1"
       sources."@vercel/node-bridge-3.0.0"
       sources."@vercel/python-3.0.0"
       sources."@vercel/redwood-1.0.0"
@@ -132475,12 +132248,12 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."supports-color-7.2.0"
@@ -132520,7 +132293,7 @@ in
       sources."domelementtype-2.3.0"
       sources."domhandler-5.0.3"
       sources."domutils-3.0.1"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."enhanced-resolve-5.9.3"
@@ -132655,7 +132428,7 @@ in
       sources."process-nextick-args-2.0.1"
       sources."prr-1.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.10.3"
+      sources."qs-6.10.5"
       sources."randombytes-2.1.0"
       sources."read-1.0.7"
       sources."readable-stream-1.0.34"
@@ -133031,7 +132804,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.15.5"
+      sources."uglify-js-3.16.0"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -134754,7 +134527,7 @@ in
       sources."yauzl-2.10.0"
       (sources."zip-dir-2.0.0" // {
         dependencies = [
-          sources."async-3.2.3"
+          sources."async-3.2.4"
         ];
       })
     ];
@@ -134809,12 +134582,12 @@ in
       sources."acorn-import-assertions-1.8.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.20.3"
+      sources."browserslist-4.20.4"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001346"
+      sources."caniuse-lite-1.0.30001349"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.146"
+      sources."electron-to-chromium-1.4.147"
       sources."enhanced-resolve-5.9.3"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
@@ -134938,10 +134711,10 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "4.9.1";
+    version = "4.9.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz";
-      sha512 = "CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz";
+      sha512 = "H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==";
     };
     dependencies = [
       sources."@leichtgewicht/ip-codec-2.0.4"
@@ -134977,7 +134750,7 @@ in
           sources."bytes-3.1.2"
         ];
       })
-      sources."bonjour-service-1.0.12"
+      sources."bonjour-service-1.0.13"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."bytes-3.0.0"
@@ -136153,7 +135926,7 @@ in
       (sources."jake-10.8.5" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."async-3.2.3"
+          sources."async-3.2.4"
           sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index 40d1c3d9b31c..3b133407c30a 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,13 +1,18 @@
 { lib
 , buildDunePackage, camlp5
+, ocaml
+, menhir, menhirLib
+, stdlib-shims
 , re, perl, ncurses
 , ppxlib, ppx_deriving
 , ppxlib_0_15, ppx_deriving_0_15
 , coqPackages
-, version ? "1.14.1"
+, version ? if lib.versionAtLeast ocaml.version "4.07" then "1.15.2" else "1.14.1"
 }:
 with lib;
 let fetched = coqPackages.metaFetch ({
+    release."1.15.2".sha256 = "sha256-XgopNP83POFbMNyl2D+gY1rmqGg03o++Ngv3zJfCn2s=";
+    release."1.15.0".sha256 = "sha256:1ngdc41sgyzyz3i3lkzjhnj66gza5h912virkh077dyv17ysb6ar";
     release."1.14.1".sha256 = "sha256-BZPVL8ymjrE9kVGyf6bpc+GA2spS5JBpkUtZi04nPis=";
     release."1.13.7".sha256 = "10fnwz30bsvj7ii1vg4l1li5pd7n0qqmwj18snkdr5j9gk0apc1r";
     release."1.13.5".sha256 = "02a6r23mximrdvs6kgv6rp0r2dgk7zynbs99nn7lphw2c4189kka";
@@ -23,11 +28,16 @@ buildDunePackage rec {
   pname = "elpi";
   inherit (fetched) version src;
 
-  minimumOCamlVersion = "4.04";
+  minimalOCamlVersion = "4.04";
 
-  buildInputs = [ perl ncurses ];
+  buildInputs = [ perl ncurses ]
+  ++ optional (versionAtLeast version "1.15" || version == "dev") menhir;
 
-  propagatedBuildInputs = [ camlp5 re ]
+  propagatedBuildInputs = [ re stdlib-shims ]
+  ++ (if versionAtLeast version "1.15" || version == "dev"
+     then [ menhirLib ]
+     else [ camlp5 ]
+  )
   ++ (if lib.versionAtLeast version "1.13" || version == "dev"
      then [ ppxlib ppx_deriving ]
      else [ ppxlib_0_15 ppx_deriving_0_15 ]
@@ -43,6 +53,4 @@ buildDunePackage rec {
   postPatch = ''
     substituteInPlace elpi_REPL.ml --replace "tput cols" "${ncurses}/bin/tput cols"
   '';
-
-  useDune2 = true;
 }
diff --git a/pkgs/development/ocaml-modules/wasm/default.nix b/pkgs/development/ocaml-modules/wasm/default.nix
index 5d53d6db4186..3af1bd00a19b 100644
--- a/pkgs/development/ocaml-modules/wasm/default.nix
+++ b/pkgs/development/ocaml-modules/wasm/default.nix
@@ -1,19 +1,18 @@
 { stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
-if lib.versionOlder ocaml.version "4.03"
-|| lib.versionOlder "4.13" ocaml.version
+if lib.versionOlder ocaml.version "4.08"
 then throw "wasm is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-wasm";
-  version = "1.1.1";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "spec";
     rev = "opam-${version}";
-    sha256 = "1kp72yv4k176i94np0m09g10cviqp2pnpm7jmiq6ik7fmmbknk7c";
+    sha256 = "sha256:09s0v79x0ymzcp2114zkm3phxavdfnkkq67qz1ndnknbkziwqf3v";
   };
 
   nativeBuildInputs = [ ocaml findlib ocamlbuild ];
diff --git a/pkgs/development/python-modules/adb-shell/default.nix b/pkgs/development/python-modules/adb-shell/default.nix
index bc10948f070f..f117167c8df0 100644
--- a/pkgs/development/python-modules/adb-shell/default.nix
+++ b/pkgs/development/python-modules/adb-shell/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "adb-shell";
-  version = "0.4.2";
+  version = "0.4.3";
   format = "setuptools";
 
   disabled = !isPy3k;
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "JeffLIrion";
     repo = "adb_shell";
     rev = "v${version}";
-    hash = "sha256-8tclSjmLlTAIeq6t7YPGtJwvSwtlzQ7sRAQatcQRzeY=";
+    hash = "sha256-+RU3nyJpHq0r/9erEbjUILpwIPWq14HdOX7LkSxySs4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/canonicaljson/default.nix b/pkgs/development/python-modules/canonicaljson/default.nix
index d613bb9e8970..e5ecff7837f9 100644
--- a/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/pkgs/development/python-modules/canonicaljson/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "canonicaljson";
-  version = "1.6.1";
+  version = "1.6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qTZk9phVbb1Lq5w/xPs1g0zyU12h6gC2t3WNj+K7uCQ=";
+    hash = "sha256-rwC+jOnFiYV98Xa7lFlPDUOw4CfwJ6jXz4l4/bgZAko=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index 6aaabe3c744a..eb2e64191091 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -1,22 +1,27 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
-, plotly
-, flask
-, flask-compress
+, celery
 , dash-core-components
 , dash-html-components
 , dash-table
-, pytest-mock
+, diskcache
+, fetchFromGitHub
+, flask
+, flask-compress
 , mock
-, pyyaml
+, multiprocess
+, plotly
+, psutil
+, pytest-mock
 , pytestCheckHook
 , pythonOlder
+, pyyaml
+, redis
 }:
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.4.1";
+  version = "2.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -25,7 +30,7 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-7B1LEcEgUGJ/gDCDD4oURqli8I5YTJo9jl7l4E1aLVQ=";
+    hash = "sha256-Qh5oOkTxEbxXXDX+g9TDa5DiYBlMpnx0yKsn/XMfMF0=";
   };
 
   propagatedBuildInputs = [
@@ -37,6 +42,18 @@ buildPythonPackage rec {
     dash-table
   ];
 
+  passthru.optional-dependencies = {
+    celery = [
+      celery
+      redis
+    ];
+    diskcache = [
+      diskcache
+      multiprocess
+      psutil
+    ];
+  };
+
   checkInputs = [
     pytestCheckHook
     pytest-mock
@@ -50,12 +67,14 @@ buildPythonPackage rec {
     "tests/integration"
   ];
 
-  pythonImportsCheck = [ "dash" ];
+  pythonImportsCheck = [
+    "dash"
+  ];
 
   meta = with lib; {
     description = "Python framework for building analytical web applications";
     homepage = "https://dash.plot.ly/";
     license = licenses.mit;
-    maintainers = [ maintainers.antoinerg ];
+    maintainers = with maintainers; [ antoinerg ];
   };
 }
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
index 2a67ef167c54..b271861e2789 100644
--- a/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "databricks-connect";
-  version = "9.1.16";
+  version = "9.1.17";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-agdky7AhRuObU9GT8IpdgB3SWdHDBRnuoaAtYAlCv/4=";
+    sha256 = "sha256-QBGeXZ8zvRRjmKGs0vyBWTvcug3PF/BFV2asYTqsScw=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/development/python-modules/docopt-ng/default.nix b/pkgs/development/python-modules/docopt-ng/default.nix
index 7a18bfbc7cfa..60d14fa8e98f 100644
--- a/pkgs/development/python-modules/docopt-ng/default.nix
+++ b/pkgs/development/python-modules/docopt-ng/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "docopt-ng";
-  version = "0.7.2";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hs7qAy8M+lnmB3brDPOKxzZTWBAihyMg9H3IdGeNckQ=";
+    sha256 = "sha256-6mphooj8hk7uayLW/iiqIC1Z/Ib60F8W/145zE6n9uM=";
   };
 
   pythonImportsCheck = [ "docopt" ];
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index 570598e1a993..ccd816753a9a 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -17,7 +17,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.20.42";
+  version = "0.20.43";
   pname = "dulwich";
   format = "setuptools";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cro7YK5qVU0TMrO0CjRf6+FuxGnPYBS7RDtxmQLjPvA=";
+    hash = "sha256-/MIWTgE7OQqe46EJ1+97ldjeKDsueJuwfpSqMRXjKeo=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix
index fabc32412669..9ce21b794927 100644
--- a/pkgs/development/python-modules/fastapi-mail/default.nix
+++ b/pkgs/development/python-modules/fastapi-mail/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi-mail";
-  version = "1.0.8";
+  version = "1.0.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,8 +27,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "sabuhish";
     repo = pname;
-    rev = version;
-    hash = "sha256-PkA7qkdDUd7mrtvb6IbCzFRq6X0M3iKY+FKuNConJ5A=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-2Nb+FzmhsKvauT/yOCLHCEld8r+6niu9kV6EmjhC6S0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix
index e550fe89ec78..129d18639234 100644
--- a/pkgs/development/python-modules/fido2/default.nix
+++ b/pkgs/development/python-modules/fido2/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "fido2";
-  version = "0.9.3";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b45e89a6109cfcb7f1bb513776aa2d6408e95c4822f83a253918b944083466ec";
+    sha256 = "sha256-JQmklYtmbXR/1XVN+pNX2i2BtS7cDs/3W2jOqTkVTAI=";
   };
 
   propagatedBuildInputs = [ six cryptography ];
diff --git a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
index c6f17c8d8b00..ec355d51fd07 100644
--- a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-appengine-logging";
-  version = "1.1.1";
+  version = "1.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NhRQ7X17/Y79DvJT4haArrb23zzwV+XoJT9YUfjLvKc=";
+    hash = "sha256-undhXBAPB+3akWVu3ht0ZZBwErhmOq18TnXvloeZQjc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index 8f1266e92f52..e67b32272e54 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
- 
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-y8W0qwm4rTHlDO8L+/fhIJlfW5PonUhAYBU5wLIZJ94=";
diff --git a/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index 495623b3342a..d270a1efe72a 100644
--- a/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-org-policy";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-i60DIRtWtB1MEB2/MuNycy7T9MFPnlRtJ7lnFhDVJbE=";
+    sha256 = "sha256-hZzujuHtj5g/dBJUhZBV4h8zJjtI1xitfjkcVzURfKU=";
   };
 
   propagatedBuildInputs = [ google-api-core proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 6871296a763d..aac222df0ac3 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.12.1";
+  version = "2.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mTphUjL61NwaE7vKDgeCv+0WeA15FNQzvnY/6fHZ/QU=";
+    hash = "sha256-pcLgXIPWC7F6FS5Znn9DJMn/tsjNpE/7YlCxYoDDg+Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-redis/default.nix b/pkgs/development/python-modules/google-cloud-redis/default.nix
index ab432454bbaf..4a4e0e9a555f 100644
--- a/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "2.8.0";
+  version = "2.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7L3SjViQmzTp//5LWWG9VG+TQuPay70KZdUuzhy7HS0=";
+    hash = "sha256-qI7bGk+BkLIfhrJHAfk2DVBp8vRc5dPLKjdKH0FPj8s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index b5c9f186fe55..edb73853cace 100644
--- a/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.11.0";
+  version = "2.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-naE1e7T1E0P3MxJCMYc3YZ79v/3VTW19D/LhzRie7jk=";
+    hash = "sha256-tSy0d8kdyDSE+/gcg4B+fplnLJ4ipoa+TZvUoExaYVU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index 1df89058a6f5..5be79fd38fa5 100644
--- a/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.11.0";
+  version = "1.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+etRN3Q7Y1oYtQy0Fkoj6ujhx4gD5y+fUriu/eitIQM=";
+    hash = "sha256-XvjxdrGgdXaJqbArwdEWT31one+I43cpZ97PciM8yIA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index cd797240cc76..8c46aec477e0 100644
--- a/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.14.0";
+  version = "2.14.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-D8t8+rscImUvpHCEFGTzLU5FpAMZ62iHhRfLzUXqGV8=";
+    hash = "sha256-ImE08djcrhhC0VQJmL69hbfUDBALPUyW9IaSh1CIJqs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-trace/default.nix b/pkgs/development/python-modules/google-cloud-trace/default.nix
index bb9eb5f477ac..8665718fb00f 100644
--- a/pkgs/development/python-modules/google-cloud-trace/default.nix
+++ b/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JkKW9vJAAkw3sHYDapRvu5jjunV8oWSg/ykDmd1wpyA=";
+    sha256 = "sha256-nxyd8zE8PEQupVutLWhLD4I1jNhhJ0ARpTi52f21iBE=";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-translate/default.nix b/pkgs/development/python-modules/google-cloud-translate/default.nix
index 4a9398ac4b42..ca961844a027 100644
--- a/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "3.7.3";
+  version = "3.7.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-c++DP97IhMKHKZqXWpVO/9Rw1q8eYs1ybNZDhviwB/A=";
+    hash = "sha256-B5MBpdcS6NN7rwvjLwbY55rV0dLDwWtnAadWsH2AwXE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/inkex/default.nix b/pkgs/development/python-modules/inkex/default.nix
index c1c5479dfd8f..3f8bc99eeb6b 100644
--- a/pkgs/development/python-modules/inkex/default.nix
+++ b/pkgs/development/python-modules/inkex/default.nix
@@ -1,6 +1,9 @@
 { buildPythonPackage
 , inkscape
+, cssselect
 , lxml
+, numpy
+, pygobject3
 , python
 }:
 
@@ -11,7 +14,10 @@ buildPythonPackage {
   format = "other";
 
   propagatedBuildInputs = [
+    cssselect
     lxml
+    numpy
+    pygobject3
   ];
 
   # We just copy the files.
diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix
index a55ca5cb2924..1cdf9d883a7d 100644
--- a/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonApplication rec {
   pname = "mkdocs-material";
-  version = "8.3.2";
+  version = "8.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonApplication rec {
     owner = "squidfunk";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-VcyBsIU2PJ2xh365kNAlO3wno3xushlaj43dIh1GkP8=";
+    hash = "sha256-4rJ1fKYIQli4j6x1/xipQeCXMfbILyroxrwbpcPGYiU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index cf5b79fb7114..b8900b0f5506 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -1,10 +1,11 @@
-{ lib
+ { lib
 , aiohttp
 , async-timeout
 , buildPythonPackage
 , crcmod
 , defusedxml
 , fetchFromGitHub
+, freezegun
 , jsonpickle
 , munch
 , mypy
@@ -20,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.18.5";
+  version = "0.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-J6RwPkObcoXIQ93nD8FNNjwllHoID4nFzqilArBS1C8=";
+    sha256 = "sha256-ST7eC7IXW47b1AlX25ubUPTi6Hkcjd+7L0tzht3fz9s=";
   };
 
   propagatedBuildInputs = [
@@ -45,6 +46,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    freezegun
     jsonpickle
     mypy
     pytest-aiohttp
diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix
index db598b368c5b..282dd59a05c0 100644
--- a/pkgs/development/python-modules/pre-commit-hooks/default.nix
+++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "pre-commit-hooks";
-  version = "4.2.0";
+  version = "4.3.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pre-commit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-jSu4LutEgpeAbCgSHgk6VXQKLZo00T3TrQVZxsNU1co=";
+    sha256 = "sha256-qdsSM+7ScSfxhmLAqwi1iraGHrhb5NBee/j+TKr2WUA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pulumi/default.nix b/pkgs/development/python-modules/pulumi/default.nix
index e38157c69071..3fb33af88958 100644
--- a/pkgs/development/python-modules/pulumi/default.nix
+++ b/pkgs/development/python-modules/pulumi/default.nix
@@ -66,20 +66,19 @@ buildPythonPackage rec {
     black
   ];
 
-  pythonImportsCheck = ["pulumi"];
-
+  sourceRoot="source/sdk/python/lib";
+  # we apply the modifications done in the pulumi/sdk/python/Makefile
+  # but without the venv code
   postPatch = ''
-    cp README.md sdk/python/lib
-    patchShebangs .
-    cd sdk/python/lib
-
-    substituteInPlace setup.py \
-      --replace "{VERSION}" "${version}"
+    cp ../../README.md .
+    sed -i "s/\''${VERSION}/${version}/g" setup.py
   '';
 
   # disabled because tests try to fetch go packages from the net
   doCheck = false;
 
+  pythonImportsCheck = ["pulumi"];
+
   meta = with lib; {
     description = "Modern Infrastructure as Code. Any cloud, any language";
     homepage = "https://github.com/pulumi/pulumi";
diff --git a/pkgs/development/python-modules/pyfxa/default.nix b/pkgs/development/python-modules/pyfxa/default.nix
index eb5403c2b968..46a25e2c6bba 100644
--- a/pkgs/development/python-modules/pyfxa/default.nix
+++ b/pkgs/development/python-modules/pyfxa/default.nix
@@ -1,37 +1,64 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests, cryptography, pybrowserid, hawkauthlib, six
-, grequests, mock, responses, pytest, pyjwt }:
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchPypi
+, grequests
+, hawkauthlib
+, mock
+, pybrowserid
+, pyjwt
+, pytestCheckHook
+, pythonOlder
+, requests
+, responses
+, setuptools
+, six
+}:
 
 buildPythonPackage rec {
-  pname = "PyFxA";
+  pname = "pyfxa";
   version = "0.7.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "6c85cd08cf05f7138dee1cf2a8a1d68fd428b7b5ad488917c70a2a763d651cdb";
+    pname = "PyFxA";
+    inherit version;
+    hash = "sha256-bIXNCM8F9xON7hzyqKHWj9Qot7WtSIkXxwoqdj1lHNs=";
   };
 
-  postPatch = ''
-    # Requires network access
-    rm fxa/tests/test_core.py
-  '';
-
   propagatedBuildInputs = [
-    pyjwt requests cryptography pybrowserid hawkauthlib six
+    cryptography
+    hawkauthlib
+    pybrowserid
+    pyjwt
+    requests
+    setuptools # imports pkg_resources
+    six
   ];
 
   checkInputs = [
-    grequests mock responses pytest
+    grequests
+    mock
+    responses
+    pytestCheckHook
   ];
 
-  # test_oath is mostly network calls
-  checkPhase = ''
-    pytest --ignore=fxa/tests/test_oauth.py
-  '';
+  pythonImportsCheck = [
+    "fxa"
+  ];
+
+  disabledTestPaths = [
+    # Requires network access
+    "fxa/tests/test_core.py"
+    "fxa/tests/test_oauth.py"
+  ];
 
   meta = with lib; {
-    description = "Firefox Accounts client library for Python";
+    description = "Firefox Accounts client library";
     homepage = "https://github.com/mozilla/PyFxA";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyroute2-core/default.nix b/pkgs/development/python-modules/pyroute2-core/default.nix
index 3676ce9a469c..096085a27103 100644
--- a/pkgs/development/python-modules/pyroute2-core/default.nix
+++ b/pkgs/development/python-modules/pyroute2-core/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-core";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.core";
     inherit version;
-    hash = "sha256-hwI7sSaR0938VeCShzZ39b2CAU5SJLqui8Ri3CGXPwk=";
+    hash = "sha256-9Odxls1lje7pUCu0UkhfQIgbL2dOZQkiV1J/kgfgxGw=";
   };
 
   # pyroute2 sub-modules have no tests
diff --git a/pkgs/development/python-modules/pyroute2-ethtool/default.nix b/pkgs/development/python-modules/pyroute2-ethtool/default.nix
index 515bdfb2d6d8..ba0f2a054e11 100644
--- a/pkgs/development/python-modules/pyroute2-ethtool/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ethtool/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ethtool";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ethtool";
     inherit version;
-    hash = "sha256-5i1zbKs40RXCQB1cn3jrDOX+Fgl0nknTFLsvI69udxw=";
+    hash = "sha256-3xFsK50WtnRS8ImEWU4Hke9Ndp1Asm4wPEBfQT1rYXU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ipdb/default.nix b/pkgs/development/python-modules/pyroute2-ipdb/default.nix
index 5a3b4d186556..944b1ab4cfc1 100644
--- a/pkgs/development/python-modules/pyroute2-ipdb/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ipdb/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipdb";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ipdb";
     inherit version;
-    hash = "sha256-emPIh94LqN/QCCLC6Mr+IiVyXtjdsmhduBdPko1V83A=";
+    hash = "sha256-UTP5LuZbBukfDpQPJ+N5ZFtKGFJppZfpsISnsm9eabs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ipset/default.nix b/pkgs/development/python-modules/pyroute2-ipset/default.nix
index 783405f0eafc..967b232cd234 100644
--- a/pkgs/development/python-modules/pyroute2-ipset/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ipset/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipset";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ipset";
     inherit version;
-    hash = "sha256-1Fk3imqMz9qx1zBcQ/Uyp2eVrTygGIklVF5/QBbuSoI=";
+    hash = "sha256-uIfclrm1tujUickd5R4uyDHvPExyC2M9mpm5NLF1rts=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ndb/default.nix b/pkgs/development/python-modules/pyroute2-ndb/default.nix
index b0e123bc4c4b..9bf7414c79ff 100644
--- a/pkgs/development/python-modules/pyroute2-ndb/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ndb/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ndb";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ndb";
     inherit version;
-    hash = "sha256-kjgeA7PV6JLvCvaZxe4y984wTo8ExU7Yf1Wr+7jNwu4=";
+    hash = "sha256-jz956VgO9Z9ZPlMQobB34wd04Og/XV7IP+J58htdk+Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-nftables/default.nix b/pkgs/development/python-modules/pyroute2-nftables/default.nix
index 04f9b29bd56f..a251c34a8b28 100644
--- a/pkgs/development/python-modules/pyroute2-nftables/default.nix
+++ b/pkgs/development/python-modules/pyroute2-nftables/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nftables";
-  version = "0.6.10";
+  version = "0.6.11";
 
   src = fetchPypi {
     pname = "pyroute2.nftables";
     inherit version;
-    sha256 = "sha256-dUuCTGs7RaEehsAgK7yNw11tE3VGtT5LxDilMVWpCNU=";
+    sha256 = "sha256-2SHAH4HBcXknCa2rdHk1s+ju+IN5ndcLPD8dgSGagqU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-nslink/default.nix b/pkgs/development/python-modules/pyroute2-nslink/default.nix
index 368e9cc9fb55..af4d6a7a01d1 100644
--- a/pkgs/development/python-modules/pyroute2-nslink/default.nix
+++ b/pkgs/development/python-modules/pyroute2-nslink/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nslink";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.nslink";
     inherit version;
-    hash = "sha256-PynJRg2pXZIeB4Ucz/tvghdEt1iWAr8azjET9hsnUPE=";
+    hash = "sha256-R94n1UEceOMmXXbCCkgq6N2JLnp2eqAW4qweIpNI2CI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-protocols/default.nix b/pkgs/development/python-modules/pyroute2-protocols/default.nix
index 401786f7cd60..9cf62994c3a1 100644
--- a/pkgs/development/python-modules/pyroute2-protocols/default.nix
+++ b/pkgs/development/python-modules/pyroute2-protocols/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-protocols";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.protocols";
     inherit version;
-    hash = "sha256-xMTKAJC++X1zO7rm+cUr0IuEDxkllyje00Omv9tLZ6E=";
+    hash = "sha256-AnmW9ILlcZh2mwO5fbhY4ZazWSAy2wHJgLp5Anlmxk4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index 54540197f72b..a95356d58199 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.6.10";
+  version = "0.6.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Vj7W3/yQPYIUFEdvNv3AS9OqddqtISRbcmWUJxc5JiI=";
+    hash = "sha256-E2NGvmbVUuRUHQZ52/+say4SN9/TnuGpUGL4UCRJF70=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyshark/default.nix b/pkgs/development/python-modules/pyshark/default.nix
index ded9bcbbc4ed..a0ba11a4a370 100644
--- a/pkgs/development/python-modules/pyshark/default.nix
+++ b/pkgs/development/python-modules/pyshark/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyshark";
-  version = "0.4.5";
+  version = "0.4.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
     repo = pname;
     # 0.4.5 was the last release which was tagged
     # https://github.com/KimiNewt/pyshark/issues/541
-    rev = "8f8f13aba6ae716aa0a48175255063fe542fdc3b";
-    hash = "sha256-v9CC9hgTABAiJ0qiFZ/9/zMmHzJXKq3neGtTq/ucnT4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-yEpUFihETKta3+Xb8eSyTZ1uSi7ao4OqWzsCgDLLhe8=";
   };
 
   sourceRoot = "${src.name}/src";
diff --git a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
index 46346f466b20..b9d82584a503 100644
--- a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-insightidr";
-  version = "0.1.5";
+  version = "0.1.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-insightidr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RjBRFNMIpjW/x5vShXUgi25oOmvRlD2zP6mNQJ7sG8M=";
+    hash = "sha256-Sg+AYoEbCmcqxw5dl8wmQcI+lFrAfFgDnQjiQh6r9Yc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
index a8c0b3d6ea67..b270fa79c88d 100644
--- a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-splunk";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-splunk";
     rev = "v${version}";
-    hash = "sha256-wcAqXFou20V2ZPOXCsF1Nky008q2xkfuI0RbTsatC6k=";
+    hash = "sha256-VRHrlcty3EpGnQkVJvsNWOJSW6rNE97Lqt36HmMR53A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix b/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
index 5ed92014fc2e..14129f148b19 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-pipeline-crowdstrike";
-  version = "0.1.5";
+  version = "0.1.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-pipeline-crowdstrike";
     rev = "v${version}";
-    hash = "sha256-TmvEWrkNu8gJ8rPFoRWd+uYob2rmmdasqxH1CYmz4Rk=";
+    hash = "sha256-5xX7NwM+Us0ToJa2miAw9KsCt2T+TqBnqHtwphZNxJI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix b/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
index 26f058c3e197..d308d72d805f 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-pipeline-sysmon";
-  version = "0.1.5";
+  version = "0.1.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-pipeline-sysmon";
     rev = "v${version}";
-    hash = "sha256-Bh0Qh+pY22lm/0vtJC4tFIl1KRF3zFQ8vcH0JEfYGAc=";
+    hash = "sha256-hKXnM3iqt6PnV+cMV3gEleBChd263sy2DovpIKg22fs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
index ef8595fa873c..a9eda723eb2c 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
@@ -29,6 +29,11 @@ buildPythonPackage rec {
     pysigma
   ];
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'pysigma = "^0.5.0"' 'pysigma = "^0.6.0"'
+  '';
+
   checkInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 210e90405817..17e6a27ea57d 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.5.2";
+  version = "0.6.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "v${version}";
-    hash = "sha256-U5jBFnWC73W9tFco5faiqGmk8K+Ig18f9HhXJ4vhhGs=";
+    hash = "sha256-/SZe4pzlhlkzW84WOjPOibfdznf5uLHL5RsNnT/EL9M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/quantum-gateway/default.nix b/pkgs/development/python-modules/quantum-gateway/default.nix
index 19b9ae22264a..272899a6bbbd 100644
--- a/pkgs/development/python-modules/quantum-gateway/default.nix
+++ b/pkgs/development/python-modules/quantum-gateway/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "quantum-gateway";
-  version = "0.0.6";
+  version = "0.0.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "cisasteelersfan";
     repo = "quantum_gateway";
     rev = version;
-    sha256 = "f2LYOr9xJSfbA/1aHfll5lg7r05o855Zkkk9HuRamP8=";
+    hash = "sha256-jwLfth+UaisPR0p+UHfm6qMXT2eSYWnsYEp0BqyeI9U=";
   };
 
   propagatedBuildInputs = [
@@ -39,6 +39,11 @@ buildPythonPackage rec {
     "quantum_gateway"
   ];
 
+  disabledTests = [
+    # Tests require network features
+    "TestGateway3100"
+  ];
+
   meta = with lib; {
     description = "Python library for interacting with Verizon Fios Quantum gateway devices";
     homepage = "https://github.com/cisasteelersfan/quantum_gateway";
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 979eb71d7c4a..2976f89e9c6e 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.93.0";
+  version = "2.93.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rVEYiX0e7dP2CQK4ceEPZu395vas69aZkQzJCana53c=";
+    hash = "sha256-EzIJ9+eo5eaXu4TdsvktHtA/wuqr8HUMqsl2pGyvs40=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 40bd609520f6..ee8b773c8b85 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.3.0";
+  version = "3.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xJ1Q++NxWtxXQUGTZ7OaRo0lVmSEIvELb8Tt846uLLM=";
+    hash = "sha256-f4fb2xBNhRrmul/Tp2ouFOIuBIE1kD6YuvCFcaOqgcA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/staticjinja/default.nix b/pkgs/development/python-modules/staticjinja/default.nix
index 0c1a698aa63c..e8621d8e954d 100644
--- a/pkgs/development/python-modules/staticjinja/default.nix
+++ b/pkgs/development/python-modules/staticjinja/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "staticjinja";
-  version = "4.1.2";
+  version = "4.1.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "staticjinja";
     repo = pname;
     rev = version;
-    sha256 = "0qqyadhqsn66b7qrpfj08qc899pjwfa2byqqzh73xq1n22i4cy30";
+    sha256 = "sha256-w6ge5MQXNRHCM43jKnagTlbquJJys7mprgBOS2uuwHQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/validphys2/default.nix b/pkgs/development/python-modules/validphys2/default.nix
index d434cbcc621c..c417cb47e2d3 100644
--- a/pkgs/development/python-modules/validphys2/default.nix
+++ b/pkgs/development/python-modules/validphys2/default.nix
@@ -1,7 +1,12 @@
 { lib
 , buildPythonPackage
+, lhapdf
 , nnpdf
+, prompt-toolkit
 , reportengine
+, requests
+, seaborn
+, validobj
 }:
 
 buildPythonPackage rec {
@@ -21,8 +26,13 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    lhapdf
     nnpdf
+    prompt-toolkit
     reportengine
+    requests
+    seaborn
+    validobj
   ];
 
   doCheck = false; # no tests
diff --git a/pkgs/development/python-modules/webexteamssdk/default.nix b/pkgs/development/python-modules/webexteamssdk/default.nix
index e70cdfd96c86..1e81e90af9a6 100644
--- a/pkgs/development/python-modules/webexteamssdk/default.nix
+++ b/pkgs/development/python-modules/webexteamssdk/default.nix
@@ -3,19 +3,23 @@
 , fetchFromGitHub
 , future
 , pyjwt
+, pythonOlder
 , requests
 , requests-toolbelt
 }:
 
 buildPythonPackage rec {
   pname = "webexteamssdk";
-  version = "1.6";
+  version = "1.6.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "CiscoDevNet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0bw28ag1iqyqlxz83m4qb3r94kipv5mpf3bsvc8zv5vh4dv52bp2";
+    hash = "sha256-xlkmXl4tVm48drXmkUijv9GNXzJcDnfSKbOMciPIRRo=";
   };
 
   propagatedBuildInputs = [
@@ -27,7 +31,10 @@ buildPythonPackage rec {
 
   # Tests require a Webex Teams test domain
   doCheck = false;
-  pythonImportsCheck = [ "webexteamssdk" ];
+
+  pythonImportsCheck = [
+    "webexteamssdk"
+  ];
 
   meta = with lib; {
     description = "Python module for Webex Teams APIs";
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index 87a0fd54d2d9..5b5de10973f5 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.21.3";
+  version = "0.21.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "XKNX";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-AGKozbVdXfRPvaU1Et8GFu3vdNRLA8ZiV8Xc6T7BhOQ=";
+    sha256 = "sha256-eKbEeW+pa8lUbbzcvexURa6raN3HFzIWjwqE3L80KTY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yolink-api/default.nix b/pkgs/development/python-modules/yolink-api/default.nix
index 5dcfb9030550..17cd0d345faf 100644
--- a/pkgs/development/python-modules/yolink-api/default.nix
+++ b/pkgs/development/python-modules/yolink-api/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "yolink-api";
-  version = "0.0.7";
+  version = "0.0.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "YoSmart-Inc";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-zdCHKckt28abeJ6PQjX50e/4wOl/xx0TKFEQaUIqrYo=";
+    hash = "sha256-jKyugylgV9B8+PxUPsz4YtQjCfhB8NA2BYMxJOqkIP8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python2-modules/click/default.nix b/pkgs/development/python2-modules/click/default.nix
deleted file mode 100644
index fcbd4d0981af..000000000000
--- a/pkgs/development/python2-modules/click/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, locale, pytestCheckHook }:
-
-buildPythonPackage rec {
-  pname = "click";
-  version = "7.1.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
-  };
-
-  postPatch = ''
-    substituteInPlace src/click/_unicodefun.py \
-      --replace "'locale'" "'${locale}/bin/locale'"
-  '';
-
-  checkInputs = [ pytestCheckHook ];
-
-  meta = with lib; {
-    homepage = "https://click.palletsprojects.com/";
-    description = "Create beautiful command line interfaces in Python";
-    longDescription = ''
-      A Python package for creating beautiful command line interfaces in a
-      composable way, with as little code as necessary.
-    '';
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/python2-modules/cryptography/default.nix b/pkgs/development/python2-modules/cryptography/default.nix
deleted file mode 100644
index 0b4e2ae394cd..000000000000
--- a/pkgs/development/python2-modules/cryptography/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ lib
-, stdenv
-, callPackage
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, ipaddress
-, openssl
-, darwin
-, packaging
-, six
-, isPyPy
-, cffi
-, pytest
-, pretend
-, iso8601
-, pytz
-, hypothesis
-, enum34
-}:
-
-let
-  cryptography-vectors = callPackage ./vectors.nix { };
-in
-buildPythonPackage rec {
-  pname = "cryptography";
-  version = "3.3.2"; # Also update the hash in vectors-3.3.nix
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s";
-  };
-
-  patches = [ ./cryptography-py27-warning.patch ];
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = lib.optionals (!isPyPy) [
-    cffi
-  ];
-
-  buildInputs = [ openssl ]
-    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
-  propagatedBuildInputs = [
-    packaging
-    six
-  ] ++ lib.optionals (!isPyPy) [
-    cffi
-  ] ++ lib.optionals isPy27 [
-    ipaddress
-    enum34
-  ];
-
-  checkInputs = [
-    cryptography-vectors
-    hypothesis
-    iso8601
-    pretend
-    pytest
-    pytz
-  ];
-
-  checkPhase = ''
-    py.test --disable-pytest-warnings tests
-  '';
-
-  # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
-  # can do until nix 1.11's release
-  __impureHostDeps = [ "/usr/lib" ];
-
-  meta = with lib; {
-    description = "A package which provides cryptographic recipes and primitives";
-    longDescription = ''
-      Cryptography includes both high level recipes and low level interfaces to
-      common cryptographic algorithms such as symmetric ciphers, message
-      digests, and key derivation functions.
-      Our goal is for it to be your "cryptographic standard library". It
-      supports Python 2.7, Python 3.5+, and PyPy 5.4+.
-    '';
-    homepage = "https://github.com/pyca/cryptography";
-    changelog = "https://cryptography.io/en/latest/changelog/#v"
-      + replaceStrings [ "." ] [ "-" ] version;
-    license = with licenses; [ asl20 bsd3 psfl ];
-    maintainers = with maintainers; [ primeos ];
-  };
-}
diff --git a/pkgs/development/python2-modules/cryptography/vectors.nix b/pkgs/development/python2-modules/cryptography/vectors.nix
deleted file mode 100644
index 4d6214807e73..000000000000
--- a/pkgs/development/python2-modules/cryptography/vectors.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ buildPythonPackage, fetchPypi, lib, cryptography }:
-
-buildPythonPackage rec {
-  pname = "cryptography-vectors";
-  # The test vectors must have the same version as the cryptography package:
-  version = cryptography.version;
-
-  src = fetchPypi {
-    pname = "cryptography_vectors";
-    inherit version;
-    sha256 = "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc";
-  };
-
-  # No tests included
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Test vectors for the cryptography package";
-    homepage = "https://cryptography.io/en/latest/development/test-vectors/";
-    # Source: https://github.com/pyca/cryptography/tree/master/vectors;
-    license = with licenses; [ asl20 bsd3 ];
-    maintainers = with maintainers; [ primeos ];
-  };
-}
diff --git a/pkgs/development/python2-modules/decorator/default.nix b/pkgs/development/python2-modules/decorator/default.nix
deleted file mode 100644
index 8e8fd28f0b54..000000000000
--- a/pkgs/development/python2-modules/decorator/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-}:
-
-buildPythonPackage rec {
-  pname = "decorator";
-  version = "4.4.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3";
-  };
-
-  meta = with lib; {
-    homepage = "https://pypi.python.org/pypi/decorator";
-    description = "Better living through Python with decorators";
-    license = lib.licenses.mit;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/pkgs/development/python2-modules/flask/default.nix b/pkgs/development/python2-modules/flask/default.nix
deleted file mode 100644
index 27f436c3c53c..000000000000
--- a/pkgs/development/python2-modules/flask/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, itsdangerous, click, werkzeug, jinja2, pytest }:
-
-buildPythonPackage rec {
-  version = "1.1.2";
-  pname = "Flask";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060";
-  };
-
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ itsdangerous click werkzeug jinja2 ];
-
-  checkPhase = ''
-    py.test
-  '';
-
-  # Tests require extra dependencies
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "http://flask.pocoo.org/";
-    description = "A microframework based on Werkzeug, Jinja 2, and good intentions";
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/python2-modules/freezegun/default.nix b/pkgs/development/python2-modules/freezegun/default.nix
deleted file mode 100644
index 7f77616f2a4e..000000000000
--- a/pkgs/development/python2-modules/freezegun/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, six
-, mock
-, nose
-, pytest
-}:
-
-buildPythonPackage rec {
-  pname = "freezegun";
-  version = "0.3.15";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e2062f2c7f95cc276a834c22f1a17179467176b624cc6f936e8bc3be5535ad1b";
-  };
-
-  propagatedBuildInputs = [ python-dateutil six ];
-  checkInputs = [ mock nose pytest ];
-
-  meta = with lib; {
-    description = "FreezeGun: Let your Python tests travel through time";
-    homepage = "https://github.com/spulec/freezegun";
-    license = licenses.asl20;
-  };
-
-}
diff --git a/pkgs/development/python2-modules/ipaddr/default.nix b/pkgs/development/python2-modules/ipaddr/default.nix
deleted file mode 100644
index b29ee9179287..000000000000
--- a/pkgs/development/python2-modules/ipaddr/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-}:
-
-buildPythonPackage rec {
-  pname = "ipaddr";
-  version = "2.2.0";
-  disabled = isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1ml8r8z3f0mnn381qs1snbffa920i9ycp6mm2am1d3aqczkdz4j0";
-  };
-
-  meta = with lib; {
-    description = "Google's IP address manipulation library";
-    homepage = "https://github.com/google/ipaddr-py";
-    license = licenses.asl20;
-  };
-
-}
diff --git a/pkgs/development/python2-modules/itsdangerous/default.nix b/pkgs/development/python2-modules/itsdangerous/default.nix
deleted file mode 100644
index d1669a1ed5bf..000000000000
--- a/pkgs/development/python2-modules/itsdangerous/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-}:
-
-buildPythonPackage rec {
-  pname = "itsdangerous";
-  version = "1.1.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19";
-  };
-
-  meta = with lib; {
-    description = "Helpers to pass trusted data to untrusted environments and back";
-    homepage = "https://pypi.python.org/pypi/itsdangerous/";
-    license = licenses.bsd0;
-  };
-
-}
diff --git a/pkgs/development/python2-modules/libcloud/default.nix b/pkgs/development/python2-modules/libcloud/default.nix
deleted file mode 100644
index 504e7753a978..000000000000
--- a/pkgs/development/python2-modules/libcloud/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, mock
-, pycrypto
-, requests
-, pytest-runner
-, pytest
-, requests-mock
-, typing
-, backports_ssl_match_hostname
-}:
-
-buildPythonPackage rec {
-  pname = "apache-libcloud";
-  version = "2.8.3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "70096690b24a7832cc5abdfda1954b49fddc1c09a348a1e6caa781ac867ed4c6";
-  };
-
-  checkInputs = [ mock pytest pytest-runner requests-mock ];
-  propagatedBuildInputs = [ pycrypto requests ]
-    ++ lib.optionals isPy27 [ typing backports_ssl_match_hostname ];
-
-  preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
-
-  # requires a certificates file
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A unified interface to many cloud providers";
-    homepage = "https://libcloud.apache.org/";
-    license = licenses.asl20;
-  };
-
-}
diff --git a/pkgs/development/python2-modules/lpod/default.nix b/pkgs/development/python2-modules/lpod/default.nix
deleted file mode 100644
index 9c719d234f89..000000000000
--- a/pkgs/development/python2-modules/lpod/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, docutils
-, pillow
-, isPy3k
-}:
-
-buildPythonPackage {
-  version = "1.1.7";
-  pname = "python-lpod";
-  # lpod library currently does not support Python 3.x
-  disabled = isPy3k;
-
-  propagatedBuildInputs = [ lxml docutils pillow ];
-
-  src = fetchFromGitHub {
-    owner = "lpod";
-    repo = "lpod-python";
-    rev = "dee32120ee582ff337b0c52a95a9a87cca71fd67";
-    sha256 = "1mikvzp27wxkzpr2lii4wg1hhx8h610agckqynvsrdc8v3nw9ciw";
-  };
-
-  meta = with lib; {
-    homepage = "https://github.com/lpod/lpod-python/";
-    description = "Library implementing the ISO/IEC 26300 OpenDocument Format standard (ODF) ";
-    license = licenses.gpl3;
-  };
-
-}
diff --git a/pkgs/development/python2-modules/pyjwt/default.nix b/pkgs/development/python2-modules/pyjwt/default.nix
deleted file mode 100644
index 011f526e520f..000000000000
--- a/pkgs/development/python2-modules/pyjwt/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
-, ecdsa
-, pytestCheckHook
-, pythonOlder
-}:
-
-buildPythonPackage rec {
-  pname = "pyjwt";
-  version = "1.7.1";
-
-  src = fetchPypi {
-    pname = "PyJWT";
-    inherit version;
-    sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
-  };
-
-  postPatch = ''
-    sed -i '/^addopts/d' setup.cfg
-  '';
-
-  propagatedBuildInputs = [
-    cryptography
-    ecdsa
-  ];
-
-  checkInputs = [
-    pytestCheckHook
-  ];
-
-  disabledTests = [
-    "test_ec_verify_should_return_false_if_signature_invalid"
-  ];
-
-  pythonImportsCheck = [ "jwt" ];
-
-  meta = with lib; {
-    description = "JSON Web Token implementation in Python";
-    homepage = "https://github.com/jpadilla/pyjwt";
-    license = licenses.mit;
-    knownVulnerabilities = [
-      "CVE-2022-29217"
-    ];
-  };
-}
diff --git a/pkgs/development/python2-modules/urllib3/default.nix b/pkgs/development/python2-modules/urllib3/default.nix
deleted file mode 100644
index c23835ce4dc2..000000000000
--- a/pkgs/development/python2-modules/urllib3/default.nix
+++ /dev/null
@@ -1,84 +0,0 @@
-{ lib
-, brotli
-, buildPythonPackage
-, certifi
-, cryptography
-, python-dateutil
-, fetchpatch
-, fetchPypi
-, idna
-, mock
-, pyopenssl
-, pysocks
-, pytest-freezegun
-, pytest-timeout
-, pytestCheckHook
-, tornado
-, trustme
-}:
-
-buildPythonPackage rec {
-  pname = "urllib3";
-  version = "1.26.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2021-28363.patch";
-      url = "https://github.com/urllib3/urllib3/commit/8d65ea1ecf6e2cdc27d42124e587c1b83a3118b0.patch";
-      sha256 = "1lqhrd11p03iv14bp89rh67ynf000swmwsfvr3jpfdycdqr3ka9q";
-    })
-  ];
-
-  propagatedBuildInputs = [
-    brotli
-    certifi
-    cryptography
-    idna
-    pyopenssl
-    pysocks
-  ];
-
-  checkInputs = [
-    python-dateutil
-    mock
-    pytest-freezegun
-    pytest-timeout
-    pytestCheckHook
-    tornado
-    trustme
-  ];
-
-  # Tests in urllib3 are mostly timeout-based instead of event-based and
-  # are therefore inherently flaky. On your own machine, the tests will
-  # typically build fine, but on a loaded cluster such as Hydra random
-  # timeouts will occur.
-  #
-  # The urllib3 test suite has two different timeouts in their test suite
-  # (see `test/__init__.py`):
-  # - SHORT_TIMEOUT
-  # - LONG_TIMEOUT
-  # When CI is in the env, LONG_TIMEOUT will be significantly increased.
-  # Still, failures can occur and for that reason tests are disabled.
-  doCheck = false;
-
-  preCheck = ''
-    export CI # Increases LONG_TIMEOUT
-  '';
-
-  pythonImportsCheck = [ "urllib3" ];
-
-  meta = with lib; {
-    description = "Powerful, sanity-friendly HTTP client for Python";
-    homepage = "https://github.com/shazow/urllib3";
-    license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
-    knownVulnerabilities = [
-      "CVE-2021-33503"
-    ];
-  };
-}
diff --git a/pkgs/development/python2-modules/vcrpy/default.nix b/pkgs/development/python2-modules/vcrpy/default.nix
deleted file mode 100644
index ddd4015aad1e..000000000000
--- a/pkgs/development/python2-modules/vcrpy/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ buildPythonPackage
-, lib
-, six
-, fetchPypi
-, pyyaml
-, mock
-, contextlib2
-, wrapt
-, pytest
-, pytest-httpbin
-, yarl
-, pythonOlder
-, pythonAtLeast
-}:
-
-buildPythonPackage rec {
-  pname = "vcrpy";
-  version = "3.0.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "21168d5ae14263a833d4b71acfd8278d8841114f24be1b4ab4a5719d0c7f07bc";
-  };
-
-  checkInputs = [
-    pytest
-    pytest-httpbin
-  ];
-
-  propagatedBuildInputs = [
-    pyyaml
-    wrapt
-    six
-  ]
-  ++ lib.optionals (pythonOlder "3.3") [ contextlib2 mock ]
-  ++ lib.optionals (pythonAtLeast "3.4") [ yarl ];
-
-  checkPhase = ''
-    py.test --ignore=tests/integration -k "not TestVCRConnection"
-  '';
-
-  meta = with lib; {
-    description = "Automatically mock your HTTP interactions to simplify and speed up testing";
-    homepage = "https://github.com/kevin1024/vcrpy";
-    license = licenses.mit;
-  };
-}
-
diff --git a/pkgs/development/python2-modules/werkzeug/default.nix b/pkgs/development/python2-modules/werkzeug/default.nix
deleted file mode 100644
index c03cc6935d2f..000000000000
--- a/pkgs/development/python2-modules/werkzeug/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi
-, itsdangerous, hypothesis
-, pytestCheckHook, requests
-, pytest-timeout
- }:
-
-buildPythonPackage rec {
-  pname = "Werkzeug";
-  version = "1.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c";
-  };
-
-  propagatedBuildInputs = [ itsdangerous ];
-  checkInputs = [ pytestCheckHook requests hypothesis pytest-timeout ];
-
-  postPatch = ''
-    # ResourceWarning causes tests to fail
-    rm tests/test_routing.py
-  '';
-
-  disabledTests = [
-    "test_save_to_pathlib_dst"
-    "test_cookie_maxsize"
-    "test_cookie_samesite_attribute"
-    "test_cookie_samesite_invalid"
-    "test_range_parsing"
-    "test_content_range_parsing"
-    "test_http_date_lt_1000"
-    "test_best_match_works"
-    "test_date_to_unix"
-    "test_easteregg"
-
-    # Seems to be a problematic test-case:
-    #
-    # > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
-    # E pytest.PytestUnraisableExceptionWarning: Exception ignored in: <_io.FileIO [closed]>
-    # E
-    # E Traceback (most recent call last):
-    # E   File "/nix/store/cwv8aj4vsqvimzljw5dxsxy663vjgibj-python3.9-Werkzeug-1.0.1/lib/python3.9/site-packages/werkzeug/formparser.py", line 318, in parse_multipart_headers
-    # E     return Headers(result)
-    # E ResourceWarning: unclosed file <_io.FileIO name=11 mode='rb+' closefd=True>
-    "test_basic_routing"
-    "test_merge_slashes_match"
-    "test_merge_slashes_build"
-    "TestMultiPart"
-    "TestHTTPUtility"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_get_machine_id"
-  ];
-
-  meta = with lib; {
-    homepage = "https://palletsprojects.com/p/werkzeug/";
-    description = "A WSGI utility library for Python";
-    license = licenses.bsd3;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/python2-modules/wsproto/default.nix b/pkgs/development/python2-modules/wsproto/default.nix
deleted file mode 100644
index a8488d8c4ab8..000000000000
--- a/pkgs/development/python2-modules/wsproto/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, h11, enum34, pytest }:
-
-buildPythonPackage rec {
-  pname = "wsproto";
-  version = "0.14.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "051s127qb5dladxa14n9nqajwq7xki1dz1was5r5v9df5a0jq8pd";
-  };
-
-  propagatedBuildInputs = [ h11 enum34 ];
-
-  checkInputs = [ pytest ];
-
-  checkPhase = ''
-    py.test
-  '';
-
-  meta = with lib; {
-    description = "Pure Python, pure state-machine WebSocket implementation";
-    homepage = "https://github.com/python-hyper/wsproto/";
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/python2-modules/wxPython/default.nix b/pkgs/development/python2-modules/wxPython/default.nix
deleted file mode 100644
index 6649c5f69315..000000000000
--- a/pkgs/development/python2-modules/wxPython/default.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ fetchurl
-, lib
-, stdenv
-, darwin
-, openglSupport ? true
-, libX11
-, wxGTK
-, wxmac
-, pkg-config
-, buildPythonPackage
-, pyopengl
-, isPy3k
-, isPyPy
-, python
-, cairo
-, pango
-}:
-
-assert wxGTK.unicode;
-
-buildPythonPackage rec {
-  pname = "wxPython";
-  version = "3.0.2.0";
-
-  disabled = isPy3k || isPyPy;
-  doCheck = false;
-
-  src = fetchurl {
-    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
-    sha256 = "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm";
-  };
-
-  dontUseSetuptoolsBuild = true;
-  dontUsePipInstall = true;
-
-  hardeningDisable = [ "format" ];
-
-  nativeBuildInputs = [ pkg-config ]
-    ++ (lib.optionals (!stdenv.isDarwin) [ wxGTK libX11 ])
-    ++ (lib.optionals stdenv.isDarwin [ wxmac ]);
-
-  buildInputs = [ ]
-    ++ (lib.optionals (!stdenv.isDarwin) [  (wxGTK.gtk) ])
-    ++ (lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-      ApplicationServices
-      AudioToolbox
-      CFNetwork
-      Carbon
-      Cocoa
-      CoreGraphics
-      CoreServices
-      CoreText
-      DiskArbitration
-      IOKit
-      ImageIO
-      OpenGL
-      Security
-    ]))
-    ++ (lib.optional openglSupport pyopengl);
-
-  preConfigure = ''
-    cd wxPython
-    # remove wxPython's darwin hack that interference with python-2.7-distutils-C++.patch
-    substituteInPlace config.py \
-      --replace "distutils.unixccompiler.UnixCCompiler = MyUnixCCompiler" ""
-    # set the WXPREFIX to $out instead of the storepath of wxwidgets
-    substituteInPlace config.py \
-      --replace "WXPREFIX   = getWxConfigValue('--prefix')" "WXPREFIX   = '$out'"
-    # this check is supposed to only return false on older systems running non-framework python
-    substituteInPlace src/osx_cocoa/_core_wrap.cpp \
-      --replace "return wxPyTestDisplayAvailable();" "return true;"
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    substituteInPlace wx/lib/wxcairo.py \
-      --replace 'cairoLib = None' 'cairoLib = ctypes.CDLL("${cairo}/lib/libcairo.so")'
-    substituteInPlace wx/lib/wxcairo.py \
-      --replace '_dlls = dict()' '_dlls = {k: ctypes.CDLL(v) for k, v in [
-        ("gdk",        "${wxGTK.gtk}/lib/libgtk-x11-2.0.so"),
-        ("pangocairo", "${pango.out}/lib/libpangocairo-1.0.so"),
-        ("appsvc",     None)
-      ]}'
-  '';
-
-  buildPhase = "";
-
-  installPhase = ''
-    ${python.interpreter} setup.py install WXPORT=${if stdenv.isDarwin then "osx_cocoa" else "gtk2"} NO_HEADERS=0 BUILD_GLCANVAS=${if openglSupport then "1" else "0"} UNICODE=1 --prefix=$out
-    wrapPythonPrograms
-  '';
-
-  passthru = { inherit wxGTK openglSupport; };
-}
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index b5977e61acdc..d0695e44f0fa 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,17 +32,18 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.1195";
+  version = "2.0.1204";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-YzM/YzTeFqNe7ThNH138g13aSzEXK8rzTWit1g27GVw=";
+    hash = "sha256-qqTqEn11DM1W48ZYoiCacsSCA4xPLxPil43xiByEy5g=";
   };
 
   nativeBuildInputs = with py.pkgs; [
+    pythonRelaxDepsHook
     setuptools-scm
   ];
 
@@ -94,12 +95,10 @@ buildPythonApplication rec {
     responses
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "bc-python-hcl2==" "bc-python-hcl2>=" \
-      --replace "prettytable>=3.0.0" "prettytable" \
-      --replace "pycep-parser==0.3.6" "pycep-parser"
-  '';
+  pythonRelaxDeps = [
+    "bc-python-hcl2"
+    "pycep-parser"
+  ];
 
   preCheck = ''
     export HOME=$(mktemp -d);
diff --git a/pkgs/development/tools/analysis/eresi/default.nix b/pkgs/development/tools/analysis/eresi/default.nix
index 158f6545b714..9d1487ea99b6 100644
--- a/pkgs/development/tools/analysis/eresi/default.nix
+++ b/pkgs/development/tools/analysis/eresi/default.nix
@@ -16,6 +16,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/thorkill/eresi/commit/a79406344cc21d594d27fa5ec5922abe9f7475e7.patch";
       sha256 = "1mjjc6hj7r06iarvai7prcdvjk9g0k5vwrmkwcm7b8ivd5xzxp2z";
     })
+
+    # Pull patch pending upstream inclusion for -fno-common toolchains:
+    #   https://github.com/thorkill/eresi/pull/166
+    (fetchpatch {
+      url = "https://github.com/thorkill/eresi/commit/bc5b9a75c326f277e5f89e01a3b8f7f0519a99f6.patch";
+      sha256 = "0lqwrnkkhhd3vi1r8ngvziyqkk09h98h93rrs3ndqi048a898ys1";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/tools/apksigner/default.nix b/pkgs/development/tools/apksigner/default.nix
index e7afa7189c22..854e913dd58e 100644
--- a/pkgs/development/tools/apksigner/default.nix
+++ b/pkgs/development/tools/apksigner/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
     cat >> build.gradle <<EOF
 
     apply plugin: 'application'
+    mainClassName = "com.android.apksigner.ApkSignerTool"
     sourceSets.main.java.srcDirs = [ 'src/apksigner/java', 'src/main/java' ]
     jar {
         manifest { attributes "Main-Class": "com.android.apksigner.ApkSignerTool" }
diff --git a/pkgs/development/tools/easyjson/deps.nix b/pkgs/development/tools/easyjson/deps.nix
deleted file mode 100644
index d5d7e1f15bc9..000000000000
--- a/pkgs/development/tools/easyjson/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/josharian/intern";
-    fetch = {
-      type = "git";
-      url = "https://github.com/josharian/intern";
-      rev = "8e6ff32b3e7c0b018c43953085fe2ac330fe9acd";
-      sha256 = "1za48ppvwd5vg8vv25ldmwz1biwpb3p6qhf8vazhsfdg9m07951c";
-    };
-  }
-]
diff --git a/pkgs/development/tools/goa/deps.nix b/pkgs/development/tools/goa/deps.nix
deleted file mode 100644
index bfe862a4006a..000000000000
--- a/pkgs/development/tools/goa/deps.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/dimfeld/httppath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dimfeld/httppath";
-      rev = "ee938bf735983d53694d79138ad9820efff94c92";
-      sha256 = "1c1kic8g3r78g6h4xl8n2ac1waxsb9fqz40k20ypi08k24mv3ha9";
-    };
-  }
-  {
-    goPackagePath = "github.com/gofrs/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gofrs/uuid";
-      rev = "e684523faa0581e44663968f097d478c499d4276";
-      sha256 = "1p2md0bmfnn7kaa866fnb8lfnmlzzb8wfhp4ym5915p8mv4whxgz";
-    };
-  }
-  {
-    goPackagePath = "github.com/manveru/faker";
-    fetch = {
-      type = "git";
-      url = "https://github.com/manveru/faker";
-      rev = "9fbc68a78c4dbc7914e1a23f88f126bea4383b97";
-      sha256 = "1cnrf4wdjhxd9fryhlp2krl9acz6dzwic89gshs49pg3aajlf4dy";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "4dab30cb33e6633c33c787106bafbfbfdde7842d";
-      sha256 = "1g7p7c2azqaxbfkx5yaznk0z1inqnajlbwv921k6vh8i1xdblxk5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "1ce0cc6db4029d97571db82f85092fccedb572ce";
-      sha256 = "02wsc01npnpc7srqw7rzaihn2hjmrkfy2x412fxbb675j2hk9cx6";
-    };
-  }
-  {
-    goPackagePath = "github.com/zach-klippenstein/goregen";
-    fetch = {
-      type = "git";
-      url = "https://github.com/zach-klippenstein/goregen";
-      rev = "795b5e3961ea1912fde60af417ad85e86acc0d6a";
-      sha256 = "113kx47ryhyb803v8ckizlrc34cmwcwb0h28v34bahd2mir8nq3l";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "a754db16a40a9d94359b6600b825419c0ca6f986";
-      sha256 = "0n0cwb2szcjbyncqhdia77spcjsbm05jcgpnh0i8rdr16ixwanyq";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/pkgs/development/tools/goresym/default.nix b/pkgs/development/tools/goresym/default.nix
index b41811689675..199d3f468f05 100644
--- a/pkgs/development/tools/goresym/default.nix
+++ b/pkgs/development/tools/goresym/default.nix
@@ -21,6 +21,6 @@ buildGoModule rec {
     description = "Go symbol recovery tool";
     homepage = "https://github.com/mandiant/GoReSym";
     license = licenses.mit;
-    maintainers = with maintainers; [ mrhedgehog ];
+    maintainers = with maintainers; [ thehedgeh0g ];
   };
 }
diff --git a/pkgs/development/tools/kubernetes-controller-tools/default.nix b/pkgs/development/tools/kubernetes-controller-tools/default.nix
index e1aacd306738..8e537c7a0e09 100644
--- a/pkgs/development/tools/kubernetes-controller-tools/default.nix
+++ b/pkgs/development/tools/kubernetes-controller-tools/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "controller-tools";
-  version = "0.6.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hbai8pi59yhgsmmmxk3nghhy9hj3ma98jq2d1k46n46gr64a0q5";
+    sha256 = "sha256-+nn/lj/MEtmC5NcvPOp1VZE13qJsGG+6eQaG+Yi8FTM=";
   };
 
-  vendorSha256 = "061qvq8z98d39vyk1gr46fw5ynxra154s90n3pb7k1q7q45rg76j";
+  vendorSha256 = "sha256-QCF3sfBUAjiIGb2EFrLKj5wHJ6HxJVqLEjxUTpMiX6E=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index 4281a1d9e391..45ea829299a0 100644
--- a/pkgs/development/tools/metals/default.nix
+++ b/pkgs/development/tools/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "0.11.5";
+  version = "0.11.6";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "sha256-kw+8688E1b7XjEb7AqOExSVu88NqPprKaCuINWqL2wk=";
+    outputHash = "sha256-/tFc7xAuUtx2JgEMLhGaq2FXpt7KQNMi82ODr/gTfhM=";
   };
 
   nativeBuildInputs = [ makeWrapper setJavaClassPath ];
diff --git a/pkgs/development/tools/misc/inotify-tools/default.nix b/pkgs/development/tools/misc/inotify-tools/default.nix
index b382cc51fa1e..8c5671605d55 100644
--- a/pkgs/development/tools/misc/inotify-tools/default.nix
+++ b/pkgs/development/tools/misc/inotify-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "inotify-tools";
-  version = "3.22.1.0";
+  version = "3.22.6.0";
 
   src = fetchFromGitHub {
     repo = "inotify-tools";
     owner = "inotify-tools";
     rev = version;
-    sha256 = "sha256-I0kr+wFUWnovH9MXVsGaCBtp4+RnnMWD7sPecI3xz+Y=";
+    sha256 = "sha256-EYWVSgwoMjAlc/V5kv+2jfxEqWVW/lEoIxVd+ctEMsk=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/tools/misc/kibana/6.x.nix b/pkgs/development/tools/misc/kibana/6.x.nix
deleted file mode 100644
index cd81975ee445..000000000000
--- a/pkgs/development/tools/misc/kibana/6.x.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ elk6Version
-, enableUnfree ? true
-, lib, stdenv
-, makeWrapper
-, fetchurl
-, nodejs-10_x
-, coreutils
-, which
-}:
-
-with lib;
-let
-  nodejs = nodejs-10_x;
-  inherit (builtins) elemAt;
-  info = splitString "-" stdenv.hostPlatform.system;
-  arch = elemAt info 0;
-  plat = elemAt info 1;
-  shas =
-    if enableUnfree
-    then {
-      x86_64-linux  = "1a501lavxhckb3l93sbrbqyshicwkk6p89frry4x8p037xcfpy0x";
-      x86_64-darwin = "0zm45af30shhcg3mdhcma6rms1hyrx62rm5jzwnz9kxv4d30skbw";
-    }
-    else {
-      x86_64-linux  = "0wfdipf21apyily7mvlqgyc7m5jpr96zgrryzwa854z3xb2vw8zg";
-      x86_64-darwin = "1nklfx4yz6hsxlljvnvwjy7pncv9mzngl84710xad5jlyras3sdj";
-    };
-
-in stdenv.mkDerivation rec {
-  pname = "kibana${optionalString (!enableUnfree) "-oss"}";
-  version = elk6Version;
-
-  src = fetchurl {
-    url = "https://artifacts.elastic.co/downloads/kibana/${pname}-${version}-${plat}-${arch}.tar.gz";
-    sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
-  };
-
-  patches = [
-    # Kibana specifies it specifically needs nodejs 10.15.2 but nodejs in nixpkgs is at 10.15.3.
-    # The <nixpkgs/nixos/tests/elk.nix> test succeeds with this newer version so lets just
-    # disable the version check.
-    ./disable-nodejs-version-check.patch
-  ];
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out/libexec/kibana $out/bin
-    mv * $out/libexec/kibana/
-    rm -r $out/libexec/kibana/node
-    makeWrapper $out/libexec/kibana/bin/kibana $out/bin/kibana \
-      --prefix PATH : "${lib.makeBinPath [ nodejs coreutils which ]}"
-    sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana
-  '';
-
-  meta = {
-    description = "Visualize logs and time-stamped data";
-    homepage = "http://www.elasticsearch.org/overview/kibana";
-    license = if enableUnfree then licenses.elastic else licenses.asl20;
-    maintainers = with maintainers; [ offline basvandijk ];
-    platforms = with platforms; unix;
-  };
-}
diff --git a/pkgs/development/tools/misc/pwninit/default.nix b/pkgs/development/tools/misc/pwninit/default.nix
new file mode 100644
index 000000000000..7d3808f554c0
--- /dev/null
+++ b/pkgs/development/tools/misc/pwninit/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, openssl
+, pkg-config
+, xz
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pwninit";
+  version = "3.2.0";
+
+  src = fetchFromGitHub {
+    owner = "io12";
+    repo = "pwninit";
+    rev = version;
+    sha256 = "sha256-XKDYJH2SG3TkwL+FN6rXDap8la07icR0GPFiYcnOHeI=";
+  };
+
+  buildInputs = [ openssl xz ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = [ pkg-config ];
+  doCheck = false; # there are no tests to run
+
+  cargoSha256 = "sha256-2HCHiU309hbdwohUKVT3TEfGvOfxQWtEGj7FIS8OS7s=";
+
+  meta = {
+    description = "Automate starting binary exploit challenges";
+    homepage = "https://github.com/io12/pwninit";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.scoder12 ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/vend/default.nix b/pkgs/development/tools/vend/default.nix
deleted file mode 100644
index 0b037a9068c1..000000000000
--- a/pkgs/development/tools/vend/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "vend";
-
-  /*
-  This package is used to generate vendor folders for
-  packages that use the `runVend` option with `buildGoModule`.
-
-  Do not update this package without checking that the vendorSha256
-  hashes of packages using the `runVend` option are unchanged
-  or updating their vendorSha256 hashes if necessary.
-  */
-  version = "1.0.2";
-  # Disable the bot
-  # nixpkgs-update: no auto update
-
-  # Disable `mod tidy`, patch was refused upstream
-  # https://github.com/nomad-software/vend/pull/9
-  patches = [ ./remove_tidy.patch ];
-
-  src = fetchFromGitHub {
-    owner = "nomad-software";
-    repo = "vend";
-    rev = "v${version}";
-    sha256 = "0h9rwwb56nzs46xsvl92af71i8b3wz3pf9ngi8v0i2bpk7p3p89d";
-  };
-
-  vendorSha256 = null;
-
-  meta = with lib; {
-    homepage = "https://github.com/nomad-software/vend";
-    description = "A utility which vendors go code including c dependencies";
-    maintainers = with maintainers; [ c00w mic92 zowoq ];
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/development/tools/vend/remove_tidy.patch b/pkgs/development/tools/vend/remove_tidy.patch
deleted file mode 100644
index d5db74a1bd70..000000000000
--- a/pkgs/development/tools/vend/remove_tidy.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cli/cmd.go b/cli/cmd.go
-index c766559..3a133fd 100644
---- a/cli/cmd.go
-+++ b/cli/cmd.go
-@@ -12,7 +12,7 @@ import (
- // UpdateModule makes sure the module is updated ready to vendor the
- // dependencies.
- func UpdateModule() {
--	var commands = []string{"tidy", "download", "vendor"}
-+	var commands = []string{"download", "vendor"}
- 
- 	for _, command := range commands {
- 		cmd := exec.Command("go", "mod", command)
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
deleted file mode 100644
index 5c107b20f4a4..000000000000
--- a/pkgs/development/web/nodejs/v10.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ callPackage, openssl, icu, python2, lib, stdenv, enableNpm ? true }:
-
-let
-  buildNodejs = callPackage ./nodejs.nix {
-    inherit openssl icu;
-    python = python2;
-  };
-in
-  buildNodejs {
-    inherit enableNpm;
-    version = "10.24.1";
-    sha256 = "032801kg24j04xmf09m0vxzlcz86sv21s24lv9l4cfv08k1c4byp";
-    patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
-  }
diff --git a/pkgs/games/gargoyle/default.nix b/pkgs/games/gargoyle/default.nix
index 7058f680f4e2..f5d23091b482 100644
--- a/pkgs/games/gargoyle/default.nix
+++ b/pkgs/games/gargoyle/default.nix
@@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ SDL SDL_mixer SDL_sound gtk2 ]
     ++ lib.optionals stdenv.isDarwin [ smpeg libvorbis ];
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: build/linux.release/alan3/Location.o:(.bss+0x0): multiple definition of
+  #     `logFile'; build/linux.release/alan3/act.o:(.bss+0x0): first defined here
+  # TODO: drop once updated to 2022.1 or later.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   buildPhase = jamenv + "jam -j$NIX_BUILD_CORES";
 
   installPhase =
diff --git a/pkgs/games/macopix/default.nix b/pkgs/games/macopix/default.nix
index 8f226f3cef06..5541b3b9d0fa 100644
--- a/pkgs/games/macopix/default.nix
+++ b/pkgs/games/macopix/default.nix
@@ -19,6 +19,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: dnd.o:src/main.h:136: multiple definition of
+  #     `MENU_EXT'; main.o:src/main.h:136: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   NIX_LDFLAGS = "-lX11";
 
   meta = {
diff --git a/pkgs/games/stuntrally/default.nix b/pkgs/games/stuntrally/default.nix
index 64e2dcc379b1..537a3f83a036 100644
--- a/pkgs/games/stuntrally/default.nix
+++ b/pkgs/games/stuntrally/default.nix
@@ -18,25 +18,21 @@
 
 stdenv.mkDerivation rec {
   pname = "stunt-rally";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "stuntrally";
     repo = "stuntrally";
     rev = version;
-    hash = "sha256-1+Cc9I6TTa3b++/7Z2V+vAXcmFb2+wX7TnXEH6CRDWU=";
+    hash = "sha256-9I6hXsosqx+yYiEOEnPXQJHZkGtSU+JqThorwjemlc0=";
   };
   tracks = fetchFromGitHub {
     owner = "stuntrally";
     repo = "tracks";
     rev = version;
-    hash = "sha256-FbZc87j/9cp4LxNaEO2wNTvwk1Aq/IWcKD3rTGkzqj0=";
+    hash = "sha256-eZJAvkKe3PrXDzxTa5WFBHfltB3jhQh8puzOFDO9lso=";
   };
 
-  # include/OGRE/OgreException.h:265:126: error: invalid conversion from
-  # 'int' to 'Ogre::Exception::ExceptionCodes' [-fpermissive]
-  NIX_CFLAGS_COMPILE = "-fpermissive";
-
   preConfigure = ''
     ln -s ${tracks} data/tracks
   '';
diff --git a/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix b/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix
index 3e7e89642c26..1f13cbef9fc9 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/dtrace/default.nix
@@ -4,7 +4,9 @@
 appleDerivation {
   nativeBuildInputs = [ xcbuildHook flex bison fixDarwinDylibNames ];
   buildInputs = [ CoreSymbolication darling xnu ];
-  NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration";
+  # -fcommon: workaround build failure on -fno-common toolchains:
+  #   duplicate symbol '_kCSRegionMachHeaderName' in: libproc.o dt_module_apple.o
+  NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration -fcommon";
   NIX_LDFLAGS = "-L./Products/Release";
   xcbuildFlags = [ "-target" "dtrace_frameworks" "-target" "dtrace" ];
 
diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix
index bbb3a1daab69..a8188caf18be 100644
--- a/pkgs/os-specific/linux/firejail/default.nix
+++ b/pkgs/os-specific/linux/firejail/default.nix
@@ -53,6 +53,29 @@ stdenv.mkDerivation rec {
     # Upstream fix: https://github.com/netblue30/firejail/pull/5132
     # Hopefully fixed upstream in version > 0.9.68
     ./fix-opengl-support.patch
+
+    # Fix CVE-2022-31214 by patching in 4 commits from upstream
+    # https://seclists.org/oss-sec/2022/q2/188
+    (fetchpatch {
+      name = "CVE-2022-31214-patch1"; # "fixing CVE-2022-31214"
+      url  = "https://github.com/netblue30/firejail/commit/27cde3d7d1e4e16d4190932347c7151dc2a84c50.patch";
+      sha256 = "sha256-XXmnYCn4TPUvU43HifZDk4tEZQvOho9/7ehU6889nN4=";
+    })
+    (fetchpatch {
+      name = "CVE-2022-31214-patch2"; # "shutdown testing"
+      url  = "https://github.com/netblue30/firejail/commit/04ff0edf74395ddcbbcec955279c74ed9a6c0f86.patch";
+      sha256 = "sha256-PV73hRlvYEQihuljSCQMNO34KJ0hDVFexhirpHcTK1I=";
+    })
+    (fetchpatch {
+      name = "CVE-2022-31214-patch3"; # "CVE-2022-31214: fixing the fix"
+      url  = "https://github.com/netblue30/firejail/commit/dab835e7a0eb287822016f5ae4e87f46e1d363e7.patch";
+      sha256 = "sha256-6plBIliW/nLKR7TdGeB88eQ65JHEasnaRsP3HPXAFyA=";
+    })
+    (fetchpatch {
+      name = "CVE-2022-31214-patch4"; # "CVE-2022-31214: fixing the fix, one more time "
+      url  = "https://github.com/netblue30/firejail/commit/1884ea22a90d225950d81c804f1771b42ae55f54.patch";
+      sha256 = "sha256-inkpcdC5rl5w+CTAwwQVBOELlHTXb8UGlpU+8kMY95s=";
+    })
   ];
 
   prePatch = ''
diff --git a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
index 70ac299f1619..69bbdf648d22 100644
--- a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
@@ -1,4 +1,4 @@
-{ buildPackages, fetchFromGitHub, perl, buildLinux, libelf, util-linux, ... } @ args:
+{ buildPackages, fetchFromGitHub, fetchurl, perl, buildLinux, libelf, util-linux, kernelPatches ? [], ... } @ args:
 
 buildLinux (args // rec {
   version = "4.14.180-176";
@@ -16,6 +16,14 @@ buildLinux (args // rec {
     sha256 = "0n7i7a2bkrm9p1wfr20h54cqm32fbjvwyn703r6zm1f6ivqhk43v";
   };
 
+  kernelPatches = args.kernelPatches ++ [{
+    name = "usbip-tools-fno-common";
+    patch = fetchurl {
+      url = "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=d5efc2e6b98fe661dbd8dd0d5d5bfb961728e57a";
+      hash = "sha256-1CXYCV5zMLA4YdbCr8cO2N4CHEDzQChS9qbKYHPm3U4=";
+    };
+  }];
+
   defconfig = "odroidxu4_defconfig";
 
   # This extraConfig is (only) required because the gator module fails to build as-is.
diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix
index 051ca1963051..8339eabb495a 100644
--- a/pkgs/os-specific/linux/nftables/default.nix
+++ b/pkgs/os-specific/linux/nftables/default.nix
@@ -1,25 +1,25 @@
-{ lib, stdenv, fetchurl, pkg-config, bison, file, flex
+{ lib, stdenv, fetchurl, pkg-config, bison, flex
 , asciidoc, libxslt, findXMLCatalogs, docbook_xml_dtd_45, docbook_xsl
 , libmnl, libnftnl, libpcap
 , gmp, jansson, libedit
-, autoreconfHook, fetchpatch
+, autoreconfHook
 , withDebugSymbols ? false
 , withPython ? false , python3
 , withXtables ? true , iptables
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.2";
+  version = "1.0.4";
   pname = "nftables";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.bz2";
-    sha256 = "00jcjn1pl7qyqpg8pd4yhlkys7wbj4vkzgg73n27nmplzips6a0b";
+    hash = "sha256-kn+x/qH2haMowQz3ketlXX4e1J0xDupcsxAd/Y1sujU=";
   };
 
   nativeBuildInputs = [
     autoreconfHook
-    pkg-config bison file flex
+    pkg-config bison flex
     asciidoc docbook_xml_dtd_45 docbook_xsl findXMLCatalogs libxslt
   ];
 
@@ -29,18 +29,6 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional withXtables iptables
     ++ lib.optional withPython python3;
 
-  preConfigure = ''
-    substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file
-  '';
-
-  patches = [
-    # fix build after 1.0.2 release, drop when updating to a newer release
-    (fetchpatch {
-      url = "https://git.netfilter.org/nftables/patch/?id=18a08fb7f0443f8bde83393bd6f69e23a04246b3";
-      sha256 = "03dzhd7fhg0d20ly4rffk4ra7wlxp731892dhp8zw67jwhys9ywz";
-    })
-  ];
-
   configureFlags = [
     "--with-json"
     "--with-cli=editline"
diff --git a/pkgs/os-specific/linux/usbip/default.nix b/pkgs/os-specific/linux/usbip/default.nix
index 43c22a8fd12a..cadf38b106cc 100644
--- a/pkgs/os-specific/linux/usbip/default.nix
+++ b/pkgs/os-specific/linux/usbip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
+{ lib, stdenv, fetchpatch, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
 
 stdenv.mkDerivation {
   name = "usbip-${kernel.name}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     ./fix-snprintf-truncation.patch
     # fixes build with gcc9
     ./fix-strncpy-truncation.patch
-  ];
+  ] ++ kernel.patches;
 
   nativeBuildInputs = [ autoconf automake libtool ];
   buildInputs = [ udev ];
diff --git a/pkgs/servers/coturn/default.nix b/pkgs/servers/coturn/default.nix
index d076f763bf96..695c881e9f66 100644
--- a/pkgs/servers/coturn/default.nix
+++ b/pkgs/servers/coturn/default.nix
@@ -35,6 +35,13 @@ stdenv.mkDerivation rec {
     ./pure-configure.patch
   ];
 
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: ...-libprom-0.1.1/include/prom_collector_registry.h:37: multiple definition of
+  #     `PROM_COLLECTOR_REGISTRY_DEFAULT'; ...-libprom-0.1.1/include/prom_collector_registry.h:37: first defined here
+  # Should be fixed in libprom-1.2.0 and later: https://github.com/digitalocean/prometheus-client-c/pull/25
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   passthru.tests.coturn = nixosTests.coturn;
 
   meta = with lib; {
diff --git a/pkgs/servers/dendrite/default.nix b/pkgs/servers/dendrite/default.nix
index 71843ee8c763..9a8a1a369843 100644
--- a/pkgs/servers/dendrite/default.nix
+++ b/pkgs/servers/dendrite/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "matrix-dendrite";
-  version = "0.8.5";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "dendrite";
     rev = "v${version}";
-    sha256 = "sha256-MPWvBUI6Mqt3f5UY6lpTBwPpihW+QSNq1M3FnIff+mM=";
+    sha256 = "sha256-grMMD85hiJ6Ka8KU0fIAcpflFyZrPEZSZxFsGls5NEI=";
   };
 
-  vendorSha256 = "sha256-OXy2xuwTLPNvBnVB6wj/YRW/XMiekjTubRRPVX9bxdQ=";
+  vendorSha256 = "sha256-yTlg1K0Pf1AmF227ca73gLDx12ea5yMamnOUksKGN4U=";
 
   checkInputs = [
     postgresqlTestHook
diff --git a/pkgs/servers/http/webhook/default.nix b/pkgs/servers/http/webhook/default.nix
index 0d9fb54396b5..c19866cf8d87 100644
--- a/pkgs/servers/http/webhook/default.nix
+++ b/pkgs/servers/http/webhook/default.nix
@@ -1,12 +1,12 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "webhook";
   version = "2.8.0";
 
-  goPackagePath = "github.com/adnanh/webhook";
-  excludedPackages = [ "test" ];
-
   src = fetchFromGitHub {
     owner = "adnanh";
     repo = "webhook";
@@ -14,9 +14,16 @@ buildGoPackage rec {
     sha256 = "0n03xkgwpzans0cymmzb0iiks8mi2c76xxdak780dk0jbv6qgp5i";
   };
 
+  vendorSha256 = null;
+
+  subPackages = [ "." ];
+
+  doCheck = false;
+
   meta = with lib; {
+    description = "Incoming webhook server that executes shell commands";
     homepage = "https://github.com/adnanh/webhook";
-    license = [ licenses.mit ];
-    description = "incoming webhook server that executes shell commands";
+    license = licenses.mit;
+    maintainers = with maintainers; [ azahi ];
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/nats-exporter.nix b/pkgs/servers/monitoring/prometheus/nats-exporter.nix
new file mode 100644
index 000000000000..e6a838a6b017
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/nats-exporter.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "prometheus-nats-exporter";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-2+nkWwa5n7DyVitnJ8gt7b72Y6XiiLM7ddTM2Cp9/LQ=";
+  };
+
+  vendorSha256 = "sha256-bsk6htRnb4NiaJXTHNjPGN9NEy8owRJujancK3nVIsA=";
+
+  meta = with lib; {
+    description = "Exporter for NATS metrics";
+    homepage = "https://github.com/nats-io/prometheus-nats-exporter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bbigras ];
+  };
+}
diff --git a/pkgs/servers/nosql/dragonflydb/default.nix b/pkgs/servers/nosql/dragonflydb/default.nix
new file mode 100644
index 000000000000..ff4833cfaa60
--- /dev/null
+++ b/pkgs/servers/nosql/dragonflydb/default.nix
@@ -0,0 +1,109 @@
+{ fetchFromGitHub
+, fetchurl
+, lib
+, stdenv
+, double-conversion
+, gperftools
+, mimalloc
+, rapidjson
+, liburing
+, xxHash
+, abseil-cpp_202111
+, gbenchmark
+, glog
+, gtest
+, jemalloc
+, gcc-unwrapped
+, autoconf
+, autoconf-archive
+, automake
+, cmake
+, ninja
+, boost
+, libunwind
+, libtool
+, openssl
+}:
+
+let
+  pname = "dragonflydb";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "dragonfly";
+    rev = "v${version}";
+    hash = "sha256-P6WMW/n+VezWDXGagT4B+ZYyCp8oufDV6MTrpKpLZcs=";
+    fetchSubmodules = true;
+  };
+
+  # Needed exactly 5.4.4 for patch to work
+  lua = fetchurl {
+    url = "https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz";
+    hash = "sha256-L/ibvqIqfIuRDWsAb1ukVZ7c9GiiVTfO35mI7ZD2tFA=";
+  };
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  postPatch = ''
+    mkdir -p ./build/{third_party,_deps}
+    ln -s ${double-conversion.src} ./build/third_party/dconv
+    ln -s ${mimalloc.src} ./build/third_party/mimalloc
+    ln -s ${rapidjson.src} ./build/third_party/rapidjson
+    ln -s ${gbenchmark.src} ./build/_deps/benchmark-src
+    ln -s ${gtest.src} ./build/_deps/gtest-src
+    cp -R --no-preserve=mode,ownership ${gperftools.src} ./build/third_party/gperf
+    cp -R --no-preserve=mode,ownership ${liburing.src} ./build/third_party/uring
+    cp -R --no-preserve=mode,ownership ${xxHash.src} ./build/third_party/xxhash
+    cp -R --no-preserve=mode,ownership ${abseil-cpp_202111.src} ./build/_deps/abseil_cpp-src
+    cp -R --no-preserve=mode,ownership ${glog.src} ./build/_deps/glog-src
+    chmod u+x ./build/third_party/uring/configure
+    cp ./build/third_party/xxhash/cli/xxhsum.{1,c} ./build/third_party/xxhash
+    patch -p1 -d ./build/_deps/glog-src < ${./glog.patch}
+    sed '
+    s@REPLACEJEMALLOCURL@file://${jemalloc.src}@
+    s@REPLACELUAURL@file://${lua}@
+    ' ${./fixes.patch} | patch -p1
+  '';
+
+  nativeBuildInputs = [
+    autoconf
+    autoconf-archive
+    automake
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    boost
+    libunwind
+    libtool
+    openssl
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
+  ];
+
+  ninjaFlags = "dragonfly";
+
+  doCheck = false;
+  dontUseNinjaInstall = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp ./dragonfly $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A modern replacement for Redis and Memcached";
+    homepage = "https://dragonflydb.io/";
+    license = licenses.bsl11;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ yureien ];
+  };
+}
diff --git a/pkgs/servers/nosql/dragonflydb/fixes.patch b/pkgs/servers/nosql/dragonflydb/fixes.patch
new file mode 100644
index 000000000000..d2992fbbaf82
--- /dev/null
+++ b/pkgs/servers/nosql/dragonflydb/fixes.patch
@@ -0,0 +1,132 @@
+diff --git a/helio/cmake/third_party.cmake b/helio/cmake/third_party.cmake
+index aeb78d9..e9d4e6b 100644
+--- a/helio/cmake/third_party.cmake
++++ b/helio/cmake/third_party.cmake
+@@ -143,7 +143,7 @@ endfunction()
+ 
+ FetchContent_Declare(
+   gtest
+-  URL https://github.com/google/googletest/archive/release-1.11.0.zip
++  DOWNLOAD_COMMAND true
+ )
+ 
+ FetchContent_GetProperties(gtest)
+@@ -154,7 +154,7 @@ endif ()
+ 
+ FetchContent_Declare(
+   benchmark
+-  URL https://github.com/google/benchmark/archive/v1.6.1.tar.gz
++  DOWNLOAD_COMMAND true
+ )
+ 
+ FetchContent_GetProperties(benchmark)
+@@ -169,7 +169,7 @@ endif ()
+ 
+ FetchContent_Declare(
+   abseil_cpp
+-  URL https://github.com/abseil/abseil-cpp/archive/20211102.0.tar.gz
++  DOWNLOAD_COMMAND true
+   PATCH_COMMAND patch -p1 < "${CMAKE_CURRENT_LIST_DIR}/../patches/abseil-20211102.patch"
+ )
+ 
+@@ -183,11 +183,7 @@ endif()
+ 
+ FetchContent_Declare(
+   glog
+-  GIT_REPOSITORY https://github.com/romange/glog
+-  GIT_TAG Absl
+-
+-  GIT_PROGRESS    TRUE
+-  GIT_SHALLOW     TRUE
++  DOWNLOAD_COMMAND true
+ )
+ 
+ FetchContent_GetProperties(glog)
+@@ -233,10 +229,7 @@ endif()
+ 
+ add_third_party(
+   gperf
+-  URL https://github.com/gperftools/gperftools/archive/gperftools-2.9.1.tar.gz
+-  #GIT_REPOSITORY https://github.com/gperftools/gperftools
+-  #GIT_TAG gperftools-2.9.1
+-  GIT_SHALLOW TRUE
++  DOWNLOAD_COMMAND true
+   PATCH_COMMAND autoreconf -i   # update runs every time for some reason
+   # CMAKE_PASS_FLAGS "-DGPERFTOOLS_BUILD_HEAP_PROFILER=OFF -DGPERFTOOLS_BUILD_HEAP_CHECKER=OFF \
+   #                   -DGPERFTOOLS_BUILD_DEBUGALLOC=OFF -DBUILD_TESTING=OFF  \
+@@ -260,11 +253,12 @@ else()
+ endif()
+ 
+ add_third_party(mimalloc
+-  URL https://github.com/microsoft/mimalloc/archive/refs/tags/v2.0.5.tar.gz
++  DOWNLOAD_COMMAND true
+ 
+   # Add -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-O0 to debug
+   CMAKE_PASS_FLAGS "-DCMAKE_BUILD_TYPE=Release -DMI_BUILD_SHARED=OFF -DMI_BUILD_TESTS=OFF \
+-                    -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g"
++                    -DMI_INSTALL_TOPLEVEL=ON -DMI_OVERRIDE=${MI_OVERRIDE} -DCMAKE_C_FLAGS=-g \
++                    -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/mimalloc/lib"
+ 
+   BUILD_COMMAND make -j4 mimalloc-static
+   INSTALL_COMMAND make install
+@@ -274,7 +268,7 @@ add_third_party(mimalloc
+ )
+ 
+ add_third_party(jemalloc
+-  URL https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
++  URL REPLACEJEMALLOCURL
+   PATCH_COMMAND ./autogen.sh
+   CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/jemalloc --with-jemalloc-prefix=je_ --disable-libdl
+ )
+@@ -282,24 +276,23 @@ add_third_party(jemalloc
+ 
+ add_third_party(
+   xxhash
+-  URL https://github.com/Cyan4973/xxHash/archive/v0.8.0.tar.gz
++  DOWNLOAD_COMMAND true
+   SOURCE_SUBDIR cmake_unofficial
+-  CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF"
++  CMAKE_PASS_FLAGS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF \
++                    -DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/xxhash/lib"
+ )
+ 
+ 
+ add_third_party(
+   uring
+-  GIT_REPOSITORY https://github.com/axboe/liburing.git
+-  GIT_TAG liburing-2.1
++  DOWNLOAD_COMMAND true
+   CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${THIRD_PARTY_LIB_DIR}/uring
+   BUILD_IN_SOURCE 1
+ )
+ 
+ add_third_party(
+   rapidjson
+-  GIT_REPOSITORY https://github.com/Tencent/rapidjson.git
+-  GIT_TAG 1a803826f1197b5e30703afe4b9c0e7dd48074f5
++  DOWNLOAD_COMMAND true
+   CMAKE_PASS_FLAGS "-DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF \
+                     -DRAPIDJSON_BUILD_DOC=OFF"
+   LIB "none"
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 0dc0824..d5b38b3 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ add_third_party(
+   lua
+-  URL https://github.com/lua/lua/archive/refs/tags/v5.4.4.tar.gz
++  URL REPLACELUAURL
+   PATCH_COMMAND patch -p1 -i "${CMAKE_SOURCE_DIR}/patches/lua-v5.4.4.patch"
+   CONFIGURE_COMMAND echo
+   BUILD_IN_SOURCE 1
+@@ -11,7 +11,8 @@ add_third_party(
+ 
+ add_third_party(
+   dconv
+-  URL https://github.com/google/double-conversion/archive/refs/tags/v3.2.0.tar.gz
++  DOWNLOAD_COMMAND true
++  CMAKE_PASS_FLAGS "-DCMAKE_INSTALL_LIBDIR=${THIRD_PARTY_LIB_DIR}/dconv/lib"
+   LIB libdouble-conversion.a
+ )
+ 
diff --git a/pkgs/servers/nosql/dragonflydb/glog.patch b/pkgs/servers/nosql/dragonflydb/glog.patch
new file mode 100644
index 000000000000..2fb9c0733b87
--- /dev/null
+++ b/pkgs/servers/nosql/dragonflydb/glog.patch
@@ -0,0 +1,553 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 846b4448..b4900ead 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,6 +39,7 @@ option (PRINT_UNSYMBOLIZED_STACK_TRACES
+   "Print file offsets in traces instead of symbolizing" OFF)
+ option (WITH_CUSTOM_PREFIX "Enable support for user-generated message prefixes" ON)
+ option (WITH_GFLAGS "Use gflags" ON)
++option (WITH_ABSL "Use absl flags" OFF)
+ option (WITH_GTEST "Use Google Test" ON)
+ option (WITH_PKGCONFIG "Enable pkg-config support" ON)
+ option (WITH_SYMBOLIZE "Enable symbolize module" ON)
+@@ -87,6 +88,13 @@ if (WITH_GFLAGS)
+   endif (gflags_FOUND)
+ endif (WITH_GFLAGS)
+ 
++if (WITH_ABSL)
++  set (HAVE_ABSL_FLAGS 1)
++  set (ac_cv_have_abslflags 1)
++else (WITH_ABSL)
++set (ac_cv_have_abslflags 0)
++endif (WITH_ABSL)
++
+ find_package (Threads)
+ find_package (Unwind)
+ 
+@@ -1025,7 +1033,7 @@ write_basic_package_version_file (
+   ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
+   COMPATIBILITY SameMajorVersion)
+ 
+-export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
++# export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake)
+ export (PACKAGE glog)
+ 
+ get_filename_component (_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE)
+diff --git a/src/base/commandlineflags.h b/src/base/commandlineflags.h
+index bcb12dea..1c9d9294 100644
+--- a/src/base/commandlineflags.h
++++ b/src/base/commandlineflags.h
+@@ -57,6 +57,25 @@
+ 
+ #include <gflags/gflags.h>
+ 
++#else
++#ifdef HAVE_ABSL_FLAGS
++#include <absl/flags/flag.h>
++
++#define FLAG(name) absl::GetFlag(FLAGS_##name)
++
++#define DEFINE_bool(name, value, meaning) \
++  ABSL_FLAG(bool, name, value, meaning)
++
++#define DEFINE_int32(name, value, meaning) \
++  ABSL_FLAG(GOOGLE_NAMESPACE::int32, name, value, meaning)
++
++#define DEFINE_uint32(name, value, meaning) \
++  ABSL_FLAG(GOOGLE_NAMESPACE::uint32, name, value, meaning)
++
++#define DEFINE_string(name, value, meaning) \
++  ABSL_FLAG(std::string, name, value, meaning)
++
++
+ #else
+ 
+ #include <glog/logging.h>
+@@ -108,6 +127,7 @@
+   }                                                           \
+   using fLS::FLAGS_##name
+ 
++#endif
+ #endif  // HAVE_LIB_GFLAGS
+ 
+ // Define GLOG_DEFINE_* using DEFINE_* . By using these macros, we
+diff --git a/src/base/mutex.h b/src/base/mutex.h
+index e82c597f..a58c1412 100644
+--- a/src/base/mutex.h
++++ b/src/base/mutex.h
+@@ -319,11 +319,6 @@ class WriterMutexLock {
+   void operator=(const WriterMutexLock&);
+ };
+ 
+-// Catch bug where variable name is omitted, e.g. MutexLock (&mu);
+-#define MutexLock(x) COMPILE_ASSERT(0, mutex_lock_decl_missing_var_name)
+-#define ReaderMutexLock(x) COMPILE_ASSERT(0, rmutex_lock_decl_missing_var_name)
+-#define WriterMutexLock(x) COMPILE_ASSERT(0, wmutex_lock_decl_missing_var_name)
+-
+ }  // namespace MUTEX_NAMESPACE
+ 
+ using namespace MUTEX_NAMESPACE;
+diff --git a/src/config.h.cmake.in b/src/config.h.cmake.in
+index b225b7ec..a4c58c96 100644
+--- a/src/config.h.cmake.in
++++ b/src/config.h.cmake.in
+@@ -34,6 +34,8 @@
+ /* define if you have google gflags library */
+ #cmakedefine HAVE_LIB_GFLAGS
+ 
++#cmakedefine HAVE_ABSL_FLAGS
++
+ /* define if you have google gmock library */
+ #cmakedefine HAVE_LIB_GMOCK
+ 
+diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in
+index 95a573b1..54cd838f 100644
+--- a/src/glog/logging.h.in
++++ b/src/glog/logging.h.in
+@@ -89,6 +89,10 @@
+ #include <gflags/gflags.h>
+ #endif
+ 
++#if @ac_cv_have_abslflags@
++#include <absl/flags/declare.h>
++#endif
++
+ #if @ac_cv_cxx11_atomic@ && __cplusplus >= 201103L
+ #include <atomic>
+ #elif defined(GLOG_OS_WINDOWS)
+@@ -395,6 +399,14 @@ typedef void(*CustomPrefixCallback)(std::ostream& s, const LogMessageInfo& l, vo
+ #undef DECLARE_uint32
+ #endif
+ 
++#if @ac_cv_have_abslflags@
++#define DECLARE_VARIABLE 1
++#define DECLARE_bool(name) ABSL_DECLARE_FLAG(bool, name)
++#define DECLARE_int32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::int32, name)
++#define DECLARE_uint32(name) ABSL_DECLARE_FLAG(@ac_google_namespace@::uint32, name)
++#define DECLARE_string(name) ABSL_DECLARE_FLAG(std::string, name)
++#endif
++
+ #ifndef DECLARE_VARIABLE
+ #define DECLARE_VARIABLE(type, shorttype, name, tn)                     \
+   namespace fL##shorttype {                                             \
+diff --git a/src/glog/vlog_is_on.h.in b/src/glog/vlog_is_on.h.in
+index 7526fc34..16e60f46 100644
+--- a/src/glog/vlog_is_on.h.in
++++ b/src/glog/vlog_is_on.h.in
+@@ -64,6 +64,14 @@
+ #include <glog/log_severity.h>
+ 
+ #if defined(__GNUC__)
++
++#if @ac_cv_have_abslflags@
++  extern int32_t absl_proxy_v;
++  #define VLEVEL (@ac_google_namespace@::absl_proxy_v)
++#else
++  #define VLEVEL (FLAGS_v)
++#endif
++
+ // We emit an anonymous static int* variable at every VLOG_IS_ON(n) site.
+ // (Normally) the first time every VLOG_IS_ON(n) site is hit,
+ // we determine what variable will dynamically control logging at this site:
+@@ -74,7 +82,7 @@
+   __extension__  \
+   ({ static @ac_google_namespace@::SiteFlag vlocal__ = {NULL, NULL, 0, NULL};       \
+      @ac_google_namespace@::int32 verbose_level__ = (verboselevel);                    \
+-     (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
++     (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &VLEVEL, \
+                         __FILE__, verbose_level__) : *vlocal__.level >= verbose_level__); \
+   })
+ #else
+diff --git a/src/logging.cc b/src/logging.cc
+index 4028ccc0..fc618d3a 100644
+--- a/src/logging.cc
++++ b/src/logging.cc
+@@ -103,7 +103,9 @@ using std::fdopen;
+ #endif
+ 
+ // There is no thread annotation support.
++#ifndef EXCLUSIVE_LOCKS_REQUIRED
+ #define EXCLUSIVE_LOCKS_REQUIRED(mu)
++#endif
+ 
+ static bool BoolFromEnv(const char *varname, bool defval) {
+   const char* const valstr = getenv(varname);
+@@ -351,8 +353,9 @@ static const char* GetAnsiColorCode(GLogColor color) {
+ 
+ // Safely get max_log_size, overriding to 1 if it somehow gets defined as 0
+ static uint32 MaxLogSize() {
+-  return (FLAGS_max_log_size > 0 && FLAGS_max_log_size < 4096
+-              ? FLAGS_max_log_size
++  uint32 maxlogsize = FLAG(max_log_size);
++  return (maxlogsize > 0 && maxlogsize < 4096
++              ? maxlogsize
+               : 1);
+ }
+ 
+@@ -721,7 +724,7 @@ inline void LogDestination::SetStderrLogging(LogSeverity min_severity) {
+   // Prevent any subtle race conditions by wrapping a mutex lock around
+   // all this stuff.
+   MutexLock l(&log_mutex);
+-  FLAGS_stderrthreshold = min_severity;
++  absl::SetFlag(&FLAGS_stderrthreshold, min_severity);
+ }
+ 
+ inline void LogDestination::LogToStderr() {
+@@ -747,8 +750,8 @@ static void ColoredWriteToStderrOrStdout(FILE* output, LogSeverity severity,
+                                          const char* message, size_t len) {
+   bool is_stdout = (output == stdout);
+   const GLogColor color = (LogDestination::terminal_supports_color() &&
+-                           ((!is_stdout && FLAGS_colorlogtostderr) ||
+-                            (is_stdout && FLAGS_colorlogtostdout)))
++                           ((!is_stdout && FLAG(colorlogtostderr)) ||
++                            (is_stdout && FLAG(colorlogtostdout))))
+                               ? SeverityToColor(severity)
+                               : COLOR_DEFAULT;
+ 
+@@ -789,7 +792,7 @@ static void ColoredWriteToStdout(LogSeverity severity, const char* message,
+   FILE* output = stdout;
+   // We also need to send logs to the stderr when the severity is
+   // higher or equal to the stderr threshold.
+-  if (severity >= FLAGS_stderrthreshold) {
++  if (severity >= FLAG(stderrthreshold)) {
+     output = stderr;
+   }
+   ColoredWriteToStderrOrStdout(output, severity, message, len);
+@@ -808,7 +811,7 @@ static void WriteToStderr(const char* message, size_t len) {
+ 
+ inline void LogDestination::MaybeLogToStderr(LogSeverity severity,
+ 					     const char* message, size_t message_len, size_t prefix_len) {
+-  if ((severity >= FLAGS_stderrthreshold) || FLAGS_alsologtostderr) {
++  if ((severity >= FLAG(stderrthreshold)) || FLAG(alsologtostderr)) {
+     ColoredWriteToStderr(severity, message, message_len);
+ #ifdef GLOG_OS_WINDOWS
+     (void) prefix_len;
+@@ -835,8 +838,8 @@ inline void LogDestination::MaybeLogToStderr(LogSeverity severity,
+ inline void LogDestination::MaybeLogToEmail(LogSeverity severity,
+ 					    const char* message, size_t len) {
+   if (severity >= email_logging_severity_ ||
+-      severity >= FLAGS_logemaillevel) {
+-    string to(FLAGS_alsologtoemail);
++      severity >= FLAG(logemaillevel)) {
++    string to(FLAG(alsologtoemail));
+     if (!addresses_.empty()) {
+       if (!to.empty()) {
+         to += ",";
+@@ -862,7 +865,7 @@ inline void LogDestination::MaybeLogToLogfile(LogSeverity severity,
+                                               time_t timestamp,
+ 					      const char* message,
+ 					      size_t len) {
+-  const bool should_flush = severity > FLAGS_logbuflevel;
++  const bool should_flush = severity > FLAG(logbuflevel);
+   LogDestination* destination = log_destination(severity);
+   destination->logger_->Write(should_flush, timestamp, message, len);
+ }
+@@ -871,9 +874,9 @@ inline void LogDestination::LogToAllLogfiles(LogSeverity severity,
+                                              time_t timestamp,
+                                              const char* message,
+                                              size_t len) {
+-  if (FLAGS_logtostdout) {  // global flag: never log to file
++  if (FLAG(logtostdout)) {  // global flag: never log to file
+     ColoredWriteToStdout(severity, message, len);
+-  } else if (FLAGS_logtostderr) {  // global flag: never log to file
++  } else if (FLAG(logtostderr)) {  // global flag: never log to file
+     ColoredWriteToStderr(severity, message, len);
+   } else {
+     for (int i = severity; i >= 0; --i) {
+@@ -1032,25 +1035,25 @@ void LogFileObject::FlushUnlocked(){
+     bytes_since_flush_ = 0;
+   }
+   // Figure out when we are due for another flush.
+-  const int64 next = (FLAGS_logbufsecs
++  const int64 next = (FLAG(logbufsecs)
+                       * static_cast<int64>(1000000));  // in usec
+   next_flush_time_ = CycleClock_Now() + UsecToCycles(next);
+ }
+ 
+ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
+   string string_filename = base_filename_;
+-  if (FLAGS_timestamp_in_logfile_name) {
++  if (FLAG(timestamp_in_logfile_name)) {
+     string_filename += time_pid_string;
+   }
+   string_filename += filename_extension_;
+   const char* filename = string_filename.c_str();
+   //only write to files, create if non-existant.
+   int flags = O_WRONLY | O_CREAT;
+-  if (FLAGS_timestamp_in_logfile_name) {
++  if (FLAG(timestamp_in_logfile_name)) {
+     //demand that the file is unique for our timestamp (fail if it exists).
+     flags = flags | O_EXCL;
+   }
+-  int fd = open(filename, flags, FLAGS_logfile_mode);
++  int fd = open(filename, flags, FLAG(logfile_mode));
+   if (fd == -1) return false;
+ #ifdef HAVE_FCNTL
+   // Mark the file close-on-exec. We don't really care if this fails
+@@ -1083,7 +1086,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
+   file_ = fdopen(fd, "a");  // Make a FILE*.
+   if (file_ == NULL) {  // Man, we're screwed!
+     close(fd);
+-    if (FLAGS_timestamp_in_logfile_name) {
++    if (FLAG(timestamp_in_logfile_name)) {
+       unlink(filename);  // Erase the half-baked evidence: an unusable log file, only if we just created it.
+     }
+     return false;
+@@ -1125,8 +1128,8 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) {
+ 
+     // Make an additional link to the log file in a place specified by
+     // FLAGS_log_link, if indicated
+-    if (!FLAGS_log_link.empty()) {
+-      linkpath = FLAGS_log_link + "/" + linkname;
++    if (!FLAG(log_link).empty()) {
++      linkpath = FLAG(log_link) + "/" + linkname;
+       unlink(linkpath.c_str());                  // delete old one if it exists
+       if (symlink(filename, linkpath.c_str()) != 0) {
+         // silently ignore failures
+@@ -1165,7 +1168,7 @@ void LogFileObject::Write(bool force_flush,
+     rollover_attempt_ = 0;
+ 
+     struct ::tm tm_time;
+-    if (FLAGS_log_utc_time) {
++    if (FLAG(log_utc_time)) {
+       gmtime_r(&timestamp, &tm_time);
+     } else {
+       localtime_r(&timestamp, &tm_time);
+@@ -1253,14 +1256,14 @@ void LogFileObject::Write(bool force_flush,
+                        << ' '
+                        << setw(2) << tm_time.tm_hour << ':'
+                        << setw(2) << tm_time.tm_min << ':'
+-                       << setw(2) << tm_time.tm_sec << (FLAGS_log_utc_time ? " UTC\n" : "\n")
++                       << setw(2) << tm_time.tm_sec << (FLAG(log_utc_time) ? " UTC\n" : "\n")
+                        << "Running on machine: "
+                        << LogDestination::hostname() << '\n';
+ 
+     if(!g_application_fingerprint.empty()) {
+       file_header_stream << "Application fingerprint: " << g_application_fingerprint << '\n';
+     }
+-    const char* const date_time_format = FLAGS_log_year_in_prefix
++    const char* const date_time_format = FLAG(log_year_in_prefix)
+                                              ? "yyyymmdd hh:mm:ss.uuuuuu"
+                                              : "mmdd hh:mm:ss.uuuuuu";
+     file_header_stream << "Running duration (h:mm:ss): "
+@@ -1284,7 +1287,7 @@ void LogFileObject::Write(bool force_flush,
+     // greater than 4096, thereby indicating an error.
+     errno = 0;
+     fwrite(message, 1, message_len, file_);
+-    if ( FLAGS_stop_logging_if_full_disk &&
++    if ( FLAG(stop_logging_if_full_disk) &&
+          errno == ENOSPC ) {  // disk full, stop writing to disk
+       stop_writing = true;  // until the disk is
+       return;
+@@ -1307,7 +1310,7 @@ void LogFileObject::Write(bool force_flush,
+     FlushUnlocked();
+ #ifdef GLOG_OS_LINUX
+     // Only consider files >= 3MiB
+-    if (FLAGS_drop_log_memory && file_length_ >= (3U << 20U)) {
++    if (FLAG(drop_log_memory) && file_length_ >= (3U << 20U)) {
+       // Don't evict the most recent 1-2MiB so as not to impact a tailer
+       // of the log file and to avoid page rounding issue on linux < 4.7
+       uint32 total_drop_length =
+@@ -1348,7 +1351,7 @@ void LogCleaner::Disable() {
+ }
+ 
+ void LogCleaner::UpdateCleanUpTime() {
+-  const int64 next = (FLAGS_logcleansecs
++  const int64 next = (FLAG(logcleansecs)
+                       * 1000000);  // in usec
+   next_cleanup_time_ = CycleClock_Now() + UsecToCycles(next);
+ }
+@@ -1664,7 +1667,7 @@ void LogMessage::Init(const char* file,
+   //    I20201018 160715 f5d4fbb0 logging.cc:1153]
+   //    (log level, GMT year, month, date, time, thread_id, file basename, line)
+   // We exclude the thread_id for the default thread.
+-  if (FLAGS_log_prefix && (line != kNoLogPrefix)) {
++  if (FLAG(log_prefix) && (line != kNoLogPrefix)) {
+       std::ios saved_fmt(NULL);
+       saved_fmt.copyfmt(stream());
+       stream().fill('0');
+@@ -1672,7 +1675,7 @@ void LogMessage::Init(const char* file,
+       if (custom_prefix_callback == NULL) {
+     #endif
+           stream() << LogSeverityNames[severity][0];
+-          if (FLAGS_log_year_in_prefix) {
++          if (FLAG(log_year_in_prefix)) {
+             stream() << setw(4) << 1900 + logmsgtime_.year();
+           }
+           stream() << setw(2) << 1 + logmsgtime_.month()
+@@ -1703,11 +1706,11 @@ void LogMessage::Init(const char* file,
+   }
+   data_->num_prefix_chars_ = data_->stream_.pcount();
+ 
+-  if (!FLAGS_log_backtrace_at.empty()) {
++  if (!FLAG(log_backtrace_at).empty()) {
+     char fileline[128];
+     snprintf(fileline, sizeof(fileline), "%s:%d", data_->basename_, line);
+ #ifdef HAVE_STACKTRACE
+-    if (FLAGS_log_backtrace_at == fileline) {
++    if (FLAG(log_backtrace_at) == fileline) {
+       string stacktrace;
+       DumpStackTraceToString(&stacktrace);
+       stream() << " (stacktrace:\n" << stacktrace << ") ";
+@@ -1746,7 +1749,7 @@ ostream& LogMessage::stream() {
+ // Flush buffered message, called by the destructor, or any other function
+ // that needs to synchronize the log.
+ void LogMessage::Flush() {
+-  if (data_->has_been_flushed_ || data_->severity_ < FLAGS_minloglevel) {
++  if (data_->has_been_flushed_ || data_->severity_ < FLAG(minloglevel)) {
+     return;
+   }
+ 
+@@ -1808,7 +1811,7 @@ static char fatal_message[256];
+ void ReprintFatalMessage() {
+   if (fatal_message[0]) {
+     const size_t n = strlen(fatal_message);
+-    if (!FLAGS_logtostderr) {
++    if (!FLAG(logtostderr)) {
+       // Also write to stderr (don't color to avoid terminal checks)
+       WriteToStderr(fatal_message, n);
+     }
+@@ -1837,8 +1840,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) {
+   // global flag: never log to file if set.  Also -- don't log to a
+   // file if we haven't parsed the command line flags to get the
+   // program name.
+-  if (FLAGS_logtostderr || FLAGS_logtostdout || !IsGoogleLoggingInitialized()) {
+-    if (FLAGS_logtostdout) {
++  if (FLAG(logtostderr) || FLAG(logtostdout) || !IsGoogleLoggingInitialized()) {
++    if (FLAG(logtostdout)) {
+       ColoredWriteToStdout(data_->severity_, data_->message_text_,
+                            data_->num_chars_to_log_);
+     } else {
+@@ -1891,7 +1894,7 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) {
+       fatal_time = logmsgtime_.timestamp();
+     }
+ 
+-    if (!FLAGS_logtostderr && !FLAGS_logtostdout) {
++    if (!FLAG(logtostderr) && !FLAG(logtostdout)) {
+       for (int i = 0; i < NUM_SEVERITIES; ++i) {
+         if (LogDestination::log_destinations_[i]) {
+           LogDestination::log_destinations_[i]->logger_->Write(true, 0, "", 0);
+@@ -2238,7 +2241,7 @@ static bool SendEmailInternal(const char*dest, const char *subject,
+               subject, body, dest);
+     }
+ 
+-    string logmailer = FLAGS_logmailer;
++    string logmailer = FLAG(logmailer);
+     if (logmailer.empty()) {
+         logmailer = "/bin/mail";
+     }
+@@ -2338,9 +2341,9 @@ const vector<string>& GetLoggingDirectories() {
+   if (logging_directories_list == NULL) {
+     logging_directories_list = new vector<string>;
+ 
+-    if ( !FLAGS_log_dir.empty() ) {
++    if ( !FLAG(log_dir).empty() ) {
+       // A dir was specified, we should use it
+-      logging_directories_list->push_back(FLAGS_log_dir);
++      logging_directories_list->push_back(FLAG(log_dir));
+     } else {
+       GetTempDirectories(logging_directories_list);
+ #ifdef GLOG_OS_WINDOWS
+@@ -2654,7 +2657,7 @@ LogMessageTime::LogMessageTime(std::tm t) {
+ 
+ LogMessageTime::LogMessageTime(std::time_t timestamp, WallTime now) {
+   std::tm t;
+-  if (FLAGS_log_utc_time)
++  if (FLAG(log_utc_time))
+     gmtime_r(&timestamp, &t);
+   else
+     localtime_r(&timestamp, &t);
+@@ -2673,7 +2676,7 @@ void LogMessageTime::init(const std::tm& t, std::time_t timestamp,
+ void LogMessageTime::CalcGmtOffset() {
+   std::tm gmt_struct;
+   int isDst = 0;
+-  if ( FLAGS_log_utc_time ) {
++  if ( FLAG(log_utc_time )) {
+     localtime_r(&timestamp_, &gmt_struct);
+     isDst = gmt_struct.tm_isdst;
+     gmt_struct = time_struct_;
+diff --git a/src/raw_logging.cc b/src/raw_logging.cc
+index 43159832..8532362b 100644
+--- a/src/raw_logging.cc
++++ b/src/raw_logging.cc
+@@ -123,8 +123,8 @@ static char crash_buf[kLogBufSize + 1] = { 0 };  // Will end in '\0'
+ GLOG_ATTRIBUTE_FORMAT(printf, 4, 5)
+ void RawLog__(LogSeverity severity, const char* file, int line,
+               const char* format, ...) {
+-  if (!(FLAGS_logtostdout || FLAGS_logtostderr ||
+-        severity >= FLAGS_stderrthreshold || FLAGS_alsologtostderr ||
++  if (!(FLAG(logtostdout) || FLAG(logtostderr) ||
++        severity >= FLAG(stderrthreshold) || FLAG(alsologtostderr) ||
+         !IsGoogleLoggingInitialized())) {
+     return;  // this stderr log message is suppressed
+   }
+diff --git a/src/utilities.cc b/src/utilities.cc
+index a332f1a1..a9d5102a 100644
+--- a/src/utilities.cc
++++ b/src/utilities.cc
+@@ -141,7 +141,7 @@ static void DumpStackTrace(int skip_count, DebugWriter *writerfn, void *arg) {
+   int depth = GetStackTrace(stack, ARRAYSIZE(stack), skip_count+1);
+   for (int i = 0; i < depth; i++) {
+ #if defined(HAVE_SYMBOLIZE)
+-    if (FLAGS_symbolize_stacktrace) {
++    if (FLAG(symbolize_stacktrace)) {
+       DumpPCAndSymbol(writerfn, arg, stack[i], "    ");
+     } else {
+       DumpPC(writerfn, arg, stack[i], "    ");
+diff --git a/src/vlog_is_on.cc b/src/vlog_is_on.cc
+index e478a366..4b7a5cae 100644
+--- a/src/vlog_is_on.cc
++++ b/src/vlog_is_on.cc
+@@ -43,14 +43,24 @@
+ #include <glog/logging.h>
+ #include <glog/raw_logging.h>
+ #include "base/googleinit.h"
++#include "config.h"
+ 
+ // glog doesn't have annotation
+ #define ANNOTATE_BENIGN_RACE(address, description)
+ 
+ using std::string;
+ 
++#ifdef HAVE_ABSL_FLAGS
++
++ABSL_FLAG(int32_t, v, 0, "Show all VLOG(m) messages for m <= this."
++" Overridable by --vmodule.").OnUpdate([] {
++      GOOGLE_NAMESPACE::absl_proxy_v = absl::GetFlag(FLAGS_v);
++    });
++
++#else
+ GLOG_DEFINE_int32(v, 0, "Show all VLOG(m) messages for m <= this."
+ " Overridable by --vmodule.");
++#endif
+ 
+ GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
+ " Argument is a comma-separated list of <module name>=<log level>."
+@@ -60,6 +70,8 @@ GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
+ 
+ _START_GOOGLE_NAMESPACE_
+ 
++int32_t absl_proxy_v = 0;
++
+ namespace glog_internal_namespace_ {
+ 
+ // Used by logging_unittests.cc so can't make it static here.
+@@ -132,7 +144,8 @@ static void VLOG2Initializer() {
+   // Can now parse --vmodule flag and initialize mapping of module-specific
+   // logging levels.
+   inited_vmodule = false;
+-  const char* vmodule = FLAGS_vmodule.c_str();
++  string vmodule_str = FLAG(vmodule);
++  const char* vmodule = vmodule_str.c_str();
+   const char* sep;
+   VModuleInfo* head = NULL;
+   VModuleInfo* tail = NULL;
+@@ -164,7 +177,7 @@ static void VLOG2Initializer() {
+ 
+ // This can be called very early, so we use SpinLock and RAW_VLOG here.
+ int SetVLOGLevel(const char* module_pattern, int log_level) {
+-  int result = FLAGS_v;
++  int result = FLAG(v);
+   size_t const pattern_len = strlen(module_pattern);
+   bool found = false;
+   {
diff --git a/pkgs/servers/persistent-evdev/default.nix b/pkgs/servers/persistent-evdev/default.nix
new file mode 100644
index 000000000000..c666e9c8d799
--- /dev/null
+++ b/pkgs/servers/persistent-evdev/default.nix
@@ -0,0 +1,42 @@
+{ lib, buildPythonPackage, fetchFromGitHub, python3Packages }:
+
+buildPythonPackage rec {
+  pname = "persistent-evdev";
+  version = "unstable-2022-05-07";
+
+  src = fetchFromGitHub {
+    owner = "aiberia";
+    repo = pname;
+    rev = "52bf246464e09ef4e6f2e1877feccc7b9feba164";
+    sha256 = "d0i6DL/qgDELet4ew2lyVqzd9TApivRxL3zA3dcsQXY=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    evdev pyudev
+  ];
+
+  postPatch = ''
+    patchShebangs bin/persistent-evdev.py
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bin/persistent-evdev.py $out/bin
+
+    mkdir -p $out/etc/udev/rules.d
+    cp udev/60-persistent-input-uinput.rules $out/etc/udev/rules.d
+  '';
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/aiberia/persistent-evdev";
+    description = "Persistent virtual input devices for qemu/libvirt/evdev hotplug support";
+    license = licenses.mit;
+    maintainers = [ maintainers.lodi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index 03bb24d9a390..cb595de6a13e 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -38,7 +38,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.16.1" then "1sz858m9963xqr5kzjlwnq7k0a146rn60v6xijyfbp8y3brg618p"
+        if version == "7.17.4" then "a4e881d86694ae70ab6b18f72ea700415971200145d33d438e57c0374d9fc16f"
         else if version == "6.8.21" then "06b1pavyggzfp4wwdql0q9nm3r7i9px9cagp4yh4nhxhnk4w5fiq"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -55,7 +55,7 @@ in
     src = fetchurl {
       url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip";
       sha256 =
-        if version == "7.16.1" then "0yjy9yhw77lmalivxnmv2rq8fk93ddxszkk73lgmpffladx2ikir"
+        if version == "7.17.3" then "1835f374230cb17193859cee22ac90e3d7a67fb41a55fd4578e840d708287a08"
         else if version == "6.8.21" then "0m80cn7vkcvk95v4pdmi6vk5ww7p01k0hj2iqb9g870vs6x2qjzv"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -72,7 +72,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.16.1" then "1w5ndgffqzj5ijglmykifrk1jsgh7qwn8m7sbpiv0r7n3aayhz1x"
+        if version == "7.17.4" then "1c8175b2dac54277c1f41981fb4a784829e74e6e74268381fe0c27bc6652704b"
         else if version == "6.8.21" then "07w8s4a5gvr9lzjzf629y8rx3kvs6zd1vl07ksw1paghp42yb354"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -89,7 +89,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.16.1" then "16mv7b9nl96bcygabvjqidxp2sjk340va19mrmliblpq3mxa2sii"
+        if version == "7.17.4" then "702e446997bde5cb38af120a1cb4271d976fdd23444be49e53b6be3801d845a9"
         else if version == "6.8.21" then "1kdpbrasxwr3dn21zjrklp1s389rwa51fairygdwl8px9liwwfa5"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -106,7 +106,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.16.1" then "0bf8f8cybsp6s2ai3j04yay9kbhsafpgxivxjvzn2iy9qgc84ls4"
+        if version == "7.17.4" then "7d1574a585a9db0988ee248159d51f62cce5578a8c082096ef3e26efdb24aee7"
         else if version == "6.8.21" then "0v31yyhjcdlqnjw1f9kihh7z3c6d31whc57hqqd1dn579n4s9rlz"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -123,7 +123,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       sha256 =
-        if version == "7.16.1" then "0sfa0ql3hh8jmha230dyhr51bvsvwmazyycf36ngpmxsysm8ccml"
+        if version == "7.17.4" then "cad923a662db705d40ca29698aa118e9e4cc50ae564c426a76d5acb777a4f57c"
         else if version == "6.8.21" then "0sfh1az30q4f34zxig2fz8wn9gk53fmmxyg5pbi1svn9761p5awq"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -140,7 +140,7 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       sha256 =
-        if version == "7.16.1" then "1b95hjr4qhiavm7r7k19bwk5c64r00f1g5s0ydnb6gzym9hdb5s1"
+        if version == "7.17.4" then "a50be4cea5c68ad7615f87d672ba160d027fdfde2be0578bb2dabd6384cc8108"
         else if version == "6.8.21" then "00lwj00rfdk6850gk1n86chiz2w6afpqn7jn588jdbwv41qh5mrv"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
@@ -157,14 +157,14 @@ in
     pluginName = "search-guard";
     version =
       # https://docs.search-guard.com/latest/search-guard-versions
-      if esVersion == "7.16.1" then "${esVersion}-52.5.0"
+      if esVersion == "7.17.3" then "${esVersion}-53.1.0"
       else if esVersion == "6.8.21" then "${esVersion}-25.6"
       else throw "unsupported version ${esVersion} for plugin ${pluginName}";
     src =
-      if esVersion == "7.16.1" then
+      if esVersion == "7.17.3" then
         fetchurl {
           url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip";
-          sha256 = "1m3nj35qyrkkh3mhmn66nippavima8h8qpaxddalhjsvf70lhnjb";
+          sha256 = "b49b24f7b74043cb5bab93f18316ea71656a7668e61bf063ccaa7b0ee2302a31";
         }
       else if esVersion == "6.8.21" then
         fetchurl {
diff --git a/pkgs/shells/fish/plugins/hydro.nix b/pkgs/shells/fish/plugins/hydro.nix
index eddb88a225d2..cd8705d54716 100644
--- a/pkgs/shells/fish/plugins/hydro.nix
+++ b/pkgs/shells/fish/plugins/hydro.nix
@@ -15,6 +15,6 @@ buildFishPlugin rec {
     description = "Ultra-pure, lag-free prompt with async Git status";
     homepage = "https://github.com/jorgebucaran/hydro";
     license = licenses.mit;
-    maintainers = with maintainers; [ mrhedgehog ];
+    maintainers = with maintainers; [ thehedgeh0g ];
   };
 }
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
index 02eb112451bd..2665330206e1 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
@@ -1,11 +1,16 @@
 {system ? builtins.currentSystem}:
 
 let
+  inherit (releaseLib) lib;
+  releaseLib = import ../../top-level/release-lib.nix {
+    # We're not using any functions from release-lib.nix that look at
+    # supportedSystems.
+    supportedSystems = [];
+  };
+
   make = crossSystem: import ./make-bootstrap-tools.nix {
-    localSystem = { inherit system; };
-    inherit crossSystem;
+    pkgs = releaseLib.pkgsForCross crossSystem system;
   };
-  lib = import ../../../lib;
 in lib.mapAttrs (n: make) (with lib.systems.examples; {
   armv5tel   = sheevaplug;
   pogoplug4  = pogoplug4;
diff --git a/pkgs/tools/admin/certigo/default.nix b/pkgs/tools/admin/certigo/default.nix
index 541f23058ef2..d2914dbf95ae 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, fetchpatch }:
 
 buildGoModule rec {
   pname = "certigo";
@@ -11,12 +11,21 @@ buildGoModule rec {
     sha256 = "sha256-XGR6xIXdFLnJTFd+mJneRb/WkLmi0Jscta9Bj3paM1M=";
   };
 
-  vendorSha256 = "sha256-qS/tIi6umSuQcl43SI4LyL0k5eWfRWs7kVybRPGKcbs=";
+  patches = [
+    (fetchpatch {
+      name = "backport_TestConnect-Apple-Fixes.patch";
+      url = "https://github.com/square/certigo/commit/5332ac7ca20bdea63657cc8319e8b8fda4326938.patch";
+      sha256 = "sha256-mSNuiui2dxkXnCrXJ/asIzC8F1mtPecOVOIu6mE5jq4=";
+    })
+
+    (fetchpatch {
+      name = "backport_TestConnect-Expected-CipherSuite-Fixes.patch";
+      url = "https://github.com/square/certigo/commit/7ef0417bde4aafc69cbb72f0dd6d3577a56054a1.patch";
+      sha256 = "sha256-TUQ8B23HKheaPUjj4NkvjmZBAAhDNTyo2c8jf4qukds=";
+    })
+  ];
 
-  # Go running under Hydra Darwin x86_64 picks CHAPOLY instead of AES-GCM as
-  # the default TLS ciphersuite, and breaks the arguably flakey `TestConnect`
-  # test.
-  doCheck = !(stdenv.isDarwin && stdenv.isx86_64);
+  vendorSha256 = "sha256-qS/tIi6umSuQcl43SI4LyL0k5eWfRWs7kVybRPGKcbs=";
 
   meta = with lib; {
     description = "A utility to examine and validate certificates in a variety of formats";
diff --git a/pkgs/tools/compression/bzip3/default.nix b/pkgs/tools/compression/bzip3/default.nix
index 7fce055ce9fc..fa9b5d0845df 100644
--- a/pkgs/tools/compression/bzip3/default.nix
+++ b/pkgs/tools/compression/bzip3/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-arch-native"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "--disable-link-time-optimization" ];
 
   meta = {
     description = "A better and stronger spiritual successor to BZip2";
@@ -36,7 +36,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/kspalaiologos/bzip3/blob/${src.rev}/NEWS";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
-    # upstream supports Darwin but I couldn't get it to work
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/compression/efficient-compression-tool/default.nix b/pkgs/tools/compression/efficient-compression-tool/default.nix
new file mode 100644
index 000000000000..6a9615601276
--- /dev/null
+++ b/pkgs/tools/compression/efficient-compression-tool/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, boost
+, cmake
+, nasm
+, libpng
+}:
+
+stdenv.mkDerivation rec {
+  pname = "efficient-compression-tool";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "fhanau";
+    repo = "Efficient-Compression-Tool";
+    rev = "v${version}";
+    sha256 = "sha256-TSV5QXf6GuHAwQrde3Zo9MA1rtpAhtRg0UTzMkBnHB8=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake nasm ];
+
+  patches = [ ./use-nixpkgs-libpng.patch ];
+
+  buildInputs = [ boost libpng  ];
+
+  cmakeDir = "../src";
+
+  cmakeFlags = [ "-DECT_FOLDER_SUPPORT=ON" ];
+
+  meta = with lib; {
+    description = "Fast and effective C++ file optimizer";
+    homepage = "https://github.com/fhanau/Efficient-Compression-Tool";
+    license = licenses.asl20;
+    maintainers = [ maintainers.lunik1 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch b/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch
new file mode 100644
index 000000000000..f165b2b95506
--- /dev/null
+++ b/pkgs/tools/compression/efficient-compression-tool/use-nixpkgs-libpng.patch
@@ -0,0 +1,108 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d18843c..a9df1fb 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -8,11 +8,6 @@ if(NOT CMAKE_BUILD_TYPE)
+ 	set(CMAKE_BUILD_TYPE Release)
+ endif()
+ 
+-# Check that submodules are present only if source was downloaded with git
+-if(EXISTS "${CMAKE_SOURCE_DIR}/../.git" AND NOT EXISTS "${CMAKE_SOURCE_DIR}/../src/libpng/README")
+-    message (FATAL_ERROR "Submodules are not initialized. Run \n\tgit submodule update --init --recursive\n within the repository")
+-endif()
+-
+ add_executable(ect
+ 	main.cpp
+ 	gztools.cpp
+@@ -56,7 +51,6 @@ add_subdirectory(lodepng EXCLUDE_FROM_ALL)
+ add_subdirectory(miniz EXCLUDE_FROM_ALL)
+ add_subdirectory(zlib EXCLUDE_FROM_ALL)
+ add_subdirectory(zopfli EXCLUDE_FROM_ALL)
+-file(COPY ${CMAKE_SOURCE_DIR}/pngusr.h DESTINATION ${CMAKE_SOURCE_DIR}/libpng/)
+ add_subdirectory(optipng EXCLUDE_FROM_ALL)
+ # Mozjpeg changes the install prefix if it thinks the current is defaulted
+ set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT FALSE)
+diff --git a/src/Makefile b/src/Makefile
+index cc24367..7aa9f0a 100755
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -18,7 +18,7 @@ CXXSRC = support.cpp zopflipng.cpp zopfli/deflate.cpp zopfli/zopfli_gzip.cpp zop
+ lodepng/lodepng.cpp lodepng/lodepng_util.cpp optipng/codec.cpp optipng/optipng.cpp jpegtran.cpp gztools.cpp \
+ leanify/zip.cpp leanify/leanify.cpp
+ 
+-.PHONY: libpng mozjpeg deps bin all install
++.PHONY: mozjpeg deps bin all install
+ all: deps bin
+ 
+ bin: deps
+@@ -33,9 +33,6 @@ libz.a:
+ 	cd zlib/; \
+ 	$(CC) $(UCFLAGS) -c adler32.c crc32.c deflate.c inffast.c inflate.c inftrees.c trees.c zutil.c gzlib.c gzread.c; \
+ 	ar rcs ../libz.a adler32.o crc32.o deflate.o inffast.o inflate.o inftrees.o trees.o zutil.o gzlib.o gzread.o
+-libpng:
+-	cp pngusr.h libpng/pngusr.h
+-	make -C libpng/ -f scripts/makefile.linux-opt CC="$(CC)" CFLAGS="$(UCFLAGS) -DPNG_USER_CONFIG -Wno-macro-redefined" libpng.a
+ mozjpeg:
+ 	cd mozjpeg/; \
+ 	export CC="$(CC)"; \
+diff --git a/src/optipng/CMakeLists.txt b/src/optipng/CMakeLists.txt
+index 1037a20..3c751e9 100644
+--- a/src/optipng/CMakeLists.txt
++++ b/src/optipng/CMakeLists.txt
+@@ -16,16 +16,14 @@ add_library(optipng
+ add_library(optipng::optipng ALIAS optipng)
+ 
+ #make sure that we are using custom zlib and custom libpng options
+-set(PNG_BUILD_ZLIB ON CACHE BOOL "use custom zlib within libpng" FORCE)
+ set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../zlib/ CACHE FILEPATH "custom zlib directory" FORCE)
+ if(NOT WIN32)
+ 	add_compile_options(-Wno-macro-redefined)
+ endif()
+ add_compile_definitions(PNG_USER_CONFIG)
+ 
+-add_subdirectory(../libpng libpng EXCLUDE_FROM_ALL)
+ target_link_libraries(optipng
+-	png_static)
++	png)
+ 
+ # libpng generates some header files that we need to be able to include
+ target_include_directories(optipng
+diff --git a/src/optipng/image.h b/src/optipng/image.h
+index c439f84..8255fa0 100755
+--- a/src/optipng/image.h
++++ b/src/optipng/image.h
+@@ -13,7 +13,7 @@
+ #ifndef OPNGCORE_IMAGE_H
+ #define OPNGCORE_IMAGE_H
+ 
+-#include "../libpng/png.h"
++#include <png.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+diff --git a/src/optipng/opngreduc/opngreduc.h b/src/optipng/opngreduc/opngreduc.h
+index a7e6553..06ef956 100755
+--- a/src/optipng/opngreduc/opngreduc.h
++++ b/src/optipng/opngreduc/opngreduc.h
+@@ -13,7 +13,7 @@
+ 
+ #include <stdbool.h>
+ 
+-#include "../../libpng/png.h"
++#include <png.h>
+ 
+ 
+ #ifdef __cplusplus
+diff --git a/src/optipng/trans.h b/src/optipng/trans.h
+index a2f7f3e..c0e8dc4 100755
+--- a/src/optipng/trans.h
++++ b/src/optipng/trans.h
+@@ -13,7 +13,7 @@
+ #ifndef OPNGTRANS_TRANS_H
+ #define OPNGTRANS_TRANS_H
+ 
+-#include "../libpng/png.h"
++#include <png.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 1a482de62d91..66f5b695287a 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.18";
+  version = "5.18.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "sha256-HeYQdiKwvi9tdyYfl6K91AKR27aCqsfc4IYy0XH3oTQ=";
+    sha256 = "sha256-bpinXM/1LpNU2qGtKExhTEkPhEJzovpSTLrJ64QcclU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index c44157a2f026..d24e418a0865 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "5.16.0";
+  version = "5.18.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    hash = "sha256-eLjImZmb1pBEHLU9fAKrZxKUlAMZxpT/fILiPo5Gu58=";
+    hash = "sha256-Ho2IAb3sjNTK02DOO70Sw1qX8ryPfIyVgNGQOw6Mw1s=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/pkgs/tools/graphics/ifm/default.nix b/pkgs/tools/graphics/ifm/default.nix
index 8478395a874f..7b9d49b1273f 100644
--- a/pkgs/tools/graphics/ifm/default.nix
+++ b/pkgs/tools/graphics/ifm/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ perl tk ]; # perl and wish are not run but written as shebangs.
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: libvars.a(vars-freeze-lex.o):src/libvars/vars-freeze-lex.l:23:
+  #     multiple definition of `line_number'; ifm-main.o:src/ifm-main.c:46: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   enableParallelBuilding = false; # ifm-scan.l:16:10: fatal error: ifm-parse.h: No such file or directory
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/csvs-to-sqlite/default.nix b/pkgs/tools/misc/csvs-to-sqlite/default.nix
index 1deae6b3f833..736cc1c3dc5a 100644
--- a/pkgs/tools/misc/csvs-to-sqlite/default.nix
+++ b/pkgs/tools/misc/csvs-to-sqlite/default.nix
@@ -8,7 +8,13 @@ let
   python = python3.override {
     packageOverrides = self: super: {
       # Use click 7
-      click = self.callPackage ../../../development/python2-modules/click/default.nix { };
+      click = super.click.overridePythonAttrs (old: rec {
+        version = "7.1.2";
+        src = old.src.override {
+          inherit version;
+          sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
+        };
+      });
     };
   };
 in with python.pkgs; buildPythonApplication rec {
diff --git a/pkgs/tools/misc/mprocs/default.nix b/pkgs/tools/misc/mprocs/default.nix
index 2a14f252f4ad..a91b2a4d6acb 100644
--- a/pkgs/tools/misc/mprocs/default.nix
+++ b/pkgs/tools/misc/mprocs/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mprocs";
-  version = "0.2.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "pvolok";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9wac2jlh8MLggcYuEHVUPYPjhfzGN+4o1XT8B9pj4f8=";
+    sha256 = "sha256-IzaXcEm4eUpLWsn59ZSiIJ0mCegLhBiA3ONKI1Djemk=";
   };
 
-  cargoSha256 = "sha256-vGhoM5VMJO+ppLk8DetNZ8UteU6ifdtRe1HNJ0dSB+0=";
+  cargoSha256 = "sha256-nTFCFmmS3IIm+D2PjvDxUKQGTn2h0ajXtxLuosa9rRY=";
 
   meta = with lib; {
     description = "A TUI tool to run multiple commands in parallel and show the output of each command separately";
     homepage = "https://github.com/pvolok/mprocs";
     license = licenses.mit;
-    maintainers = [ maintainers.GaetanLepage ];
+    maintainers = with maintainers; [ GaetanLepage thehedgeh0g ];
   };
 }
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
index 421c7d21d305..a97402e7ba90 100644
--- a/pkgs/tools/misc/zellij/default.nix
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.29.1";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = "zellij";
     rev = "v${version}";
-    sha256 = "sha256-KuelmMQdCazwTlolH5xvvNXZfzHQDUV6rrlk037GFb8=";
+    sha256 = "sha256-T2mkkE7z6AhHnn/77HcrvbY+32EOwE8jjh+veVOE1CY=";
   };
 
-  cargoSha256 = "sha256-He8rMY8n15ZSF/GcbuYTx2JfZgqQnsZLfqP+lUYxnzw=";
+  cargoSha256 = "sha256-XTaQbMK7R43CE03niUaBzlYN4xRo7pUFdNYvUeA+MwA=";
 
   nativeBuildInputs = [
     mandown
@@ -61,6 +61,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://zellij.dev/";
     changelog = "https://github.com/zellij-org/zellij/blob/v${version}/Changelog.md";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ therealansh _0x4A6F abbe ];
+    maintainers = with maintainers; [ therealansh _0x4A6F abbe thehedgeh0g ];
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index b91ee5c9ee60..1d2928f3ad6e 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -86,16 +86,8 @@ in lib.makeExtensible (self: {
   };
 
   nix_2_9 = common {
-    version = "2.9.0";
-    sha256 = "sha256-W6aTsTpCTb+vXQEXDjnKqetOuJmEfSuK2CXvAMqwo74=";
-    patches = [
-      # can be removed when updated to 2.9.1
-      (fetchpatch {
-        name = "fix-segfault-in-git-fetcher";
-        url = "https://github.com/NixOS/nix/commit/bc4759345538c89e1f045aaabcc0cafe4ecca12a.patch";
-        sha256 = "sha256-UrfH4M7a02yfE9X3tA1Pwhw4RacBW+rShYkl7ybG64I=";
-      })
-    ];
+    version = "2.9.1";
+    sha256 = "sha256-qNL3lQPBsnStkru3j1ajN/H+knXI+X3dku8/dBfSw3g=";
   };
 
   stable = self.nix_2_9;
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index d21c9b3c568f..e65d28a6af9b 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -1,24 +1,36 @@
 { lib
 , python3
 , fetchFromGitHub
-, nix
+
+, bubblewrap
+, cacert
 , git
+, nix
+
+, withSandboxSupport ? false
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.6.4";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "sha256-6vKMaCTilPXd8K3AuLqtYInVyyFhdun0o9cX1WRMmWo=";
+    sha256 = "sha256-hGOcLrVPb+bSNA72ZfKE9Mjm2dr/qnuaCkjveHXPcws=";
   };
 
-  makeWrapperArgs = [
-    "--prefix" "PATH" ":" "${lib.makeBinPath [ nix git ]}"
-  ];
+  makeWrapperArgs =
+    let
+      binPath = [ nix git ] ++ lib.optional withSandboxSupport bubblewrap;
+    in
+    [
+      "--prefix PATH : ${lib.makeBinPath binPath}"
+      "--set NIX_SSL_CERT_FILE ${cacert}/etc/ssl/certs/ca-bundle.crt"
+      # we don't have any runtime deps but nix-review shells might inject unwanted dependencies
+      "--unset PYTHONPATH"
+    ];
 
   doCheck = false;
 
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 076b907d880e..8487d8a26050 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.7.1";
+  version = "2.7.2";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ra8BxM+zpe5UKlJ28wc8yE5ta4ro4o2OHfmu9fBqFTA=";
+    sha256 = "sha256-knpsoDVDGxG85YiD7pc+XDV7BgCSpNRFRuN+qM3Gv/U=";
   };
 
-  vendorSha256 = "sha256-4E9nHBaojkOwnSPxRn2JGFcQTF4WowTOtzE5zRjkqhk=";
+  vendorSha256 = "sha256-e17QpSXttso1crvBj0vrfuJliIDcXoXJzWt87ulSZXQ=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/pkgs/tools/security/sigma-cli/default.nix b/pkgs/tools/security/sigma-cli/default.nix
index 6f2ac26ebdc2..5a3ed90a4182 100644
--- a/pkgs/tools/security/sigma-cli/default.nix
+++ b/pkgs/tools/security/sigma-cli/default.nix
@@ -36,7 +36,8 @@ python3.pkgs.buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'prettytable = "^3.1.1"' 'prettytable = "*"'
+      --replace 'prettytable = "^3.1.1"' 'prettytable = "*"' \
+      --replace 'pysigma = "^0.5.0"' 'pysigma = "*"'
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/tools/text/ispell/default.nix b/pkgs/tools/text/ispell/default.nix
index 9a3f37cc64a5..6a004253a4f0 100644
--- a/pkgs/tools/text/ispell/default.nix
+++ b/pkgs/tools/text/ispell/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ispell";
-  version = "3.4.04";
+  version = "3.4.05";
 
   src = fetchurl {
     url = "https://www.cs.hmc.edu/~geoff/tars/${pname}-${version}.tar.gz";
-    sha256 = "sha256-h7zW8FIdhaCjp4NCFZVtdOvEkxRMx8eR+HvmhyzP4T4=";
+    sha256 = "sha256-zwxt7eP9JfraQ3XYasr+WDy5bY/lRt50apLrtt+JVgI=";
   };
 
   buildInputs = [ bison ncurses ];
diff --git a/pkgs/tools/text/ltex-ls/default.nix b/pkgs/tools/text/ltex-ls/default.nix
new file mode 100644
index 000000000000..c21ab2e038ab
--- /dev/null
+++ b/pkgs/tools/text/ltex-ls/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, makeBinaryWrapper, jre_headless }:
+
+stdenv.mkDerivation rec {
+  pname = "ltex-ls";
+  version = "15.2.0";
+
+  src = fetchurl {
+    url = "https://github.com/valentjn/ltex-ls/releases/download/${version}/ltex-ls-${version}.tar.gz";
+    sha256 = "sha256-ygjCFjYaP9Lc5BLuOHe5+lyaKpfDhicR783skkBgo7I=";
+  };
+
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -rfv bin/ lib/ $out
+    rm -fv $out/bin/*.bat
+    for file in $out/bin/{ltex-ls,ltex-cli}; do
+      wrapProgram $file --set JAVA_HOME "${jre_headless}"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://valentjn.github.io/ltex/";
+    description = "LSP language server for LanguageTool";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.marsam ];
+    platforms = jre_headless.meta.platforms;
+  };
+}
diff --git a/pkgs/tools/virtualization/cloud-init/default.nix b/pkgs/tools/virtualization/cloud-init/default.nix
index 9da4290dadde..a2e156f2a10b 100644
--- a/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/pkgs/tools/virtualization/cloud-init/default.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
     jsonschema
     netifaces
     oauthlib
+    pyserial
     pyyaml
     requests
   ];
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 2707fce25485..7dfa2c64b476 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -267,6 +267,7 @@ mapAliases ({
   cudnn_cudatoolkit_9_0 = throw "cudnn_cudatoolkit_9_0 has been removed in favor of newer versions"; # Added 2021-04-18
   cudnn_cudatoolkit_9_1 = throw "cudnn_cudatoolkit_9_1 has been removed in favor of newer versions"; # Added 2021-04-18
   cudnn_cudatoolkit_9_2 = throw "cudnn_cudatoolkit_9_2 has been removed in favor of newer versions"; # Added 2021-04-18
+  cura_stable = throw "cura_stable was removed because it was broken and used Python 2"; # added 2022-06-05
   curl_unix_socket = throw "curl_unix_socket has been dropped due to the lack of maintanence from upstream since 2015"; # Added 2022-06-02
   cutensor = throw "cutensor is now part of cudaPackages*"; # Added 2022-04-04
   cutensor_cudatoolkit_10 = throw "cutensor* is now part of cudaPackages*"; # Added 2022-04-04
@@ -661,6 +662,7 @@ mapAliases ({
   kinetic-cpp-client = throw "kinetic-cpp-client has been removed from nixpkgs, as it's abandoned"; # Added 2020-04-28
   kino = throw "kino has been removed because it was broken and abandoned"; # Added 2021-04-25
   knockknock = throw "knockknock has been removed from nixpkgs because the upstream project is abandoned"; # Added 2022-01-01
+  kodestudio = throw "kodestudio has been removed from nixpkgs, as the nix package has been long unmaintained and out of date."; # Added 2022-06-07
   kodiGBM = kodi-gbm;
   kodiPlain = kodi;
   kodiPlainWayland = kodi-wayland;
@@ -934,6 +936,7 @@ mapAliases ({
   nmap-unfree = nmap; # Added 2021-04-06
   nmap-graphical = throw "nmap graphical support has been removed due to its python2 dependency"; # Added 2022-04-26
   nmap_graphical = throw "nmap graphical support has been removed due to its python2 dependency"; # Modified 2022-04-26
+  nodejs-10_x = throw "nodejs-10_X has been removed. Use a newer version instead."; # Added 2022-05-31
   nologin = throw "'nologin' has been renamed to/replaced by 'shadow'"; # Converted to throw 2022-02-22
   nomad_1_1 = throw "nomad_1_1 has been removed because it's outdated. Use a a newer version instead"; # Added 2022-05-22
   nordic-polar = throw "nordic-polar was removed on 2021-05-27, now integrated in nordic"; # Added 2021-05-27
@@ -1226,6 +1229,7 @@ mapAliases ({
   s6Networking = throw "'s6Networking' has been renamed to/replaced by 's6-networking'"; # Converted to throw 2022-02-22
   s6PortableUtils = throw "'s6PortableUtils' has been renamed to/replaced by 's6-portable-utils'"; # Converted to throw 2022-02-22
   sagemath = throw "'sagemath' has been renamed to/replaced by 'sage'"; # Converted to throw 2022-02-22
+  salut_a_toi = throw "salut_a_toi was removed because it was broken and used Python 2"; # added 2022-06-05
   sam = throw "'sam' has been renamed to/replaced by 'deadpixi-sam'"; # Converted to throw 2022-02-22
   samsungUnifiedLinuxDriver = throw "'samsungUnifiedLinuxDriver' has been renamed to/replaced by 'samsung-unified-linux-driver'"; # Converted to throw 2022-02-22
   sane-backends-git = sane-backends; # Added 2021-02-19
@@ -1588,6 +1592,7 @@ mapAliases ({
   todolist = throw "todolist is now ultralist"; # Added 2020-12-27
   tor-browser-bundle = throw "tor-browser-bundle was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead"; # Added 2020-01-10
   tor-browser-unwrapped = throw "tor-browser-unwrapped was removed because it was out of date and inadequately maintained. Please use tor-browser-bundle-bin instead"; # Added 2020-01-10
+  torchat = throw "torchat was removed because it was broken and requires Python 2"; # added 2022-06-05
   ttyrec = ovh-ttyrec; # Added 2021-01-02
   zplugin = zinit; # Added 2021-01-30
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5716dd88ed2e..c87c30f2b092 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -386,6 +386,8 @@ with pkgs;
 
   eclipse-mat = callPackage ../development/tools/eclipse-mat { };
 
+  efficient-compression-tool = callPackage ../tools/compression/efficient-compression-tool { };
+
   evans = callPackage ../development/tools/evans { };
 
   firefly-desktop = callPackage ../applications/misc/firefly-desktop { };
@@ -4757,6 +4759,8 @@ with pkgs;
 
   evdevremapkeys = callPackage ../tools/inputmethods/evdevremapkeys { };
 
+  persistent-evdev = python3Packages.callPackage ../servers/persistent-evdev { };
+
   evscript = callPackage ../tools/inputmethods/evscript { };
 
   gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { stdenv = gcc10StdenvCompat; };
@@ -7468,13 +7472,8 @@ with pkgs;
 
   kfctl = callPackage ../applications/networking/cluster/kfctl { };
 
-  kibana6 = callPackage ../development/tools/misc/kibana/6.x.nix { };
-  kibana6-oss = callPackage ../development/tools/misc/kibana/6.x.nix {
-    enableUnfree = false;
-  };
   kibana7 = callPackage ../development/tools/misc/kibana/7.x.nix { };
-  kibana = kibana6;
-  kibana-oss = kibana6-oss;
+  kibana = kibana7;
 
   kibi = callPackage ../applications/editors/kibi { };
 
@@ -7854,14 +7853,6 @@ with pkgs;
 
   nodejs-slim = nodejs-slim-16_x;
 
-
-  nodejs-10_x = callPackage ../development/web/nodejs/v10.nix {
-    icu = icu67;
-  };
-  nodejs-slim-10_x = callPackage ../development/web/nodejs/v10.nix {
-    enableNpm = false;
-    icu = icu67;
-  };
   nodejs-12_x = callPackage ../development/web/nodejs/v12.nix { };
   nodejs-slim-12_x = callPackage ../development/web/nodejs/v12.nix {
     enableNpm = false;
@@ -9611,6 +9602,10 @@ with pkgs;
 
   pwndbg = callPackage ../development/tools/misc/pwndbg { };
 
+  pwninit = callPackage ../development/tools/misc/pwninit {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   pycflow2dot = with python3.pkgs; toPythonApplication pycflow2dot;
 
   pydf = callPackage ../applications/misc/pydf { };
@@ -10104,8 +10099,6 @@ with pkgs;
 
   salt = callPackage ../tools/admin/salt {};
 
-  salut_a_toi = callPackage ../applications/networking/instant-messengers/salut-a-toi {};
-
   samim-fonts = callPackage ../data/fonts/samim-fonts {};
 
   saml2aws = callPackage ../tools/security/saml2aws {
@@ -11286,8 +11279,6 @@ with pkgs;
 
   vcstool = callPackage ../development/tools/vcstool { };
 
-  vend = callPackage ../development/tools/vend { };
-
   verco = callPackage ../applications/version-management/verco { };
 
   verilator = callPackage ../applications/science/electronics/verilator {};
@@ -13023,6 +13014,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  gmqcc = callPackage ../development/compilers/gmqcc {};
+
   gtk-server = callPackage ../development/interpreters/gtk-server {};
 
   # Haskell and GHC
@@ -22448,6 +22441,7 @@ with pkgs;
   prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
   prometheus-modemmanager-exporter = callPackage ../servers/monitoring/prometheus/modemmanager-exporter.nix { };
   prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };
+  prometheus-nats-exporter = callPackage ../servers/monitoring/prometheus/nats-exporter.nix { };
   prometheus-nextcloud-exporter = callPackage ../servers/monitoring/prometheus/nextcloud-exporter.nix { };
   prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
   prometheus-nginxlog-exporter = callPackage ../servers/monitoring/prometheus/nginxlog-exporter.nix { };
@@ -25241,9 +25235,7 @@ with pkgs;
 
   atlassian-cli = callPackage ../applications/office/atlassian-cli { };
 
-  atomEnv = callPackage ../applications/editors/atom/env.nix {
-    gconf = gnome2.GConf;
-  };
+  atomEnv = callPackage ../applications/editors/atom/env.nix { };
 
   atomPackages = dontRecurseIntoAttrs (callPackage ../applications/editors/atom { });
 
@@ -25869,6 +25861,8 @@ with pkgs;
 
   dr14_tmeter = callPackage ../applications/audio/dr14_tmeter { };
 
+  dragonflydb = callPackage ../servers/nosql/dragonflydb { };
+
   dragonfly-reverb = callPackage ../applications/audio/dragonfly-reverb { };
 
   drawing = callPackage ../applications/graphics/drawing { };
@@ -27584,8 +27578,6 @@ with pkgs;
 
   kn = callPackage ../applications/networking/cluster/kn { };
 
-  kodestudio = callPackage ../applications/editors/kodestudio { };
-
   kondo = callPackage ../applications/misc/kondo { };
 
   konversation = libsForQt5.callPackage ../applications/networking/irc/konversation { };
@@ -27893,6 +27885,8 @@ with pkgs;
 
   lsp-plugins = callPackage ../applications/audio/lsp-plugins { php = php74; };
 
+  ltex-ls = callPackage ../tools/text/ltex-ls { };
+
   luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
 
   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
@@ -29571,10 +29565,14 @@ with pkgs;
 
   sptlrx = callPackage ../applications/audio/sptlrx { };
 
+  sptk = callPackage ../development/libraries/sptk { };
+
   squishyball = callPackage ../applications/audio/squishyball {
     ncurses = ncurses5;
   };
 
+  stw = callPackage ../applications/misc/stw { };
+
   styx = callPackage ../applications/misc/styx { };
 
   sway-launcher-desktop = callPackage ../applications/misc/sway-launcher-desktop { };
@@ -29653,9 +29651,6 @@ with pkgs;
   };
 
   curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
-  cura_stable = callPackage ../applications/misc/cura/stable.nix {
-    curaengine = curaengine_stable;
-  };
 
   curaengine = callPackage ../applications/misc/curaengine { inherit (python3.pkgs) libarcus; };
 
@@ -30073,8 +30068,6 @@ with pkgs;
 
   topydo = callPackage ../applications/misc/topydo {};
 
-  torchat = callPackage ../applications/networking/instant-messengers/torchat { };
-
   torrential = callPackage ../applications/networking/p2p/torrential { };
 
   tortoisehg = callPackage ../applications/version-management/tortoisehg { };
@@ -32288,7 +32281,7 @@ with pkgs;
   stt = callPackage ../tools/audio/stt { };
 
   stuntrally = callPackage ../games/stuntrally
-    { stdenv = gcc10StdenvCompat; ogre = ogre1_9; mygui = mygui.override { withOgre = true; }; };
+    { ogre = ogre1_9; mygui = mygui.override { withOgre = true; }; };
 
   superTux = callPackage ../games/supertux { };
 
@@ -33252,6 +33245,7 @@ with pkgs;
     coqPackages_8_13 coq_8_13
     coqPackages_8_14 coq_8_14
     coqPackages_8_15 coq_8_15
+    coqPackages_8_16 coq_8_16
     coqPackages      coq
   ;
 
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 6cfd34aa279b..91894bfaa9e7 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -151,6 +151,7 @@ in rec {
   coq_8_13 = mkCoq "8.13";
   coq_8_14 = mkCoq "8.14";
   coq_8_15 = mkCoq "8.15";
+  coq_8_16 = mkCoq "8.16";
 
   coqPackages_8_5 = mkCoqPackages coq_8_5;
   coqPackages_8_6 = mkCoqPackages coq_8_6;
@@ -163,6 +164,7 @@ in rec {
   coqPackages_8_13 = mkCoqPackages coq_8_13;
   coqPackages_8_14 = mkCoqPackages coq_8_14;
   coqPackages_8_15 = mkCoqPackages coq_8_15;
+  coqPackages_8_16 = mkCoqPackages coq_8_16;
   coqPackages = recurseIntoAttrs coqPackages_8_15;
   coq = coqPackages.coq;
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index f24b11399206..a548d11563ae 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -22117,10 +22117,10 @@ let
 
   TestLWPUserAgent = buildPerlPackage {
     pname = "Test-LWP-UserAgent";
-    version = "0.034";
+    version = "0.036";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.034.tar.gz";
-      sha256 = "1ybhl9zpxkz77d25h96kbgh16zy9f27n95p6j9jg52kvdg0r2lbp";
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.036.tar.gz";
+      sha256 = "sha256-BTJ1MNNGuAphpulD+9dJmGvcqJIRpOswHAjC0XkxThE=";
     };
     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
@@ -22128,7 +22128,6 @@ let
       description = "A LWP::UserAgent suitable for simulating and testing network calls";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
-      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestLWPUserAgent.x86_64-darwin
     };
   };
 
diff --git a/pkgs/top-level/python2-packages.nix b/pkgs/top-level/python2-packages.nix
index c915fc5c8c50..717c16785704 100644
--- a/pkgs/top-level/python2-packages.nix
+++ b/pkgs/top-level/python2-packages.nix
@@ -18,8 +18,6 @@ with self; with super; {
 
   cheetah = callPackage ../development/python2-modules/cheetah { };
 
-  click = callPackage ../development/python2-modules/click { };
-
   configparser = callPackage ../development/python2-modules/configparser { };
 
   construct = callPackage ../development/python2-modules/construct { };
@@ -28,18 +26,10 @@ with self; with super; {
 
   coverage = callPackage ../development/python2-modules/coverage { };
 
-  cryptography = callPackage ../development/python2-modules/cryptography { };
-
-  decorator = callPackage ../development/python2-modules/decorator { };
-
   enum = callPackage ../development/python2-modules/enum { };
 
   filelock =  callPackage ../development/python2-modules/filelock { };
 
-  flask = callPackage ../development/python2-modules/flask { };
-
-  freezegun = callPackage ../development/python2-modules/freezegun { };
-
   futures = callPackage ../development/python2-modules/futures { };
 
   google-apputils = callPackage ../development/python2-modules/google-apputils { };
@@ -54,16 +44,8 @@ with self; with super; {
 
   importlib-metadata = callPackage ../development/python2-modules/importlib-metadata { };
 
-  ipaddr = callPackage ../development/python2-modules/ipaddr { };
-
-  itsdangerous = callPackage ../development/python2-modules/itsdangerous { };
-
   jinja2 = callPackage ../development/python2-modules/jinja2 { };
 
-  libcloud = callPackage ../development/python2-modules/libcloud { };
-
-  lpod = callPackage ../development/python2-modules/lpod { };
-
   marisa = callPackage ../development/python2-modules/marisa {
     inherit (pkgs) marisa;
   };
@@ -110,8 +92,6 @@ with self; with super; {
 
   pygtk = callPackage ../development/python2-modules/pygtk { };
 
-  pyjwt = callPackage ../development/python2-modules/pyjwt { };
-
   pyparsing = callPackage ../development/python2-modules/pyparsing { };
 
   pyroma = callPackage ../development/python2-modules/pyroma { };
@@ -160,20 +140,6 @@ with self; with super; {
 
   typing = callPackage ../development/python2-modules/typing { };
 
-  urllib3 = callPackage ../development/python2-modules/urllib3 { };
-
-  werkzeug = callPackage ../development/python2-modules/werkzeug { };
-
-  wsproto = callPackage ../development/python2-modules/wsproto { };
-
-  wxPython30 = callPackage ../development/python2-modules/wxPython {
-    wxGTK = pkgs.wxGTK30;
-  };
-
-  wxPython = self.wxPython30;
-
-  vcrpy = callPackage ../development/python2-modules/vcrpy { };
-
   zeek = disabled super.zeek;
 
   zipp = callPackage ../development/python2-modules/zipp { };