diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking')
763 files changed, 85029 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/3proxy/default.nix b/nixpkgs/pkgs/applications/networking/3proxy/default.nix new file mode 100644 index 000000000000..b83f93b3b68c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/3proxy/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, coreutils, nixosTests }: + +stdenv.mkDerivation rec { + pname = "3proxy"; + version = "0.9.4"; + + src = fetchFromGitHub { + owner = "z3APA3A"; + repo = pname; + rev = version; + sha256 = "sha256-4bLlQ/ULvpjs6fr19yBBln5mRRc+yj+zVLiTs1e/Ypc="; + }; + + makeFlags = [ + "-f Makefile.Linux" + "INSTALL=${coreutils}/bin/install" + "DESTDIR=${placeholder "out"}" + ]; + + passthru.tests = { + smoke-test = nixosTests._3proxy; + }; + + meta = with lib; { + description = "Tiny free proxy server"; + homepage = "https://github.com/z3APA3A/3proxy"; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = with maintainers; [ misuzu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix new file mode 100644 index 000000000000..c514ec22f110 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix @@ -0,0 +1,32 @@ +{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }: + +let + pname = "Sylk"; + version = "3.0.1"; +in + +appimageTools.wrapType2 rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; + hash = "sha256-VgepO7LHFmNKq/H0RFcIkafgtiVGt8K/LdiCO5Dw2s4="; + }; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = "mv $out/bin/{${name},${pname}}"; + + meta = with lib; { + description = "Sylk WebRTC client"; + homepage = "https://sylkserver.com/"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ zimbatm ]; + platforms = [ "i386-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix new file mode 100644 index 000000000000..18f9a7990c3e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchurl, jdk, makeWrapper, autoPatchelfHook, makeDesktopItem, glib, libsecret }: + +let + desktopItem = makeDesktopItem { + name = "apache-directory-studio"; + exec = "ApacheDirectoryStudio"; + icon = "apache-directory-studio"; + comment = "Eclipse-based LDAP browser and directory client"; + desktopName = "Apache Directory Studio"; + genericName = "Apache Directory Studio"; + categories = "Java;Network"; + }; + version = "2.0.0-M15"; + versionWithDate = "2.0.0.v20200411-M15"; +in +stdenv.mkDerivation rec { + pname = "apache-directory-studio"; + inherit version; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86_64.tar.gz"; + sha256 = "1rkyb0qcsl9hk2qcwp5mwaab69q3sn77v5xyn9mbvi5wg9icbc37"; + } + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + + buildInputs = [ glib libsecret ]; + nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; + + installPhase = '' + dest="$out/libexec/ApacheDirectoryStudio" + mkdir -p "$dest" + cp -r . "$dest" + + mkdir -p "$out/bin" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$dest/ApacheDirectoryStudio" + + makeWrapper "$dest/ApacheDirectoryStudio" \ + "$out/bin/ApacheDirectoryStudio" \ + --prefix PATH : "${jdk}/bin" + install -D icon.xpm "$out/share/pixmaps/apache-directory-studio.xpm" + install -D -t "$out/share/applications" ${desktopItem}/share/applications/* + ''; + + meta = with lib; { + description = "Eclipse-based LDAP browser and directory client"; + homepage = "https://directory.apache.org/studio/"; + license = licenses.asl20; + # Upstream supports macOS and Windows too. + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix new file mode 100644 index 000000000000..e894572dd78c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix @@ -0,0 +1,160 @@ +{ alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, autoPatchelfHook +, cairo +, cups +, curl +, dbus +, dnsmasq +, dpkg +, expat +, fetchurl +, gdk-pixbuf +, glib +, gtk3 +, icu +, iproute2 +, krb5 +, lib +, libdrm +, libsecret +, libuuid +, libxcb +, libxkbcommon +, lttng-ust +, makeWrapper +, mesa +, networkmanager +, nspr +, nss +, openssl +, pango +, procps +, python37 +, python37Packages +, stdenv +, systemd +, xdg-utils +, xorg +, zlib +}: +with lib; +let + deps = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + gdk-pixbuf + glib + gtk3 + icu + krb5 + libdrm + libsecret + libuuid + libxcb + libxkbcommon + lttng-ust + mesa + nspr + nss + openssl + 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.libxkbfile + xorg.libxshmfence + zlib + ]; +in +stdenv.mkDerivation rec { + pname = "appgate-sdp"; + version = "5.4.2"; + + src = fetchurl { + url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb"; + sha256 = "sha256-wAhcTRO/Cd4MG1lfPNDq92yGcu3NOfymucddy92VaXo="; + }; + + # just patch interpreter + autoPatchelfIgnoreMissingDeps = true; + dontConfigure = true; + dontBuild = true; + + buildInputs = [ + python37 + python37Packages.dbus-python + ]; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + dpkg + ]; + + unpackPhase = '' + dpkg-deb -x $src $out + ''; + + installPhase = '' + cp -r $out/usr/share $out/share + + substituteInPlace $out/lib/systemd/system/appgate-dumb-resolver.service \ + --replace "/opt/" "$out/opt/" + + substituteInPlace $out/lib/systemd/system/appgatedriver.service \ + --replace "/opt/" "$out/opt/" \ + --replace "InaccessiblePaths=/mnt /srv /boot /media" "InaccessiblePaths=-/mnt -/srv -/boot -/media" + + substituteInPlace $out/lib/systemd/system/appgate-resolver.service \ + --replace "/usr/sbin/dnsmasq" "${dnsmasq}/bin/dnsmasq" \ + --replace "/opt/" "$out/opt/" + + substituteInPlace $out/opt/appgate/linux/nm.py \ + --replace "/usr/sbin/dnsmasq" "${dnsmasq}/bin/dnsmasq" + + substituteInPlace $out/opt/appgate/linux/set_dns \ + --replace "/etc/appgate.conf" "$out/etc/appgate.conf" + + wrapProgram $out/opt/appgate/service/createdump \ + --set LD_LIBRARY_PATH "${makeLibraryPath [ stdenv.cc.cc ]}" + + wrapProgram $out/opt/appgate/appgate-driver \ + --prefix PATH : ${makeBinPath [ iproute2 networkmanager dnsmasq ]} \ + --set LD_LIBRARY_PATH $out/opt/appgate/service + + makeWrapper $out/opt/appgate/Appgate $out/bin/appgate \ + --prefix PATH : ${makeBinPath [ xdg-utils ]} \ + --set LD_LIBRARY_PATH $out/opt/appgate:${makeLibraryPath deps} + + wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH + ''; + + meta = with lib; { + description = "Appgate SDP (Software Defined Perimeter) desktop client"; + homepage = "https://www.appgate.com/support/software-defined-perimeter-support"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ ymatsiuk ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/bee/0001-clef-service-accept-default-CONFIGDIR-from-the-envir.patch b/nixpkgs/pkgs/applications/networking/bee/0001-clef-service-accept-default-CONFIGDIR-from-the-envir.patch new file mode 100644 index 000000000000..fb551646b7c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/bee/0001-clef-service-accept-default-CONFIGDIR-from-the-envir.patch @@ -0,0 +1,44 @@ +From 04933c578f51aa1f536991318dc5aede57f81c0d Mon Sep 17 00:00:00 2001 +From: Attila Lendvai <attila@lendvai.name> +Date: Sat, 30 Jan 2021 14:02:02 +0100 +Subject: [PATCH 1/2] clef-service: accept default CONFIGDIR from the + environment + +--- + packaging/bee-clef-service | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/packaging/bee-clef-service b/packaging/bee-clef-service +index 10bcd92..34c7edd 100755 +--- a/packaging/bee-clef-service ++++ b/packaging/bee-clef-service +@@ -1,16 +1,21 @@ + #!/usr/bin/env sh + + start() { +- KEYSTORE=/var/lib/bee-clef/keystore +- CONFIGDIR=/var/lib/bee-clef ++ if [ -z "$CONFIGDIR" ]; then ++ CONFIGDIR=/var/lib/bee-clef ++ fi ++ if [ -z "$PASSWORD_FILE" ]; then ++ PASSWORD_FILE=${CONFIGDIR}/password ++ fi ++ KEYSTORE=${CONFIGDIR}/keystore ++ SECRET=$(cat ${PASSWORD_FILE}) + CHAINID=5 +- SECRET=$(cat /var/lib/bee-clef/password) + # clef with every start sets permissions back to 600 +- (sleep 4; chmod 660 /var/lib/bee-clef/clef.ipc) & ++ (sleep 4; chmod 660 ${CONFIGDIR}/clef.ipc) & + ( sleep 2; cat << EOF + { "jsonrpc": "2.0", "id":1, "result": { "text":"$SECRET" } } + EOF +-) | clef --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules /etc/bee-clef/rules.js --nousb --4bytedb-custom /etc/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath /var/lib/bee-clef ++) | clef --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules /etc/bee-clef/rules.js --nousb --4bytedb-custom /etc/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath ${CONFIGDIR} + } + + stop() { +-- +2.29.2 + diff --git a/nixpkgs/pkgs/applications/networking/bee/0002-nix-diff-for-substituteAll.patch b/nixpkgs/pkgs/applications/networking/bee/0002-nix-diff-for-substituteAll.patch new file mode 100644 index 000000000000..611aed0b890a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/bee/0002-nix-diff-for-substituteAll.patch @@ -0,0 +1,25 @@ +From 1a1ab986245e8b74648a1a0adb5d1c7019561d18 Mon Sep 17 00:00:00 2001 +From: Attila Lendvai <attila@lendvai.name> +Date: Sat, 30 Jan 2021 15:24:57 +0100 +Subject: [PATCH 2/2] nix diff for substituteAll + +--- + packaging/bee-clef-service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/packaging/bee-clef-service b/packaging/bee-clef-service +index 34c7edd..31e9d95 100755 +--- a/packaging/bee-clef-service ++++ b/packaging/bee-clef-service +@@ -15,7 +15,7 @@ start() { + ( sleep 2; cat << EOF + { "jsonrpc": "2.0", "id":1, "result": { "text":"$SECRET" } } + EOF +-) | clef --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules /etc/bee-clef/rules.js --nousb --4bytedb-custom /etc/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath ${CONFIGDIR} ++) | @clefBinary@ --stdio-ui --keystore $KEYSTORE --configdir $CONFIGDIR --chainid $CHAINID --rules @out@/share/bee-clef/rules.js --nousb --4bytedb-custom @out@/share/bee-clef/4byte.json --pcscdpath "" --auditlog "" --loglevel 3 --ipcpath ${CONFIGDIR} + } + + stop() { +-- +2.29.2 + diff --git a/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix b/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix new file mode 100644 index 000000000000..9e36f8670d46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/bee/bee-clef.nix @@ -0,0 +1,57 @@ +{ version ? "release", stdenv, lib, fetchFromGitHub, go-ethereum }: + +stdenv.mkDerivation rec { + pname = "bee-clef"; + version = "0.4.7"; + + src = fetchFromGitHub { + owner = "ethersphere"; + repo = "bee-clef"; + rev = "refs/tags/v${version}"; + sha256 = "1sfwql0kvnir8b9ggpqcyc0ar995gxgfbhqb1xpfzp6wl0g3g4zz"; + }; + + buildInputs = [ go-ethereum ]; + + clefBinary = "${go-ethereum}/bin/clef"; + + patches = [ + ./0001-clef-service-accept-default-CONFIGDIR-from-the-envir.patch + ./0002-nix-diff-for-substituteAll.patch + ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin/ + mkdir -p $out/share/bee-clef/ + mkdir -p $out/lib/systemd/system/ + cp packaging/bee-clef.service $out/lib/systemd/system/ + substituteAll packaging/bee-clef-service $out/share/bee-clef/bee-clef-service + substituteAll ${./ensure-clef-account} $out/share/bee-clef/ensure-clef-account + substituteAll packaging/bee-clef-keys $out/bin/bee-clef-keys + cp packaging/rules.js packaging/4byte.json $out/share/bee-clef/ + chmod +x $out/bin/bee-clef-keys + chmod +x $out/share/bee-clef/bee-clef-service + chmod +x $out/share/bee-clef/ensure-clef-account + patchShebangs $out/ + ''; + + meta = with lib; { + # homepage = "https://gateway.ethswarm.org/bzz/docs.swarm.eth/docs/installation/bee-clef/"; + homepage = "https://docs.ethswarm.org/docs/installation/bee-clef"; + description = "External signer for Ethereum Swarm Bee"; + longDescription = '' + clef is go-ethereum's external signer. + + bee-clef is a package that starts up a vanilla clef instance as a systemd service, + but configured in such a way that is suitable for bee (relaxed security for + automated operation). + + This package contains the files necessary to run the bee-clef service. + ''; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ attila-lendvai ]; + platforms = go-ethereum.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/bee/bee.nix b/nixpkgs/pkgs/applications/networking/bee/bee.nix new file mode 100644 index 000000000000..b0d05d928c05 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/bee/bee.nix @@ -0,0 +1,77 @@ +{ version ? "release", lib, fetchFromGitHub, buildGoModule, coreutils }: + +let + + versionSpec = rec { + unstable = rec { + pname = "bee-unstable"; + version = "2021-01-30"; + rev = "824636a2c2629c329ab10275cef6a0b7395343ad"; + goVersionString = "g" + builtins.substring 0 7 rev; # this seems to be some kind of standard of git describe... + sha256 = "0ly1yqjq29arbak8lchdradf39l5bmxpbfir6ljjc7nyqdxz0sxg"; + vendorSha256 = "sha256-w5ZijaK8Adt1ZHPMmXqRWq0v0jdprRKRu03rePtZLXA="; + }; + release = rec { + pname = "bee"; + version = "0.5.0"; + rev = "refs/tags/v${version}"; + sha256 = "sha256-3Oy9RhgMPRFjUs3Dj8XUhAqoxx5BTi32OiK4Y8YEG2Q="; + vendorSha256 = "sha256-w5ZijaK8Adt1ZHPMmXqRWq0v0jdprRKRu03rePtZLXA="; + }; + "0.5.0" = release; + "0.4.1" = rec { + pname = "bee"; + version = "0.4.1"; + rev = "refs/tags/v${version}"; + sha256 = "1bmgbav52pcb5p7cgq9756512fzfqhjybyr0dv538plkqx47mpv7"; + vendorSha256 = "0j393va4jrg9q3wlc9mgkbpgnn2w2s3k2hcn8phzj8d5fl4n4v2h"; + }; + }.${version}; + +in + +buildGoModule { + inherit (versionSpec) pname version vendorSha256; + + src = fetchFromGitHub { + owner = "ethersphere"; + repo = "bee"; + inherit (versionSpec) rev sha256; + }; + + nativeBuildInputs = [ coreutils ]; + + subPackages = [ "cmd/bee" ]; + + # no symbol table, no debug info, and pass the commit for the version string + buildFlags = lib.optionalString ( lib.hasAttr "goVersionString" versionSpec) + "-ldflags -s -ldflags -w -ldflags -X=github.com/ethersphere/bee.commit=${versionSpec.goVersionString}"; + + # Mimic the bee Makefile: without disabling CGO, two (transitive and + # unused) dependencies would fail to compile. + preBuild = '' + export CGO_ENABLED=0 + ''; + + postInstall = '' + mkdir -p $out/lib/systemd/system + cp packaging/bee.service $out/lib/systemd/system/ + cp packaging/bee-get-addr $out/bin/ + chmod +x $out/bin/bee-get-addr + patchShebangs $out/bin/ + ''; + + meta = with lib; { + homepage = "https://swarm.ethereum.org/"; + description = "Ethereum Swarm Bee"; + longDescription = '' + A decentralised storage and communication system for a sovereign digital society. + + Swarm is a system of peer-to-peer networked nodes that create a decentralised storage and communication service. The system is economically self-sustaining due to a built-in incentive system enforced through smart contracts on the Ethereum blockchain. + + Bee is a Swarm node implementation, written in Go. + ''; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ attila-lendvai ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/bee/ensure-clef-account b/nixpkgs/pkgs/applications/networking/bee/ensure-clef-account new file mode 100644 index 000000000000..def67ff9cc33 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/bee/ensure-clef-account @@ -0,0 +1,47 @@ +#!/usr/bin/env sh + +set -e + +# NOTE This file is called by the systemd service in its preStart +# hook, but it's not Nix specific in any way. Ideally, the same file +# should be called from the postinst scripts of the other packages, +# but... the world is not ideal. + +# What follows was extracted from, and should be in sync with +# https://github.com/ethersphere/bee-clef/tree/master/packaging + +DATA_DIR="$1" +CONFIG_DIR="$2" +PASSWORD_FILE=${DATA_DIR}/password +MASTERSEED=${DATA_DIR}/masterseed.json +KEYSTORE=${DATA_DIR}/keystore + +echo "ensure-clef-account $DATA_DIR $CONFIG_DIR" + +if ! test -f ${PASSWORD_FILE}; then + < /dev/urandom tr -dc _A-Z-a-z-0-9 2> /dev/null | head -c32 > ${PASSWORD_FILE} + chmod 0400 ${PASSWORD_FILE} + echo "Initialized ${PASSWORD_FILE} from /dev/urandom" +fi + +if ! test -f ${MASTERSEED}; then + parse_json() { echo $1|sed -e 's/[{}]/''/g'|sed -e 's/", "/'\",\"'/g'|sed -e 's/" ,"/'\",\"'/g'|sed -e 's/" , "/'\",\"'/g'|sed -e 's/","/'\"---SEPERATOR---\"'/g'|awk -F=':' -v RS='---SEPERATOR---' "\$1~/\"$2\"/ {print}"|sed -e "s/\"$2\"://"|tr -d "\n\t"|sed -e 's/\\"/"/g'|sed -e 's/\\\\/\\/g'|sed -e 's/^[ \t]*//g'|sed -e 's/^"//' -e 's/"$//' ; } + SECRET=$(cat ${PASSWORD_FILE}) + CLEF="@clefBinary@ --configdir ${DATA_DIR} --keystore ${KEYSTORE} --stdio-ui" + $CLEF init >/dev/null << EOF +$SECRET +$SECRET +EOF + $CLEF newaccount >/dev/null << EOF +$SECRET +EOF + $CLEF setpw 0x$(parse_json $(cat ${KEYSTORE}/*) address) >/dev/null << EOF +$SECRET +$SECRET +$SECRET +EOF + $CLEF attest $(sha256sum ${CONFIG_DIR}/rules.js | cut -d' ' -f1 | tr -d '\n') >/dev/null << EOF +$SECRET +EOF + echo "Clef data dir initialized" +fi diff --git a/nixpkgs/pkgs/applications/networking/brig/default.nix b/nixpkgs/pkgs/applications/networking/brig/default.nix new file mode 100644 index 000000000000..20b685a162fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/brig/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "brig"; + version = "0.4.1"; + rev = "v${version}"; + + goPackagePath = "github.com/sahib/brig"; + subPackages = ["."]; + + src = fetchFromGitHub { + owner = "sahib"; + repo = "brig"; + inherit rev; + sha256 = "0gi39jmnzqrgj146yw8lcmgmvzx7ii1dgw4iqig7kx8c0jiqi600"; + }; + + meta = with lib; { + description = "File synchronization on top of ipfs with git like interface and FUSE filesystem"; + homepage = "https://github.com/sahib/brig"; + license = licenses.agpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ offline ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix b/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix new file mode 100644 index 000000000000..04871239eda4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "amfora"; + version = "1.8.0"; + + src = fetchFromGitHub { + owner = "makeworld-the-better-one"; + repo = "amfora"; + rev = "v${version}"; + sha256 = "sha256-q83fKs27vkrUs3+AoKZ2342llj6u3bvbLsdnT9DnVUs="; + }; + + vendorSha256 = "sha256-0blHwZwOcgC4LcmZSJPRvyQzArCsaMGgIw+cesO+qOo="; + + postInstall = lib.optionalString (!stdenv.isDarwin) '' + sed -i "s:amfora:$out/bin/amfora:" amfora.desktop + install -Dm644 amfora.desktop -t $out/share/applications + ''; + + meta = with lib; { + description = "A fancy terminal browser for the Gemini protocol"; + homepage = "https://github.com/makeworld-the-better-one/amfora"; + license = with licenses; [ gpl3 ]; + maintainers = with maintainers; [ deifactor ]; + changelog = "https://github.com/makeworld-the-better-one/amfora/blob/v${version}/CHANGELOG.md"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix b/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix new file mode 100644 index 000000000000..391993617da2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/angelfish/default.nix @@ -0,0 +1,70 @@ +{ lib +, mkDerivation +, fetchurl +, cmake +, corrosion +, extra-cmake-modules +, kconfig +, kcoreaddons +, kdbusaddons +, ki18n +, kirigami2 +, knotifications +, kpurpose +, kwindowsystem +, qtfeedback +, qtquickcontrols2 +, qtwebengine +, rustPlatform +}: + +mkDerivation rec { + pname = "angelfish"; + version = "21.06"; + + src = fetchurl { + url = "mirror://kde/stable/plasma-mobile/${version}/angelfish-${version}.tar.xz"; + sha256 = "sha256-iHgmG/DeaUPnRXlVIU8P/oUcYINienYmR2zI9Q4Yd3s="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + sha256 = "0zh0kli7kav18v9znq2f5jklhf3m1kyb41jzmivjx70g9xyfzlwk"; + }; + + nativeBuildInputs = [ + cmake + corrosion + extra-cmake-modules + ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + cmakeFlags = [ + "-DRust_CARGO=${rustPlatform.rust.cargo}/bin/cargo" + ]; + + buildInputs = [ + kconfig + kcoreaddons + kdbusaddons + ki18n + kirigami2 + knotifications + kpurpose + kwindowsystem + qtfeedback + qtquickcontrols2 + qtwebengine + ]; + + meta = with lib; { + description = "Web browser for Plasma Mobile"; + homepage = "https://apps.kde.org/en/mobile.angelfish"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix new file mode 100644 index 000000000000..b0ef9d890d53 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, rustPlatform, fetchFromSourcehut, pkg-config, ncurses, openssl, Security }: + +rustPlatform.buildRustPackage rec { + pname = "asuka"; + version = "0.8.1"; + + src = fetchFromSourcehut { + owner = "~julienxx"; + repo = pname; + rev = version; + sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k"; + }; + + cargoSha256 = "0b8wf12bjsy334g04sv3knw8f177xsmh7lrkyvx9gnn0fax0lmnr"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ ncurses openssl ] + ++ lib.optional stdenv.isDarwin Security; + + meta = with lib; { + description = "Gemini Project client written in Rust with NCurses"; + homepage = "https://git.sr.ht/~julienxx/asuka"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ sikmir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix b/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix new file mode 100644 index 000000000000..afd2e9b9c1a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix @@ -0,0 +1,25 @@ +{ lib, python3Packages, fetchgit }: + +python3Packages.buildPythonApplication rec { + pname = "av-98"; + version = "1.0.2dev"; + + src = fetchgit { + url = "https://tildegit.org/solderpunk/AV-98.git"; + rev = "96cf8e13fe5714c8cdc754f51eef9f0293b8ca1f"; + sha256 = "09iskh33hl5aaif763j1fmbz7yvf0yqsxycfd41scj7vbwdsbxl0"; + }; + + propagatedBuildInputs = with python3Packages; [ ansiwrap cryptography ]; + + # No tests are available + doCheck = false; + pythonImportsCheck = [ "av98" ]; + + meta = with lib; { + homepage = "https://tildegit.org/solderpunk/AV-98"; + description = "Experimental console client for the Gemini protocol"; + license = licenses.bsd2; + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix new file mode 100644 index 000000000000..b07c526c0d51 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchgit, buildGoModule, installShellFiles }: + +buildGoModule rec { + pname = "bombadillo"; + version = "2.3.3"; + + src = fetchgit { + url = "https://tildegit.org/sloum/bombadillo.git"; + rev = version; + sha256 = "02w6h44sxzmk3bkdidl8xla0i9rwwpdqljnvcbydx5kyixycmg0q"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + vendorSha256 = null; + + outputs = [ "out" "man" ]; + + postInstall = '' + installManPage bombadillo.1 + ''; + + meta = with lib; { + description = "Non-web client for the terminal, supporting Gopher, Gemini and more"; + homepage = "https://bombadillo.colorfield.space/"; + license = licenses.gpl3; + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix new file mode 100644 index 000000000000..7b2acbd6b3da --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix @@ -0,0 +1,177 @@ +{ stdenv, lib, fetchurl +, dpkg +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, dbus +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gnome2 +, gnome +, gsettings-desktop-schemas +, gtk3 +, libpulseaudio +, libuuid +, libdrm +, libX11 +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libxkbcommon +, libXrandr +, libXrender +, libXScrnSaver +, libxshmfence +, libXtst +, mesa +, nspr +, nss +, pango +, udev +, xorg +, zlib +, xdg-utils +, wrapGAppsHook +}: + +let + +rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libdrm + libpulseaudio + libX11 + libxkbcommon + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libxshmfence + libXtst + libuuid + mesa + nspr + nss + pango + udev + xdg-utils + xorg.libxcb + zlib +]; + +in + +stdenv.mkDerivation rec { + pname = "brave"; + version = "1.26.74"; + + src = fetchurl { + url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; + sha256 = "ULmoUXyPWHCewK4FPP7SX1Ena6n0aM/EWR7ZnMN1ztY="; + }; + + dontConfigure = true; + dontBuild = true; + dontPatchELF = true; + doInstallCheck = true; + + nativeBuildInputs = [ dpkg wrapGAppsHook ]; + + buildInputs = [ glib gsettings-desktop-schemas gnome.adwaita-icon-theme ]; + + unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner"; + + installPhase = '' + runHook preInstall + + mkdir -p $out $out/bin + + cp -R usr/share $out + cp -R opt/ $out/opt + + export BINARYWRAPPER=$out/opt/brave.com/brave/brave-browser + + # Fix path to bash in $BINARYWRAPPER + substituteInPlace $BINARYWRAPPER \ + --replace /bin/bash ${stdenv.shell} + + ln -sf $BINARYWRAPPER $out/bin/brave + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpath}" $out/opt/brave.com/brave/brave + + # Fix paths + substituteInPlace $out/share/applications/brave-browser.desktop \ + --replace /usr/bin/brave-browser-stable $out/bin/brave + substituteInPlace $out/share/gnome-control-center/default-apps/brave-browser.xml \ + --replace /opt/brave.com $out/opt/brave.com + substituteInPlace $out/share/menu/brave-browser.menu \ + --replace /opt/brave.com $out/opt/brave.com + substituteInPlace $out/opt/brave.com/brave/default-app-block \ + --replace /opt/brave.com $out/opt/brave.com + + # Correct icons location + icon_sizes=("16" "22" "24" "32" "48" "64" "128" "256") + + for icon in ''${icon_sizes[*]} + do + mkdir -p $out/share/icons/hicolor/$icon\x$icon/apps + ln -s $out/opt/brave.com/brave/product_logo_$icon.png $out/share/icons/hicolor/$icon\x$icon/apps/brave-browser.png + done + + # Replace xdg-settings and xdg-mime + ln -sf ${xdg-utils}/bin/xdg-settings $out/opt/brave.com/brave/xdg-settings + ln -sf ${xdg-utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime + + runHook postInstall + ''; + + installCheckPhase = '' + # Bypass upstream wrapper which suppresses errors + $out/opt/brave.com/brave/brave --version + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + homepage = "https://brave.com/"; + description = "Privacy-oriented browser for Desktop and Laptop computers"; + changelog = "https://github.com/brave/brave-browser/blob/master/CHANGELOG_DESKTOP.md"; + longDescription = '' + Brave browser blocks the ads and trackers that slow you down, + chew up your bandwidth, and invade your privacy. Brave lets you + contribute to your favorite creators automatically. + ''; + license = licenses.mpl20; + maintainers = with maintainers; [ uskudnik rht jefflabonte nasirhm ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/update.sh b/nixpkgs/pkgs/applications/networking/browsers/brave/update.sh new file mode 100755 index 000000000000..b7d974ad259d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/brave/update.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused common-updater-scripts + +version="$(curl -sL https://brave-browser-apt-release.s3.brave.com/dists/stable/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)/\1/p' | head -n1)" +update-source-version brave "$version" diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix new file mode 100644 index 000000000000..e106eb7ff664 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix @@ -0,0 +1,61 @@ +{ lib, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }: + +let + version = "1.6.4"; + + # TODO: must build the extension instead of downloading it. But since it's + # literally an asset that is indifferent regardless of the platform, this + # might be just enough. + webext = fetchurl { + url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}-an.fx.xpi"; + sha256 = "1shf1s9s525wns5vrsc4ns21zjxm1si43lx6v0q8ma6vd5x5445l"; + }; + +in buildGoPackage rec { + inherit version; + + pname = "browsh"; + + goPackagePath = "browsh"; + + # further go package dependencies are defined in deps.nix, see line below. + src = fetchFromGitHub { + owner = "browsh-org"; + repo = "browsh"; + rev = "v${version}"; + sha256 = "0gvf5k1gm81xxg7ha309kgfkgl5357dli0fbc4z01rmfgbl0rfa0"; + }; + + nativeBuildInputs = [ go-bindata ]; + + # embed the web extension in a go file and place it where it's supposed to + # be. See + # https://github.com/browsh-org/browsh/blob/v1.5.0/interfacer/contrib/xpi2bin.sh + preBuild = '' + xpiprefix="$(mktemp -d)" + cp "${webext}" "$xpiprefix/browsh.xpi" + go-bindata \ + -prefix "$xpiprefix" \ + -pkg browsh \ + -o "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/webextension.go" \ + "$xpiprefix/browsh.xpi" + + sed \ + -e 's:Asset("/browsh.xpi"):Asset("browsh.xpi"):g' \ + -i "$NIX_BUILD_TOP/go/src/${goPackagePath}/interfacer/src/browsh/firefox.go" + ''; + + postBuild = '' + mv "$NIX_BUILD_TOP/go/bin/src" "$NIX_BUILD_TOP/go/bin/browsh" + ''; + + goDeps = ./deps.nix; + + meta = with lib; { + description = "A fully-modern text-based browser, rendering to TTY and browsers"; + homepage = "https://www.brow.sh/"; + maintainers = [ maintainers.kalbasit ]; + license = lib.licenses.lgpl21; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix new file mode 100644 index 000000000000..12154af752da --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix @@ -0,0 +1,264 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "github.com/NYTimes/gziphandler"; + fetch = { + type = "git"; + url = "https://github.com/NYTimes/gziphandler"; + rev = "dd0439581c7657cb652dfe5c71d7d48baf39541d"; + sha256 = "0rhrjlw220hnymzfccm0yir3pc9dpj7h3gwzhzq2cbsb3hhsqvyy"; + }; + } + { + goPackagePath = "github.com/fsnotify/fsnotify"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "github.com/gdamore/encoding"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/encoding"; + rev = "6289cdc94c00ac4aa177771c5fce7af2f96b626d"; + sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"; + }; + } + { + goPackagePath = "github.com/gdamore/tcell"; + fetch = { + type = "git"; + url = "https://github.com/gdamore/tcell"; + rev = "b5d0c1ac570211e469f43ff88c0c6aa4b56cc99a"; + sha256 = "0g2zfbgyk3djlk0qpmrgcyy0ba9ad932yswpaacswi21qyf9gwag"; + }; + } + { + goPackagePath = "github.com/go-errors/errors"; + fetch = { + type = "git"; + url = "https://github.com/go-errors/errors"; + rev = "a6af135bd4e28680facf08a3d206b454abc877a4"; + sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp"; + }; + } + { + goPackagePath = "github.com/gorilla/websocket"; + fetch = { + type = "git"; + url = "https://github.com/gorilla/websocket"; + rev = "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d"; + sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk"; + }; + } + { + goPackagePath = "github.com/hashicorp/hcl"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/hcl"; + rev = "8cb6e5b959231cc1119e43259c4a608f9c51a241"; + sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"; + }; + } + { + goPackagePath = "github.com/hpcloud/tail"; + fetch = { + type = "git"; + url = "https://github.com/hpcloud/tail"; + rev = "a30252cb686a21eb2d0b98132633053ec2f7f1e5"; + sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0"; + }; + } + { + goPackagePath = "github.com/lucasb-eyer/go-colorful"; + fetch = { + type = "git"; + url = "https://github.com/lucasb-eyer/go-colorful"; + rev = "30298f24079860c4dee452fdef6519b362a4a026"; + sha256 = "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"; + }; + } + { + goPackagePath = "github.com/magiconair/properties"; + fetch = { + type = "git"; + url = "https://github.com/magiconair/properties"; + rev = "de8848e004dd33dc07a2947b3d76f618a7fc7ef1"; + sha256 = "19zqw1x0w0crh8zc84yy82nkcc5yjz72gviaf2xjgfm5a8np7nyb"; + }; + } + { + goPackagePath = "github.com/mattn/go-runewidth"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-runewidth"; + rev = "3ee7d812e62a0804a7d0a324e0249ca2db3476d3"; + sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "3536a929edddb9a5b34bd6861dc4a9647cb459fe"; + sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"; + }; + } + { + goPackagePath = "github.com/onsi/ginkgo"; + fetch = { + type = "git"; + url = "https://github.com/onsi/ginkgo"; + rev = "eea6ad008b96acdaa524f5b409513bf062b500ad"; + sha256 = "1326s5fxgasdpz1qqwrw4n5p3k0vz44msnyz14knrhlw5l97lx33"; + }; + } + { + goPackagePath = "github.com/onsi/gomega"; + fetch = { + type = "git"; + url = "https://github.com/onsi/gomega"; + rev = "90e289841c1ed79b7a598a7cd9959750cb5e89e2"; + sha256 = "1n7i4hksdgv410m43v2sw14bl5vy59dkp6nlw5l76nibbh37syr9"; + }; + } + { + goPackagePath = "github.com/pelletier/go-toml"; + fetch = { + type = "git"; + url = "https://github.com/pelletier/go-toml"; + rev = "728039f679cbcd4f6a54e080d2219a4c4928c546"; + sha256 = "1v76s3vds0i9dxaha4ikd6xjm7vqqfk6sy9l6jc2lsvmj99d5sy6"; + }; + } + { + goPackagePath = "github.com/pkg/errors"; + fetch = { + type = "git"; + url = "https://github.com/pkg/errors"; + rev = "ba968bfe8b2f7e042a574c888954fccecfa385b4"; + sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; + }; + } + { + goPackagePath = "github.com/shibukawa/configdir"; + fetch = { + type = "git"; + url = "https://github.com/shibukawa/configdir"; + rev = "e180dbdc8da04c4fa04272e875ce64949f38bd3e"; + sha256 = "0vbma9jkwh0ifz8dk2ssgmy7aiaify63lpa0lah7i4dkkxr94c9z"; + }; + } + { + goPackagePath = "github.com/spf13/afero"; + fetch = { + type = "git"; + url = "https://github.com/spf13/afero"; + rev = "588a75ec4f32903aa5e39a2619ba6a4631e28424"; + sha256 = "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9"; + }; + } + { + goPackagePath = "github.com/spf13/cast"; + fetch = { + type = "git"; + url = "https://github.com/spf13/cast"; + rev = "8c9545af88b134710ab1cd196795e7f2388358d7"; + sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5"; + }; + } + { + goPackagePath = "github.com/spf13/jwalterweatherman"; + fetch = { + type = "git"; + url = "https://github.com/spf13/jwalterweatherman"; + rev = "94f6ae3ed3bceceafa716478c5fbf8d29ca601a1"; + sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b"; + }; + } + { + goPackagePath = "github.com/spf13/pflag"; + fetch = { + type = "git"; + url = "https://github.com/spf13/pflag"; + rev = "298182f68c66c05229eb03ac171abe6e309ee79a"; + sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd"; + }; + } + { + goPackagePath = "github.com/spf13/viper"; + fetch = { + type = "git"; + url = "https://github.com/spf13/viper"; + rev = "b5bf975e5823809fb22c7644d008757f78a4259e"; + sha256 = "1zpzxvn13wpvbblbbn73svaq39zgxfjqhci9d68g3qf309pcfy19"; + }; + } + { + goPackagePath = "github.com/ulule/limiter"; + fetch = { + type = "git"; + url = "https://github.com/ulule/limiter"; + rev = "38b2a440be905c8be884fd5e114dc893a64e5d81"; + sha256 = "0sbbfz9k3m2hf45cx7y7xshsr3rac495lks9ciwmnrzsnxfdh3l5"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "461777fb6f67e8cb9d70cda16573678d085a74cf"; + sha256 = "0sc0llch05q6h7nqgayi3sgismsznpnlsz4gh89y4klpymdcpbh2"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "93c9922d18aeb82498a065f07aec7ad7fa60dfb7"; + sha256 = "0hv96nwbv0li3nrv43ldfzmf12yrrbji2cf8n44iibv8ps5kfssx"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475"; + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; + }; + } + { + goPackagePath = "gopkg.in/fsnotify.v1"; + fetch = { + type = "git"; + url = "https://github.com/fsnotify/fsnotify"; + rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9"; + sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; + }; + } + { + goPackagePath = "gopkg.in/tomb.v1"; + fetch = { + type = "git"; + url = "https://github.com/go-tomb/tomb"; + rev = "dd632973f1e7218eb1089048e0798ec9ae7dceb8"; + sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://github.com/go-yaml/yaml"; + rev = "51d6538a90f86fe93ac480b35f37b2be17fef232"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix new file mode 100644 index 000000000000..b302be4e013c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix @@ -0,0 +1,21 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + name = "captive-browser"; + version = "2019-04-16"; + goPackagePath = name; + + src = fetchFromGitHub { + owner = "FiloSottile"; + repo = "captive-browser"; + rev = "08450562e58bf9564ee98ad64ef7b2800e53338f"; + sha256 = "17icgjg7h0xm8g4yy38qjhsvlz9pmlmj9kydz01y2nyl0v02i648"; + }; + + meta = with lib; { + description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings"; + homepage = "https://blog.filippo.io/captive-browser"; + license = licenses.mit; + maintainers = with maintainers; [ volth ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix new file mode 100644 index 000000000000..ae8b7c723ecc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix @@ -0,0 +1,52 @@ +{ lib +, fetchFromSourcehut +, rustPlatform +, pkg-config +, wrapGAppsHook +, openssl +, gtk3 +, gdk-pixbuf +, pango +, atk +, cairo +}: + +rustPlatform.buildRustPackage rec { + pname = "castor"; + version = "0.8.16"; + + src = fetchFromSourcehut { + owner = "~julienxx"; + repo = pname; + rev = version; + sha256 = "0rwg1w7srjwa23mkypl8zk6674nhph4xsc6nc01f6g5k959szylr"; + }; + + cargoSha256 = "0dm3walwi3vzpk69l7nz6yl6w49676x8pjnigpn67q4bn7lpaqb1"; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + openssl + gtk3 + gdk-pixbuf + pango + atk + cairo + ]; + + postInstall = "make PREFIX=$out copy-data"; + + # Sometimes tests fail when run in parallel + dontUseCargoParallelThreads = true; + + meta = with lib; { + description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols"; + homepage = "https://sr.ht/~julienxx/Castor"; + license = licenses.mit; + maintainers = with maintainers; [ fgaz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md b/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md new file mode 100644 index 000000000000..9576cb486288 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/README.md @@ -0,0 +1,99 @@ +# Maintainers + +- Note: We could always use more contributors, testers, etc. E.g.: + - A dedicated maintainer for the NixOS stable channel + - PRs with cleanups, improvements, fixes, etc. (but please try to make reviews + as easy as possible) + - People who handle stale issues/PRs +- Primary maintainer (responsible for all updates): @primeos +- Testers (test all stable channel updates) + - `nixos-unstable`: + - `x86_64`: @danielfullmer + - `aarch64`: @thefloweringash + - Stable channel: + - `x86_64`: @Frostman +- Other relevant packages: + - `chromiumBeta` and `chromiumDev`: For testing purposes only (not build on + Hydra). We use these channels for testing and to fix build errors in advance + so that `chromium` updates are trivial and can be merged fast. + - `google-chrome`, `google-chrome-beta`, `google-chrome-dev`: Updated via + Chromium's `upstream-info.json` + - `ungoogled-chromium`: @squalus + - `chromedriver`: Updated via Chromium's `upstream-info.json` and not built + from source. + +# Upstream links + +- Source code: https://source.chromium.org/chromium/chromium/src +- Bugs: https://bugs.chromium.org/p/chromium/issues/list +- Release updates: https://chromereleases.googleblog.com/ + - Available as Atom or RSS feed (filter for + "Stable Channel Update for Desktop") + - Channel overview: https://omahaproxy.appspot.com/ + - Release schedule: https://chromiumdash.appspot.com/schedule + +# Updating Chromium + +Simply run `./pkgs/applications/networking/browsers/chromium/update.py` to +update `upstream-info.json`. After updates it is important to test at least +`nixosTests.chromium` (or basic manual testing) and `google-chrome` (which +reuses `upstream-info.json`). + +Note: The source tarball is often only available a few hours after the release +was announced. The CI/CD status can be tracked here: +- https://ci.chromium.org/p/infra/builders/cron/publish_tarball +- https://ci.chromium.org/p/infra/builders/cron/publish_tarball_dispatcher + +To run all automated NixOS VM tests for Chromium, ungoogled-chromium, +and Google Chrome (not recommended, currently 6x tests!): +``` +nix-build nixos/tests/chromium.nix +``` + +A single test can be selected, e.g. to test `ungoogled-chromium` (see +`channelMap` in `nixos/tests/chromium.nix` for all available options): +``` +nix-build nixos/tests/chromium.nix -A ungoogled +``` +(Note: Testing Google Chrome requires `export NIXPKGS_ALLOW_UNFREE=1`.) + +For custom builds it's possible to "override" `channelMap`. + +## Backports + +All updates are considered security critical and should be ported to the stable +channel ASAP. When there is a new stable release the old one should receive +security updates for roughly one month. After that it is important to mark +Chromium as insecure (see 69e4ae56c4b for an example; it is important that the +tested job still succeeds and that all browsers that use `upstream-info.json` +are marked as insecure). + +## Major version updates + +Unfortunately, Chromium regularly breaks on major updates and might need +various patches. Either due to issues with the Nix build sandbox (e.g. we cannot +fetch dependencies via the network and do not use standard FHS paths) or due to +missing upstream fixes that need to be backported. + +Good sources for such patches and other hints: +- https://github.com/archlinux/svntogit-packages/tree/packages/chromium/trunk +- https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium +- https://src.fedoraproject.org/rpms/chromium/tree/master + +If the build fails immediately due to unknown compiler flags this usually means +that a new major release of LLVM is required. + +## Beta and Dev channels + +Those channels are only used to test and fix builds in advance. They may be +broken at times and must not delay stable channel updates. + +# Testing + +Useful tests: +- Version: chrome://version/ +- GPU acceleration: chrome://gpu/ +- Essential functionality: Browsing, extensions, video+audio, JS, ... +- WebGL: https://get.webgl.org/ +- VA-API: https://wiki.archlinux.org/index.php/chromium#Hardware_video_acceleration +- Optional: Widevine CDM (proprietary), Benchmarks, Ozone, etc. diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix new file mode 100644 index 000000000000..602e2e6a8299 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix @@ -0,0 +1,96 @@ +{ lib, mkChromiumDerivation, channel, enableWideVine, ungoogled }: + +with lib; + +mkChromiumDerivation (base: rec { + name = "chromium-browser"; + packageName = "chromium"; + buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ]; + + outputs = ["out" "sandbox"]; + + sandboxExecutableName = "__chromium-suid-sandbox"; + + installPhase = '' + mkdir -p "$libExecPath" + cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/" + cp -v "$buildPath/icudtl.dat" "$libExecPath/" + cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" + cp -v "$buildPath/chrome" "$libExecPath/$packageName" + + # Swiftshader + # See https://stackoverflow.com/a/4264351/263061 for the find invocation. + if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then + echo "Swiftshader files found; installing" + mkdir -p "$libExecPath/swiftshader" + cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/" + else + echo "Swiftshader files not found" + fi + + mkdir -p "$sandbox/bin" + cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" + + mkdir -vp "$out/share/man/man1" + cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1" + + for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do + num_and_suffix="''${icon_file##*logo_}" + icon_size="''${num_and_suffix%.*}" + expr "$icon_size" : "^[0-9][0-9]*$" || continue + logo_output_prefix="$out/share/icons/hicolor" + logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps" + mkdir -vp "$logo_output_path" + cp -v "$icon_file" "$logo_output_path/$packageName.png" + done + + # Install Desktop Entry + install -D chrome/installer/linux/common/desktop.template \ + $out/share/applications/chromium-browser.desktop + + substituteInPlace $out/share/applications/chromium-browser.desktop \ + --replace "@@MENUNAME@@" "Chromium" \ + --replace "@@PACKAGE@@" "chromium" \ + --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium" + + # Append more mime types to the end + sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \ + $out/share/applications/chromium-browser.desktop + + # See https://github.com/NixOS/nixpkgs/issues/12433 + sed -i \ + -e '/\[Desktop Entry\]/a\' \ + -e 'StartupWMClass=chromium-browser' \ + $out/share/applications/chromium-browser.desktop + '' + lib.optionalString (channel != "stable") '' + cp -v "$buildPath/crashpad_handler" "$libExecPath/" + ''; + + passthru = { inherit sandboxExecutableName; }; + + requiredSystemFeatures = [ "big-parallel" ]; + + meta = { + description = "An open source web browser from Google" + + optionalString ungoogled ", with dependencies on Google web services removed"; + longDescription = '' + Chromium is an open source web browser from Google that aims to build a + safer, faster, and more stable way for all Internet users to experience + the web. It has a minimalist user interface and provides the vast majority + of source code for Google Chrome (which has some additional features). + ''; + homepage = if ungoogled + then "https://github.com/Eloston/ungoogled-chromium" + else "https://www.chromium.org/"; + maintainers = with maintainers; if ungoogled + then [ squalus primeos ] + else [ primeos thefloweringash bendlas ]; + license = if enableWideVine then licenses.unfree else licenses.bsd3; + platforms = platforms.linux; + mainProgram = "chromium"; + hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium") + then ["aarch64-linux" "x86_64-linux"] + else []; + timeout = 172800; # 48 hours (increased from the Hydra default of 10h) + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix new file mode 100644 index 000000000000..18565f31a2fb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix @@ -0,0 +1,364 @@ +{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl + +# default dependencies +, gnutar, bzip2, flac, speex, libopus +, libevent, expat, libjpeg, snappy +, libpng, libcap +, xdg-utils, yasm, nasm, minizip, libwebp +, libusb1, pciutils, nss, re2 + +, python2, python3, perl, pkg-config +, nspr, systemd, libkrb5 +, util-linux, alsa-lib +, bison, gperf +, glib, gtk3, dbus-glib +, glibc +, libXScrnSaver, libXcursor, libXtst, libxshmfence, libGLU, libGL +, protobuf, speechd, libXdamage, cups +, ffmpeg, libxslt, libxml2, at-spi2-core +, jre8 +, pipewire +, libva +, libdrm, wayland, mesa, libxkbcommon # Ozone +, curl + +# optional dependencies +, libgcrypt ? null # gnomeSupport || cupsSupport + +# package customization +, gnomeSupport ? false, gnome2 ? null +, gnomeKeyringSupport ? false, libgnome-keyring3 ? null +, proprietaryCodecs ? true +, cupsSupport ? true +, pulseSupport ? false, libpulseaudio ? null +, ungoogled ? false, ungoogled-chromium + +, channel +, upstream-info +}: + +buildFun: + +with lib; + +let + jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 + python2WithPackages = python2.withPackages(ps: with ps; [ + ply jinja2 setuptools + ]); + python3WithPackages = python3.withPackages(ps: with ps; [ + ply jinja2 setuptools + ]); + + # The additional attributes for creating derivations based on the chromium + # source tree. + extraAttrs = buildFun base; + + githubPatch = { commit, sha256, revert ? false }: fetchpatch { + url = "https://github.com/chromium/chromium/commit/${commit}.patch"; + inherit sha256 revert; + }; + + mkGnFlags = + let + # Serialize Nix types into GN types according to this document: + # https://source.chromium.org/gn/gn/+/master:docs/language.md + mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\""; + sanitize = value: + if value == true then "true" + else if value == false then "false" + else if isList value then "[${concatMapStringsSep ", " sanitize value}]" + else if isInt value then toString value + else if isString value then mkGnString value + else throw "Unsupported type for GN value `${value}'."; + toFlag = key: value: "${key}=${sanitize value}"; + in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs)); + + # https://source.chromium.org/chromium/chromium/src/+/master:build/linux/unbundle/replace_gn_files.py + gnSystemLibraries = [ + "ffmpeg" + "flac" + "libjpeg" + "libpng" + "libwebp" + "libxslt" + "opus" + "snappy" + "zlib" + ]; + + opusWithCustomModes = libopus.override { + withCustomModes = true; + }; + + defaultDependencies = [ + (libpng.override { apngSupport = false; }) # https://bugs.chromium.org/p/chromium/issues/detail?id=752403 + bzip2 flac speex opusWithCustomModes + libevent expat libjpeg snappy + libcap + xdg-utils minizip libwebp + libusb1 re2 + ffmpeg libxslt libxml2 + nasm + ]; + + # build paths and release info + packageName = extraAttrs.packageName or extraAttrs.name; + buildType = "Release"; + buildPath = "out/${buildType}"; + libExecPath = "$out/libexec/${packageName}"; + + warnObsoleteVersionConditional = min-version: result: + let ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version; + in warnIf (versionAtLeast ungoogled-version min-version) "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it." + result; + chromiumVersionAtLeast = min-version: + let result = versionAtLeast upstream-info.version min-version; + in warnObsoleteVersionConditional min-version result; + versionRange = min-version: upto-version: + let inherit (upstream-info) version; + result = versionAtLeast version min-version && versionOlder version upto-version; + in warnObsoleteVersionConditional upto-version result; + + ungoogler = ungoogled-chromium { + inherit (upstream-info.deps.ungoogled-patches) rev sha256; + }; + + base = rec { + name = "${packageName}-unwrapped-${version}"; + inherit (upstream-info) version; + inherit packageName buildType buildPath; + + src = fetchurl { + url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; + inherit (upstream-info) sha256; + }; + + nativeBuildInputs = [ + ninja pkg-config + python2WithPackages perl nodejs + gnutar which + llvmPackages.bintools + ] ++ lib.optionals (chromiumVersionAtLeast "92") [ + python3WithPackages + ]; + + buildInputs = defaultDependencies ++ [ + nspr nss systemd + util-linux alsa-lib + bison gperf libkrb5 + glib gtk3 dbus-glib + libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL + mesa # required for libgbm + pciutils protobuf speechd libXdamage at-spi2-core + jre + pipewire + libva + libdrm wayland mesa.drivers libxkbcommon + curl + ] ++ optional gnomeKeyringSupport libgnome-keyring3 + ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ] + ++ optionals cupsSupport [ libgcrypt cups ] + ++ optional pulseSupport libpulseaudio; + + patches = [ + ./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed) + ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags + # Fix the build by adding a missing dependency (s. https://crbug.com/1197837): + ./patches/fix-missing-atspi2-dependency.patch + ./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch + ] ++ lib.optionals (chromiumVersionAtLeast "93") [ + # We need to revert this patch to build M93 with LLVM 12. + (githubPatch { + # Reland "Replace 'blacklist' with 'ignorelist' in ./tools/msan/." + commit = "9d080c0934b848ee4a05013c78641e612fcc1e03"; + sha256 = "1bxdhxmiy6h4acq26lq43x2mxx6rawmfmlgsh5j7w8kyhkw5af0c"; + revert = true; + }) + ]; + + postPatch = '' + # remove unused third-party + for lib in ${toString gnSystemLibraries}; do + if [ -d "third_party/$lib" ]; then + find "third_party/$lib" -type f \ + \! -path "third_party/$lib/chromium/*" \ + \! -path "third_party/$lib/google/*" \ + \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \ + \! -regex '.*\.\(gn\|gni\|isolate\)' \ + -delete + fi + done + + # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.): + substituteInPlace native_client/SConstruct --replace "#! -*- python -*-" "" + if [ -e third_party/harfbuzz-ng/src/src/update-unicode-tables.make ]; then + substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \ + --replace "/usr/bin/env -S make -f" "/usr/bin/make -f" + fi + chmod -x third_party/webgpu-cts/src/tools/deno + + # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX + substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \ + --replace \ + 'return sandbox_binary;' \ + 'return base::FilePath(GetDevelSandboxPath());' + + substituteInPlace services/audio/audio_sandbox_hook_linux.cc \ + --replace \ + '/usr/share/alsa/' \ + '${alsa-lib}/share/alsa/' \ + --replace \ + '/usr/lib/x86_64-linux-gnu/gconv/' \ + '${glibc}/lib/gconv/' \ + --replace \ + '/usr/share/locale/' \ + '${glibc}/share/locale/' + + sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg-utils}/bin/xdg-@' \ + chrome/browser/shell_integration_linux.cc + + sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \ + device/udev_linux/udev?_loader.cc + + sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ + gpu/config/gpu_info_collector_linux.cc + + # Allow to put extensions into the system-path. + sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc + + patchShebangs . + # use our own nodejs + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s "$(command -v node)" third_party/node/linux/node-linux-x64/bin/node + + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py + + '' + optionalString stdenv.isAarch64 '' + substituteInPlace build/toolchain/linux/BUILD.gn \ + --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""' + '' + optionalString ungoogled '' + ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors" + ${ungoogler}/utils/patches.py . ${ungoogler}/patches + ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz . + ''; + + gnFlags = mkGnFlags ({ + is_official_build = true; + custom_toolchain = "//build/toolchain/linux/unbundle:default"; + host_toolchain = "//build/toolchain/linux/unbundle:default"; + system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; + + use_sysroot = false; + use_gnome_keyring = gnomeKeyringSupport; + use_gio = gnomeSupport; + # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy', + # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it + enable_nacl = false; + # Enabling the Widevine component here doesn't affect whether we can + # redistribute the chromium package; the Widevine component is either + # added later in the wrapped -wv build or downloaded from Google. + enable_widevine = true; + use_cups = cupsSupport; + # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture. + rtc_use_pipewire = true; + + treat_warnings_as_errors = false; + clang_use_chrome_plugins = false; + blink_symbol_level = 0; + symbol_level = 0; + fieldtrial_testing_like_official_build = true; + + # Google API key, see: https://www.chromium.org/developers/how-tos/api-keys + # Note: The API key is for NixOS/nixpkgs use ONLY. + # For your own distribution, please get your own set of keys. + google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI"; + } // optionalAttrs proprietaryCodecs { + # enable support for the H.264 codec + proprietary_codecs = true; + enable_hangout_services_extension = true; + ffmpeg_branding = "Chrome"; + } // optionalAttrs pulseSupport { + use_pulseaudio = true; + link_pulseaudio = true; + # Disable PGO (defaults to 2 since M89) because it fails without additional changes: + # error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-master-1610647094-405a32bcf15e5a84949640f99f84a5b9f61e2f2e.profdata: Unsupported instrumentation profile format version + chrome_pgo_phase = 0; + # Disable build with TFLite library because it fails without additional changes: + # ninja: error: '../../chrome/test/data/simple_test.tflite', needed by 'test_data/simple_test.tflite', missing and no known rule to make it + # Note: chrome/test/data/simple_test.tflite is in the Git repository but not in chromium-90.0.4400.8.tar.xz + # See also chrome/services/machine_learning/README.md + build_with_tflite_lib = false; + } // optionalAttrs ungoogled { + chrome_pgo_phase = 0; + enable_hangout_services_extension = false; + enable_js_type_check = false; + enable_mdns = false; + enable_nacl_nonsfi = false; + enable_one_click_signin = false; + enable_reading_list = false; + enable_remoting = false; + enable_reporting = false; + enable_service_discovery = false; + exclude_unwind_tables = true; + google_api_key = ""; + google_default_client_id = ""; + google_default_client_secret = ""; + safe_browsing_mode = 0; + use_official_google_api_keys = false; + use_unofficial_version_number = false; + } // (extraAttrs.gnFlags or {})); + + configurePhase = '' + runHook preConfigure + + # This is to ensure expansion of $out. + libExecPath="${libExecPath}" + ${python2}/bin/python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries} + ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt + + # Fail if `gn gen` contains a WARNING. + grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1 + + runHook postConfigure + ''; + + # Don't spam warnings about unknown warning options. This is useful because + # our Clang is always older than Chromium's and the build logs have a size + # of approx. 25 MB without this option (and this saves e.g. 66 %). + NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option"; + + buildPhase = let + buildCommand = target: '' + ninja -C "${buildPath}" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES "${target}" + ( + source chrome/installer/linux/common/installer.include + PACKAGE=$packageName + MENUNAME="Chromium" + process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1" + ) + ''; + targets = extraAttrs.buildTargets or []; + commands = map buildCommand targets; + in concatStringsSep "\n" commands; + + postFixup = '' + # Make sure that libGLESv2 is found by dlopen (if using EGL). + chromiumBinary="$libExecPath/$packageName" + origRpath="$(patchelf --print-rpath "$chromiumBinary")" + patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary" + ''; + + passthru = { + updateScript = ./update.py; + chromiumDeps = { + gn = gnChromium; + }; + }; + }; + +# Remove some extraAttrs we supplied to the base attributes already. +in stdenv.mkDerivation (base // removeAttrs extraAttrs [ + "name" "gnFlags" "buildTargets" +] // { passthru = base.passthru // (extraAttrs.passthru or {}); }) diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix new file mode 100644 index 000000000000..535b87a87fd0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix @@ -0,0 +1,222 @@ +{ newScope, config, stdenv, fetchurl, makeWrapper +, llvmPackages_11, llvmPackages_12, ed, gnugrep, coreutils, xdg-utils +, glib, gtk3, gnome, gsettings-desktop-schemas, gn, fetchgit +, libva ? null +, pipewire +, gcc, nspr, nss, runCommand +, lib + +# package customization +# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) +, channel ? "stable" +, gnomeSupport ? false, gnome2 ? null +, gnomeKeyringSupport ? false +, proprietaryCodecs ? true +, enableWideVine ? false +, ungoogled ? false # Whether to build chromium or ungoogled-chromium +, cupsSupport ? true +, pulseSupport ? config.pulseaudio or stdenv.isLinux +, commandLineArgs ? "" +}: + +let + llvmPackages = llvmPackages_11; + stdenv = llvmPackages.stdenv; + + callPackage = newScope chromium; + + chromium = rec { + inherit stdenv llvmPackages; + + upstream-info = (lib.importJSON ./upstream-info.json).${channel}; + + mkChromiumDerivation = callPackage ./common.nix ({ + inherit channel gnome2 gnomeSupport gnomeKeyringSupport proprietaryCodecs + cupsSupport pulseSupport ungoogled; + gnChromium = gn.overrideAttrs (oldAttrs: { + inherit (upstream-info.deps.gn) version; + src = fetchgit { + inherit (upstream-info.deps.gn) url rev sha256; + }; + }); + } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "90") { + llvmPackages = llvmPackages_12; + stdenv = llvmPackages_12.stdenv; + }); + + browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; }; + + ungoogled-chromium = callPackage ./ungoogled.nix {}; + }; + + pkgSuffix = if channel == "dev" then "unstable" else + (if channel == "ungoogled-chromium" then "stable" else channel); + pkgName = "google-chrome-${pkgSuffix}"; + chromeSrc = + let + # Use the latest stable Chrome version if necessary: + version = if chromium.upstream-info.sha256bin64 != null + then chromium.upstream-info.version + else (lib.importJSON ./upstream-info.json).stable.version; + sha256 = if chromium.upstream-info.sha256bin64 != null + then chromium.upstream-info.sha256bin64 + else (lib.importJSON ./upstream-info.json).stable.sha256bin64; + in fetchurl { + urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [ + "https://dl.google.com/linux/chrome/deb/pool/main/g" + "http://95.31.35.30/chrome/pool/main/g" + "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g" + "http://repo.fdzh.org/chrome/deb/pool/main/g" + ]; + inherit sha256; + }; + + mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}"; + widevineCdm = stdenv.mkDerivation { + name = "chrome-widevine-cdm"; + + src = chromeSrc; + + phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ]; + + unpackCmd = let + widevineCdmPath = + if (channel == "stable" || channel == "ungoogled-chromium") then + "./opt/google/chrome/WidevineCdm" + else if channel == "beta" then + "./opt/google/chrome-beta/WidevineCdm" + else if channel == "dev" then + "./opt/google/chrome-unstable/WidevineCdm" + else + throw "Unknown chromium channel."; + in '' + # Extract just WidevineCdm from upstream's .deb file + ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}" + + # Move things around so that we don't have to reference a particular + # chrome-* directory later. + mv "${widevineCdmPath}" ./ + + # unpackCmd wants a single output directory; let it take WidevineCdm/ + rm -rf opt + ''; + + doCheck = true; + checkPhase = '' + ! find -iname '*.so' -exec ldd {} + | grep 'not found' + ''; + + PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ]; + + patchPhase = '' + patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so + ''; + + installPhase = '' + mkdir -p $out/WidevineCdm + cp -a * $out/WidevineCdm/ + ''; + + meta = { + platforms = [ "x86_64-linux" ]; + license = lib.licenses.unfree; + }; + }; + + suffix = if (channel == "stable" || channel == "ungoogled-chromium") + then "" + else "-" + channel; + + sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; + + version = chromium.browser.version; + + # We want users to be able to enableWideVine without rebuilding all of + # chromium, so we have a separate derivation here that copies chromium + # and adds the unfree WidevineCdm. + chromiumWV = let browser = chromium.browser; in if enableWideVine then + runCommand (browser.name + "-wv") { version = browser.version; } + '' + mkdir -p $out + cp -a ${browser}/* $out/ + chmod u+w $out/libexec/chromium + cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ + '' + else browser; + +in stdenv.mkDerivation { + name = lib.optionalString ungoogled "ungoogled-" + + "chromium${suffix}-${version}"; + inherit version; + + nativeBuildInputs = [ + makeWrapper ed + ]; + + buildInputs = [ + # needed for GSETTINGS_SCHEMAS_PATH + gsettings-desktop-schemas glib gtk3 + + # needed for XDG_ICON_DIRS + gnome.adwaita-icon-theme + ]; + + outputs = ["out" "sandbox"]; + + buildCommand = let + browserBinary = "${chromiumWV}/libexec/chromium/chromium"; + libPath = lib.makeLibraryPath [ libva pipewire ]; + + in with lib; '' + mkdir -p "$out/bin" + + eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ + --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} + + ed -v -s "$out/bin/chromium" << EOF + 2i + + if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ] + then + export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}" + else + export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}" + fi + + '' + lib.optionalString (libPath != "") '' + # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not + # contain an empty section before or after a colon. + export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}" + '' + '' + + # libredirect causes chromium to deadlock on startup + export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')" + + export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS + + # Mainly for xdg-open but also other xdg-* tools: + export PATH="${xdg-utils}/bin\''${PATH:+:}\$PATH" + + . + w + EOF + + ln -sv "${chromium.browser.sandbox}" "$sandbox" + + ln -s "$out/bin/chromium" "$out/bin/chromium-browser" + + mkdir -p "$out/share" + for f in '${chromium.browser}'/share/*; do # hello emacs */ + ln -s -t "$out/share/" "$f" + done + ''; + + inherit (chromium.browser) packageName; + meta = chromium.browser.meta; + passthru = { + inherit (chromium) upstream-info browser; + mkDerivation = chromium.mkChromiumDerivation; + inherit chromeSrc sandboxExecutableName; + updateScript = ./update.py; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py new file mode 100755 index 000000000000..2768e31bd032 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py @@ -0,0 +1,38 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p python3Packages.feedparser python3Packages.requests + +# This script prints the Git commit message for stable channel updates. + +import re +import textwrap + +from collections import OrderedDict + +import feedparser +import requests + +feed = feedparser.parse('https://chromereleases.googleblog.com/feeds/posts/default') +html_tags = re.compile(r'<[^>]+>') + +for entry in feed.entries: + if entry.title != 'Stable Channel Update for Desktop': + continue + url = requests.get(entry.link).url.split('?')[0] + content = entry.content[0].value + if re.search(r'Linux', content) is None: + continue + #print(url) # For debugging purposes + version = re.search(r'\d+(\.\d+){3}', content).group(0) + print('chromium: TODO -> ' + version) + print('\n' + url) + if fixes := re.search(r'This update includes .+ security fixes\.', content): + fixes = html_tags.sub('', fixes.group(0)) + zero_days = re.search(r'Google is aware( of reports)? that .+ in the wild\.', content) + if zero_days: + fixes += " " + zero_days.group(0) + print('\n' + '\n'.join(textwrap.wrap(fixes, width=72))) + if cve_list := re.findall(r'CVE-[^: ]+', content): + cve_list = list(OrderedDict.fromkeys(cve_list)) # Remove duplicates but preserve the order + cve_string = ' '.join(cve_list) + print("\nCVEs:\n" + '\n'.join(textwrap.wrap(cve_string, width=72))) + break # We only care about the most recent stable channel update diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/closure_compiler-Use-the-Java-binary-from-the-system.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/closure_compiler-Use-the-Java-binary-from-the-system.patch new file mode 100644 index 000000000000..f6b10b679c7a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/closure_compiler-Use-the-Java-binary-from-the-system.patch @@ -0,0 +1,31 @@ +From e031b8be0fb2a22f953c034cdf08ca9befe130d2 Mon Sep 17 00:00:00 2001 +From: Michael Weiss <dev.primeos@gmail.com> +Date: Sun, 11 Apr 2021 18:05:12 +0200 +Subject: [PATCH] closure_compiler: Use the Java binary from the system + +The bundled Java binary (third_party/jdk/current/bin/java) is missing in +the tarball and we want to use the one from the system anyway. +This reverts part of [0]. + +[0]: https://chromium-review.googlesource.com/c/chromium/src/+/2778794 +--- + third_party/closure_compiler/compiler.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/third_party/closure_compiler/compiler.py b/third_party/closure_compiler/compiler.py +index 75690ceb9749..7b9c76f74290 100755 +--- a/third_party/closure_compiler/compiler.py ++++ b/third_party/closure_compiler/compiler.py +@@ -13,8 +13,7 @@ import subprocess + + + _CURRENT_DIR = os.path.join(os.path.dirname(__file__)) +-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java") +-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds" ++_JAVA_PATH = "java" + + class Compiler(object): + """Runs the Closure compiler on given source files to typecheck them +-- +2.20.1 + diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/fix-missing-atspi2-dependency.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/fix-missing-atspi2-dependency.patch new file mode 100644 index 000000000000..9417b30159d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/fix-missing-atspi2-dependency.patch @@ -0,0 +1,26 @@ +From 6c5b9197076f6f384112e6566039116c56600909 Mon Sep 17 00:00:00 2001 +From: Michael Weiss <dev.primeos@gmail.com> +Date: Sat, 10 Apr 2021 13:53:50 +0200 +Subject: [PATCH] Fix a missing atspi2 dependency + +See https://bugs.chromium.org/p/chromium/issues/detail?id=1197837 for +more details. +--- + content/public/browser/BUILD.gn | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn +index 7e7c436d90c7..20ef832f1d8c 100644 +--- a/content/public/browser/BUILD.gn ++++ b/content/public/browser/BUILD.gn +@@ -535,6 +535,7 @@ source_set("browser_sources") { + + if (use_atk) { + sources += [ "ax_inspect_factory_auralinux.cc" ] ++ configs += [ "//build/config/linux/atspi2" ] + } + + if (is_linux || is_chromeos) { +-- +2.20.1 + diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch new file mode 100644 index 000000000000..6b788f43d29c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/no-build-timestamps.patch @@ -0,0 +1,17 @@ +--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig 2018-11-02 16:00:34.368933077 +0200 ++++ chromium-70.0.3538.67/build/compute_build_timestamp.py 2018-11-08 04:06:21.658105129 +0200 +@@ -94,6 +94,14 @@ + 'build_type', help='The type of build', choices=('official', 'default')) + args = argument_parser.parse_args() + ++ # I don't trust LASTCHANGE magic, and I definelly want something deterministic here ++ SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None) ++ if SOURCE_DATE_EPOCH is not None: ++ print(SOURCE_DATE_EPOCH) ++ return 0 ++ else: ++ raise RuntimeError("SOURCE_DATE_EPOCH not set") ++ + # The mtime of the revision in build/util/LASTCHANGE is stored in a file + # next to it. Read it, to get a deterministic time close to "now". + # That date is then modified as described at the top of the file so that diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch new file mode 100644 index 000000000000..32f0ae2fb5e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine-79.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn +index ed0e2f5208b..5b431a030d5 100644 +--- a/third_party/widevine/cdm/BUILD.gn ++++ b/third_party/widevine/cdm/BUILD.gn +@@ -14,7 +14,7 @@ buildflag_header("buildflags") { + + flags = [ + "ENABLE_WIDEVINE=$enable_widevine", +- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm", ++ "BUNDLE_WIDEVINE_CDM=true", + "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component", + ] + } diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled.nix new file mode 100644 index 000000000000..299b19f2f4f6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/ungoogled.nix @@ -0,0 +1,43 @@ +{ stdenv +, fetchFromGitHub +, python3Packages +, makeWrapper +, patch +}: + +{ rev +, sha256 +}: + +stdenv.mkDerivation rec { + name = "ungoogled-chromium-${version}"; + + version = rev; + + src = fetchFromGitHub { + owner = "Eloston"; + repo = "ungoogled-chromium"; + inherit rev sha256; + }; + + dontBuild = true; + + buildInputs = [ + python3Packages.python + patch + ]; + + nativeBuildInputs = [ + makeWrapper + ]; + + patchPhase = '' + sed -i '/chromium-widevine/d' patches/series + ''; + + installPhase = '' + mkdir $out + cp -R * $out/ + wrapProgram $out/utils/patches.py --add-flags "apply" --prefix PATH : "${patch}/bin" + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py new file mode 100755 index 000000000000..d6788fa41927 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py @@ -0,0 +1,212 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python -p python3 nix nix-prefetch-git + +"""This script automatically updates chromium, google-chrome, chromedriver, and ungoogled-chromium +via upstream-info.json.""" + +import csv +import json +import re +import subprocess +import sys + +from codecs import iterdecode +from collections import OrderedDict +from datetime import datetime +from distutils.version import LooseVersion +from os.path import abspath, dirname +from urllib.request import urlopen + +HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux' +DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g' +BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official' + +JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json' + + +def load_json(path): + """Loads the given JSON file.""" + with open(path, 'r') as f: + return json.load(f) + + +def nix_prefetch_url(url, algo='sha256'): + """Prefetches the content of the given URL.""" + print(f'nix-prefetch-url {url}') + out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url]) + return out.decode('utf-8').rstrip() + + +def nix_prefetch_git(url, rev): + """Prefetches the requested Git revision of the given repository URL.""" + print(f'nix-prefetch-git {url} {rev}') + out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev]) + return json.loads(out) + + +def get_file_revision(revision, file_path): + """Fetches the requested Git revision of the given Chromium file.""" + url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}' + with urlopen(url) as http_response: + return http_response.read() + + +def get_matching_chromedriver(version): + """Gets the matching chromedriver version for the given Chromium version.""" + # See https://chromedriver.chromium.org/downloads/version-selection + build = re.sub('.[0-9]+$', '', version) + chromedriver_version_url = f'https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{build}' + with urlopen(chromedriver_version_url) as http_response: + chromedriver_version = http_response.read().decode() + def get_chromedriver_url(system): + return ('https://chromedriver.storage.googleapis.com/' + + f'{chromedriver_version}/chromedriver_{system}.zip') + return { + 'version': chromedriver_version, + 'sha256_linux': nix_prefetch_url(get_chromedriver_url('linux64')), + 'sha256_darwin': nix_prefetch_url(get_chromedriver_url('mac64')) + } + + +def get_channel_dependencies(version): + """Gets all dependencies for the given Chromium version.""" + deps = get_file_revision(version, 'DEPS') + gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'" + gn_commit = re.search(gn_pattern, deps).group(1).decode() + gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit) + return { + 'gn': { + 'version': datetime.fromisoformat(gn['date']).date().isoformat(), + 'url': gn['url'], + 'rev': gn['rev'], + 'sha256': gn['sha256'] + } + } + + +def get_latest_ungoogled_chromium_tag(): + """Returns the latest ungoogled-chromium tag using the GitHub API.""" + api_tag_url = 'https://api.github.com/repos/Eloston/ungoogled-chromium/tags?per_page=1' + with urlopen(api_tag_url) as http_response: + tag_data = json.load(http_response) + return tag_data[0]['name'] + + +def get_latest_ungoogled_chromium_build(): + """Returns a dictionary for the latest ungoogled-chromium build.""" + tag = get_latest_ungoogled_chromium_tag() + version = tag.split('-')[0] + return { + 'channel': 'ungoogled-chromium', + 'version': version, + 'ungoogled_tag': tag + } + + +def channel_name_to_attr_name(channel_name): + """Maps a channel name to the corresponding main Nixpkgs attribute name.""" + if channel_name == 'stable': + return 'chromium' + if channel_name == 'beta': + return 'chromiumBeta' + if channel_name == 'dev': + return 'chromiumDev' + if channel_name == 'ungoogled-chromium': + return 'ungoogled-chromium' + print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr) + sys.exit(1) + + +def print_updates(channels_old, channels_new): + """Print a summary of the updates.""" + print('Updates:') + for channel_name in channels_old: + version_old = channels_old[channel_name]["version"] + version_new = channels_new[channel_name]["version"] + if LooseVersion(version_old) < LooseVersion(version_new): + attr_name = channel_name_to_attr_name(channel_name) + print(f'- {attr_name}: {version_old} -> {version_new}') + + +channels = {} +last_channels = load_json(JSON_PATH) + + +print(f'GET {HISTORY_URL}', file=sys.stderr) +with urlopen(HISTORY_URL) as resp: + builds = csv.DictReader(iterdecode(resp, 'utf-8')) + builds = list(builds) + builds.append(get_latest_ungoogled_chromium_build()) + for build in builds: + channel_name = build['channel'] + + # If we've already found a newer build for this channel, we're + # no longer interested in it. + if channel_name in channels: + continue + + # If we're back at the last build we used, we don't need to + # keep going -- there's no new version available, and we can + # just reuse the info from last time. + if build['version'] == last_channels[channel_name]['version']: + channels[channel_name] = last_channels[channel_name] + continue + + channel = {'version': build['version']} + if channel_name == 'dev': + google_chrome_suffix = 'unstable' + elif channel_name == 'ungoogled-chromium': + google_chrome_suffix = 'stable' + else: + google_chrome_suffix = channel_name + + try: + channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz') + channel['sha256bin64'] = nix_prefetch_url( + f'{DEB_URL}/google-chrome-{google_chrome_suffix}/' + + f'google-chrome-{google_chrome_suffix}_{build["version"]}-1_amd64.deb') + except subprocess.CalledProcessError: + if (channel_name == 'ungoogled-chromium' and 'sha256' in channel and + build['version'].split('.')[0] == last_channels['stable']['version'].split('.')[0]): + # Sometimes ungoogled-chromium is updated to a newer tag than + # the latest stable Chromium version. In this case we'll set + # sha256bin64 to null and the Nixpkgs code will fall back to + # the latest stable Google Chrome (only required for + # Widevine/DRM which is disabled by default): + channel['sha256bin64'] = None + else: + # This build isn't actually available yet. Continue to + # the next one. + continue + + channel['deps'] = get_channel_dependencies(channel['version']) + if channel_name == 'stable': + channel['chromedriver'] = get_matching_chromedriver(channel['version']) + elif channel_name == 'ungoogled-chromium': + ungoogled_repo_url = 'https://github.com/Eloston/ungoogled-chromium.git' + channel['deps']['ungoogled-patches'] = { + 'rev': build['ungoogled_tag'], + 'sha256': nix_prefetch_git(ungoogled_repo_url, build['ungoogled_tag'])['sha256'] + } + + channels[channel_name] = channel + + +with open(JSON_PATH, 'w') as out: + def get_channel_key(item): + """Orders Chromium channels by their name.""" + channel_name = item[0] + if channel_name == 'stable': + return 0 + if channel_name == 'beta': + return 1 + if channel_name == 'dev': + return 2 + if channel_name == 'ungoogled-chromium': + return 3 + print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr) + sys.exit(1) + sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key)) + json.dump(sorted_channels, out, indent=2) + out.write('\n') + print_updates(last_channels, sorted_channels) diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json new file mode 100644 index 000000000000..863510ded66c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -0,0 +1,63 @@ +{ + "stable": { + "version": "91.0.4472.114", + "sha256": "0wbyiwbdazgjjgj9vs56x26q3g9r80a57gfl0f2rfl1j7xwgxiy1", + "sha256bin64": "00ac1dyqxpxy1j11jvc5j35bgc629n2f2pll3912gzih4ir0vrys", + "deps": { + "gn": { + "version": "2021-04-06", + "url": "https://gn.googlesource.com/gn", + "rev": "dba01723a441c358d843a575cb7720d54ddcdf92", + "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x" + } + }, + "chromedriver": { + "version": "91.0.4472.101", + "sha256_linux": "0dzx565z2rd0y4i57rv5kd7dsm69sffza96y3c773hqaghm4y1ng", + "sha256_darwin": "0nff1jmmrn6a4clfvhyzrhfp8hx85z72563jwk28apflqmnm0k68" + } + }, + "beta": { + "version": "92.0.4515.80", + "sha256": "142v8y275mysgksvfprc83a7r1dlcnb5rqi8a451fmfnj6wrsq8i", + "sha256bin64": "0sz2fvg6l7q7syc5pysa246p03sganmgjdfvind42i8cqxw8gycp", + "deps": { + "gn": { + "version": "2021-05-07", + "url": "https://gn.googlesource.com/gn", + "rev": "39a87c0b36310bdf06b692c098f199a0d97fc810", + "sha256": "0x63jr5hssm9dl6la4q5ahy669k4gxvbapqxi5w32vv107jrj8v4" + } + } + }, + "dev": { + "version": "93.0.4557.4", + "sha256": "06397k5mkrrdrmd7icyvd1ifnmhincgw5nskgc3m436qzzifsab9", + "sha256bin64": "1q2c2dhx1yya6vhr82asf7h2zrv6kjzjv1a0zlfxkp3i6lnivgrd", + "deps": { + "gn": { + "version": "2021-06-25", + "url": "https://gn.googlesource.com/gn", + "rev": "4d207c94eab41f09c9a8505eb47f3d2919e47943", + "sha256": "1jfgksa7rifh3ynnmd7m8xxggwxckz0jnwjaq9m5xapksb89hbn1" + } + } + }, + "ungoogled-chromium": { + "version": "91.0.4472.114", + "sha256": "0wbyiwbdazgjjgj9vs56x26q3g9r80a57gfl0f2rfl1j7xwgxiy1", + "sha256bin64": "00ac1dyqxpxy1j11jvc5j35bgc629n2f2pll3912gzih4ir0vrys", + "deps": { + "gn": { + "version": "2021-04-06", + "url": "https://gn.googlesource.com/gn", + "rev": "dba01723a441c358d843a575cb7720d54ddcdf92", + "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x" + }, + "ungoogled-patches": { + "rev": "91.0.4472.114-1", + "sha256": "1xb5g3hybaiwn3y1zw1fxd3g0zwmvplrs06sdqnxzsr1qm8b874h" + } + } + } +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix new file mode 100644 index 000000000000..8af0c1bc8e67 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl +, fltk +, openssl +, libjpeg, libpng +, perl +, libXcursor, libXi, libXinerama }: + +stdenv.mkDerivation rec { + version = "3.0.5"; + pname = "dillo"; + + src = fetchurl { + url = "https://www.dillo.org/download/${pname}-${version}.tar.bz2"; + sha256 = "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv"; + }; + + buildInputs = with lib; + [ perl fltk openssl libjpeg libpng libXcursor libXi libXinerama ]; + + configureFlags = [ "--enable-ssl" ]; + + meta = with lib; { + homepage = "https://www.dillo.org/"; + description = "A fast graphical web browser with a small footprint"; + longDescription = '' + Dillo is a small, fast web browser, tailored for older machines. + ''; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix new file mode 100644 index 000000000000..df9fc3f822cd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix @@ -0,0 +1,61 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib +, brotli, zstd, xz, openssl, autoreconfHook, gettext, pkg-config, libev +, gpm, libidn, tre, expat +, # Incompatible licenses, LGPLv3 - GPLv2 + enableGuile ? false, guile ? null +, enablePython ? false, python ? null +, enablePerl ? (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null +# re-add javascript support when upstream supports modern spidermonkey +}: + +assert enableGuile -> guile != null; +assert enablePython -> python != null; + +stdenv.mkDerivation rec { + pname = "elinks"; + version = "0.14.1"; + + src = fetchFromGitHub { + owner = "rkd77"; + repo = "felinks"; + rev = "v${version}"; + sha256 = "sha256-D7dUVHgYGzY4FXEnOzXw0Fao3gLgfFuCl8LJdLVpcSM="; + }; + + buildInputs = [ + ncurses xlibsWrapper bzip2 zlib brotli zstd xz + openssl libidn tre expat libev + ] + ++ lib.optional stdenv.isLinux gpm + ++ lib.optional enableGuile guile + ++ lib.optional enablePython python + ++ lib.optional enablePerl perl + ; + + nativeBuildInputs = [ autoreconfHook gettext pkg-config ]; + + configureFlags = [ + "--enable-finger" + "--enable-html-highlight" + "--enable-gopher" + "--enable-cgi" + "--enable-bittorrent" + "--enable-nntp" + "--enable-256-colors" + "--enable-true-color" + "--with-lzma" + "--with-libev" + "--with-terminfo" + ] ++ lib.optional enableGuile "--with-guile" + ++ lib.optional enablePython "--with-python" + ++ lib.optional enablePerl "--with-perl" + ; + + meta = with lib; { + description = "Full-featured text-mode web browser (package based on the fork felinks)"; + homepage = "https://github.com/rkd77/felinks"; + license = licenses.gpl2; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ iblech gebner ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix new file mode 100644 index 000000000000..f6dc79a2a0f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix @@ -0,0 +1,82 @@ +{ lib, fetchgit, meson, ninja, pkg-config, nix-update-script +, python3, gtk3, libsecret, gst_all_1, webkitgtk, glib +, glib-networking, gtkspell3, hunspell, desktop-file-utils +, gobject-introspection, wrapGAppsHook, gnome }: + +python3.pkgs.buildPythonApplication rec { + pname = "eolie"; + version = "0.9.99"; + + format = "other"; + doCheck = false; + + src = fetchgit { + url = "https://gitlab.gnome.org/World/eolie"; + rev = "refs/tags/${version}"; + fetchSubmodules = true; + sha256 = "077jww5mqg6bbqbj0j1gss2j3dxlfr2xw8bc43k8vg52drqg6g8w"; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = with gst_all_1; [ + glib-networking + gobject-introspection + gst-libav + gst-plugins-base + gst-plugins-ugly + gstreamer + gnome.gnome-settings-daemon + gtk3 + gtkspell3 + hunspell + libsecret + (webkitgtk.override {enableGLES = false;}) + glib + ]; + + propagatedBuildInputs = with python3.pkgs; [ + pyfxa + beautifulsoup4 + cryptography + pycairo + pygobject3 + python-dateutil + pycrypto + ]; + + postPatch = '' + chmod +x meson_post_install.py + patchShebangs meson_post_install.py + ''; + + dontWrapGApps = true; + preFixup = '' + buildPythonPath "$out $propagatedBuildInputs" + patchPythonScript "$out/libexec/eolie-sp" + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + strictDeps = false; + + meta = with lib; { + description = "A new GNOME web browser"; + homepage = "https://wiki.gnome.org/Apps/Eolie"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ samdroid-apps ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix new file mode 100644 index 000000000000..64e261425755 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, desktop-file-utils +, vala +, gettext +, glib +, gtk3 +, libgee +, libdazzle +, meson +, ninja +, pantheon +, pkg-config +, python3 +, webkitgtk +, wrapGAppsHook +, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "ephemeral"; + version = "7.1.0"; + + src = fetchFromGitHub { + owner = "cassidyjames"; + repo = "ephemeral"; + rev = version; + sha256 = "sha256-07HO8nC2Pwz2EAea4ZzmqyMfQdgX8FVqDepdA6j/NT8="; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + meson + ninja + vala + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + glib-networking + gtk3 + libdazzle + libgee + pantheon.granite + webkitgtk + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "The always-incognito web browser"; + homepage = "https://github.com/cassidyjames/ephemeral"; + maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix new file mode 100644 index 000000000000..f39ae2f16691 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix @@ -0,0 +1,57 @@ +{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch +, cmake, extra-cmake-modules, pkg-config, qmake +, libpthreadstubs, libxcb, libXdmcp +, qtsvg, qttools, qtwebengine, qtx11extras +, qtwayland, wrapQtAppsHook +, kwallet +}: + +mkDerivation rec { + pname = "falkon"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "KDE"; + repo = "falkon"; + rev = "v${version}"; + sha256 = "1w64slh9wpcfi4v7ds9wci1zvwh0dh787ndpi6hd4kmdgnswvsw7"; + }; + + patches = [ + # fixes build with qt5 5.14 + (fetchpatch { + url = "https://github.com/KDE/falkon/commit/bbde5c6955c43bc744ed2c4024598495de908f2a.diff"; + sha256 = "0f7qcddvvdnij3di0acg7jwvwfwyd0xizlav4wccclbj8x7qp5ld"; + }) + ]; + + preConfigure = '' + export NONBLOCK_JS_DIALOGS=true + export KDE_INTEGRATION=true + export GNOME_INTEGRATION=false + export FALKON_PREFIX=$out + ''; + + buildInputs = [ + libpthreadstubs libxcb libXdmcp + qtsvg qttools qtwebengine qtx11extras + kwallet + ] ++ lib.optionals stdenv.isLinux [ qtwayland ]; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkg-config + qmake + qttools + wrapQtAppsHook + ]; + + meta = with lib; { + description = "QtWebEngine based cross-platform web browser"; + homepage = "https://community.kde.org/Incubator/Projects/Falkon"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix new file mode 100644 index 000000000000..d14d5b3215b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix @@ -0,0 +1,975 @@ +{ + version = "90.0b6"; + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ach/firefox-90.0b6.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha256 = "07c06ddfe0b2d3f4acc89a8bd5de963ae8fb90aedb7710272adbccac178af867"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/af/firefox-90.0b6.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha256 = "b01b6f591d815e2dd3c0bb129952a4a5dbfc7f93d9eed2d61b8c387135768462"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/an/firefox-90.0b6.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha256 = "aebbf9e5edce5aa4a01b3dea5342d2335dadca261124f9557d727a2f03c5a123"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ar/firefox-90.0b6.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha256 = "842c29a5aa563d1f386ed74820ba2cce763e86f8d86a943295b959a51bd8bf27"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ast/firefox-90.0b6.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha256 = "8fe01d2193b4d60ce2134ebc5848abf6621cc49bc76d08890ce7588ac2d81311"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/az/firefox-90.0b6.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha256 = "e5a929e0eb95a09ec408aa831853b1a5859bb0b1f3b133677568f18bc7ba5a31"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/be/firefox-90.0b6.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha256 = "32533dc55222e7e407b386f46d55ae78dc61581ec7653bbe9f8e9859b4d191ce"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/bg/firefox-90.0b6.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha256 = "2d561a690d625cfff4fe163dda26eac5424e89b74bd6385543238c9e85abf39b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/bn/firefox-90.0b6.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha256 = "3cec173b9c23137d935221d715bfeb87353bc87bd316a219c8063b5977422bc8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/br/firefox-90.0b6.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha256 = "ab9bd15850209de8d7ad1ef33f50c132babc2c6e70b4ceddee84081f2707b6ab"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/bs/firefox-90.0b6.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha256 = "9f9c87c0bf0a08c23dc30b29bcfb79634a52dccfa945a4593451f6230e373686"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ca-valencia/firefox-90.0b6.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha256 = "21900bc7c61ebbf34f45da1b4740a722e00d6c0d27042a89e006fd99485e7b60"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ca/firefox-90.0b6.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha256 = "6ccec2ac83ab36fb72a8db9293622d7b1c6fe55d1fb8ec6421a64e1210e7e0a1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/cak/firefox-90.0b6.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha256 = "7610d94fa66da37689abd3fa79e0703d77f68457c77287e5e61e66169baf7473"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/cs/firefox-90.0b6.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha256 = "6241b68e5618b474b86529222f5a646f426983eb9e39b2a4d7c3d261cd26f4e2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/cy/firefox-90.0b6.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha256 = "b981946aec3128a3e7da3ca76f7815373dc8963ed01d495ee02941954ca42fca"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/da/firefox-90.0b6.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha256 = "c59f28aef1af64d1cf83e0e5e9ba4bd15be593da27e88e6ea7edaed80a3a64b5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/de/firefox-90.0b6.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha256 = "b9cd59a9b7ca024f6931d8e25962349346d8c279d3c7983f1a76681784c38efc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/dsb/firefox-90.0b6.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha256 = "e185f4b874beeacca38bfde59958eb277ce83fcf47eee4cc16065e350707e52d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/el/firefox-90.0b6.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha256 = "ed323fc4a677afa40b1073640dc3fe9e5f49906842684677694a1c85d042c988"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/en-CA/firefox-90.0b6.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha256 = "3c495c341ab226b13cca26fb4d1e79ba8a763c2944374f417b0d1d1e3afb6e64"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/en-GB/firefox-90.0b6.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha256 = "00d888cf643780473aa480c0a0ded49ad22b76ee0b902062cf014f140ddd2530"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/en-US/firefox-90.0b6.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha256 = "4421542a7a8d968b4e705852ca76ec4bed857c57df0d10afab17f27b701712e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/eo/firefox-90.0b6.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha256 = "db89780192cd14f0fb43ac2974c7c8a72e1896ddcf2db7ff3f6eea9f2788051a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-AR/firefox-90.0b6.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha256 = "60cd22340342b689e12cabf13ae33a2af3a5ecc6dad5b5e15851fcec0405652b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-CL/firefox-90.0b6.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha256 = "7524fa67ed3246fac49622fb360ddb9ca5b91cc0bdb7eb64d881bf9851dd9128"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-ES/firefox-90.0b6.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha256 = "641c8f48694184ff77db1b7825317f623deae42acafccce35cf7b8b95d38d45e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/es-MX/firefox-90.0b6.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha256 = "e0c808695678e844efe04926bab17168fef0a97f8b125e724c4ebc606a5fc513"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/et/firefox-90.0b6.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha256 = "64fc3ac8c3614cb128f7174802dc101b5c36a92fee5cd6dbd826f505e85c149d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/eu/firefox-90.0b6.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha256 = "e7bb62c4f6d4a00b0837fb720c08923f057610267ef97b0090ae8767c26e6867"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fa/firefox-90.0b6.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha256 = "038a1f723017141ae12ec15a6fec3fc6a49cbdd6244d237c18cd36c70ea6e6d9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ff/firefox-90.0b6.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha256 = "e2c1d68ee029e3f1064277dc6c3844bdbbe3eb28b0492c1299ed6f8a9351ab56"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fi/firefox-90.0b6.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha256 = "c5e4dff35094ff645272bf402e4c56908b6df7b5c7d6b6925e86528d3ced89af"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fr/firefox-90.0b6.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha256 = "502f35f69f5f04477678f183e40f8958aa095724e65254cbbdaa9c72c1a40ed7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/fy-NL/firefox-90.0b6.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha256 = "e353afc86a7b6c452870587b13fa093883e7680f2e44a14c94563d12d50de622"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ga-IE/firefox-90.0b6.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha256 = "10cb0a4ee3c42035a06e509a74e632dc269c407efb8dbad40bc4dfc2b2d6b9d4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gd/firefox-90.0b6.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha256 = "8cc1603bd589fb910df22b47a8d7e3611cff371deea4eb634127b68a523221df"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gl/firefox-90.0b6.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha256 = "b4867bf6406854f80dd402ab3f1ad1e20b7acae7e93587831913144e690cc84f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gn/firefox-90.0b6.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha256 = "555a76d9915a471f134d8f3986e7afca341d201bcad73d90d5751d8ec86c17c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/gu-IN/firefox-90.0b6.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha256 = "c72f1b40d5a9fbe689b76b3a0010ee1838b8b7fd7126dccb2a7c8907a87db0a4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/he/firefox-90.0b6.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha256 = "e63f1e83785b777dbf9c69982c314684937dc22456b19eb1e8e83c87af511938"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hi-IN/firefox-90.0b6.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha256 = "41e02c58459a2b2e4dfee5ba4d8dce6fda51fd85ddcf7a4d18426d25b9049aa7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hr/firefox-90.0b6.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha256 = "5b4122ac4367a88de9d8551498633d396630ac4fbaa7012408382e8e7dbfd27f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hsb/firefox-90.0b6.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha256 = "ec1d030b1980e747c415d6238cc5868c24ff6393cce6489f4775926e00fe55e6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hu/firefox-90.0b6.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha256 = "214f1dc79bd09d1f5e4dbba1311ebfbfd47ac4a418da2f6adb6c8c6285bfc4b4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/hy-AM/firefox-90.0b6.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha256 = "fddc2c4c13595e480696924cea10e5caeea81fb775d01a91e7b13a6701a1cd2a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ia/firefox-90.0b6.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha256 = "39402ff53caddb69cb6248afbcc37814536fc0cd4767a2096923089168f48a46"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/id/firefox-90.0b6.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha256 = "d2143e50a0f6bb19ce038e5fcc83530bbd5c781bb104da3a29d870f00acd2001"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/is/firefox-90.0b6.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha256 = "e2b035ece9d2911d131fb40eee6bd8f9c40506cc812978bce0bcf317ea9c8ef1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/it/firefox-90.0b6.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha256 = "a2c3ddfeba658b8c58b77e6abd6aaf2c4141c73b0ee6363e391f08f5a94e8ec4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ja/firefox-90.0b6.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha256 = "ea7c40e0d00a1d8d72d7cd397bbe7533959e1e715a2a7df8a205ce6e98d26fca"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ka/firefox-90.0b6.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha256 = "24c62141ec5bddfc431690bd21428bbf8ad07d7fecc9acdc242565a2dfe5fe91"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/kab/firefox-90.0b6.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha256 = "de40edc25528e7cff904d14feac97dd282067e27793a4d2a85311c260be4262c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/kk/firefox-90.0b6.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha256 = "a4daf7b8c77661f2dc211c6e4a4432de8c57e34be48556b707f167f7333f0a25"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/km/firefox-90.0b6.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha256 = "6d4a3eb396871b35e4d880c98e48dd5dfd92e66b09a80066c20543f95ab3cfbb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/kn/firefox-90.0b6.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha256 = "ff5e9d651cb9224dde03d207042c5ee4312359d9b111839269eaadff49d2efb5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ko/firefox-90.0b6.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha256 = "3433149001e07215dcce9f3b934edf5f188b8e88725a01372fb1e831f0dc00f7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/lij/firefox-90.0b6.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha256 = "79434cc64d0acbed593f3c859ef15623333239d2868d0b797e6e51252778466c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/lt/firefox-90.0b6.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha256 = "efb3302005785dc6fd7aa464c591978f11637e89aca3a6f41d4d855970fe68d9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/lv/firefox-90.0b6.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha256 = "7940ac6685d94144e758f703511946aa422f7a9303f6e8461d29b65178068d3d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/mk/firefox-90.0b6.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha256 = "adfc49b40832942760d996da4e659c672def298159de535b03daf5064ebbb049"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/mr/firefox-90.0b6.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha256 = "1212c04fb5b1a114b49562534e65c4983bfade7ae9290290e1b51f999476fdbe"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ms/firefox-90.0b6.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha256 = "4172e9dd98806535b22162c2a4b50b1912936ac6d94ee99fc2315fc8e93e7fba"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/my/firefox-90.0b6.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha256 = "4c65a755594a5e03611c0add1b506760853efcfc057b9c04c0237968d972960e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/nb-NO/firefox-90.0b6.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha256 = "7b82b581badc7d5ddcc02e008bb1b968a1ddccd42e4acc3f75863114ef00459b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ne-NP/firefox-90.0b6.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha256 = "db25e60614b1f31049886d17b5d9f7aa45f51a1230e5829d513d449752d4cad4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/nl/firefox-90.0b6.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha256 = "d0208622ac503716edd14383f9b3391064b0e5167ebeb6e349819253ab12cadd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/nn-NO/firefox-90.0b6.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha256 = "3e9eb15f215120151572feb8ae621cd9e07617962fd1797edbecd79f7176f950"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/oc/firefox-90.0b6.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha256 = "db49b53e15f96dd4668e0224019f4413c3e41c5e696de137faa44ac547ad2560"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pa-IN/firefox-90.0b6.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha256 = "9b05c58c61c25b584dd32cd9973d42aed887b22e07feb8a64f20e8288a1ccbcf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pl/firefox-90.0b6.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha256 = "bdcd745a9270d9fa34b070cd260285381f41481a2735bcde9cb73ffd038c924c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pt-BR/firefox-90.0b6.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha256 = "05ce159ae923326132d656b94b7ed78590109b14ce5436d65f262c00f7b70235"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/pt-PT/firefox-90.0b6.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha256 = "1829442b517f425fa85feab5691ec63e2375473655d00a25618f21f4c3ff6797"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/rm/firefox-90.0b6.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha256 = "5ea7bfa88a46b4d3409ab953537fcc87a5a8a95dfc314a9f7b4b991886be10dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ro/firefox-90.0b6.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha256 = "896c0a79ccebd764d4718342bd142d1cfdc172a666b2db2beafc3f1883b69edc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ru/firefox-90.0b6.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha256 = "6c4f2da35945c331de90f292e35314ffd51c693f01ad69268062bbcad0e2a617"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/si/firefox-90.0b6.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha256 = "095abb133991ec166dd0d6bc86de71f6367bd338a21480577f2fc2210f42d69f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sk/firefox-90.0b6.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha256 = "549d6fe7bb33d99a2e4a22438defeb5d5b090069f67d58063efdcc458edcaf9c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sl/firefox-90.0b6.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha256 = "5c7138c3ccefcfea898c00e428fb166b0c8883ebaa4980eb9f75507acd15f01b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/son/firefox-90.0b6.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha256 = "a4cdf6b8a865b818301fa23a2ed3626f4e220b02cdc46475d1e39bc9e5245735"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sq/firefox-90.0b6.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha256 = "69d42b943be2a848b5a28aadf240540f9cb7e527ea312d83e1ac559a361ccfdc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sr/firefox-90.0b6.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha256 = "8b14c6a508f0c5676de085050cac2732a6852047356d28d6257dcf80691df0b1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/sv-SE/firefox-90.0b6.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha256 = "b145606546bac77e3e45b98a23bdeebd23b752b5a1045a72312e1cb6c6927fc9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/szl/firefox-90.0b6.tar.bz2"; + locale = "szl"; + arch = "linux-x86_64"; + sha256 = "212ff7d8d8addec767ce38d81a4a92103d9ee905f01387df9975bbf557795a8d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ta/firefox-90.0b6.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha256 = "334684039f1350871356e58e0c467b2d93c6d56b00973601e24728a65ebf45fa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/te/firefox-90.0b6.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha256 = "96a9a309a869fa11effce362fd6f781e9c0067639a49b372170e0bc85eb11706"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/th/firefox-90.0b6.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha256 = "3bce10cbab2b6e913af910160c4935e814d2fe862428be78448b6c3b872df53f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/tl/firefox-90.0b6.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha256 = "96879338880bc4c632d31d2b096966a957c85de649a047a9ecd5f8e0eaaa43e5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/tr/firefox-90.0b6.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha256 = "ab592b0b45491be0c573e604344a74291df2d7aa41604ae7961dd78e64987f49"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/trs/firefox-90.0b6.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha256 = "d75e1569466425349d64c57836517a20be7f6e036bfa837815f6e60c9b1f4f85"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/uk/firefox-90.0b6.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha256 = "5a35497e2e07cd5552f05a130c4ca161929e0643cf106e3bd6fd46fca71e2309"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/ur/firefox-90.0b6.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha256 = "504a498350b1399662a68ef1b5371e3d5bd9313c844a9389e862ebc74b28f073"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/uz/firefox-90.0b6.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha256 = "46c4b1f8403f0fb645878b5cf2867871bfd74382d33963ddc3240ebd0222971f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/vi/firefox-90.0b6.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha256 = "909f7fbdd6d669f46bb3fdd7fdc929c4fccae59f3b6fcbce4fb6668e26661dc9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/xh/firefox-90.0b6.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha256 = "98114043b1b79dd9a151de04b2654fdc12885649e06a45c05818c1d66229a818"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/zh-CN/firefox-90.0b6.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha256 = "b2a0f7e1a18f77cbc33183a48a70f6459adde67329b7c2522d95622ac474f2f0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-x86_64/zh-TW/firefox-90.0b6.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha256 = "3999a0a4f297acfa0e5e8e464df86774676c07f7df9cdf3a9ade243b17d91424"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ach/firefox-90.0b6.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha256 = "1557576b37ef31b8ac98f2663afab1e589acc071a489c415594b2b7880ae15b6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/af/firefox-90.0b6.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha256 = "1ee162319eb90015d06165d4e6fb4ba6071cfddc54dbb17e3b84ee6c5f9bb72c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/an/firefox-90.0b6.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha256 = "bb117ca51ff004a4320f58593f5aa45042e1ad9336989fee60810aa13b051ec7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ar/firefox-90.0b6.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha256 = "d204482d09bb66f08562dc57a7151230d02994ed7515443c2a8ae1cdb35e1533"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ast/firefox-90.0b6.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha256 = "412812c1b9df963039f72652d24785f4401f414d4953c8a249c9bb8bb94e2f2a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/az/firefox-90.0b6.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha256 = "3e2fe0a600137fdda9ed538dbc9292c8da03654d071c44651fae7a0917fd1428"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/be/firefox-90.0b6.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha256 = "5d845562839f60c2c7b6b142411bb43764b67dbab604ea27852f2b61bf77bf22"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/bg/firefox-90.0b6.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha256 = "642f79d32cb8ffa869527dc394b316a95caa3b3c30b1e61303d49ef4becc7ce1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/bn/firefox-90.0b6.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha256 = "aef7ab7858de026b357f9af8d00c32759031e77aef42d6ce9338cdffb1b120dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/br/firefox-90.0b6.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha256 = "856d428fc9cd62369b1b6834fbf577c94807ce4f958eb3c70accb45d4f86445e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/bs/firefox-90.0b6.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha256 = "8557c44af4b52dc6c72279b1b3b31a41c87c5cd9b1c23284e2e503362ba81ff7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ca-valencia/firefox-90.0b6.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha256 = "0fc37342f7539431522dd60f1eb319ade594efa494810416843a58a1291fbe40"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ca/firefox-90.0b6.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha256 = "e5577a0cfec17c2dc83c46570a1351363ec7bffc3bbca59390d3866459bcd33c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/cak/firefox-90.0b6.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha256 = "e4ea2fa2c4d15152d21fa1843a5d14d76c12aaaa0ea8326c8db29f219f877f88"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/cs/firefox-90.0b6.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha256 = "43d9d42a10ad996f8a447f932068a0366557d542c1f2a3be626703b2f09735d0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/cy/firefox-90.0b6.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha256 = "0c79fc024f1714d4267d3483c33e5ef75a0415fc487b0689d600ac5a9a8b8c9b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/da/firefox-90.0b6.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha256 = "df9e037da8af21c5a22c26f326389d8c171fdc3218e2df2b37795a2ea0af4987"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/de/firefox-90.0b6.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha256 = "1e85bb05709e2efdbb48d5b788a0210a5ed83b52c709be06d4cae6d7a94ea9a1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/dsb/firefox-90.0b6.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha256 = "1074ee2af33d208875197e7f6434596b9d9bcbe6aa5ae911e11adb3606a8f06d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/el/firefox-90.0b6.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha256 = "c2378d2924f99e3c8600d6d23023cb524ada34884645917e1adfd810583fa1b4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/en-CA/firefox-90.0b6.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha256 = "8f3f4c41c324d7b8b6e518f370899cef2aa58d311e2edea50be22991e0f0c865"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/en-GB/firefox-90.0b6.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha256 = "a702f5cc3d5cc80b189ab4e50579a4a0dd5a3b969497c0f17f22296ccd6aaeac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/en-US/firefox-90.0b6.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha256 = "628dce1cf52e132019eb538d260c692e360d33ba18067c5696b665118f1756c1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/eo/firefox-90.0b6.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha256 = "bea0b89ddeaf47d79d40ffd152c14846e7ece9d5cd62c3e11b3d8a47db26018e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-AR/firefox-90.0b6.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha256 = "79703843c31b39f48198e7477c1047c246c2bbf6ae23736483a1a3c68a3acee2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-CL/firefox-90.0b6.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha256 = "a1defb47b1e0deca525e474790fbb75ab48825b59a996f8e2af6d8bb3fd04da3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-ES/firefox-90.0b6.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha256 = "cc0b63ac061cc573a16ef419a856417242cb52f4f39525eaf4a03fe084659e87"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/es-MX/firefox-90.0b6.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha256 = "9f0ccc88d783b2b5dcefa19c0761517ec4aa29ebd45e09d36f3b52d4c0d4841e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/et/firefox-90.0b6.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha256 = "f08eb49146b4ff68ad82c92accf80956c9b5e203d384021475cbc51abd1be67e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/eu/firefox-90.0b6.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha256 = "982cce3566baf096f37a3d9b4ab09324c0b0edd8bd1b31e711a269e2284fe5d2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fa/firefox-90.0b6.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha256 = "8fcc7329ca0fd874e6b36d830bc6195d43387332b28bd2fdfbe09fad0a17c65f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ff/firefox-90.0b6.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha256 = "efb096d2e43e54f9ed0e18ed898db646839287f55996c86610a463c1d6b92cd5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fi/firefox-90.0b6.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha256 = "8c3715c8063cbe7d7df698fa4e4380be1fd06d4e5c7976578f46fa3d40539417"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fr/firefox-90.0b6.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha256 = "57077171b350b88ccfaceb8c0eb3ad1990748d80b2f40dbc3d761c1d0a73d6eb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/fy-NL/firefox-90.0b6.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha256 = "14f24328d0e33a18ce6e3d67fbc95cecc61554d07035884181806a25391ab6b6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ga-IE/firefox-90.0b6.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha256 = "27a8b7fdb93b98f36aee3a5442564421436df91f17a68d58961238108992542a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gd/firefox-90.0b6.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha256 = "2319b00f9b2bb0073045b08d170af666d217b2e4667611fbd8b9628c52680200"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gl/firefox-90.0b6.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha256 = "65782353f01ad909dec1b473a6642b0a0e6733070df5c98f0a262b28aa536e36"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gn/firefox-90.0b6.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha256 = "e6cea933b4b1948f0eb84918df5b401968f6e449caae9a5a57ab765a8726eb89"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/gu-IN/firefox-90.0b6.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha256 = "5702b1f19f7b99781447290abf32bbcf97c4ab889549ae5b9d73b20d49b0ecb6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/he/firefox-90.0b6.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha256 = "599e8f6d6972a7d9c33ebd92527eb30abe7ea5098c0dc0ad91171818d2ea1ca0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hi-IN/firefox-90.0b6.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha256 = "d8303c9148c008e556dbe754eba46f2c056a93167e90088ce06fb1bcf425c27e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hr/firefox-90.0b6.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha256 = "da8034b67d159a267b5a1e0d1d816c2030e52d1828fea29e46b8241486854e0f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hsb/firefox-90.0b6.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha256 = "7b7fa736a29a08108f6e3b5bb47aa768e3ee6c9dc58dae866dd70ab3ec6b04bb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hu/firefox-90.0b6.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha256 = "7152458a1742f65ca69341d3762c0adec354acd7402c35213ac07ea2264107d8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/hy-AM/firefox-90.0b6.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha256 = "362b5c4c2764f69c3cc175025cf3b0de054cc39e5a47bced76a67e8578d17a2a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ia/firefox-90.0b6.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha256 = "a19ec522293833dbb48a20e0da510d67825f2dc7892c6c7c9e66d844f74a62f6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/id/firefox-90.0b6.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha256 = "cc0819e2c416b2473ef52eb1ee91dec88b38af97c420723562d90dab16f30952"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/is/firefox-90.0b6.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha256 = "f24905a22e4a664af3cfffc859ce6ec453a1b40309c2756b45a74b999e056769"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/it/firefox-90.0b6.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha256 = "e9813624c07dac6b9615f18baed1d24cbb1e34a2347e3d31034ba4718dba90b7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ja/firefox-90.0b6.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha256 = "e8670c1edbff38ee9400bcfc9bc9893ff036af337fcfcceb8d8f76c854474b61"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ka/firefox-90.0b6.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha256 = "bb9243d36cf8c4e62258be1b692366243056d51164a183c7e10fcb3206e22902"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/kab/firefox-90.0b6.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha256 = "7e57fa6e4da39014b4c7c53bf8b7e5b4f7868ba7e5c80726a3e03bf2d283baca"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/kk/firefox-90.0b6.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha256 = "acf4d5d11aa323659ef6c6ea0754104d642501cdc68e734d75bde77b662e207b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/km/firefox-90.0b6.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha256 = "ab268fc166a3cf2b27df64472835d2ea487bf4860662db807a0700ac21ccfa0c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/kn/firefox-90.0b6.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha256 = "478ea687157dc0922712a61652ad6884972551ed8ce4d01127a80c1efc106e32"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ko/firefox-90.0b6.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha256 = "111876d47dd316c11e77439e076df41af384d3daed166f6f5d30b68bd0be4d52"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/lij/firefox-90.0b6.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha256 = "0810c419383c606ff14d2bbac487368d2122599ee3a5684a288416069b52fac9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/lt/firefox-90.0b6.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha256 = "79ab57756a0d232407752eecd621f13567e43592f84ce2995b13bf73513022b6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/lv/firefox-90.0b6.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha256 = "856608639af7990122fa2fce426ef126d35dbc3525fc7515b5f26c93203aadb8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/mk/firefox-90.0b6.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha256 = "ddd8dfa8a85754d96b83ef24ae5f0b3748b084cc1fbc87670dfe576d7c65c012"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/mr/firefox-90.0b6.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha256 = "52f5327fe808e4273830ae5b71077d6419dff4c763c9e4fd9e64ac8c49b67f14"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ms/firefox-90.0b6.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha256 = "0242eedfe6b5259738175f83686db3bfdd6d42db66173f7632c6ad9b064cdd51"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/my/firefox-90.0b6.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha256 = "706c6525e5f6859b5d19a5c49ad787577064b1c12ad5088cff3e923d4fb3304d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/nb-NO/firefox-90.0b6.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha256 = "6a3aca1232dbf5a018be45fc5411ca82a45f4be7ecb91fc052a429b9716ec8d6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ne-NP/firefox-90.0b6.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha256 = "ee10040074f9eb053a83308b104f84deabb2183bf7b1b9dbf349adfd3e25f523"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/nl/firefox-90.0b6.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha256 = "3bbd3358f8a6d84ae3183f8f67941f3653d70595feb4d74f9c3d287caa698932"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/nn-NO/firefox-90.0b6.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha256 = "61f21fef0fb76e40099f2264aae4969d1cd798f58dbf75db81c6366ddfe48335"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/oc/firefox-90.0b6.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha256 = "0edac08c5d0f400df2f2c7d26c410b2eb3b2a467a167d17fd57b50352b9ff079"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pa-IN/firefox-90.0b6.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha256 = "c036f77e862df5454e3be5f913448e1732585f19b3f4cd968824c139f82d8790"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pl/firefox-90.0b6.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha256 = "927a08479433999af0808538ea3df289d3595ff0c88dc311c71d061875ada19d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pt-BR/firefox-90.0b6.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha256 = "fd7ec7834104629773481d47cf3c36deb1147326661788403c5ad676e18dc1a5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/pt-PT/firefox-90.0b6.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha256 = "b5125d265997ed75a68a9b9c8348efb1127da8c7e07233ee403bbc1c1c1d551a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/rm/firefox-90.0b6.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha256 = "9a77df59be3a58f7ba75951f38461ac366afeb22a936c01562a01d509792ecbb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ro/firefox-90.0b6.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha256 = "baf15728a07ba2ce73213edbc486cd060a95e9722867e129b4dcaa5b7dbdc20e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ru/firefox-90.0b6.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha256 = "201bfd1905918fde0134abff649e4153639d42beefca8e5cf695db13305c4869"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/si/firefox-90.0b6.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha256 = "9a8b35abf95cedd5bd8c777e45dc412df76c5ab135fdffce1136f4d5400c4b5f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sk/firefox-90.0b6.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha256 = "371fc35135170674b3560a7472b479473c5f989d041c87cd030f8798861f1c2e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sl/firefox-90.0b6.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha256 = "77df5a99a9577a3a07bb0f034a99f96afa85cb4b05200f56c41a3da2283a93f6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/son/firefox-90.0b6.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha256 = "5b72f4757d23c78e2f6ed33ba7afc99b09478d434b6d85b453f980d6a183fabb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sq/firefox-90.0b6.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha256 = "f44f53326face336bebe48657abec77444fbeaf90c82ea57a596465f0fa2e87f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sr/firefox-90.0b6.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha256 = "5a284e9d3afc91691a2f4cc9454f8f113a2385db8e93cf243717e18755a066ce"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/sv-SE/firefox-90.0b6.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha256 = "b2abb070d7d89d0fff19b9ba293961d863547da558804c9ee853ba280cab5524"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/szl/firefox-90.0b6.tar.bz2"; + locale = "szl"; + arch = "linux-i686"; + sha256 = "a6a8233e17ecdc236c6741286272fb79148d30b86876d348097f93733937bfcb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ta/firefox-90.0b6.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha256 = "723d94602a9914c1d572f85635ceb2622960b09bfdc99d4ae010efd1f65e4792"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/te/firefox-90.0b6.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha256 = "78e0ed7271171c5eaed2831ed56afb98b525f8ae4cd9db78f6e5b2c6830b5c87"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/th/firefox-90.0b6.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha256 = "4d06b6cf8b81e39875f6b749286cc52d89d8c172e8a8af54f920906326404346"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/tl/firefox-90.0b6.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha256 = "9880b5fb724522d823fdbad3aea4c9b1376e9d97543ad47071a7438aef164b1c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/tr/firefox-90.0b6.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha256 = "b198c6491a3618c0dc437cfef06c4564a8b70700b399013072201bbf003b2b37"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/trs/firefox-90.0b6.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha256 = "f35c3b4a04742ad4e500fd60a5d6f80147e19b60d6ba1464c7df62707a8dcc19"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/uk/firefox-90.0b6.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha256 = "d3c2b7e536438e8d212c66463bb201475c1df143a040617aaeb08cc14e6962eb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/ur/firefox-90.0b6.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha256 = "c708a6886f3a22ec5ef66d9c3d26e051d153fea4ff01fceb65ac41cf090173e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/uz/firefox-90.0b6.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha256 = "e26ab71962c17774721bc54bb612f963c61b3b5fb83f5c1473a84157c73c28bb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/vi/firefox-90.0b6.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha256 = "fc8d824190bec7889618e14cc439f6b96e878acec171ef270e54980000cb60d5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/xh/firefox-90.0b6.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha256 = "ef932683f2b7eb51b043ac7c2b9dc1ffef3e048f3a92a5abc65550743e95440b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/zh-CN/firefox-90.0b6.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha256 = "9e2695711d611ace940d8f6dcce037646bd96f0d0a533d551b73eb1adaa31b98"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/90.0b6/linux-i686/zh-TW/firefox-90.0b6.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha256 = "dbb0f78780deef67bfed9c1a126ec296657f327ce3a72beabcea0bbb9a033be3"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix new file mode 100644 index 000000000000..d16c625e2dba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -0,0 +1,209 @@ +{ lib, stdenv, fetchurl, config, wrapGAppsHook +, alsa-lib +, atk +, cairo +, curl +, cups +, dbus-glib +, dbus +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, gtk2 +, gtk3 +, libkrb5 +, libX11 +, libXScrnSaver +, libxcb +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXinerama +, libXrender +, libXt +, libcanberra +, libnotify +, gnome +, libGLU, libGL +, nspr +, nss +, pango +, pipewire +, pciutils +, libheimdal +, libpulseaudio +, systemd +, channel +, generated +, writeScript +, writeText +, xidel +, coreutils +, gnused +, gnugrep +, gnupg +, ffmpeg +, runtimeShell +, mesa # firefox wants gbm for drm+dmabuf +, systemLocale ? config.i18n.defaultLocale or "en-US" +}: + +let + + inherit (generated) version sources; + + mozillaPlatforms = { + i686-linux = "linux-i686"; + x86_64-linux = "linux-x86_64"; + }; + + arch = mozillaPlatforms.${stdenv.hostPlatform.system}; + + isPrefixOf = prefix: string: + builtins.substring 0 (builtins.stringLength prefix) string == prefix; + + sourceMatches = locale: source: + (isPrefixOf source.locale locale) && source.arch == arch; + + policies = { + DisableAppUpdate = true; + }; + + policiesJson = writeText "no-update-firefox-policy.json" (builtins.toJSON { inherit policies; }); + + defaultSource = lib.findFirst (sourceMatches "en-US") {} sources; + + source = lib.findFirst (sourceMatches systemLocale) defaultSource sources; + + name = "firefox-${channel}-bin-unwrapped-${version}"; + +in + +stdenv.mkDerivation { + inherit name; + + src = fetchurl { inherit (source) url sha256; }; + + phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ]; + + libPath = lib.makeLibraryPath + [ stdenv.cc.cc + alsa-lib + atk + cairo + curl + cups + dbus-glib + dbus + fontconfig + freetype + gdk-pixbuf + glib + glibc + gtk2 + gtk3 + libkrb5 + mesa + libX11 + libXScrnSaver + libXcomposite + libXcursor + libxcb + libXdamage + libXext + libXfixes + libXi + libXinerama + libXrender + libXt + libcanberra + libnotify + libGLU libGL + nspr + nss + pango + pipewire + pciutils + libheimdal + libpulseaudio + systemd + ffmpeg + ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ + stdenv.cc.cc + ]; + + inherit gtk3; + + buildInputs = [ wrapGAppsHook gtk3 gnome.adwaita-icon-theme ]; + + # "strip" after "patchelf" may break binaries. + # See: https://github.com/NixOS/patchelf/issues/10 + dontStrip = true; + dontPatchELF = true; + + patchPhase = '' + # Don't download updates from Mozilla directly + echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js + ''; + + installPhase = + '' + mkdir -p "$prefix/usr/lib/firefox-bin-${version}" + cp -r * "$prefix/usr/lib/firefox-bin-${version}" + + mkdir -p "$out/bin" + ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/" + + for executable in \ + firefox firefox-bin plugin-container \ + updater crashreporter webapprt-stub + do + if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/usr/lib/firefox-bin-${version}/$executable" + fi + done + + find . -executable -type f -exec \ + patchelf --set-rpath "$libPath" \ + "$out/usr/lib/firefox-bin-${version}/{}" \; + + # wrapFirefox expects "$out/lib" instead of "$out/usr/lib" + ln -s "$out/usr/lib" "$out/lib" + + gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") + + # See: https://github.com/mozilla/policy-templates/blob/master/README.md + mkdir -p "$out/lib/firefox-bin-${version}/distribution"; + ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json"; + ''; + + passthru.execdir = "/bin"; + passthru.ffmpegSupport = true; + passthru.gssSupport = true; + # update with: + # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped + passthru.updateScript = import ./update.nix { + inherit name channel writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell; + baseUrl = + if channel == "devedition" + then "http://archive.mozilla.org/pub/devedition/releases/" + else "http://archive.mozilla.org/pub/firefox/releases/"; + }; + meta = with lib; { + description = "Mozilla Firefox, free web browser (binary package)"; + homepage = "http://www.mozilla.org/firefox/"; + license = { + free = false; + url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/"; + }; + platforms = builtins.attrNames mozillaPlatforms; + timeout = 86400; # 24 hours (increased from the Hydra default of 10h, c.f. #129115) + maintainers = with maintainers; [ taku0 lovesegfault ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix new file mode 100644 index 000000000000..619b6186b49c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix @@ -0,0 +1,975 @@ +{ + version = "90.0b6"; + sources = [ + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ach/firefox-90.0b6.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha256 = "20c33b145287c4477e6516837c7bd763f0895750e40400e82ddb6f196b072b23"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/af/firefox-90.0b6.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha256 = "edebcfa2f2c8a7af69d8d98ec4890d6ce8404f93d8e21a7d643458d769056286"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/an/firefox-90.0b6.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha256 = "59a8423486afdf3860bd03c5ed2df595c5706f2d048f14d27acf50bc659da119"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ar/firefox-90.0b6.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha256 = "0c2f57d48e42602109bc30574f12843c09f68f84e810e3f7860d3185999bf7cb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ast/firefox-90.0b6.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha256 = "d505465fa32dd6e0a324955ca950cbef5826f3136b5d2deff3e5a42b8063e69a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/az/firefox-90.0b6.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha256 = "fd87877ec1d0978b4f83451360d1eb4f2ff7c0e3fec9a9346b38f34545b89418"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/be/firefox-90.0b6.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha256 = "a193474f5b728559acbabbfb5d746930909db38e83c2607c38d48a8b62376bb9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/bg/firefox-90.0b6.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha256 = "b0ed4a45bb9ec405b4795d2e73eccd56e89555eaa40c4c72c64c0b5d7731bad0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/bn/firefox-90.0b6.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha256 = "1d7deb7f6bed82fe73e795677b4e60192dee7bc52e2a870c1ef53dc3a23e7390"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/br/firefox-90.0b6.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha256 = "379304d81c8ca21b41e63802394d30892572dc3a740d5fc701512ca482e2a649"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/bs/firefox-90.0b6.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha256 = "8b54063ef6a1c015f2fac84426b6309df89e013dc8e7deeb862ca6ef54512a7f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ca-valencia/firefox-90.0b6.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha256 = "80ca50a92ff6a46d140609558265efb422759ce320f5e7480a270b16fcaf486d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ca/firefox-90.0b6.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha256 = "00c027ca3c56aea456d0187a0a664d34d5ad704af5220d508e7dfe29ef66a4fa"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/cak/firefox-90.0b6.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha256 = "7126556936ac97989719922c4123f48508bf946ea51af05ce30182a8c5c798ca"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/cs/firefox-90.0b6.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha256 = "3f40d14e92fd79cf695b36c0c6357503bf08ffdf3e2105ea30b38919a0c40442"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/cy/firefox-90.0b6.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha256 = "be85ba66f9d92f27fadc5bef7220b794ad1425c09424ff7c1ffea905f1495222"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/da/firefox-90.0b6.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha256 = "a69fb1355b2b0fb710954d2982750d9a11a80be924c4e8ca8664d97a77676f7f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/de/firefox-90.0b6.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha256 = "9142b0b44f4f375f2b426f3ed7af11646367b2a21db8cc3afb704d847552569b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/dsb/firefox-90.0b6.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha256 = "42f04094c7d3eaeff3e8bebb073c140870a94e7de29f367950c47ea963fd8ee5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/el/firefox-90.0b6.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha256 = "17a234d289679e507f9bfe67d2b65d7a89dcb4b603e0b154b9faebb9044d320b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/en-CA/firefox-90.0b6.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha256 = "5c5e9ef0526aaccf67f6f0bd1bbd5415c2086c0ea8c9d9e614cdd053c5e3e9c8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/en-GB/firefox-90.0b6.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha256 = "61a4dd2a80d54c79436c2f3f62c4b56bb2d6449c0475cd938a4bc5c3c91a41fd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/en-US/firefox-90.0b6.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha256 = "0ab2b7121ff045df76e043e165cffd3a4cf33f4a5d76f80d880e4135b3ac8e87"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/eo/firefox-90.0b6.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha256 = "20282abb72dc7bbc2db8898d6c18b2d877a6905449a221d4044bb2984594782a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-AR/firefox-90.0b6.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha256 = "3bfdb83b8ec6ea8c2e95e4a7e50348370617135057053e89ccf9e61ae26710bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-CL/firefox-90.0b6.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha256 = "b78b75d2832c240c764409d0130f7f70081c66ddfc6a4a710acb329325df3f36"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-ES/firefox-90.0b6.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha256 = "28821baefc20114bd7785c04ddcf4aec363151f0c1ebb850d364b337a5141fbd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/es-MX/firefox-90.0b6.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha256 = "853620bc46a74bd425554e83a5866bc5bdec79e9f8129c83f0ba147c47ceec35"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/et/firefox-90.0b6.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha256 = "570cc2cf48702b16384029ee8831e3ba4db39a50b1b02576a0c82d51beb03779"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/eu/firefox-90.0b6.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha256 = "44f3cb224da4c0df900737ca5d4d80ce41f404f1d3aa36f6f470d6eb13d7c9bb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fa/firefox-90.0b6.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha256 = "24ac71b7d28b286fe026b1cea49777876eff5146bd47463071142524d4f18fb3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ff/firefox-90.0b6.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha256 = "1a795decfbef4c7689eeb931f07d8b036943856239ffdd550882267a14395dc0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fi/firefox-90.0b6.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha256 = "807a38d68d0a5010c6309e2e725d210e3254de5c5b7375fbd209b864053ad25b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fr/firefox-90.0b6.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha256 = "6be1e617b3dcd59ec82607a8a1f8b5f145ca6c1cea7020ee678021ea5524d902"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/fy-NL/firefox-90.0b6.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha256 = "48d4de4cc60ebc53acdcc4f8fea5b483b546f06527f24bf90340db141f1a043a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ga-IE/firefox-90.0b6.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha256 = "4924bab4100d18fa65b1309a091f0e6042f34aa342508923dd8c3ca559dc9628"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gd/firefox-90.0b6.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha256 = "b2dcd37bc4c9ed6015321216040cbc27909061c668d8cc053f3385920ad9b18a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gl/firefox-90.0b6.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha256 = "bb50a6514aeed37e4fd96295c0e97ef026bc6fca8c62b7ce6bfdbc227b69b0dd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gn/firefox-90.0b6.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha256 = "a038dd8daa01675758acb4adf50cb93b204f3573ee204f97cf170a16f300906a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/gu-IN/firefox-90.0b6.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha256 = "a2b385578b11bc12c3bd7230b3a22d03f08a260d26e8f287efb2756b0fd3f9e0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/he/firefox-90.0b6.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha256 = "6025d34743157cc0869d12aa5921d9951cffa660244804b092ce0f79ebe9abae"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hi-IN/firefox-90.0b6.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha256 = "0c83746e1212350945277a65e0219e7bd871bf3bd01fd2e91194dd0e44e377c1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hr/firefox-90.0b6.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha256 = "03675af908ee739dbe8f426fe7c4647f4b9073128544e990fd3e167020ba3a88"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hsb/firefox-90.0b6.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha256 = "9cf3dc5faebef0342f2b165189312fb1d76b5882b0767241a8240a440fc33bc8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hu/firefox-90.0b6.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha256 = "b30deb7e51005523457e7f31428356178c1fd546440df2cb12f9420d89374c08"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/hy-AM/firefox-90.0b6.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha256 = "b51db297071b1bcec3416e7904bc1340d1dcf3bc5fea5016e3311911782ae813"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ia/firefox-90.0b6.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha256 = "1e946e4c6893583836874e9ed951969a605b5f8de222d152d79ca003904af86b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/id/firefox-90.0b6.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha256 = "6fb1006d097e353401e032090f08bf1911247b4c3923d2490a7f46cae3f69376"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/is/firefox-90.0b6.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha256 = "a0de49c85a0726fd56038058acb6e1ab31e5100bbb759a6c5cc89191908fe402"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/it/firefox-90.0b6.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha256 = "386c1b25b9f78b91b0474e512091b6907a598555a8e146ed61226332e3c04e22"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ja/firefox-90.0b6.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha256 = "185964b4ba62e93ce54004e28a8d6da65c9b5c657f191e4ef924528c92bf5fcb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ka/firefox-90.0b6.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha256 = "ff14f1d6c4ee8438cc471c151fea840cc81336de06e244b6e2c8ca193d97e490"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/kab/firefox-90.0b6.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha256 = "36d9058cb4c0bd804f640665bfd05804a787ec59632010d682ea132f12660b18"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/kk/firefox-90.0b6.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha256 = "da31f2928efa27843afe07872ecd9b6e286bac90a101c14e1dd1e806e3bdeb65"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/km/firefox-90.0b6.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha256 = "7a8a1aaf9d78f7b1373374e70017252004c3d49de9c0b97e705fc5df7790834d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/kn/firefox-90.0b6.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha256 = "8641fa391ff8ac3cc25236ee6d19c043c39d651c674cca2badafee685b47eeef"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ko/firefox-90.0b6.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha256 = "7a676b767215a1d5d6537975fbe9e7e16156d21032901365c24b8b0dd1adb21f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/lij/firefox-90.0b6.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha256 = "3d5b3e6f04d7a617870a034a4c1b213246d48408eb4849cfaa8872f1aa8c8f13"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/lt/firefox-90.0b6.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha256 = "6534871a9a4414a59c3b885d7fa7d7637c9e1f220aa82afcb89e629795c61562"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/lv/firefox-90.0b6.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha256 = "c2b3cb52ea74f0d62b28e54f87662863b801d4f8fc357c088ecb690d042fe8f4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/mk/firefox-90.0b6.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha256 = "2a30d42025663aad7cf6f3039c0e4b8a1fe642dcf97b9d616e6a70c5f2ff0e82"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/mr/firefox-90.0b6.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha256 = "43f244482732b43c39f206fecbf1080c8a154e78707be98931549e0f6809b56f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ms/firefox-90.0b6.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha256 = "46b3273f508889c48d611568f0e927eac7e612c2fdafb3546c47f080ee928db7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/my/firefox-90.0b6.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha256 = "ea355f78f80ec11c44a5735838c5b48b6b915951872abfd8a935f8991010840c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/nb-NO/firefox-90.0b6.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha256 = "acda50b76ec558b2d941d77b4e523edc0fe4cce0f03e0201d881917a820dff9a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ne-NP/firefox-90.0b6.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha256 = "ac72053ee1992338bf192ec3a10ff975cc973e72c5468de68f8441bc815553b8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/nl/firefox-90.0b6.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha256 = "7f8c13888b7a24235c48f7c8c03ed66f7e3736247c936ddfcf88c8f3816c066c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/nn-NO/firefox-90.0b6.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha256 = "c0b50c45a6d198f60cd5703889771778bae6493e77e70d07518b6ae9ce9c4f4b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/oc/firefox-90.0b6.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha256 = "0b75c4725e1d9f271a5f34781b8479ff6d6a11ef827afca97d52c599fb389d08"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pa-IN/firefox-90.0b6.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha256 = "fd4e2d38c3dbbe0ef35799a89fb8cb50435e2a06ed49cec2a380144b3ccd0ec9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pl/firefox-90.0b6.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha256 = "a329a085eaa20c41105b70b2efdfc31260c2e5f9afaae97416a8c3a77e82f822"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pt-BR/firefox-90.0b6.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha256 = "c418d18e275c4ce5641c8b0f7e30da75659137a4a5ef9dc43fbd2c206e1a1bdb"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/pt-PT/firefox-90.0b6.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha256 = "d5cbb5282477c716966c6b30ca9a8f21771638cfbf2e3fce69663ff7bc58c6b4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/rm/firefox-90.0b6.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha256 = "916934135d13a1b8c0a21543c3569f697358e8935cb9f6972c9e80f96fbb775c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ro/firefox-90.0b6.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha256 = "5571914386329eb2b0eddf3e4ddbf98eeebf1ae86172fac533d2397a48c8cb31"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ru/firefox-90.0b6.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha256 = "6b78d8ed2d8df5c00198ccf6fc3221b215623ab4a0b6c21030cde5413f1a1165"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/si/firefox-90.0b6.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha256 = "ed31203623e85d3cd0ea23c54177542455af4013e2ed8ddf642056a99187f814"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sk/firefox-90.0b6.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha256 = "ef8f4020adae61fcd797ed23efc1bf54bd94609105a9bec4ac7f543fe876275b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sl/firefox-90.0b6.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha256 = "ca4a679042db1485d0ced1f81be3610493755ceb7a32887110f528029657b499"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/son/firefox-90.0b6.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha256 = "aeb7a5e4a15eb836455dacf964826a08905ac822390e2f67230eccd32942e136"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sq/firefox-90.0b6.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha256 = "93109db6d38da24dd3999960c866754966945dceebdfee960125039e1939b5d9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sr/firefox-90.0b6.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha256 = "cc1787dca9c673d6ee937d7e0a2801cb345a0b06db3f6e53581e1151716d4170"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/sv-SE/firefox-90.0b6.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha256 = "281397c37d390635e44e1471b318ea9ba98f4b3b8d7670131c3262838ad26e4a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/szl/firefox-90.0b6.tar.bz2"; + locale = "szl"; + arch = "linux-x86_64"; + sha256 = "5255724df1ec3d05f33de152885d180dab52796317ec6739838029f20195ce3b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ta/firefox-90.0b6.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha256 = "d8c5ae00cc8175e5b6beba8b1c7102a8a1f81860d5945c4e73cd77df5b5f8368"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/te/firefox-90.0b6.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha256 = "270e079ef9ce1c7977d8cdcfaed1f34552c3058dd6cdad22f17b53c31d6c1dc6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/th/firefox-90.0b6.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha256 = "747acadb00c955621ec470870478a63a10c4131c244282bdde2a269a9569d6e6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/tl/firefox-90.0b6.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha256 = "9cdc0ccc264d071ee7f9d7208cd1fddb6179e016ad759c4d5e4dbb00f6508360"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/tr/firefox-90.0b6.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha256 = "2e20a8e524e0b91832efa759627b0ddab02fac12d009e0b6bc81ba0833c94c2c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/trs/firefox-90.0b6.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha256 = "1f4654b6d9d9d33992662288c47e79f8fcfbdf76db5ba0519bfb0de997756afa"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/uk/firefox-90.0b6.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha256 = "e7048a1226c8af17dd95d162b0d88ed9cd8b0ddfb08bc03920ed04e3d2cd2d8b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/ur/firefox-90.0b6.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha256 = "5ae8a63c2c3dc8168910c231dcf54aac745327b818d66254a3caada129a83fb0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/uz/firefox-90.0b6.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha256 = "3dc370ffe28c5ed91b8374c2f5ee41a0ae4bd094851a8dfb1d53b546595f558f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/vi/firefox-90.0b6.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha256 = "a6f39e25aae7ed5b7d7d1e4ec8c67c4bd5f5ab28178d8f1fbbb817713dbecc1a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/xh/firefox-90.0b6.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha256 = "10d3c4c3638f0715001b8eb0026a6ca18a5b92d09e8e1d80f6b40246a5c7cafd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/zh-CN/firefox-90.0b6.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha256 = "2142e803dd183e8f7fdf7949804e3cfef22dee2a0e665eeb60933368f54797c5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-x86_64/zh-TW/firefox-90.0b6.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha256 = "0617ccd22cc00872e5e5462636f150511ef5074052c8ad707bba98ae907f4ad7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ach/firefox-90.0b6.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha256 = "eaa38a9976a7ac2e99030559ba27ff56cac4820ab5f9757f5c2cef76db8c4536"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/af/firefox-90.0b6.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha256 = "acc117bc014e08cfef0a26447097bb8df774d6246d569e6408021f0f8799af9d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/an/firefox-90.0b6.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha256 = "1bbab4c2b380edc694480e2f6427ddb539b5fe5fd2489f050998c920975725da"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ar/firefox-90.0b6.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha256 = "4d438bef41db963a282b53d13fc54db0d685014e03684fa19e25109f94d7f6bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ast/firefox-90.0b6.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha256 = "ae0d76246adcf16e4e910a02c54c8227a1ebd930b24bfe32ee54e631310cc42e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/az/firefox-90.0b6.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha256 = "7b262f731afe0ab9a35e604099197e470416a79c80141c672886473cccfe9f49"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/be/firefox-90.0b6.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha256 = "7a3596146cc81954dc55c4040d3926326d468e447dc8fdffaac7a3fabe423d0e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/bg/firefox-90.0b6.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha256 = "8a1cd058dbd39c6c807a7819116f1af4b22ff936a71d67bc54047d72252721f7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/bn/firefox-90.0b6.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha256 = "8e58b03730a2c32f0537537114ec662c7307d1f79c5f1aa3dbe60a8d95526194"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/br/firefox-90.0b6.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha256 = "37bb7c1e9c015994ea23b6c069b227367c752a4a2cb968d983fe2b0fd0d35839"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/bs/firefox-90.0b6.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha256 = "fa97d80ac97b9d155c40ca0dcc21bc5d1255b3e6a54153402d965b35700d9f74"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ca-valencia/firefox-90.0b6.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha256 = "c9bc1be306267b7bb2282c8a543e6af66ccfaaa1f09769cd4c535d744a670b22"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ca/firefox-90.0b6.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha256 = "8f3d423ea28e80303709b9323576695a674ea20c675bd825ab5431606e284136"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/cak/firefox-90.0b6.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha256 = "57d9509c186eee016cc22568d1f90942e689aeb918ed55aef19764b53da46087"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/cs/firefox-90.0b6.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha256 = "af43cab80b6f29346310171c32f8b8ea610f191ae48d6caf7db383826f23945c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/cy/firefox-90.0b6.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha256 = "dc8e87e1e15cba292f3c5aadec017d8c0c6f2c5c5518f68b5267c7e707b27c4e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/da/firefox-90.0b6.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha256 = "c30e8c35a2eb997c62530a330fc411bf9f87996a717ea3e12f0747784ce287d5"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/de/firefox-90.0b6.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha256 = "ab884b36e16d5401b54c1e75d77d553c9add8bd26ee38e57f11f433a163bc567"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/dsb/firefox-90.0b6.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha256 = "0eb8d2548e8b79211dba6fd477393430ba77c7bfb2fc519eeb5e1a3f484504fd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/el/firefox-90.0b6.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha256 = "86522647d5107f3518002d8958af62272f0566e178b732a1243ff84da1b2579a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/en-CA/firefox-90.0b6.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha256 = "e9b442a4aebca8f9740f657bd9c032661573890355efc2e418bc2a8ca66c07a4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/en-GB/firefox-90.0b6.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha256 = "d0a850a7d9754bb71ff29985c4a129160ce3e99e30df1ef4e7c7a2e011b59771"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/en-US/firefox-90.0b6.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha256 = "4ba4529f6b391d946e876aa321648790b0ec7a92ea5530981dd2f726e04ce0b6"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/eo/firefox-90.0b6.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha256 = "01e4bcc9d4d01ff5ffb67540cdb815710ab12d9bf621ab1febe8237236960680"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-AR/firefox-90.0b6.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha256 = "e3d38a32104b08219d06950d1f63726460ea631a7efe8f0eb594ff8aa4e398f4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-CL/firefox-90.0b6.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha256 = "20df30c114c27f1242d14139e0a62efde00a6fca686adb54ea9f30ce30a22776"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-ES/firefox-90.0b6.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha256 = "441b5a41d4721cb6a3f99de3820611907e212415c4a398be9177693704d3cd80"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/es-MX/firefox-90.0b6.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha256 = "b08fa76644afe19af1203fcf079e4908f1e441bf0db362cead45d13ad5f30a93"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/et/firefox-90.0b6.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha256 = "1754d25cf865a5d08c8a267abe0bce05c951644b58e0126f7085152538392028"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/eu/firefox-90.0b6.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha256 = "33c3a95df0a369c5feae813bda7f0cc8bbc9b1c63aba5cf4193647f03d86623b"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fa/firefox-90.0b6.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha256 = "ba977267c4ab955665fee6ebae8e5be2ac9a71118b118c2626942f4481e8b8f8"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ff/firefox-90.0b6.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha256 = "52b1cbeae32276158a6e649299229c008f797e05d16af756f8e11ab10b8e5a68"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fi/firefox-90.0b6.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha256 = "45e3e210abb3d0e8647451a52c3ac8e17982d3774e557ffbde36383741b3ea88"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fr/firefox-90.0b6.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha256 = "0d6b747bc77931771c9cf6ec23085bcc3def89d8586ebe310df6296a4690df74"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/fy-NL/firefox-90.0b6.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha256 = "829019f441a1bdbabe67a367d755499c0fb2a79fe1e62c5fa319f7b786d8f096"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ga-IE/firefox-90.0b6.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha256 = "2a04c91377b2870c986d434e24626e119a2420028549a51e0dfc0be140ebbd57"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gd/firefox-90.0b6.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha256 = "60ac0465a4cdae54b33035469d6897a5905678ebbe36b49a748fd87b0bf8e541"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gl/firefox-90.0b6.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha256 = "237a0ef1486b7864bb8cfbccd17d8ae95a1935664acda423a1c4ae543aa4401d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gn/firefox-90.0b6.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha256 = "137d3c301c5fb74d69481801eca7e7bd1cd01d10d0a87b68b177bc63382f8559"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/gu-IN/firefox-90.0b6.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha256 = "6d9e69ca5feb66721369a1c39e76ea3e0b4b4db855ca895137f55d61df129485"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/he/firefox-90.0b6.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha256 = "fe88f902475e01b1fb5a26abaf40fef31910eb1c812bce208eb9f55024225e95"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hi-IN/firefox-90.0b6.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha256 = "fce917ccb693ac825b387ea78f6a5e4de4816f8fe9d7fe5ad6c2b600a2a68cbc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hr/firefox-90.0b6.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha256 = "71872966d982032bbafea002c3e7e03162b972ee7f8eb8df00d26bd5d3e8c70e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hsb/firefox-90.0b6.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha256 = "ea8d862701f94cbca2e5f22090cc1434f6f51f8afec5ec929c84c714f11c42ee"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hu/firefox-90.0b6.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha256 = "9bd5842125a2432fc997a416987414323f729685b8b0780db1183a8415ad3a94"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/hy-AM/firefox-90.0b6.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha256 = "d094a0d50acfa2d2e28cc6c4bda43c4e4fa999e80ef97bf4090fa19d672515a9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ia/firefox-90.0b6.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha256 = "077179806415be1461f4cf2dc5676c434b851fe99e62404cafa6736284cb432c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/id/firefox-90.0b6.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha256 = "69e9dbb8621fb196d2a59f7f96c3f368abebc7b512ccc492ea45959f9ba75446"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/is/firefox-90.0b6.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha256 = "b5776defe739415915780672d31c35a277f885914ac56c09ac947e317f71ac5a"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/it/firefox-90.0b6.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha256 = "37b347a27bb14ee9a2c6c7f672cf971de1a7826cbeb0588a4847c32b79dc0496"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ja/firefox-90.0b6.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha256 = "979cb88f236160d3091f7cfcb80d317fba4fac6ab2ec26d78a2c92651e856f21"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ka/firefox-90.0b6.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha256 = "744cf7540dc3238442153b0edd50c687957f47531c0569ce32720e2e5160cbd7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/kab/firefox-90.0b6.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha256 = "66efbd08ad245c4629d05de0eec26f987d7d72d66ad097ab197bb31f29345284"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/kk/firefox-90.0b6.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha256 = "9099027e11d674ce49a0945194d724010980deab08360b4bc0240d007c307fbc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/km/firefox-90.0b6.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha256 = "a7e43012fcb7a6b58ad20069452d69cc9624236983872f733239c487e4737fda"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/kn/firefox-90.0b6.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha256 = "396bb2a4e2c5385b5f74018d3eccb3db2526fdaf277ca99e74934cb17c738cd2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ko/firefox-90.0b6.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha256 = "7606eccf3e6ebe3190a1bfbb60bf88d991e0ff48453b9cc1c07a08ecf54e7932"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/lij/firefox-90.0b6.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha256 = "b5570a8a3ee4445da1b18ee3217976e02923819f4b3d05f58caba65586f91294"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/lt/firefox-90.0b6.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha256 = "2e4b6a279d3db48dc8a498ee5d038c6304782083a699a89d958f81bfa87d8916"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/lv/firefox-90.0b6.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha256 = "031c1fa63780985b4576305b2979bb3c7265cfb175b67393c0f0bfc23177711e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/mk/firefox-90.0b6.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha256 = "797af316793586db1ab0e0cc9fcf75c1fe70a9c89d78ffa43e6ca6b4fce99c44"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/mr/firefox-90.0b6.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha256 = "5363901c98627006d490d20f89fbe9a050cc23a018651934b39e0a0b7dde0d5e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ms/firefox-90.0b6.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha256 = "063ebaa12fa522c218990d01f5b312f019e223fee8efb57a10ff68197b8c529e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/my/firefox-90.0b6.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha256 = "0eac26eb33852f0c0ea79869385010c623769933f5c8cd6c718ab9fde5eae61d"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/nb-NO/firefox-90.0b6.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha256 = "15cad2c535889f2cc29021490d6bb28145e0f1df27676e3871d18d17b3db90bc"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ne-NP/firefox-90.0b6.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha256 = "640b3099d96af524455026de4059a23fe75a54b330a8b4fd0a9efe58e55cf950"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/nl/firefox-90.0b6.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha256 = "f12f1d587701cc78884fa5ae3d9997aed69ab6b57438e89419bda3330e1787d7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/nn-NO/firefox-90.0b6.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha256 = "7ac1de885da3fd400e03d91adad4eee78736d7776d1b3134b38ecb9bc4d4614c"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/oc/firefox-90.0b6.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha256 = "bab17427dc0d1af03bf8a28a1ac9f505d71ff2d84a184fa6ac99454d6623a269"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pa-IN/firefox-90.0b6.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha256 = "47a04146475054fcb8d76880f06491e885e12862bd0444e6556ac1030ae8b2b9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pl/firefox-90.0b6.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha256 = "5c4993bcc60f8d116ef36ea6b502078c34c274f91ee455497203714281f3be46"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pt-BR/firefox-90.0b6.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha256 = "7b5e2f52aa1864a6c1c96387a8f5fe3e788b8472d4852226919db430168b151e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/pt-PT/firefox-90.0b6.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha256 = "7717af1088d956ffaaf91f122e5929d3605b60938a40bfa829f791eb7833b620"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/rm/firefox-90.0b6.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha256 = "eea1dd966c8f4264616b89183a732f7c551c30c999c7bc95e3a6952c6ed667c1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ro/firefox-90.0b6.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha256 = "1f472eab1edacbd4f94e5120a32ecd51b4ec507108b516a244582e0a6f177669"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ru/firefox-90.0b6.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha256 = "0cc517ed918facc26e76159b744b28397536736db641a45ac5e11bef9cf9b3d9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/si/firefox-90.0b6.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha256 = "edb56422879227089c8093397464e24c641d7d76bfd71e2dd6fde7a8b7b2498e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sk/firefox-90.0b6.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha256 = "ca64ed30ae3d073b51c3dc82c841eec88a7fa3913e82243dd8f67078f0ec59b0"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sl/firefox-90.0b6.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha256 = "ce5c1df3db5e819f309a757e37c764f75dffc2cbf8737a8953349283f98855c2"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/son/firefox-90.0b6.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha256 = "d1f5604c5204be5c6c5e323b1ffabb411051de8c31c1568cebb6cecda0c1a371"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sq/firefox-90.0b6.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha256 = "805b77a1a561541e714c9ebaf23d0f5d50abb84766033e38056e0c528ac44d13"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sr/firefox-90.0b6.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha256 = "d9b5ca9b56132936391f0b56b3694dd741a6217f591acc7cecb73e947adac302"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/sv-SE/firefox-90.0b6.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha256 = "3b5aa0a8d598135a2bee5b9b7db478a106473f7708e24c89f103c8d67e233dec"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/szl/firefox-90.0b6.tar.bz2"; + locale = "szl"; + arch = "linux-i686"; + sha256 = "6da4aef36fb8cd014e827a89a9ec9092c9d2005f493b29180048fe70688e8513"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ta/firefox-90.0b6.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha256 = "972706bfdf85c74f7615222fd3dc15315fe9b339f2cf03509ea40461ffa09dc9"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/te/firefox-90.0b6.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha256 = "5e92dbef162c8553868c321c604315af544fc5a157ad80bbb6cf0dfc1e049ed3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/th/firefox-90.0b6.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha256 = "2530799eca2427f2294b9020dacdd1360f12c07973627a4f27a1fd09fcee02c3"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/tl/firefox-90.0b6.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha256 = "ab71a1db5a1a1a77e52819b48322186a7b2425ccea4528aa68c286f76733b0cd"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/tr/firefox-90.0b6.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha256 = "f4816b4dcc0263451bfe4953c80ca9b2c19dcc882cd01523dee0fa95f8196db7"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/trs/firefox-90.0b6.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha256 = "6dad8a06f75a64ea647b7eac9b211611048d46f6cb82c339eed09f26554e97e1"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/uk/firefox-90.0b6.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha256 = "ea5eb3e482eb51804a935266a91957c5969f0faacf7ea6fc3aaeb39e0b0d3dc4"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/ur/firefox-90.0b6.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha256 = "3048627e8fa53fa379f5d1c3ec9ea70733aadee3a8a9ae35c75187f820024a1e"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/uz/firefox-90.0b6.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha256 = "9cd8711b5a188e7c3fc954b65bd08b4ecb3b827816652ae859d5e6a57a15ae5f"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/vi/firefox-90.0b6.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha256 = "89b09f5d295512e98fc374ee950a74aac041ecdde3bbad5cf42a07e5b3ae3ece"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/xh/firefox-90.0b6.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha256 = "925c0f9832d235aca22b0b26aef59f750f09d1d3ea2a391aab4087a44f743072"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/zh-CN/firefox-90.0b6.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha256 = "3f8029b6f33a0954ea8d3029a5182b4b016356348d1a793f9f96261a5e7e6e99"; + } + { url = "http://archive.mozilla.org/pub/devedition/releases/90.0b6/linux-i686/zh-TW/firefox-90.0b6.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha256 = "8d69eede16322268738bf8d4b75698a825391df1c06caa0ca2931555c832f124"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix new file mode 100644 index 000000000000..3410ab5a25c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix @@ -0,0 +1,975 @@ +{ + version = "89.0.2"; + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ach/firefox-89.0.2.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha256 = "7de9c1dc38a4508aeca588a6ad49ededef067fe7589b099f1e4bdda2dfc99d60"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/af/firefox-89.0.2.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha256 = "bdff1c8983f94e4f9237cfbbeed6a9e10dabd029e3f4efaf9f8ed0d4cd04db6d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/an/firefox-89.0.2.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha256 = "f2e1157d325a91d41600db763dedbf2344dbcb07c1af04ba02079a3c134a76b5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ar/firefox-89.0.2.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha256 = "dc65f87a192c5940053e1d696f0b82dd9c4dfd4e1b9ffa70e7e608bd81622e53"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ast/firefox-89.0.2.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha256 = "96305dcf9c86fa8357fc691ace8496916effc32896416e3507263e740256fe00"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/az/firefox-89.0.2.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha256 = "8f5a0a0050bbd221700d3dc65b749393d855ac0b93288d498ed6911aa727f577"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/be/firefox-89.0.2.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha256 = "cad622598b126c17049fd2c18cb8c5cfc0b08a41559b872d2cd474eedd8cc64c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/bg/firefox-89.0.2.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha256 = "60dcc88ee1532178b601fca3fa1711b83ef40a58f38ecdbd2abf504a74650f51"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/bn/firefox-89.0.2.tar.bz2"; + locale = "bn"; + arch = "linux-x86_64"; + sha256 = "d8d48d57861c369631762141ff3230ea6877d1cfa25ab445ff8482c3505336ef"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/br/firefox-89.0.2.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha256 = "93753f265ddab79e1632b17a39ff009d4b0831a57b522fbd042b85ac1b0e4526"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/bs/firefox-89.0.2.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha256 = "e0f253a239e7bbd89d051377ad3250160154568f92ae7ca7e813b202fb3ab2af"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ca-valencia/firefox-89.0.2.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha256 = "7aee988a5af50bc98cd9d8ec7beb2c4dcb7183a736be1fc47b5535280a20f7dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ca/firefox-89.0.2.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha256 = "ce9617a904bb05391525af0eb6119f333a04d01ae6eecc60096d1bb159296933"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/cak/firefox-89.0.2.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha256 = "a20708a942536373236c784a93d67a53623dd389c42167d09ddfd2577456d5b4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/cs/firefox-89.0.2.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha256 = "4d40e2d2f8bb1d3a3c2f7319dec6106b1781d717d430bd6e75db3cd8b12af31f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/cy/firefox-89.0.2.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha256 = "0b7dc949e79d29534651b450c29b9e7458817e4286cdbf7a8602855b5c0057a4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/da/firefox-89.0.2.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha256 = "ab37e800cb1f5ced51c3fb18534200a5d68586a31f649d6c7d5e475ea2bc28a9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/de/firefox-89.0.2.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha256 = "6233b625e67bbbc5432daf596e4e654dbecb02e7f8a5511f07f6ab015a07ecdb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/dsb/firefox-89.0.2.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha256 = "2468c1b03785a381525e4fe58ec106337ae8414a3d46894b7a00fc81c1859ba3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/el/firefox-89.0.2.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha256 = "1a77f00567ef8a255a012a33c8ca2d66e0b1ee379c555b110cc660846262e482"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/en-CA/firefox-89.0.2.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha256 = "f94fe35737d04152809893a775e411d8d92503addda508414c0d8ddc3d40e513"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/en-GB/firefox-89.0.2.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha256 = "bf610dacccf834f4f62c96215e8a9620493d08ef2b2445b675ddef36c1eba036"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/en-US/firefox-89.0.2.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha256 = "964b6b515151bb9a0f4e90e9902afd09ff64bfaafa231480b9829264d36fd76f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/eo/firefox-89.0.2.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha256 = "e2e4da131a01355c4cc6710ef04b61963609026455d4e8bb51c2675ac44d4a94"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/es-AR/firefox-89.0.2.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha256 = "7d5ef9dc2667570752b65cadc3851dda050afad82b9af8de35565d7c56b9dfe2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/es-CL/firefox-89.0.2.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha256 = "018f07814bf6ddf7891a1c6104ddf6f10dd0bb9595772a367fc0f66b0f1586a2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/es-ES/firefox-89.0.2.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha256 = "9076d5dfd5422a298b7f35b15d57a7793fc4a84c5acfca02157ae37234a7c526"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/es-MX/firefox-89.0.2.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha256 = "dfddfbff84b42948ddff2527a819d0e3ffd4272c705a5a9d503b5034e4355ecb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/et/firefox-89.0.2.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha256 = "3f05022e625074b79e7902b1b43ba141c0b39af65b247eb63d80aa38e7d7df56"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/eu/firefox-89.0.2.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha256 = "9996e2133fdb56856bb744b439cba4f2570e7e2f6c46373c75d967412b8fefc3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/fa/firefox-89.0.2.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha256 = "2a8d3de485d4ab1f2689f50fa06c40653690b7039617c5286b89a5e1483537ed"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ff/firefox-89.0.2.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha256 = "f4efb3e0bc68ae3a905b0e846e6884b3209a3557cef9de9bf43b52987d4b01c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/fi/firefox-89.0.2.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha256 = "5d1a787f6d9798d0cbc58b0dbf3fc20892d7dbc0ee1ffaa5a26879578fe8a030"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/fr/firefox-89.0.2.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha256 = "c07643b687f699f92c4a3725ad3589f9dbd8ed7ed859e49cc8d8f39242cb6b56"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/fy-NL/firefox-89.0.2.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha256 = "3cbf0aa2f6fd2842c11b2d774348dc7656f92e78c1dc15e351b30e772a7e3e6f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ga-IE/firefox-89.0.2.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha256 = "e0a307dff5bee1049446b9657036e336a2d7ab5b8fe9782b3ca83aef595be307"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/gd/firefox-89.0.2.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha256 = "2ac2e6e617d93df8ca5c3166da944d897940dff279ba842d20b197ed15744971"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/gl/firefox-89.0.2.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha256 = "359870aa13c2dab4d79bda23c13a43cd899d0fd732089cbd75d44ee2a23ec0c9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/gn/firefox-89.0.2.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha256 = "a39e9ccb2d9b6b7f0e9303134a1c8e7081e5d56c1039d734fd390810efc7729f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/gu-IN/firefox-89.0.2.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha256 = "e621ffee06c2858633505693c3f7da980a3b69d053d641cf796d85d53dd68af6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/he/firefox-89.0.2.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha256 = "8258e2b3e70a1c7ad5ca5c49d482b0dca13f61f0ee7c91f1cb4df704e950db5e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/hi-IN/firefox-89.0.2.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha256 = "1a01c93c3cd83b756dee3a7984187821bf1cfc30460e8ff84cf934f549b0d2ba"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/hr/firefox-89.0.2.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha256 = "7b896ceaebbe84e015fa69a02c484dce61358ecc08be81915e944e11fbbb3361"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/hsb/firefox-89.0.2.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha256 = "c25fd4d7941e03190bf2472297beb9622825759752e24cde982e1ba5ace2d1dc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/hu/firefox-89.0.2.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha256 = "d8588d5540b85daf24148671781ea9ff814d550bb2bc4f5b42c58480ec73edb2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/hy-AM/firefox-89.0.2.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha256 = "e965b9d0c419d930b5d32e5fca9feaf5498c79b862d86890775625bfcf6d4c61"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ia/firefox-89.0.2.tar.bz2"; + locale = "ia"; + arch = "linux-x86_64"; + sha256 = "ca72f852352f39332a8483cd8a237bd341fc5a59dd9691a611e3b376339e9214"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/id/firefox-89.0.2.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha256 = "cbce57ce7feebde4bfaf1cc9fb32dbbac93ccbfca3a8bc0f78654825becece21"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/is/firefox-89.0.2.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha256 = "469b8167124a958e8d63ac1b1e71936a586e887c747753be484f5761f41c3ac2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/it/firefox-89.0.2.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha256 = "ebaab65016d9c3a5e04d48589b1ed98d3ce8dfd0fcf1a47c301b35859602ad71"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ja/firefox-89.0.2.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha256 = "ca67a104f71c48d61dbf6edc927c4081129aa66f48dfd504edb1ece7a9e2277a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ka/firefox-89.0.2.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha256 = "5b5c42725b471cc505a9b87786fd3197903703235495ca81d87c19d96627da45"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/kab/firefox-89.0.2.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha256 = "0fe867e946add17cfa0d7b55c8141ba2d01d1f369df8ad4afa40c6ac723d13fc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/kk/firefox-89.0.2.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha256 = "0f2cbf77404aefedae1ef092da3b55ce3f5f781af8a9e7017a458fb535b23ce4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/km/firefox-89.0.2.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha256 = "1bc3a6e917ad851cac0148788da0c74fd3879732aeae5c188d964d2cad4b3c15"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/kn/firefox-89.0.2.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha256 = "77fc84153e242e6f07cce2ed4456e7bb9556ddc1048469ae6dbdec99cc8e96c4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ko/firefox-89.0.2.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha256 = "5eda0b318f39eedf6982aaf7965a086372e0750a3acd711d4b7474325216b2da"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/lij/firefox-89.0.2.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha256 = "393223aa925d239bb690b910144a702b46be7e8e256ab52b246e1372e7f89275"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/lt/firefox-89.0.2.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha256 = "8cac447febbe03018759b56f2e96ce07f78c464aa0da3ebf17fc731da0602b46"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/lv/firefox-89.0.2.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha256 = "5c000888c60575410a8a851bc2ecddbc981c512683411a1d0792e43e07da0c71"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/mk/firefox-89.0.2.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha256 = "5bf30fa470ad03c9447ea3e53fde900e8a2f51a607066ab50c713a93cd6e9b06"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/mr/firefox-89.0.2.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha256 = "f842218097dc96dfed8726d971a1383dc60e9054f7f974879e88dbcc615daaf1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ms/firefox-89.0.2.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha256 = "dcff05df156a85049712eaf31a5f7676a047c94562529a9cfcad7320f3fcc4c9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/my/firefox-89.0.2.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha256 = "f6b159ae83c05440c0d3e2fb4af26b63df4a776702a5afbef837f0846faf41e1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/nb-NO/firefox-89.0.2.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha256 = "9a3520ab261ba3c5e599ee04e2a6d494ec6471b8ef1dec266d45ecd530bb1a85"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ne-NP/firefox-89.0.2.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha256 = "d73479851c04957855f3ffa90a14d40ee249ad61013ac101491d1d60bd9ee310"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/nl/firefox-89.0.2.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha256 = "91fa566bc4fb42633e8e0a1ce8cb4c5ae9a3f730d3b4541ec128ba83319320c8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/nn-NO/firefox-89.0.2.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha256 = "9e46ca01cbe183474b1fb3e5d59e75629bb272472c0aa3a781fe7e47723a90f7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/oc/firefox-89.0.2.tar.bz2"; + locale = "oc"; + arch = "linux-x86_64"; + sha256 = "d5a208d52747413ef2adbbfcbfd7264351337ee57e53aa3817857c0a996e37ac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/pa-IN/firefox-89.0.2.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha256 = "d79022a314255210a3eb97f82b9653a20612dc871d6c418afa1a7e0fe63d274d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/pl/firefox-89.0.2.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha256 = "accad8da9a17749f43c676a69391b5b33a9d024624783228eef7ce48af56cb45"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/pt-BR/firefox-89.0.2.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha256 = "6f9202ef11e2d4368ccd0d6d98daa62ddabeab51087b84fe340bd935fb754f36"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/pt-PT/firefox-89.0.2.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha256 = "8020109a785542a33f3139fde8b0cea5920ac1618ffceb96bcaa81627c5da772"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/rm/firefox-89.0.2.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha256 = "0e97d8aa72831ca0ec8d33f6877fa904bcc2f7ca3795bee85121ce5589388e97"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ro/firefox-89.0.2.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha256 = "6cb71deb1f0b9d42b20d9400d6789b7b9b88a057f505a68491ab493eca0f4313"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ru/firefox-89.0.2.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha256 = "a492308ff61a2b4673d178caf47e480376bb6b96ff8965a360f6f49321ee51e2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/si/firefox-89.0.2.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha256 = "6858b2100d235dd7770ec003a4e9c2374354ad9f3a682aa9afd2c95ec2b81ff7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/sk/firefox-89.0.2.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha256 = "bf74268fb305ff461e118641cee1b26ba687d9dda294284b2a5d4c7f6e5bb39a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/sl/firefox-89.0.2.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha256 = "fb2ea5d4b1fa4c7eb88806efed2b3a0c724c5d81f716b54c015d7d976c457f5f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/son/firefox-89.0.2.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha256 = "75e6a69bf9ca85c1d214202de55f0b5c831b41c22d375448db6eab3f7161779f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/sq/firefox-89.0.2.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha256 = "bbe1935033db10b0004c7746b089040decafc0cb04825a5df5004905dd470320"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/sr/firefox-89.0.2.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha256 = "cd97fca2ee3d57c418e0bbdad529c1ec424d18a0aa5976a4cff13fdb7bcb3f39"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/sv-SE/firefox-89.0.2.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha256 = "a3eeca622d63db7fd94fcd691a2d910380e211bb0d78d131587a448df6ebc635"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/szl/firefox-89.0.2.tar.bz2"; + locale = "szl"; + arch = "linux-x86_64"; + sha256 = "72c868394c285d890fbdc560813803aa26ae5342f36a6864588a829cf4639c09"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ta/firefox-89.0.2.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha256 = "c87f9e8d7f5935c30f9a916fb76990d0678e9032287fffad48230d5f66aed24d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/te/firefox-89.0.2.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha256 = "2d415574a612f011c22b782e439025d1a50ef12217bd3b538ff36010747f1eea"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/th/firefox-89.0.2.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha256 = "7c73cff2af72421231b9a03d3196186db98ce6b09a0ccf4954219506b50c27cd"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/tl/firefox-89.0.2.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha256 = "6a37fae3a5c0156827f6b69aaa068aca6982cab7e6dd242f74846e743c00f96b"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/tr/firefox-89.0.2.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha256 = "42cd3896f2b726cff21ce0cadd4135ae1f325dc3102efa17cd3a3c5c6948c6f6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/trs/firefox-89.0.2.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha256 = "1ccf3ce127603a42fc5addcbaa238b36e9bd798615a2e6bfc95de7db5d12402e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/uk/firefox-89.0.2.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha256 = "2ad2a6306019dd5960e4e25ec59c7fb2eec0c233f07c04930049d5d75f3b84f5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/ur/firefox-89.0.2.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha256 = "e63605011a8cef5e239a39a21edce7b1e2bbf342827888e1ab36c22bdc6ac5c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/uz/firefox-89.0.2.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha256 = "8f5d446ce0dac4bfb0640a492de57d087336578c157c238a8e3e9f186408e337"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/vi/firefox-89.0.2.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha256 = "5f62f1e64035a158883e7e774cb87cf15b336bdd2171ffd65e13ea8cc81c5542"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/xh/firefox-89.0.2.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha256 = "ff111b178134fd2dfc6f7597b6c33b4a8ed4aa6ef64c6687bcedfcef26982d5c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/zh-CN/firefox-89.0.2.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha256 = "90af3045eae839ca67a42e8ff810156ebe6115c3749e0547e907ca910eef3ef1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-x86_64/zh-TW/firefox-89.0.2.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha256 = "5285b29bd463013c80cf23db6947cc720c5327a71a9dc35e678444e7ca2f3a42"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ach/firefox-89.0.2.tar.bz2"; + locale = "ach"; + arch = "linux-i686"; + sha256 = "0de413f3533dcd0fb5d2fdcf63673d814afb611324cb32fe9431f59b735ab152"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/af/firefox-89.0.2.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha256 = "98069b18e97b3fb887d191321bed74935def28a4288abe8765c27acb62812ba9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/an/firefox-89.0.2.tar.bz2"; + locale = "an"; + arch = "linux-i686"; + sha256 = "d84d8c1ec45d53207b48043b8f468bceb211b199a3a5e76337700ec8b5f40f04"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ar/firefox-89.0.2.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha256 = "22dea08d8f9d100881d9a3e5b56d2618502d6d498ea56ad7cc6afa8e862bc7e1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ast/firefox-89.0.2.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha256 = "e92ea890c51def74523dadae1f40f1fdac4816db50025e12a6575d798febc1eb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/az/firefox-89.0.2.tar.bz2"; + locale = "az"; + arch = "linux-i686"; + sha256 = "abb1a31a0374b95fa3ad36fea893c39dd8056f8a06e4d94dbfced3d80bd8197c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/be/firefox-89.0.2.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha256 = "c5a8895155b3e4cae1c3541e66b3e551b3c14460d2e522ba72d83b5d702a8889"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/bg/firefox-89.0.2.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha256 = "b6b811ed0e53795623f6c928d0411600aa2ccdfc9fa890e846018e085bbcc6ad"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/bn/firefox-89.0.2.tar.bz2"; + locale = "bn"; + arch = "linux-i686"; + sha256 = "4597c3c41daa76c3bdb30d3fcb4cfbc51a7571bab98abc8b35f6b7ae2df1ae5c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/br/firefox-89.0.2.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha256 = "5346306c5cdfce1b3d7ece50ea1fe3dbe9ae69ccb83f70a0a2c451972ef40afc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/bs/firefox-89.0.2.tar.bz2"; + locale = "bs"; + arch = "linux-i686"; + sha256 = "260e08c62ea7fd0d6d130453e1247588c83f4e0414aa569dc23f100bdd534347"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ca-valencia/firefox-89.0.2.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha256 = "855660233c59d97b05e56dbc2efcaa1ab538c1433ea14e2159d3efca8531ecef"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ca/firefox-89.0.2.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha256 = "b71bf5b2137a715fc75c36d9ee9c1e20525f31b8a2f2dfa56af51305a94058c5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/cak/firefox-89.0.2.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha256 = "fbf2092e4b56716042f993eb4d5bf41a9518da2243245282c9cfbc812c8c5268"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/cs/firefox-89.0.2.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha256 = "466a81994a51fc42ff2b936a2e2d20089524bb514031f740f7a6a0865ff57b1d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/cy/firefox-89.0.2.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha256 = "ef3596c10627fdf196a5f52f59240fd85d6eab33035cce708613c7dde041b413"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/da/firefox-89.0.2.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha256 = "946b42c16cb861b21a0a1808cfdf554c955998aebcf59299c240a334abb8aa47"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/de/firefox-89.0.2.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha256 = "b4d003e8abd272870ed332448aef29bf2bb40de74ac0640912a65031da5012c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/dsb/firefox-89.0.2.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha256 = "57c7b439616ec7eeddf05c7c5a5fde0947092762c5d5f98e87c3850a3ee768de"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/el/firefox-89.0.2.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha256 = "3c444a23416b6080d2d6b5e8744651b4f4796e3ecb601c8eee3f21cca8eaf224"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/en-CA/firefox-89.0.2.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha256 = "aeb3d01315db024984739999b9fbf1eba0464a7a393451d311fcee786509198f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/en-GB/firefox-89.0.2.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha256 = "c327ce261f0c843eb6a50c7e6ef9d3163548d03391429f9a55c1adc6b9969759"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/en-US/firefox-89.0.2.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha256 = "491fd0066a893fdb3a6cc58e3e0b6b02f15096d07563437a79b2727d09256890"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/eo/firefox-89.0.2.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha256 = "1c39ec1e448288541cbdcc10f7d66e8c36a66d08b1eadd9f8f90e590f6473908"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/es-AR/firefox-89.0.2.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha256 = "fa8dea8cecce162a25ae9d2640b35ab5f9f2073c136d051ee4795caf8f888aaa"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/es-CL/firefox-89.0.2.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha256 = "e156fd02f2c1c8deaf416f17d78dea0433e0e84967b09233ceee9e33cbe42bbc"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/es-ES/firefox-89.0.2.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha256 = "7359fc86b0f6da2916e8f178295c85ed3c8abebc1732f7735ec7b2f4c2aeb76f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/es-MX/firefox-89.0.2.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha256 = "57bebe4dfd2812c8b48f597893738b0cf9badbdb11fe1e3cfeae45290dae7f2e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/et/firefox-89.0.2.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha256 = "71e3d1a1bf3a8d480cde7cf8ad747c90b8eb217cadb445ae1ed3aa10c1232275"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/eu/firefox-89.0.2.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha256 = "1e38c53105664f6dccca1b67928222f161c6de37f9a661c46a8ffafea3600cb3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/fa/firefox-89.0.2.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha256 = "b72165e2561de0d65e6cf991a4f5e4ce72fffabb23d80f3b7408c03e1eb6d0c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ff/firefox-89.0.2.tar.bz2"; + locale = "ff"; + arch = "linux-i686"; + sha256 = "9f2d7b11c3a05fbffee4d4e9dd5f3b397fdf3edcdee174a0907b1ebb1625ea62"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/fi/firefox-89.0.2.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha256 = "29e2279d03732703576c0dd43afabe1f416c14d517979f6dde78ab42cb561d4e"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/fr/firefox-89.0.2.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha256 = "93bda1a56ecce4dfd84fb9333f3b333887e2014edfdae4b555b6a4296baf4805"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/fy-NL/firefox-89.0.2.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha256 = "1238d1e763457d4e9cabd00505cce7ce3dd9979e41ff1d1b005e35a229d8dce6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ga-IE/firefox-89.0.2.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha256 = "8eca1fbd8f536f62eb645ddb5cfd5e9c573492ef7a86f86a930b3a09829eb9c2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/gd/firefox-89.0.2.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha256 = "dc173ac67ad7353229ee1c606ebde73c4be2ccf64ee97f3746e45a2766031e63"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/gl/firefox-89.0.2.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha256 = "038bd87c6c72727d6f535b863279b03d6e2c979672d717556222b280327cacf6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/gn/firefox-89.0.2.tar.bz2"; + locale = "gn"; + arch = "linux-i686"; + sha256 = "42f4d4fadeacdb003db6104c0003cdec7ee81558d07b11573e7d0fab9351dbc8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/gu-IN/firefox-89.0.2.tar.bz2"; + locale = "gu-IN"; + arch = "linux-i686"; + sha256 = "6dfa19890282d88605585a5d5c640d200d52d8c0bc61218fc2e8f19d16a9811d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/he/firefox-89.0.2.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha256 = "a16c0423c33f6f05f9a1aa607232506e7353e2774d7edc224e3955813d212eb7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/hi-IN/firefox-89.0.2.tar.bz2"; + locale = "hi-IN"; + arch = "linux-i686"; + sha256 = "fef5a9c06a3befcab35a0532cdcdaa3c6757a5ea5b6bc0d4ecbc684f37443077"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/hr/firefox-89.0.2.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha256 = "464ebe80e2d55686a56960f6a6789b58127e86efb5bf7dd8ab79220f49790659"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/hsb/firefox-89.0.2.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha256 = "92458b19e0a3a8c573a126f120d3da76f185d9822c5f32c3d56f3cc90d999f55"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/hu/firefox-89.0.2.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha256 = "9c078d9022a2d83444709fec7a4a122369ceaebc4b27b99bbec9c67be4370ec4"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/hy-AM/firefox-89.0.2.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha256 = "36b64295d46fde7a85994e374b38a8781bdebb4e15872f81c8e694b4218e2713"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ia/firefox-89.0.2.tar.bz2"; + locale = "ia"; + arch = "linux-i686"; + sha256 = "080f890f868a4c7e7f03db96ab2c25b6f39dcbb1f960052ce75dbdd5983487a0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/id/firefox-89.0.2.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha256 = "b43ceb1d6f6a003aae01a02af15c0e4aa0fe9e8547703adcd872767c2c797717"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/is/firefox-89.0.2.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha256 = "35edad7f2a31b7b2ffe0d8eee2b0f0ab94f5f91c8b2507b344b7d28ac13fbbbf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/it/firefox-89.0.2.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha256 = "47f17fe75d1ddd17a4c044dce4dc223a69da7f7de478b87d58e8f99d488ccf79"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ja/firefox-89.0.2.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha256 = "86850b09c992a6383a406e99bc8698b8471f8240cef752126714e6f070e2b220"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ka/firefox-89.0.2.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha256 = "42297e2f4c1d72bc46dde66ddca934962b2aee9a918e24b90870fc5774284bd9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/kab/firefox-89.0.2.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha256 = "7f00172ed2f2285ef5b8ed3774781f5036c1cde57f1a321f9b91c54679ef68ce"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/kk/firefox-89.0.2.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha256 = "f7046b78d72074fcf0f62c7d4b660cb8a63095dcd8c24fcdfc61c574ddfb42ae"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/km/firefox-89.0.2.tar.bz2"; + locale = "km"; + arch = "linux-i686"; + sha256 = "4157455134722e29c8a039cc11cac68cff7ff9311405a2c71e30f982f12888c2"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/kn/firefox-89.0.2.tar.bz2"; + locale = "kn"; + arch = "linux-i686"; + sha256 = "ea5812c8eb194be0e8335f48ebde884a4375df2513c9275ac551aa0b18580dc0"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ko/firefox-89.0.2.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha256 = "b25b99297a64c9a700d9dd285db01d6f859402f09b38b2ada3bfaf914c72ec7f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/lij/firefox-89.0.2.tar.bz2"; + locale = "lij"; + arch = "linux-i686"; + sha256 = "2c875ea5c87840527e2dff471fcfe774e8ee4d01c764bf1d73da99d9e875f4ac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/lt/firefox-89.0.2.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha256 = "27dc824ad230ea5f3cfaafa4024733de85e67cc1b6678aae64686b6a54042855"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/lv/firefox-89.0.2.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha256 = "ad865a647d9fa2b20c68ea2d597595aa9b03bbf40987e763d1225fffc91176cf"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/mk/firefox-89.0.2.tar.bz2"; + locale = "mk"; + arch = "linux-i686"; + sha256 = "85c556608247de5e02808f264c721e16f909c5299f6ff423ff0e594da87fccb7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/mr/firefox-89.0.2.tar.bz2"; + locale = "mr"; + arch = "linux-i686"; + sha256 = "1970b70f983bc985778537728b044f27325bfa89cfbea7e000e91e5e66fcea1c"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ms/firefox-89.0.2.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha256 = "ca86002d548f94414fae96a266818ef4038c06f7307be854a997c5ff4b3529c3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/my/firefox-89.0.2.tar.bz2"; + locale = "my"; + arch = "linux-i686"; + sha256 = "6e6af248e80428fc0314be80a66f5ab054437e119e17c84eca6e8ca9d34db948"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/nb-NO/firefox-89.0.2.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha256 = "1310663a3617f78245e46dee283a3932354b9774a39555849c342a0620fe48bb"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ne-NP/firefox-89.0.2.tar.bz2"; + locale = "ne-NP"; + arch = "linux-i686"; + sha256 = "ffc16051f275d04978c1414f919cf9dcde219f998148c9ec2e4f63a7620243f8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/nl/firefox-89.0.2.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha256 = "e2a654e66edf777397c31ab1a6862a051071abae376f5d2ceb939ee7c86d90e5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/nn-NO/firefox-89.0.2.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha256 = "8b2ee4cdd6346b918a5de6c1191d48f5606f40414ab3332129b10614495e1f4a"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/oc/firefox-89.0.2.tar.bz2"; + locale = "oc"; + arch = "linux-i686"; + sha256 = "cd7bb8a640662df12a56cd15569ff8eb611db31a4df676427c1da94579a5a37f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/pa-IN/firefox-89.0.2.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha256 = "18ff5174c3ce73a2733c2f1ad579e9d87c249af5aa1f708c0437d11c720e7669"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/pl/firefox-89.0.2.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha256 = "d187fdac08aa62958cf2238f6e2749de5b8701634b99757e043cba0218451a26"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/pt-BR/firefox-89.0.2.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha256 = "63c81069183b3862e2b379a5d6a816aa02338ac0c324e33c0e020f579d9e2ebe"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/pt-PT/firefox-89.0.2.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha256 = "5d24712703b54d2e4aeb82a2ce95b9d937e58886574b80252450b7ede7120d23"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/rm/firefox-89.0.2.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha256 = "cb6bacee900a12c51960d2175caeeba96c57908d860bb0b64ee2529ffde284ed"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ro/firefox-89.0.2.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha256 = "29d344efd66aae4645208746a1c8083ceed01ffe8b8c372e8e97885e385e3e19"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ru/firefox-89.0.2.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha256 = "17b9ba80d6dc056fe774e1836533ebf44be27edf6123c3bb430a00b1f2a21d65"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/si/firefox-89.0.2.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha256 = "781b6ccc99d8f886e6bdf103327332ada06529ab6b728ff4ec6bffb5d176abf9"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/sk/firefox-89.0.2.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha256 = "1895f1c5ac0dd749a3e37576c6a90f9b7c5f3f7e9eec24af2cb9a87dcb730127"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/sl/firefox-89.0.2.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha256 = "b3f27a10c094a7d9e308ab0b2ccb3fecb94a8f596b45ace8f66f0dea628e68da"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/son/firefox-89.0.2.tar.bz2"; + locale = "son"; + arch = "linux-i686"; + sha256 = "376bab9502491c3946538e3b26b7a106895bd41de918cb268337af4ce58cd4ac"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/sq/firefox-89.0.2.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha256 = "572251b4b621551e7a2d889489c223fd4dc08b9b19242a2524ffd3cdec53dd01"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/sr/firefox-89.0.2.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha256 = "50e594b3857c7ed71bfdda5f6ad7a2460508d029055e5ba17b8eca3269659ae8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/sv-SE/firefox-89.0.2.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha256 = "b9dcabfa670c6a8f3de85558bf2ea83ff6741754e2eb9ea90ccab81b2f3abce5"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/szl/firefox-89.0.2.tar.bz2"; + locale = "szl"; + arch = "linux-i686"; + sha256 = "ffeb74d2b09595aa6b4d45b5e8587d5fb566188e8cce484bf6887eea1fb83f18"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ta/firefox-89.0.2.tar.bz2"; + locale = "ta"; + arch = "linux-i686"; + sha256 = "410bbc5abf26f49a6e54c762d62ff91068cf95cbb12725a3bb3ce21911abf029"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/te/firefox-89.0.2.tar.bz2"; + locale = "te"; + arch = "linux-i686"; + sha256 = "fd8aec949b92d15e8b52b9d4ad069598e6ed732cfa90747b29539b9c36103f64"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/th/firefox-89.0.2.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha256 = "f10cdd31b1a0ca18f2fe945549b5c98997a3cf821974760363d3977f378449ae"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/tl/firefox-89.0.2.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha256 = "5d0655ec55e4857884eb6e87a6bff8a1efc53e961bc525f6537a0caca6caef9d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/tr/firefox-89.0.2.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha256 = "c4fc2bf69b8df0bdbf0976541a3ff53090cf9cb6d44cb6c5f883cb805fb9931f"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/trs/firefox-89.0.2.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha256 = "54fcae7123f16cc2956af67b13e3a0c43358e82c3ce4498f87f4cefed1333bf7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/uk/firefox-89.0.2.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha256 = "9eefa4110e1feb6bb4ac92470c89a3c29709486bebeff3b3f41479f59593b807"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/ur/firefox-89.0.2.tar.bz2"; + locale = "ur"; + arch = "linux-i686"; + sha256 = "81baf8cbd6c47468471729eb59529af660a3940c4d4795892922532304ff1a11"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/uz/firefox-89.0.2.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha256 = "29d49de5f1ff8c351b19936350a6448480b9dac6c206589dd681fc26f43e3f91"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/vi/firefox-89.0.2.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha256 = "78dccd68c82b5e54a1bea87b47cf6fea80c82c8b07b92f82ed4a7c5216657053"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/xh/firefox-89.0.2.tar.bz2"; + locale = "xh"; + arch = "linux-i686"; + sha256 = "ce11b8aa7529f43ca7c2aeebba17aaf3b6a5b22dd543302122c71dd0ee9f6eb6"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/zh-CN/firefox-89.0.2.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha256 = "407a7e16d28fee88428ce021b7a7c63f1027e7c991652227aaa11223356c5af7"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/89.0.2/linux-i686/zh-TW/firefox-89.0.2.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha256 = "1f500d830d6e465a2ed71baa1b0245fbf5eef9ab9098e9559553e2a9916cc733"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix new file mode 100644 index 000000000000..a2fdb82ffec0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix @@ -0,0 +1,93 @@ +{ name +, channel +, writeScript +, xidel +, coreutils +, gnused +, gnugrep +, curl +, gnupg +, runtimeShell +, baseName ? "firefox" +, basePath ? "pkgs/applications/networking/browsers/firefox-bin" +, baseUrl +}: + +let + isBeta = + channel != "release"; + +in writeScript "update-${name}" '' + #!${runtimeShell} + PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${gnupg}/bin + set -eux + pushd ${basePath} + + HOME=`mktemp -d` + export GNUPGHOME=`mktemp -d` + + gpg --receive-keys 14F26682D0916CDD81E37B6D61B7B526D98F0353 + + tmpfile=`mktemp` + url=${baseUrl} + + # retriving latest released version + # - extracts all links from the $url + # - removes . and .. + # - this line remove everything not starting with a number + # - this line sorts everything with semver in mind + # - we remove lines that are mentioning funnelcake + # - this line removes beta version if we are looking for final release + # versions or removes release versions if we are looking for beta + # versions + # - this line pick up latest release + version=`xidel -s $url --extract "//a" | \ + sed s"/.$//" | \ + grep "^[0-9]" | \ + sort --version-sort | \ + grep -v "funnelcake" | \ + grep -e "${if isBeta then "b" else ""}\([[:digit:]]\|[[:digit:]][[:digit:]]\)$" | ${if isBeta then "" else "grep -v \"b\" |"} \ + tail -1` + + curl --silent -o $HOME/shasums "$url$version/SHA256SUMS" + curl --silent -o $HOME/shasums.asc "$url$version/SHA256SUMS.asc" + gpgv --keyring=$GNUPGHOME/pubring.kbx $HOME/shasums.asc $HOME/shasums + + # this is a list of sha256 and tarballs for both arches + # Upstream files contains python repr strings like b'somehash', hence the sed dance + shasums=`cat $HOME/shasums | sed -E s/"b'([a-f0-9]{64})'?(.*)"/'\1\2'/ | grep tar.bz2` + + cat > $tmpfile <<EOF + { + version = "$version"; + sources = [ + EOF + for arch in linux-x86_64 linux-i686; do + # retriving a list of all tarballs for each arch + # - only select tarballs for current arch + # - only select tarballs for current version + # - rename space with colon so that for loop doesnt + # - inteprets sha and path as 2 lines + for line in `echo "$shasums" | \ + grep $arch | \ + grep "${baseName}-$version.tar.bz2$" | \ + tr " " ":"`; do + # create an entry for every locale + cat >> $tmpfile <<EOF + { url = "$url$version/`echo $line | cut -d":" -f3`"; + locale = "`echo $line | cut -d":" -f3 | sed "s/$arch\///" | sed "s/\/.*//"`"; + arch = "$arch"; + sha256 = "`echo $line | cut -d":" -f1`"; + } + EOF + done + done + cat >> $tmpfile <<EOF + ]; + } + EOF + + mv $tmpfile ${channel}_sources.nix + + popd +'' diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix new file mode 100644 index 000000000000..c10d7b606871 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix @@ -0,0 +1,393 @@ +{ pname, ffversion, meta, updateScript ? null +, src, unpackPhase ? null, patches ? [] +, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? [], tests ? [] }: + +{ lib, stdenv, pkg-config, pango, perl, python3, zip +, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg +, freetype, fontconfig, file, nspr, nss, nss_3_53 +, yasm, libGLU, libGL, sqlite, unzip, makeWrapper +, hunspell, libevent, libstartup_notification +, libvpx_1_8 +, icu67, libpng, jemalloc, glib, pciutils +, autoconf213, which, gnused, rustPackages, rustPackages_1_45 +, rust-cbindgen, nodejs, nasm, fetchpatch +, gnum4 +, debugBuild ? false + +### optionals + +## optional libraries + +, alsaSupport ? stdenv.isLinux, alsa-lib +, pulseaudioSupport ? stdenv.isLinux, libpulseaudio +, ffmpegSupport ? true +, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook +, waylandSupport ? true, libxkbcommon, libdrm +, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages +, gssSupport ? true, libkrb5 +, pipewireSupport ? waylandSupport && webrtcSupport, pipewire + +## privacy-related options + +, privacySupport ? false + +# WARNING: NEVER set any of the options below to `true` by default. +# Set to `!privacySupport` or `false`. + +# webrtcSupport breaks the aarch64 build on version >= 60, fixed in 63. +# https://bugzilla.mozilla.org/show_bug.cgi?id=1434589 +, webrtcSupport ? !privacySupport +, geolocationSupport ? !privacySupport +, googleAPISupport ? geolocationSupport +, crashreporterSupport ? false + +, safeBrowsingSupport ? false +, drmSupport ? false + +# macOS dependencies +, xcbuild, CoreMedia, ExceptionHandling, Kerberos, AVFoundation, MediaToolbox +, CoreLocation, Foundation, AddressBook, libobjc, cups, rsync + +## other + +# As stated by Sylvestre Ledru (@sylvestre) on Nov 22, 2017 at +# https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we +# have permission to use the official firefox branding. +# +# For purposes of documentation the statement of @sylvestre: +# > As the person who did part of the work described in the LWN article +# > and release manager working for Mozilla, I can confirm the statement +# > that I made in +# > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006 +# > +# > @garbas shared with me the list of patches applied for the Nix package. +# > As they are just for portability and tiny modifications, they don't +# > alter the experience of the product. In parallel, Rok also shared the +# > build options. They seem good (even if I cannot judge the quality of the +# > packaging of the underlying dependencies like sqlite, png, etc). +# > Therefor, as long as you keep the patch queue sane and you don't alter +# > the experience of Firefox users, you won't have any issues using the +# > official branding. +, enableOfficialBranding ? true +}: + +assert stdenv.cc.libc or null != null; +assert pipewireSupport -> !waylandSupport || !webrtcSupport -> throw "pipewireSupport requires both wayland and webrtc support."; +assert ltoSupport -> stdenv.isDarwin -> throw "LTO is broken on Darwin (see PR#19312)."; + +let + flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")]; + + default-toolkit = if stdenv.isDarwin then "cairo-cocoa" + else "cairo-gtk${if gtk3Support then "3${lib.optionalString waylandSupport "-wayland"}" else "2"}"; + + binaryName = "firefox"; + binaryNameCapitalized = lib.toUpper (lib.substring 0 1 binaryName) + lib.substring 1 (-1) binaryName; + + browserName = if stdenv.isDarwin then binaryNameCapitalized else binaryName; + + execdir = if stdenv.isDarwin + then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" + else "/bin"; + + # 78 ESR won't build with rustc 1.47 + inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45) + rustc cargo; + + # Darwin's stdenv provides the default llvmPackages version, match that since + # clang LTO on Darwin is broken so the stdenv is not being changed. + # Target the LLVM version that rustc -Vv reports it is built with for LTO. + # rustPackages_1_45 -> LLVM 10, rustPackages -> LLVM 11 + llvmPackages0 = + /**/ if stdenv.isDarwin + then buildPackages.llvmPackages + else if lib.versionAtLeast rustc.llvm.version "11" + then buildPackages.llvmPackages_11 + else buildPackages.llvmPackages_10; + # Force the use of lld and other llvm tools for LTO + llvmPackages = llvmPackages0.override { + bootBintoolsNoLibc = null; + bootBintools = null; + }; + + # When LTO for Darwin is fixed, the following will need updating as lld + # doesn't work on it. For now it is fine since ltoSupport implies no Darwin. + buildStdenv = if ltoSupport + then overrideCC stdenv llvmPackages.clangUseLLVM + else stdenv; + + # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY + # https://github.com/NixOS/nixpkgs/issues/126065 + nss_pkg = if lib.versionOlder ffversion "83" then nss_3_53 else nss.override { useP11kit = false; }; + + # --enable-release adds -ffunction-sections & LTO that require a big amount of + # RAM and the 32-bit memory space cannot handle that linking + # We also disable adding "-g" for easier linking + releaseFlags = if stdenv.is32bit + then [ "--disable-release" "--disable-debug-symbols" ] + else [ "--enable-release" ]; +in + +buildStdenv.mkDerivation ({ + name = "${pname}-unwrapped-${ffversion}"; + version = ffversion; + + inherit src unpackPhase meta; + + patches = [ + ] ++ + lib.optional (lib.versionOlder ffversion "86") ./env_var_for_system_dir-ff85.patch ++ + lib.optional (lib.versionAtLeast ffversion "86") ./env_var_for_system_dir-ff86.patch ++ + lib.optional (lib.versionOlder ffversion "83") ./no-buildconfig-ffx76.patch ++ + lib.optional (lib.versionAtLeast ffversion "84") ./no-buildconfig-ffx84.patch ++ + lib.optional (ltoSupport && lib.versionOlder ffversion "84") ./lto-dependentlibs-generation-ffx83.patch ++ + lib.optional (ltoSupport && lib.versionAtLeast ffversion "84" && lib.versionOlder ffversion "86") + (fetchpatch { + url = "https://hg.mozilla.org/mozilla-central/raw-rev/fdff20c37be3"; + sha256 = "135n9brliqy42lj3nqgb9d9if7x6x9nvvn0z4anbyf89bikixw48"; + }) + + # This patch adds pipewire support for the ESR release + ++ lib.optional (pipewireSupport && lib.versionOlder ffversion "83") + (fetchpatch { + # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch + url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch"; + sha256 = "0qc62di5823r7ly2lxkclzj9rhg2z7ms81igz44nv0fzv3dszdab"; + }) + + ++ patches; + + + # Ignore trivial whitespace changes in patches, this fixes compatibility of + # ./env_var_for_system_dir.patch with Firefox >=65 without having to track + # two patches. + patchFlags = [ "-p1" "-l" ]; + + buildInputs = [ + gtk2 perl zip libjpeg zlib bzip2 + dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor + xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file + xorg.pixman yasm libGLU libGL + xorg.xorgproto + xorg.libXdamage + xorg.libXext makeWrapper + libevent libstartup_notification /* cairo */ + libpng jemalloc glib + nasm icu67 libvpx_1_8 + # >= 66 requires nasm for the AV1 lib dav1d + # yasm can potentially be removed in future versions + # https://bugzilla.mozilla.org/show_bug.cgi?id=1501796 + # https://groups.google.com/forum/#!msg/mozilla.dev.platform/o-8levmLU80/SM_zQvfzCQAJ + nspr nss_pkg + ] + ++ lib.optional alsaSupport alsa-lib + ++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed + ++ lib.optional gtk3Support gtk3 + ++ lib.optional gssSupport libkrb5 + ++ lib.optionals waylandSupport [ libxkbcommon libdrm ] + ++ lib.optional pipewireSupport pipewire + ++ lib.optional (lib.versionAtLeast ffversion "82") gnum4 + ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos + AVFoundation MediaToolbox CoreLocation + Foundation libobjc AddressBook cups ]; + + NIX_LDFLAGS = lib.optionalString ltoSupport '' + -rpath ${llvmPackages.libunwind.out}/lib + ''; + + MACH_USE_SYSTEM_PYTHON = "1"; + + postPatch = '' + rm -rf obj-x86_64-pc-linux-gnu + substituteInPlace toolkit/xre/glxtest.cpp \ + --replace 'dlopen("libpci.so' 'dlopen("${pciutils}/lib/libpci.so' + '' + lib.optionalString (pipewireSupport && lib.versionOlder ffversion "83") '' + # substitute the /usr/include/ lines for the libraries that pipewire provides. + # The patch we pick from fedora only contains the generated moz.build files + # which hardcode the dependency paths instead of running pkg_config. + substituteInPlace \ + media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build \ + --replace /usr/include ${pipewire.dev}/include + '' + lib.optionalString (lib.versionAtLeast ffversion "80" && lib.versionOlder ffversion "81") '' + substituteInPlace dom/system/IOUtils.h \ + --replace '#include "nspr/prio.h"' '#include "prio.h"' + + substituteInPlace dom/system/IOUtils.cpp \ + --replace '#include "nspr/prio.h"' '#include "prio.h"' \ + --replace '#include "nspr/private/pprio.h"' '#include "private/pprio.h"' \ + --replace '#include "nspr/prtypes.h"' '#include "prtypes.h"' + ''; + + nativeBuildInputs = + [ + autoconf213 + cargo + gnused + llvmPackages.llvm # llvm-objdump + nodejs + perl + pkg-config + python3 + rust-cbindgen + rustc + which + unzip + ] + ++ lib.optional gtk3Support wrapGAppsHook + ++ lib.optionals buildStdenv.isDarwin [ xcbuild rsync ] + ++ extraNativeBuildInputs; + + preConfigure = '' + # remove distributed configuration files + rm -f configure + rm -f js/src/configure + rm -f .mozconfig* + # this will run autoconf213 + configureScript="$(realpath ./mach) configure" + export MOZCONFIG=$(pwd)/mozconfig + + # Set C flags for Rust's bindgen program. Unlike ordinary C + # compilation, bindgen does not invoke $CC directly. Instead it + # uses LLVM's libclang. To make sure all necessary flags are + # included we need to look in a few places. + # TODO: generalize this process for other use-cases. + + BINDGEN_CFLAGS="$(< ${buildStdenv.cc}/nix-support/libc-crt1-cflags) \ + $(< ${buildStdenv.cc}/nix-support/libc-cflags) \ + $(< ${buildStdenv.cc}/nix-support/cc-cflags) \ + $(< ${buildStdenv.cc}/nix-support/libcxx-cxxflags) \ + ${lib.optionalString buildStdenv.cc.isClang "-idirafter ${buildStdenv.cc.cc.lib}/lib/clang/${lib.getVersion buildStdenv.cc.cc}/include"} \ + ${lib.optionalString buildStdenv.cc.isGNU "-isystem ${lib.getDev buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc} -isystem ${buildStdenv.cc.cc}/include/c++/${lib.getVersion buildStdenv.cc.cc}/${buildStdenv.hostPlatform.config}"} \ + $NIX_CFLAGS_COMPILE" + + echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG + '' + (lib.optionalString googleAPISupport '' + # Google API key used by Chromium and Firefox. + # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution, + # please get your own set of keys. + echo "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI" > $TMPDIR/ga + # 60.5+ & 66+ did split the google API key arguments: https://bugzilla.mozilla.org/show_bug.cgi?id=1531176 + configureFlagsArray+=("--with-google-location-service-api-keyfile=$TMPDIR/ga") + configureFlagsArray+=("--with-google-safebrowsing-api-keyfile=$TMPDIR/ga") + '') + '' + # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286 + unset AS + ''; + + configureFlags = [ + "--enable-application=browser" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-libevent" + "--with-system-libvpx" + "--with-system-png" # needs APNG support + "--with-system-icu" + "--enable-system-ffi" + "--enable-system-pixman" + #"--enable-system-cairo" + "--disable-tests" + "--disable-necko-wifi" # maybe we want to enable this at some point + "--disable-updater" + "--enable-jemalloc" + "--enable-default-toolkit=${default-toolkit}" + "--with-libclang-path=${llvmPackages.libclang.lib}/lib" + "--with-system-nspr" + "--with-system-nss" + ] + ++ lib.optional (buildStdenv.isDarwin) "--disable-xcode-checks" + ++ lib.optional (!ltoSupport && !buildStdenv.cc.isClang) "--with-clang-path=${llvmPackages.clang}/bin/clang" + # LTO is done using clang and lld on Linux. + # Darwin needs to use the default linker as lld is not supported (yet?): + # https://bugzilla.mozilla.org/show_bug.cgi?id=1538724 + # elf-hack is broken when using clang+lld: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 + ++ lib.optional ltoSupport "--enable-lto" + ++ lib.optional (ltoSupport && (buildStdenv.isAarch32 || buildStdenv.isi686 || buildStdenv.isx86_64)) "--disable-elf-hack" + ++ lib.optional (ltoSupport && !buildStdenv.isDarwin) "--enable-linker=lld" + + ++ flag alsaSupport "alsa" + ++ flag pulseaudioSupport "pulseaudio" + ++ flag ffmpegSupport "ffmpeg" + ++ flag gssSupport "negotiateauth" + ++ flag webrtcSupport "webrtc" + ++ flag crashreporterSupport "crashreporter" + ++ lib.optional (!drmSupport) "--disable-eme" + + ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ] + else ([ "--disable-debug" + "--enable-optimize" + "--enable-strip" ] ++ releaseFlags)) + ++ lib.optional enableOfficialBranding "--enable-official-branding" + ++ extraConfigureFlags; + + postConfigure = '' + cd obj-* + ''; + + makeFlags = lib.optionals enableOfficialBranding [ + "MOZILLA_OFFICIAL=1" + "BUILD_OFFICIAL=1" + ] + ++ lib.optionals ltoSupport [ + "AR=${buildStdenv.cc.bintools.bintools}/bin/llvm-ar" + "LLVM_OBJDUMP=${buildStdenv.cc.bintools.bintools}/bin/llvm-objdump" + "NM=${buildStdenv.cc.bintools.bintools}/bin/llvm-nm" + "RANLIB=${buildStdenv.cc.bintools.bintools}/bin/llvm-ranlib" + "STRIP=${buildStdenv.cc.bintools.bintools}/bin/llvm-strip" + ] + ++ extraMakeFlags; + + enableParallelBuilding = true; + doCheck = false; # "--disable-tests" above + + installPhase = if buildStdenv.isDarwin then '' + mkdir -p $out/Applications + cp -LR dist/${binaryNameCapitalized}.app $out/Applications + '' else null; + + postInstall = lib.optionalString buildStdenv.isLinux '' + # Remove SDK cruft. FIXME: move to a separate output? + rm -rf $out/share/idl $out/include $out/lib/${binaryName}-devel-* + + # Needed to find Mozilla runtime + gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped") + ''; + + doInstallCheck = true; + installCheckPhase = '' + # Some basic testing + "$out${execdir}/${browserName}" --version + ''; + + passthru = { + inherit updateScript; + version = ffversion; + isFirefox3Like = true; + gtk = gtk2; + inherit alsaSupport; + inherit pipewireSupport; + inherit nspr; + inherit ffmpegSupport; + inherit gssSupport; + inherit execdir; + inherit browserName; + inherit tests; + } // lib.optionalAttrs gtk3Support { inherit gtk3; }; + + hardeningDisable = [ "format" ]; # -Werror=format-security + + # the build system verifies checksums of the bundled rust sources + # ./third_party/rust is be patched by our libtool fixup code in stdenv + # unfortunately we can't just set this to `false` when we do not want it. + # See https://github.com/NixOS/nixpkgs/issues/77289 for more details + # Ideally we would figure out how to tell the build system to not + # care about changed hashes as we are already doing that when we + # fetch the sources. Any further modifications of the source tree + # is on purpose by some of our tool (or by accident and a bug?). + dontFixLibtool = true; + + # on aarch64 this is also required + dontUpdateAutotoolsGnuConfigScripts = true; + + requiredSystemFeatures = [ "big-parallel" ]; +}) diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch new file mode 100644 index 000000000000..18d31356989a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff85.patch @@ -0,0 +1,6 @@ +--- a/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:00:14.157543388 +0100 ++++ b/toolkit/xre/nsXREDirProvider.cpp 2019-02-28 21:01:28.731128320 +0100 +@@ -302 +302,2 @@ +- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir)); ++ const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR"); ++ rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast<const nsCString&>(dirname), false, getter_AddRefs(localDir)); diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch new file mode 100644 index 000000000000..f7a9cb773455 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir-ff86.patch @@ -0,0 +1,21 @@ +diff -r 22fc47c968f2 toolkit/xre/nsXREDirProvider.cpp +--- a/toolkit/xre/nsXREDirProvider.cpp Mon Dec 14 15:09:17 2020 +0000 ++++ b/toolkit/xre/nsXREDirProvider.cpp Tue Feb 23 23:38:56 2021 +0100 +@@ -11,6 +11,7 @@ + + #include "jsapi.h" + #include "xpcpublic.h" ++#include "prenv.h" + + #include "nsIAppStartup.h" + #include "nsIFile.h" +@@ -305,7 +306,8 @@ + "/usr/lib/mozilla"_ns + # endif + ; +- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir)); ++ const char* pathVar = PR_GetEnv("MOZ_SYSTEM_DIR"); ++ rv = NS_NewNativeLocalFile((pathVar && *pathVar) ? nsDependentCString(pathVar) : reinterpret_cast<const nsCString&>(dirname), false, getter_AddRefs(localDir)); + # endif + + if (NS_SUCCEEDED(rv)) { diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch new file mode 100644 index 000000000000..b6f1b81fa9fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/lto-dependentlibs-generation-ffx83.patch @@ -0,0 +1,45 @@ +--- a/toolkit/library/build/dependentlibs.py ++++ b/toolkit/library/build/dependentlibs.py +@@ -36,26 +36,17 @@ def dependentlibs_win32_objdump(lib): + proc.wait() + return deps + +-def dependentlibs_readelf(lib): ++def dependentlibs_elf_objdump(lib): + '''Returns the list of dependencies declared in the given ELF .so''' +- proc = subprocess.Popen([substs.get('TOOLCHAIN_PREFIX', '') + 'readelf', '-d', lib], stdout = subprocess.PIPE, ++ proc = subprocess.Popen([substs['LLVM_OBJDUMP'], '--private-headers', lib], stdout = subprocess.PIPE, + universal_newlines=True) + deps = [] + for line in proc.stdout: +- # Each line has the following format: +- # tag (TYPE) value +- # or with BSD readelf: +- # tag TYPE value +- # Looking for NEEDED type entries +- tmp = line.split(' ', 3) +- if len(tmp) > 3 and 'NEEDED' in tmp[2]: +- # NEEDED lines look like: +- # 0x00000001 (NEEDED) Shared library: [libname] +- # or with BSD readelf: +- # 0x00000001 NEEDED Shared library: [libname] +- match = re.search('\[(.*)\]', tmp[3]) +- if match: +- deps.append(match.group(1)) ++ # We are looking for lines with the format: ++ # NEEDED libname ++ tmp = line.split() ++ if len(tmp) == 2 and tmp[0] == 'NEEDED': ++ deps.append(tmp[1]) + proc.wait() + return deps + +@@ -110,7 +101,7 @@ def gen_list(output, lib): + libpaths = [os.path.join(substs['DIST'], 'bin')] + binary_type = get_type(lib) + if binary_type == ELF: +- func = dependentlibs_readelf ++ func = dependentlibs_elf_objdump + elif binary_type == MACHO: + func = dependentlibs_mac_objdump + else: diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch new file mode 100644 index 000000000000..3530954ea5c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx76.patch @@ -0,0 +1,24 @@ +Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies. +diff -ur firefox-65.0-orig/docshell/base/nsAboutRedirector.cpp firefox-65.0/docshell/base/nsAboutRedirector.cpp +--- firefox-76.0.orig/docshell/base/nsAboutRedirector.cpp 2020-05-03 19:01:29.926544735 +0200 ++++ firefox-76.0/docshell/base/nsAboutRedirector.cpp 2020-05-03 19:12:00.845035570 +0200 +@@ -62,8 +62,6 @@ + {"about", "chrome://global/content/aboutAbout.html", 0}, + {"addons", "chrome://mozapps/content/extensions/extensions.xhtml", + nsIAboutModule::ALLOW_SCRIPT}, +- {"buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, + {"checkerboard", "chrome://global/content/aboutCheckerboard.html", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT}, +diff -ur firefox-65.0-orig/toolkit/content/jar.mn firefox-65.0/toolkit/content/jar.mn +--- firefox-65.0-orig/toolkit/content/jar.mn 2019-01-23 00:48:35.033372506 +0100 ++++ firefox-65.0/toolkit/content/jar.mn 2019-01-23 00:50:45.126565924 +0100 +@@ -36,7 +36,6 @@ + content/global/plugins.css + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch new file mode 100644 index 000000000000..c4187fcda39e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch @@ -0,0 +1,25 @@ +diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp +index 10ac77b..0125d9b 100644 +--- a/docshell/base/nsAboutRedirector.cpp ++++ b/docshell/base/nsAboutRedirector.cpp +@@ -63,8 +63,6 @@ static const RedirEntry kRedirMap[] = { + {"about", "chrome://global/content/aboutAbout.html", 0}, + {"addons", "chrome://mozapps/content/extensions/extensions.xhtml", + nsIAboutModule::ALLOW_SCRIPT}, +- {"buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, + {"checkerboard", "chrome://global/content/aboutCheckerboard.html", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT}, +diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn +index c83b3e2..d543140 100644 +--- a/toolkit/content/jar.mn ++++ b/toolkit/content/jar.mn +@@ -40,7 +40,6 @@ toolkit.jar: + content/global/plugins.css + content/global/plugins.js + content/global/browser-child.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix new file mode 100644 index 000000000000..c190b7fa625a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix @@ -0,0 +1,76 @@ +{ stdenv, lib, callPackage, fetchurl, fetchpatch, nixosTests, firefoxCommon }: + +rec { + firefox = firefoxCommon rec { + pname = "firefox"; + ffversion = "89.0.2"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "ffd98ab0887611c5b4aba68346c49a7a31a58150fd8bbae610a4d941c4cff0acef0daaebfbb577787a759b4c1ef3c1199f02681148612f4f5b709983e07e0ccb"; + }; + + meta = { + description = "A web browser built from Firefox source tree"; + homepage = "http://www.mozilla.com/en-US/firefox/"; + maintainers = with lib.maintainers; [ eelco lovesegfault hexa ]; + platforms = lib.platforms.unix; + badPlatforms = lib.platforms.darwin; + broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". + # not in `badPlatforms` because cross-compilation on 64-bit machine might work. + license = lib.licenses.mpl20; + }; + tests = [ nixosTests.firefox ]; + updateScript = callPackage ./update.nix { + attrPath = "firefox-unwrapped"; + versionKey = "ffversion"; + }; + }; + + firefox-esr-78 = firefoxCommon rec { + pname = "firefox-esr"; + ffversion = "78.11.0esr"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4"; + }; + + meta = { + description = "A web browser built from Firefox Extended Support Release source tree"; + homepage = "http://www.mozilla.com/en-US/firefox/"; + maintainers = with lib.maintainers; [ eelco hexa ]; + platforms = lib.platforms.unix; + badPlatforms = lib.platforms.darwin; + broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory". + # not in `badPlatforms` because cross-compilation on 64-bit machine might work. + license = lib.licenses.mpl20; + }; + tests = [ nixosTests.firefox-esr ]; + updateScript = callPackage ./update.nix { + attrPath = "firefox-esr-78-unwrapped"; + versionSuffix = "esr"; + versionKey = "ffversion"; + }; + }; + + firefox-beta = (firefoxCommon rec { + pname = "firefox"; + ffversion = "83.0b10"; + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz"; + sha512 = "1div55x8c9qw8ck7njpf1c9kl1l0hi6fn8gnrj2irbiwhvl5cfxqp84sn7yq9saj46wzicxmczn32w3a1vs5xzjfp454zggg8wllhcx"; + }; + + patches = [ + ./no-buildconfig-ffx76.patch + ]; + + meta = firefox.meta // { + description = "A web browser built from Firefox Beta source tree"; + }; + updateScript = callPackage ./update.nix { + attrPath = "firefox-beta"; + versionKey = "ffversion"; + }; + }).override { pipewireSupport = false; }; + +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix new file mode 100644 index 000000000000..bbfd17d1fea8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix @@ -0,0 +1,47 @@ +{ writeScript +, lib +, xidel +, common-updater-scripts +, coreutils +, gnused +, gnugrep +, curl +, gnupg +, attrPath +, runtimeShell +, baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/" +, versionSuffix ? "" +, versionKey ? "version" +}: + +writeScript "update-${attrPath}" '' + #!${runtimeShell} + PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnupg gnused xidel ]} + + set -eux + HOME=`mktemp -d` + export GNUPGHOME=`mktemp -d` + gpg --receive-keys 14F26682D0916CDD81E37B6D61B7B526D98F0353 + + url=${baseUrl} + + # retriving latest released version + # - extracts all links from the $url + # - extracts lines only with number and dots followed by a slash + # - removes trailing slash + # - sorts everything with semver in mind + # - picks up latest release + version=`xidel -s $url --extract "//a" | \ + grep "^[0-9.]*${versionSuffix}/$" | \ + sed s/[/]$// | \ + sort --version-sort | \ + tail -n 1` + + curl --silent --show-error -o "$HOME"/shasums "$url$version/SHA512SUMS" + curl --silent --show-error -o "$HOME"/shasums.asc "$url$version/SHA512SUMS.asc" + gpgv --keyring="$GNUPGHOME"/pubring.kbx "$HOME"/shasums.asc "$HOME"/shasums + + hash=$(grep '\.source\.tar\.xz$' "$HOME"/shasums | grep '^[^ ]*' -o) + + update-source-version ${attrPath} "$version" "$hash" "" --version-key=${versionKey} +'' diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix new file mode 100644 index 000000000000..f2fa787c17c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -0,0 +1,355 @@ +{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config +, replace, fetchurl, zip, unzip, jq, xdg-utils, writeText + +## various stuff that can be plugged in +, ffmpeg, xorg, alsa-lib, libpulseaudio, libcanberra-gtk2, libglvnd, libnotify +, gnome/*.gnome-shell*/ +, browserpass, chrome-gnome-shell, uget-integrator, plasma5Packages, bukubrow, pipewire +, tridactyl-native +, fx_cast_bridge +, udev +, libkrb5 +, libva +, mesa # firefox wants gbm for drm+dmabuf +, cups +}: + +## configurability of the wrapper itself + +browser: + +let + wrapper = + { browserName ? browser.browserName or (lib.getName browser) + , pname ? browserName + , version ? lib.getVersion browser + , desktopName ? # browserName with first letter capitalized + (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName) + , nameSuffix ? "" + , icon ? browserName + , extraNativeMessagingHosts ? [] + , pkcs11Modules ? [] + , forceWayland ? false + , useGlvnd ? true + , cfg ? config.${browserName} or {} + + ## Following options are needed for extra prefs & policies + # For more information about anti tracking (german website) + # visit https://wiki.kairaven.de/open/app/firefox + , extraPrefs ? "" + # For more information about policies visit + # https://github.com/mozilla/policy-templates#enterprisepoliciesenabled + , extraPolicies ? {} + , firefoxLibName ? "firefox" # Important for tor package or the like + , nixExtensions ? null + }: + + assert forceWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used + + let + ffmpegSupport = browser.ffmpegSupport or false; + gssSupport = browser.gssSupport or false; + alsaSupport = browser.alsaSupport or false; + pipewireSupport = browser.pipewireSupport or false; + + nativeMessagingHosts = + ([ ] + ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass) + ++ lib.optional (cfg.enableBukubrow or false) bukubrow + ++ lib.optional (cfg.enableTridactylNative or false) tridactyl-native + ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell + ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator + ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma5Packages.plasma-browser-integration + ++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge + ++ extraNativeMessagingHosts + ); + libs = lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver cups ] + ++ lib.optional (pipewireSupport && lib.versionAtLeast version "83") pipewire + ++ lib.optional ffmpegSupport ffmpeg + ++ lib.optional gssSupport libkrb5 + ++ lib.optional useGlvnd libglvnd + ++ lib.optionals (cfg.enableQuakeLive or false) + (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsa-lib zlib ]) + ++ lib.optional (config.pulseaudio or true) libpulseaudio + ++ lib.optional alsaSupport alsa-lib + ++ pkcs11Modules; + gtk_modules = [ libcanberra-gtk2 ]; + + ######################### + # # + # EXTRA PREF CHANGES # + # # + ######################### + policiesJson = writeText "policies.json" (builtins.toJSON enterprisePolicies); + + usesNixExtensions = nixExtensions != null; + + nameArray = builtins.map(a: a.name) (if usesNixExtensions then nixExtensions else []); + + # Check that every extension has a unqiue .name attribute + # and an extid attribute + extensions = if nameArray != (lib.unique nameArray) then + throw "Firefox addon name needs to be unique" + else builtins.map (a: + if ! (builtins.hasAttr "extid" a) then + throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon" + else + a + ) (if usesNixExtensions then nixExtensions else []); + + enterprisePolicies = + { + policies = lib.optionalAttrs usesNixExtensions { + DisableAppUpdate = true; + } // + lib.optionalAttrs usesNixExtensions { + ExtensionSettings = { + "*" = { + blocked_install_message = "You can't have manual extension mixed with nix extensions"; + installation_mode = "blocked"; + }; + + } // lib.foldr (e: ret: + ret // { + "${e.extid}" = { + installation_mode = "allowed"; + }; + } + ) {} extensions; + } // lib.optionalAttrs usesNixExtensions { + Extensions = { + Install = lib.foldr (e: ret: + ret ++ [ "${e.outPath}/${e.extid}.xpi" ] + ) [] extensions; + }; + } + // extraPolicies; + }; + + mozillaCfg = writeText "mozilla.cfg" '' + // First line must be a comment + + // Disables addon signature checking + // to be able to install addons that do not have an extid + // Security is maintained because only user whitelisted addons + // with a checksum can be installed + ${ lib.optionalString usesNixExtensions ''lockPref("xpinstall.signatures.required", false)'' }; + ${extraPrefs} + ''; + + ############################# + # # + # END EXTRA PREF CHANGES # + # # + ############################# + + # TODO: remove this after the next release (21.03) + configPlugins = lib.filter (a: builtins.hasAttr a cfg) [ + "enableAdobeFlash" + "enableAdobeReader" + "enableBluejeans" + "enableDjvu" + "enableFriBIDPlugin" + "enableGoogleTalkPlugin" + "enableMPlayer" + "enableVLC" + "icedtea" + "jre" + ]; + pluginsError = + "Your configuration mentions ${lib.concatMapStringsSep ", " (p: browserName + "." + p) configPlugins}. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins)."; + + in if configPlugins != [] then throw pluginsError else + (stdenv.mkDerivation { + inherit pname version; + + desktopItem = makeDesktopItem { + name = browserName; + exec = "${browserName}${nameSuffix} %U"; + inherit icon; + comment = ""; + desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}"; + genericName = "Web Browser"; + categories = "Network;WebBrowser;"; + mimeType = lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + "x-scheme-handler/ftp" + ]; + }; + + nativeBuildInputs = [ makeWrapper lndir ]; + buildInputs = lib.optional (browser ? gtk3) browser.gtk3; + + + buildCommand = lib.optionalString stdenv.isDarwin '' + mkdir -p $out/Applications + cp -R --no-preserve=mode,ownership ${browser}/Applications/${browserName}.app $out/Applications + rm -f $out${browser.execdir or "/bin"}/${browserName} + '' + '' + if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] + then + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + exit 1 + fi + + ######################### + # # + # EXTRA PREF CHANGES # + # # + ######################### + # Link the runtime. The executable itself has to be copied, + # because it will resolve paths relative to its true location. + # Any symbolic links have to be replicated as well. + cd "${browser}" + find . -type d -exec mkdir -p "$out"/{} \; + + find . -type f \( -not -name "${browserName}" \) -exec ln -sT "${browser}"/{} "$out"/{} \; + + find . -type f -name "${browserName}" -print0 | while read -d $'\0' f; do + cp -P --no-preserve=mode,ownership "${browser}/$f" "$out/$f" + chmod a+rwx "$out/$f" + done + + # fix links and absolute references + cd "${browser}" + + find . -type l -print0 | while read -d $'\0' l; do + target="$(readlink "$l" | ${replace}/bin/replace-literal -es -- "${browser}" "$out")" + ln -sfT "$target" "$out/$l" + done + + # This will not patch binaries, only "text" files. + # Its there for the wrapper mostly. + cd "$out" + ${replace}/bin/replace-literal -esfR -- "${browser}" "$out" + + # create the wrapper + + executablePrefix="$out${browser.execdir or "/bin"}" + executablePath="$executablePrefix/${browserName}" + + if [ ! -x "$executablePath" ] + then + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + exit 1 + fi + + if [ ! -L "$executablePath" ] + then + # Careful here, the file at executablePath may already be + # a wrapper. That is why we postfix it with -old instead + # of -wrapped. + oldExe="$executablePrefix"/".${browserName}"-old + mv "$executablePath" "$oldExe" + else + oldExe="$(readlink -v --canonicalize-existing "$executablePath")" + fi + + if [ ! -x "${browser}${browser.execdir or "/bin"}/${browserName}" ] + then + echo "cannot find executable file \`${browser}${browser.execdir or "/bin"}/${browserName}'" + exit 1 + fi + + makeWrapper "$oldExe" \ + "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \ + --prefix LD_LIBRARY_PATH ':' "$libs" \ + --suffix-each GTK_PATH ':' "$gtk_modules" \ + --prefix PATH ':' "${xdg-utils}/bin" \ + --suffix PATH ':' "$out${browser.execdir or "/bin"}" \ + --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \ + --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \ + --set MOZ_LEGACY_PROFILES 1 \ + --set MOZ_ALLOW_DOWNGRADE 1 \ + ${lib.optionalString forceWayland '' + --set MOZ_ENABLE_WAYLAND "1" \ + ''}${lib.optionalString (browser ? gtk3) + ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --suffix XDG_DATA_DIRS : '${gnome.adwaita-icon-theme}/share' + '' + } + ############################# + # # + # END EXTRA PREF CHANGES # + # # + ############################# + + if [ -e "${browser}/share/icons" ]; then + mkdir -p "$out/share" + ln -s "${browser}/share/icons" "$out/share/icons" + else + for res in 16 32 48 64 128; do + mkdir -p "$out/share/icons/hicolor/''${res}x''${res}/apps" + icon=( "${browser}/lib/"*"/browser/chrome/icons/default/default''${res}.png" ) + if [ -e "$icon" ]; then ln -s "$icon" \ + "$out/share/icons/hicolor/''${res}x''${res}/apps/${browserName}.png" + fi + done + fi + + install -D -t $out/share/applications $desktopItem/share/applications/* + + mkdir -p $out/lib/mozilla/native-messaging-hosts + for ext in ${toString nativeMessagingHosts}; do + ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/* + done + + mkdir -p $out/lib/mozilla/pkcs11-modules + for ext in ${toString pkcs11Modules}; do + ln -sLt $out/lib/mozilla/pkcs11-modules $ext/lib/mozilla/pkcs11-modules/* + done + + + ######################### + # # + # EXTRA PREF CHANGES # + # # + ######################### + # user customization + mkdir -p $out/lib/${firefoxLibName} + + # creating policies.json + mkdir -p "$out/lib/${firefoxLibName}/distribution" + + POL_PATH="$out/lib/${firefoxLibName}/distribution/policies.json" + rm -f "$POL_PATH" + cat ${policiesJson} >> "$POL_PATH" + + # preparing for autoconfig + mkdir -p "$out/lib/${firefoxLibName}/defaults/pref" + + echo 'pref("general.config.filename", "mozilla.cfg");' > "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" + echo 'pref("general.config.obscure_value", 0);' >> "$out/lib/${firefoxLibName}/defaults/pref/autoconfig.js" + + cat > "$out/lib/${firefoxLibName}/mozilla.cfg" < ${mozillaCfg} + + mkdir -p $out/lib/${firefoxLibName}/distribution/extensions + + ############################# + # # + # END EXTRA PREF CHANGES # + # # + ############################# + ''; + + preferLocalBuild = true; + + libs = lib.makeLibraryPath libs + ":" + lib.makeSearchPathOutput "lib" "lib64" libs; + gtk_modules = map (x: x + x.gtkModule) gtk_modules; + + passthru = { unwrapped = browser; }; + + disallowedRequisites = [ stdenv.cc ]; + + meta = browser.meta // { + description = browser.meta.description; + hydraPlatforms = []; + priority = (browser.meta.priority or 0) - 1; # prefer wrapper over the package + }; + }); +in lib.makeOverridable wrapper diff --git a/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix b/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix new file mode 100644 index 000000000000..7baca62e6732 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/gmni/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, fetchFromSourcehut, pkg-config, bearssl, scdoc }: + +stdenv.mkDerivation rec { + pname = "gmni"; + version = "unstable-2021-03-26"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "gmni"; + rev = "77b73efbcd3ea7ed9e3e4c0aa19d9247e21d3c87"; + sha256 = "1wvnzyv7vyddcd39y6q5aflpnnsdl4k4y5aj5ssb7vgkld0h1b7r"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ bearssl scdoc ]; + + meta = with lib; { + description = "A Gemini client"; + homepage = "https://git.sr.ht/~sircmpwn/gmni"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ bsima jb55 ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix new file mode 100644 index 000000000000..ec03a77d2680 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -0,0 +1,168 @@ +{ lib, stdenv, patchelf, makeWrapper + +# Linked dynamic libraries. +, glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr +, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb +, alsa-lib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups +, dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core +, libkrb5, libdrm, mesa +, libxkbcommon, wayland # ozone/wayland + +# Command line programs +, coreutils + +# command line arguments which are always set e.g "--disable-gpu" +, commandLineArgs ? "" + +# Will crash without. +, systemd + +# Loaded at runtime. +, libexif + +# Additional dependencies according to other distros. +## Ubuntu +, liberation_ttf, curl, util-linux, xdg-utils, wget +## Arch Linux. +, flac, harfbuzz, icu, libpng, libopus, snappy, speechd +## Gentoo +, bzip2, libcap + +# Which distribution channel to use. +, channel ? "stable" + +# Necessary for USB audio devices. +, pulseSupport ? true, libpulseaudio ? null + +# Only needed for getting information about upstream binaries +, chromium + +, gsettings-desktop-schemas +, gnome + +# For video acceleration via VA-API (--enable-features=VaapiVideoDecoder) +, libvaSupport ? true, libva + +# For Vulkan support (--enable-features=Vulkan) +, vulkanSupport ? true, vulkan-loader +}: + +with lib; + +let + opusWithCustomModes = libopus.override { + withCustomModes = true; + }; + + version = chromium.upstream-info.version; + + deps = [ + glib fontconfig freetype pango cairo libX11 libXi atk gconf nss nspr + libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite libxcb + alsa-lib libXdamage libXtst libXrandr libxshmfence expat cups + dbus gdk-pixbuf gcc-unwrapped.lib + systemd + libexif + liberation_ttf curl util-linux xdg-utils wget + flac harfbuzz icu libpng opusWithCustomModes snappy speechd + bzip2 libcap at-spi2-atk at-spi2-core + libkrb5 libdrm mesa coreutils + libxkbcommon wayland + ] ++ optional pulseSupport libpulseaudio + ++ optional libvaSupport libva + ++ optional vulkanSupport vulkan-loader + ++ [ gtk3 ]; + + suffix = if channel != "stable" then "-" + channel else ""; + +in stdenv.mkDerivation { + inherit version; + + name = "google-chrome${suffix}-${version}"; + + src = chromium.chromeSrc; + + nativeBuildInputs = [ patchelf makeWrapper ]; + buildInputs = [ + # needed for GSETTINGS_SCHEMAS_PATH + gsettings-desktop-schemas glib gtk3 + + # needed for XDG_ICON_DIRS + gnome.adwaita-icon-theme + ]; + + unpackPhase = '' + ar x $src + tar xf data.tar.xz + ''; + + rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps; + binpath = makeBinPath deps; + + installPhase = '' + case ${channel} in + beta) appname=chrome-beta dist=beta ;; + dev) appname=chrome-unstable dist=unstable ;; + *) appname=chrome dist=stable ;; + esac + + exe=$out/bin/google-chrome-$dist + + mkdir -p $out/bin $out/share + + cp -a opt/* $out/share + cp -a usr/share/* $out/share + + # To fix --use-gl=egl: + test -e $out/share/google/$appname/libEGL.so + ln -s libEGL.so $out/share/google/$appname/libEGL.so.1 + test -e $out/share/google/$appname/libGLESv2.so + ln -s libGLESv2.so $out/share/google/$appname/libGLESv2.so.2 + + substituteInPlace $out/share/applications/google-$appname.desktop \ + --replace /usr/bin/google-chrome-$dist $exe + substituteInPlace $out/share/gnome-control-center/default-apps/google-$appname.xml \ + --replace /opt/google/$appname/google-$appname $exe + substituteInPlace $out/share/menu/google-$appname.menu \ + --replace /opt $out/share \ + --replace $out/share/google/$appname/google-$appname $exe + + for icon_file in $out/share/google/chrome*/product_logo_[0-9]*.png; do + num_and_suffix="''${icon_file##*logo_}" + if [ $dist = "stable" ]; then + icon_size="''${num_and_suffix%.*}" + else + icon_size="''${num_and_suffix%_*}" + fi + logo_output_prefix="$out/share/icons/hicolor" + logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps" + mkdir -p "$logo_output_path" + mv "$icon_file" "$logo_output_path/google-$appname.png" + done + + makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \ + --prefix LD_LIBRARY_PATH : "$rpath" \ + --prefix PATH : "$binpath" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --add-flags ${escapeShellArg commandLineArgs} + + for elf in $out/share/google/$appname/{chrome,chrome-sandbox,crashpad_handler,nacl_helper}; do + patchelf --set-rpath $rpath $elf + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf + done + ''; + + meta = { + description = "A freeware web browser developed by Google"; + homepage = "https://www.google.com/chrome/browser/"; + license = licenses.unfree; + maintainers = with maintainers; [ primeos ]; + # Note from primeos: By updating Chromium I also update Google Chrome and + # will try to merge PRs and respond to issues but I'm not actually using + # Google Chrome. + platforms = [ "x86_64-linux" ]; + mainProgram = + if (channel == "dev") then "google-chrome-unstable" + else "google-chrome-${channel}"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix b/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix new file mode 100644 index 000000000000..4028f8622c3c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix @@ -0,0 +1,31 @@ +{ lib, mkDerivation, fetchFromGitHub, qtbase, qtmultimedia }: + +mkDerivation rec { + pname = "kristall"; + version = "0.3"; + src = fetchFromGitHub { + owner = "MasterQ32"; + repo = "kristall"; + rev = "V" + version; + sha256 = "07nf7w6ilzs5g6isnvsmhh4qa1zsprgjyf0zy7rhpx4ikkj8c8zq"; + }; + + buildInputs = [ qtbase qtmultimedia ]; + + qmakeFlags = [ "src/kristall.pro" ]; + + installPhase = '' + install -Dt $out/bin kristall + install -D Kristall.desktop $out/share/applications/net.random-projects.kristall.desktop + ''; + + meta = with lib; + src.meta // { + description = + "Graphical small-internet client, supports gemini, http, https, gopher, finger"; + homepage = "https://random-projects.net/projects/kristall.gemini"; + maintainers = with maintainers; [ ehmry ]; + license = licenses.gpl3; + inherit (qtmultimedia.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix new file mode 100644 index 000000000000..f15cf6c81b46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/lagrange/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, nix-update-script +, cmake +, pkg-config +, libunistring +, mpg123 +, openssl +, pcre +, SDL2 +, AppKit +, zlib +}: + +stdenv.mkDerivation rec { + pname = "lagrange"; + version = "1.5.2"; + + src = fetchFromGitHub { + owner = "skyjake"; + repo = "lagrange"; + rev = "v${version}"; + sha256 = "sha256-NjiTjY2YuxUs/Wny7aDqHGw/2ML1fenjHrl089rLXFI="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = [ libunistring mpg123 openssl pcre SDL2 zlib ] + ++ lib.optional stdenv.isDarwin AppKit; + + hardeningDisable = lib.optional (!stdenv.cc.isClang) "format"; + + installPhase = if stdenv.isDarwin then '' + mkdir -p $out/Applications + mv Lagrange.app $out/Applications + '' else null; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A Beautiful Gemini Client"; + homepage = "https://gmi.skyjake.fi/lagrange/"; + license = licenses.bsd2; + maintainers = with maintainers; [ sikmir ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix new file mode 100644 index 000000000000..81555fa63411 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl +, gpm, openssl, pkg-config, libev # Misc. +, libpng, libjpeg, libtiff, librsvg # graphic formats +, bzip2, zlib, xz # Transfer encodings +, enableFB ? true +, enableDirectFB ? false, directfb +, enableX11 ? true, libX11, libXt, libXau # GUI support +}: + +stdenv.mkDerivation rec { + version = "2.23"; + pname = "links2"; + + src = fetchurl { + url = "${meta.homepage}/download/links-${version}.tar.bz2"; + sha256 = "sha256-ZmDSAvUh/Ri/UYTD8XMtH6dCahAzdCd60c245XzmrEU="; + }; + + buildInputs = with lib; + [ libev librsvg libpng libjpeg libtiff openssl xz bzip2 zlib ] + ++ optionals stdenv.isLinux [ gpm ] + ++ optionals enableX11 [ libX11 libXau libXt ] + ++ optional enableDirectFB [ directfb ]; + + nativeBuildInputs = [ pkg-config bzip2 ]; + + configureFlags = [ "--with-ssl" ] + ++ lib.optional (enableX11 || enableFB || enableDirectFB) "--enable-graphics" + ++ lib.optional enableX11 "--with-x" + ++ lib.optional enableFB "--with-fb" + ++ lib.optional enableDirectFB "--with-directfb"; + + meta = with lib; { + homepage = "http://links.twibright.com/"; + description = "A small browser with some graphics support"; + maintainers = with maintainers; [ raskin ]; + license = licenses.gpl2Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix new file mode 100644 index 000000000000..8656b4aaa276 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix @@ -0,0 +1,90 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, wrapGAppsHook +, help2man +, glib-networking +, gst_all_1 +, gtk3 +, luafilesystem +, luajit +, sqlite +, webkitgtk +}: + +stdenv.mkDerivation rec { + pname = "luakit"; + version = "2.3"; + + src = fetchFromGitHub { + owner = "luakit"; + repo = pname; + rev = version; + hash = "sha256-5YeJkbWk1wHxWXqWOvhEDeScWPU/aRVhuOWRHLSHVZM="; + }; + + nativeBuildInputs = [ + pkg-config + help2man + wrapGAppsHook + ]; + buildInputs = [ + gtk3 + glib-networking # TLS support + luafilesystem + luajit + sqlite + webkitgtk + ] ++ ( with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + gst-libav + ]); + + + # build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found + # TODO: why is not this the default? The test runner adds + # ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils + # scripts don't add an equivalent + preBuild = '' + export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua" + ''; + + makeFlags = [ + "DEVELOPMENT_PATHS=0" + "USE_LUAJIT=1" + "INSTALLDIR=${placeholder "out"}" + "PREFIX=${placeholder "out"}" + "USE_GTK3=1" + "XDGPREFIX=${placeholder "out"}/etc/xdg" + ]; + + preFixup = let + luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua"; + in '' + gappsWrapperArgs+=( + --prefix XDG_CONFIG_DIRS : "$out/etc/xdg" + --prefix LUA_PATH ';' "${luaKitPath};$LUA_PATH" + --prefix LUA_CPATH ';' "$LUA_CPATH" + ) + ''; + + meta = with lib; { + homepage = "https://luakit.github.io/"; + description = "Fast, small, webkit-based browser framework extensible in Lua"; + longDescription = '' + Luakit is a highly configurable browser framework based on the WebKit web + content engine and the GTK+ toolkit. It is very fast, extensible with Lua, + and licensed under the GNU GPLv3 license. It is primarily targeted at + power users, developers and anyone who wants to have fine-grained control + over their web browser’s behaviour and interface. + ''; + license = licenses.gpl3Only; + maintainers = [ maintainers.AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix new file mode 100644 index 000000000000..713f934f7789 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, buildPackages +, fetchurl, pkg-config, ncurses, gzip +, sslSupport ? true, openssl ? null +, nukeReferences +}: + +assert sslSupport -> openssl != null; + +stdenv.mkDerivation rec { + pname = "lynx"; + version = "2.8.9rel.1"; + + src = fetchurl { + urls = [ + "ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2" + "https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2" + ]; + sha256 = "15cmyyma2kz1hfaa6mwjgli8zwdzq3jv0q2cl6nwzycjfwyijzrq"; + }; + + enableParallelBuilding = true; + + hardeningEnable = [ "pie" ]; + + configureFlags = [ + "--enable-default-colors" + "--enable-widec" + "--enable-ipv6" + ] ++ lib.optional sslSupport "--with-ssl"; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ nukeReferences ] + ++ lib.optional sslSupport pkg-config; + + buildInputs = [ ncurses gzip ] ++ lib.optional sslSupport openssl.dev; + + # cfg_defs.h captures lots of references to build-only dependencies, derived + # from config.cache. + postConfigure = '' + make cfg_defs.h + nuke-refs cfg_defs.h + ''; + + meta = with lib; { + description = "A text-mode web browser"; + homepage = "https://lynx.invisible-island.net/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix new file mode 100644 index 000000000000..3362948e98ab --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix @@ -0,0 +1,59 @@ +{ lib, stdenv +, fetchurl +, cmake +, ninja +, pkg-config +, intltool +, vala +, wrapGAppsHook +, gcr +, libpeas +, gtk3 +, webkitgtk +, sqlite +, gsettings-desktop-schemas +, libsoup +, glib-networking +, json-glib +, libarchive +}: + +stdenv.mkDerivation rec { + pname = "midori"; + version = "9.0"; + + src = fetchurl { + url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.tar.gz"; + sha256 = "05i04qa83dnarmgkx4xsk6fga5lw1lmslh4rb3vhyyy4ala562jy"; + }; + + nativeBuildInputs = [ + cmake + intltool + ninja + pkg-config + vala + wrapGAppsHook + ]; + + buildInputs = [ + (libsoup.override { gnomeSupport = true; }) + gcr + glib-networking + gsettings-desktop-schemas + gtk3 + libpeas + sqlite + webkitgtk + json-glib + libarchive + ]; + + meta = with lib; { + description = "Lightweight WebKitGTK web browser"; + homepage = "https://www.midori-browser.org/"; + license = with licenses; [ lgpl21Plus ]; + platforms = with platforms; linux; + maintainers = with maintainers; [ raskin ramkromberg ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix new file mode 100644 index 000000000000..db4940093b30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix @@ -0,0 +1,83 @@ +{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, wrapGAppsHook + +# Buildtime dependencies. +, check, pkg-config, xxd + +# Runtime dependencies. +, curl, expat, libXcursor, libXrandr, libidn, libjpeg, libpng, libwebp, libxml2 +, openssl, perl, perlPackages + +# uilib-specific dependencies +, gtk2 # GTK 2 +, gtk3 # GTK 3 +, SDL # Framebuffer + +# Configuration +, uilib + +# Netsurf-specific dependencies +, libcss, libdom, libhubbub, libnsbmp, libnsfb, libnsgif +, libnslog, libnspsl, libnsutils, libparserutils, libsvgtiny, libutf8proc +, libwapcaplet, nsgenbind +}: + +let + inherit (lib) optional optionals; +in +stdenv.mkDerivation rec { + pname = "netsurf"; + version = "3.10"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/netsurf/releases/source/${pname}-${version}-src.tar.gz"; + sha256 = "sha256-NkhEKeGTYUaFwv8kb1W9Cm3d8xoBi+5F4NH3wohRmV4="; + }; + + nativeBuildInputs = [ + makeWrapper + perl + perlPackages.HTMLParser + pkg-config + xxd + ] + ++ optional (uilib == "gtk2" || uilib == "gtk3") wrapGAppsHook + ; + + buildInputs = [ + check curl libXcursor libXrandr libidn libjpeg libpng libwebp libxml2 openssl + # Netsurf-specific libraries + nsgenbind libnsfb libwapcaplet libparserutils libnslog libcss + libhubbub libdom libnsbmp libnsgif libsvgtiny libnsutils libnspsl + libutf8proc + ] + ++ optionals (uilib == "framebuffer") [ expat SDL ] + ++ optional (uilib == "gtk2") gtk2 + ++ optional (uilib == "gtk3") gtk3 + ; + + preConfigure = '' + cat <<EOF > Makefile.conf + override NETSURF_GTK_RES_PATH := $out/share/ + override NETSURF_USE_GRESOURCE := YES + EOF + ''; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "TARGET=${uilib}" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/"; + description = "A free, open source, small web browser"; + longDescription = '' + NetSurf is a free, open source web browser. It is written in C and + released under the GNU Public Licence version 2. NetSurf has its own + layout and rendering engine entirely written from scratch. It is small and + capable of handling many of the web standards in use today. + ''; + license = licenses.gpl2Only; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix new file mode 100644 index 000000000000..4956c70655a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/buildsystem.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "buildsystem"; + version = "1.9"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}.tar.gz"; + sha256 = "sha256-k4QeMUpoggmiC4dF8GU5PzqQ8Bvmj0Xpa8jS9KKqmio="; + }; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/"; + description = "NetSurf browser shared build system"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix new file mode 100644 index 000000000000..409ab80ce3ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/default.nix @@ -0,0 +1,36 @@ +{ lib, pkgs }: + +lib.makeScope pkgs.newScope (self: with self; { + # ui can be: gtk2, gtk3, sixel, framebuffer. Note that console display (sixel) + # requires a terminal that supports `sixel` capabilities, such as mlterm + # or xterm -ti 340 + ui = "gtk3"; + uilib = + if ui == "gtk2" || + ui == "gtk3" || + ui == "framebuffer" then ui + else if ui == "sixel" then "framebuffer" + else null; # Never will happen + SDL = + if ui == "sixel" then pkgs.SDL_sixel + else if ui == "framebuffer" then pkgs.SDL + else null; + + browser = callPackage ./browser.nix { }; + + buildsystem = callPackage ./buildsystem.nix { }; + libcss = callPackage ./libcss.nix { }; + libdom = callPackage ./libdom.nix { }; + libhubbub = callPackage ./libhubbub.nix { }; + libnsbmp = callPackage ./libnsbmp.nix { }; + libnsfb = callPackage ./libnsfb.nix { }; + libnsgif = callPackage ./libnsgif.nix { }; + libnslog = callPackage ./libnslog.nix { }; + libnspsl = callPackage ./libnspsl.nix { }; + libnsutils = callPackage ./libnsutils.nix { }; + libparserutils = callPackage ./libparserutils.nix { }; + libsvgtiny = callPackage ./libsvgtiny.nix { }; + libutf8proc = callPackage ./libutf8proc.nix { }; + libwapcaplet = callPackage ./libwapcaplet.nix { }; + nsgenbind = callPackage ./nsgenbind.nix { }; +}) diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix new file mode 100644 index 000000000000..7777bb243fa6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libcss.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchurl, pkg-config, perl +, buildsystem +, libparserutils +, libwapcaplet +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libcss"; + version = "0.9.1"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-0tzhbpM5Lo1qcglCDUfC1Wo4EXAaDoGnJPxUHGPTxtw="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + perl + libparserutils + libwapcaplet + buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + NIX_CFLAGS_COMPILE= [ "-Wno-error=implicit-fallthrough" "-Wno-error=maybe-uninitialized" ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "Cascading Style Sheets library for netsurf browser"; + longDescription = '' + LibCSS is a CSS parser and selection engine. It aims to parse the forward + compatible CSS grammar. It was developed as part of the NetSurf project + and is available for use by other software, under a more permissive + license. + ''; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix new file mode 100644 index 000000000000..4c7224f2263c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libdom.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, pkg-config, expat +, buildsystem +, libparserutils +, libwapcaplet +, libhubbub +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libdom"; + version = "0.4.1"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-mO4HJHHlXiCMmHjlFcQQrUYso2+HtK/L7K0CPzos70o="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + expat + libhubbub + libparserutils + libwapcaplet + buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "Document Object Model library for netsurf browser"; + longDescription = '' + LibDOM is an implementation of the W3C DOM, written in C. It is currently + in development for use with NetSurf and is intended to be suitable for use + in other projects under a more permissive license. + ''; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix new file mode 100644 index 000000000000..9fd04904c8e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libhubbub.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchurl, pkg-config, perl +, buildsystem +, libparserutils +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libhubbub"; + version = "0.3.7"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-nnriU+bJBp51frmtTkhG84tNtSwMoBUURqn6Spd3NbY="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + perl + libparserutils + buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/hubbub/"; + description = "HTML5 parser library for netsurf browser"; + longDescription = '' + Hubbub is an HTML5 compliant parsing library, written in C. It was + developed as part of the NetSurf project and is available for use by other + software under the MIT licence. + + The HTML5 specification defines a parsing algorithm, based on the + behaviour of mainstream browsers, which provides instructions for how to + parse all markup, both valid and invalid. As a result, Hubbub parses web + content well. + ''; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix new file mode 100644 index 000000000000..24790c477d4e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsbmp.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libnsbmp"; + version = "0.1.6"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-ecSTZfhg7UUb/EEJ7d7I3j6bfOWjvgaVlr0qoZJ5Mk8="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/"; + description = "BMP Decoder for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix new file mode 100644 index 000000000000..d093df466298 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsfb.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, pkg-config +, uilib, SDL +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libnsfb"; + version = "0.2.2"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-vkRso+tU35A/LamDEdEH11dM0R9awHE+YZFW1NGeo5o="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ SDL buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + "TARGET=${uilib}" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "Netsurf framebuffer abstraction library"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix new file mode 100644 index 000000000000..582bcc84e4f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsgif.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libnsgif"; + version = "0.2.1"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-nq6lNM1wtTxar0UxeulXcBaFprSojb407Sb0+q6Hmks="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "GIF Decoder for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix new file mode 100644 index 000000000000..7189f1c591b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnslog.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config, bison, flex +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libnslog"; + version = "0.1.3"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-/JjcqdfvpnCWRwpdlsAjFG4lv97AjA23RmHHtNsEU9A="; + }; + + nativeBuildInputs = [ pkg-config bison flex ]; + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/"; + description = "NetSurf Parametric Logging Library"; + license = licenses.isc; + maintainers = [ maintainers.samueldr maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix new file mode 100644 index 000000000000..01e3e401a787 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnspsl.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libnspsl"; + version = "0.1.6"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-08WCBct40xC/gcpVNHotCYcZzsrHBGvDZ5g7E4tFAgs="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/"; + description = "NetSurf Public Suffix List - Handling library"; + license = licenses.mit; + maintainers = [ maintainers.samueldr maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix new file mode 100644 index 000000000000..b0d954a00d4f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libnsutils.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libnsutils"; + version = "0.1.0"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-eQxlFjRKvoL2KJ1lY5LpzOvkdbIMx+Hi2EMBE4X3rvA="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "Generalised utility library for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix new file mode 100644 index 000000000000..ac50237cc49d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libparserutils.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, perl +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libparserutils"; + version = "0.2.4"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-MiuuYbMMzt4+MFv26uJBSSBkl3W8X/HRtogBKjxJR9g="; + }; + + buildInputs = [ perl buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "Parser building library for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix new file mode 100644 index 000000000000..143997884336 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libsvgtiny.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, pkg-config, gperf +, buildsystem +, libdom +, libhubbub +, libparserutils +, libwapcaplet +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libsvgtiny"; + version = "0.1.7"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-LA3PlS8c2ILD6VQB75RZ8W27U8XT5FEjObL563add4E="; + }; + + nativeBuildInputs = [ pkg-config gperf ]; + buildInputs = [ + libdom + libhubbub + libparserutils + libwapcaplet + buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "NetSurf SVG decoder"; + license = licenses.mit; + maintainers = [ maintainers.samueldr maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix new file mode 100644 index 000000000000..c7362b998beb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libutf8proc.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libutf8proc"; + version = "2.4.0-1"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-AasdaYnBx3VQkNskw/ZOSflcVgrknCa+xRQrrGgCxHI="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "UTF8 Processing library for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix new file mode 100644 index 000000000000..318885bd2721 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/libwapcaplet.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "libwapcaplet"; + version = "0.4.3"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-myqh3W1mRfjpkrNpf9vYfwwOHaVyH6VO0ptITRMWDFw="; + }; + + buildInputs = [ buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type"; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/projects/${libname}/"; + description = "String internment library for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix new file mode 100644 index 000000000000..d08f4dbccf60 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl +, flex, bison +, buildsystem +}: + +stdenv.mkDerivation rec { + pname = "netsurf-${libname}"; + libname = "nsgenbind"; + version = "0.8"; + + src = fetchurl { + url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; + sha256 = "sha256-TY1TrQAK2nEncjZeanPrj8XOl1hK+chlrFsmohh/HLM="; + }; + + buildInputs = [ flex bison buildsystem ]; + + makeFlags = [ + "PREFIX=$(out)" + "NSSHARED=${buildsystem}/share/netsurf-buildsystem" + ]; + + meta = with lib; { + homepage = "https://www.netsurf-browser.org/"; + description = "Generator for JavaScript bindings for netsurf browser"; + license = licenses.mit; + maintainers = [ maintainers.vrthra maintainers.AndersonTorres ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix new file mode 100644 index 000000000000..59bb2adbf518 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix @@ -0,0 +1,57 @@ +{ stdenv, lib, lispPackages +, makeWrapper, wrapGAppsHook, gst_all_1 +, glib, gdk-pixbuf, cairo +, mime-types, pango, gtk3 +, glib-networking, gsettings-desktop-schemas +, xclip, notify-osd, enchant +}: + +stdenv.mkDerivation rec { + pname = "nyxt"; + inherit (lispPackages.nyxt.meta) version; + + src = lispPackages.nyxt; + + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + gstBuildInputs = with gst_all_1; [ + gstreamer gst-libav + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + ]; + buildInputs = [ + glib gdk-pixbuf cairo + mime-types pango gtk3 + glib-networking gsettings-desktop-schemas + xclip notify-osd enchant + ] ++ gstBuildInputs; + + GST_PLUGIN_SYSTEM_PATH_1_0 = lib.concatMapStringsSep ":" (p: "${p}/lib/gstreamer-1.0") gstBuildInputs; + + dontWrapGApps = true; + installPhase = '' + mkdir -p $out/share/applications/ + sed "s/VERSION/$version/" $src/lib/common-lisp/nyxt/assets/nyxt.desktop > $out/share/applications/nyxt.desktop + for i in 16 32 128 256 512; do + mkdir -p "$out/share/icons/hicolor/''${i}x''${i}/apps/" + cp -f $src/lib/common-lisp/nyxt/assets/nyxt_''${i}x''${i}.png "$out/share/icons/hicolor/''${i}x''${i}/apps/nyxt.png" + done + + mkdir -p $out/bin && makeWrapper $src/bin/nyxt $out/bin/nyxt \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "${GST_PLUGIN_SYSTEM_PATH_1_0}" \ + --argv0 nyxt "''${gappsWrapperArgs[@]}" + ''; + + checkPhase = '' + $out/bin/nyxt -h + ''; + + meta = with lib; { + description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)"; + homepage = "https://nyxt.atlas.engineer"; + license = licenses.bsd3; + maintainers = with maintainers; [ lewo payas ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix new file mode 100644 index 000000000000..0bad6c58d0a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix @@ -0,0 +1,128 @@ +{ alsa-lib +, atk +, cairo +, cups +, curl +, dbus +, dpkg +, expat +, fetchurl +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gnome2 +, gtk3 +, lib +, libX11 +, libxcb +, libXScrnSaver +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXrandr +, libXrender +, libXtst +, libdrm +, libnotify +, libpulseaudio +, libuuid +, libxshmfence +, mesa +, nspr +, nss +, pango +, stdenv +, systemd +, at-spi2-atk +, at-spi2-core +, autoPatchelfHook +, wrapGAppsHook +}: + +let + + mirror = "https://get.geo.opera.com/pub/opera/desktop"; + +in stdenv.mkDerivation rec { + + pname = "opera"; + version = "76.0.4017.94"; + + src = fetchurl { + url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb"; + sha256 = "sha256-vjSfzkl1jIQ9P1ARDa0eOuD8CmKHIEZ+IwMB2wIVjE8="; + }; + + unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc ."; + + nativeBuildInputs = [ + autoPatchelfHook + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig.lib + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libdrm + libnotify + libuuid + libxcb + libxshmfence + mesa + nspr + nss + pango + stdenv.cc.cc.lib + ]; + + runtimeDependencies = [ + # Works fine without this except there is no sound. + libpulseaudio.out + + # This is a little tricky. Without it the app starts then crashes. Then it + # brings up the crash report, which also crashes. `strace -f` hints at a + # missing libudev.so.0. + (lib.getLib systemd) + ]; + + installPhase = '' + mkdir -p $out + cp -r . $out/ + mv $out/lib/*/opera/*.so $out/lib/ + ''; + + meta = with lib; { + homepage = "https://www.opera.com"; + description = "Web browser"; + platforms = [ "x86_64-linux" ]; + license = licenses.unfree; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix new file mode 100644 index 000000000000..6afdf61886aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix @@ -0,0 +1,244 @@ +{ stdenv +, lib +, fetchFromGitHub +, writeScript +, alsa-lib +, autoconf213 +, cairo +, desktop-file-utils +, dbus +, dbus-glib +, ffmpeg +, fontconfig +, freetype +, gnome2 +, gnum4 +, gtk2 +, libevent +, libGL +, libGLU +, libnotify +, libpulseaudio +, libstartup_notification +, perl +, pkg-config +, python2 +, unzip +, which +, wrapGAppsHook +, xorg +, yasm +, zip +, zlib +, withGTK3 ? true +, gtk3 +}: + +# Only specific GCC versions are supported with branding +# https://developer.palemoon.org/build/linux/ +assert stdenv.cc.isGNU; +assert with lib.strings; ( + versionAtLeast stdenv.cc.version "4.9" + && !hasPrefix "6" stdenv.cc.version + && versionOlder stdenv.cc.version "11" +); + +let + libPath = lib.makeLibraryPath [ + ffmpeg + libpulseaudio + ]; + gtkVersion = if withGTK3 then "3" else "2"; +in +stdenv.mkDerivation rec { + pname = "palemoon"; + version = "29.2.1"; + + src = fetchFromGitHub { + githubBase = "repo.palemoon.org"; + owner = "MoonchildProductions"; + repo = "Pale-Moon"; + rev = "${version}_Release"; + sha256 = "0djjl79jrnny16p32db5w7pwwv0a24dc8mg1s1bnavhlvmmk52vq"; + fetchSubmodules = true; + }; + + passthru.updateScript = writeScript "update-${pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts curl libxml2 + + set -eu -o pipefail + + # Only release note announcement == finalized release + version="$( + curl -s 'http://www.palemoon.org/releasenotes.shtml' | + xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 | + sed 's/v\(\S*\).*/\1/' + )" + update-source-version ${pname} "$version" + ''; + + nativeBuildInputs = [ + autoconf213 + desktop-file-utils + gnum4 + perl + pkg-config + python2 + unzip + which + wrapGAppsHook + yasm + zip + ]; + + buildInputs = [ + alsa-lib + cairo + dbus + dbus-glib + ffmpeg + fontconfig + freetype + gnome2.GConf + gtk2 + libevent + libGL + libGLU + libnotify + libpulseaudio + libstartup_notification + zlib + ] + ++ (with xorg; [ + libX11 + libXext + libXft + libXi + libXrender + libXScrnSaver + libXt + pixman + xorgproto + ]) + ++ lib.optional withGTK3 gtk3; + + enableParallelBuilding = true; + + configurePhase = '' + runHook preConfigure + + export MOZCONFIG=$PWD/mozconfig + export MOZ_NOSPAM=1 + + # Keep this similar to the official .mozconfig file, + # only minor changes for portability are permitted with branding. + # https://developer.palemoon.org/build/linux/ + echo > $MOZCONFIG ' + # Clear this if not a 64bit build + _BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"} + + # Set GTK Version to 2 or 3 + _GTK_VERSION=${gtkVersion} + + # Standard build options for Pale Moon + ac_add_options --enable-application=palemoon + ac_add_options --enable-optimize="-O2 -w" + ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION + ac_add_options --enable-jemalloc + ac_add_options --enable-strip + ac_add_options --enable-devtools + ac_add_options --enable-av1 + + ac_add_options --disable-eme + ac_add_options --disable-webrtc + ac_add_options --disable-gamepad + ac_add_options --disable-tests + ac_add_options --disable-debug + ac_add_options --disable-necko-wifi + ac_add_options --disable-updater + + ac_add_options --with-pthreads + + # Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding. + ac_add_options --enable-official-branding + export MOZILLA_OFFICIAL=1 + + ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]} + + # + # NixOS-specific adjustments + # + + ac_add_options --prefix=$out + + mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}" + mk_add_options AUTOCONF=${autoconf213}/bin/autoconf + ' + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + ./mach build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + ./mach install + + # Fix missing icon due to wrong WMClass + # https://forum.palemoon.org/viewtopic.php?f=3&t=26746&p=214221#p214221 + substituteInPlace ./palemoon/branding/official/palemoon.desktop \ + --replace 'StartupWMClass="pale moon"' 'StartupWMClass=Pale moon' + desktop-file-install --dir=$out/share/applications \ + ./palemoon/branding/official/palemoon.desktop + + # Install official branding icons + for iconname in default{16,22,24,32,48,256} mozicon128; do + n=''${iconname//[^0-9]/} + size=$n"x"$n + install -Dm644 ./palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png + done + + # Remove unneeded SDK data from installation + # https://forum.palemoon.org/viewtopic.php?f=37&t=26796&p=214676#p214729 + rm -rf $out/{include,share/idl,lib/palemoon-devel-${version}} + + runHook postInstall + ''; + + dontWrapGApps = true; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${libPath}" + ) + wrapGApp $out/lib/palemoon-${version}/palemoon + ''; + + meta = with lib; { + description = "An Open Source, Goanna-based web browser focusing on efficiency and customization"; + longDescription = '' + Pale Moon is an Open Source, Goanna-based web browser focusing on + efficiency and customization. + + Pale Moon offers you a browsing experience in a browser completely built + from its own, independently developed source that has been forked off from + Firefox/Mozilla code a number of years ago, with carefully selected + features and optimizations to improve the browser's stability and user + experience, while offering full customization and a growing collection of + extensions and themes to make the browser truly your own. + ''; + homepage = "https://www.palemoon.org/"; + changelog = "https://repo.palemoon.org/MoonchildProductions/Pale-Moon/releases/tag/${version}_Release"; + license = licenses.mpl20; + maintainers = with maintainers; [ AndersonTorres OPNA2608 ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix new file mode 100644 index 000000000000..9a4d61a50aee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix @@ -0,0 +1,31 @@ +{ mkDerivation, lib, fetchFromGitHub, qmake, qtbase }: + +mkDerivation rec { + pname = "qtchan"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "siavash119"; + repo = "qtchan"; + rev = "v${version}"; + sha256 = "1x11m1kwqindzc0dkpfifcglsb362impaxs85kgzx50p898sz9ll"; + }; + + enableParallelBuilding = true; + nativeBuildInputs = [ qmake ]; + buildInputs = [ qtbase ]; + qmakeFlags = [ "CONFIG-=app_bundle" ]; + + installPhase = '' + mkdir -p $out/bin + cp qtchan $out/bin + ''; + + meta = with lib; { + description = "4chan browser in qt5"; + homepage = "https://github.com/siavash119/qtchan"; + license = licenses.mit; + maintainers = with maintainers; [ chiiruno ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix new file mode 100644 index 000000000000..9e8dec561791 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -0,0 +1,134 @@ +{ stdenv, lib, fetchurl, fetchzip, python3 +, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking +, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, pipewire_0_2 +, libxslt, gst_all_1 ? null +, withPdfReader ? true +, withMediaPlayback ? true +, backend ? "webengine" +}: + +assert withMediaPlayback -> gst_all_1 != null; + +let + python3Packages = python3.pkgs; + pdfjs = let + version = "2.8.335"; + in + fetchzip rec { + name = "pdfjs-${version}"; + url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip"; + sha256 = "1zschfpxnhdinn9nasl5in4s62ad0h1g369cglamjgxx36x27zly"; + stripRoot = false; + }; + + backendPackage = + if backend == "webengine" then python3Packages.pyqtwebengine else + if backend == "webkit" then python3Packages.pyqt5_with_qtwebkit else + throw '' + Unknown qutebrowser backend "${backend}". + Valid choices are qtwebengine (recommended) or qtwebkit. + ''; + +in mkDerivationWith python3Packages.buildPythonApplication rec { + pname = "qutebrowser"; + version = "2.3.0"; + + # the release tarballs are different from the git checkout! + src = fetchurl { + url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; + sha256 = "09fz6rd0laisq7pqf9nrllcx58yb129fc05kdk45zrwwggq03b8h"; + }; + + # Needs tox + doCheck = false; + + buildInputs = [ + qtbase + glib-networking + ] ++ lib.optionals withMediaPlayback (with gst_all_1; [ + gst-plugins-base gst-plugins-good + gst-plugins-bad gst-plugins-ugly gst-libav + ]); + + nativeBuildInputs = [ + wrapQtAppsHook wrapGAppsHook asciidoc + docbook_xml_dtd_45 docbook_xsl libxml2 libxslt + ]; + + propagatedBuildInputs = with python3Packages; ([ + pyyaml backendPackage jinja2 pygments + # scripts and userscripts libs + tldextract beautifulsoup4 + pyreadability pykeepass stem + pynacl + # extensive ad blocking + adblock + ] + ++ lib.optional (pythonOlder "3.9") importlib-resources + ); + + patches = [ + ./fix-restart.patch + ]; + + dontWrapGApps = true; + dontWrapQtApps = true; + + postPatch = '' + substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser" + + sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py + '' + lib.optionalString withPdfReader '' + sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py + ''; + + postBuild = '' + a2x -f manpage doc/qutebrowser.1.asciidoc + ''; + + postInstall = '' + install -Dm644 doc/qutebrowser.1 "$out/share/man/man1/qutebrowser.1" + install -Dm644 misc/org.qutebrowser.qutebrowser.desktop \ + "$out/share/applications/org.qutebrowser.qutebrowser.desktop" + + # Install icons + for i in 16 24 32 48 64 128 256 512; do + install -Dm644 "icons/qutebrowser-''${i}x''${i}.png" \ + "$out/share/icons/hicolor/''${i}x''${i}/apps/qutebrowser.png" + done + install -Dm644 icons/qutebrowser.svg \ + "$out/share/icons/hicolor/scalable/apps/qutebrowser.svg" + + # Install scripts + sed -i "s,/usr/bin/,$out/bin/,g" scripts/open_url_in_instance.sh + install -Dm755 -t "$out/share/qutebrowser/scripts/" $(find scripts -type f) + install -Dm755 -t "$out/share/qutebrowser/userscripts/" misc/userscripts/* + + # Patch python scripts + buildPythonPath "$out $propagatedBuildInputs" + scripts=$(grep -rl python "$out"/share/qutebrowser/{user,}scripts/) + for i in $scripts; do + patchPythonScript "$i" + done + ''; + + preFixup = let + libPath = lib.makeLibraryPath [ pipewire_0_2 ]; + in + '' + makeWrapperArgs+=( + "''${gappsWrapperArgs[@]}" + "''${qtWrapperArgs[@]}" + --add-flags '--backend ${backend}' + --set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}" + ${lib.optionalString (!stdenv.isDarwin && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''} + ) + ''; + + meta = with lib; { + homepage = "https://github.com/The-Compiler/qutebrowser"; + description = "Keyboard-focused browser with a minimal GUI"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch new file mode 100644 index 000000000000..828fa5e107c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch @@ -0,0 +1,19 @@ +diff --git a/quitter.py b/quitter.py +index a42b9d0..f544ccb 100644 +--- a/qutebrowser/misc/quitter.py ++++ b/qutebrowser/misc/quitter.py +@@ -112,13 +112,7 @@ class Quitter(QObject): + Return: + The commandline as a list of strings. + """ +- if os.path.basename(sys.argv[0]) == 'qutebrowser': +- # Launched via launcher script +- args = [sys.argv[0]] +- elif hasattr(sys, 'frozen'): +- args = [sys.executable] +- else: +- args = [sys.executable, '-m', 'qutebrowser'] ++ args = ['@qutebrowser@'] + + # Add all open pages so they get reopened. + page_args = [] # type: typing.MutableSequence[str] diff --git a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix new file mode 100644 index 000000000000..7bf3ee9e75b0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchgit +, pkg-config, wrapGAppsHook +, glib, gcr, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk +, xorg, dmenu, findutils, gnused, coreutils +, patches ? null +}: + +stdenv.mkDerivation rec { + pname = "surf"; + version = "2.1"; + + # tarball is missing file common.h + src = fetchgit { + url = "git://git.suckless.org/surf"; + rev = version; + sha256 = "1v926hiayddylq79n8l7dy51bm0dsa9n18nx9bkhg666cx973x4z"; + }; + + nativeBuildInputs = [ pkg-config wrapGAppsHook ]; + buildInputs = [ glib gcr glib-networking gsettings-desktop-schemas gtk libsoup webkitgtk ]; + + inherit patches; + + installFlags = [ "PREFIX=$(out)" ]; + + # Add run-time dependencies to PATH. Append them to PATH so the user can + # override the dependencies with their own PATH. + preFixup = let + depsPath = lib.makeBinPath [ xorg.xprop dmenu findutils gnused coreutils ]; + in '' + gappsWrapperArgs+=( + --suffix PATH : ${depsPath} + ) + ''; + + meta = with lib; { + description = "A simple web browser based on WebKitGTK"; + longDescription = '' + surf is a simple web browser based on WebKitGTK. It is able to display + websites and follow links. It supports the XEmbed protocol which makes it + possible to embed it in another application. Furthermore, one can point + surf to another URI by setting its XProperties. + ''; + homepage = "https://surf.suckless.org"; + license = licenses.mit; + platforms = webkitgtk.meta.platforms; + maintainers = with maintainers; [ joachifm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix new file mode 100644 index 000000000000..d1830f1c52f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix @@ -0,0 +1,412 @@ +{ lib, stdenv +, fetchurl +, makeDesktopItem + +# Common run-time dependencies +, zlib + +# libxul run-time dependencies +, atk +, cairo +, dbus +, dbus-glib +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gtk3 +, libxcb +, libX11 +, libXext +, libXrender +, libXt +, pango + +, audioSupport ? mediaSupport +, pulseaudioSupport ? false +, libpulseaudio +, apulse + +# Media support (implies audio support) +, mediaSupport ? true +, ffmpeg + +, gmp + +# Wrapper runtime +, coreutils +, glibcLocales +, gnome +, runtimeShell +, shared-mime-info +, gsettings-desktop-schemas + +# Hardening +, graphene-hardened-malloc +# crashes with intel driver +, useHardenedMalloc ? false + +# Whether to disable multiprocess support to work around crashing tabs +# TODO: fix the underlying problem instead of this terrible work-around +, disableContentSandbox ? true + +# Extra preferences +, extraPrefs ? "" +}: + +with lib; + +let + libPath = makeLibraryPath libPkgs; + + libPkgs = [ + atk + cairo + dbus + dbus-glib + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libxcb + libX11 + libXext + libXrender + libXt + pango + stdenv.cc.cc + stdenv.cc.libc + zlib + ] + ++ optionals pulseaudioSupport [ libpulseaudio ] + ++ optionals mediaSupport [ + ffmpeg + ]; + + # Library search path for the fte transport + fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; + + # Upstream source + version = "10.0.18"; + + lang = "en-US"; + + srcs = { + x86_64-linux = fetchurl { + url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; + sha256 = "15ni33mkg3awfmk3ynr0vi4max1h2k0s10xw3dpmdx6chzv4ll14"; + }; + + i686-linux = fetchurl { + url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; + sha256 = "16lx8wkxli1fzq5f6gcw3im4p8k3xdmnmf6w0p7n8hd8681b1w5s"; + }; + }; +in +stdenv.mkDerivation rec { + pname = "tor-browser-bundle-bin"; + inherit version; + + src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}"); + + preferLocalBuild = true; + allowSubstitutes = false; + + desktopItem = makeDesktopItem { + name = "torbrowser"; + exec = "tor-browser"; + icon = "torbrowser"; + desktopName = "Tor Browser"; + genericName = "Web Browser"; + comment = meta.description; + categories = "Network;WebBrowser;Security;"; + }; + + buildCommand = '' + # For convenience ... + TBB_IN_STORE=$out/share/tor-browser + interp=$(< $NIX_CC/nix-support/dynamic-linker) + + # Unpack & enter + mkdir -p "$TBB_IN_STORE" + tar xf "$src" -C "$TBB_IN_STORE" --strip-components=2 + pushd "$TBB_IN_STORE" + + # Set ELF interpreter + for exe in firefox.real TorBrowser/Tor/tor ; do + echo "Setting ELF interpreter on $exe ..." >&2 + patchelf --set-interpreter "$interp" "$exe" + done + + # firefox is a wrapper that checks for a more recent libstdc++ & appends it to the ld path + mv firefox.real firefox + + # The final libPath. Note, we could split this into firefoxLibPath + # and torLibPath for accuracy, but this is more convenient ... + libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor + + # apulse uses a non-standard library path. For now special-case it. + ${optionalString (audioSupport && !pulseaudioSupport) '' + libPath=${apulse}/lib/apulse:$libPath + ''} + + # Fixup paths to pluggable transports. + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g" + + # Fixup obfs transport. Work around patchelf failing to set + # interpreter for pre-compiled Go binaries by invoking the interpreter + # directly. + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s|\(ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|" + + # Similarly fixup snowflake + sed -i TorBrowser/Data/Tor/torrc-defaults \ + -e "s|\(ClientTransportPlugin snowflake\) exec|\1 exec $interp|" + + + # Prepare for autoconfig. + # + # See https://developer.mozilla.org/en-US/Firefox/Enterprise_deployment + cat >defaults/pref/autoconfig.js <<EOF + // + pref("general.config.filename", "mozilla.cfg"); + pref("general.config.obscure_value", 0); + EOF + + # Hard-coded Firefox preferences. + cat >mozilla.cfg <<EOF + // First line must be a comment + + // Always update via Nixpkgs + lockPref("app.update.auto", false); + lockPref("app.update.enabled", false); + lockPref("extensions.update.autoUpdateDefault", false); + lockPref("extensions.update.enabled", false); + lockPref("extensions.torbutton.versioncheck_enabled", false); + + // User should never change these. Locking prevents these + // values from being written to prefs.js, avoiding Store + // path capture. + lockPref("extensions.torlauncher.torrc-defaults_path", "$TBB_IN_STORE/TorBrowser/Data/Tor/torrc-defaults"); + lockPref("extensions.torlauncher.tor_path", "$TBB_IN_STORE/TorBrowser/Tor/tor"); + + // Reset pref that captures store paths. + clearPref("extensions.xpiState"); + + // Stop obnoxious first-run redirection. + lockPref("noscript.firstRunRedirection", false); + + // Insist on using IPC for communicating with Tor + // + // Defaults to creating \$TBB_HOME/TorBrowser/Data/Tor/{socks,control}.socket + lockPref("extensions.torlauncher.control_port_use_ipc", true); + lockPref("extensions.torlauncher.socks_port_use_ipc", true); + + // Optionally disable multiprocess support. We always set this to ensure that + // toggling the pref takes effect. + lockPref("browser.tabs.remote.autostart.2", ${if disableContentSandbox then "false" else "true"}); + + // Allow sandbox access to sound devices if using ALSA directly + ${if (audioSupport && !pulseaudioSupport) then '' + pref("security.sandbox.content.write_path_whitelist", "/dev/snd/"); + '' else '' + clearPref("security.sandbox.content.write_path_whitelist"); + ''} + + ${optionalString (extraPrefs != "") '' + ${extraPrefs} + ''} + EOF + + # Hard-code path to TBB fonts; see also FONTCONFIG_FILE in + # the wrapper below. + FONTCONFIG_FILE=$TBB_IN_STORE/TorBrowser/Data/fontconfig/fonts.conf + sed -i "$FONTCONFIG_FILE" \ + -e "s,<dir>fonts</dir>,<dir>$TBB_IN_STORE/fonts</dir>," + + # Preload extensions by moving into the runtime instead of storing under the + # user's profile directory. + # See https://support.mozilla.org/en-US/kb/deploying-firefox-with-extensions + mkdir -p "$TBB_IN_STORE/distribution/extensions" + mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \ + "$TBB_IN_STORE/distribution/extensions" + + # Hard-code paths to geoip data files. TBB resolves the geoip files + # relative to torrc-defaults_path but if we do not hard-code them + # here, these paths end up being written to the torrc in the user's + # state dir. + cat >>TorBrowser/Data/Tor/torrc-defaults <<EOF + GeoIPFile $TBB_IN_STORE/TorBrowser/Data/Tor/geoip + GeoIPv6File $TBB_IN_STORE/TorBrowser/Data/Tor/geoip6 + EOF + + WRAPPER_LD_PRELOAD=${optionalString useHardenedMalloc + "${graphene-hardened-malloc}/lib/libhardened_malloc.so"} + + WRAPPER_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [ + gnome.adwaita-icon-theme + shared-mime-info + ]} + WRAPPER_XDG_DATA_DIRS+=":"${concatMapStringsSep ":" (x: "${x}/share/gsettings-schemas/${x.name}") [ + glib + gsettings-desktop-schemas + gtk3 + ]}; + + # Generate wrapper + mkdir -p $out/bin + cat > "$out/bin/tor-browser" << EOF + #! ${runtimeShell} + set -o errexit -o nounset + + PATH=${makeBinPath [ coreutils ]} + export LC_ALL=C + export LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive + + # Enter local state directory. + REAL_HOME=\$HOME + TBB_HOME=\''${TBB_HOME:-''${XDG_DATA_HOME:-\$REAL_HOME/.local/share}/tor-browser} + HOME=\$TBB_HOME + + mkdir -p "\$HOME" + cd "\$HOME" + + # Initialize empty TBB local state directory hierarchy. We + # intentionally mirror the layout that TBB would see if executed from + # the unpacked bundle dir. + mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data" + + # Initialize the Tor data directory. + mkdir -p "\$HOME/TorBrowser/Data/Tor" + + # TBB will fail if ownership is too permissive + chmod 0700 "\$HOME/TorBrowser/Data/Tor" + + # Initialize the browser profile state. Note that the only data + # copied from the Store payload is the initial bookmark file, which is + # never updated once created. All other files under user's profile + # dir are generated by TBB. + mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default" + cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \ + "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html" + + # Clear out some files that tend to capture store references but are + # easily generated by firefox at startup. + rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json} + rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/* + + # XDG + : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}" + : "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}" + + ${optionalString pulseaudioSupport '' + # Figure out some envvars for pulseaudio + : "\''${PULSE_SERVER:=\$XDG_RUNTIME_DIR/pulse/native}" + : "\''${PULSE_COOKIE:=\$XDG_CONFIG_HOME/pulse/cookie}" + ''} + + # Font cache files capture store paths; clear them out on the off + # chance that TBB would continue using old font files. + rm -rf "\$HOME/.cache/fontconfig" + + # Lift-off + # + # XAUTHORITY and DISPLAY are required for TBB to work at all. + # + # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launch; to + # prevent that, set it to an empty/invalid value prior to running + # tor-browser. + # + # PULSE_SERVER is necessary for audio playback. + # + # Setting FONTCONFIG_FILE is required to make fontconfig read the TBB + # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024 + # indicates the system fonts.conf being used instead. + # + # XDG_DATA_DIRS is set to prevent searching system dirs (looking for .desktop & icons) + exec env -i \ + LD_PRELOAD=$WRAPPER_LD_PRELOAD \ + \ + TZ=":" \ + TZDIR="\''${TZDIR:-}" \ + LOCALE_ARCHIVE="\$LOCALE_ARCHIVE" \ + \ + TMPDIR="\''${TMPDIR:-/tmp}" \ + HOME="\$HOME" \ + XAUTHORITY="\''${XAUTHORITY:-\$HOME/.Xauthority}" \ + DISPLAY="\$DISPLAY" \ + DBUS_SESSION_BUS_ADDRESS="\''${DBUS_SESSION_BUS_ADDRESS:-unix:path=\$XDG_RUNTIME_DIR/bus}" \\ + \ + XDG_DATA_HOME="\$HOME/.local/share" \ + XDG_DATA_DIRS="$WRAPPER_XDG_DATA_DIRS" \ + \ + PULSE_SERVER="\''${PULSE_SERVER:-}" \ + PULSE_COOKIE="\''${PULSE_COOKIE:-}" \ + \ + APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \ + \ + TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \ + TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \ + TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \ + \ + FONTCONFIG_FILE="$FONTCONFIG_FILE" \ + \ + LD_LIBRARY_PATH="$libPath" \ + \ + "$TBB_IN_STORE/firefox" \ + --class "Tor Browser" \ + -no-remote \ + -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \ + "\''${@}" + EOF + chmod +x $out/bin/tor-browser + + # Easier access to docs + mkdir -p $out/share/doc + ln -s $TBB_IN_STORE/TorBrowser/Docs $out/share/doc/tor-browser + + # Install .desktop item + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + sed -i $out/share/applications/torbrowser.desktop \ + -e "s,Exec=.*,Exec=$out/bin/tor-browser," \ + -e "s,Icon=.*,Icon=tor-browser," + for i in 16 32 48 64 128; do + mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps/ + ln -s $out/share/tor-browser/browser/chrome/icons/default/default$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/tor-browser.png + done + + # Check installed apps + echo "Checking bundled Tor ..." + LD_LIBRARY_PATH=$libPath $TBB_IN_STORE/TorBrowser/Tor/tor --version >/dev/null + + echo "Checking tor-browser wrapper ..." + DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \ + $out/bin/tor-browser --version >/dev/null + ''; + + meta = with lib; { + description = "Tor Browser Bundle built by torproject.org"; + longDescription = '' + Tor Browser Bundle is a bundle of the Tor daemon, Tor Browser (heavily patched version of + Firefox), several essential extensions for Tor Browser, and some tools that glue those + together with a convenient UI. + + `tor-browser-bundle-bin` package is the official version built by torproject.org patched with + `patchelf` to work under nix and with bundled scripts adapted to the read-only nature of + the `/nix/store`. + ''; + homepage = "https://www.torproject.org/"; + changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}"; + platforms = attrNames srcs; + maintainers = with maintainers; [ offline matejc thoughtpolice joachifm hax404 KarlJoad ]; + mainProgram = "tor-browser"; + hydraPlatforms = []; + # MPL2.0+, GPL+, &c. While it's not entirely clear whether + # the compound is "libre" in a strict sense (some components place certain + # restrictions on redistribution), it's free enough for our purposes. + license = licenses.free; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix new file mode 100644 index 000000000000..f97e8d8250e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/default.nix @@ -0,0 +1,59 @@ +{ mkYarnPackage, fetchFromGitHub, electron, makeWrapper, makeDesktopItem, lib }: + +mkYarnPackage rec { + pname = "vieb"; + version = "5.3.0"; + + src = fetchFromGitHub { + owner = "Jelmerro"; + repo = pname; + rev = version; + sha256 = "sha256-NKWqSnUO8SScEodHYSptRHwVNOa5C4M61ac85d+wYK0="; + }; + + packageJSON = ./package.json; + yarnLock = ./yarn.lock; + yarnNix = ./yarn.nix; + yarnFlags = [ "--production" "--offline" ]; + + nativeBuildInputs = [ makeWrapper ]; + + desktopItem = makeDesktopItem { + name = "vieb"; + exec = "vieb %U"; + icon = "vieb"; + desktopName = "Web Browser"; + genericName = "Web Browser"; + categories = "Network;WebBrowser;"; + mimeType = lib.concatStringsSep ";" [ + "text/html" + "application/xhtml+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]; + }; + + postInstall = '' + install -Dm0644 {${desktopItem},$out}/share/applications/vieb.desktop + + pushd $out/libexec/vieb/node_modules/vieb/app/img/icons + for file in *.png; do + install -Dm0644 $file $out/share/icons/hicolor/''${file//.png}/apps/vieb.png + done + popd + + makeWrapper ${electron}/bin/electron $out/bin/vieb \ + --add-flags $out/libexec/vieb/node_modules/vieb/app + ''; + + distPhase = ":"; # disable useless $out/tarballs directory + + meta = with lib; { + homepage = "https://vieb.dev/"; + changelog = "https://github.com/Jelmerro/Vieb/releases/tag/${version}"; + description = "Vim Inspired Electron Browser"; + maintainers = with maintainers; [ gebner fortuneteller2k ]; + platforms = platforms.unix; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json b/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json new file mode 100644 index 000000000000..1836efdb8ad2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/package.json @@ -0,0 +1,50 @@ +{ + "name": "vieb", + "productName": "Vieb", + "version": "5.3.0", + "description": "Vim Inspired Electron Browser", + "main": "app/index.js", + "scripts": { + "build": "node build.js", + "buildall": "node build.js --linux --win --mac", + "buildlinux": "node build.js --linux", + "buildmac": "node build.js --mac", + "buildwin": "node build.js --win", + "dev": "electron app --datafolder=./ViebData/", + "fix": "eslint --fix app .eslintrc.js build.js", + "lint": "eslint app .eslintrc.js build.js", + "start": "electron app", + "test": "jest --testEnvironment jsdom --coverage --collectCoverageFrom 'app/**/*.js' -u && npm run lint && echo 'All good :)'" + }, + "repository": "https://github.com/Jelmerro/Vieb", + "homepage": "https://vieb.dev", + "keywords": [ + "Vim", + "Electron", + "Browser", + "Internet" + ], + "author": "Jelmer van Arnhem", + "email": "Jelmerro@users.noreply.github.com", + "license": "GPL-3.0-or-later", + "devDependencies": { + "archiver": "5.3.0", + "electron": "13.1.4", + "electron-builder": "22.11.7", + "eslint": "7.29.0", + "eslint-plugin-compat": "3.9.0", + "eslint-plugin-sort-keys-fix": "1.1.1", + "jest": "27.0.6", + "jest-environment-jsdom": "27.0.6" + }, + "dependencies": { + "7zip-bin": "5.1.1", + "@cliqz/adblocker-electron": "1.22.2", + "@cliqz/adblocker-electron-preload": "1.22.2", + "is-svg": "4.3.1", + "rimraf": "3.0.2" + }, + "browserslist": [ + "last 2 Chrome versions" + ] +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock new file mode 100644 index 000000000000..33e9604c06da --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.lock @@ -0,0 +1,4564 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@5.1.1", "7zip-bin@~5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876" + integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" + integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== + +"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" + integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helpers" "^7.14.6" + "@babel/parser" "^7.14.6" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.14.5", "@babel/generator@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" + integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== + dependencies: + "@babel/types" "^7.14.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" + integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" + integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-replace-supers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-simple-access@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" + integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helpers@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" + integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7", "@babel/parser@^7.7.2": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" + integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/template@^7.14.5", "@babel/template@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.2": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" + integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.14.7" + "@babel/types" "^7.14.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" + integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cliqz/adblocker-content@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.22.2.tgz#643849d5f08c167eb84a2e7e3f1f9fbc41a3889b" + integrity sha512-EsV00IdW8sGujGnylOGR8dm401FdIfPRAjuevsRlZjgDE+hQKj6n5wwrZaylPIh994hWesg6bxWTmXpJ2Sy2QQ== + dependencies: + "@cliqz/adblocker-extended-selectors" "^1.22.2" + +"@cliqz/adblocker-electron-preload@1.22.2", "@cliqz/adblocker-electron-preload@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.22.2.tgz#eea674767a60abe4e5f9ccb46188d33656f551d0" + integrity sha512-4JSqNNYo4hXMoZjnyBVTd3z2yV2n5qeoNPk+WaeOFEF9uJXhqPR+Sz7scNB6nMYnRuSQfraeogtdaA4s0JkJWQ== + dependencies: + "@cliqz/adblocker-content" "^1.22.2" + +"@cliqz/adblocker-electron@1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.22.2.tgz#85af3b49f7f653e6fb0d008b6523e3b3ba0dd41e" + integrity sha512-uSQjbcv9/csjQOO0AgqK8AnqdpKseebPkwXozglU1uFVVnuSOTs/4RohL3yac9uMkJtfyAIhT3mnbw9Cf4o+gQ== + dependencies: + "@cliqz/adblocker" "^1.22.2" + "@cliqz/adblocker-electron-preload" "^1.22.2" + tldts-experimental "^5.6.21" + +"@cliqz/adblocker-extended-selectors@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.22.2.tgz#1cad3c1569b765d9e7f8672c85b2a7b1e8e9ee90" + integrity sha512-/u4SmQ1wr7d80iGP705fZrfHjJUTf/1MyRXz5Wltt7i3OHvOCQEoST2mqNlfx0W/9gIWzxA7cFRLY0/aITmzTw== + +"@cliqz/adblocker@^1.22.2": + version "1.22.2" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.22.2.tgz#99a14d56327734d3083a077d96fe7b91c236bf7a" + integrity sha512-P+a8gYbRbQy38mYsr7932h2cnK/7AEuQrmCEfLTO1+abCr2v5RM2Qb+cCn/JVnQSeqnysebAIXoV+PUzrjfpiQ== + dependencies: + "@cliqz/adblocker-content" "^1.22.2" + "@cliqz/adblocker-extended-selectors" "^1.22.2" + "@remusao/guess-url-type" "^1.1.2" + "@remusao/small" "^1.1.2" + "@remusao/smaz" "^1.7.1" + "@types/chrome" "^0.0.145" + "@types/firefox-webext-browser" "^82.0.0" + tldts-experimental "^5.6.21" + +"@develar/schema-utils@~2.6.5": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +"@electron/get@^1.0.1": + version "1.12.4" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab" + integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^9.6.0" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^2.0.2" + global-tunnel-ng "^2.7.1" + +"@electron/universal@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37" + integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag== + dependencies: + "@malept/cross-spawn-promise" "^1.1.0" + asar "^3.0.3" + debug "^4.3.1" + dir-compare "^2.4.0" + fs-extra "^9.0.1" + +"@eslint/eslintrc@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" + integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" + integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.0.6" + jest-util "^27.0.6" + slash "^3.0.0" + +"@jest/core@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" + integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== + dependencies: + "@jest/console" "^27.0.6" + "@jest/reporters" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^27.0.6" + jest-config "^27.0.6" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-resolve-dependencies "^27.0.6" + jest-runner "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + jest-watcher "^27.0.6" + micromatch "^4.0.4" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" + integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== + dependencies: + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + +"@jest/fake-timers@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" + integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== + dependencies: + "@jest/types" "^27.0.6" + "@sinonjs/fake-timers" "^7.0.2" + "@types/node" "*" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-util "^27.0.6" + +"@jest/globals@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" + integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/types" "^27.0.6" + expect "^27.0.6" + +"@jest/reporters@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" + integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.0.0" + +"@jest/source-map@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" + integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" + integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== + dependencies: + "@jest/console" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" + integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== + dependencies: + "@jest/test-result" "^27.0.6" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-runtime "^27.0.6" + +"@jest/transform@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" + integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.0.6" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-regex-util "^27.0.6" + jest-util "^27.0.6" + micromatch "^4.0.4" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" + integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@malept/cross-spawn-promise@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" + integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== + dependencies: + cross-spawn "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + +"@mdn/browser-compat-data@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz#72ec37b9c1e00ce0b4e0309d753be18e2da12ee3" + integrity sha512-GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw== + dependencies: + extend "3.0.2" + +"@remusao/guess-url-type@^1.1.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.1.tgz#b3e7c32abdf98d0fb4f93cc67cad580b5fe4ba57" + integrity sha512-rbOqre2jW8STjheOsOaQHLgYBaBZ9Owbdt8NO7WvNZftJlaG3y/K9oOkl8ZUpuFBisIhmBuMEW6c+YrQl5inRA== + +"@remusao/small@^1.1.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@remusao/small/-/small-1.2.1.tgz#63bfe4548832289f94ac868a0c305970c9a0e5f9" + integrity sha512-7MjoGt0TJMVw1GPKgWq6SJPws1SLsUXQRa43Umht+nkyw2jnpy3WpiLNqGdwo5rHr5Wp9B2W/Pm5RQp656UJdw== + +"@remusao/smaz-compress@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.9.1.tgz#fc75eaf9bcac2d58bc4c3d518183a7cb9612d275" + integrity sha512-E2f48TwloQu3r6BdLOGF2aczeH7bJ/32oJGqvzT9SKur0cuUnLcZ7ZXP874E2fwmdE+cXzfC7bKzp79cDnmeyw== + dependencies: + "@remusao/trie" "^1.4.1" + +"@remusao/smaz-decompress@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.9.1.tgz#8094f997e8fb591a678cda9cf08c209c825eba5b" + integrity sha512-TfjKKprYe3n47od8auhvJ/Ikj9kQTbDTe71ynKlxslrvvUhlIV3VQSuwYuMWMbdz1fIs0H/fxCN1Z8/H3km6/A== + +"@remusao/smaz@^1.7.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.9.1.tgz#a2b9b045385f81e1615a68d932b7cc8b04c9db8d" + integrity sha512-e6BLuP8oaXCZ9+v46Is4ilAZ/Vq6YLgmBP204Ixgk1qTjXmqvFYG7+AS7v9nsZdGOy96r9DWGFbbDVgMxwu1rA== + dependencies: + "@remusao/smaz-compress" "^1.9.1" + "@remusao/smaz-decompress" "^1.9.1" + +"@remusao/trie@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.4.1.tgz#755d09f8a007476334e611f42719b2d581f00720" + integrity sha512-yvwa+aCyYI/UjeD39BnpMypG8N06l86wIDW1/PAc6ihBRnodIfZDwccxQN3n1t74wduzaz74m4ZMHZnB06567Q== + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^7.0.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.0.tgz#a34277cf8acbd3185ea74129e1f100491eb1da7f" + integrity sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w== + dependencies: + "@babel/types" "^7.3.0" + +"@types/chrome@^0.0.145": + version "0.0.145" + resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.145.tgz#6c53ae0af5f25350b07bfd24cf459b5fe65cd9b8" + integrity sha512-vLvTMmfc8mvwOZzkmn2UwlWSNu0t0txBkyuIv8NgihRkvFCe6XJX65YZAgAP/RdBit3enhU2GTxCr+prn4uZmA== + dependencies: + "@types/filesystem" "*" + "@types/har-format" "*" + +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + +"@types/filesystem@*": + version "0.0.31" + resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.31.tgz#121a1ded274a2dc731d5e0d90163a920ad6a9ef1" + integrity sha512-9Dj1Gb7ZhknhJ8J1H/lTQrEorwIHWZlO9Tfi0WMrvyO1+2GUIUF8Sg4zrID77hj0ywArzQRJ1MwlT9H7c9QmEQ== + dependencies: + "@types/filewriter" "*" + +"@types/filewriter@*": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee" + integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ== + +"@types/firefox-webext-browser@^82.0.0": + version "82.0.0" + resolved "https://registry.yarnpkg.com/@types/firefox-webext-browser/-/firefox-webext-browser-82.0.0.tgz#4d0f5cfebd7321d2cbf0ccfb6032570f0138b958" + integrity sha512-zKHePkjMx42KIUUZCPcUiyu1tpfQXH9VR4iDYfns3HvmKVJzt/TAFT+DFVroos8BI9RH78YgF3Hi/wlC6R6cKA== + +"@types/fs-extra@^9.0.11": + version "9.0.11" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" + integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/har-format@*": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.6.tgz#471c83acdf6a2ea429620daee4c6dc1784a0e85f" + integrity sha512-TeZjp4COiAWPOeGx1tuFJETr/SBMx80lxqeqnCC36ZVn463f7ElCdA3X9RzDuo3BHjhN4apw41A5uoIw5FzgWA== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/minimatch@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + +"@types/node@*": + version "15.12.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.5.tgz#9a78318a45d75c9523d2396131bd3cca54b2d185" + integrity sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg== + +"@types/node@^14.6.2": + version "14.17.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.4.tgz#218712242446fc868d0e007af29a4408c7765bc0" + integrity sha512-8kQ3+wKGRNN0ghtEn7EGps/B8CzuBz1nXZEIGGLP2GnwbqYn4dbTs7k+VKLTq1HvZLRCIDtN3Snx1Ege8B7L5A== + +"@types/plist@^3.0.1": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01" + integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + +"@types/prettier@^2.1.5": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb" + integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw== + +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/verror@^1.10.3": + version "1.10.4" + resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz#805c0612b3a0c124cf99f517364142946b74ba3b" + integrity sha512-OjJdqx6QlbyZw9LShPwRW+Kmiegeg3eWNI41MQQKaG3vjdU2L9SRElntM51HmHBY1cu7izxQJ1lMYioQh3XMBg== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^16.0.0", "@types/yargs@^16.0.2": + version "16.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz#4b6d35bb8e680510a7dc2308518a80ee1ef27e01" + integrity sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ== + dependencies: + "@types/yargs-parser" "*" + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.6.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" + integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-builder-bin@3.5.13: + version "3.5.13" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e" + integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg== + +app-builder-lib@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz#c0ad1119ebfbf4189a8280ad693625f5e684dca6" + integrity sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ== + dependencies: + "7zip-bin" "~5.1.1" + "@develar/schema-utils" "~2.6.5" + "@electron/universal" "1.0.5" + "@malept/flatpak-bundler" "^0.4.0" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "22.11.7" + builder-util-runtime "8.7.7" + chromium-pickle-js "^0.2.0" + debug "^4.3.2" + ejs "^3.1.6" + electron-publish "22.11.7" + fs-extra "^10.0.0" + hosted-git-info "^4.0.2" + is-ci "^3.0.0" + isbinaryfile "^4.0.8" + js-yaml "^4.1.0" + lazy-val "^1.0.5" + minimatch "^3.0.4" + read-config-file "6.2.0" + sanitize-filename "^1.6.3" + semver "^7.3.5" + temp-file "^3.4.0" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba" + integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.0" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +asar@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz#1fef03c2d6d2de0cbad138788e4f7ae03b129c7b" + integrity sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +ast-metadata-inferer@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz#6be85ceeffcf267bd79db8e1ae731da44880b45f" + integrity sha512-tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async@0.9.x: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +async@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +babel-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" + integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== + dependencies: + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^27.0.6" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" + integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" + integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== + dependencies: + babel-plugin-jest-hoist "^27.0.6" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird-lst@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" + integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== + dependencies: + bluebird "^3.5.5" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +boolean@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz#e30f210a26b02458482a8cc353ab06f262a780c2" + integrity sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw== + +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.12.2, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-equal@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builder-util-runtime@8.7.6: + version "8.7.6" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324" + integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + +builder-util-runtime@8.7.7: + version "8.7.7" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz#6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d" + integrity sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow== + dependencies: + debug "^4.3.2" + sax "^1.2.4" + +builder-util@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz#ae9707afa6a31feafa13c274ac83b4fe28ef1467" + integrity sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA== + dependencies: + "7zip-bin" "~5.1.1" + "@types/debug" "^4.1.5" + "@types/fs-extra" "^9.0.11" + app-builder-bin "3.5.13" + bluebird-lst "^1.0.9" + builder-util-runtime "8.7.7" + chalk "^4.1.1" + debug "^4.3.2" + fs-extra "^10.0.0" + is-ci "^3.0.0" + js-yaml "^4.1.0" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.4.0" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-lite@^1.0.30001166, caniuse-lite@^1.0.30001219: + version "1.0.30001241" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz#cd3fae47eb3d7691692b406568d7a3e5b23c7598" + integrity sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ== + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + +cjs-module-lexer@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz#2fd46d9906a126965aa541345c499aaa18e8cd73" + integrity sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-truncate@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086" + integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA== + dependencies: + slice-ansi "^1.0.0" + string-width "^2.0.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +core-js@^3.6.5: + version "3.15.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.2.tgz#740660d2ff55ef34ce664d7e2455119c5bdd3d61" + integrity sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== + +dir-compare@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz#785c41dc5f645b34343a4eafc50b79bac7f11631" + integrity sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA== + dependencies: + buffer-equal "1.0.0" + colors "1.0.3" + commander "2.9.0" + minimatch "3.0.4" + +dmg-builder@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz#5956008c18d40ee72c0ea01ffea9590dbf51df89" + integrity sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ== + dependencies: + app-builder-lib "22.11.7" + builder-util "22.11.7" + builder-util-runtime "8.7.6" + fs-extra "^10.0.0" + iconv-lite "^0.6.2" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.9" + +dmg-license@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz#a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f" + integrity sha512-Rq6qMDaDou2+aPN2SYy0x7LDznoJ/XaG6oDcH5wXUp+WRWQMUYE6eM+F+nex+/LSXOp1uw4HLFoed0YbfU8R/Q== + dependencies: + "@types/plist" "^3.0.1" + "@types/verror" "^1.10.3" + ajv "^6.10.0" + cli-truncate "^1.1.0" + crc "^3.8.0" + iconv-corefoundation "^1.1.6" + plist "^3.0.1" + smart-buffer "^4.0.2" + verror "^1.10.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ejs@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + dependencies: + jake "^10.6.1" + +electron-builder@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz#cd97a0d9f6e6d388112e66b4376de431cca4d596" + integrity sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw== + dependencies: + "@types/yargs" "^16.0.2" + app-builder-lib "22.11.7" + builder-util "22.11.7" + builder-util-runtime "8.7.7" + chalk "^4.1.1" + dmg-builder "22.11.7" + fs-extra "^10.0.0" + is-ci "^3.0.0" + lazy-val "^1.0.5" + read-config-file "6.2.0" + update-notifier "^5.1.0" + yargs "^17.0.1" + +electron-publish@22.11.7: + version "22.11.7" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz#4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a" + integrity sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw== + dependencies: + "@types/fs-extra" "^9.0.11" + builder-util "22.11.7" + builder-util-runtime "8.7.7" + chalk "^4.1.1" + fs-extra "^10.0.0" + lazy-val "^1.0.5" + mime "^2.5.2" + +electron-to-chromium@^1.3.723: + version "1.3.763" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz#93f6f02506d099941f557b9db9ba50b30215bf15" + integrity sha512-UyvEPae0wvzsyNJhVfGeFSOlUkHEze8xSIiExO5tZQ8QTr7obFiJWGk3U4e7afFOJMQJDszqU/3Pk5jtKiaSEg== + +electron@13.1.4: + version "13.1.4" + resolved "https://registry.yarnpkg.com/electron/-/electron-13.1.4.tgz#6d20d932a0651c3cba9f09a3d08cbaf5b69aa84b" + integrity sha512-4qhRZbRvGqHmMWsCG/kRVF4X8VIq9Nujgm+gXZLBSpiR6uUtMHy7ViBTQZl1PGf6O9Ppxhpr9Yz+k6Um9WoP3Q== + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^14.6.2" + extract-zip "^1.0.3" + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-plugin-compat@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz#a7a224e09b102b58e7f7dff52c936428ff3e0186" + integrity sha512-lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg== + dependencies: + "@mdn/browser-compat-data" "^2.0.7" + ast-metadata-inferer "^0.4.0" + browserslist "^4.12.2" + caniuse-lite "^1.0.30001166" + core-js "^3.6.5" + find-up "^4.1.0" + lodash.memoize "4.1.2" + semver "7.3.2" + +eslint-plugin-sort-keys-fix@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-sort-keys-fix/-/eslint-plugin-sort-keys-fix-1.1.1.tgz#2ed201b53fd4a89552c6e2abd38933f330a4b62e" + integrity sha512-x02SLBg+8OEaoT9vvMbsgeInw17wjHLsa9cOieIVQY+xMNRiXBbyMWw+NiBoxYyJIR4QKDOPDofCjQdoSvltQg== + dependencies: + requireindex "~1.2.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@7.29.0: + version "7.29.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz#ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0" + integrity sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expect@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" + integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== + dependencies: + "@jest/types" "^27.0.6" + ansi-styles "^5.0.0" + jest-get-type "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-regex-util "^27.0.6" + +extend@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extract-zip@^1.0.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" + integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== + dependencies: + concat-stream "^1.6.2" + debug "^2.6.9" + mkdirp "^0.5.4" + yauzl "^2.10.0" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-xml-parser@^3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01" + integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" + integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== + dependencies: + minimatch "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^2.0.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global-tunnel-ng@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" + integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== + dependencies: + encodeurl "^1.0.2" + lodash "^4.17.10" + npm-conf "^1.1.3" + tunnel "^0.0.6" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hosted-git-info@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" + integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + dependencies: + lru-cache "^6.0.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-corefoundation@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz#27c135470237f6f8d13462fa1f5eaf250523c29a" + integrity sha512-1NBe55C75bKGZaY9UHxvXG3G0gEp0ziht7quhuFrW3SPgZDw9HI6qvYXRSV5M/Eupyu8ljuJ6Cba+ec15PZ4Xw== + dependencies: + cli-truncate "^1.1.0" + node-addon-api "^1.6.3" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + +is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz#8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b" + integrity sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA== + dependencies: + fast-xml-parser "^3.19.0" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isbinaryfile@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" + integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== + dependencies: + async "0.9.x" + chalk "^2.4.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +jest-changed-files@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" + integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== + dependencies: + "@jest/types" "^27.0.6" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" + integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.0.6" + is-generator-fn "^2.0.0" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" + integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== + dependencies: + "@jest/core" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + jest-config "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + prompts "^2.0.1" + yargs "^16.0.3" + +jest-config@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" + integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^27.0.6" + "@jest/types" "^27.0.6" + babel-jest "^27.0.6" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + jest-circus "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-get-type "^27.0.6" + jest-jasmine2 "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runner "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + micromatch "^4.0.4" + pretty-format "^27.0.6" + +jest-diff@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" + integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-docblock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" + integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" + integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== + dependencies: + "@jest/types" "^27.0.6" + chalk "^4.0.0" + jest-get-type "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + +jest-environment-jsdom@27.0.6, jest-environment-jsdom@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" + integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + jest-util "^27.0.6" + jsdom "^16.6.0" + +jest-environment-node@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" + integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== + dependencies: + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + jest-mock "^27.0.6" + jest-util "^27.0.6" + +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== + +jest-haste-map@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" + integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== + dependencies: + "@jest/types" "^27.0.6" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^27.0.6" + jest-serializer "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" + integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.0.6" + is-generator-fn "^2.0.0" + jest-each "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-runtime "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + pretty-format "^27.0.6" + throat "^6.0.1" + +jest-leak-detector@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" + integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== + dependencies: + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-matcher-utils@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" + integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== + dependencies: + chalk "^4.0.0" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.0.6" + +jest-message-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" + integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.0.6" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.0.6" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" + integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== + +jest-resolve-dependencies@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" + integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== + dependencies: + "@jest/types" "^27.0.6" + jest-regex-util "^27.0.6" + jest-snapshot "^27.0.6" + +jest-resolve@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" + integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== + dependencies: + "@jest/types" "^27.0.6" + chalk "^4.0.0" + escalade "^3.1.1" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^27.0.6" + jest-validate "^27.0.6" + resolve "^1.20.0" + slash "^3.0.0" + +jest-runner@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" + integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-docblock "^27.0.6" + jest-environment-jsdom "^27.0.6" + jest-environment-node "^27.0.6" + jest-haste-map "^27.0.6" + jest-leak-detector "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-runtime "^27.0.6" + jest-util "^27.0.6" + jest-worker "^27.0.6" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" + integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== + dependencies: + "@jest/console" "^27.0.6" + "@jest/environment" "^27.0.6" + "@jest/fake-timers" "^27.0.6" + "@jest/globals" "^27.0.6" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.0.6" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-haste-map "^27.0.6" + jest-message-util "^27.0.6" + jest-mock "^27.0.6" + jest-regex-util "^27.0.6" + jest-resolve "^27.0.6" + jest-snapshot "^27.0.6" + jest-util "^27.0.6" + jest-validate "^27.0.6" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^16.0.3" + +jest-serializer@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" + integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" + integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.0.6" + graceful-fs "^4.2.4" + jest-diff "^27.0.6" + jest-get-type "^27.0.6" + jest-haste-map "^27.0.6" + jest-matcher-utils "^27.0.6" + jest-message-util "^27.0.6" + jest-resolve "^27.0.6" + jest-util "^27.0.6" + natural-compare "^1.4.0" + pretty-format "^27.0.6" + semver "^7.3.2" + +jest-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" + integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== + dependencies: + "@jest/types" "^27.0.6" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + picomatch "^2.2.3" + +jest-validate@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" + integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== + dependencies: + "@jest/types" "^27.0.6" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.0.6" + leven "^3.1.0" + pretty-format "^27.0.6" + +jest-watcher@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" + integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== + dependencies: + "@jest/test-result" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.0.6" + string-length "^4.0.1" + +jest-worker@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" + integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== + dependencies: + "@jest/core" "^27.0.6" + import-local "^3.0.2" + jest-cli "^27.0.6" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsdom@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" + integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.5" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^2.1.2, json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lazy-val@^1.0.4, lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.memoize@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash@^4.17.10, lodash@^4.17.15, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.48.0: + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== + +mime-types@^2.1.12: + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== + dependencies: + mime-db "1.48.0" + +mime@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +node-addon-api@^1.6.3: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-releases@^1.1.71: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +npm-conf@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +picomatch@^2.0.4, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +plist@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz#74bbf011124b90421c22d15779cee60060ba95bc" + integrity sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^9.0.7" + xmldom "^0.5.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +pretty-format@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" + integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== + dependencies: + "@jest/types" "^27.0.6" + ansi-regex "^5.0.0" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0, progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-config-file@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz#71536072330bcd62ba814f91458b12add9fc7ade" + integrity sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg== + dependencies: + dotenv "^9.0.2" + dotenv-expand "^5.1.0" + js-yaml "^4.1.0" + json5 "^2.2.0" + lazy-val "^1.0.4" + +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requireindex@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== + dependencies: + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +source-map-support@^0.5.19, source-map-support@^0.5.6: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stack-utils@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== + dependencies: + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^10.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +tldts-core@^5.7.38: + version "5.7.38" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.38.tgz#779092c90941803fb682c3d7094a88f12aad4508" + integrity sha512-mcL16YTXjpVJ+ekoKC/ddvdjGNMg8HkdWQNp3WNz26WJMV7Z2Hjr1IPwYYr9W3LxGdXV7mmg21Zk2vSstiSsFg== + +tldts-experimental@^5.6.21: + version "5.7.38" + resolved "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.38.tgz#a2b03ae0282ee7439b1ed1618a1d7d2e9e66be78" + integrity sha512-3L0yML53LSw3tlRPwHcGOf35l3dhZx/3DgPGWL3ILATnuu76OiAOvJ4Xw1Znl6sIxVKJ4B4BE0zroZMMzsHg/A== + dependencies: + tldts-core "^5.7.38" + +tmp-promise@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a" + integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= + dependencies: + utf8-byte-length "^1.0.1" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0, universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" + integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +verror@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.4.5: + version "7.5.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.1.tgz#44fc000d87edb1d9c53e51fbc69a0ac1f6871d66" + integrity sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlbuilder@>=11.0.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +xmlbuilder@^9.0.7: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmldom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e" + integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb" + integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0" diff --git a/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix new file mode 100644 index 000000000000..a92d6defef9f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vieb/yarn.nix @@ -0,0 +1,4917 @@ +{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec { + offline_cache = linkFarm "offline" packages; + packages = [ + { + name = "7zip_bin___7zip_bin_5.1.1.tgz"; + path = fetchurl { + name = "7zip_bin___7zip_bin_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz"; + sha1 = "9274ec7460652f9c632c59addf24efb1684ef876"; + }; + } + { + name = "_babel_code_frame___code_frame_7.12.11.tgz"; + path = fetchurl { + name = "_babel_code_frame___code_frame_7.12.11.tgz"; + url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz"; + sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f"; + }; + } + { + name = "_babel_code_frame___code_frame_7.14.5.tgz"; + path = fetchurl { + name = "_babel_code_frame___code_frame_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz"; + sha1 = "23b08d740e83f49c5e59945fbf1b43e80bbf4edb"; + }; + } + { + name = "_babel_compat_data___compat_data_7.14.7.tgz"; + path = fetchurl { + name = "_babel_compat_data___compat_data_7.14.7.tgz"; + url = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz"; + sha1 = "7b047d7a3a89a67d2258dc61f604f098f1bc7e08"; + }; + } + { + name = "_babel_core___core_7.14.6.tgz"; + path = fetchurl { + name = "_babel_core___core_7.14.6.tgz"; + url = "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz"; + sha1 = "e0814ec1a950032ff16c13a2721de39a8416fcab"; + }; + } + { + name = "_babel_generator___generator_7.14.5.tgz"; + path = fetchurl { + name = "_babel_generator___generator_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz"; + sha1 = "848d7b9f031caca9d0cd0af01b063f226f52d785"; + }; + } + { + name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_compilation_targets___helper_compilation_targets_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz"; + sha1 = "7a99c5d0967911e972fe2c3411f7d5b498498ecf"; + }; + } + { + name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz"; + sha1 = "89e2c474972f15d8e233b52ee8c480e2cfcd50c4"; + }; + } + { + name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz"; + sha1 = "25fbfa579b0937eee1f3b805ece4ce398c431815"; + }; + } + { + name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz"; + sha1 = "e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"; + }; + } + { + name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.14.7.tgz"; + path = fetchurl { + name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.14.7.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz"; + sha1 = "97e56244beb94211fe277bd818e3a329c66f7970"; + }; + } + { + name = "_babel_helper_module_imports___helper_module_imports_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_module_imports___helper_module_imports_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz"; + sha1 = "6d1a44df6a38c957aa7c312da076429f11b422f3"; + }; + } + { + name = "_babel_helper_module_transforms___helper_module_transforms_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_module_transforms___helper_module_transforms_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz"; + sha1 = "7de42f10d789b423eb902ebd24031ca77cb1e10e"; + }; + } + { + name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz"; + sha1 = "f27395a8619e0665b3f0364cddb41c25d71b499c"; + }; + } + { + name = "_babel_helper_plugin_utils___helper_plugin_utils_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_plugin_utils___helper_plugin_utils_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz"; + sha1 = "5ac822ce97eec46741ab70a517971e443a70c5a9"; + }; + } + { + name = "_babel_helper_replace_supers___helper_replace_supers_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_replace_supers___helper_replace_supers_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz"; + sha1 = "0ecc0b03c41cd567b4024ea016134c28414abb94"; + }; + } + { + name = "_babel_helper_simple_access___helper_simple_access_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_simple_access___helper_simple_access_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz"; + sha1 = "66ea85cf53ba0b4e588ba77fc813f53abcaa41c4"; + }; + } + { + name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz"; + sha1 = "22b23a54ef51c2b7605d851930c1976dd0bc693a"; + }; + } + { + name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz"; + sha1 = "d0f0e277c512e0c938277faa85a3968c9a44c0e8"; + }; + } + { + name = "_babel_helper_validator_option___helper_validator_option_7.14.5.tgz"; + path = fetchurl { + name = "_babel_helper_validator_option___helper_validator_option_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz"; + sha1 = "6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"; + }; + } + { + name = "_babel_helpers___helpers_7.14.6.tgz"; + path = fetchurl { + name = "_babel_helpers___helpers_7.14.6.tgz"; + url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz"; + sha1 = "5b58306b95f1b47e2a0199434fa8658fa6c21635"; + }; + } + { + name = "_babel_highlight___highlight_7.14.5.tgz"; + path = fetchurl { + name = "_babel_highlight___highlight_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz"; + sha1 = "6861a52f03966405001f6aa534a01a24d99e8cd9"; + }; + } + { + name = "_babel_parser___parser_7.14.7.tgz"; + path = fetchurl { + name = "_babel_parser___parser_7.14.7.tgz"; + url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz"; + sha1 = "6099720c8839ca865a2637e6c85852ead0bdb595"; + }; + } + { + name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.8.4.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"; + sha1 = "a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"; + }; + } + { + name = "_babel_plugin_syntax_bigint___plugin_syntax_bigint_7.8.3.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_bigint___plugin_syntax_bigint_7.8.3.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz"; + sha1 = "4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"; + }; + } + { + name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.13.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz"; + sha1 = "b5c987274c4a3a82b89714796931a6b53544ae10"; + }; + } + { + name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.10.4.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_import_meta___plugin_syntax_import_meta_7.10.4.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz"; + sha1 = "ee601348c370fa334d2207be158777496521fd51"; + }; + } + { + name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.8.3.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"; + sha1 = "01ca21b668cd8218c9e640cb6dd88c5412b2c96a"; + }; + } + { + name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.4.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.4.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"; + sha1 = "ca91ef46303530448b906652bac2e9fe9941f699"; + }; + } + { + name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_nullish_coalescing_operator___plugin_syntax_nullish_coalescing_operator_7.8.3.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"; + sha1 = "167ed70368886081f74b5c36c65a88c03b66d1a9"; + }; + } + { + name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.4.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.4.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"; + sha1 = "b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"; + }; + } + { + name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.8.3.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"; + sha1 = "60e225edcbd98a640332a2e72dd3e66f1af55871"; + }; + } + { + name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.8.3.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"; + sha1 = "6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"; + }; + } + { + name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_optional_chaining___plugin_syntax_optional_chaining_7.8.3.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"; + sha1 = "4f69c2ab95167e0180cd5336613f8c5788f7d48a"; + }; + } + { + name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.14.5.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz"; + sha1 = "c1cfdadc35a646240001f06138247b741c34d94c"; + }; + } + { + name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.14.5.tgz"; + path = fetchurl { + name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz"; + sha1 = "b82c6ce471b165b5ce420cf92914d6fb46225716"; + }; + } + { + name = "_babel_template___template_7.14.5.tgz"; + path = fetchurl { + name = "_babel_template___template_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz"; + sha1 = "a9bc9d8b33354ff6e55a9c60d1109200a68974f4"; + }; + } + { + name = "_babel_traverse___traverse_7.14.7.tgz"; + path = fetchurl { + name = "_babel_traverse___traverse_7.14.7.tgz"; + url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz"; + sha1 = "64007c9774cfdc3abd23b0780bc18a3ce3631753"; + }; + } + { + name = "_babel_types___types_7.14.5.tgz"; + path = fetchurl { + name = "_babel_types___types_7.14.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz"; + sha1 = "3bb997ba829a2104cedb20689c4a5b8121d383ff"; + }; + } + { + name = "_bcoe_v8_coverage___v8_coverage_0.2.3.tgz"; + path = fetchurl { + name = "_bcoe_v8_coverage___v8_coverage_0.2.3.tgz"; + url = "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"; + sha1 = "75a2e8b51cb758a7553d6804a5932d7aace75c39"; + }; + } + { + name = "_cliqz_adblocker_content___adblocker_content_1.22.2.tgz"; + path = fetchurl { + name = "_cliqz_adblocker_content___adblocker_content_1.22.2.tgz"; + url = "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.22.2.tgz"; + sha1 = "643849d5f08c167eb84a2e7e3f1f9fbc41a3889b"; + }; + } + { + name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.22.2.tgz"; + path = fetchurl { + name = "_cliqz_adblocker_electron_preload___adblocker_electron_preload_1.22.2.tgz"; + url = "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.22.2.tgz"; + sha1 = "eea674767a60abe4e5f9ccb46188d33656f551d0"; + }; + } + { + name = "_cliqz_adblocker_electron___adblocker_electron_1.22.2.tgz"; + path = fetchurl { + name = "_cliqz_adblocker_electron___adblocker_electron_1.22.2.tgz"; + url = "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.22.2.tgz"; + sha1 = "85af3b49f7f653e6fb0d008b6523e3b3ba0dd41e"; + }; + } + { + name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.22.2.tgz"; + path = fetchurl { + name = "_cliqz_adblocker_extended_selectors___adblocker_extended_selectors_1.22.2.tgz"; + url = "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.22.2.tgz"; + sha1 = "1cad3c1569b765d9e7f8672c85b2a7b1e8e9ee90"; + }; + } + { + name = "_cliqz_adblocker___adblocker_1.22.2.tgz"; + path = fetchurl { + name = "_cliqz_adblocker___adblocker_1.22.2.tgz"; + url = "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.22.2.tgz"; + sha1 = "99a14d56327734d3083a077d96fe7b91c236bf7a"; + }; + } + { + name = "_develar_schema_utils___schema_utils_2.6.5.tgz"; + path = fetchurl { + name = "_develar_schema_utils___schema_utils_2.6.5.tgz"; + url = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz"; + sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6"; + }; + } + { + name = "_electron_get___get_1.12.4.tgz"; + path = fetchurl { + name = "_electron_get___get_1.12.4.tgz"; + url = "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz"; + sha1 = "a5971113fc1bf8fa12a8789dc20152a7359f06ab"; + }; + } + { + name = "_electron_universal___universal_1.0.5.tgz"; + path = fetchurl { + name = "_electron_universal___universal_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz"; + sha1 = "b812340e4ef21da2b3ee77b2b4d35c9b86defe37"; + }; + } + { + name = "_eslint_eslintrc___eslintrc_0.4.2.tgz"; + path = fetchurl { + name = "_eslint_eslintrc___eslintrc_0.4.2.tgz"; + url = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz"; + sha1 = "f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"; + }; + } + { + name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz"; + path = fetchurl { + name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz"; + sha1 = "fd3db1d59ecf7cf121e80650bb86712f9b55eced"; + }; + } + { + name = "_istanbuljs_schema___schema_0.1.3.tgz"; + path = fetchurl { + name = "_istanbuljs_schema___schema_0.1.3.tgz"; + url = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz"; + sha1 = "e45e384e4b8ec16bce2fd903af78450f6bf7ec98"; + }; + } + { + name = "_jest_console___console_27.0.6.tgz"; + path = fetchurl { + name = "_jest_console___console_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz"; + sha1 = "3eb72ea80897495c3d73dd97aab7f26770e2260f"; + }; + } + { + name = "_jest_core___core_27.0.6.tgz"; + path = fetchurl { + name = "_jest_core___core_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz"; + sha1 = "c5f642727a0b3bf0f37c4b46c675372d0978d4a1"; + }; + } + { + name = "_jest_environment___environment_27.0.6.tgz"; + path = fetchurl { + name = "_jest_environment___environment_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz"; + sha1 = "ee293fe996db01d7d663b8108fa0e1ff436219d2"; + }; + } + { + name = "_jest_fake_timers___fake_timers_27.0.6.tgz"; + path = fetchurl { + name = "_jest_fake_timers___fake_timers_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz"; + sha1 = "cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df"; + }; + } + { + name = "_jest_globals___globals_27.0.6.tgz"; + path = fetchurl { + name = "_jest_globals___globals_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz"; + sha1 = "48e3903f99a4650673d8657334d13c9caf0e8f82"; + }; + } + { + name = "_jest_reporters___reporters_27.0.6.tgz"; + path = fetchurl { + name = "_jest_reporters___reporters_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz"; + sha1 = "91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00"; + }; + } + { + name = "_jest_source_map___source_map_27.0.6.tgz"; + path = fetchurl { + name = "_jest_source_map___source_map_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz"; + sha1 = "be9e9b93565d49b0548b86e232092491fb60551f"; + }; + } + { + name = "_jest_test_result___test_result_27.0.6.tgz"; + path = fetchurl { + name = "_jest_test_result___test_result_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz"; + sha1 = "3fa42015a14e4fdede6acd042ce98c7f36627051"; + }; + } + { + name = "_jest_test_sequencer___test_sequencer_27.0.6.tgz"; + path = fetchurl { + name = "_jest_test_sequencer___test_sequencer_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz"; + sha1 = "80a913ed7a1130545b1cd777ff2735dd3af5d34b"; + }; + } + { + name = "_jest_transform___transform_27.0.6.tgz"; + path = fetchurl { + name = "_jest_transform___transform_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz"; + sha1 = "189ad7107413208f7600f4719f81dd2f7278cc95"; + }; + } + { + name = "_jest_types___types_27.0.6.tgz"; + path = fetchurl { + name = "_jest_types___types_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz"; + sha1 = "9a992bc517e0c49f035938b8549719c2de40706b"; + }; + } + { + name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz"; + path = fetchurl { + name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz"; + sha1 = "504af200af6b98e198bce768bc1730c6936ae01d"; + }; + } + { + name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz"; + path = fetchurl { + name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz"; + sha1 = "e8a32c30a95d20c2b1bb635cc580981a06389858"; + }; + } + { + name = "_mdn_browser_compat_data___browser_compat_data_2.0.7.tgz"; + path = fetchurl { + name = "_mdn_browser_compat_data___browser_compat_data_2.0.7.tgz"; + url = "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz"; + sha1 = "72ec37b9c1e00ce0b4e0309d753be18e2da12ee3"; + }; + } + { + name = "_remusao_guess_url_type___guess_url_type_1.2.1.tgz"; + path = fetchurl { + name = "_remusao_guess_url_type___guess_url_type_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/@remusao/guess-url-type/-/guess-url-type-1.2.1.tgz"; + sha1 = "b3e7c32abdf98d0fb4f93cc67cad580b5fe4ba57"; + }; + } + { + name = "_remusao_small___small_1.2.1.tgz"; + path = fetchurl { + name = "_remusao_small___small_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/@remusao/small/-/small-1.2.1.tgz"; + sha1 = "63bfe4548832289f94ac868a0c305970c9a0e5f9"; + }; + } + { + name = "_remusao_smaz_compress___smaz_compress_1.9.1.tgz"; + path = fetchurl { + name = "_remusao_smaz_compress___smaz_compress_1.9.1.tgz"; + url = "https://registry.yarnpkg.com/@remusao/smaz-compress/-/smaz-compress-1.9.1.tgz"; + sha1 = "fc75eaf9bcac2d58bc4c3d518183a7cb9612d275"; + }; + } + { + name = "_remusao_smaz_decompress___smaz_decompress_1.9.1.tgz"; + path = fetchurl { + name = "_remusao_smaz_decompress___smaz_decompress_1.9.1.tgz"; + url = "https://registry.yarnpkg.com/@remusao/smaz-decompress/-/smaz-decompress-1.9.1.tgz"; + sha1 = "8094f997e8fb591a678cda9cf08c209c825eba5b"; + }; + } + { + name = "_remusao_smaz___smaz_1.9.1.tgz"; + path = fetchurl { + name = "_remusao_smaz___smaz_1.9.1.tgz"; + url = "https://registry.yarnpkg.com/@remusao/smaz/-/smaz-1.9.1.tgz"; + sha1 = "a2b9b045385f81e1615a68d932b7cc8b04c9db8d"; + }; + } + { + name = "_remusao_trie___trie_1.4.1.tgz"; + path = fetchurl { + name = "_remusao_trie___trie_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/@remusao/trie/-/trie-1.4.1.tgz"; + sha1 = "755d09f8a007476334e611f42719b2d581f00720"; + }; + } + { + name = "_sindresorhus_is___is_0.14.0.tgz"; + path = fetchurl { + name = "_sindresorhus_is___is_0.14.0.tgz"; + url = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz"; + sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea"; + }; + } + { + name = "_sinonjs_commons___commons_1.8.3.tgz"; + path = fetchurl { + name = "_sinonjs_commons___commons_1.8.3.tgz"; + url = "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz"; + sha1 = "3802ddd21a50a949b6721ddd72da36e67e7f1b2d"; + }; + } + { + name = "_sinonjs_fake_timers___fake_timers_7.1.2.tgz"; + path = fetchurl { + name = "_sinonjs_fake_timers___fake_timers_7.1.2.tgz"; + url = "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz"; + sha1 = "2524eae70c4910edccf99b2f4e6efc5894aff7b5"; + }; + } + { + name = "_szmarczak_http_timer___http_timer_1.1.2.tgz"; + path = fetchurl { + name = "_szmarczak_http_timer___http_timer_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz"; + sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"; + }; + } + { + name = "_tootallnate_once___once_1.1.2.tgz"; + path = fetchurl { + name = "_tootallnate_once___once_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz"; + sha1 = "ccb91445360179a04e7fe6aff78c00ffc1eeaf82"; + }; + } + { + name = "_types_babel__core___babel__core_7.1.14.tgz"; + path = fetchurl { + name = "_types_babel__core___babel__core_7.1.14.tgz"; + url = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz"; + sha1 = "faaeefc4185ec71c389f4501ee5ec84b170cc402"; + }; + } + { + name = "_types_babel__generator___babel__generator_7.6.2.tgz"; + path = fetchurl { + name = "_types_babel__generator___babel__generator_7.6.2.tgz"; + url = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz"; + sha1 = "f3d71178e187858f7c45e30380f8f1b7415a12d8"; + }; + } + { + name = "_types_babel__template___babel__template_7.4.0.tgz"; + path = fetchurl { + name = "_types_babel__template___babel__template_7.4.0.tgz"; + url = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz"; + sha1 = "0c888dd70b3ee9eebb6e4f200e809da0076262be"; + }; + } + { + name = "_types_babel__traverse___babel__traverse_7.14.0.tgz"; + path = fetchurl { + name = "_types_babel__traverse___babel__traverse_7.14.0.tgz"; + url = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.0.tgz"; + sha1 = "a34277cf8acbd3185ea74129e1f100491eb1da7f"; + }; + } + { + name = "_types_chrome___chrome_0.0.145.tgz"; + path = fetchurl { + name = "_types_chrome___chrome_0.0.145.tgz"; + url = "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.145.tgz"; + sha1 = "6c53ae0af5f25350b07bfd24cf459b5fe65cd9b8"; + }; + } + { + name = "_types_debug___debug_4.1.5.tgz"; + path = fetchurl { + name = "_types_debug___debug_4.1.5.tgz"; + url = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz"; + sha1 = "b14efa8852b7768d898906613c23f688713e02cd"; + }; + } + { + name = "_types_filesystem___filesystem_0.0.31.tgz"; + path = fetchurl { + name = "_types_filesystem___filesystem_0.0.31.tgz"; + url = "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.31.tgz"; + sha1 = "121a1ded274a2dc731d5e0d90163a920ad6a9ef1"; + }; + } + { + name = "_types_filewriter___filewriter_0.0.29.tgz"; + path = fetchurl { + name = "_types_filewriter___filewriter_0.0.29.tgz"; + url = "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz"; + sha1 = "a48795ecadf957f6c0d10e0c34af86c098fa5bee"; + }; + } + { + name = "_types_firefox_webext_browser___firefox_webext_browser_82.0.0.tgz"; + path = fetchurl { + name = "_types_firefox_webext_browser___firefox_webext_browser_82.0.0.tgz"; + url = "https://registry.yarnpkg.com/@types/firefox-webext-browser/-/firefox-webext-browser-82.0.0.tgz"; + sha1 = "4d0f5cfebd7321d2cbf0ccfb6032570f0138b958"; + }; + } + { + name = "_types_fs_extra___fs_extra_9.0.11.tgz"; + path = fetchurl { + name = "_types_fs_extra___fs_extra_9.0.11.tgz"; + url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz"; + sha1 = "8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87"; + }; + } + { + name = "_types_glob___glob_7.1.3.tgz"; + path = fetchurl { + name = "_types_glob___glob_7.1.3.tgz"; + url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz"; + sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183"; + }; + } + { + name = "_types_graceful_fs___graceful_fs_4.1.5.tgz"; + path = fetchurl { + name = "_types_graceful_fs___graceful_fs_4.1.5.tgz"; + url = "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz"; + sha1 = "21ffba0d98da4350db64891f92a9e5db3cdb4e15"; + }; + } + { + name = "_types_har_format___har_format_1.2.6.tgz"; + path = fetchurl { + name = "_types_har_format___har_format_1.2.6.tgz"; + url = "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.6.tgz"; + sha1 = "471c83acdf6a2ea429620daee4c6dc1784a0e85f"; + }; + } + { + name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz"; + path = fetchurl { + name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz"; + sha1 = "4ba8ddb720221f432e443bd5f9117fd22cfd4762"; + }; + } + { + name = "_types_istanbul_lib_report___istanbul_lib_report_3.0.0.tgz"; + path = fetchurl { + name = "_types_istanbul_lib_report___istanbul_lib_report_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"; + sha1 = "c14c24f18ea8190c118ee7562b7ff99a36552686"; + }; + } + { + name = "_types_istanbul_reports___istanbul_reports_3.0.1.tgz"; + path = fetchurl { + name = "_types_istanbul_reports___istanbul_reports_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz"; + sha1 = "9153fe98bba2bd565a63add9436d6f0d7f8468ff"; + }; + } + { + name = "_types_minimatch___minimatch_3.0.4.tgz"; + path = fetchurl { + name = "_types_minimatch___minimatch_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz"; + sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21"; + }; + } + { + name = "_types_node___node_15.12.5.tgz"; + path = fetchurl { + name = "_types_node___node_15.12.5.tgz"; + url = "https://registry.yarnpkg.com/@types/node/-/node-15.12.5.tgz"; + sha1 = "9a78318a45d75c9523d2396131bd3cca54b2d185"; + }; + } + { + name = "_types_node___node_14.17.4.tgz"; + path = fetchurl { + name = "_types_node___node_14.17.4.tgz"; + url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.4.tgz"; + sha1 = "218712242446fc868d0e007af29a4408c7765bc0"; + }; + } + { + name = "_types_plist___plist_3.0.2.tgz"; + path = fetchurl { + name = "_types_plist___plist_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz"; + sha1 = "61b3727bba0f5c462fe333542534a0c3e19ccb01"; + }; + } + { + name = "_types_prettier___prettier_2.3.0.tgz"; + path = fetchurl { + name = "_types_prettier___prettier_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz"; + sha1 = "2e8332cc7363f887d32ec5496b207d26ba8052bb"; + }; + } + { + name = "_types_stack_utils___stack_utils_2.0.0.tgz"; + path = fetchurl { + name = "_types_stack_utils___stack_utils_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz"; + sha1 = "7036640b4e21cc2f259ae826ce843d277dad8cff"; + }; + } + { + name = "_types_verror___verror_1.10.4.tgz"; + path = fetchurl { + name = "_types_verror___verror_1.10.4.tgz"; + url = "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz"; + sha1 = "805c0612b3a0c124cf99f517364142946b74ba3b"; + }; + } + { + name = "_types_yargs_parser___yargs_parser_20.2.0.tgz"; + path = fetchurl { + name = "_types_yargs_parser___yargs_parser_20.2.0.tgz"; + url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz"; + sha1 = "dd3e6699ba3237f0348cd085e4698780204842f9"; + }; + } + { + name = "_types_yargs___yargs_16.0.3.tgz"; + path = fetchurl { + name = "_types_yargs___yargs_16.0.3.tgz"; + url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz"; + sha1 = "4b6d35bb8e680510a7dc2308518a80ee1ef27e01"; + }; + } + { + name = "abab___abab_2.0.5.tgz"; + path = fetchurl { + name = "abab___abab_2.0.5.tgz"; + url = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz"; + sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a"; + }; + } + { + name = "acorn_globals___acorn_globals_6.0.0.tgz"; + path = fetchurl { + name = "acorn_globals___acorn_globals_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz"; + sha1 = "46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"; + }; + } + { + name = "acorn_jsx___acorn_jsx_5.3.1.tgz"; + path = fetchurl { + name = "acorn_jsx___acorn_jsx_5.3.1.tgz"; + url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz"; + sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b"; + }; + } + { + name = "acorn_walk___acorn_walk_7.2.0.tgz"; + path = fetchurl { + name = "acorn_walk___acorn_walk_7.2.0.tgz"; + url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz"; + sha1 = "0de889a601203909b0fbe07b8938dc21d2e967bc"; + }; + } + { + name = "acorn___acorn_7.4.1.tgz"; + path = fetchurl { + name = "acorn___acorn_7.4.1.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz"; + sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa"; + }; + } + { + name = "acorn___acorn_8.4.1.tgz"; + path = fetchurl { + name = "acorn___acorn_8.4.1.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz"; + sha1 = "56c36251fc7cabc7096adc18f05afe814321a28c"; + }; + } + { + name = "agent_base___agent_base_6.0.2.tgz"; + path = fetchurl { + name = "agent_base___agent_base_6.0.2.tgz"; + url = "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz"; + sha1 = "49fff58577cfee3f37176feab4c22e00f86d7f77"; + }; + } + { + name = "ajv_keywords___ajv_keywords_3.5.2.tgz"; + path = fetchurl { + name = "ajv_keywords___ajv_keywords_3.5.2.tgz"; + url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz"; + sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d"; + }; + } + { + name = "ajv___ajv_6.12.6.tgz"; + path = fetchurl { + name = "ajv___ajv_6.12.6.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz"; + sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4"; + }; + } + { + name = "ajv___ajv_8.6.0.tgz"; + path = fetchurl { + name = "ajv___ajv_8.6.0.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz"; + sha1 = "60cc45d9c46a477d80d92c48076d972c342e5720"; + }; + } + { + name = "ansi_align___ansi_align_3.0.0.tgz"; + path = fetchurl { + name = "ansi_align___ansi_align_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz"; + sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb"; + }; + } + { + name = "ansi_colors___ansi_colors_4.1.1.tgz"; + path = fetchurl { + name = "ansi_colors___ansi_colors_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz"; + sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348"; + }; + } + { + name = "ansi_escapes___ansi_escapes_4.3.2.tgz"; + path = fetchurl { + name = "ansi_escapes___ansi_escapes_4.3.2.tgz"; + url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz"; + sha1 = "6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"; + }; + } + { + name = "ansi_regex___ansi_regex_3.0.0.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz"; + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; + }; + } + { + name = "ansi_regex___ansi_regex_4.1.0.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz"; + sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997"; + }; + } + { + name = "ansi_regex___ansi_regex_5.0.0.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz"; + sha1 = "388539f55179bf39339c81af30a654d69f87cb75"; + }; + } + { + name = "ansi_styles___ansi_styles_3.2.1.tgz"; + path = fetchurl { + name = "ansi_styles___ansi_styles_3.2.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d"; + }; + } + { + name = "ansi_styles___ansi_styles_4.3.0.tgz"; + path = fetchurl { + name = "ansi_styles___ansi_styles_4.3.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz"; + sha1 = "edd803628ae71c04c85ae7a0906edad34b648937"; + }; + } + { + name = "ansi_styles___ansi_styles_5.2.0.tgz"; + path = fetchurl { + name = "ansi_styles___ansi_styles_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz"; + sha1 = "07449690ad45777d1924ac2abb2fc8895dba836b"; + }; + } + { + name = "anymatch___anymatch_3.1.2.tgz"; + path = fetchurl { + name = "anymatch___anymatch_3.1.2.tgz"; + url = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz"; + sha1 = "c0557c096af32f106198f4f4e2a383537e378716"; + }; + } + { + name = "app_builder_bin___app_builder_bin_3.5.13.tgz"; + path = fetchurl { + name = "app_builder_bin___app_builder_bin_3.5.13.tgz"; + url = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz"; + sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e"; + }; + } + { + name = "app_builder_lib___app_builder_lib_22.11.7.tgz"; + path = fetchurl { + name = "app_builder_lib___app_builder_lib_22.11.7.tgz"; + url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz"; + sha1 = "c0ad1119ebfbf4189a8280ad693625f5e684dca6"; + }; + } + { + name = "archiver_utils___archiver_utils_2.1.0.tgz"; + path = fetchurl { + name = "archiver_utils___archiver_utils_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz"; + sha1 = "e8a460e94b693c3e3da182a098ca6285ba9249e2"; + }; + } + { + name = "archiver___archiver_5.3.0.tgz"; + path = fetchurl { + name = "archiver___archiver_5.3.0.tgz"; + url = "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz"; + sha1 = "dd3e097624481741df626267564f7dd8640a45ba"; + }; + } + { + name = "argparse___argparse_1.0.10.tgz"; + path = fetchurl { + name = "argparse___argparse_1.0.10.tgz"; + url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz"; + sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911"; + }; + } + { + name = "argparse___argparse_2.0.1.tgz"; + path = fetchurl { + name = "argparse___argparse_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz"; + sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"; + }; + } + { + name = "asar___asar_3.0.3.tgz"; + path = fetchurl { + name = "asar___asar_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz"; + sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b"; + }; + } + { + name = "assert_plus___assert_plus_1.0.0.tgz"; + path = fetchurl { + name = "assert_plus___assert_plus_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + } + { + name = "ast_metadata_inferer___ast_metadata_inferer_0.4.0.tgz"; + path = fetchurl { + name = "ast_metadata_inferer___ast_metadata_inferer_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz"; + sha1 = "6be85ceeffcf267bd79db8e1ae731da44880b45f"; + }; + } + { + name = "astral_regex___astral_regex_2.0.0.tgz"; + path = fetchurl { + name = "astral_regex___astral_regex_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz"; + sha1 = "483143c567aeed4785759c0865786dc77d7d2e31"; + }; + } + { + name = "async_exit_hook___async_exit_hook_2.0.1.tgz"; + path = fetchurl { + name = "async_exit_hook___async_exit_hook_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz"; + sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3"; + }; + } + { + name = "async___async_0.9.2.tgz"; + path = fetchurl { + name = "async___async_0.9.2.tgz"; + url = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz"; + sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d"; + }; + } + { + name = "async___async_3.2.0.tgz"; + path = fetchurl { + name = "async___async_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz"; + sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720"; + }; + } + { + name = "asynckit___asynckit_0.4.0.tgz"; + path = fetchurl { + name = "asynckit___asynckit_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + } + { + name = "at_least_node___at_least_node_1.0.0.tgz"; + path = fetchurl { + name = "at_least_node___at_least_node_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz"; + sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2"; + }; + } + { + name = "babel_jest___babel_jest_27.0.6.tgz"; + path = fetchurl { + name = "babel_jest___babel_jest_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz"; + sha1 = "e99c6e0577da2655118e3608b68761a5a69bd0d8"; + }; + } + { + name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz"; + path = fetchurl { + name = "babel_plugin_istanbul___babel_plugin_istanbul_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz"; + sha1 = "e159ccdc9af95e0b570c75b4573b7c34d671d765"; + }; + } + { + name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_27.0.6.tgz"; + path = fetchurl { + name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz"; + sha1 = "f7c6b3d764af21cb4a2a1ab6870117dbde15b456"; + }; + } + { + name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_1.0.1.tgz"; + path = fetchurl { + name = "babel_preset_current_node_syntax___babel_preset_current_node_syntax_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz"; + sha1 = "b4399239b89b2a011f9ddbe3e4f401fc40cff73b"; + }; + } + { + name = "babel_preset_jest___babel_preset_jest_27.0.6.tgz"; + path = fetchurl { + name = "babel_preset_jest___babel_preset_jest_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz"; + sha1 = "909ef08e9f24a4679768be2f60a3df0856843f9d"; + }; + } + { + name = "balanced_match___balanced_match_1.0.2.tgz"; + path = fetchurl { + name = "balanced_match___balanced_match_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz"; + sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"; + }; + } + { + name = "base64_js___base64_js_1.5.1.tgz"; + path = fetchurl { + name = "base64_js___base64_js_1.5.1.tgz"; + url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz"; + sha1 = "1b1b440160a5bf7ad40b650f095963481903930a"; + }; + } + { + name = "bl___bl_4.1.0.tgz"; + path = fetchurl { + name = "bl___bl_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz"; + sha1 = "451535264182bec2fbbc83a62ab98cf11d9f7b3a"; + }; + } + { + name = "bluebird_lst___bluebird_lst_1.0.9.tgz"; + path = fetchurl { + name = "bluebird_lst___bluebird_lst_1.0.9.tgz"; + url = "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz"; + sha1 = "a64a0e4365658b9ab5fe875eb9dfb694189bb41c"; + }; + } + { + name = "bluebird___bluebird_3.7.2.tgz"; + path = fetchurl { + name = "bluebird___bluebird_3.7.2.tgz"; + url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz"; + sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f"; + }; + } + { + name = "boolean___boolean_3.1.2.tgz"; + path = fetchurl { + name = "boolean___boolean_3.1.2.tgz"; + url = "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz"; + sha1 = "e30f210a26b02458482a8cc353ab06f262a780c2"; + }; + } + { + name = "boxen___boxen_5.0.1.tgz"; + path = fetchurl { + name = "boxen___boxen_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz"; + sha1 = "657528bdd3f59a772b8279b831f27ec2c744664b"; + }; + } + { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + path = fetchurl { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd"; + }; + } + { + name = "braces___braces_3.0.2.tgz"; + path = fetchurl { + name = "braces___braces_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz"; + sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107"; + }; + } + { + name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz"; + path = fetchurl { + name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"; + sha1 = "3c9b4b7d782c8121e56f10106d84c0d0ffc94626"; + }; + } + { + name = "browserslist___browserslist_4.16.6.tgz"; + path = fetchurl { + name = "browserslist___browserslist_4.16.6.tgz"; + url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz"; + sha1 = "d7901277a5a88e554ed305b183ec9b0c08f66fa2"; + }; + } + { + name = "bser___bser_2.1.1.tgz"; + path = fetchurl { + name = "bser___bser_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz"; + sha1 = "e6787da20ece9d07998533cfd9de6f5c38f4bc05"; + }; + } + { + name = "buffer_crc32___buffer_crc32_0.2.13.tgz"; + path = fetchurl { + name = "buffer_crc32___buffer_crc32_0.2.13.tgz"; + url = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz"; + sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"; + }; + } + { + name = "buffer_equal___buffer_equal_1.0.0.tgz"; + path = fetchurl { + name = "buffer_equal___buffer_equal_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz"; + sha1 = "59616b498304d556abd466966b22eeda3eca5fbe"; + }; + } + { + name = "buffer_from___buffer_from_1.1.1.tgz"; + path = fetchurl { + name = "buffer_from___buffer_from_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz"; + sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef"; + }; + } + { + name = "buffer___buffer_5.7.1.tgz"; + path = fetchurl { + name = "buffer___buffer_5.7.1.tgz"; + url = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz"; + sha1 = "ba62e7c13133053582197160851a8f648e99eed0"; + }; + } + { + name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz"; + path = fetchurl { + name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz"; + url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz"; + sha1 = "4b43c96db2bd494ced7694bcd7674934655e8324"; + }; + } + { + name = "builder_util_runtime___builder_util_runtime_8.7.7.tgz"; + path = fetchurl { + name = "builder_util_runtime___builder_util_runtime_8.7.7.tgz"; + url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz"; + sha1 = "6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d"; + }; + } + { + name = "builder_util___builder_util_22.11.7.tgz"; + path = fetchurl { + name = "builder_util___builder_util_22.11.7.tgz"; + url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz"; + sha1 = "ae9707afa6a31feafa13c274ac83b4fe28ef1467"; + }; + } + { + name = "cacheable_request___cacheable_request_6.1.0.tgz"; + path = fetchurl { + name = "cacheable_request___cacheable_request_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz"; + sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912"; + }; + } + { + name = "callsites___callsites_3.1.0.tgz"; + path = fetchurl { + name = "callsites___callsites_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz"; + sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73"; + }; + } + { + name = "camelcase___camelcase_5.3.1.tgz"; + path = fetchurl { + name = "camelcase___camelcase_5.3.1.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz"; + sha1 = "e3c9b31569e106811df242f715725a1f4c494320"; + }; + } + { + name = "camelcase___camelcase_6.2.0.tgz"; + path = fetchurl { + name = "camelcase___camelcase_6.2.0.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz"; + sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809"; + }; + } + { + name = "caniuse_lite___caniuse_lite_1.0.30001241.tgz"; + path = fetchurl { + name = "caniuse_lite___caniuse_lite_1.0.30001241.tgz"; + url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz"; + sha1 = "cd3fae47eb3d7691692b406568d7a3e5b23c7598"; + }; + } + { + name = "chalk___chalk_2.4.2.tgz"; + path = fetchurl { + name = "chalk___chalk_2.4.2.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz"; + sha1 = "cd42541677a54333cf541a49108c1432b44c9424"; + }; + } + { + name = "chalk___chalk_4.1.1.tgz"; + path = fetchurl { + name = "chalk___chalk_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz"; + sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad"; + }; + } + { + name = "char_regex___char_regex_1.0.2.tgz"; + path = fetchurl { + name = "char_regex___char_regex_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz"; + sha1 = "d744358226217f981ed58f479b1d6bcc29545dcf"; + }; + } + { + name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz"; + path = fetchurl { + name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz"; + sha1 = "04a106672c18b085ab774d983dfa3ea138f22205"; + }; + } + { + name = "ci_info___ci_info_2.0.0.tgz"; + path = fetchurl { + name = "ci_info___ci_info_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz"; + sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46"; + }; + } + { + name = "ci_info___ci_info_3.2.0.tgz"; + path = fetchurl { + name = "ci_info___ci_info_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz"; + sha1 = "2876cb948a498797b5236f0095bc057d0dca38b6"; + }; + } + { + name = "cjs_module_lexer___cjs_module_lexer_1.2.1.tgz"; + path = fetchurl { + name = "cjs_module_lexer___cjs_module_lexer_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz"; + sha1 = "2fd46d9906a126965aa541345c499aaa18e8cd73"; + }; + } + { + name = "cli_boxes___cli_boxes_2.2.1.tgz"; + path = fetchurl { + name = "cli_boxes___cli_boxes_2.2.1.tgz"; + url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz"; + sha1 = "ddd5035d25094fce220e9cab40a45840a440318f"; + }; + } + { + name = "cli_truncate___cli_truncate_1.1.0.tgz"; + path = fetchurl { + name = "cli_truncate___cli_truncate_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz"; + sha1 = "2b2dfd83c53cfd3572b87fc4d430a808afb04086"; + }; + } + { + name = "cliui___cliui_7.0.4.tgz"; + path = fetchurl { + name = "cliui___cliui_7.0.4.tgz"; + url = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz"; + sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f"; + }; + } + { + name = "clone_response___clone_response_1.0.2.tgz"; + path = fetchurl { + name = "clone_response___clone_response_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz"; + sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b"; + }; + } + { + name = "co___co_4.6.0.tgz"; + path = fetchurl { + name = "co___co_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz"; + sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; + }; + } + { + name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz"; + path = fetchurl { + name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz"; + sha1 = "cc2c8e94fc18bbdffe64d6534570c8a673b27f59"; + }; + } + { + name = "color_convert___color_convert_1.9.3.tgz"; + path = fetchurl { + name = "color_convert___color_convert_1.9.3.tgz"; + url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz"; + sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8"; + }; + } + { + name = "color_convert___color_convert_2.0.1.tgz"; + path = fetchurl { + name = "color_convert___color_convert_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz"; + sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"; + }; + } + { + name = "color_name___color_name_1.1.3.tgz"; + path = fetchurl { + name = "color_name___color_name_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + } + { + name = "color_name___color_name_1.1.4.tgz"; + path = fetchurl { + name = "color_name___color_name_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz"; + sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2"; + }; + } + { + name = "colorette___colorette_1.2.2.tgz"; + path = fetchurl { + name = "colorette___colorette_1.2.2.tgz"; + url = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz"; + sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"; + }; + } + { + name = "colors___colors_1.0.3.tgz"; + path = fetchurl { + name = "colors___colors_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz"; + sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b"; + }; + } + { + name = "combined_stream___combined_stream_1.0.8.tgz"; + path = fetchurl { + name = "combined_stream___combined_stream_1.0.8.tgz"; + url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz"; + sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f"; + }; + } + { + name = "commander___commander_2.9.0.tgz"; + path = fetchurl { + name = "commander___commander_2.9.0.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz"; + sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4"; + }; + } + { + name = "commander___commander_5.1.0.tgz"; + path = fetchurl { + name = "commander___commander_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz"; + sha1 = "46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"; + }; + } + { + name = "compress_commons___compress_commons_4.1.1.tgz"; + path = fetchurl { + name = "compress_commons___compress_commons_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz"; + sha1 = "df2a09a7ed17447642bad10a85cc9a19e5c42a7d"; + }; + } + { + name = "concat_map___concat_map_0.0.1.tgz"; + path = fetchurl { + name = "concat_map___concat_map_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + } + { + name = "concat_stream___concat_stream_1.6.2.tgz"; + path = fetchurl { + name = "concat_stream___concat_stream_1.6.2.tgz"; + url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz"; + sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"; + }; + } + { + name = "config_chain___config_chain_1.1.13.tgz"; + path = fetchurl { + name = "config_chain___config_chain_1.1.13.tgz"; + url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz"; + sha1 = "fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"; + }; + } + { + name = "configstore___configstore_5.0.1.tgz"; + path = fetchurl { + name = "configstore___configstore_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz"; + sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"; + }; + } + { + name = "convert_source_map___convert_source_map_1.8.0.tgz"; + path = fetchurl { + name = "convert_source_map___convert_source_map_1.8.0.tgz"; + url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz"; + sha1 = "f3373c32d21b4d780dd8004514684fb791ca4369"; + }; + } + { + name = "core_js___core_js_3.15.2.tgz"; + path = fetchurl { + name = "core_js___core_js_3.15.2.tgz"; + url = "https://registry.yarnpkg.com/core-js/-/core-js-3.15.2.tgz"; + sha1 = "740660d2ff55ef34ce664d7e2455119c5bdd3d61"; + }; + } + { + name = "core_util_is___core_util_is_1.0.2.tgz"; + path = fetchurl { + name = "core_util_is___core_util_is_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + } + { + name = "crc_32___crc_32_1.2.0.tgz"; + path = fetchurl { + name = "crc_32___crc_32_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz"; + sha1 = "cb2db6e29b88508e32d9dd0ec1693e7b41a18208"; + }; + } + { + name = "crc32_stream___crc32_stream_4.0.2.tgz"; + path = fetchurl { + name = "crc32_stream___crc32_stream_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz"; + sha1 = "c922ad22b38395abe9d3870f02fa8134ed709007"; + }; + } + { + name = "crc___crc_3.8.0.tgz"; + path = fetchurl { + name = "crc___crc_3.8.0.tgz"; + url = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz"; + sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6"; + }; + } + { + name = "cross_spawn___cross_spawn_7.0.3.tgz"; + path = fetchurl { + name = "cross_spawn___cross_spawn_7.0.3.tgz"; + url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz"; + sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6"; + }; + } + { + name = "crypto_random_string___crypto_random_string_2.0.0.tgz"; + path = fetchurl { + name = "crypto_random_string___crypto_random_string_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz"; + sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5"; + }; + } + { + name = "cssom___cssom_0.4.4.tgz"; + path = fetchurl { + name = "cssom___cssom_0.4.4.tgz"; + url = "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz"; + sha1 = "5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"; + }; + } + { + name = "cssom___cssom_0.3.8.tgz"; + path = fetchurl { + name = "cssom___cssom_0.3.8.tgz"; + url = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz"; + sha1 = "9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"; + }; + } + { + name = "cssstyle___cssstyle_2.3.0.tgz"; + path = fetchurl { + name = "cssstyle___cssstyle_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz"; + sha1 = "ff665a0ddbdc31864b09647f34163443d90b0852"; + }; + } + { + name = "data_urls___data_urls_2.0.0.tgz"; + path = fetchurl { + name = "data_urls___data_urls_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz"; + sha1 = "156485a72963a970f5d5821aaf642bef2bf2db9b"; + }; + } + { + name = "debug___debug_4.3.1.tgz"; + path = fetchurl { + name = "debug___debug_4.3.1.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz"; + sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"; + }; + } + { + name = "debug___debug_2.6.9.tgz"; + path = fetchurl { + name = "debug___debug_2.6.9.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz"; + sha1 = "5d128515df134ff327e90a4c93f4e077a536341f"; + }; + } + { + name = "debug___debug_4.3.2.tgz"; + path = fetchurl { + name = "debug___debug_4.3.2.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz"; + sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b"; + }; + } + { + name = "decimal.js___decimal.js_10.3.1.tgz"; + path = fetchurl { + name = "decimal.js___decimal.js_10.3.1.tgz"; + url = "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz"; + sha1 = "d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"; + }; + } + { + name = "decompress_response___decompress_response_3.3.0.tgz"; + path = fetchurl { + name = "decompress_response___decompress_response_3.3.0.tgz"; + url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz"; + sha1 = "80a4dd323748384bfa248083622aedec982adff3"; + }; + } + { + name = "dedent___dedent_0.7.0.tgz"; + path = fetchurl { + name = "dedent___dedent_0.7.0.tgz"; + url = "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz"; + sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c"; + }; + } + { + name = "deep_extend___deep_extend_0.6.0.tgz"; + path = fetchurl { + name = "deep_extend___deep_extend_0.6.0.tgz"; + url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz"; + sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac"; + }; + } + { + name = "deep_is___deep_is_0.1.3.tgz"; + path = fetchurl { + name = "deep_is___deep_is_0.1.3.tgz"; + url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz"; + sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; + }; + } + { + name = "deepmerge___deepmerge_4.2.2.tgz"; + path = fetchurl { + name = "deepmerge___deepmerge_4.2.2.tgz"; + url = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz"; + sha1 = "44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"; + }; + } + { + name = "defer_to_connect___defer_to_connect_1.1.3.tgz"; + path = fetchurl { + name = "defer_to_connect___defer_to_connect_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz"; + sha1 = "331ae050c08dcf789f8c83a7b81f0ed94f4ac591"; + }; + } + { + name = "define_properties___define_properties_1.1.3.tgz"; + path = fetchurl { + name = "define_properties___define_properties_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz"; + sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1"; + }; + } + { + name = "delayed_stream___delayed_stream_1.0.0.tgz"; + path = fetchurl { + name = "delayed_stream___delayed_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + } + { + name = "detect_newline___detect_newline_3.1.0.tgz"; + path = fetchurl { + name = "detect_newline___detect_newline_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz"; + sha1 = "576f5dfc63ae1a192ff192d8ad3af6308991b651"; + }; + } + { + name = "detect_node___detect_node_2.1.0.tgz"; + path = fetchurl { + name = "detect_node___detect_node_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz"; + sha1 = "c9c70775a49c3d03bc2c06d9a73be550f978f8b1"; + }; + } + { + name = "diff_sequences___diff_sequences_27.0.6.tgz"; + path = fetchurl { + name = "diff_sequences___diff_sequences_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz"; + sha1 = "3305cb2e55a033924054695cc66019fd7f8e5723"; + }; + } + { + name = "dir_compare___dir_compare_2.4.0.tgz"; + path = fetchurl { + name = "dir_compare___dir_compare_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz"; + sha1 = "785c41dc5f645b34343a4eafc50b79bac7f11631"; + }; + } + { + name = "dmg_builder___dmg_builder_22.11.7.tgz"; + path = fetchurl { + name = "dmg_builder___dmg_builder_22.11.7.tgz"; + url = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz"; + sha1 = "5956008c18d40ee72c0ea01ffea9590dbf51df89"; + }; + } + { + name = "dmg_license___dmg_license_1.0.9.tgz"; + path = fetchurl { + name = "dmg_license___dmg_license_1.0.9.tgz"; + url = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz"; + sha1 = "a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f"; + }; + } + { + name = "doctrine___doctrine_3.0.0.tgz"; + path = fetchurl { + name = "doctrine___doctrine_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz"; + sha1 = "addebead72a6574db783639dc87a121773973961"; + }; + } + { + name = "domexception___domexception_2.0.1.tgz"; + path = fetchurl { + name = "domexception___domexception_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz"; + sha1 = "fb44aefba793e1574b0af6aed2801d057529f304"; + }; + } + { + name = "dot_prop___dot_prop_5.3.0.tgz"; + path = fetchurl { + name = "dot_prop___dot_prop_5.3.0.tgz"; + url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz"; + sha1 = "90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"; + }; + } + { + name = "dotenv_expand___dotenv_expand_5.1.0.tgz"; + path = fetchurl { + name = "dotenv_expand___dotenv_expand_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz"; + sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0"; + }; + } + { + name = "dotenv___dotenv_9.0.2.tgz"; + path = fetchurl { + name = "dotenv___dotenv_9.0.2.tgz"; + url = "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz"; + sha1 = "dacc20160935a37dea6364aa1bef819fb9b6ab05"; + }; + } + { + name = "duplexer3___duplexer3_0.1.4.tgz"; + path = fetchurl { + name = "duplexer3___duplexer3_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz"; + sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"; + }; + } + { + name = "ejs___ejs_3.1.6.tgz"; + path = fetchurl { + name = "ejs___ejs_3.1.6.tgz"; + url = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz"; + sha1 = "5bfd0a0689743bb5268b3550cceeebbc1702822a"; + }; + } + { + name = "electron_builder___electron_builder_22.11.7.tgz"; + path = fetchurl { + name = "electron_builder___electron_builder_22.11.7.tgz"; + url = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz"; + sha1 = "cd97a0d9f6e6d388112e66b4376de431cca4d596"; + }; + } + { + name = "electron_publish___electron_publish_22.11.7.tgz"; + path = fetchurl { + name = "electron_publish___electron_publish_22.11.7.tgz"; + url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz"; + sha1 = "4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a"; + }; + } + { + name = "electron_to_chromium___electron_to_chromium_1.3.763.tgz"; + path = fetchurl { + name = "electron_to_chromium___electron_to_chromium_1.3.763.tgz"; + url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz"; + sha1 = "93f6f02506d099941f557b9db9ba50b30215bf15"; + }; + } + { + name = "electron___electron_13.1.4.tgz"; + path = fetchurl { + name = "electron___electron_13.1.4.tgz"; + url = "https://registry.yarnpkg.com/electron/-/electron-13.1.4.tgz"; + sha1 = "6d20d932a0651c3cba9f09a3d08cbaf5b69aa84b"; + }; + } + { + name = "emittery___emittery_0.8.1.tgz"; + path = fetchurl { + name = "emittery___emittery_0.8.1.tgz"; + url = "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz"; + sha1 = "bb23cc86d03b30aa75a7f734819dee2e1ba70860"; + }; + } + { + name = "emoji_regex___emoji_regex_7.0.3.tgz"; + path = fetchurl { + name = "emoji_regex___emoji_regex_7.0.3.tgz"; + url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz"; + sha1 = "933a04052860c85e83c122479c4748a8e4c72156"; + }; + } + { + name = "emoji_regex___emoji_regex_8.0.0.tgz"; + path = fetchurl { + name = "emoji_regex___emoji_regex_8.0.0.tgz"; + url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz"; + sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37"; + }; + } + { + name = "encodeurl___encodeurl_1.0.2.tgz"; + path = fetchurl { + name = "encodeurl___encodeurl_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + } + { + name = "end_of_stream___end_of_stream_1.4.4.tgz"; + path = fetchurl { + name = "end_of_stream___end_of_stream_1.4.4.tgz"; + url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"; + }; + } + { + name = "enquirer___enquirer_2.3.6.tgz"; + path = fetchurl { + name = "enquirer___enquirer_2.3.6.tgz"; + url = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz"; + sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d"; + }; + } + { + name = "env_paths___env_paths_2.2.1.tgz"; + path = fetchurl { + name = "env_paths___env_paths_2.2.1.tgz"; + url = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz"; + sha1 = "420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"; + }; + } + { + name = "es6_error___es6_error_4.1.1.tgz"; + path = fetchurl { + name = "es6_error___es6_error_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz"; + sha1 = "9e3af407459deed47e9a91f9b885a84eb05c561d"; + }; + } + { + name = "escalade___escalade_3.1.1.tgz"; + path = fetchurl { + name = "escalade___escalade_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz"; + sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40"; + }; + } + { + name = "escape_goat___escape_goat_2.1.1.tgz"; + path = fetchurl { + name = "escape_goat___escape_goat_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz"; + sha1 = "1b2dc77003676c457ec760b2dc68edb648188675"; + }; + } + { + name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; + path = fetchurl { + name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + } + { + name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz"; + path = fetchurl { + name = "escape_string_regexp___escape_string_regexp_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"; + sha1 = "a30304e99daa32e23b2fd20f51babd07cffca344"; + }; + } + { + name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz"; + path = fetchurl { + name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"; + sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34"; + }; + } + { + name = "escodegen___escodegen_2.0.0.tgz"; + path = fetchurl { + name = "escodegen___escodegen_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz"; + sha1 = "5e32b12833e8aa8fa35e1bf0befa89380484c7dd"; + }; + } + { + name = "eslint_plugin_compat___eslint_plugin_compat_3.9.0.tgz"; + path = fetchurl { + name = "eslint_plugin_compat___eslint_plugin_compat_3.9.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz"; + sha1 = "a7a224e09b102b58e7f7dff52c936428ff3e0186"; + }; + } + { + name = "eslint_plugin_sort_keys_fix___eslint_plugin_sort_keys_fix_1.1.1.tgz"; + path = fetchurl { + name = "eslint_plugin_sort_keys_fix___eslint_plugin_sort_keys_fix_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/eslint-plugin-sort-keys-fix/-/eslint-plugin-sort-keys-fix-1.1.1.tgz"; + sha1 = "2ed201b53fd4a89552c6e2abd38933f330a4b62e"; + }; + } + { + name = "eslint_scope___eslint_scope_5.1.1.tgz"; + path = fetchurl { + name = "eslint_scope___eslint_scope_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz"; + sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c"; + }; + } + { + name = "eslint_utils___eslint_utils_2.1.0.tgz"; + path = fetchurl { + name = "eslint_utils___eslint_utils_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz"; + sha1 = "d2de5e03424e707dc10c74068ddedae708741b27"; + }; + } + { + name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz"; + path = fetchurl { + name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"; + sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e"; + }; + } + { + name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz"; + path = fetchurl { + name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"; + sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303"; + }; + } + { + name = "eslint___eslint_7.29.0.tgz"; + path = fetchurl { + name = "eslint___eslint_7.29.0.tgz"; + url = "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz"; + sha1 = "ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0"; + }; + } + { + name = "espree___espree_7.3.1.tgz"; + path = fetchurl { + name = "espree___espree_7.3.1.tgz"; + url = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz"; + sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6"; + }; + } + { + name = "esprima___esprima_4.0.1.tgz"; + path = fetchurl { + name = "esprima___esprima_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz"; + sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71"; + }; + } + { + name = "esquery___esquery_1.4.0.tgz"; + path = fetchurl { + name = "esquery___esquery_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz"; + sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5"; + }; + } + { + name = "esrecurse___esrecurse_4.3.0.tgz"; + path = fetchurl { + name = "esrecurse___esrecurse_4.3.0.tgz"; + url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz"; + sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921"; + }; + } + { + name = "estraverse___estraverse_4.3.0.tgz"; + path = fetchurl { + name = "estraverse___estraverse_4.3.0.tgz"; + url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz"; + sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d"; + }; + } + { + name = "estraverse___estraverse_5.2.0.tgz"; + path = fetchurl { + name = "estraverse___estraverse_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz"; + sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880"; + }; + } + { + name = "esutils___esutils_2.0.3.tgz"; + path = fetchurl { + name = "esutils___esutils_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz"; + sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64"; + }; + } + { + name = "execa___execa_5.1.1.tgz"; + path = fetchurl { + name = "execa___execa_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz"; + sha1 = "f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"; + }; + } + { + name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz"; + path = fetchurl { + name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz"; + sha1 = "0bdd92e87d5285d267daa8171d0eb06159689692"; + }; + } + { + name = "exit___exit_0.1.2.tgz"; + path = fetchurl { + name = "exit___exit_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz"; + sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c"; + }; + } + { + name = "expect___expect_27.0.6.tgz"; + path = fetchurl { + name = "expect___expect_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz"; + sha1 = "a4d74fbe27222c718fff68ef49d78e26a8fd4c05"; + }; + } + { + name = "extend___extend_3.0.2.tgz"; + path = fetchurl { + name = "extend___extend_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz"; + sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa"; + }; + } + { + name = "extract_zip___extract_zip_1.7.0.tgz"; + path = fetchurl { + name = "extract_zip___extract_zip_1.7.0.tgz"; + url = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz"; + sha1 = "556cc3ae9df7f452c493a0cfb51cc30277940927"; + }; + } + { + name = "extsprintf___extsprintf_1.4.0.tgz"; + path = fetchurl { + name = "extsprintf___extsprintf_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz"; + sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f"; + }; + } + { + name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz"; + path = fetchurl { + name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz"; + url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"; + sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525"; + }; + } + { + name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz"; + path = fetchurl { + name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; + sha1 = "874bf69c6f404c2b5d99c481341399fd55892633"; + }; + } + { + name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; + path = fetchurl { + name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; + url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; + sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; + }; + } + { + name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz"; + path = fetchurl { + name = "fast_xml_parser___fast_xml_parser_3.19.0.tgz"; + url = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz"; + sha1 = "cb637ec3f3999f51406dd8ff0e6fc4d83e520d01"; + }; + } + { + name = "fb_watchman___fb_watchman_2.0.1.tgz"; + path = fetchurl { + name = "fb_watchman___fb_watchman_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz"; + sha1 = "fc84fb39d2709cf3ff6d743706157bb5708a8a85"; + }; + } + { + name = "fd_slicer___fd_slicer_1.1.0.tgz"; + path = fetchurl { + name = "fd_slicer___fd_slicer_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz"; + sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e"; + }; + } + { + name = "file_entry_cache___file_entry_cache_6.0.1.tgz"; + path = fetchurl { + name = "file_entry_cache___file_entry_cache_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz"; + sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027"; + }; + } + { + name = "filelist___filelist_1.0.2.tgz"; + path = fetchurl { + name = "filelist___filelist_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz"; + sha1 = "80202f21462d4d1c2e214119b1807c1bc0380e5b"; + }; + } + { + name = "fill_range___fill_range_7.0.1.tgz"; + path = fetchurl { + name = "fill_range___fill_range_7.0.1.tgz"; + url = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz"; + sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40"; + }; + } + { + name = "find_up___find_up_4.1.0.tgz"; + path = fetchurl { + name = "find_up___find_up_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz"; + sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"; + }; + } + { + name = "flat_cache___flat_cache_3.0.4.tgz"; + path = fetchurl { + name = "flat_cache___flat_cache_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz"; + sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11"; + }; + } + { + name = "flatted___flatted_3.1.1.tgz"; + path = fetchurl { + name = "flatted___flatted_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz"; + sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469"; + }; + } + { + name = "form_data___form_data_3.0.1.tgz"; + path = fetchurl { + name = "form_data___form_data_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz"; + sha1 = "ebd53791b78356a99af9a300d4282c4d5eb9755f"; + }; + } + { + name = "fs_constants___fs_constants_1.0.0.tgz"; + path = fetchurl { + name = "fs_constants___fs_constants_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz"; + sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"; + }; + } + { + name = "fs_extra___fs_extra_10.0.0.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_10.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz"; + sha1 = "9ff61b655dde53fb34a82df84bb214ce802e17c1"; + }; + } + { + name = "fs_extra___fs_extra_8.1.0.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_8.1.0.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz"; + sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"; + }; + } + { + name = "fs_extra___fs_extra_9.1.0.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_9.1.0.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz"; + sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d"; + }; + } + { + name = "fs.realpath___fs.realpath_1.0.0.tgz"; + path = fetchurl { + name = "fs.realpath___fs.realpath_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + } + { + name = "fsevents___fsevents_2.3.2.tgz"; + path = fetchurl { + name = "fsevents___fsevents_2.3.2.tgz"; + url = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz"; + sha1 = "8a526f78b8fdf4623b709e0b975c52c24c02fd1a"; + }; + } + { + name = "function_bind___function_bind_1.1.1.tgz"; + path = fetchurl { + name = "function_bind___function_bind_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; + sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; + }; + } + { + name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; + path = fetchurl { + name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"; + sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"; + }; + } + { + name = "gensync___gensync_1.0.0_beta.2.tgz"; + path = fetchurl { + name = "gensync___gensync_1.0.0_beta.2.tgz"; + url = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz"; + sha1 = "32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"; + }; + } + { + name = "get_caller_file___get_caller_file_2.0.5.tgz"; + path = fetchurl { + name = "get_caller_file___get_caller_file_2.0.5.tgz"; + url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz"; + sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e"; + }; + } + { + name = "get_package_type___get_package_type_0.1.0.tgz"; + path = fetchurl { + name = "get_package_type___get_package_type_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz"; + sha1 = "8de2d803cff44df3bc6c456e6668b36c3926e11a"; + }; + } + { + name = "get_stream___get_stream_4.1.0.tgz"; + path = fetchurl { + name = "get_stream___get_stream_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz"; + sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"; + }; + } + { + name = "get_stream___get_stream_5.2.0.tgz"; + path = fetchurl { + name = "get_stream___get_stream_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz"; + sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3"; + }; + } + { + name = "get_stream___get_stream_6.0.1.tgz"; + path = fetchurl { + name = "get_stream___get_stream_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz"; + sha1 = "a262d8eef67aced57c2852ad6167526a43cbf7b7"; + }; + } + { + name = "glob_parent___glob_parent_5.1.2.tgz"; + path = fetchurl { + name = "glob_parent___glob_parent_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz"; + sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4"; + }; + } + { + name = "glob___glob_7.1.7.tgz"; + path = fetchurl { + name = "glob___glob_7.1.7.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz"; + sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90"; + }; + } + { + name = "global_agent___global_agent_2.2.0.tgz"; + path = fetchurl { + name = "global_agent___global_agent_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz"; + sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc"; + }; + } + { + name = "global_dirs___global_dirs_3.0.0.tgz"; + path = fetchurl { + name = "global_dirs___global_dirs_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz"; + sha1 = "70a76fe84ea315ab37b1f5576cbde7d48ef72686"; + }; + } + { + name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz"; + path = fetchurl { + name = "global_tunnel_ng___global_tunnel_ng_2.7.1.tgz"; + url = "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz"; + sha1 = "d03b5102dfde3a69914f5ee7d86761ca35d57d8f"; + }; + } + { + name = "globals___globals_11.12.0.tgz"; + path = fetchurl { + name = "globals___globals_11.12.0.tgz"; + url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz"; + sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e"; + }; + } + { + name = "globals___globals_13.9.0.tgz"; + path = fetchurl { + name = "globals___globals_13.9.0.tgz"; + url = "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz"; + sha1 = "4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"; + }; + } + { + name = "globalthis___globalthis_1.0.2.tgz"; + path = fetchurl { + name = "globalthis___globalthis_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz"; + sha1 = "2a235d34f4d8036219f7e34929b5de9e18166b8b"; + }; + } + { + name = "got___got_9.6.0.tgz"; + path = fetchurl { + name = "got___got_9.6.0.tgz"; + url = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz"; + sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85"; + }; + } + { + name = "graceful_fs___graceful_fs_4.2.6.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_4.2.6.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz"; + sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee"; + }; + } + { + name = "graceful_readlink___graceful_readlink_1.0.1.tgz"; + path = fetchurl { + name = "graceful_readlink___graceful_readlink_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz"; + sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725"; + }; + } + { + name = "has_flag___has_flag_3.0.0.tgz"; + path = fetchurl { + name = "has_flag___has_flag_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + } + { + name = "has_flag___has_flag_4.0.0.tgz"; + path = fetchurl { + name = "has_flag___has_flag_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz"; + sha1 = "944771fd9c81c81265c4d6941860da06bb59479b"; + }; + } + { + name = "has_yarn___has_yarn_2.1.0.tgz"; + path = fetchurl { + name = "has_yarn___has_yarn_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz"; + sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"; + }; + } + { + name = "has___has_1.0.3.tgz"; + path = fetchurl { + name = "has___has_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; + sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; + }; + } + { + name = "hosted_git_info___hosted_git_info_4.0.2.tgz"; + path = fetchurl { + name = "hosted_git_info___hosted_git_info_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz"; + sha1 = "5e425507eede4fea846b7262f0838456c4209961"; + }; + } + { + name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz"; + path = fetchurl { + name = "html_encoding_sniffer___html_encoding_sniffer_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz"; + sha1 = "42a6dc4fd33f00281176e8b23759ca4e4fa185f3"; + }; + } + { + name = "html_escaper___html_escaper_2.0.2.tgz"; + path = fetchurl { + name = "html_escaper___html_escaper_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz"; + sha1 = "dfd60027da36a36dfcbe236262c00a5822681453"; + }; + } + { + name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz"; + path = fetchurl { + name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz"; + sha1 = "49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"; + }; + } + { + name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz"; + path = fetchurl { + name = "http_proxy_agent___http_proxy_agent_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz"; + sha1 = "8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"; + }; + } + { + name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz"; + path = fetchurl { + name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz"; + sha1 = "e2a90542abb68a762e0a0850f6c9edadfd8506b2"; + }; + } + { + name = "human_signals___human_signals_2.1.0.tgz"; + path = fetchurl { + name = "human_signals___human_signals_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz"; + sha1 = "dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"; + }; + } + { + name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz"; + path = fetchurl { + name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz"; + url = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz"; + sha1 = "27c135470237f6f8d13462fa1f5eaf250523c29a"; + }; + } + { + name = "iconv_lite___iconv_lite_0.4.24.tgz"; + path = fetchurl { + name = "iconv_lite___iconv_lite_0.4.24.tgz"; + url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b"; + }; + } + { + name = "iconv_lite___iconv_lite_0.6.3.tgz"; + path = fetchurl { + name = "iconv_lite___iconv_lite_0.6.3.tgz"; + url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz"; + sha1 = "a52f80bf38da1952eb5c681790719871a1a72501"; + }; + } + { + name = "ieee754___ieee754_1.2.1.tgz"; + path = fetchurl { + name = "ieee754___ieee754_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz"; + sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352"; + }; + } + { + name = "ignore___ignore_4.0.6.tgz"; + path = fetchurl { + name = "ignore___ignore_4.0.6.tgz"; + url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz"; + sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc"; + }; + } + { + name = "import_fresh___import_fresh_3.3.0.tgz"; + path = fetchurl { + name = "import_fresh___import_fresh_3.3.0.tgz"; + url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz"; + sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"; + }; + } + { + name = "import_lazy___import_lazy_2.1.0.tgz"; + path = fetchurl { + name = "import_lazy___import_lazy_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz"; + sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43"; + }; + } + { + name = "import_local___import_local_3.0.2.tgz"; + path = fetchurl { + name = "import_local___import_local_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz"; + sha1 = "a8cfd0431d1de4a2199703d003e3e62364fa6db6"; + }; + } + { + name = "imurmurhash___imurmurhash_0.1.4.tgz"; + path = fetchurl { + name = "imurmurhash___imurmurhash_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + } + { + name = "inflight___inflight_1.0.6.tgz"; + path = fetchurl { + name = "inflight___inflight_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + } + { + name = "inherits___inherits_2.0.4.tgz"; + path = fetchurl { + name = "inherits___inherits_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz"; + sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c"; + }; + } + { + name = "ini___ini_2.0.0.tgz"; + path = fetchurl { + name = "ini___ini_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz"; + sha1 = "e5fd556ecdd5726be978fa1001862eacb0a94bc5"; + }; + } + { + name = "ini___ini_1.3.8.tgz"; + path = fetchurl { + name = "ini___ini_1.3.8.tgz"; + url = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz"; + sha1 = "a29da425b48806f34767a4efce397269af28432c"; + }; + } + { + name = "is_ci___is_ci_2.0.0.tgz"; + path = fetchurl { + name = "is_ci___is_ci_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz"; + sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c"; + }; + } + { + name = "is_ci___is_ci_3.0.0.tgz"; + path = fetchurl { + name = "is_ci___is_ci_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz"; + sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"; + }; + } + { + name = "is_core_module___is_core_module_2.4.0.tgz"; + path = fetchurl { + name = "is_core_module___is_core_module_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz"; + sha1 = "8e9fc8e15027b011418026e98f0e6f4d86305cc1"; + }; + } + { + name = "is_extglob___is_extglob_2.1.1.tgz"; + path = fetchurl { + name = "is_extglob___is_extglob_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + } + { + name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; + path = fetchurl { + name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; + }; + } + { + name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; + path = fetchurl { + name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; + sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d"; + }; + } + { + name = "is_generator_fn___is_generator_fn_2.1.0.tgz"; + path = fetchurl { + name = "is_generator_fn___is_generator_fn_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz"; + sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118"; + }; + } + { + name = "is_glob___is_glob_4.0.1.tgz"; + path = fetchurl { + name = "is_glob___is_glob_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz"; + sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"; + }; + } + { + name = "is_installed_globally___is_installed_globally_0.4.0.tgz"; + path = fetchurl { + name = "is_installed_globally___is_installed_globally_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz"; + sha1 = "9a0fd407949c30f86eb6959ef1b7994ed0b7b520"; + }; + } + { + name = "is_npm___is_npm_5.0.0.tgz"; + path = fetchurl { + name = "is_npm___is_npm_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz"; + sha1 = "43e8d65cc56e1b67f8d47262cf667099193f45a8"; + }; + } + { + name = "is_number___is_number_7.0.0.tgz"; + path = fetchurl { + name = "is_number___is_number_7.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz"; + sha1 = "7535345b896734d5f80c4d06c50955527a14f12b"; + }; + } + { + name = "is_obj___is_obj_2.0.0.tgz"; + path = fetchurl { + name = "is_obj___is_obj_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz"; + sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982"; + }; + } + { + name = "is_path_inside___is_path_inside_3.0.3.tgz"; + path = fetchurl { + name = "is_path_inside___is_path_inside_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz"; + sha1 = "d231362e53a07ff2b0e0ea7fed049161ffd16283"; + }; + } + { + name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.1.tgz"; + path = fetchurl { + name = "is_potential_custom_element_name___is_potential_custom_element_name_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"; + sha1 = "171ed6f19e3ac554394edf78caa05784a45bebb5"; + }; + } + { + name = "is_stream___is_stream_2.0.0.tgz"; + path = fetchurl { + name = "is_stream___is_stream_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz"; + sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3"; + }; + } + { + name = "is_svg___is_svg_4.3.1.tgz"; + path = fetchurl { + name = "is_svg___is_svg_4.3.1.tgz"; + url = "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz"; + sha1 = "8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b"; + }; + } + { + name = "is_typedarray___is_typedarray_1.0.0.tgz"; + path = fetchurl { + name = "is_typedarray___is_typedarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + } + { + name = "is_yarn_global___is_yarn_global_0.3.0.tgz"; + path = fetchurl { + name = "is_yarn_global___is_yarn_global_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz"; + sha1 = "d502d3382590ea3004893746754c89139973e232"; + }; + } + { + name = "isarray___isarray_1.0.0.tgz"; + path = fetchurl { + name = "isarray___isarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + } + { + name = "isbinaryfile___isbinaryfile_4.0.8.tgz"; + path = fetchurl { + name = "isbinaryfile___isbinaryfile_4.0.8.tgz"; + url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz"; + sha1 = "5d34b94865bd4946633ecc78a026fc76c5b11fcf"; + }; + } + { + name = "isexe___isexe_2.0.0.tgz"; + path = fetchurl { + name = "isexe___isexe_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + } + { + name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz"; + path = fetchurl { + name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz"; + sha1 = "f5944a37c70b550b02a78a5c3b2055b280cec8ec"; + }; + } + { + name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz"; + path = fetchurl { + name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz"; + sha1 = "873c6fff897450118222774696a3f28902d77c1d"; + }; + } + { + name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz"; + path = fetchurl { + name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"; + sha1 = "7518fe52ea44de372f460a76b5ecda9ffb73d8a6"; + }; + } + { + name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz"; + path = fetchurl { + name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz"; + sha1 = "75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"; + }; + } + { + name = "istanbul_reports___istanbul_reports_3.0.2.tgz"; + path = fetchurl { + name = "istanbul_reports___istanbul_reports_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz"; + sha1 = "d593210e5000683750cb09fc0644e4b6e27fd53b"; + }; + } + { + name = "jake___jake_10.8.2.tgz"; + path = fetchurl { + name = "jake___jake_10.8.2.tgz"; + url = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz"; + sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"; + }; + } + { + name = "jest_changed_files___jest_changed_files_27.0.6.tgz"; + path = fetchurl { + name = "jest_changed_files___jest_changed_files_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz"; + sha1 = "bed6183fcdea8a285482e3b50a9a7712d49a7a8b"; + }; + } + { + name = "jest_circus___jest_circus_27.0.6.tgz"; + path = fetchurl { + name = "jest_circus___jest_circus_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz"; + sha1 = "dd4df17c4697db6a2c232aaad4e9cec666926668"; + }; + } + { + name = "jest_cli___jest_cli_27.0.6.tgz"; + path = fetchurl { + name = "jest_cli___jest_cli_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz"; + sha1 = "d021e5f4d86d6a212450d4c7b86cb219f1e6864f"; + }; + } + { + name = "jest_config___jest_config_27.0.6.tgz"; + path = fetchurl { + name = "jest_config___jest_config_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz"; + sha1 = "119fb10f149ba63d9c50621baa4f1f179500277f"; + }; + } + { + name = "jest_diff___jest_diff_27.0.6.tgz"; + path = fetchurl { + name = "jest_diff___jest_diff_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz"; + sha1 = "4a7a19ee6f04ad70e0e3388f35829394a44c7b5e"; + }; + } + { + name = "jest_docblock___jest_docblock_27.0.6.tgz"; + path = fetchurl { + name = "jest_docblock___jest_docblock_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz"; + sha1 = "cc78266acf7fe693ca462cbbda0ea4e639e4e5f3"; + }; + } + { + name = "jest_each___jest_each_27.0.6.tgz"; + path = fetchurl { + name = "jest_each___jest_each_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz"; + sha1 = "cee117071b04060158dc8d9a66dc50ad40ef453b"; + }; + } + { + name = "jest_environment_jsdom___jest_environment_jsdom_27.0.6.tgz"; + path = fetchurl { + name = "jest_environment_jsdom___jest_environment_jsdom_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz"; + sha1 = "f66426c4c9950807d0a9f209c590ce544f73291f"; + }; + } + { + name = "jest_environment_node___jest_environment_node_27.0.6.tgz"; + path = fetchurl { + name = "jest_environment_node___jest_environment_node_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz"; + sha1 = "a6699b7ceb52e8d68138b9808b0c404e505f3e07"; + }; + } + { + name = "jest_get_type___jest_get_type_27.0.6.tgz"; + path = fetchurl { + name = "jest_get_type___jest_get_type_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz"; + sha1 = "0eb5c7f755854279ce9b68a9f1a4122f69047cfe"; + }; + } + { + name = "jest_haste_map___jest_haste_map_27.0.6.tgz"; + path = fetchurl { + name = "jest_haste_map___jest_haste_map_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz"; + sha1 = "4683a4e68f6ecaa74231679dca237279562c8dc7"; + }; + } + { + name = "jest_jasmine2___jest_jasmine2_27.0.6.tgz"; + path = fetchurl { + name = "jest_jasmine2___jest_jasmine2_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz"; + sha1 = "fd509a9ed3d92bd6edb68a779f4738b100655b37"; + }; + } + { + name = "jest_leak_detector___jest_leak_detector_27.0.6.tgz"; + path = fetchurl { + name = "jest_leak_detector___jest_leak_detector_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz"; + sha1 = "545854275f85450d4ef4b8fe305ca2a26450450f"; + }; + } + { + name = "jest_matcher_utils___jest_matcher_utils_27.0.6.tgz"; + path = fetchurl { + name = "jest_matcher_utils___jest_matcher_utils_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz"; + sha1 = "2a8da1e86c620b39459f4352eaa255f0d43e39a9"; + }; + } + { + name = "jest_message_util___jest_message_util_27.0.6.tgz"; + path = fetchurl { + name = "jest_message_util___jest_message_util_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz"; + sha1 = "158bcdf4785706492d164a39abca6a14da5ab8b5"; + }; + } + { + name = "jest_mock___jest_mock_27.0.6.tgz"; + path = fetchurl { + name = "jest_mock___jest_mock_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz"; + sha1 = "0efdd40851398307ba16778728f6d34d583e3467"; + }; + } + { + name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz"; + path = fetchurl { + name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz"; + url = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz"; + sha1 = "b704ac0ae028a89108a4d040b3f919dfddc8e33c"; + }; + } + { + name = "jest_regex_util___jest_regex_util_27.0.6.tgz"; + path = fetchurl { + name = "jest_regex_util___jest_regex_util_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz"; + sha1 = "02e112082935ae949ce5d13b2675db3d8c87d9c5"; + }; + } + { + name = "jest_resolve_dependencies___jest_resolve_dependencies_27.0.6.tgz"; + path = fetchurl { + name = "jest_resolve_dependencies___jest_resolve_dependencies_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz"; + sha1 = "3e619e0ef391c3ecfcf6ef4056207a3d2be3269f"; + }; + } + { + name = "jest_resolve___jest_resolve_27.0.6.tgz"; + path = fetchurl { + name = "jest_resolve___jest_resolve_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz"; + sha1 = "e90f436dd4f8fbf53f58a91c42344864f8e55bff"; + }; + } + { + name = "jest_runner___jest_runner_27.0.6.tgz"; + path = fetchurl { + name = "jest_runner___jest_runner_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz"; + sha1 = "1325f45055539222bbc7256a6976e993ad2f9520"; + }; + } + { + name = "jest_runtime___jest_runtime_27.0.6.tgz"; + path = fetchurl { + name = "jest_runtime___jest_runtime_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz"; + sha1 = "45877cfcd386afdd4f317def551fc369794c27c9"; + }; + } + { + name = "jest_serializer___jest_serializer_27.0.6.tgz"; + path = fetchurl { + name = "jest_serializer___jest_serializer_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz"; + sha1 = "93a6c74e0132b81a2d54623251c46c498bb5bec1"; + }; + } + { + name = "jest_snapshot___jest_snapshot_27.0.6.tgz"; + path = fetchurl { + name = "jest_snapshot___jest_snapshot_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz"; + sha1 = "f4e6b208bd2e92e888344d78f0f650bcff05a4bf"; + }; + } + { + name = "jest_util___jest_util_27.0.6.tgz"; + path = fetchurl { + name = "jest_util___jest_util_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz"; + sha1 = "e8e04eec159de2f4d5f57f795df9cdc091e50297"; + }; + } + { + name = "jest_validate___jest_validate_27.0.6.tgz"; + path = fetchurl { + name = "jest_validate___jest_validate_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz"; + sha1 = "930a527c7a951927df269f43b2dc23262457e2a6"; + }; + } + { + name = "jest_watcher___jest_watcher_27.0.6.tgz"; + path = fetchurl { + name = "jest_watcher___jest_watcher_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz"; + sha1 = "89526f7f9edf1eac4e4be989bcb6dec6b8878d9c"; + }; + } + { + name = "jest_worker___jest_worker_27.0.6.tgz"; + path = fetchurl { + name = "jest_worker___jest_worker_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz"; + sha1 = "a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed"; + }; + } + { + name = "jest___jest_27.0.6.tgz"; + path = fetchurl { + name = "jest___jest_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz"; + sha1 = "10517b2a628f0409087fbf473db44777d7a04505"; + }; + } + { + name = "js_tokens___js_tokens_4.0.0.tgz"; + path = fetchurl { + name = "js_tokens___js_tokens_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz"; + sha1 = "19203fb59991df98e3a287050d4647cdeaf32499"; + }; + } + { + name = "js_yaml___js_yaml_3.14.1.tgz"; + path = fetchurl { + name = "js_yaml___js_yaml_3.14.1.tgz"; + url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz"; + sha1 = "dae812fdb3825fa306609a8717383c50c36a0537"; + }; + } + { + name = "js_yaml___js_yaml_4.1.0.tgz"; + path = fetchurl { + name = "js_yaml___js_yaml_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz"; + sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602"; + }; + } + { + name = "jsdom___jsdom_16.6.0.tgz"; + path = fetchurl { + name = "jsdom___jsdom_16.6.0.tgz"; + url = "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz"; + sha1 = "f79b3786682065492a3da6a60a4695da983805ac"; + }; + } + { + name = "jsesc___jsesc_2.5.2.tgz"; + path = fetchurl { + name = "jsesc___jsesc_2.5.2.tgz"; + url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz"; + sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4"; + }; + } + { + name = "json_buffer___json_buffer_3.0.0.tgz"; + path = fetchurl { + name = "json_buffer___json_buffer_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz"; + sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"; + }; + } + { + name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; + path = fetchurl { + name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; + url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660"; + }; + } + { + name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz"; + path = fetchurl { + name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"; + sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"; + }; + } + { + name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; + path = fetchurl { + name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"; + sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651"; + }; + } + { + name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; + path = fetchurl { + name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + } + { + name = "json5___json5_2.2.0.tgz"; + path = fetchurl { + name = "json5___json5_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz"; + sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3"; + }; + } + { + name = "jsonfile___jsonfile_4.0.0.tgz"; + path = fetchurl { + name = "jsonfile___jsonfile_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz"; + sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb"; + }; + } + { + name = "jsonfile___jsonfile_6.1.0.tgz"; + path = fetchurl { + name = "jsonfile___jsonfile_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz"; + sha1 = "bc55b2634793c679ec6403094eb13698a6ec0aae"; + }; + } + { + name = "keyv___keyv_3.1.0.tgz"; + path = fetchurl { + name = "keyv___keyv_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz"; + sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9"; + }; + } + { + name = "kleur___kleur_3.0.3.tgz"; + path = fetchurl { + name = "kleur___kleur_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz"; + sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"; + }; + } + { + name = "latest_version___latest_version_5.1.0.tgz"; + path = fetchurl { + name = "latest_version___latest_version_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz"; + sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face"; + }; + } + { + name = "lazy_val___lazy_val_1.0.5.tgz"; + path = fetchurl { + name = "lazy_val___lazy_val_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz"; + sha1 = "6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d"; + }; + } + { + name = "lazystream___lazystream_1.0.0.tgz"; + path = fetchurl { + name = "lazystream___lazystream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz"; + sha1 = "f6995fe0f820392f61396be89462407bb77168e4"; + }; + } + { + name = "leven___leven_3.1.0.tgz"; + path = fetchurl { + name = "leven___leven_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz"; + sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2"; + }; + } + { + name = "levn___levn_0.4.1.tgz"; + path = fetchurl { + name = "levn___levn_0.4.1.tgz"; + url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz"; + sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade"; + }; + } + { + name = "levn___levn_0.3.0.tgz"; + path = fetchurl { + name = "levn___levn_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz"; + sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; + }; + } + { + name = "locate_path___locate_path_5.0.0.tgz"; + path = fetchurl { + name = "locate_path___locate_path_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz"; + sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0"; + }; + } + { + name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz"; + path = fetchurl { + name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"; + sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef"; + }; + } + { + name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; + path = fetchurl { + name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz"; + sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c"; + }; + } + { + name = "lodash.difference___lodash.difference_4.5.0.tgz"; + path = fetchurl { + name = "lodash.difference___lodash.difference_4.5.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz"; + sha1 = "9ccb4e505d486b91651345772885a2df27fd017c"; + }; + } + { + name = "lodash.flatten___lodash.flatten_4.4.0.tgz"; + path = fetchurl { + name = "lodash.flatten___lodash.flatten_4.4.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz"; + sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f"; + }; + } + { + name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz"; + path = fetchurl { + name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz"; + url = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz"; + sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb"; + }; + } + { + name = "lodash.memoize___lodash.memoize_4.1.2.tgz"; + path = fetchurl { + name = "lodash.memoize___lodash.memoize_4.1.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz"; + sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe"; + }; + } + { + name = "lodash.merge___lodash.merge_4.6.2.tgz"; + path = fetchurl { + name = "lodash.merge___lodash.merge_4.6.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz"; + sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a"; + }; + } + { + name = "lodash.truncate___lodash.truncate_4.4.2.tgz"; + path = fetchurl { + name = "lodash.truncate___lodash.truncate_4.4.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz"; + sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193"; + }; + } + { + name = "lodash.union___lodash.union_4.6.0.tgz"; + path = fetchurl { + name = "lodash.union___lodash.union_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz"; + sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88"; + }; + } + { + name = "lodash___lodash_4.17.21.tgz"; + path = fetchurl { + name = "lodash___lodash_4.17.21.tgz"; + url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz"; + sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c"; + }; + } + { + name = "lowercase_keys___lowercase_keys_1.0.1.tgz"; + path = fetchurl { + name = "lowercase_keys___lowercase_keys_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz"; + sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f"; + }; + } + { + name = "lowercase_keys___lowercase_keys_2.0.0.tgz"; + path = fetchurl { + name = "lowercase_keys___lowercase_keys_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz"; + sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479"; + }; + } + { + name = "lru_cache___lru_cache_6.0.0.tgz"; + path = fetchurl { + name = "lru_cache___lru_cache_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz"; + sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"; + }; + } + { + name = "make_dir___make_dir_3.1.0.tgz"; + path = fetchurl { + name = "make_dir___make_dir_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz"; + sha1 = "415e967046b3a7f1d185277d84aa58203726a13f"; + }; + } + { + name = "makeerror___makeerror_1.0.11.tgz"; + path = fetchurl { + name = "makeerror___makeerror_1.0.11.tgz"; + url = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz"; + sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c"; + }; + } + { + name = "matcher___matcher_3.0.0.tgz"; + path = fetchurl { + name = "matcher___matcher_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz"; + sha1 = "bd9060f4c5b70aa8041ccc6f80368760994f30ca"; + }; + } + { + name = "merge_stream___merge_stream_2.0.0.tgz"; + path = fetchurl { + name = "merge_stream___merge_stream_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz"; + sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60"; + }; + } + { + name = "micromatch___micromatch_4.0.4.tgz"; + path = fetchurl { + name = "micromatch___micromatch_4.0.4.tgz"; + url = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz"; + sha1 = "896d519dfe9db25fce94ceb7a500919bf881ebf9"; + }; + } + { + name = "mime_db___mime_db_1.48.0.tgz"; + path = fetchurl { + name = "mime_db___mime_db_1.48.0.tgz"; + url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz"; + sha1 = "e35b31045dd7eada3aaad537ed88a33afbef2d1d"; + }; + } + { + name = "mime_types___mime_types_2.1.31.tgz"; + path = fetchurl { + name = "mime_types___mime_types_2.1.31.tgz"; + url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz"; + sha1 = "a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"; + }; + } + { + name = "mime___mime_2.5.2.tgz"; + path = fetchurl { + name = "mime___mime_2.5.2.tgz"; + url = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz"; + sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"; + }; + } + { + name = "mimic_fn___mimic_fn_2.1.0.tgz"; + path = fetchurl { + name = "mimic_fn___mimic_fn_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz"; + sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"; + }; + } + { + name = "mimic_response___mimic_response_1.0.1.tgz"; + path = fetchurl { + name = "mimic_response___mimic_response_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz"; + sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b"; + }; + } + { + name = "minimatch___minimatch_3.0.4.tgz"; + path = fetchurl { + name = "minimatch___minimatch_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"; + sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; + }; + } + { + name = "minimist___minimist_1.2.5.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.5.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz"; + sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602"; + }; + } + { + name = "mkdirp___mkdirp_0.5.5.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_0.5.5.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz"; + sha1 = "d91cefd62d1436ca0f41620e251288d420099def"; + }; + } + { + name = "ms___ms_2.0.0.tgz"; + path = fetchurl { + name = "ms___ms_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + } + { + name = "ms___ms_2.1.2.tgz"; + path = fetchurl { + name = "ms___ms_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz"; + sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009"; + }; + } + { + name = "natural_compare___natural_compare_1.4.0.tgz"; + path = fetchurl { + name = "natural_compare___natural_compare_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz"; + sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; + }; + } + { + name = "node_addon_api___node_addon_api_1.7.2.tgz"; + path = fetchurl { + name = "node_addon_api___node_addon_api_1.7.2.tgz"; + url = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz"; + sha1 = "3df30b95720b53c24e59948b49532b662444f54d"; + }; + } + { + name = "node_int64___node_int64_0.4.0.tgz"; + path = fetchurl { + name = "node_int64___node_int64_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz"; + sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b"; + }; + } + { + name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz"; + path = fetchurl { + name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz"; + sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40"; + }; + } + { + name = "node_releases___node_releases_1.1.73.tgz"; + path = fetchurl { + name = "node_releases___node_releases_1.1.73.tgz"; + url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz"; + sha1 = "dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"; + }; + } + { + name = "normalize_path___normalize_path_3.0.0.tgz"; + path = fetchurl { + name = "normalize_path___normalize_path_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz"; + sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65"; + }; + } + { + name = "normalize_url___normalize_url_4.5.1.tgz"; + path = fetchurl { + name = "normalize_url___normalize_url_4.5.1.tgz"; + url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz"; + sha1 = "0dd90cf1288ee1d1313b87081c9a5932ee48518a"; + }; + } + { + name = "npm_conf___npm_conf_1.1.3.tgz"; + path = fetchurl { + name = "npm_conf___npm_conf_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz"; + sha1 = "256cc47bd0e218c259c4e9550bf413bc2192aff9"; + }; + } + { + name = "npm_run_path___npm_run_path_4.0.1.tgz"; + path = fetchurl { + name = "npm_run_path___npm_run_path_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz"; + sha1 = "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"; + }; + } + { + name = "nwsapi___nwsapi_2.2.0.tgz"; + path = fetchurl { + name = "nwsapi___nwsapi_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz"; + sha1 = "204879a9e3d068ff2a55139c2c772780681a38b7"; + }; + } + { + name = "object_keys___object_keys_1.1.1.tgz"; + path = fetchurl { + name = "object_keys___object_keys_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz"; + sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e"; + }; + } + { + name = "once___once_1.4.0.tgz"; + path = fetchurl { + name = "once___once_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + } + { + name = "onetime___onetime_5.1.2.tgz"; + path = fetchurl { + name = "onetime___onetime_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz"; + sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e"; + }; + } + { + name = "optionator___optionator_0.8.3.tgz"; + path = fetchurl { + name = "optionator___optionator_0.8.3.tgz"; + url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz"; + sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495"; + }; + } + { + name = "optionator___optionator_0.9.1.tgz"; + path = fetchurl { + name = "optionator___optionator_0.9.1.tgz"; + url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz"; + sha1 = "4f236a6373dae0566a6d43e1326674f50c291499"; + }; + } + { + name = "p_cancelable___p_cancelable_1.1.0.tgz"; + path = fetchurl { + name = "p_cancelable___p_cancelable_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz"; + sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc"; + }; + } + { + name = "p_each_series___p_each_series_2.2.0.tgz"; + path = fetchurl { + name = "p_each_series___p_each_series_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz"; + sha1 = "105ab0357ce72b202a8a8b94933672657b5e2a9a"; + }; + } + { + name = "p_limit___p_limit_2.3.0.tgz"; + path = fetchurl { + name = "p_limit___p_limit_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz"; + sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1"; + }; + } + { + name = "p_locate___p_locate_4.1.0.tgz"; + path = fetchurl { + name = "p_locate___p_locate_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz"; + sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07"; + }; + } + { + name = "p_try___p_try_2.2.0.tgz"; + path = fetchurl { + name = "p_try___p_try_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz"; + sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6"; + }; + } + { + name = "package_json___package_json_6.5.0.tgz"; + path = fetchurl { + name = "package_json___package_json_6.5.0.tgz"; + url = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz"; + sha1 = "6feedaca35e75725876d0b0e64974697fed145b0"; + }; + } + { + name = "parent_module___parent_module_1.0.1.tgz"; + path = fetchurl { + name = "parent_module___parent_module_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz"; + sha1 = "691d2709e78c79fae3a156622452d00762caaaa2"; + }; + } + { + name = "parse5___parse5_6.0.1.tgz"; + path = fetchurl { + name = "parse5___parse5_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz"; + sha1 = "e1a1c085c569b3dc08321184f19a39cc27f7c30b"; + }; + } + { + name = "path_exists___path_exists_4.0.0.tgz"; + path = fetchurl { + name = "path_exists___path_exists_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz"; + sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"; + }; + } + { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + path = fetchurl { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + } + { + name = "path_key___path_key_3.1.1.tgz"; + path = fetchurl { + name = "path_key___path_key_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz"; + sha1 = "581f6ade658cbba65a0d3380de7753295054f375"; + }; + } + { + name = "path_parse___path_parse_1.0.7.tgz"; + path = fetchurl { + name = "path_parse___path_parse_1.0.7.tgz"; + url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz"; + sha1 = "fbc114b60ca42b30d9daf5858e4bd68bbedb6735"; + }; + } + { + name = "pend___pend_1.2.0.tgz"; + path = fetchurl { + name = "pend___pend_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz"; + sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50"; + }; + } + { + name = "picomatch___picomatch_2.3.0.tgz"; + path = fetchurl { + name = "picomatch___picomatch_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz"; + sha1 = "f1f061de8f6a4bf022892e2d128234fb98302972"; + }; + } + { + name = "pify___pify_3.0.0.tgz"; + path = fetchurl { + name = "pify___pify_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + } + { + name = "pirates___pirates_4.0.1.tgz"; + path = fetchurl { + name = "pirates___pirates_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz"; + sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87"; + }; + } + { + name = "pkg_dir___pkg_dir_4.2.0.tgz"; + path = fetchurl { + name = "pkg_dir___pkg_dir_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz"; + sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3"; + }; + } + { + name = "plist___plist_3.0.2.tgz"; + path = fetchurl { + name = "plist___plist_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz"; + sha1 = "74bbf011124b90421c22d15779cee60060ba95bc"; + }; + } + { + name = "prelude_ls___prelude_ls_1.2.1.tgz"; + path = fetchurl { + name = "prelude_ls___prelude_ls_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz"; + sha1 = "debc6489d7a6e6b0e7611888cec880337d316396"; + }; + } + { + name = "prelude_ls___prelude_ls_1.1.2.tgz"; + path = fetchurl { + name = "prelude_ls___prelude_ls_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz"; + sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; + }; + } + { + name = "prepend_http___prepend_http_2.0.0.tgz"; + path = fetchurl { + name = "prepend_http___prepend_http_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz"; + sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897"; + }; + } + { + name = "pretty_format___pretty_format_27.0.6.tgz"; + path = fetchurl { + name = "pretty_format___pretty_format_27.0.6.tgz"; + url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz"; + sha1 = "ab770c47b2c6f893a21aefc57b75da63ef49a11f"; + }; + } + { + name = "printj___printj_1.1.2.tgz"; + path = fetchurl { + name = "printj___printj_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz"; + sha1 = "d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"; + }; + } + { + name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; + path = fetchurl { + name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"; + }; + } + { + name = "progress___progress_2.0.3.tgz"; + path = fetchurl { + name = "progress___progress_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz"; + sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"; + }; + } + { + name = "prompts___prompts_2.4.1.tgz"; + path = fetchurl { + name = "prompts___prompts_2.4.1.tgz"; + url = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz"; + sha1 = "befd3b1195ba052f9fd2fde8a486c4e82ee77f61"; + }; + } + { + name = "proto_list___proto_list_1.2.4.tgz"; + path = fetchurl { + name = "proto_list___proto_list_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz"; + sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; + }; + } + { + name = "psl___psl_1.8.0.tgz"; + path = fetchurl { + name = "psl___psl_1.8.0.tgz"; + url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz"; + sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24"; + }; + } + { + name = "pump___pump_3.0.0.tgz"; + path = fetchurl { + name = "pump___pump_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz"; + sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64"; + }; + } + { + name = "punycode___punycode_2.1.1.tgz"; + path = fetchurl { + name = "punycode___punycode_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz"; + sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec"; + }; + } + { + name = "pupa___pupa_2.1.1.tgz"; + path = fetchurl { + name = "pupa___pupa_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz"; + sha1 = "f5e8fd4afc2c5d97828faa523549ed8744a20d62"; + }; + } + { + name = "rc___rc_1.2.8.tgz"; + path = fetchurl { + name = "rc___rc_1.2.8.tgz"; + url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz"; + sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"; + }; + } + { + name = "react_is___react_is_17.0.2.tgz"; + path = fetchurl { + name = "react_is___react_is_17.0.2.tgz"; + url = "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz"; + sha1 = "e691d4a8e9c789365655539ab372762b0efb54f0"; + }; + } + { + name = "read_config_file___read_config_file_6.2.0.tgz"; + path = fetchurl { + name = "read_config_file___read_config_file_6.2.0.tgz"; + url = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz"; + sha1 = "71536072330bcd62ba814f91458b12add9fc7ade"; + }; + } + { + name = "readable_stream___readable_stream_2.3.7.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_2.3.7.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz"; + sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57"; + }; + } + { + name = "readable_stream___readable_stream_3.6.0.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_3.6.0.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz"; + sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198"; + }; + } + { + name = "readdir_glob___readdir_glob_1.1.1.tgz"; + path = fetchurl { + name = "readdir_glob___readdir_glob_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz"; + sha1 = "f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4"; + }; + } + { + name = "regexpp___regexpp_3.2.0.tgz"; + path = fetchurl { + name = "regexpp___regexpp_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz"; + sha1 = "0425a2768d8f23bad70ca4b90461fa2f1213e1b2"; + }; + } + { + name = "registry_auth_token___registry_auth_token_4.2.1.tgz"; + path = fetchurl { + name = "registry_auth_token___registry_auth_token_4.2.1.tgz"; + url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz"; + sha1 = "6d7b4006441918972ccd5fedcd41dc322c79b250"; + }; + } + { + name = "registry_url___registry_url_5.1.0.tgz"; + path = fetchurl { + name = "registry_url___registry_url_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz"; + sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009"; + }; + } + { + name = "require_directory___require_directory_2.1.1.tgz"; + path = fetchurl { + name = "require_directory___require_directory_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz"; + sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; + }; + } + { + name = "require_from_string___require_from_string_2.0.2.tgz"; + path = fetchurl { + name = "require_from_string___require_from_string_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz"; + sha1 = "89a7fdd938261267318eafe14f9c32e598c36909"; + }; + } + { + name = "requireindex___requireindex_1.2.0.tgz"; + path = fetchurl { + name = "requireindex___requireindex_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz"; + sha1 = "3463cdb22ee151902635aa6c9535d4de9c2ef1ef"; + }; + } + { + name = "resolve_cwd___resolve_cwd_3.0.0.tgz"; + path = fetchurl { + name = "resolve_cwd___resolve_cwd_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz"; + sha1 = "0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"; + }; + } + { + name = "resolve_from___resolve_from_4.0.0.tgz"; + path = fetchurl { + name = "resolve_from___resolve_from_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz"; + sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6"; + }; + } + { + name = "resolve_from___resolve_from_5.0.0.tgz"; + path = fetchurl { + name = "resolve_from___resolve_from_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz"; + sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69"; + }; + } + { + name = "resolve___resolve_1.20.0.tgz"; + path = fetchurl { + name = "resolve___resolve_1.20.0.tgz"; + url = "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz"; + sha1 = "629a013fb3f70755d6f0b7935cc1c2c5378b1975"; + }; + } + { + name = "responselike___responselike_1.0.2.tgz"; + path = fetchurl { + name = "responselike___responselike_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz"; + sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7"; + }; + } + { + name = "rimraf___rimraf_3.0.2.tgz"; + path = fetchurl { + name = "rimraf___rimraf_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz"; + sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"; + }; + } + { + name = "roarr___roarr_2.15.4.tgz"; + path = fetchurl { + name = "roarr___roarr_2.15.4.tgz"; + url = "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz"; + sha1 = "f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"; + }; + } + { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; + }; + } + { + name = "safe_buffer___safe_buffer_5.2.1.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.2.1.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz"; + sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"; + }; + } + { + name = "safer_buffer___safer_buffer_2.1.2.tgz"; + path = fetchurl { + name = "safer_buffer___safer_buffer_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a"; + }; + } + { + name = "sanitize_filename___sanitize_filename_1.6.3.tgz"; + path = fetchurl { + name = "sanitize_filename___sanitize_filename_1.6.3.tgz"; + url = "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz"; + sha1 = "755ebd752045931977e30b2025d340d7c9090378"; + }; + } + { + name = "sax___sax_1.2.4.tgz"; + path = fetchurl { + name = "sax___sax_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"; + sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9"; + }; + } + { + name = "saxes___saxes_5.0.1.tgz"; + path = fetchurl { + name = "saxes___saxes_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz"; + sha1 = "eebab953fa3b7608dbe94e5dadb15c888fa6696d"; + }; + } + { + name = "semver_compare___semver_compare_1.0.0.tgz"; + path = fetchurl { + name = "semver_compare___semver_compare_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz"; + sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc"; + }; + } + { + name = "semver_diff___semver_diff_3.1.1.tgz"; + path = fetchurl { + name = "semver_diff___semver_diff_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz"; + sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b"; + }; + } + { + name = "semver___semver_7.3.2.tgz"; + path = fetchurl { + name = "semver___semver_7.3.2.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz"; + sha1 = "604962b052b81ed0786aae84389ffba70ffd3938"; + }; + } + { + name = "semver___semver_6.3.0.tgz"; + path = fetchurl { + name = "semver___semver_6.3.0.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz"; + sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d"; + }; + } + { + name = "semver___semver_7.3.5.tgz"; + path = fetchurl { + name = "semver___semver_7.3.5.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz"; + sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7"; + }; + } + { + name = "serialize_error___serialize_error_7.0.1.tgz"; + path = fetchurl { + name = "serialize_error___serialize_error_7.0.1.tgz"; + url = "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz"; + sha1 = "f1360b0447f61ffb483ec4157c737fab7d778e18"; + }; + } + { + name = "shebang_command___shebang_command_2.0.0.tgz"; + path = fetchurl { + name = "shebang_command___shebang_command_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz"; + sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea"; + }; + } + { + name = "shebang_regex___shebang_regex_3.0.0.tgz"; + path = fetchurl { + name = "shebang_regex___shebang_regex_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz"; + sha1 = "ae16f1644d873ecad843b0307b143362d4c42172"; + }; + } + { + name = "signal_exit___signal_exit_3.0.3.tgz"; + path = fetchurl { + name = "signal_exit___signal_exit_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz"; + sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c"; + }; + } + { + name = "sisteransi___sisteransi_1.0.5.tgz"; + path = fetchurl { + name = "sisteransi___sisteransi_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz"; + sha1 = "134d681297756437cc05ca01370d3a7a571075ed"; + }; + } + { + name = "slash___slash_3.0.0.tgz"; + path = fetchurl { + name = "slash___slash_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz"; + sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634"; + }; + } + { + name = "slice_ansi___slice_ansi_1.0.0.tgz"; + path = fetchurl { + name = "slice_ansi___slice_ansi_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz"; + sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d"; + }; + } + { + name = "slice_ansi___slice_ansi_4.0.0.tgz"; + path = fetchurl { + name = "slice_ansi___slice_ansi_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz"; + sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b"; + }; + } + { + name = "smart_buffer___smart_buffer_4.1.0.tgz"; + path = fetchurl { + name = "smart_buffer___smart_buffer_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz"; + sha1 = "91605c25d91652f4661ea69ccf45f1b331ca21ba"; + }; + } + { + name = "source_map_support___source_map_support_0.5.19.tgz"; + path = fetchurl { + name = "source_map_support___source_map_support_0.5.19.tgz"; + url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz"; + sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61"; + }; + } + { + name = "source_map___source_map_0.5.7.tgz"; + path = fetchurl { + name = "source_map___source_map_0.5.7.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + } + { + name = "source_map___source_map_0.6.1.tgz"; + path = fetchurl { + name = "source_map___source_map_0.6.1.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz"; + sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263"; + }; + } + { + name = "source_map___source_map_0.7.3.tgz"; + path = fetchurl { + name = "source_map___source_map_0.7.3.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz"; + sha1 = "5302f8169031735226544092e64981f751750383"; + }; + } + { + name = "sprintf_js___sprintf_js_1.1.2.tgz"; + path = fetchurl { + name = "sprintf_js___sprintf_js_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz"; + sha1 = "da1765262bf8c0f571749f2ad6c26300207ae673"; + }; + } + { + name = "sprintf_js___sprintf_js_1.0.3.tgz"; + path = fetchurl { + name = "sprintf_js___sprintf_js_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + } + { + name = "stack_utils___stack_utils_2.0.3.tgz"; + path = fetchurl { + name = "stack_utils___stack_utils_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz"; + sha1 = "cd5f030126ff116b78ccb3c027fe302713b61277"; + }; + } + { + name = "stat_mode___stat_mode_1.0.0.tgz"; + path = fetchurl { + name = "stat_mode___stat_mode_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz"; + sha1 = "68b55cb61ea639ff57136f36b216a291800d1465"; + }; + } + { + name = "string_length___string_length_4.0.2.tgz"; + path = fetchurl { + name = "string_length___string_length_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz"; + sha1 = "a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"; + }; + } + { + name = "string_width___string_width_2.1.1.tgz"; + path = fetchurl { + name = "string_width___string_width_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz"; + sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e"; + }; + } + { + name = "string_width___string_width_3.1.0.tgz"; + path = fetchurl { + name = "string_width___string_width_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz"; + sha1 = "22767be21b62af1081574306f69ac51b62203961"; + }; + } + { + name = "string_width___string_width_4.2.2.tgz"; + path = fetchurl { + name = "string_width___string_width_4.2.2.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz"; + sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"; + }; + } + { + name = "string_decoder___string_decoder_1.3.0.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz"; + sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e"; + }; + } + { + name = "string_decoder___string_decoder_1.1.1.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; + sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8"; + }; + } + { + name = "strip_ansi___strip_ansi_4.0.0.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz"; + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; + }; + } + { + name = "strip_ansi___strip_ansi_5.2.0.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz"; + sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"; + }; + } + { + name = "strip_ansi___strip_ansi_6.0.0.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz"; + sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532"; + }; + } + { + name = "strip_bom___strip_bom_4.0.0.tgz"; + path = fetchurl { + name = "strip_bom___strip_bom_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz"; + sha1 = "9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"; + }; + } + { + name = "strip_final_newline___strip_final_newline_2.0.0.tgz"; + path = fetchurl { + name = "strip_final_newline___strip_final_newline_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz"; + sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"; + }; + } + { + name = "strip_json_comments___strip_json_comments_3.1.1.tgz"; + path = fetchurl { + name = "strip_json_comments___strip_json_comments_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz"; + sha1 = "31f1281b3832630434831c310c01cccda8cbe006"; + }; + } + { + name = "strip_json_comments___strip_json_comments_2.0.1.tgz"; + path = fetchurl { + name = "strip_json_comments___strip_json_comments_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + } + { + name = "sumchecker___sumchecker_3.0.1.tgz"; + path = fetchurl { + name = "sumchecker___sumchecker_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz"; + sha1 = "6377e996795abb0b6d348e9b3e1dfb24345a8e42"; + }; + } + { + name = "supports_color___supports_color_5.5.0.tgz"; + path = fetchurl { + name = "supports_color___supports_color_5.5.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz"; + sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f"; + }; + } + { + name = "supports_color___supports_color_7.2.0.tgz"; + path = fetchurl { + name = "supports_color___supports_color_7.2.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz"; + sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da"; + }; + } + { + name = "supports_color___supports_color_8.1.1.tgz"; + path = fetchurl { + name = "supports_color___supports_color_8.1.1.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz"; + sha1 = "cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"; + }; + } + { + name = "supports_hyperlinks___supports_hyperlinks_2.2.0.tgz"; + path = fetchurl { + name = "supports_hyperlinks___supports_hyperlinks_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz"; + sha1 = "4f77b42488765891774b70c79babd87f9bd594bb"; + }; + } + { + name = "symbol_tree___symbol_tree_3.2.4.tgz"; + path = fetchurl { + name = "symbol_tree___symbol_tree_3.2.4.tgz"; + url = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz"; + sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2"; + }; + } + { + name = "table___table_6.7.1.tgz"; + path = fetchurl { + name = "table___table_6.7.1.tgz"; + url = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz"; + sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2"; + }; + } + { + name = "tar_stream___tar_stream_2.2.0.tgz"; + path = fetchurl { + name = "tar_stream___tar_stream_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz"; + sha1 = "acad84c284136b060dc3faa64474aa9aebd77287"; + }; + } + { + name = "temp_file___temp_file_3.4.0.tgz"; + path = fetchurl { + name = "temp_file___temp_file_3.4.0.tgz"; + url = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz"; + sha1 = "766ea28911c683996c248ef1a20eea04d51652c7"; + }; + } + { + name = "terminal_link___terminal_link_2.1.1.tgz"; + path = fetchurl { + name = "terminal_link___terminal_link_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz"; + sha1 = "14a64a27ab3c0df933ea546fba55f2d078edc994"; + }; + } + { + name = "test_exclude___test_exclude_6.0.0.tgz"; + path = fetchurl { + name = "test_exclude___test_exclude_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz"; + sha1 = "04a8698661d805ea6fa293b6cb9e63ac044ef15e"; + }; + } + { + name = "text_table___text_table_0.2.0.tgz"; + path = fetchurl { + name = "text_table___text_table_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"; + sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4"; + }; + } + { + name = "throat___throat_6.0.1.tgz"; + path = fetchurl { + name = "throat___throat_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz"; + sha1 = "d514fedad95740c12c2d7fc70ea863eb51ade375"; + }; + } + { + name = "tldts_core___tldts_core_5.7.38.tgz"; + path = fetchurl { + name = "tldts_core___tldts_core_5.7.38.tgz"; + url = "https://registry.yarnpkg.com/tldts-core/-/tldts-core-5.7.38.tgz"; + sha1 = "779092c90941803fb682c3d7094a88f12aad4508"; + }; + } + { + name = "tldts_experimental___tldts_experimental_5.7.38.tgz"; + path = fetchurl { + name = "tldts_experimental___tldts_experimental_5.7.38.tgz"; + url = "https://registry.yarnpkg.com/tldts-experimental/-/tldts-experimental-5.7.38.tgz"; + sha1 = "a2b03ae0282ee7439b1ed1618a1d7d2e9e66be78"; + }; + } + { + name = "tmp_promise___tmp_promise_3.0.2.tgz"; + path = fetchurl { + name = "tmp_promise___tmp_promise_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz"; + sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a"; + }; + } + { + name = "tmp___tmp_0.2.1.tgz"; + path = fetchurl { + name = "tmp___tmp_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz"; + sha1 = "8457fc3037dcf4719c251367a1af6500ee1ccf14"; + }; + } + { + name = "tmpl___tmpl_1.0.4.tgz"; + path = fetchurl { + name = "tmpl___tmpl_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz"; + sha1 = "23640dd7b42d00433911140820e5cf440e521dd1"; + }; + } + { + name = "to_fast_properties___to_fast_properties_2.0.0.tgz"; + path = fetchurl { + name = "to_fast_properties___to_fast_properties_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz"; + sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e"; + }; + } + { + name = "to_readable_stream___to_readable_stream_1.0.0.tgz"; + path = fetchurl { + name = "to_readable_stream___to_readable_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz"; + sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771"; + }; + } + { + name = "to_regex_range___to_regex_range_5.0.1.tgz"; + path = fetchurl { + name = "to_regex_range___to_regex_range_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz"; + sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4"; + }; + } + { + name = "tough_cookie___tough_cookie_4.0.0.tgz"; + path = fetchurl { + name = "tough_cookie___tough_cookie_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz"; + sha1 = "d822234eeca882f991f0f908824ad2622ddbece4"; + }; + } + { + name = "tr46___tr46_2.1.0.tgz"; + path = fetchurl { + name = "tr46___tr46_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz"; + sha1 = "fa87aa81ca5d5941da8cbf1f9b749dc969a4e240"; + }; + } + { + name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz"; + path = fetchurl { + name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz"; + sha1 = "405923909592d56f78a5818434b0b78489ca5f2b"; + }; + } + { + name = "tunnel___tunnel_0.0.6.tgz"; + path = fetchurl { + name = "tunnel___tunnel_0.0.6.tgz"; + url = "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz"; + sha1 = "72f1314b34a5b192db012324df2cc587ca47f92c"; + }; + } + { + name = "type_check___type_check_0.4.0.tgz"; + path = fetchurl { + name = "type_check___type_check_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz"; + sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1"; + }; + } + { + name = "type_check___type_check_0.3.2.tgz"; + path = fetchurl { + name = "type_check___type_check_0.3.2.tgz"; + url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz"; + sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; + }; + } + { + name = "type_detect___type_detect_4.0.8.tgz"; + path = fetchurl { + name = "type_detect___type_detect_4.0.8.tgz"; + url = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz"; + sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c"; + }; + } + { + name = "type_fest___type_fest_0.13.1.tgz"; + path = fetchurl { + name = "type_fest___type_fest_0.13.1.tgz"; + url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz"; + sha1 = "0172cb5bce80b0bd542ea348db50c7e21834d934"; + }; + } + { + name = "type_fest___type_fest_0.20.2.tgz"; + path = fetchurl { + name = "type_fest___type_fest_0.20.2.tgz"; + url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz"; + sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4"; + }; + } + { + name = "type_fest___type_fest_0.21.3.tgz"; + path = fetchurl { + name = "type_fest___type_fest_0.21.3.tgz"; + url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz"; + sha1 = "d260a24b0198436e133fa26a524a6d65fa3b2e37"; + }; + } + { + name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz"; + path = fetchurl { + name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz"; + url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"; + sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"; + }; + } + { + name = "typedarray___typedarray_0.0.6.tgz"; + path = fetchurl { + name = "typedarray___typedarray_0.0.6.tgz"; + url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + } + { + name = "unique_string___unique_string_2.0.0.tgz"; + path = fetchurl { + name = "unique_string___unique_string_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz"; + sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d"; + }; + } + { + name = "universalify___universalify_0.1.2.tgz"; + path = fetchurl { + name = "universalify___universalify_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz"; + sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66"; + }; + } + { + name = "universalify___universalify_2.0.0.tgz"; + path = fetchurl { + name = "universalify___universalify_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz"; + sha1 = "75a4984efedc4b08975c5aeb73f530d02df25717"; + }; + } + { + name = "update_notifier___update_notifier_5.1.0.tgz"; + path = fetchurl { + name = "update_notifier___update_notifier_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz"; + sha1 = "4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"; + }; + } + { + name = "uri_js___uri_js_4.4.1.tgz"; + path = fetchurl { + name = "uri_js___uri_js_4.4.1.tgz"; + url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz"; + sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e"; + }; + } + { + name = "url_parse_lax___url_parse_lax_3.0.0.tgz"; + path = fetchurl { + name = "url_parse_lax___url_parse_lax_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz"; + sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c"; + }; + } + { + name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz"; + path = fetchurl { + name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz"; + sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61"; + }; + } + { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + path = fetchurl { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + } + { + name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz"; + path = fetchurl { + name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"; + sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee"; + }; + } + { + name = "v8_to_istanbul___v8_to_istanbul_8.0.0.tgz"; + path = fetchurl { + name = "v8_to_istanbul___v8_to_istanbul_8.0.0.tgz"; + url = "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz"; + sha1 = "4229f2a99e367f3f018fa1d5c2b8ec684667c69c"; + }; + } + { + name = "verror___verror_1.10.0.tgz"; + path = fetchurl { + name = "verror___verror_1.10.0.tgz"; + url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + } + { + name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz"; + path = fetchurl { + name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz"; + sha1 = "0a89cdf5cc15822df9c360543676963e0cc308cd"; + }; + } + { + name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz"; + path = fetchurl { + name = "w3c_xmlserializer___w3c_xmlserializer_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz"; + sha1 = "3e7104a05b75146cc60f564380b7f683acf1020a"; + }; + } + { + name = "walker___walker_1.0.7.tgz"; + path = fetchurl { + name = "walker___walker_1.0.7.tgz"; + url = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz"; + sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb"; + }; + } + { + name = "webidl_conversions___webidl_conversions_5.0.0.tgz"; + path = fetchurl { + name = "webidl_conversions___webidl_conversions_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz"; + sha1 = "ae59c8a00b121543a2acc65c0434f57b0fc11aff"; + }; + } + { + name = "webidl_conversions___webidl_conversions_6.1.0.tgz"; + path = fetchurl { + name = "webidl_conversions___webidl_conversions_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz"; + sha1 = "9111b4d7ea80acd40f5270d666621afa78b69514"; + }; + } + { + name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz"; + path = fetchurl { + name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz"; + sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0"; + }; + } + { + name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz"; + path = fetchurl { + name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz"; + sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf"; + }; + } + { + name = "whatwg_url___whatwg_url_8.7.0.tgz"; + path = fetchurl { + name = "whatwg_url___whatwg_url_8.7.0.tgz"; + url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz"; + sha1 = "656a78e510ff8f3937bc0bcbe9f5c0ac35941b77"; + }; + } + { + name = "which___which_2.0.2.tgz"; + path = fetchurl { + name = "which___which_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz"; + sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"; + }; + } + { + name = "widest_line___widest_line_3.1.0.tgz"; + path = fetchurl { + name = "widest_line___widest_line_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz"; + sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca"; + }; + } + { + name = "word_wrap___word_wrap_1.2.3.tgz"; + path = fetchurl { + name = "word_wrap___word_wrap_1.2.3.tgz"; + url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz"; + sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c"; + }; + } + { + name = "wrap_ansi___wrap_ansi_7.0.0.tgz"; + path = fetchurl { + name = "wrap_ansi___wrap_ansi_7.0.0.tgz"; + url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"; + sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43"; + }; + } + { + name = "wrappy___wrappy_1.0.2.tgz"; + path = fetchurl { + name = "wrappy___wrappy_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + } + { + name = "write_file_atomic___write_file_atomic_3.0.3.tgz"; + path = fetchurl { + name = "write_file_atomic___write_file_atomic_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz"; + sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8"; + }; + } + { + name = "ws___ws_7.5.1.tgz"; + path = fetchurl { + name = "ws___ws_7.5.1.tgz"; + url = "https://registry.yarnpkg.com/ws/-/ws-7.5.1.tgz"; + sha1 = "44fc000d87edb1d9c53e51fbc69a0ac1f6871d66"; + }; + } + { + name = "xdg_basedir___xdg_basedir_4.0.0.tgz"; + path = fetchurl { + name = "xdg_basedir___xdg_basedir_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz"; + sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13"; + }; + } + { + name = "xml_name_validator___xml_name_validator_3.0.0.tgz"; + path = fetchurl { + name = "xml_name_validator___xml_name_validator_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz"; + sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"; + }; + } + { + name = "xmlbuilder___xmlbuilder_15.1.1.tgz"; + path = fetchurl { + name = "xmlbuilder___xmlbuilder_15.1.1.tgz"; + url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz"; + sha1 = "9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"; + }; + } + { + name = "xmlbuilder___xmlbuilder_9.0.7.tgz"; + path = fetchurl { + name = "xmlbuilder___xmlbuilder_9.0.7.tgz"; + url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz"; + sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d"; + }; + } + { + name = "xmlchars___xmlchars_2.2.0.tgz"; + path = fetchurl { + name = "xmlchars___xmlchars_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz"; + sha1 = "060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"; + }; + } + { + name = "xmldom___xmldom_0.5.0.tgz"; + path = fetchurl { + name = "xmldom___xmldom_0.5.0.tgz"; + url = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz"; + sha1 = "193cb96b84aa3486127ea6272c4596354cb4962e"; + }; + } + { + name = "y18n___y18n_5.0.8.tgz"; + path = fetchurl { + name = "y18n___y18n_5.0.8.tgz"; + url = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz"; + sha1 = "7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"; + }; + } + { + name = "yallist___yallist_4.0.0.tgz"; + path = fetchurl { + name = "yallist___yallist_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz"; + sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72"; + }; + } + { + name = "yargs_parser___yargs_parser_20.2.9.tgz"; + path = fetchurl { + name = "yargs_parser___yargs_parser_20.2.9.tgz"; + url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz"; + sha1 = "2eb7dc3b0289718fc295f362753845c41a0c94ee"; + }; + } + { + name = "yargs___yargs_16.2.0.tgz"; + path = fetchurl { + name = "yargs___yargs_16.2.0.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz"; + sha1 = "1c82bf0f6b6a66eafce7ef30e376f49a12477f66"; + }; + } + { + name = "yargs___yargs_17.0.1.tgz"; + path = fetchurl { + name = "yargs___yargs_17.0.1.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz"; + sha1 = "6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb"; + }; + } + { + name = "yauzl___yauzl_2.10.0.tgz"; + path = fetchurl { + name = "yauzl___yauzl_2.10.0.tgz"; + url = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz"; + sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"; + }; + } + { + name = "zip_stream___zip_stream_4.1.0.tgz"; + path = fetchurl { + name = "zip_stream___zip_stream_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz"; + sha1 = "51dd326571544e36aa3f756430b313576dc8fc79"; + }; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix new file mode 100644 index 000000000000..816b986f8835 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, libsoup, webkitgtk, gtk3, glib-networking +, gsettings-desktop-schemas, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "vimb"; + version = "3.3.0"; + + src = fetchFromGitHub { + owner = "fanglingsu"; + repo = "vimb"; + rev = version; + sha256 = "1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf"; + }; + + nativeBuildInputs = [ wrapGAppsHook pkg-config ]; + buildInputs = [ gtk3 libsoup webkitgtk glib-networking gsettings-desktop-schemas ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = { + description = "A Vim-like browser"; + longDescription = '' + A fast and lightweight vim like web browser based on the webkit web + browser engine and the GTK toolkit. Vimb is modal like the great vim + editor and also easily configurable during runtime. Vimb is mostly + keyboard driven and does not detract you from your daily work. + ''; + homepage = "https://fanglingsu.github.io/vimb/"; + license = lib.licenses.gpl3; + maintainers = []; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix new file mode 100644 index 000000000000..dba21d2f21ca --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -0,0 +1,101 @@ +{ lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon, libxshmfence +, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr +, alsa-lib, dbus, cups, libexif, ffmpeg, systemd +, freetype, fontconfig, libXft, libXrender, libxcb, expat +, libuuid +, libxml2 +, glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core, gnome2 +, libdrm, mesa +, nss, nspr +, patchelf, makeWrapper +, isSnapshot ? false +, proprietaryCodecs ? false, vivaldi-ffmpeg-codecs ? null +, enableWidevine ? false, vivaldi-widevine ? null +}: + +let + branch = if isSnapshot then "snapshot" else "stable"; + vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; +in stdenv.mkDerivation rec { + pname = "vivaldi"; + version = "4.0.2312.24-1"; + + src = fetchurl { + url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; + sha256 = "0cyvnabjhcn1bm5py4nhfb1yhpz5nm9qm39vb4y1fwhjd0jv38hi"; + }; + + unpackPhase = '' + ar vx $src + tar -xvf data.tar.xz + ''; + + nativeBuildInputs = [ patchelf makeWrapper ]; + + buildInputs = [ + stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon libxshmfence + libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr + atk at-spi2-atk at-spi2-core alsa-lib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd + freetype fontconfig libXrender libuuid expat glib nss nspr + libxml2 pango cairo gnome2.GConf + libdrm mesa + ] ++ lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs; + + libPath = lib.makeLibraryPath buildInputs + + lib.optionalString (stdenv.is64bit) + (":" + lib.makeSearchPathOutput "lib" "lib64" buildInputs) + + ":$out/opt/${vivaldiName}/lib"; + + buildPhase = '' + runHook preBuild + echo "Patching Vivaldi binaries" + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}" \ + opt/${vivaldiName}/vivaldi-bin + '' + lib.optionalString proprietaryCodecs '' + ln -s ${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so opt/${vivaldiName}/libffmpeg.so.''${version%\.*\.*} + '' + '' + echo "Finished patching Vivaldi binaries" + runHook postBuild + ''; + + dontPatchELF = true; + dontStrip = true; + + installPhase = '' + runHook preInstall + mkdir -p "$out" + cp -r opt "$out" + mkdir "$out/bin" + ln -s "$out/opt/${vivaldiName}/${vivaldiName}" "$out/bin/vivaldi" + mkdir -p "$out/share" + cp -r usr/share/{applications,xfce4} "$out"/share + substituteInPlace "$out"/share/applications/*.desktop \ + --replace /usr/bin/${vivaldiName} "$out"/bin/vivaldi + substituteInPlace "$out"/share/applications/*.desktop \ + --replace vivaldi-stable vivaldi + local d + for d in 16 22 24 32 48 64 128 256; do + mkdir -p "$out"/share/icons/hicolor/''${d}x''${d}/apps + ln -s \ + "$out"/opt/${vivaldiName}/product_logo_''${d}.png \ + "$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png + done + wrapProgram "$out/bin/vivaldi" \ + --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ \ + ${lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"} + '' + lib.optionalString enableWidevine '' + ln -sf ${vivaldi-widevine}/share/google/chrome/WidevineCdm $out/opt/${vivaldiName}/WidevineCdm + '' + '' + runHook postInstall + ''; + + meta = with lib; { + description = "A Browser for our Friends, powerful and personal"; + homepage = "https://vivaldi.com"; + license = licenses.unfree; + maintainers = with maintainers; [ otwieracz badmutex ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix new file mode 100644 index 000000000000..d6703788ed92 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl +, dpkg +}: + +stdenv.mkDerivation rec { + name = "chromium-codecs-ffmpeg"; + version = "78.0.3904.70"; + + src = fetchurl { + url = "https://launchpadlibrarian.net/449403909/${name}-extra_${version}-0ubuntu0.16.04.2_amd64.deb"; + sha256 = "00j604nm49z6hbyw7xsxcvmdjf7117kb478plkpizzvmm3w72b9v"; + }; + + buildInputs = [ dpkg ]; + + unpackPhase = '' + dpkg-deb -x $src . + find . + ''; + + installPhase = '' + install -vD usr/lib/chromium-browser/libffmpeg.so $out/lib/libffmpeg.so + ''; + + meta = with lib; { + description = "Additional support for proprietary codecs for Vivaldi"; + homepage = "https://ffmpeg.org/"; + license = licenses.lgpl21; + maintainers = with maintainers; [ betaboon lluchs ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh new file mode 100755 index 000000000000..2e6c2853eb14 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p libarchive curl common-updater-scripts + +set -eu -o pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")" +root=../../../../.. +export NIXPKGS_ALLOW_UNFREE=1 + +version() { + (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"') +} + +vivaldi_version_old=$(version vivaldi) +vivaldi_version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-[0-9]+)_amd64\.deb.*/\1/p') + +if [[ "$vivaldi_version" = "$vivaldi_version_old" ]]; then + echo "vivaldi is already up-to-date" + exit +fi + +# Download vivaldi and save hash and file path. +url="https://downloads.vivaldi.com/stable/vivaldi-stable_${vivaldi_version}_amd64.deb" +mapfile -t prefetch < <(nix-prefetch-url --print-path "$url") +hash=${prefetch[0]} +path=${prefetch[1]} + +nixpkgs="$(git rev-parse --show-toplevel)" +default_nix="$nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix" +ffmpeg_nix="$nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix" + +(cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash") + +git add "${default_nix}" +git commit -m "vivaldi: ${vivaldi_version_old} -> ${vivaldi_version}" + +# Check vivaldi-ffmpeg-codecs version. +chromium_version_old=$(version vivaldi-ffmpeg-codecs) +chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep '^[0-9]\{2,\}\.[0-9]\+\.[0-9]\{4,\}\+\.[0-9]\+$') + +if [[ "$chromium_version" != "$chromium_version_old" ]]; then + (cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version") + + git add "${ffmpeg_nix}" + git commit -m "vivaldi-ffmepg-codecs: $chromium_version_old -> $chromium_version" +fi diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix new file mode 100644 index 000000000000..81c95418e691 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/widevine.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl +, unzip +}: + +stdenv.mkDerivation rec { + name = "widevine"; + version = "4.10.1582.1"; + + src = fetchurl { + url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip"; + sha256 = "0l743f2yyaq1vvc3iicajgnfpjxjsfvjcqvanndbxs23skgjcv6r"; + }; + + nativeBuildInputs = [ unzip ]; + + unpackPhase = '' + unzip $src + ''; + + installPhase = '' + install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json + install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt + install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so + ''; + + meta = with lib; { + description = "Widevine support for Vivaldi"; + homepage = "https://www.widevine.com"; + license = licenses.unfree; + maintainers = with maintainers; [ betaboon ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch b/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch new file mode 100644 index 000000000000..49dd417d1c39 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch @@ -0,0 +1,11 @@ +--- a/url.c 2014-07-14 12:31:30.476563116 +0200 ++++ b/url.c 2014-07-14 12:32:16.364918248 +0200 +@@ -268,7 +268,7 @@ init_PRNG() + if (RAND_status()) + return; + if ((file = RAND_file_name(buffer, sizeof(buffer)))) { +-#ifdef USE_EGD ++#if defined(USE_EGD) && defined(HAVE_SSL_RAND_EGD) + if (RAND_egd(file) > 0) + return; + #endif diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix b/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix new file mode 100644 index 000000000000..2a4dc9e389ab --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix @@ -0,0 +1,100 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch +, ncurses, boehmgc, gettext, zlib +, sslSupport ? true, openssl ? null +, graphicsSupport ? !stdenv.isDarwin, imlib2 ? null +, x11Support ? graphicsSupport, libX11 ? null +, mouseSupport ? !stdenv.isDarwin, gpm-ncurses ? null +, perl, man, pkg-config, buildPackages, w3m +}: + +assert sslSupport -> openssl != null; +assert graphicsSupport -> imlib2 != null; +assert x11Support -> graphicsSupport && libX11 != null; +assert mouseSupport -> gpm-ncurses != null; + +with lib; + +let + mktable = buildPackages.stdenv.mkDerivation { + name = "w3m-mktable"; + inherit (w3m) src; + nativeBuildInputs = [ pkg-config boehmgc ]; + makeFlags = [ "mktable" ]; + installPhase = '' + install -D mktable $out/bin/mktable + ''; + }; +in stdenv.mkDerivation rec { + pname = "w3m"; + version = "0.5.3+git20190105"; + + src = fetchFromGitHub { + owner = "tats"; + repo = pname; + rev = "v${version}"; + sha256 = "1fbg2p8qh2gvi3g4iz4q6vc0k70pf248r4yndi5lcn2m3mzvjx0i"; + }; + + NIX_LDFLAGS = optionalString stdenv.isSunOS "-lsocket -lnsl"; + + # we must set these so that the generated files (e.g. w3mhelp.cgi) contain + # the correct paths. + PERL = "${perl}/bin/perl"; + MAN = "${man}/bin/man"; + + makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ]; + + patches = [ + ./RAND_egd.libressl.patch + (fetchpatch { + name = "https.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/https.patch?h=w3m-mouse&id=5b5f0fbb59f674575e87dd368fed834641c35f03"; + sha256 = "08skvaha1hjyapsh8zw5dgfy433mw2hk7qy9yy9avn8rjqj7kjxk"; + }) + ] ++ optional (graphicsSupport && !x11Support) [ ./no-x11.patch ]; + + postPatch = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + ln -s ${mktable}/bin/mktable mktable + # stop make from recompiling mktable + sed -ie 's!mktable.*:.*!mktable:!' Makefile.in + ''; + + nativeBuildInputs = [ pkg-config gettext ]; + buildInputs = [ ncurses boehmgc zlib ] + ++ optional sslSupport openssl + ++ optional mouseSupport gpm-ncurses + ++ optional graphicsSupport imlib2 + ++ optional x11Support libX11; + + postInstall = optionalString graphicsSupport '' + ln -s $out/libexec/w3m/w3mimgdisplay $out/bin + ''; + + hardeningDisable = [ "format" ]; + + configureFlags = + [ "--with-ssl=${openssl.dev}" "--with-gc=${boehmgc.dev}" ] + ++ optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "ac_cv_func_setpgrp_void=yes" + ] + ++ optional graphicsSupport "--enable-image=${optionalString x11Support "x11,"}fb"; + + preConfigure = '' + substituteInPlace ./configure --replace "/lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64" /no-such-path + substituteInPlace ./configure --replace /usr /no-such-path + ''; + + enableParallelBuilding = false; + + # for w3mimgdisplay + # see: https://bbs.archlinux.org/viewtopic.php?id=196093 + LIBS = optionalString x11Support "-lX11"; + + meta = { + homepage = "http://w3m.sourceforge.net/"; + description = "A text-mode web browser"; + maintainers = [ maintainers.cstrahan ]; + platforms = lib.platforms.unix; + license = lib.licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch b/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch new file mode 100644 index 000000000000..0816c022926d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch @@ -0,0 +1,14 @@ +Forget about X11 in fb module. +This breaks w3mimgdisplay under X11, but removes X11 dependency it in pure fb. +diff --git a/w3mimg/fb/fb_imlib2.c b/w3mimg/fb/fb_imlib2.c +index 1a5151c..d3d7bc3 100644 +--- a/w3mimg/fb/fb_imlib2.c ++++ b/w3mimg/fb/fb_imlib2.c +@@ -3,6 +3,7 @@ + fb_imlib2.c 0.3 Copyright (C) 2002, hito + **************************************************************************/ + ++#define X_DISPLAY_MISSING + #include <Imlib2.h> + #include "fb.h" + #include "fb_img.h" diff --git a/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix new file mode 100644 index 000000000000..f9be7e9ec9aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix @@ -0,0 +1,109 @@ +{ stdenv, lib, fetchgit, makeDesktopItem, pkg-config, makeWrapper +# Build +, python2, autoconf213, yasm, perl +, unzip, gnome2, gnum4 + +# Runtime +, xorg, zip, freetype, fontconfig, glibc, libffi +, dbus, dbus-glib, gtk2, alsa-lib, jack2, ffmpeg +}: + +let + + libPath = lib.makeLibraryPath [ ffmpeg ]; + +in stdenv.mkDerivation rec { + pname = "webbrowser"; + version = "29.0.0rc1"; + + src = fetchgit { + url = "https://git.nuegia.net/webbrowser.git"; + rev = version; + sha256 = "1d82943mla6q3257081d946kgms91dg0n93va3zlzm9hbbqilzm6"; + fetchSubmodules = true; + }; + + desktopItem = makeDesktopItem { + name = "webbrowser"; + exec = "webbrowser %U"; + icon = "webbrowser"; + desktopName = "Web Browser"; + genericName = "Web Browser"; + categories = "Network;WebBrowser;"; + mimeType = lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]; + }; + + nativeBuildInputs = [ + gnum4 makeWrapper perl pkg-config python2 unzip + ]; + + buildInputs = [ + alsa-lib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2 + gnome2.GConf xorg.libXt + ]; + + enableParallelBuilding = true; + + configurePhase = '' + export MOZCONFIG=$PWD/.mozconfig + export MOZ_NOSPAM=1 + + cp $src/doc/mozconfig.example $MOZCONFIG + # Need to modify it + chmod 644 $MOZCONFIG + + substituteInPlace $MOZCONFIG \ + --replace "mk_add_options PYTHON=/usr/bin/python2" "mk_add_options PYTHON=${python2}/bin/python2" \ + --replace "mk_add_options AUTOCONF=/usr/bin/autoconf-2.13" "mk_add_options AUTOCONF=${autoconf213}/bin/autoconf" \ + --replace 'mk_add_options MOZ_OBJDIR=$HOME/build/wbobjects/' "" \ + --replace "ac_add_options --x-libraries=/usr/lib64" "ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}" \ + --replace "_BUILD_64=1" "_BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}" \ + --replace "--enable-ccache" "--disable-ccache" + + echo >> $MOZCONFIG ' + # + # NixOS-specific adjustments + # + + ac_add_options --prefix=$out + + mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES" + ' + ''; + + buildPhase = "$src/mach build"; + + installPhase = '' + $src/mach install + + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + + for n in 16 32 48; do + size=$n"x"$n + mkdir -p $out/share/icons/hicolor/$size/apps + cp $src/webbrowser/branding/unofficial/default$n.png \ + $out/share/icons/hicolor/$size/apps/webbrowser.png + done + + # Needed to make videos work + wrapProgram $out/lib/webbrowser-${version}/webbrowser \ + --prefix LD_LIBRARY_PATH : "${libPath}" + ''; + + meta = with lib; { + description = "Generic web browser without trackers compatible with XUL plugins using UXP rendering engine"; + homepage = "https://git.nuegia.net/webbrowser.git/"; + license = [ licenses.mpl20 licenses.gpl3 ]; + maintainers = with maintainers; [ TheBrainScrambler ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + broken = true; # 2021-01-07 + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix new file mode 100644 index 000000000000..7dbb6a3c5388 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix @@ -0,0 +1,75 @@ +{ lib +, mkDerivationWith +, fetchFromGitHub +, python3Packages +, herbstluftwm +}: + +mkDerivationWith python3Packages.buildPythonApplication rec { + pname = "webmacs"; + version = "0.8"; + + disabled = python3Packages.isPy27; + + src = fetchFromGitHub { + owner = "parkouss"; + repo = "webmacs"; + rev = version; + fetchSubmodules = true; + sha256 = "1hzb9341hybgrqcy1w20hshm6xaiby4wbjpjkigf4zq389407368"; + }; + + propagatedBuildInputs = with python3Packages; [ + pyqtwebengine + setuptools + dateparser + jinja2 + pygments + ]; + + checkInputs = [ + python3Packages.pytest + #python3Packages.pytest-xvfb + #python3Packages.pytest-qt + python3Packages.pytestCheckHook + herbstluftwm + + # The following are listed in test-requirements.txt but appear not + # to be needed at present: + + # python3Packages.pytest-mock + # python3Packages.flake8 + ]; + + # See https://github.com/parkouss/webmacs/blob/1a04fb7bd3f33d39cb4d71621b48c2458712ed39/setup.py#L32 + # Don't know why they're using CC for g++. + preConfigure = '' + export CC=$CXX + ''; + + doCheck = false; # test dependencies not packaged up yet + + dontWrapQtApps = true; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Keyboard-based web browser with Emacs/conkeror heritage"; + longDescription = '' + webmacs is yet another browser for keyboard-based web navigation. + + It mainly targets emacs-like navigation, and started as a clone (in terms of + features) of conkeror. + + Based on QtWebEngine and Python 3. Fully customizable in Python. + ''; + homepage = "https://webmacs.readthedocs.io/en/latest/"; + changelog = "https://github.com/parkouss/webmacs/blob/master/CHANGELOG.md"; + license = licenses.gpl3; + maintainers = with maintainers; [ jacg ]; + platforms = platforms.all; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/c14/default.nix b/nixpkgs/pkgs/applications/networking/c14/default.nix new file mode 100644 index 000000000000..3a9192164adf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/c14/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "c14-cli"; + version = "0.3"; + + goPackagePath = "github.com/online-net/c14-cli"; + + src = fetchFromGitHub { + owner = "online-net"; + repo = "c14-cli"; + rev = version; + sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf"; + }; + + meta = with lib; { + description = "C14 is designed for data archiving & long-term backups"; + homepage = "https://www.online.net/en/storage/c14-cold-storage"; + license = licenses.mit; + maintainers = with maintainers; [ apeyroux ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/calls/default.nix b/nixpkgs/pkgs/applications/networking/calls/default.nix new file mode 100644 index 000000000000..52e1bc50601a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/calls/default.nix @@ -0,0 +1,102 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, ninja +, pkg-config +, libhandy +, modemmanager +, gtk3 +, gom +, gsound +, feedbackd +, callaudiod +, evolution-data-server +, glib +, folks +, desktop-file-utils +, appstream-glib +, libpeas +, libgdata +, dbus +, vala +, wrapGAppsHook +, xvfb-run +, gtk-doc +, docbook-xsl-nons +, docbook_xml_dtd_43 +, gobject-introspection +}: + +stdenv.mkDerivation rec { + pname = "calls"; + version = "0.3.1"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "0igap5ynq269xqaky6fqhdg2dpsvxa008z953ywa4s5b5g5dk3dd"; + }; + + outputs = [ "out" "devdoc" ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + desktop-file-utils + appstream-glib + vala + wrapGAppsHook + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_43 + ]; + + buildInputs = [ + modemmanager + libhandy + evolution-data-server + folks + gom + gsound + feedbackd + callaudiod + gtk3 + libpeas + libgdata # required by some dependency transitively + ]; + + checkInputs = [ + dbus + xvfb-run + ]; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + doCheck = true; + + checkPhase = '' + runHook preCheck + NO_AT_BRIDGE=1 \ + XDG_DATA_DIRS=${folks}/share/gsettings-schemas/${folks.name} \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + runHook postCheck + ''; + + meta = with lib; { + description = "A phone dialer and call handler"; + homepage = "https://source.puri.sm/Librem5/calls"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ craigem lheckemann ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cawbird/default.nix b/nixpkgs/pkgs/applications/networking/cawbird/default.nix new file mode 100644 index 000000000000..517bd1e01cc5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cawbird/default.nix @@ -0,0 +1,88 @@ +{ lib +, stdenv +, fetchFromGitHub +, glib +, gtk3 +, json-glib +, sqlite +, libsoup +, liboauth +, gettext +, gspell +, vala +, meson +, ninja +, pkg-config +, dconf +, gst_all_1 +, wrapGAppsHook +, gobject-introspection +, glib-networking +, librest +, python3 +}: + +stdenv.mkDerivation rec { + version = "1.4.1"; + pname = "cawbird"; + + src = fetchFromGitHub { + owner = "IBBoard"; + repo = "cawbird"; + rev = "v${version}"; + sha256 = "0lmrgcj1ky1vhzynl36k6ba3ws089x4qdrnkjk3lbr334kicx9na"; + }; + + nativeBuildInputs = [ + meson + ninja + vala + pkg-config + wrapGAppsHook + python3 + gobject-introspection # for setup hook + ]; + + buildInputs = [ + glib + gtk3 + json-glib + sqlite + libsoup + liboauth + gettext + dconf + gspell + glib-networking + librest + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-bad + (gst-plugins-good.override { + gtkSupport = true; + }) + gst-libav + ]); + + postPatch = '' + chmod +x data/meson_post_install.py # patchShebangs requires executable file + patchShebangs data/meson_post_install.py + ''; + + # supply Twitter API keys + # use default keys supplied by upstream, see https://github.com/IBBoard/cawbird/blob/master/README.md#preparation + mesonFlags = [ + "-Dconsumer_key_base64=VmY5dG9yRFcyWk93MzJEZmhVdEk5Y3NMOA==" + "-Dconsumer_secret_base64=MThCRXIxbWRESDQ2Y0podzVtVU13SGUyVGlCRXhPb3BFRHhGYlB6ZkpybG5GdXZaSjI=" + ]; + + meta = with lib; { + description = "Native GTK Twitter client for the Linux desktop"; + longDescription = "Cawbird is a modern, easy and fun Twitter client. Fork of the discontinued Corebird."; + homepage = "https://ibboard.co.uk/cawbird/"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with lib.maintainers; [ jonafato schmittlauch ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/charles/default.nix b/nixpkgs/pkgs/applications/networking/charles/default.nix new file mode 100644 index 000000000000..1e44d46689ff --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/charles/default.nix @@ -0,0 +1,71 @@ +{ +lib, stdenv +, makeWrapper +, makeDesktopItem +, fetchurl +, jdk11 +, jdk8 +}: + +let + generic = { version, sha256, platform ? "", jdk, ... }@attrs: + let + desktopItem = makeDesktopItem { + categories = "Network;Development;WebDevelopment;Java;"; + desktopName = "Charles"; + exec = "charles %F"; + genericName = "Web Debugging Proxy"; + icon = "charles-proxy"; + mimeType = "application/x-charles-savedsession;application/x-charles-savedsession+xml;application/x-charles-savedsession+json;application/har+json;application/vnd.tcpdump.pcap;application/x-charles-trace"; + name = "Charles"; + startupNotify = "true"; + }; + + in stdenv.mkDerivation { + pname = "charles"; + inherit version; + + src = fetchurl { + url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}${platform}.tar.gz"; + inherit sha256; + }; + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + makeWrapper ${jdk}/bin/java $out/bin/charles \ + --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar" + + for fn in lib/*.jar; do + install -D -m644 $fn $out/share/java/$(basename $fn) + done + + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + mkdir -p $out/share/icons + cp -r icon $out/share/icons/hicolor + ''; + + meta = with lib; { + description = "Web Debugging Proxy"; + homepage = "https://www.charlesproxy.com/"; + maintainers = [ maintainers.kalbasit ]; + license = lib.licenses.unfree; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + }; + }; + +in { + charles4 = (generic { + version = "4.6.1"; + sha256 = "1kl83jjj5wjhdpj34gcj04vf1asxlqlfx9zi91ln4v90swlaaclv"; + platform = "_amd64"; + jdk = jdk11; + }); + charles3 = (generic { + version = "3.12.3"; + sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss"; + jdk = jdk8.jre; + }); +} + diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix new file mode 100644 index 000000000000..ed4ffffe451c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "cloudflared"; + version = "2021.6.0"; + + src = fetchFromGitHub { + owner = "cloudflare"; + repo = "cloudflared"; + rev = version; + sha256 = "sha256-cX0kdBPDgwjHphxGWrnXohHPp1nzs4SnvCry4AxMtp0="; + }; + + vendorSha256 = null; + + doCheck = false; + + buildFlagsArray = "-ldflags=-X main.Version=${version}"; + + meta = with lib; { + description = "CloudFlare Argo Tunnel daemon (and DNS-over-HTTPS client)"; + homepage = "https://www.cloudflare.com/products/argo-tunnel"; + license = licenses.unfree; + platforms = platforms.unix; + maintainers = [ maintainers.thoughtpolice maintainers.enorris ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix new file mode 100644 index 000000000000..a49879e53528 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix @@ -0,0 +1,70 @@ +{ lib, buildGoModule, buildGoPackage, fetchFromGitHub, installShellFiles }: + +let + # Argo can package a static server in the CLI using the `staticfiles` go module. + # We build the CLI without the static server for simplicity, but the tool is still required for + # compilation to succeed. + # See: https://github.com/argoproj/argo/blob/d7690e32faf2ac5842468831daf1443283703c25/Makefile#L117 + staticfiles = buildGoPackage rec { + name = "staticfiles"; + src = fetchFromGitHub { + owner = "bouk"; + repo = "staticfiles"; + rev = "827d7f6389cd410d0aa3f3d472a4838557bf53dd"; + sha256 = "0xarhmsqypl8036w96ssdzjv3k098p2d4mkmw5f6hkp1m3j67j61"; + }; + + goPackagePath = "bou.ke/staticfiles"; + }; +in +buildGoModule rec { + pname = "argo"; + version = "3.1.1"; + + src = fetchFromGitHub { + owner = "argoproj"; + repo = "argo"; + rev = "v${version}"; + sha256 = "sha256-WErNPofVnV6L7DkYU/dh4mWm+u7UJNFUmRN6IZzMb2g="; + }; + + vendorSha256 = "sha256-99N//woGPx9QEtkFsktaiAbu7TS+3DHArBA52OUJFU4="; + + doCheck = false; + + subPackages = [ "cmd/argo" ]; + + nativeBuildInputs = [ installShellFiles ]; + + preBuild = '' + mkdir -p ui/dist/app + echo "Built without static files" > ui/dist/app/index.html + + ${staticfiles}/bin/staticfiles -o server/static/files.go ui/dist/app + ''; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/argoproj/argo-workflows/v3.buildDate=unknown + -X github.com/argoproj/argo-workflows/v3.gitCommit=${src.rev} + -X github.com/argoproj/argo-workflows/v3.gitTag=${src.rev} + -X github.com/argoproj/argo-workflows/v3.gitTreeState=clean + -X github.com/argoproj/argo-workflows/v3.version=${version} + ''; + + postInstall = '' + for shell in bash zsh; do + $out/bin/argo completion $shell > argo.$shell + installShellCompletion argo.$shell + done + ''; + + meta = with lib; { + description = "Container native workflow engine for Kubernetes"; + homepage = "https://github.com/argoproj/argo"; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix new file mode 100644 index 000000000000..0dfb55072816 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix @@ -0,0 +1,75 @@ +{ lib, buildGoModule, fetchFromGitHub, packr, makeWrapper, installShellFiles, helm, kustomize }: + +buildGoModule rec { + pname = "argocd"; + version = "2.0.4"; + commit = "0842d448107eb1397b251e63ec4d4bc1b4efdd6e"; + tag = "v${version}"; + + src = fetchFromGitHub { + owner = "argoproj"; + repo = "argo-cd"; + rev = tag; + sha256 = "sha256-SKSAJtp20f6A+CvrsBEmbcNJAKI5b4Wm4K0cr/lGo64="; + }; + + vendorSha256 = "sha256-RbEqivzTpXVQp4zl0zZWAh6qCr2KZSJ6Bj2pZaClQaQ="; + + nativeBuildInputs = [ packr makeWrapper installShellFiles ]; + + # run packr to embed assets + preBuild = '' + packr + ''; + + buildFlagsArray = + let package_url = "github.com/argoproj/argo-cd/v2/common"; in + [ + "-ldflags=" + "-s -w" + "-X ${package_url}.version=${version}" + "-X ${package_url}.buildDate=unknown" + "-X ${package_url}.gitCommit=${commit}" + "-X ${package_url}.gitTag=${tag}" + "-X ${package_url}.gitTreeState=clean" + ]; + + # Test is disabled because ksonnet is missing from nixpkgs. + # Log: https://gist.github.com/superherointj/79cbdc869dfd44d28a10dc6746ecb3f9 + doCheck = false; + checkInputs = [ + helm + kustomize + #ksonnet + ]; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/argocd version --client | grep ${tag} > /dev/null + $out/bin/argocd-util version | grep ${tag} > /dev/null + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + install -Dm755 "$GOPATH/bin/cmd" -T $out/bin/argocd + runHook postInstall + ''; + + postInstall = '' + for appname in argocd-util argocd-server argocd-repo-server argocd-application-controller argocd-dex ; do + makeWrapper $out/bin/argocd $out/bin/$appname --set ARGOCD_BINARY_NAME $appname + done + installShellCompletion --cmd argocd \ + --bash <($out/bin/argocd completion bash) \ + --zsh <($out/bin/argocd completion zsh) + ''; + + meta = with lib; { + description = "Declarative continuous deployment for Kubernetes"; + downloadPage = "https://github.com/argoproj/argo-cd"; + homepage = "https://argoproj.github.io/projects/argo-cd"; + license = licenses.asl20; + maintainers = with maintainers; [ shahrukh330 superherointj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix new file mode 100644 index 000000000000..dcb6b823667e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "atlantis"; + version = "0.16.1"; + + src = fetchFromGitHub { + owner = "runatlantis"; + repo = "atlantis"; + rev = "v${version}"; + sha256 = "sha256-D549pInoK8ispgcn8LYdix19Hp7wO6w2/d2Y1L/9Px8="; + }; + + vendorSha256 = null; + + doCheck = false; + + subPackages = [ "." ]; + + meta = with lib; { + homepage = "https://github.com/runatlantis/atlantis"; + description = "Terraform Pull Request Automation"; + license = licenses.asl20; + maintainers = with maintainers; [ jpotier ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix new file mode 100644 index 000000000000..2354a41a6a66 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix @@ -0,0 +1,43 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, makeWrapper +, openssh +}: + +buildGoModule rec { + pname = "bosh-cli"; + + version = "6.4.4"; + + src = fetchFromGitHub { + owner = "cloudfoundry"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-N7GrxePNewxhHnkQP/XBdUIEL5FsFD4avouZaIO+BKc="; + }; + vendorSha256 = null; + + postPatch = '' + substituteInPlace cmd/version.go --replace '[DEV BUILD]' '${version}' + ''; + + nativeBuildInputs = [ makeWrapper ]; + + subPackages = [ "." ]; + + doCheck = false; + + postInstall = '' + mv $out/bin/bosh-cli $out/bin/bosh + wrapProgram $out/bin/bosh --prefix PATH : '${lib.makeBinPath [ openssh ]}' + ''; + + meta = with lib; { + description = "A command line interface to CloudFoundry BOSH"; + homepage = "https://bosh.io"; + changelog = "https://github.com/cloudfoundry/bosh-cli/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ ris ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/click/default.nix b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix new file mode 100644 index 000000000000..2d76e0a26cb9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix @@ -0,0 +1,27 @@ +{ darwin, fetchFromGitHub, rustPlatform, lib, stdenv }: + +with rustPlatform; + +buildRustPackage rec { + pname = "click"; + version = "0.4.2"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "databricks"; + repo = "click"; + sha256 = "18mpzvvww2g6y2d3m8wcfajzdshagihn59k03xvcknd5d8zxagl3"; + }; + + cargoSha256 = "16r5rwdbqyb5xrjc55i30xb20crpyjc75zn10xxjkicmvrpwydp6"; + + buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; + + meta = with lib; { + description = ''The "Command Line Interactive Controller for Kubernetes"''; + homepage = "https://github.com/databricks/click"; + license = [ licenses.asl20 ]; + maintainers = [ maintainers.mbode ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix new file mode 100644 index 000000000000..a251886ebdd7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix @@ -0,0 +1,47 @@ +{ lib, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }: + +buildGoModule rec { + pname = "cloudfoundry-cli"; + version = "7.2.0"; + + src = fetchFromGitHub { + owner = "cloudfoundry"; + repo = "cli"; + rev = "v${version}"; + sha256 = "0cf5vshyz6j70sv7x43r1404hdcmkzxgdb7514kjilp5z6wsr1nv"; + }; + # vendor directory stale + deleteVendor = true; + vendorSha256 = "0p0s0dr7kpmmnim4fps62vj4zki2qxxdq5ww0fzrf1372xbl4kp2"; + + subPackages = [ "." ]; + + # upstream have helpfully moved the bash completion script to a separate + # repo which receives no releases or even tags + bashCompletionScript = fetchurl { + url = "https://raw.githubusercontent.com/cloudfoundry/cli-ci/6087781a0e195465a35c79c8e968ae708c6f6351/ci/installers/completion/cf7"; + sha256 = "1vhg9jcgaxcvvb4pqnhkf27b3qivs4d3w232j0gbh9393m3qxrvy"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + buildFlagsArray = [ + "-ldflags=" + "-s" + "-w" + "-X code.cloudfoundry.org/cli/version.binaryBuildDate=1970-01-01" + "-X code.cloudfoundry.org/cli/version.binaryVersion=${version}" + ]; + + postInstall = '' + mv "$out/bin/cli" "$out/bin/cf" + installShellCompletion --bash $bashCompletionScript + ''; + + meta = with lib; { + description = "The official command line client for Cloud Foundry"; + homepage = "https://github.com/cloudfoundry/cli"; + maintainers = with maintainers; [ ris ]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix new file mode 100644 index 000000000000..3a9bb84938ca --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix @@ -0,0 +1,23 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "cni"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "containernetworking"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-vxwNHIc3rFi7HKIEZrBcr7Oxs2iUtFYcfJK7aXDUv3k="; + }; + + goPackagePath = "github.com/containernetworking/cni"; + + meta = with lib; { + description = "Container Network Interface - networking for Linux containers"; + license = licenses.asl20; + homepage = "https://github.com/containernetworking/cni"; + maintainers = with maintainers; [ offline vdemeester ]; + platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix new file mode 100644 index 000000000000..8fc667e3391c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix @@ -0,0 +1,51 @@ +{ lib, fetchFromGitHub, buildGoModule, nixosTests }: + +buildGoModule rec { + pname = "cni-plugins"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "containernetworking"; + repo = "plugins"; + rev = "v${version}"; + sha256 = "sha256-n+OtFXgFmW0xsGEtC6ua0qjdsJSbEjn08mAl5Z51Kp8="; + }; + + vendorSha256 = null; + + doCheck = false; + + buildFlagsArray = [ + "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=v${version}" + ]; + + subPackages = [ + "plugins/ipam/dhcp" + "plugins/ipam/host-local" + "plugins/ipam/static" + "plugins/main/bridge" + "plugins/main/host-device" + "plugins/main/ipvlan" + "plugins/main/loopback" + "plugins/main/macvlan" + "plugins/main/ptp" + "plugins/main/vlan" + "plugins/meta/bandwidth" + "plugins/meta/firewall" + "plugins/meta/flannel" + "plugins/meta/portmap" + "plugins/meta/sbr" + "plugins/meta/tuning" + "plugins/meta/vrf" + ]; + + passthru.tests = { inherit (nixosTests) cri-o podman; }; + + meta = with lib; { + description = "Some standard networking plugins, maintained by the CNI team"; + homepage = "https://www.cni.dev/plugins/"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ cstrahan ] ++ teams.podman.members; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix b/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix new file mode 100644 index 000000000000..dc6e5f3402fa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + version = "3.9.0pre"; + pname = "containerpilot"; + + src = fetchFromGitHub { + owner = "joyent"; + repo = pname; + rev = "d999b632b0c96d9e27f092dc9f81a9d82dfe0106"; + sha256 = "0wsc8canr1c9wzr1lv40yixj9l10c66i6d14yrljsyagl2z02v4n"; + }; + + goPackagePath = "github.com/joyent/${pname}"; + goDeps = ./deps.nix; + + meta = with lib; { + homepage = "https://www.joyent.com/containerpilot"; + description = "An application centric micro-orchestrator."; + platforms = platforms.unix; + license = licenses.mpl20; + maintainers = with maintainers; [ cpcloud ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/containerpilot/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/containerpilot/deps.nix new file mode 100644 index 000000000000..9df154389cbc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/containerpilot/deps.nix @@ -0,0 +1,173 @@ +# file generated from go.mod using vgo2nix (https://github.com/nix-community/vgo2nix) +[ + { + goPackagePath = "github.com/beorn7/perks"; + fetch = { + type = "git"; + url = "https://github.com/beorn7/perks"; + rev = "4c0e84591b9a"; + sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/client9/reopen"; + fetch = { + type = "git"; + url = "https://github.com/client9/reopen"; + rev = "1a6ccbeaae3f"; + sha256 = "0iarv0sn9hb26sr75bwilz3m86kcfad4m5klmzixbd4yw1ipnffa"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/flynn/json5"; + fetch = { + type = "git"; + url = "https://github.com/flynn/json5"; + rev = "7620272ed633"; + sha256 = "1l3rqfis8b72mqwm88lx78d0mbdihyamj8cgg2pa5vfbq49cpydf"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "6a1fa9404c0a"; + sha256 = "0dsd6vlfdyarn3v822x9p2s94gfi5lhvqc2vm3bqmqjgcik3c51z"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/hashicorp/consul"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/consul"; + rev = "v1.0.1-rc1"; + sha256 = "10xqi86n2h39q3qlkxfhnrqwm1bgijs5n2kryaq9yalv5p3qxczg"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/hashicorp/go-cleanhttp"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-cleanhttp"; + rev = "3573b8b52aa7"; + sha256 = "1pbl6p7w5wp1c70x7fp94h4ynk2ajfa76rqin3d2hq1w2fcb7byr"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/hashicorp/go-rootcerts"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/go-rootcerts"; + rev = "6bb64b370b90"; + sha256 = "1a81fcm1i0ji2iva0dcimiichgwpbcb7lx0vyaks87zj5wf04qy9"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/hashicorp/serf"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/serf"; + rev = "91fd53b1d3e6"; + sha256 = "0p9mhv6w85cxxl95kvl3rk04yif6v5bhf5kxw8i1cphv5kddv7j9"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; + fetch = { + type = "git"; + url = "https://github.com/matttproud/golang_protobuf_extensions"; + rev = "v1.0.1"; + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/mitchellh/go-homedir"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/go-homedir"; + rev = "b8bc1bf76747"; + sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "d2dd02622084"; + sha256 = "1idj9h0g9z3s21y2hivaf1dknxhpd7yy0kn6wk3311hlr7s543j5"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/prometheus/client_golang"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_golang"; + rev = "v0.8.0"; + sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/prometheus/client_model"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/client_model"; + rev = "6f3806018612"; + sha256 = "1413ibprinxhni51p0755dp57r9wvbw7xgj9nmdaxmhzlqhc86j4"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/prometheus/common"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/common"; + rev = "0866df4b85a1"; + sha256 = "0zw4rxs6zh9vgxz5wwhjnwa6mgac8jh7mb63viircgh08r889chp"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/prometheus/procfs"; + fetch = { + type = "git"; + url = "https://github.com/prometheus/procfs"; + rev = "e645f4e5aaa8"; + sha256 = "18hwygbawbqilz7h8fl25xpbciwalkslb4igqn4cr9d8sqp7d3np"; + moduleDir = ""; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "v1.0.0"; + sha256 = "0kyvaa4m8w5wijjvrh0amd9bl3sci1vj4y9v9a97sx3rf7xww52l"; + moduleDir = ""; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "94b76065f2d2"; + sha256 = "0lxd3gmkvza3mah5m8nncdsgd1y6r25vaz4wzdmrs3i1ikzknn93"; + moduleDir = ""; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix new file mode 100644 index 000000000000..c14033382b55 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix @@ -0,0 +1,42 @@ +{ + buildGoModule, + dnsmasq, + fetchFromGitHub, + lib, + nixosTests, + makeWrapper, +}: + +buildGoModule rec { + pname = "cni-plugin-dnsname"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "containers"; + repo = "dnsname"; + rev = "v${version}"; + sha256 = "sha256-hHkQOHDso92gXFCz40iQ7j2cHTEAMsaeW8MCJV2Otqo="; + }; + + nativeBuildInputs = [ makeWrapper ]; + postInstall = '' + wrapProgram $out/bin/dnsname --prefix PATH : ${lib.makeBinPath [ dnsmasq ]} + ''; + + vendorSha256 = null; + subPackages = [ "plugins/meta/dnsname" ]; + + doCheck = false; # NOTE: requires root privileges + + passthru.tests = { + inherit (nixosTests) podman-dnsname; + }; + + meta = with lib; { + description = "DNS name resolution for containers"; + homepage = "https://github.com/containers/dnsname"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ mikroskeem ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix new file mode 100644 index 000000000000..c483125d851c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix @@ -0,0 +1,33 @@ +# This file was generated by go2nix. +{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }: + +buildGoPackage rec { + pname = "machine"; + version = "0.16.1"; + + goPackagePath = "github.com/docker/machine"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "docker"; + repo = "machine"; + sha256 = "0xxzxi5v7ji9j2k7kxhi0ah91lfa7b9rg3nywgx0lkv8dlgp8kmy"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + pushd go/src/${goPackagePath}/contrib/completion + installShellCompletion --bash bash/* + installShellCompletion --zsh zsh/* + popd + ''; + + meta = with lib; { + homepage = "https://docs.docker.com/machine/"; + description = "Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage Docker Engine on the hosts"; + license = licenses.asl20; + maintainers = with maintainers; [ offline tailhook ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix new file mode 100644 index 000000000000..d05b34cd7de9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, minikube }: + +buildGoModule rec { + inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck; + + pname = "docker-machine-hyperkit"; + + buildPhase = '' + make docker-machine-driver-hyperkit COMMIT=${src.rev} + ''; + + installPhase = '' + install out/docker-machine-driver-hyperkit -Dt $out/bin + ''; + + meta = with lib; { + homepage = "https://minikube.sigs.k8s.io/docs/drivers/hyperkit"; + description = "HyperKit driver for docker-machine"; + license = licenses.asl20; + maintainers = with maintainers; [ atkinschang ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix new file mode 100644 index 000000000000..e321b2c1b0ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix @@ -0,0 +1,21 @@ +# This file was generated by go2nix. +[ + { + goPackagePath = "github.com/docker/machine"; + fetch = { + type = "git"; + url = "https://github.com/docker/machine"; + rev = "457c02d06a155827c1c4af9b5ab38c0b6b4e48ea"; + sha256 = "0hx5bhjc7q9ml6h6d2a5csqg6vqwjj68599q0cccw3pcfrb34gmd"; + }; + } + { + goPackagePath = "github.com/libvirt/libvirt-go"; + fetch = { + type = "git"; + url = "https://github.com/libvirt/libvirt-go"; + rev = "e9642325d747c353ca7b76b4893d5dbdc81c296f"; + sha256 = "1822b2kbwyxb2gigbiashcs7v4fsyw7k3sdlqh43ga0l6058fmhl"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix new file mode 100644 index 000000000000..4940f6331d44 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix @@ -0,0 +1,28 @@ +# This file was generated by go2nix. +{ lib, buildGoPackage, fetchFromGitHub, libvirt, pkg-config }: + +buildGoPackage rec { + pname = "docker-machine-kvm"; + version = "0.10.0"; + + goPackagePath = "github.com/dhiltgen/docker-machine-kvm"; + goDeps = ./kvm-deps.nix; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "dhiltgen"; + repo = "docker-machine-kvm"; + sha256 = "0ch4zwb6h7hnr5l3skj1daypvpyms2i666lbnmakpw1fw3zvjmgy"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libvirt ]; + + meta = with lib; { + homepage = "https://github.com/dhiltgen/docker-machine-kvm"; + description = "KVM driver for docker-machine"; + license = licenses.asl20; + maintainers = with maintainers; [ offline ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix new file mode 100644 index 000000000000..9ef43bed2eec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, minikube }: + +buildGoModule rec { + inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck; + + pname = "docker-machine-kvm2"; + + postPatch = '' + sed -i '/GOARCH=$*/d' Makefile + ''; + + buildPhase = '' + make docker-machine-driver-kvm2 COMMIT=${src.rev} + ''; + + installPhase = '' + install out/docker-machine-driver-kvm2 -Dt $out/bin + ''; + + meta = with lib; { + homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2"; + description = "KVM2 driver for docker-machine"; + license = licenses.asl20; + maintainers = with maintainers; [ tadfisher atkinschang ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix new file mode 100644 index 000000000000..8c3534006bf7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkg-config, cctools, Hypervisor, vmnet }: + +buildGoPackage rec { + pname = "docker-machine-xhyve"; + version = "0.4.0"; + + goPackagePath = "github.com/zchee/docker-machine-driver-xhyve"; + + # https://github.com/machine-drivers/docker-machine-driver-xhyve/pull/225 + patches = fetchpatch { + url = "https://github.com/machine-drivers/docker-machine-driver-xhyve/commit/546256494bf2ccc33e4125bf45f504b0e3027d5a.patch"; + sha256 = "1i8wxqccqkxvqrbsyd0g9s0kdskd8xi2jv0c1bji9aj4rq0a8cgz"; + }; + + preBuild = '' + make -C go/src/${goPackagePath} CC=${stdenv.cc}/bin/cc LIBTOOL=${cctools}/bin/libtool GIT_CMD=: lib9p + export CGO_CFLAGS=-I$(pwd)/go/src/${goPackagePath}/vendor/github.com/jceel/lib9p + export CGO_LDFLAGS=$(pwd)/go/src/${goPackagePath}/vendor/build/lib9p/lib9p.a + ''; + buildFlags = "--tags lib9p"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "machine-drivers"; + repo = "docker-machine-driver-xhyve"; + sha256 = "0000v97fr8xc5b39v44hsa87wrbk4bcwyaaivxv4hxlf4vlgg863"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ Hypervisor vmnet ]; + + meta = with lib; { + homepage = "https://github.com/machine-drivers/docker-machine-driver-xhyve"; + description = "Xhyve driver for docker-machine"; + license = licenses.bsd3; + maintainers = with maintainers; [ periklis ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix new file mode 100644 index 000000000000..3c3bc2bace25 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, makeWrapper, jre }: + +stdenv.mkDerivation rec { + pname = "flink"; + version = "1.12.1"; + + src = fetchurl { + url = "mirror://apache/flink/${pname}-${version}/${pname}-${version}-bin-scala_2.11.tgz"; + sha256 = "146azc5wg1xby3nqz8mha959qy99z2h8032rfgs2mcl3d5rrsm2l"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = [ jre ]; + + installPhase = '' + rm bin/*.bat || true + + mkdir -p $out/bin $out/opt/flink + mv * $out/opt/flink/ + makeWrapper $out/opt/flink/bin/flink $out/bin/flink \ + --prefix PATH : ${jre}/bin + + cat <<EOF >> $out/opt/flink/conf/flink-conf.yaml + env.java.home: ${jre}" + env.log.dir: /tmp/flink-logs + EOF + ''; + + meta = with lib; { + description = "A distributed stream processing framework"; + homepage = "https://flink.apache.org"; + downloadPage = "https://flink.apache.org/downloads.html"; + license = licenses.asl20; + platforms = platforms.all; + maintainers = with maintainers; [ mbode ]; + repositories.git = "git://git.apache.org/flink.git"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix new file mode 100644 index 000000000000..22dc5472a14d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix @@ -0,0 +1,61 @@ +{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }: + +let + version = "0.15.3"; + + manifests = fetchzip { + url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz"; + sha256 = "sha256-/uD0hxtTJSr+2tZcwzOIQcEbikHOshWukEBSaK3FiP4="; + stripRoot = false; + }; +in + +buildGoModule rec { + inherit version; + + pname = "fluxcd"; + + src = fetchFromGitHub { + owner = "fluxcd"; + repo = "flux2"; + rev = "v${version}"; + sha256 = "sha256-Pyt5BaOawBwyBz7ULzOZr0Fc6bqM5dKn775AylUjDVE="; + }; + + vendorSha256 = "sha256-17Kbun6Mrip4/XHN5eMHxgnSoX1KuGHwtb8yLTf/Mks="; + + nativeBuildInputs = [ installShellFiles ]; + + subPackages = [ "cmd/flux" ]; + + buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ]; + + postUnpack = '' + cp -r ${manifests} source/cmd/flux/manifests + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/flux --version | grep ${version} > /dev/null + ''; + + postInstall = '' + for shell in bash fish zsh; do + $out/bin/flux completion $shell > flux.$shell + installShellCompletion flux.$shell + done + ''; + + meta = with lib; { + description = "Open and extensible continuous delivery solution for Kubernetes"; + longDescription = '' + Flux is a tool for keeping Kubernetes clusters in sync + with sources of configuration (like Git repositories), and automating + updates to configuration when there is new code to deploy. + ''; + homepage = "https://fluxcd.io"; + license = licenses.asl20; + maintainers = with maintainers; [ jlesquembre ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix new file mode 100644 index 000000000000..bba0b74172a9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix @@ -0,0 +1,37 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "fluxctl"; + version = "1.23.0"; + + src = fetchFromGitHub { + owner = "weaveworks"; + repo = "flux"; + rev = version; + sha256 = "sha256-CJY7XjHJ6suJrjhnG+w5oM1FtVnegcbkCVGjyoBtBag="; + }; + + vendorSha256 = "sha256-aC6E+PpuUqFhZKvQT5AuxpPmHfhjCwHzwFHDzk5wazw="; + + nativeBuildInputs = [ installShellFiles ]; + + doCheck = false; + + subPackages = [ "cmd/fluxctl" ]; + + buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; + + postInstall = '' + for shell in bash fish zsh; do + $out/bin/fluxctl completion $shell > fluxctl.$shell + installShellCompletion fluxctl.$shell + done + ''; + + meta = with lib; { + description = "CLI client for Flux, the GitOps Kubernetes operator"; + homepage = "https://github.com/fluxcd/flux"; + license = licenses.asl20; + maintainers = with maintainers; [ Gonzih Br1ght0ne ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix new file mode 100644 index 000000000000..95e16797cf4f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, docker }: + +buildGoModule rec { + pname = "fn"; + version = "0.6.8"; + + src = fetchFromGitHub { + owner = "fnproject"; + repo = "cli"; + rev = version; + sha256 = "sha256-8b1VyukVMTXLAnvYcjXgTdPtMq3YxJgTpxe25Kj+Wpw="; + }; + + vendorSha256 = null; + + subPackages = ["."]; + + buildInputs = [ + docker + ]; + + preBuild = '' + export HOME=$TMPDIR + ''; + + postInstall = '' + mv $out/bin/cli $out/bin/fn + ''; + + meta = with lib; { + description = "Command-line tool for the fn project"; + homepage = "https://fnproject.io"; + license = licenses.asl20; + maintainers = [ maintainers.c4605 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix new file mode 100644 index 000000000000..88123e212a7e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix @@ -0,0 +1,38 @@ +{ lib, fetchFromGitHub, rustPlatform, pkg-config +, libsodium, libarchive, openssl, zeromq }: + +rustPlatform.buildRustPackage rec { + pname = "habitat"; + # Newer versions required protobuf, which requires some finesse to get to + # compile with the vendored protobuf crate. + version = "0.90.6"; + + src = fetchFromGitHub { + owner = "habitat-sh"; + repo = "habitat"; + rev = version; + sha256 = "0rwi0lkmhlq4i8fba3s9nd9ajhz2dqxzkgfp5i8y0rvbfmhmfd6b"; + }; + + cargoSha256 = "1c058sjgd79ps8ahvxp25qyc3a6b2csb41vamrphv9ygai60mng6"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libsodium libarchive openssl zeromq ]; + + cargoBuildFlags = ["--package hab"]; + + checkPhase = '' + runHook preCheck + echo "Running cargo test" + cargo test --package hab + runHook postCheck + ''; + + meta = with lib; { + description = "An application automation framework"; + homepage = "https://www.habitat.sh"; + license = licenses.asl20; + maintainers = with maintainers; [ rushmorem ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix new file mode 100644 index 000000000000..ef93b5cbdb07 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix @@ -0,0 +1,180 @@ +{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash +, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2, fetchpatch, libtirpc +}: + +let + maven-jdk8 = maven.override { + jdk = jdk8; + }; + common = { version, sha256, dependencies-sha256, maven, tomcat, opensslPkg ? openssl }: + let + # compile the hadoop tarball from sources, it requires some patches + binary-distributon = stdenv.mkDerivation rec { + name = "hadoop-${version}-bin"; + src = fetchurl { + url = "mirror://apache/hadoop/common/hadoop-${version}/hadoop-${version}-src.tar.gz"; + inherit sha256; + }; + + postUnpack = lib.optionalString (tomcat != null) '' + install -D ${tomcat.src} $sourceRoot/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads/apache-tomcat-${tomcat.version}.tar.gz + install -D ${tomcat.src} $sourceRoot/hadoop-common-project/hadoop-kms/downloads/apache-tomcat-${tomcat.version}.tar.gz + ''; + + # perform fake build to make a fixed-output derivation of dependencies downloaded from maven central (~100Mb in ~3000 files) + fetched-maven-deps = stdenv.mkDerivation { + name = "hadoop-${version}-maven-deps"; + inherit src postUnpack nativeBuildInputs buildInputs; + buildPhase = '' + while mvn package -Dmaven.repo.local=$out/.m2 ${mavenFlags} -Dmaven.wagon.rto=5000; [ $? = 1 ]; do + echo "timeout, restart maven to continue downloading" + done + ''; + # keep only *.{pom,jar,xml,sha1,so,dll,dylib} and delete all ephemeral files with lastModified timestamps inside + installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = dependencies-sha256; + }; + + nativeBuildInputs = [ maven cmake pkg-config ]; + buildInputs = [ fuse snappy zlib bzip2 opensslPkg protobuf2_5 libtirpc ]; + NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ]; + NIX_LDFLAGS = [ "-ltirpc" ]; + + # most of the hardcoded pathes are fixed in 2.9.x and 3.0.0, this list of patched files might be reduced when 2.7.x and 2.8.x will be deprecated + + patches = [ + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/apache/hadoop/pull/2886.patch"; + sha256 = "1fim1d8va050za5i8a6slphmx015fzvhxkc2wi4rwg7kbj31sv0r"; + }) + ]; + + postPatch = '' + for file in hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/HardLink.java \ + hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DockerContainerExecutor.java \ + hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/ContainerLaunch.java \ + hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/MRJobConfig.java; do + if [ -f "$file" ]; then + substituteInPlace "$file" \ + --replace '/usr/bin/stat' 'stat' \ + --replace '/bin/bash' 'bash' \ + --replace '/bin/ls' 'ls' \ + --replace '/bin/mv' 'mv' + fi + done + ''; + dontConfigure = true; # do not trigger cmake hook + mavenFlags = "-Drequire.snappy -Drequire.bzip2 -DskipTests -Pdist,native -e"; + buildPhase = '' + # 'maven.repo.local' must be writable + mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetched-maven-deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2 ${mavenFlags} + # remove runtime dependency on $jdk/jre/lib/amd64/server/libjvm.so + patchelf --set-rpath ${lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhadoop.so.1.0.0 + patchelf --set-rpath ${lib.makeLibraryPath [glibc]} hadoop-dist/target/hadoop-${version}/lib/native/libhdfs.so.0.0.0 + ''; + installPhase = "mv hadoop-dist/target/hadoop-${version} $out"; + }; + in + stdenv.mkDerivation { + pname = "hadoop"; + inherit version; + + src = binary-distributon; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/doc/hadoop + cp -dpR * $out/ + mv $out/*.txt $out/share/doc/hadoop/ + + # + # Do not use `wrapProgram` here, script renaming may result to weird things: http://i.imgur.com/0Xee013.png + # + mkdir -p $out/bin.wrapped + for n in $out/bin/*; do + if [ -f "$n" ]; then # only regular files + mv $n $out/bin.wrapped/ + makeWrapper $out/bin.wrapped/$(basename $n) $n \ + --prefix PATH : "${lib.makeBinPath [ which jre bash coreutils ]}" \ + --prefix JAVA_LIBRARY_PATH : "${lib.makeLibraryPath [ opensslPkg snappy zlib bzip2 ]}" \ + --set JAVA_HOME "${jre}" \ + --set HADOOP_PREFIX "$out" + fi + done + ''; + + meta = with lib; { + homepage = "http://hadoop.apache.org/"; + description = "Framework for distributed processing of large data sets across clusters of computers"; + license = licenses.asl20; + + longDescription = '' + The Apache Hadoop software library is a framework that allows for + the distributed processing of large data sets across clusters of + computers using a simple programming model. It is designed to + scale up from single servers to thousands of machines, each + offering local computation and storage. Rather than rely on + hardware to deliver high-avaiability, the library itself is + designed to detect and handle failures at the application layer, + so delivering a highly-availabile service on top of a cluster of + computers, each of which may be prone to failures. + ''; + maintainers = with maintainers; [ volth ]; + platforms = [ "x86_64-linux" ]; + }; + }; + + tomcat_6_0_48 = rec { + version = "6.0.48"; + src = fetchurl { + # do not use "mirror://apache/" here, tomcat-6 is legacy and has been removed from the mirrors + url = "https://archive.apache.org/dist/tomcat/tomcat-6/v${version}/bin/apache-tomcat-${version}.tar.gz"; + sha256 = "1w4jf28g8p25fmijixw6b02iqlagy2rvr57y3n90hvz341kb0bbc"; + }; + }; + +in { + hadoop_2_7 = common { + version = "2.7.7"; + sha256 = "1ahv67f3lwak3kbjvnk1gncq56z6dksbajj872iqd0awdsj3p5rf"; + dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r"; + tomcat = tomcat_6_0_48; + opensslPkg = openssl_1_0_2; + maven = maven-jdk8; + }; + hadoop_2_8 = common { + version = "2.8.4"; + sha256 = "16c3ljhrzibkjn3y1bmjxdgf0kn60l23ay5hqpp7vpbnqx52x68w"; + dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03"; + tomcat = tomcat_6_0_48; + opensslPkg = openssl_1_0_2; + maven = maven-jdk8; + }; + hadoop_2_9 = common { + version = "2.9.1"; + sha256 = "0qgmpfbpv7f521fkjy5ldzdb4lwiblhs0hyl8qy041ws17y5x7d7"; + dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x"; + tomcat = tomcat_6_0_48; + opensslPkg = openssl_1_0_2; + maven = maven-jdk8; + }; + hadoop_3_0 = common { + version = "3.0.3"; + sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5"; + dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m"; + tomcat = null; + maven = maven-jdk8; + }; + hadoop_3_1 = common { + version = "3.1.1"; + sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd"; + dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn"; + tomcat = null; + maven = maven-jdk8; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix new file mode 100644 index 000000000000..69961a2c0a07 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix @@ -0,0 +1,38 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "helm"; + version = "3.6.2"; + gitCommit = "ee407bdf364942bcb8e8c665f82e15aa28009b71"; + + src = fetchFromGitHub { + owner = "helm"; + repo = "helm"; + rev = "v${version}"; + sha256 = "1s40zbk83s1kylcglydw356282virf1828v9waj1zs1gjnjml69h"; + }; + vendorSha256 = "06ccsy30kd68ml13l5k7d4225vlax3fm2pi8dapsyr4gdr234c1x"; + + doCheck = false; + + subPackages = [ "cmd/helm" ]; + ldflags = [ + "-w" "-s" + "-X helm.sh/helm/v3/internal/version.version=v${version}" + "-X helm.sh/helm/v3/internal/version.gitCommit=${gitCommit}" + ]; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + $out/bin/helm completion bash > helm.bash + $out/bin/helm completion zsh > helm.zsh + installShellCompletion helm.{bash,zsh} + ''; + + meta = with lib; { + homepage = "https://github.com/kubernetes/helm"; + description = "A package manager for kubernetes"; + license = licenses.asl20; + maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix new file mode 100644 index 000000000000..edd19a25f9ba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix @@ -0,0 +1,11 @@ +{ callPackage }: + +{ + + helm-diff = callPackage ./helm-diff.nix {}; + + helm-s3 = callPackage ./helm-s3.nix {}; + + helm-secrets = callPackage ./helm-secrets.nix {}; + +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix new file mode 100644 index 000000000000..3f340b0e5228 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix @@ -0,0 +1,34 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "helm-diff"; + version = "3.1.3"; + + src = fetchFromGitHub { + owner = "databus23"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-h26EOjKNrlcrs2DAYj0NmDRgNRKozjfw5DtxUgHNTa4="; + }; + + vendorSha256 = "sha256-+n/QBuZqtdgUkaBG7iqSuBfljn+AdEzDoIo5SI8ErQA="; + + # NOTE: Remove the install and upgrade hooks. + postPatch = '' + sed -i '/^hooks:/,+2 d' plugin.yaml + ''; + + postInstall = '' + install -dm755 $out/${pname} + mv $out/bin $out/${pname}/ + mv $out/${pname}/bin/{helm-,}diff + install -m644 -Dt $out/${pname} plugin.yaml + ''; + + meta = with lib; { + description = "A Helm plugin that shows a diff"; + inherit (src.meta) homepage; + license = licenses.apsl20; + maintainers = with maintainers; [ yurrriq ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix new file mode 100644 index 000000000000..81e0d07d0bba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix @@ -0,0 +1,37 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "helm-s3"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "hypnoglow"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-2BQ/qtoL+iFbuLvrJGUuxWFKg9u1sVDRcRm2/S0mgyc="; + }; + + vendorSha256 = "sha256-/9TiY0XdkiNxW5JYeC5WD9hqySCyYYU8lB+Ft5Vm96I="; + + # NOTE: Remove the install and upgrade hooks. + postPatch = '' + sed -i '/^hooks:/,+2 d' plugin.yaml + ''; + + checkPhase = '' + make test-unit + ''; + + postInstall = '' + install -dm755 $out/${pname} + mv $out/bin $out/${pname}/ + install -m644 -Dt $out/${pname} plugin.yaml + ''; + + meta = with lib; { + description = "A Helm plugin that shows a diff"; + inherit (src.meta) homepage; + license = licenses.apsl20; + maintainers = with maintainers; [ yurrriq ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix new file mode 100644 index 000000000000..ec3f21c69d15 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, findutils, getopt, gnugrep, gnused, sops, vault }: + +stdenv.mkDerivation rec { + pname = "helm-secrets"; + version = "3.8.1"; + + src = fetchFromGitHub { + owner = "jkroepke"; + repo = pname; + rev = "v${version}"; + hash = "sha256-UZu3jChEK59UrtUR2ze68Kkc6MkHRtTsfTOS/B96sLM="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ getopt sops ]; + + # NOTE: helm-secrets is comprised of shell scripts. + dontBuild = true; + + # NOTE: Remove the install and upgrade hooks. + postPatch = '' + sed -i '/^hooks:/,+2 d' plugin.yaml + ''; + + installPhase = '' + runHook preInstall + + install -dm755 $out/${pname} $out/${pname}/scripts + install -m644 -Dt $out/${pname} plugin.yaml + cp -r scripts/* $out/${pname}/scripts + wrapProgram $out/${pname}/scripts/run.sh \ + --prefix PATH : ${lib.makeBinPath [ coreutils findutils getopt gnugrep gnused sops vault ]} + + runHook postInstall + ''; + + meta = with lib; { + description = "A Helm plugin that helps manage secrets"; + inherit (src.meta) homepage; + license = licenses.apsl20; + maintainers = with maintainers; [ yurrriq ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix new file mode 100644 index 000000000000..21a29e31243b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix @@ -0,0 +1,46 @@ +{ symlinkJoin, lib, makeWrapper, writeText }: + +helm: + +let + wrapper = { + plugins ? [], + extraMakeWrapperArgs ? "" + }: + let + + initialMakeWrapperArgs = [ + "${helm}/bin/helm" "${placeholder "out"}/bin/helm" + "--argv0" "$0" "--set" "HELM_PLUGINS" "${pluginsDir}" + ]; + + pluginsDir = symlinkJoin { + name = "helm-plugins"; + paths = plugins; + }; +in + symlinkJoin { + name = "helm-${lib.getVersion helm}"; + + # Remove the symlinks created by symlinkJoin which we need to perform + # extra actions upon + postBuild = '' + rm $out/bin/helm + makeWrapper ${lib.escapeShellArgs initialMakeWrapperArgs} ${extraMakeWrapperArgs} + ''; + paths = [ helm pluginsDir ]; + + preferLocalBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + passthru = { unwrapped = helm; }; + + meta = helm.meta // { + # To prevent builds on hydra + hydraPlatforms = []; + # prefer wrapper over the package + priority = (helm.meta.priority or 0) - 1; + }; + }; +in + lib.makeOverridable wrapper diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix new file mode 100644 index 000000000000..7fda9c74c9b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm }: + +buildGoModule rec { + pname = "helmfile"; + version = "0.139.9"; + + src = fetchFromGitHub { + owner = "roboll"; + repo = "helmfile"; + rev = "v${version}"; + sha256 = "sha256-MHvfDeN4r9jwnXANHTpMEQUIoAZ+uXAmDtl8wdcpjHI="; + }; + + vendorSha256 = "sha256-QYI5HxEUNrZKSjk0LlbhjvxXlWCbbLup51Ht3HJDNC8="; + + doCheck = false; + + nativeBuildInputs = [ makeWrapper ]; + + subPackages = [ "." ]; + + buildFlagsArray = [ "-ldflags=-s -w -X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ]; + + postInstall = '' + wrapProgram $out/bin/helmfile \ + --prefix PATH : ${lib.makeBinPath [ kubernetes-helm ]} + ''; + + meta = { + description = "Deploy Kubernetes Helm charts"; + homepage = "https://github.com/roboll/helmfile"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pneumaticat yurrriq ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix new file mode 100644 index 000000000000..595dd3c61ae8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub, ... }: + +buildGoModule rec { + pname = "helmsman"; + version = "3.6.11"; + + src = fetchFromGitHub { + owner = "Praqma"; + repo = "helmsman"; + rev = "v${version}"; + sha256 = "sha256-9G/A6eADt9jP0CZC6MTZnQOmGOItJFI0zTfmC7HXSaI="; + }; + + vendorSha256 = "sha256-icX8mOc8g+DhfAjD1pzneLWTXY17lXyAjdPOWAxkHwI="; + + doCheck = false; + + meta = with lib; { + description = "Helm Charts (k8s applications) as Code tool"; + homepage = "https://github.com/Praqma/helmsman"; + license = licenses.mit; + maintainers = with maintainers; [ lynty ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix new file mode 100644 index 000000000000..f66e5f88e729 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix @@ -0,0 +1,50 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "hetzner-kube"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "xetys"; + repo = "hetzner-kube"; + rev = version; + sha256 = "1iqgpmljqx6rhmvsir2675waj78amcfiw08knwvlmavjgpxx2ysw"; + }; + + patches = [ + # Use $HOME instead of the OS user database. + # Upstream PR: https://github.com/xetys/hetzner-kube/pull/346 + # Unfortunately, the PR patch does not apply against release. + ./fix-home.patch + ]; + + vendorSha256 = "1jh2f66ys6rmrrwrf5zqfprgcvziyq6l4z8bfqwxgf1ysnxx525h"; + + doCheck = false; + + buildFlagsArray = '' + -ldflags= + -X github.com/xetys/hetzner-kube/cmd.version=${version} + ''; + + nativeBuildInputs = [ + installShellFiles + ]; + + postInstall = '' + # Need a writable home, because it fails if unable to write config. + export HOME=$TMP + $out/bin/hetzner-kube completion bash > hetzner-kube + $out/bin/hetzner-kube completion zsh > _hetzner-kube + installShellCompletion --zsh _hetzner-kube + installShellCompletion --bash hetzner-kube + ''; + + meta = { + description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud"; + homepage = "https://github.com/xetys/hetzner-kube"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ eliasp ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch new file mode 100644 index 000000000000..1b3bbae65f43 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/fix-home.patch @@ -0,0 +1,53 @@ +diff --git a/cmd/cluster_kubeconfig.go b/cmd/cluster_kubeconfig.go +index 54cc0c9..fab288a 100644 +--- a/cmd/cluster_kubeconfig.go ++++ b/cmd/cluster_kubeconfig.go +@@ -6,7 +6,7 @@ import ( + "io/ioutil" + "log" + "os" +- "os/user" ++ "path/filepath" + "strings" + + "github.com/spf13/cobra" +@@ -52,9 +52,8 @@ Example 4: hetzner-kube cluster kubeconfig -n my-cluster -p > my-conf.yaml # pri + } else { + fmt.Println("create file") + +- usr, _ := user.Current() +- dir := usr.HomeDir +- path := fmt.Sprintf("%s/.kube", dir) ++ dir, _ := os.UserHomeDir() ++ path := filepath.Join(dir, ".kube") + + if _, err := os.Stat(path); os.IsNotExist(err) { + os.MkdirAll(path, 0755) +diff --git a/cmd/config.go b/cmd/config.go +index ce0f3e5..a03c4ba 100644 +--- a/cmd/config.go ++++ b/cmd/config.go +@@ -8,7 +8,6 @@ import ( + "io/ioutil" + "log" + "os" +- "os/user" + "path/filepath" + + "github.com/hetznercloud/hcloud-go/hcloud" +@@ -28,13 +27,8 @@ type AppSSHClient struct { + // NewAppConfig creates a new AppConfig struct using the locally saved configuration file. If no local + // configuration file is found a new config will be created. + func NewAppConfig() AppConfig { +- usr, err := user.Current() +- if err != nil { +- return AppConfig{} +- } +- if usr.HomeDir != "" { +- DefaultConfigPath = filepath.Join(usr.HomeDir, ".hetzner-kube") +- } ++ dir, _ := os.UserHomeDir() ++ DefaultConfigPath = filepath.Join(dir, ".hetzner-kube") + + appConf := AppConfig{ + Context: context.Background(), diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix new file mode 100644 index 000000000000..85b6c623ae36 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix @@ -0,0 +1,51 @@ +{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }: + +buildGoModule rec { + pname = "istioctl"; + version = "1.9.4"; + + src = fetchFromGitHub { + owner = "istio"; + repo = "istio"; + rev = version; + sha256 = "sha256-QyiGDk9lA9Y49VpRNRGNbir/ql/Vzp6wsZ1LGodGTks="; + }; + vendorSha256 = "sha256-N+7xajNkxuaC1yDTkPCg80bl2gRy2+Sa4Qq1A8zSGD8="; + + doCheck = false; + + nativeBuildInputs = [ go-bindata installShellFiles ]; + + # Bundle charts + preBuild = '' + patchShebangs operator/scripts + operator/scripts/create_assets_gen.sh + ''; + + # Bundle release metadata + buildFlagsArray = let + attrs = [ + "istio.io/pkg/version.buildVersion=${version}" + "istio.io/pkg/version.buildStatus=Nix" + "istio.io/pkg/version.buildTag=${version}" + "istio.io/pkg/version.buildHub=docker.io/istio" + ]; + in ["-ldflags=-s -w ${lib.concatMapStringsSep " " (attr: "-X ${attr}") attrs}"]; + + subPackages = [ "istioctl/cmd/istioctl" ]; + + postInstall = '' + $out/bin/istioctl collateral --man --bash --zsh + installManPage *.1 + installShellCompletion istioctl.bash + installShellCompletion --zsh _istioctl + ''; + + meta = with lib; { + description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh"; + homepage = "https://istio.io/latest/docs/reference/commands/istioctl"; + license = licenses.asl20; + maintainers = with maintainers; [ veehaitch ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix new file mode 100644 index 000000000000..d7fc1cb22429 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix @@ -0,0 +1,49 @@ +{ buildGoModule, fetchFromGitHub, lib, installShellFiles }: + +buildGoModule rec { + pname = "jx"; + version = "2.1.155"; + + src = fetchFromGitHub { + owner = "jenkins-x"; + repo = "jx"; + rev = "v${version}"; + sha256 = "sha256-kwcmZSOA26XuSgNSHitGaMohalnLobabXf4z3ybSJtk="; + }; + + vendorSha256 = "sha256-ZtcCBXcJXX9ThzY6T0MhNfDDzRC9PYzRB1VyS4LLXLs="; + + doCheck = false; + + subPackages = [ "cmd/jx" ]; + + nativeBuildInputs = [ installShellFiles ]; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/jenkins-x/jx/pkg/version.Version=${version} + -X github.com/jenkins-x/jx/pkg/version.Revision=${src.rev} + -X github.com/jenkins-x/jx/pkg/version.GitTreeState=clean + ''; + + postInstall = '' + for shell in bash zsh; do + $out/bin/jx completion $shell > jx.$shell + installShellCompletion jx.$shell + done + ''; + + meta = with lib; { + description = "Command line tool for installing and using Jenkins X"; + homepage = "https://jenkins-x.io"; + longDescription = '' + Jenkins X provides automated CI+CD for Kubernetes with Preview + Environments on Pull Requests using Jenkins, Knative Build, Prow, + Skaffold and Helm. + ''; + license = licenses.asl20 ; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix new file mode 100644 index 000000000000..878d7e1184f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix @@ -0,0 +1,289 @@ +{ stdenv +, lib +, makeWrapper +, socat +, iptables +, iproute2 +, bridge-utils +, conntrack-tools +, buildGoPackage +, git +, runc +, kmod +, libseccomp +, pkg-config +, ethtool +, util-linux +, ipset +, fetchFromGitHub +, fetchurl +, fetchzip +, fetchgit +, zstd +}: + +with lib; + +# k3s is a kinda weird derivation. One of the main points of k3s is the +# simplicity of it being one binary that can perform several tasks. +# However, when you have a good package manager (like nix), that doesn't +# actually make much of a difference; you don't really care if it's one binary +# or 10 since with a good package manager, installing and running it is +# identical. +# Since upstream k3s packages itself as one large binary with several +# "personalities" (in the form of subcommands like 'k3s agent' and 'k3s +# kubectl'), it ends up being easiest to mostly mimic upstream packaging, with +# some exceptions. +# K3s also carries patches to some packages (such as containerd and cni +# plugins), so we intentionally use the k3s versions of those binaries for k3s, +# even if the upstream version of those binaries exist in nixpkgs already. In +# the end, that means we have a thick k3s binary that behaves like the upstream +# one for the most part. +# However, k3s also bundles several pieces of unpatched software, from the +# strongswan vpn software, to iptables, to socat, conntrack, busybox, etc. +# Those pieces of software we entirely ignore upstream's handling of, and just +# make sure they're in the path if desired. +let + k3sVersion = "1.21.0+k3s1"; # k3s git tag + k3sCommit = "2705431d9645d128441c578309574cd262285ae6"; # k3s git commit at the above version + + traefikChartVersion = "9.18.2"; # taken from ./scripts/download at TRAEFIK_VERSION + k3sRootVersion = "0.8.1"; # taken from ./scripts/download at ROOT_VERSION + k3sCNIVersion = "0.8.6-k3s1"; # taken from ./scripts/version.sh at VERSION_CNIPLUGINS + # bundled into the k3s binary + traefikChart = fetchurl { + url = "https://helm.traefik.io/traefik/traefik-${traefikChartVersion}.tgz"; + sha256 = "sha256-9d7p0ngyMN27u4OPgz7yI14Zj9y36t9o/HMX5wyDpUI="; + }; + # so, k3s is a complicated thing to package + # This derivation attempts to avoid including any random binaries from the + # internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which + # we don't care about doing, we can add those as build or runtime + # dependencies using a real package manager). + # In addition to those binaries, it's also configuration though (right now + # mostly strongswan configuration), and k3s does use those files. + # As such, we download it in order to grab 'etc' and bundle it into the final + # k3s binary. + k3sRoot = fetchzip { + # Note: marked as apache 2.0 license + url = "https://github.com/k3s-io/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar"; + sha256 = "sha256-r3Nkzl9ccry7cgD3YWlHvEWOsWnnFGIkyRH9sx12gks="; + stripRoot = false; + }; + k3sPlugins = buildGoPackage rec { + name = "k3s-cni-plugins"; + version = k3sCNIVersion; + + goPackagePath = "github.com/containernetworking/plugins"; + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "rancher"; + repo = "plugins"; + rev = "v${version}"; + sha256 = "sha256-uAy17eRRAXPCcnh481KxFMvFQecnnBs24jn5YnVNfY4="; + }; + + meta = { + description = "CNI plugins, as patched by rancher for k3s"; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; + # Grab this separately from a build because it's used by both stages of the + # k3s build. + k3sRepo = fetchgit { + url = "https://github.com/k3s-io/k3s"; + rev = "v${k3sVersion}"; + sha256 = "sha256-xsXxf2ZYrkpOHlSFqTsHwWF3kChUjxWRjyDR3Dhg2ho="; + }; + # Stage 1 of the k3s build: + # Let's talk about how k3s is structured. + # One of the ideas of k3s is that there's the single "k3s" binary which can + # do everything you need, from running a k3s server, to being a worker node, + # to running kubectl. + # The way that actually works is that k3s is a single go binary that contains + # a bunch of bindata that it unpacks at runtime into directories (either the + # user's home directory or /var/lib/rancher if run as root). + # This bindata includes both binaries and configuration. + # In order to let nixpkgs do all its autostripping/patching/etc, we split this into two derivations. + # First, we build all the binaries that get packed into the thick k3s binary + # (and output them from one derivation so they'll all be suitably patched up). + # Then, we bundle those binaries into our thick k3s binary and use that as + # the final single output. + # This approach was chosen because it ensures the bundled binaries all are + # correctly built to run with nix (we can lean on the existing buildGoPackage + # stuff), and we can again lean on that tooling for the final k3s binary too. + # Other alternatives would be to manually run the + # strip/patchelf/remove-references step ourselves in the installPhase of the + # derivation when we've built all the binaries, but haven't bundled them in + # with generated bindata yet. + k3sBuildStage1 = buildGoPackage rec { + name = "k3s-build-1"; + version = k3sVersion; + + goPackagePath = "github.com/rancher/k3s"; + + src = k3sRepo; + + # Patch build scripts so that we can use them. + # This makes things more dynamically linked (because nix can deal with + # dynamically linked dependencies just fine), removes the upload at the + # end, and skips building runc + cni, since we have our own derivations for + # those. + patches = [ ./patches/0002-Add-nixpkgs-patches.patch ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libseccomp ]; + + # Versioning info for build script + DRONE_TAG = "v${version}"; + DRONE_COMMIT = k3sCommit; + + buildPhase = '' + pushd go/src/${goPackagePath} + + patchShebangs ./scripts/build ./scripts/version.sh + mkdir -p bin + ./scripts/build + + popd + ''; + + installPhase = '' + pushd go/src/${goPackagePath} + + mkdir -p "$out/bin" + install -m 0755 -t "$out/bin" ./bin/* + + popd + ''; + + meta = { + description = "The various binaries that get packaged into the final k3s binary"; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; + k3sBin = buildGoPackage rec { + name = "k3s-bin"; + version = k3sVersion; + + goPackagePath = "github.com/rancher/k3s"; + + src = k3sRepo; + + # See the above comment in k3sBuildStage1 + patches = [ ./patches/0002-Add-nixpkgs-patches.patch ]; + + nativeBuildInputs = [ pkg-config zstd ]; + # These dependencies are embedded as compressed files in k3s at runtime. + # Propagate them to avoid broken runtime references to libraries. + propagatedBuildInputs = [ k3sPlugins k3sBuildStage1 runc ]; + + # k3s appends a suffix to the final distribution binary for some arches + archSuffix = + if stdenv.hostPlatform.system == "x86_64-linux" then "" + else if stdenv.hostPlatform.system == "aarch64-linux" then "-arm64" + else throw "k3s isn't being built for ${stdenv.hostPlatform.system} yet."; + + DRONE_TAG = "v${version}"; + DRONE_COMMIT = k3sCommit; + + # In order to build the thick k3s binary (which is what + # ./scripts/package-cli does), we need to get all the binaries that script + # expects in place. + buildPhase = '' + pushd go/src/${goPackagePath} + + patchShebangs ./scripts/build ./scripts/version.sh ./scripts/package-cli + + mkdir -p bin + + install -m 0755 -t ./bin ${k3sBuildStage1}/bin/* + install -m 0755 -T "${k3sPlugins}/bin/plugins" ./bin/cni + # Note: use the already-nixpkgs-bundled k3s rather than the one bundled + # in k3s because the k3s one is completely unmodified from upstream + # (unlike containerd, cni, etc) + install -m 0755 -T "${runc}/bin/runc" ./bin/runc + cp -R "${k3sRoot}/etc" ./etc + mkdir -p "build/static/charts" + cp "${traefikChart}" "build/static/charts/traefik-${traefikChartVersion}.tgz" + + ./scripts/package-cli + + popd + ''; + + installPhase = '' + pushd go/src/${goPackagePath} + + mkdir -p "$out/bin" + install -m 0755 -T ./dist/artifacts/k3s${archSuffix} "$out/bin/k3s" + + popd + ''; + + meta = { + description = "The k3s go binary which is used by the final wrapped output below"; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; + }; +in +stdenv.mkDerivation rec { + pname = "k3s"; + version = k3sVersion; + + # Important utilities used by the kubelet, see + # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494 + # Note the list in that issue is stale and some aren't relevant for k3s. + k3sRuntimeDeps = [ + kmod + socat + iptables + iproute2 + bridge-utils + ethtool + util-linux # kubelet wants 'nsenter' from util-linux: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-705994388 + ipset + conntrack-tools + ]; + + buildInputs = [ + k3sBin + ] ++ k3sRuntimeDeps; + + nativeBuildInputs = [ makeWrapper ]; + + unpackPhase = "true"; + + # And, one final derivation (you thought the last one was it, right?) + # We got the binary we wanted above, but it doesn't have all the runtime + # dependencies k8s wants, including mount utilities for kubelet, networking + # tools for cni/kubelet stuff, etc + # Use a wrapper script to reference all the binaries that k3s tries to + # execute, but that we didn't bundle with it. + installPhase = '' + runHook preInstall + mkdir -p "$out/bin" + makeWrapper ${k3sBin}/bin/k3s "$out/bin/k3s" \ + --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ + --prefix PATH : "$out/bin" + runHook postInstall + ''; + + meta = { + description = "A lightweight Kubernetes distribution"; + license = licenses.asl20; + homepage = "https://k3s.io"; + maintainers = [ maintainers.euank ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch new file mode 100644 index 000000000000..244da314f595 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0002-Add-nixpkgs-patches.patch @@ -0,0 +1,84 @@ +From 1891be119e298ef7c86347a6b74d40ff539cf06e Mon Sep 17 00:00:00 2001 +From: Euan Kemp <euank@euank.com> +Date: Sun, 31 May 2020 19:02:37 -0700 +Subject: [PATCH 2/2] Add nixpkgs patches + +These patches let us re-use the upstream build scripts when building for +nix. +--- + scripts/build | 20 ++++---------------- + scripts/package-cli | 10 ++++++---- + 2 files changed, 10 insertions(+), 20 deletions(-) + +diff --git a/scripts/build b/scripts/build +index 4ca6333c4a..df15f7db1d 100755 +--- a/scripts/build ++++ b/scripts/build +@@ -12,7 +12,8 @@ PKG_CONTAINERD="github.com/containerd/containerd" + PKG_RANCHER_CONTAINERD="github.com/rancher/containerd" + PKG_CRICTL="github.com/kubernetes-sigs/cri-tools" + +-buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ') ++# nixpkgs: deterministic build date ++buildDate="$(date -d "$(git log -1 --format=%ai)" -u "+%Y-%m-%dT%H:%M:%SZ")" + + VENDOR_PREFIX="${PKG}/vendor/" + VERSIONFLAGS=" +@@ -92,17 +93,7 @@ cleanup() { + } + + INSTALLBIN=$(pwd)/bin +-if [ ! -x ${INSTALLBIN}/cni ]; then +-( +- echo Building cni +- TMPDIR=$(mktemp -d) +- trap cleanup EXIT +- WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins +- git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR +- cd $WORKDIR +- GOPATH=$TMPDIR CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$LDFLAGS $STATIC" -o $INSTALLBIN/cni +-) +-fi ++# nixpkgs: skip building cni, we build it separately + # echo Building agent + # CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s-agent ./cmd/agent/main.go + echo Building server +@@ -118,10 +109,7 @@ ln -s containerd ./bin/ctr + #CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC_SQLITE" -o bin/ctr ./cmd/ctr/main.go + # echo Building containerd + # CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd/ +-echo Building runc +-rm -f ./vendor/github.com/opencontainers/runc/runc +-make EXTRA_LDFLAGS="-w -s" BUILDTAGS="$RUNC_TAGS" -C ./vendor/github.com/opencontainers/runc $RUNC_STATIC +-cp -f ./vendor/github.com/opencontainers/runc/runc ./bin/runc ++# nixpkgs: we build runc separately + + echo Building containerd-shim + rm -f ./vendor/github.com/containerd/containerd/bin/containerd-shim +diff --git a/scripts/package-cli b/scripts/package-cli +index d1aad638d9..90479b6fa1 100755 +--- a/scripts/package-cli ++++ b/scripts/package-cli +@@ -49,15 +49,18 @@ fi + + CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX} + +-"${GO}" generate ++CGO_ENABLED=0 env -u GOARCH "${GO}" generate + LDFLAGS=" + -X github.com/rancher/k3s/pkg/version.Version=$VERSION + -X github.com/rancher/k3s/pkg/version.GitCommit=${COMMIT:0:8} + -w -s + " +-STATIC="-extldflags '-static'" +-CGO_ENABLED=0 "${GO}" build -ldflags "$LDFLAGS $STATIC" -o ${CMD_NAME} ./cmd/k3s/main.go ++# STATIC="-extldflags '-static'" ++# nixpkgs: we can depend on dynamic linking because we have a good package manager ++"${GO}" build -ldflags "$LDFLAGS" -o ${CMD_NAME} ./cmd/k3s/main.go + + stat ${CMD_NAME} + +-./scripts/build-upload ${CMD_NAME} ${COMMIT} ++# nixpkgs: skip uploading ++# ./scripts/build-upload ${CMD_NAME} ${COMMIT} ++ diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix new file mode 100644 index 000000000000..8da48f8485f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "k9s"; + version = "0.24.13"; + + src = fetchFromGitHub { + owner = "derailed"; + repo = "k9s"; + rev = "v${version}"; + sha256 = "sha256-5gMRjnrk1FyTj3Lzp+6scLuqfP8rCUvDDBK33/RzG28="; + }; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/derailed/k9s/cmd.version=${version} + -X github.com/derailed/k9s/cmd.commit=${src.rev} + ''; + + vendorSha256 = "sha256-JBWQxRaMvIbUiOD7sJiZH1SHNCdysgh5FeSmYf+FdG4="; + + doCheck = false; + + meta = with lib; { + description = "Kubernetes CLI To Manage Your Clusters In Style"; + homepage = "https://github.com/derailed/k9s"; + license = licenses.asl20; + maintainers = with maintainers; [ Gonzih markus1189 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix new file mode 100644 index 000000000000..b4bb69dc1f62 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchurl, perl , taktuk}: + +stdenv.mkDerivation rec { + version = "1.2.2"; + pname = "kanif"; + + src = fetchurl { + url = "https://gforge.inria.fr/frs/download.php/26773/${pname}-${version}.tar.gz"; + sha256 = "3f0c549428dfe88457c1db293cfac2a22b203f872904c3abf372651ac12e5879"; + }; + + preBuild = '' + substituteInPlace ./kanif --replace "/usr/bin/perl" "${perl}/bin/perl" + substituteInPlace ./kanif --replace '$taktuk_command = "taktuk";' '$taktuk_command = "${taktuk}/bin/taktuk";' + ''; + + meta = { + description = "Cluster management and administration swiss army knife"; + longDescription = '' + Kanif is a tool for high performance computing clusters management and + administration. It combines the main functionalities of well-known cluster + management tools such as c3, pdsh and dsh, and mimics their syntax. It + provides three tools to run the same command on several nodes ("parallel + ssh", using the 'kash' command), to broadcast the copy of files or + directories to several nodes ('kaput' command), and to gather several + remote files or directories locally ('kaget' command). It relies on TakTuk + for efficiency and scalability.''; + homepage = "http://taktuk.gforge.inria.fr/kanif"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.bzizou ]; + platforms = lib.platforms.linux; + }; + +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix new file mode 100644 index 000000000000..683a91ffee85 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kconf"; + version = "1.10.1"; + + src = fetchFromGitHub { + owner = "particledecay"; + repo = "kconf"; + rev = "v${version}"; + sha256 = "NlTpHQFOJJcIt/xMT3fvdrlxANyg//wtYMmXzEtaFXo="; + }; + + vendorSha256 = "2d4o87wE9QZltk2YOHc20XVYF8n0EOrDf5mJ6i6EB0c="; + + meta = with lib; { + description = "An opinionated command line tool for managing multiple kubeconfigs"; + homepage = "https://github.com/particledecay/kconf"; + license = licenses.mit; + maintainers = with maintainers; [ thmzlt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix new file mode 100644 index 000000000000..c01e1c8c0041 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }: + +buildGoPackage rec { + pname = "kompose"; + version = "1.21.0"; + + goPackagePath = "github.com/kubernetes/kompose"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "kubernetes"; + repo = "kompose"; + sha256 = "15a1alf6ywwfc4z5kdcnv64fp3cfy3qrcw62ny6xyn1kh1w24vkh"; + }; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + for shell in bash zsh; do + $out/bin/kompose completion $shell > kompose.$shell + installShellCompletion kompose.$shell + done + ''; + + meta = with lib; { + description = "A tool to help users who are familiar with docker-compose move to Kubernetes"; + homepage = "https://kompose.io"; + license = licenses.asl20; + maintainers = with maintainers; [ thpham vdemeester ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix new file mode 100644 index 000000000000..87ae71f6a48d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "kontemplate"; + version = "1.8.0"; + goPackagePath = "github.com/tazjin/kontemplate"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "tazjin"; + repo = "kontemplate"; + rev = "v${version}"; + sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1"; + }; + + meta = with lib; { + description = "Extremely simple Kubernetes resource templates"; + homepage = "http://kontemplate.works"; + downloadPage = "https://github.com/tazjin/kontemplate/releases"; + license = licenses.gpl3; + maintainers = with maintainers; [ mbode tazjin ]; + platforms = platforms.unix; + repositories.git = "git://github.com/tazjin/kontemplate.git"; + + longDescription = '' + Kontemplate is a simple CLI tool that can take sets of + Kubernetes resource files with placeholders and insert values + per environment. + + It can be used as a simple way of deploying the same set of + resources to different Kubernetes contexts with context-specific + configuration. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix new file mode 100644 index 000000000000..7693968bd550 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix @@ -0,0 +1,111 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.3.0 +[ + { + goPackagePath = "github.com/Masterminds/goutils"; + fetch = { + type = "git"; + url = "https://github.com/Masterminds/goutils"; + rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0"; + sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq"; + }; + } + { + goPackagePath = "github.com/Masterminds/semver"; + fetch = { + type = "git"; + url = "https://github.com/Masterminds/semver"; + rev = "5bc3b9184d48f1412b300b87a200cf020d9254cf"; + sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng"; + }; + } + { + goPackagePath = "github.com/Masterminds/sprig"; + fetch = { + type = "git"; + url = "https://github.com/Masterminds/sprig"; + rev = "6f509977777c33eae63b2136d97f7b976cb971cc"; + sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh"; + }; + } + { + goPackagePath = "github.com/alecthomas/template"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/template"; + rev = "fb15b899a75114aa79cc930e33c46b577cc664b1"; + sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26"; + }; + } + { + goPackagePath = "github.com/alecthomas/units"; + fetch = { + type = "git"; + url = "https://github.com/alecthomas/units"; + rev = "c3de453c63f4bdb4dadffab9805ec00426c505f7"; + sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my"; + }; + } + { + goPackagePath = "github.com/ghodss/yaml"; + fetch = { + type = "git"; + url = "https://github.com/ghodss/yaml"; + rev = "25d852aebe32c875e9c044af3eef9c7dc6bc777f"; + sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz"; + }; + } + { + goPackagePath = "github.com/google/uuid"; + fetch = { + type = "git"; + url = "https://github.com/google/uuid"; + rev = "c2e93f3ae59f2904160ceaab466009f965df46d6"; + sha256 = "0zw8fvl6jqg0fmv6kmvhss0g4gkrbvgyvl2zgy5wdbdlgp4fja0h"; + }; + } + { + goPackagePath = "github.com/huandu/xstrings"; + fetch = { + type = "git"; + url = "https://github.com/huandu/xstrings"; + rev = "8bbcf2f9ccb55755e748b7644164cd4bdce94c1d"; + sha256 = "1ivvc95514z63k7cpz71l0dwlanffmsh1pijhaqmp41kfiby8rsx"; + }; + } + { + goPackagePath = "github.com/imdario/mergo"; + fetch = { + type = "git"; + url = "https://github.com/imdario/mergo"; + rev = "4c317f2286be3bd0c4f1a0e622edc6398ec4656d"; + sha256 = "0bihha1qsgfjk14yv1hwddv3d8dzxpbjlaxwwyys6lhgxz1cr9h9"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "9756ffdc24725223350eb3266ffb92590d28f278"; + sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8"; + }; + } + { + goPackagePath = "gopkg.in/alecthomas/kingpin.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/alecthomas/kingpin.v2"; + rev = "947dcec5ba9c011838740e680966fd7087a71d0d"; + sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r"; + }; + } + { + goPackagePath = "gopkg.in/yaml.v2"; + fetch = { + type = "git"; + url = "https://gopkg.in/yaml.v2"; + rev = "51d6538a90f86fe93ac480b35f37b2be17fef232"; + sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix new file mode 100644 index 000000000000..4dc37364e7ba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix @@ -0,0 +1,72 @@ +{ lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }: +let + goPackagePath = "k8s.io/kops"; + + generic = { version, sha256, rev ? version, ... }@attrs: + let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "rev" ]; in + buildGoPackage + { + pname = "kops"; + inherit version; + + inherit goPackagePath; + + src = fetchFromGitHub { + rev = rev; + owner = "kubernetes"; + repo = "kops"; + inherit sha256; + }; + + nativeBuildInputs = [ go-bindata installShellFiles ]; + subPackages = [ "cmd/kops" ]; + + buildFlagsArray = '' + -ldflags= + -X k8s.io/kops.Version=${version} + -X k8s.io/kops.GitVersion=${version} + ''; + + preBuild = '' + (cd go/src/k8s.io/kops + go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...) + ''; + + postInstall = '' + for shell in bash zsh; do + $out/bin/kops completion $shell > kops.$shell + installShellCompletion kops.$shell + done + ''; + + meta = with lib; { + description = "Easiest way to get a production Kubernetes up and running"; + homepage = "https://github.com/kubernetes/kops"; + changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases"; + license = licenses.asl20; + maintainers = with maintainers; [ offline zimbatm diegolelis ]; + platforms = platforms.unix; + }; + } // attrs'; +in +rec { + + mkKops = generic; + + kops_1_18 = mkKops { + version = "1.18.2"; + sha256 = "17na83j6sfhk69w9ssvicc0xd1904z952ad3zzbpha50lcy6nlhp"; + }; + + kops_1_19 = mkKops rec { + version = "1.19.2"; + sha256 = "15csxih1xy8myky37n5dyzp5mc31pc4bq9asaw6zz51mgw8ad5r9"; + rev = "v${version}"; + }; + + kops_1_20 = mkKops rec { + version = "1.20.2"; + sha256 = "011ib3xkj6nn7qax8d0ns8y4jhkwwmry1qnzxklvzssaxhmzs557"; + rev = "v${version}"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix new file mode 100644 index 000000000000..577e52ed49d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix @@ -0,0 +1,27 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "kpt"; + version = "0.38.0"; + + src = fetchFromGitHub { + owner = "GoogleContainerTools"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-MBZa4LdpCZnVVbjzkYpPi9/CYGqVLeYy2N/AS1PSYBE="; + }; + + vendorSha256 = "sha256-P0cN8aw62nPD1OlUAw1E36YxptxtPqqruZfDDG4Ag2w="; + + subPackages = [ "." ]; + + buildFlagsArray = [ "-ldflags=-s -w -X github.com/GoogleContainerTools/kpt/run.version=${version}" ]; + + meta = with lib; { + description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files"; + homepage = "https://googlecontainertools.github.io/kpt/"; + license = licenses.asl20; + maintainers = with maintainers; [ mikefaille ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix new file mode 100644 index 000000000000..de4cdcce44f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kube-capacity"; + version = "0.6.0"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "robscott"; + repo = pname; + sha256 = "sha256-IwlcxlzNNYWNANszTM+s6/SA1C2LXrydSTtAvniNKXE="; + }; + + vendorSha256 = "sha256-EgLWZs282IV1euCUCc5ucf267E2Z7GF9SgoImiGvuVM="; + + meta = with lib; { + description = + "A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster"; + homepage = "https://github.com/robscott/kube-capacity"; + changelog = "https://github.com/robscott/kube-capacity/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = [ maintainers.bryanasdev000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix new file mode 100644 index 000000000000..586fc6cf806b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "kube-router"; + version = "1.1.1"; + + goPackagePath = "github.com/cloudnativelabs/kube-router"; + + src = fetchFromGitHub { + owner = "cloudnativelabs"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-U7vjWtVXmyEPYFS1fAPOgV3WILGPhWsmoawV7B0pZaE="; + }; + + buildFlagsArray = '' + -ldflags= + -X + ${goPackagePath}/pkg/cmd.version=${version} + -X + ${goPackagePath}/pkg/cmd.buildDate=Nix + ''; + + meta = with lib; { + homepage = "https://www.kube-router.io/"; + description = "All-in-one router, firewall and service proxy for Kubernetes"; + license = licenses.asl20; + maintainers = with maintainers; [ colemickens johanot ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix new file mode 100644 index 000000000000..a466598f00df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kube-score"; + version = "1.11.0"; + + src = fetchFromGitHub { + owner = "zegl"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-O0RtlFkyo01kcxWSzrkhh7vvV76B7I5V19dSzaxvv4Y="; + }; + + vendorSha256 = "sha256-qFS+N0tOf3zxqs1tN6Z1EnR3qLR1FfZNfJ21NoRXek0="; + + meta = with lib; { + description = "Kubernetes object analysis with recommendations for improved reliability and security"; + homepage = "https://github.com/zegl/kube-score"; + license = licenses.mit; + maintainers = [ maintainers.j4m3s ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix new file mode 100644 index 000000000000..a7a1737c1464 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix @@ -0,0 +1,56 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.6-k3s1" }: + +buildGoModule rec { + pname = "kube3d"; + version = "4.4.6"; + + src = fetchFromGitHub { + owner = "rancher"; + repo = "k3d"; + rev = "v${version}"; + sha256 = "sha256-gId7zDrtkTjFN59yaFyeYwrDZV24hkkV+4dPr8Jr22E="; + }; + + vendorSha256 = null; + + nativeBuildInputs = [ installShellFiles ]; + + excludedPackages = "\\(tools\\|docgen\\)"; + + preBuild = let t = "github.com/rancher/k3d/v4/version"; in + '' + buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.K3sVersion=v${k3sVersion}") + ''; + + doCheck = false; + + postInstall = '' + installShellCompletion --cmd k3d \ + --bash <($out/bin/k3d completion bash) \ + --fish <($out/bin/k3d completion fish) \ + --zsh <($out/bin/k3d completion zsh) + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/k3d --help + $out/bin/k3d version | grep "k3d version v${version}" + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://github.com/rancher/k3d"; + changelog = "https://github.com/rancher/k3d/blob/v${version}/CHANGELOG.md"; + description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d"; + longDescription = '' + k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s + + k3d creates containerized k3s clusters. This means, that you can spin up a + multi-node k3s cluster on a single machine using docker. + ''; + license = licenses.mit; + maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix new file mode 100644 index 000000000000..d123790edd2f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix @@ -0,0 +1,49 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +, makeWrapper +, git +, go +}: + +buildGoModule rec { + pname = "kubebuilder"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "kubernetes-sigs"; + repo = "kubebuilder"; + rev = "v${version}"; + sha256 = "1726j2b5jyvllvnk60g6px3g2jyyphd9pc4vgid45mis9b60sh8a"; + }; + vendorSha256 = "0zxyd950ksjswja64rfri5v2yaalfg6qmq8215ildgrcavl9974n"; + + subPackages = ["cmd" "pkg/..."]; + + preBuild = '' + export buildFlagsArray+=("-ldflags=-X main.kubeBuilderVersion=v${version} \ + -X main.goos=$GOOS \ + -X main.goarch=$GOARCH \ + -X main.gitCommit=v${version} \ + -X main.buildDate=v${version}") + ''; + + doCheck = true; + + postInstall = '' + mv $out/bin/cmd $out/bin/kubebuilder + wrapProgram $out/bin/kubebuilder \ + --prefix PATH : ${lib.makeBinPath [ go ]} + ''; + + allowGoReference = true; + nativeBuildInputs = [ makeWrapper git ]; + + meta = with lib; { + homepage = "https://github.com/kubernetes-sigs/kubebuilder"; + description = "SDK for building Kubernetes APIs using CRDs"; + license = licenses.asl20; + maintainers = with maintainers; [ cmars ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix new file mode 100644 index 000000000000..7c04f6e9eb94 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub, ... }: + +let version = "0.20.0"; in + +buildGoPackage { + pname = "kubecfg"; + inherit version; + + src = fetchFromGitHub { + owner = "bitnami"; + repo = "kubecfg"; + rev = "v${version}"; + sha256 = "sha256-7lBIqaozVBoiYYOTqAxq9h2N+Y3JFwLaunCykILOmPU="; + }; + + goPackagePath = "github.com/bitnami/kubecfg"; + + meta = { + description = "A tool for managing Kubernetes resources as code"; + homepage = "https://github.com/bitnami/kubecfg"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ benley ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix new file mode 100644 index 000000000000..cc0f1e0bf64c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubeconform"; + version = "0.4.8"; + + src = fetchFromGitHub { + owner = "yannh"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-XD8xGqtE7eaBxPL4Z0Kw4BEqM2fdgww7wl8wJ1U3u0U="; + }; + + vendorSha256 = null; + + meta = with lib; { + description = "A FAST Kubernetes manifests validator, with support for Custom Resources!"; + homepage = "https://github.com/yannh/kubeconform/"; + license = licenses.asl20; + maintainers = [ maintainers.j4m3s ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix new file mode 100644 index 000000000000..5d056907264d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubectl-doctor"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "emirozer"; + repo = pname; + rev = version; + sha256 = "0x784jbcwd34vzdnhg2yldh5ivkxvs2qlbsvaammbxkn04ch1ijz"; + }; + + vendorSha256 = "04xq5kp1m7c98gb4fd0dni258vpfnhv535gl2qllfcp2mvk3mn55"; + + postInstall = '' + mv $out/bin/{cmd,kubectl-doctor} + ''; + + meta = with lib; { + description = "kubectl cluster triage plugin for k8s"; + homepage = "https://github.com/emirozer/kubectl-doctor"; + changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = [ maintainers.zimbatm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix new file mode 100644 index 000000000000..228f12075c4e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubectl-example"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "seredot"; + repo = pname; + rev = "v${version}"; + sha256 = "18vp53cda93qjssxygwqp55yc80a93781839gf3138awngf731yq"; + }; + + vendorSha256 = null; + + meta = with lib; { + description = "kubectl plugin for retrieving resource example YAMLs"; + homepage = "https://github.com/seredot/kubectl-example"; + changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = [ maintainers.bryanasdev000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix new file mode 100644 index 000000000000..c550a0e2f2b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl/default.nix @@ -0,0 +1,28 @@ +{ stdenv, kubernetes, installShellFiles }: + +stdenv.mkDerivation { + name = "kubectl-${kubernetes.version}"; + + # kubectl is currently part of the main distribution but will eventially be + # split out (see homepage) + dontUnpack = true; + + nativeBuildInputs = [ installShellFiles ]; + + outputs = [ "out" "man" ]; + + installPhase = '' + install -D ${kubernetes}/bin/kubectl -t $out/bin + + installManPage "${kubernetes.man}/share/man/man1"/kubectl* + + installShellCompletion --cmd kubectl \ + --bash <($out/bin/kubectl completion bash) \ + --zsh <($out/bin/kubectl completion zsh) + ''; + + meta = kubernetes.meta // { + description = "Kubernetes CLI"; + homepage = "https://github.com/kubernetes/kubectl"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix new file mode 100644 index 000000000000..38323b98b194 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix @@ -0,0 +1,38 @@ +{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }: + +buildGoPackage rec { + pname = "kubeless"; + version = "1.0.7"; + + src = fetchFromGitHub { + owner = "kubeless"; + repo = "kubeless"; + rev = "v${version}"; + sha256 = "0x2hydywnnlh6arzz71p7gg9yzq5z2y2lppn1jszvkbgh11kkqfr"; + }; + + goPackagePath = "github.com/kubeless/kubeless"; + + nativeBuildInputs = [ installShellFiles ]; + + subPackages = [ "cmd/kubeless" ]; + + buildFlagsArray = '' + -ldflags=-s -w -X github.com/kubeless/kubeless/pkg/version.Version=${version} + ''; + + postInstall = '' + for shell in bash; do + $out/bin/kubeless completion $shell > kubeless.$shell + installShellCompletion kubeless.$shell + done + ''; + + meta = with lib; { + homepage = "https://kubeless.io"; + description = "The Kubernetes Native Serverless Framework"; + license = licenses.asl20; + maintainers = with maintainers; []; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix new file mode 100644 index 000000000000..e552113310f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix @@ -0,0 +1,30 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubelogin"; + version = "1.23.3"; + + src = fetchFromGitHub { + owner = "int128"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-qhdt/j1yFlCr+CCM3VQHxRVMEelZDsjhDJW9CYNCx2U="; + }; + + subPackages = ["."]; + + vendorSha256 = "sha256-RxIrnwIHDi9umu9bqpz3lnpNFdIWoTP657Te9iBv4IA="; + + # Rename the binary instead of symlinking to avoid conflict with the + # Azure version of kubelogin + postInstall = '' + mv $out/bin/kubelogin $out/bin/kubectl-oidc_login + ''; + + meta = with lib; { + description = "A Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication"; + inherit (src.meta) homepage; + license = licenses.asl20; + maintainers = with maintainers; [ benley ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix new file mode 100644 index 000000000000..0a928ac9299f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix @@ -0,0 +1,28 @@ +{ lib, fetchFromGitHub, buildGoModule, go }: + +buildGoModule rec { + pname = "kubelogin"; + version = "0.0.9"; + + src = fetchFromGitHub { + owner = "Azure"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-0+4hrC7A60dbf+1uvTVU2JRynvA3O/lXfgcra1fV9bI="; + }; + + vendorSha256 = "sha256-erGqCpWlAQanY1ghpNVRhzUEIXv3lCiBGRs888MmHN8="; + + buildFlagsArray = '' + -ldflags= + -X main.version=${version} + -X main.goVersion=${lib.getVersion go} + ''; + + meta = with lib; { + description = "A Kubernetes credential plugin implementing Azure authentication"; + inherit (src.meta) homepage; + license = licenses.mit; + maintainers = with maintainers; [ yurrriq ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix new file mode 100644 index 000000000000..b570ebc09dcd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeone/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +}: + +buildGoModule rec { + pname = "kubeone"; + version = "1.2.3"; + + src = fetchFromGitHub { + owner = "kubermatic"; + repo = "kubeone"; + rev = "v${version}"; + sha256 = "sha256-oInE8fwE+7a+F4NevKPuYQqCP9GkPhqayLu8HCmVbLs="; + }; + + vendorSha256 = "sha256-VvO5YnDofdEku9+RC6PPHWSZY8qZt9N3JNzlm5omNAc="; + + nativeBuildInputs = [ + installShellFiles + ]; + + postInstall = '' + installShellCompletion --cmd kubeone \ + --bash <($out/bin/kubeone completion bash) \ + --zsh <($out/bin/kubeone completion zsh) + ''; + + meta = { + description = "Automate cluster operations on all your cloud, on-prem, edge, and IoT environments."; + homepage = "https://kubeone.io/"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ lblasc ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix new file mode 100644 index 000000000000..2dfbac5c5ac6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix @@ -0,0 +1,98 @@ +{ stdenv +, lib +, fetchFromGitHub +, removeReferencesTo +, which +, go +, makeWrapper +, rsync +, installShellFiles + +, components ? [ + "cmd/kubelet" + "cmd/kube-apiserver" + "cmd/kube-controller-manager" + "cmd/kube-proxy" + "cmd/kube-scheduler" + "test/e2e/e2e.test" + ] +}: + +stdenv.mkDerivation rec { + pname = "kubernetes"; + version = "1.21.2"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = "kubernetes"; + rev = "v${version}"; + sha256 = "sha256-GAX8ODjGj5LM44KgJC0N5uuOH4z33lDWoQgImOl8/xo="; + }; + + nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ]; + + outputs = [ "out" "man" "pause" ]; + + patches = [ ./fixup-addonmanager-lib-path.patch ]; + + postPatch = '' + # go env breaks the sandbox + substituteInPlace "hack/lib/golang.sh" \ + --replace 'echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)"' 'echo "${go.GOOS}/${go.GOARCH}"' + + substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}" + # hack/update-munge-docs.sh only performs some tests on the documentation. + # They broke building k8s; disabled for now. + echo "true" > "hack/update-munge-docs.sh" + + patchShebangs ./hack + ''; + + WHAT = lib.concatStringsSep " " ([ + "cmd/kubeadm" + "cmd/kubectl" + ] ++ components); + + postBuild = '' + ./hack/update-generated-docs.sh + (cd build/pause/linux && cc pause.c -o pause) + ''; + + installPhase = '' + for p in $WHAT; do + install -D _output/local/go/bin/''${p##*/} -t $out/bin + done + + install -D build/pause/linux/pause -t $pause/bin + installManPage docs/man/man1/*.[1-9] + + # Unfortunately, kube-addons-main.sh only looks for the lib file in either the current working dir + # or in /opt. We have to patch this for now. + substitute cluster/addons/addon-manager/kube-addons-main.sh $out/bin/kube-addons \ + --subst-var out + + chmod +x $out/bin/kube-addons + patchShebangs $out/bin/kube-addons + wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl" + + cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh + + for tool in kubeadm kubectl; do + installShellCompletion --cmd $tool \ + --bash <($out/bin/$tool completion bash) \ + --zsh <($out/bin/$tool completion zsh) + done + ''; + + preFixup = '' + find $out/bin $pause/bin -type f -exec remove-references-to -t ${go} '{}' + + ''; + + meta = with lib; { + description = "Production-Grade Container Scheduling and Management"; + license = licenses.asl20; + homepage = "https://kubernetes.io"; + maintainers = with maintainers; [ johanot offline saschagrunert ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch new file mode 100644 index 000000000000..ef2904bdcfe7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch @@ -0,0 +1,23 @@ +diff --git a/cluster/addons/addon-manager/kube-addons-main.sh b/cluster/addons/addon-manager/kube-addons-main.sh +index 849973470d1..e4fef30eaea 100755 +--- a/cluster/addons/addon-manager/kube-addons-main.sh ++++ b/cluster/addons/addon-manager/kube-addons-main.sh +@@ -17,17 +17,7 @@ + # Import required functions. The addon manager is installed to /opt in + # production use (see the Dockerfile) + # Disabling shellcheck following files as the full path would be required. +-if [ -f "kube-addons.sh" ]; then +- # shellcheck disable=SC1091 +- source "kube-addons.sh" +-elif [ -f "/opt/kube-addons.sh" ]; then +- # shellcheck disable=SC1091 +- source "/opt/kube-addons.sh" +-else +- # If the required source is missing, we have to fail. +- log ERR "== Could not find kube-addons.sh (not in working directory or /opt) at $(date -Is) ==" +- exit 1 +-fi ++source "@out@/bin/kube-addons-lib.sh" + + # The business logic for whether a given object should be created + # was already enforced by salt, and /etc/kubernetes/addons is the diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix new file mode 100644 index 000000000000..8dcfbfc36b52 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix @@ -0,0 +1,24 @@ +{ lib, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "kubernix"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "saschagrunert"; + repo = pname; + rev = "v${version}"; + sha256 = "04dzfdzjwcwwaw9min322g30q0saxpq5kqzld4f22fmk820ki6gp"; + }; + + cargoSha256 = "133h6mkz9aylhligy16pfjzsl94xxj0rk2zjm08dhg0inj84z3yv"; + doCheck = false; + + meta = with lib; { + description = "Single dependency Kubernetes clusters for local testing, experimenting and development"; + homepage = "https://github.com/saschagrunert/kubernix"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ saschagrunert ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix new file mode 100644 index 000000000000..15670188f14e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "kubeseal"; + version = "0.16.0"; + + src = fetchFromGitHub { + owner = "bitnami-labs"; + repo = "sealed-secrets"; + rev = "v${version}"; + sha256 = "sha256-+9yOBrq34VCy1yAkSh1iHbgtckuz2FcHokH/Cb/Heus="; + }; + + vendorSha256 = null; + + doCheck = false; + + subPackages = [ "cmd/kubeseal" ]; + + buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ]; + + meta = with lib; { + description = "A Kubernetes controller and tool for one-way encrypted Secrets"; + homepage = "https://github.com/bitnami-labs/sealed-secrets"; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix new file mode 100644 index 000000000000..fa0e62c53fe8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix @@ -0,0 +1,33 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "kubespy"; + version = "0.6.0"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "pulumi"; + repo = "kubespy"; + sha256 = "1xrwhxw2y0zpzsxp1rlm1wd0aqw6jda5ai5y1ards5djqsbsv87g"; + }; + + vendorSha256 = "0ajhbjs9ijpxp3svvj7pjiac78ps7vkqmqrizq18mllsry0m9pcl"; + + doCheck = false; + + # TODO: enable after https://github.com/pulumi/kubespy/issues/72 is addressed. + # postInstall = '' + # for shell in bash zsh; do + # $out/bin/kubespy completion $shell > kubespy.$shell + # installShellCompletion kubespy.$shell + # done + # ''; + + meta = with lib; { + description = "A tool to observe Kubernetes resources in real time"; + homepage = "https://github.com/pulumi/kubespy"; + license = licenses.asl20; + maintainers = with maintainers; [ blaggacao ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix new file mode 100644 index 000000000000..e0ced9e2a8f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, lib, ... }: + +stdenv.mkDerivation rec { + pname = "kubetail"; + version = "1.6.13"; + + src = fetchFromGitHub { + owner = "johanhaleby"; + repo = "kubetail"; + rev = version; + sha256 = "sha256-EkOewNInzEEEgMOffYoRaKwhgYuBXgHaCkVgWg2mIDE="; + }; + + installPhase = '' + install -Dm755 kubetail "$out/bin/kubetail" + install -Dm755 completion/kubetail.bash "$out/share/bash-completion/completions/kubetail" + install -Dm755 completion/kubetail.fish "$out/share/fish/vendor_completions.d/kubetail.fish" + install -Dm755 completion/kubetail.zsh "$out/share/zsh/site-functions/_kubetail" + ''; + + meta = with lib; { + description = "Bash script to tail Kubernetes logs from multiple pods at the same time"; + longDescription = '' + Bash script that enables you to aggregate (tail/follow) logs from + multiple pods into one stream. This is the same as running "kubectl logs + -f " but for multiple pods. + ''; + homepage = "https://github.com/johanhaleby/kubetail"; + license = licenses.asl20; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix new file mode 100644 index 000000000000..af8e04667b7f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix @@ -0,0 +1,24 @@ +{ lib, fetchFromGitHub, buildGoModule, makeWrapper }: + +buildGoModule rec { + pname = "kubeval"; + version = "0.16.0"; + + src = fetchFromGitHub { + owner = "instrumenta"; + repo = "kubeval"; + rev = version; + sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0="; + }; + + vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4="; + + doCheck = false; + + meta = with lib; { + description = "Validate your Kubernetes configuration files"; + homepage = "https://github.com/instrumenta/kubeval"; + license = licenses.asl20; + maintainers = with maintainers; [ johanot nicknovitski ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix new file mode 100644 index 000000000000..370fe9a1cd82 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/schema.nix @@ -0,0 +1,15 @@ +{ fetchFromGitHub }: +# To cache schema as a package so network calls are not +# necessary at runtime, allowing use in package builds you can use the following: + +# KUBEVAL_SCHEMA_LOCATION="file:///${kubeval-schema}"; +(fetchFromGitHub { + name = "kubeval-schema"; + owner = "instrumenta"; + repo = "kubernetes-json-schema"; + rev = "6a498a60dc68c5f6a1cc248f94b5cd1e7241d699"; + sha256 = "1y9m2ma3n4h7sf2lg788vjw6pkfyi0fa7gzc870faqv326n6x2jr"; +}) // { + # the schema is huge (> 7GB), we don't get any benefit from building int on hydra + meta.hydraPlatforms = []; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix new file mode 100644 index 000000000000..0c8f7f1574ce --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub}: + +buildGoModule rec { + name = "kuttl"; + pname = "kuttl"; + version = "0.9.0"; + cli = "kubectl-kuttl"; + + src = fetchFromGitHub { + owner = "kudobuilder"; + repo = "kuttl"; + rev = "v${version}"; + sha256 = "sha256:1cji0py2340mvcpplwq3licdkzjx7q5f27fdjjxvbhrgksnyw6hs"; + }; + + vendorSha256 = "sha256:1shra42ifa2knxp58fj5hn074jg89f3nqdqk4rqbp3ybir84ahsd"; + + subPackages = [ "cmd/kubectl-kuttl" ]; + + buildFlagsArray = '' + -ldflags=-s -w + -X github.com/kudobuilder/kuttl/pkg/version.gitVersion=${version} + ''; + + meta = with lib; { + description = "The KUbernetes Test TooL (KUTTL) provides a declarative approach to testing production-grade Kubernetes operators"; + homepage = "https://github.com/kudobuilder/kuttl"; + license = licenses.asl20; + maintainers = with maintainers; [ diegolelis ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix new file mode 100644 index 000000000000..e6af0146ca5a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix @@ -0,0 +1,41 @@ +{ lib, fetchurl, appimageTools }: + +let + pname = "lens"; + version = "4.2.4"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.x86_64.AppImage"; + sha256 = "0fzhv8brwwl1ihx6jqq4pi77489hr6f9hpppqq3n8d2imjsqgvlw"; + name="${pname}.AppImage"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 { + inherit name src; + + extraInstallCommands = + '' + mv $out/bin/${name} $out/bin/${pname} + + install -m 444 -D ${appimageContents}/kontena-lens.desktop $out/share/applications/${pname}.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/kontena-lens.png \ + $out/share/icons/hicolor/512x512/apps/${pname}.png + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Icon=kontena-lens' 'Icon=${pname}' \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "The Kubernetes IDE"; + homepage = "https://k8slens.dev/"; + license = licenses.mit; + maintainers = with maintainers; [ dbirks ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix new file mode 100644 index 000000000000..7b5e5810581a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix @@ -0,0 +1,71 @@ +{ lib, fetchFromGitHub, buildGoModule, installShellFiles }: + +let generic = { channel, version, sha256, vendorSha256 }: + buildGoModule rec { + pname = "linkerd-${channel}"; + inherit version vendorSha256; + + src = fetchFromGitHub { + owner = "linkerd"; + repo = "linkerd2"; + rev = "${channel}-${version}"; + inherit sha256; + }; + + subPackages = [ "cli" ]; + runVend = true; + + preBuild = '' + env GOFLAGS="" go generate ./pkg/charts/static + env GOFLAGS="" go generate ./jaeger/static + env GOFLAGS="" go generate ./multicluster/static + env GOFLAGS="" go generate ./viz/static + ''; + + buildFlagsArray = [ + "-tags=prod" + ]; + + ldflags = [ + "-s" "-w" + "-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}" + ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + mv $out/bin/cli $out/bin/linkerd + installShellCompletion --cmd linkerd \ + --bash <($out/bin/linkerd completion bash) \ + --zsh <($out/bin/linkerd completion zsh) \ + --fish <($out/bin/linkerd completion fish) + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/linkerd version --client | grep ${src.rev} > /dev/null + ''; + + meta = with lib; { + description = "A simple Kubernetes service mesh that improves security, observability and reliability"; + downloadPage = "https://github.com/linkerd/linkerd2/"; + homepage = "https://linkerd.io/"; + license = licenses.asl20; + maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ]; + }; + }; +in + { + stable = generic { + channel = "stable"; + version = "2.10.2"; + sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0="; + vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s="; + }; + edge = generic { + channel = "edge"; + version = "21.7.1"; + sha256 = "sha256-VLq776A0H2IZLBeYjXpYzFixcydw/OcYsvKFxeLuewo="; + vendorSha256 = "sha256-xSOPMFHfyCmG+yTzBfKR7F5KYV0gcKRNM0UrxpGBpE4="; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix new file mode 100644 index 000000000000..2c839e84a4e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix @@ -0,0 +1,31 @@ +{ lib, python3 }: + +python3.pkgs.buildPythonApplication rec { + pname = "luigi"; + version = "3.0.2"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb"; + }; + + propagatedBuildInputs = with python3.pkgs; [ python-dateutil tornado python-daemon boto3 ]; + + # Requires tox, hadoop, and google cloud + doCheck = false; + + # This enables accessing modules stored in cwd + makeWrapperArgs = ["--prefix PYTHONPATH . :"]; + + meta = with lib; { + description = "Python package that helps you build complex pipelines of batch jobs"; + longDescription = '' + Luigi handles dependency resolution, workflow management, visualization, + handling failures, command line integration, and much more. + ''; + homepage = "https://github.com/spotify/luigi"; + changelog = "https://github.com/spotify/luigi/releases/tag/${version}"; + license = [ licenses.asl20 ]; + maintainers = [ maintainers.bhipple ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix new file mode 100644 index 000000000000..ac7a301fe06d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix @@ -0,0 +1,56 @@ +{ lib +, stdenv +, buildGoModule +, fetchFromGitHub +, go-bindata +, installShellFiles +, pkg-config +, which +, libvirt +, vmnet +}: + +buildGoModule rec { + pname = "minikube"; + version = "1.21.0"; + + vendorSha256 = "sha256-3G9QO5OMnMkMCsGIze/E9bvx6fvlXtOqiv8lGTkLN3s="; + + doCheck = false; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = "minikube"; + rev = "v${version}"; + sha256 = "sha256-PbCwGPJZvnJCIVK7FYa1gI4aO4sIeh8iQtYOHAQBaZE="; + }; + + nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ]; + + buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null; + + buildPhase = '' + make COMMIT=${src.rev} + ''; + + installPhase = '' + install out/minikube -Dt $out/bin + + export HOME=$PWD + export MINIKUBE_WANTUPDATENOTIFICATION=false + export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false + + for shell in bash zsh fish; do + $out/bin/minikube completion $shell > minikube.$shell + installShellCompletion minikube.$shell + done + ''; + + meta = with lib; { + homepage = "https://minikube.sigs.k8s.io"; + description = "A tool that makes it easy to run Kubernetes locally"; + license = licenses.asl20; + maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang Chili-Man ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix new file mode 100644 index 000000000000..5b3b17b3df20 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix @@ -0,0 +1,67 @@ +{ lib, buildGoPackage, fetchFromGitHub, go-bindata, pkg-config, makeWrapper +, glib, gtk3, libappindicator-gtk3, gpgme, openshift, ostree, libselinux, btrfs-progs +, lvm2, docker-machine-kvm +}: + +let + version = "1.34.3"; + + # Update these on version bumps according to Makefile + centOsIsoVersion = "v1.17.0"; + openshiftVersion = "v3.11.0"; + +in buildGoPackage rec { + pname = "minishift"; + inherit version; + + src = fetchFromGitHub { + owner = "minishift"; + repo = "minishift"; + rev = "v${version}"; + sha256 = "0yhln3kyc0098hbnjyxhbd915g6j7s692c0z8yrhh9gdpc5cr2aa"; + }; + + nativeBuildInputs = [ pkg-config go-bindata makeWrapper ]; + buildInputs = [ glib gtk3 libappindicator-gtk3 gpgme ostree libselinux btrfs-progs lvm2 ]; + + goPackagePath = "github.com/minishift/minishift"; + subPackages = [ "cmd/minishift" ]; + + postPatch = '' + # minishift downloads openshift if not found therefore set the cache to /nix/store/... + substituteInPlace pkg/minishift/cache/oc_caching.go \ + --replace 'filepath.Join(oc.MinishiftCacheDir, OC_CACHE_DIR, oc.OpenShiftVersion, runtime.GOOS)' '"${openshift}/bin"' \ + --replace '"runtime"' "" + ''; + + buildFlagsArray = '' + -ldflags= + -X ${goPackagePath}/pkg/version.minishiftVersion=${version} + -X ${goPackagePath}/pkg/version.centOsIsoVersion=${centOsIsoVersion} + -X ${goPackagePath}/pkg/version.openshiftVersion=${openshiftVersion} + ''; + + preBuild = '' + (cd go/src/github.com/minishift/minishift + mkdir -p out/bindata + go-bindata -prefix addons -o out/bindata/addon_assets.go -pkg bindata addons/...) + ''; + + postInstall = '' + wrapProgram "$out/bin/minishift" \ + --prefix PATH ':' '${lib.makeBinPath [ docker-machine-kvm openshift ]}' + ''; + + meta = with lib; { + description = "Run OpenShift locally"; + longDescription = '' + Minishift is a tool that helps you run OpenShift locally by running + a single-node OpenShift cluster inside a VM. You can try out OpenShift + or develop with it, day-to-day, on your local host. + ''; + homepage = "https://github.com/minishift/minishift"; + maintainers = with maintainers; [ fpletz vdemeester ]; + platforms = platforms.linux; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix new file mode 100644 index 000000000000..d44e0441d8fa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/multus-cni/default.nix @@ -0,0 +1,37 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "multus-cni"; + version = "3.7.1"; + + src = fetchFromGitHub { + owner = "k8snetworkplumbingwg"; + repo = pname; + rev = "v${version}"; + sha256 = "04rn7ypd0cw2c33wqb9wqy1dp6ajvcp7rcv7zybffb1d40mdlds1"; + }; + + buildFlagsArray = let + multus = "gopkg.in/intel/multus-cni.v3/pkg/multus"; + commit = "f6298a3a294a79f9fbda0b8f175e521799d5f8d7"; + in [ + "-ldflags=-s -w -X '${multus}.version=v${version}' -X '${multus}.commit=${commit}'" + ]; + + preInstall = '' + mv $GOPATH/bin/cmd $GOPATH/bin/multus + ''; + + vendorSha256 = null; + + # Some of the tests require accessing a k8s cluster + doCheck = false; + + meta = with lib; { + description = "Multus CNI is a container network interface (CNI) plugin for Kubernetes that enables attaching multiple network interfaces to pods. "; + homepage = "https://github.com/k8snetworkplumbingwg/multus-cni"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ onixie ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix new file mode 100644 index 000000000000..418f3259178a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix @@ -0,0 +1,57 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, makeWrapper +, installShellFiles +, buildkit +, cni-plugins +, extraPackages ? [ ] +}: + +buildGoModule rec { + pname = "nerdctl"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "containerd"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-cqIIpdkQ6DF7DKXvwCoJBQKG0+lL8iP/Vx0q7rL8prg="; + }; + + vendorSha256 = "sha256-0+k1e7Sn+NYGAJDVUbUm0oedc1t2blezUhsjDIuIKvA="; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + ldflags = let t = "github.com/containerd/nerdctl/pkg/version"; in + [ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.Revision=<unknown>" ]; + + # Many checks require a containerd socket and running nerdctl after it's built + doCheck = false; + + postInstall = '' + wrapProgram $out/bin/nerdctl \ + --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \ + --prefix CNI_PATH : "${cni-plugins}/bin" + + installShellCompletion --cmd nerdctl \ + --bash <($out/bin/nerdctl completion bash) + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/nerdctl --help + $out/bin/nerdctl --version | grep "nerdctl version ${version}" + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://github.com/containerd/nerdctl/"; + changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}"; + description = "A Docker-compatible CLI for containerd"; + license = licenses.asl20; + maintainers = with maintainers; [ jk ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix new file mode 100644 index 000000000000..6515885fd8e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix @@ -0,0 +1,64 @@ +{ pkgs +, poetry2nix +, lib +, overrides ? (self: super: {}) +}: + +let + + interpreter = ( + poetry2nix.mkPoetryPackages { + projectDir = ./.; + overrides = [ + poetry2nix.defaultPoetryOverrides + (import ./poetry-git-overlay.nix { inherit pkgs; }) + ( + self: super: { + + nixops = super.nixops.overridePythonAttrs ( + old: { + meta = old.meta // { + homepage = https://github.com/NixOS/nixops; + description = "NixOS cloud provisioning and deployment tool"; + maintainers = with lib.maintainers; [ adisbladis aminechikhaoui eelco rob domenkozar ]; + platforms = lib.platforms.unix; + license = lib.licenses.lgpl3; + }; + + } + ); + } + ) + + # User provided overrides + overrides + + # Make nixops pluginable + (self: super: { + nixops = super.__toPluginAble { + drv = super.nixops; + finalDrv = self.nixops; + + nativeBuildInputs = [ self.sphinx ]; + postInstall = '' + doc_cache=$(mktemp -d) + sphinx-build -b man -d $doc_cache doc/ $out/share/man/man1 + + html=$(mktemp -d) + sphinx-build -b html -d $doc_cache doc/ $out/share/nixops/doc + ''; + + }; + }) + + ]; + } + ).python; + +in interpreter.pkgs.nixops.withPlugins(ps: [ + ps.nixops-encrypted-links + ps.nixops-virtd + ps.nixops-aws + ps.nixops-gcp + ps.nixopsvbox +]) diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix new file mode 100644 index 000000000000..749dac7546c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix @@ -0,0 +1,74 @@ +{ pkgs }: +self: super: { + + nixops = super.nixops.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/NixOS/nixops.git"; + rev = "45256745cef246dabe1ae8a7d109988f190cd7ef"; + sha256 = "0ni1v8ppg5cf35gq7nzd50kajxzp5zkbzhf022in0fgbjcprlzr2"; + }; + } + ); + + nixops-aws = super.nixops-aws.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/NixOS/nixops-aws.git"; + rev = "3f66ee06f689021cd4c985b9b49697bdda64d961"; + sha256 = "17vn8bpy9kr259anmh3g5xwp08q69l9sz7s3nzn8sy5flqa87w50"; + }; + } + ); + + nixops-encrypted-links = super.nixops-encrypted-links.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/nix-community/nixops-encrypted-links.git"; + rev = "e2f196fce15fcfb00d18c055e1ac53aec33b8fb1"; + sha256 = "12ynqwd5ad6wfyv6sma55wnmrlr8i14kd5d42zqv4zl23h0xnd6m"; + }; + } + ); + + nixops-gcp = super.nixops-gcp.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/nix-community/nixops-gce.git"; + rev = "fed6aadace9a9e914425589c065bb969d53f2309"; + sha256 = "096ic1kzlcv8cx51hnhlq37pkg4pis2rk5kri14dwp3865si1mdw"; + }; + } + ); + + nixops-virtd = super.nixops-virtd.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/nix-community/nixops-libvirtd.git"; + rev = "af6cf5b2ced57b7b6d36b5df7dd27a14e0a5cfb6"; + sha256 = "1j75yg8a44dlbig38mf7n7p71mdzff6ii1z1pdp32i4ivk3l0hy6"; + }; + } + ); + + nixopsvbox = super.nixopsvbox.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/nix-community/nixops-vbox.git"; + rev = "2729672865ebe2aa973c062a3fbddda8c1359da0"; + sha256 = "07bmrbg3g2prnba2kwg1rg6rvmnx1vzc538y2q3g04s958hala56"; + }; + } + ); + + nixos-modules-contrib = super.nixos-modules-contrib.overridePythonAttrs ( + _: { + src = pkgs.fetchgit { + url = "https://github.com/nix-community/nixos-modules-contrib.git"; + rev = "81a1c2ef424dcf596a97b2e46a58ca73a1dd1ff8"; + sha256 = "0f6ra5r8i1jz8ymw6l3j68b676a1lv0466lv0xa6mi80k6v9457x"; + }; + } + ); + +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock new file mode 100644 index 000000000000..237683661a95 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/poetry.lock @@ -0,0 +1,837 @@ +[[package]] +name = "alabaster" +version = "0.7.12" +description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "apache-libcloud" +version = "3.3.1" +description = "A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see https://libcloud.apache.org" +category = "main" +optional = false +python-versions = ">=3.5.*, <4" + +[package.dependencies] +requests = ">=2.5.0" + +[[package]] +name = "babel" +version = "2.9.0" +description = "Internationalization utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pytz = ">=2015.7" + +[[package]] +name = "boto" +version = "2.49.0" +description = "Amazon Web Services Library" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "boto3" +version = "1.17.35" +description = "The AWS SDK for Python" +category = "main" +optional = false +python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.dependencies] +botocore = ">=1.20.35,<1.21.0" +jmespath = ">=0.7.1,<1.0.0" +s3transfer = ">=0.3.0,<0.4.0" + +[[package]] +name = "botocore" +version = "1.20.35" +description = "Low-level, data-driven core of boto 3." +category = "main" +optional = false +python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.dependencies] +jmespath = ">=0.7.1,<1.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = ">=1.25.4,<1.27" + +[package.extras] +crt = ["awscrt (==0.10.8)"] + +[[package]] +name = "certifi" +version = "2020.12.5" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "cffi" +version = "1.14.5" +description = "Foreign Function Interface for Python calling C code." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "chardet" +version = "4.0.0" +description = "Universal encoding detector for Python 2 and 3" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "cryptography" +version = "3.4.6" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.12" + +[package.extras] +docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] +docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"] +pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] +sdist = ["setuptools-rust (>=0.11.4)"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] + +[[package]] +name = "docutils" +version = "0.16" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "idna" +version = "2.10" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "imagesize" +version = "1.2.0" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "jinja2" +version = "2.11.3" +description = "A very fast and expressive template engine." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +MarkupSafe = ">=0.23" + +[package.extras] +i18n = ["Babel (>=0.8)"] + +[[package]] +name = "jmespath" +version = "0.10.0" +description = "JSON Matching Expressions" +category = "main" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "libvirt-python" +version = "6.10.0" +description = "The libvirt virtualization API python binding" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "markupsafe" +version = "1.1.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "dev" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" + +[[package]] +name = "nixops" +version = "2.0.0" +description = "NixOS cloud provisioning and deployment tool" +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +pluggy = "^0.13.1" +PrettyTable = "^0.7.2" +typeguard = "^2.7.1" +typing-extensions = "^3.7.4" + +[package.source] +type = "git" +url = "https://github.com/NixOS/nixops.git" +reference = "master" +resolved_reference = "45256745cef246dabe1ae8a7d109988f190cd7ef" + +[[package]] +name = "nixops-aws" +version = "1.0" +description = "NixOps AWS plugin" +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +boto = "^2.49.0" +boto3 = "^1.13.7" +nixops = "rev master" +nixos-modules-contrib = "rev master" +typing-extensions = "^3.7.4" + +[package.source] +type = "git" +url = "https://github.com/NixOS/nixops-aws.git" +reference = "master" +resolved_reference = "3f66ee06f689021cd4c985b9b49697bdda64d961" + +[[package]] +name = "nixops-encrypted-links" +version = "1.0" +description = "Encrypted links support for NixOps" +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +nixops = "branch master" + +[package.source] +type = "git" +url = "https://github.com/nix-community/nixops-encrypted-links.git" +reference = "master" +resolved_reference = "e2f196fce15fcfb00d18c055e1ac53aec33b8fb1" + +[[package]] +name = "nixops-gcp" +version = "1.0" +description = "NixOps backend for Google Cloud Platform" +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +apache-libcloud = "^3.2.0" +cryptography = "^3.1.1" +nixops = "branch master" +nixos-modules-contrib = "branch master" + +[package.source] +type = "git" +url = "https://github.com/nix-community/nixops-gce.git" +reference = "master" +resolved_reference = "fed6aadace9a9e914425589c065bb969d53f2309" + +[[package]] +name = "nixops-virtd" +version = "1.0" +description = "NixOps plugin for virtd" +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +libvirt-python = "^6.1" +nixops = "branch master" + +[package.source] +type = "git" +url = "https://github.com/nix-community/nixops-libvirtd.git" +reference = "master" +resolved_reference = "af6cf5b2ced57b7b6d36b5df7dd27a14e0a5cfb6" + +[[package]] +name = "nixopsvbox" +version = "1.7" +description = "NixOps backend for VirtualBox" +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +nixops = "rev master" + +[package.source] +type = "git" +url = "https://github.com/nix-community/nixops-vbox.git" +reference = "master" +resolved_reference = "2729672865ebe2aa973c062a3fbddda8c1359da0" + +[[package]] +name = "nixos-modules-contrib" +version = "0.1.0" +description = "NixOS modules that don't quite belong in NixOS." +category = "main" +optional = false +python-versions = "^3.7" +develop = false + +[package.dependencies] +nixops = "rev master" + +[package.source] +type = "git" +url = "https://github.com/nix-community/nixos-modules-contrib.git" +reference = "master" +resolved_reference = "81a1c2ef424dcf596a97b2e46a58ca73a1dd1ff8" + +[[package]] +name = "packaging" +version = "20.9" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pyparsing = ">=2.0.2" + +[[package]] +name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +name = "prettytable" +version = "0.7.2" +description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pycparser" +version = "2.20" +description = "C parser in Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pygments" +version = "2.8.1" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "python-dateutil" +version = "2.8.1" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pytz" +version = "2021.1" +description = "World timezone definitions, modern and historical" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "requests" +version = "2.25.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +certifi = ">=2017.4.17" +chardet = ">=3.0.2,<5" +idna = ">=2.5,<3" +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] + +[[package]] +name = "s3transfer" +version = "0.3.6" +description = "An Amazon S3 Transfer Manager" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +botocore = ">=1.12.36,<2.0a.0" + +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "snowballstemmer" +version = "2.1.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "sphinx" +version = "3.5.3" +description = "Python documentation generator" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.12" +imagesize = "*" +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = "*" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = "*" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"] +test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "1.0.3" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["pytest", "flake8", "mypy"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.4" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "typeguard" +version = "2.11.1" +description = "Run-time type checker for Python" +category = "main" +optional = false +python-versions = ">=3.5.3" + +[package.extras] +doc = ["sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["pytest", "typing-extensions", "mypy"] + +[[package]] +name = "typing-extensions" +version = "3.7.4.3" +description = "Backported and Experimental Type Hints for Python 3.5+" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "urllib3" +version = "1.26.4" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotlipy (>=0.6.0)"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.8" +content-hash = "bd064837654a0d4a4691b3df01338b92c95a449ff400a9cd49fee843ab13ee92" + +[metadata.files] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] +apache-libcloud = [ + {file = "apache-libcloud-3.3.1.tar.gz", hash = "sha256:d7450453eaf5904eb4fb4f74cf9f37dc83721a719bce34f5abb336b1a1ab974d"}, + {file = "apache_libcloud-3.3.1-py2.py3-none-any.whl", hash = "sha256:c3722c4dd58b0ee4beaf4e615e0ba82505d9a915e55319dc84383687166a3eed"}, +] +babel = [ + {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"}, + {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"}, +] +boto = [ + {file = "boto-2.49.0-py2.py3-none-any.whl", hash = "sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8"}, + {file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"}, +] +boto3 = [ + {file = "boto3-1.17.35-py2.py3-none-any.whl", hash = "sha256:1e6e06b2f1eee5a76acdde1e7b4f57c93c1bf2905341207d74f2a140ce060cd8"}, + {file = "boto3-1.17.35.tar.gz", hash = "sha256:40e84a5f7888924db74a2710dbe48d066b51fe1f5549efaffe90e6efe813f37b"}, +] +botocore = [ + {file = "botocore-1.20.35-py2.py3-none-any.whl", hash = "sha256:e34bbb7d7de154c2ff2a73ae0691c601a69c5bda887374c8a6a23072380b07a4"}, + {file = "botocore-1.20.35.tar.gz", hash = "sha256:9119ffb231145ffadd55391c9356dcdb18e3de65c3a7c82844634e949f0ca5a0"}, +] +certifi = [ + {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, + {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, +] +cffi = [ + {file = "cffi-1.14.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:bb89f306e5da99f4d922728ddcd6f7fcebb3241fc40edebcb7284d7514741991"}, + {file = "cffi-1.14.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:34eff4b97f3d982fb93e2831e6750127d1355a923ebaeeb565407b3d2f8d41a1"}, + {file = "cffi-1.14.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99cd03ae7988a93dd00bcd9d0b75e1f6c426063d6f03d2f90b89e29b25b82dfa"}, + {file = "cffi-1.14.5-cp27-cp27m-win32.whl", hash = "sha256:65fa59693c62cf06e45ddbb822165394a288edce9e276647f0046e1ec26920f3"}, + {file = "cffi-1.14.5-cp27-cp27m-win_amd64.whl", hash = "sha256:51182f8927c5af975fece87b1b369f722c570fe169f9880764b1ee3bca8347b5"}, + {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:43e0b9d9e2c9e5d152946b9c5fe062c151614b262fda2e7b201204de0b99e482"}, + {file = "cffi-1.14.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:cbde590d4faaa07c72bf979734738f328d239913ba3e043b1e98fe9a39f8b2b6"}, + {file = "cffi-1.14.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:5de7970188bb46b7bf9858eb6890aad302577a5f6f75091fd7cdd3ef13ef3045"}, + {file = "cffi-1.14.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a465da611f6fa124963b91bf432d960a555563efe4ed1cc403ba5077b15370aa"}, + {file = "cffi-1.14.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:d42b11d692e11b6634f7613ad8df5d6d5f8875f5d48939520d351007b3c13406"}, + {file = "cffi-1.14.5-cp35-cp35m-win32.whl", hash = "sha256:72d8d3ef52c208ee1c7b2e341f7d71c6fd3157138abf1a95166e6165dd5d4369"}, + {file = "cffi-1.14.5-cp35-cp35m-win_amd64.whl", hash = "sha256:29314480e958fd8aab22e4a58b355b629c59bf5f2ac2492b61e3dc06d8c7a315"}, + {file = "cffi-1.14.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:3d3dd4c9e559eb172ecf00a2a7517e97d1e96de2a5e610bd9b68cea3925b4892"}, + {file = "cffi-1.14.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:48e1c69bbacfc3d932221851b39d49e81567a4d4aac3b21258d9c24578280058"}, + {file = "cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:69e395c24fc60aad6bb4fa7e583698ea6cc684648e1ffb7fe85e3c1ca131a7d5"}, + {file = "cffi-1.14.5-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:9e93e79c2551ff263400e1e4be085a1210e12073a31c2011dbbda14bda0c6132"}, + {file = "cffi-1.14.5-cp36-cp36m-win32.whl", hash = "sha256:58e3f59d583d413809d60779492342801d6e82fefb89c86a38e040c16883be53"}, + {file = "cffi-1.14.5-cp36-cp36m-win_amd64.whl", hash = "sha256:005a36f41773e148deac64b08f233873a4d0c18b053d37da83f6af4d9087b813"}, + {file = "cffi-1.14.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2894f2df484ff56d717bead0a5c2abb6b9d2bf26d6960c4604d5c48bbc30ee73"}, + {file = "cffi-1.14.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0857f0ae312d855239a55c81ef453ee8fd24136eaba8e87a2eceba644c0d4c06"}, + {file = "cffi-1.14.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:cd2868886d547469123fadc46eac7ea5253ea7fcb139f12e1dfc2bbd406427d1"}, + {file = "cffi-1.14.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:35f27e6eb43380fa080dccf676dece30bef72e4a67617ffda586641cd4508d49"}, + {file = "cffi-1.14.5-cp37-cp37m-win32.whl", hash = "sha256:9ff227395193126d82e60319a673a037d5de84633f11279e336f9c0f189ecc62"}, + {file = "cffi-1.14.5-cp37-cp37m-win_amd64.whl", hash = "sha256:9cf8022fb8d07a97c178b02327b284521c7708d7c71a9c9c355c178ac4bbd3d4"}, + {file = "cffi-1.14.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8b198cec6c72df5289c05b05b8b0969819783f9418e0409865dac47288d2a053"}, + {file = "cffi-1.14.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:ad17025d226ee5beec591b52800c11680fca3df50b8b29fe51d882576e039ee0"}, + {file = "cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c97d7350133666fbb5cf4abdc1178c812cb205dc6f41d174a7b0f18fb93337e"}, + {file = "cffi-1.14.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8ae6299f6c68de06f136f1f9e69458eae58f1dacf10af5c17353eae03aa0d827"}, + {file = "cffi-1.14.5-cp38-cp38-win32.whl", hash = "sha256:b85eb46a81787c50650f2392b9b4ef23e1f126313b9e0e9013b35c15e4288e2e"}, + {file = "cffi-1.14.5-cp38-cp38-win_amd64.whl", hash = "sha256:1f436816fc868b098b0d63b8920de7d208c90a67212546d02f84fe78a9c26396"}, + {file = "cffi-1.14.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1071534bbbf8cbb31b498d5d9db0f274f2f7a865adca4ae429e147ba40f73dea"}, + {file = "cffi-1.14.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9de2e279153a443c656f2defd67769e6d1e4163952b3c622dcea5b08a6405322"}, + {file = "cffi-1.14.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:6e4714cc64f474e4d6e37cfff31a814b509a35cb17de4fb1999907575684479c"}, + {file = "cffi-1.14.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:158d0d15119b4b7ff6b926536763dc0714313aa59e320ddf787502c70c4d4bee"}, + {file = "cffi-1.14.5-cp39-cp39-win32.whl", hash = "sha256:afb29c1ba2e5a3736f1c301d9d0abe3ec8b86957d04ddfa9d7a6a42b9367e396"}, + {file = "cffi-1.14.5-cp39-cp39-win_amd64.whl", hash = "sha256:f2d45f97ab6bb54753eab54fffe75aaf3de4ff2341c9daee1987ee1837636f1d"}, + {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"}, +] +chardet = [ + {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, + {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, +] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +cryptography = [ + {file = "cryptography-3.4.6-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:57ad77d32917bc55299b16d3b996ffa42a1c73c6cfa829b14043c561288d2799"}, + {file = "cryptography-3.4.6-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:93cfe5b7ff006de13e1e89830810ecbd014791b042cbe5eec253be11ac2b28f3"}, + {file = "cryptography-3.4.6-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:5ecf2bcb34d17415e89b546dbb44e73080f747e504273e4d4987630493cded1b"}, + {file = "cryptography-3.4.6-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:fec7fb46b10da10d9e1d078d1ff8ed9e05ae14f431fdbd11145edd0550b9a964"}, + {file = "cryptography-3.4.6-cp36-abi3-win32.whl", hash = "sha256:df186fcbf86dc1ce56305becb8434e4b6b7504bc724b71ad7a3239e0c9d14ef2"}, + {file = "cryptography-3.4.6-cp36-abi3-win_amd64.whl", hash = "sha256:66b57a9ca4b3221d51b237094b0303843b914b7d5afd4349970bb26518e350b0"}, + {file = "cryptography-3.4.6.tar.gz", hash = "sha256:2d32223e5b0ee02943f32b19245b61a62db83a882f0e76cc564e1cec60d48f87"}, +] +docutils = [ + {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, + {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, +] +idna = [ + {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, + {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, +] +imagesize = [ + {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, + {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, +] +jinja2 = [ + {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, + {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, +] +jmespath = [ + {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, + {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, +] +libvirt-python = [ + {file = "libvirt-python-6.10.0.tar.gz", hash = "sha256:47a8e90d9f49bc0296d2817f6009e18dbb69844ce10b81c2a2672bccd6f49fd5"}, +] +markupsafe = [ + {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, + {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, + {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"}, + {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"}, + {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, +] +nixops = [] +nixops-aws = [] +nixops-encrypted-links = [] +nixops-gcp = [] +nixops-virtd = [] +nixopsvbox = [] +nixos-modules-contrib = [] +packaging = [ + {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, + {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, +] +pluggy = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] +prettytable = [ + {file = "prettytable-0.7.2.tar.bz2", hash = "sha256:853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36"}, + {file = "prettytable-0.7.2.tar.gz", hash = "sha256:2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9"}, + {file = "prettytable-0.7.2.zip", hash = "sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"}, +] +pycparser = [ + {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, + {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, +] +pygments = [ + {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"}, + {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"}, +] +pyparsing = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, + {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, +] +pytz = [ + {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"}, + {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"}, +] +requests = [ + {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, + {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, +] +s3transfer = [ + {file = "s3transfer-0.3.6-py2.py3-none-any.whl", hash = "sha256:5d48b1fd2232141a9d5fb279709117aaba506cacea7f86f11bc392f06bfa8fc2"}, + {file = "s3transfer-0.3.6.tar.gz", hash = "sha256:c5dadf598762899d8cfaecf68eba649cd25b0ce93b6c954b156aaa3eed160547"}, +] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] +snowballstemmer = [ + {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"}, + {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"}, +] +sphinx = [ + {file = "Sphinx-3.5.3-py3-none-any.whl", hash = "sha256:3f01732296465648da43dec8fb40dc451ba79eb3e2cc5c6d79005fd98197107d"}, + {file = "Sphinx-3.5.3.tar.gz", hash = "sha256:ce9c228456131bab09a3d7d10ae58474de562a6f79abb3dc811ae401cf8c1abc"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, + {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, + {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, +] +typeguard = [ + {file = "typeguard-2.11.1-py3-none-any.whl", hash = "sha256:c62706201ec6c14962162fa67d70bd2762753247533d70ff2442e5ac08f94fa2"}, + {file = "typeguard-2.11.1.tar.gz", hash = "sha256:33243c1cbfcb9736a06c6db22dd08876b5f297e6344aa272a2862c0f8e669f64"}, +] +typing-extensions = [ + {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, + {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, + {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, +] +urllib3 = [ + {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"}, + {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"}, +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml b/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml new file mode 100644 index 000000000000..09ffb54fa2bb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/pyproject.toml @@ -0,0 +1,21 @@ +[tool.poetry] +name = "nixopsenv" +version = "2.0.0" +description = "NixOps 2.0" +authors = ["Adam Hoese <adam.hose@tweag.io>"] + +[tool.poetry.dependencies] +python = "^3.8" +nixops = {git = "https://github.com/NixOS/nixops.git"} +nixops-aws = {git = "https://github.com/NixOS/nixops-aws.git"} +nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"} +nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"} +nixops-encrypted-links = {git = "https://github.com/nix-community/nixops-encrypted-links.git"} +nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"} + +[tool.poetry.dev-dependencies] +sphinx = "^3.1.2" + +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api" diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix new file mode 100644 index 000000000000..0139cb2c8125 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix @@ -0,0 +1,10 @@ +{ pkgs ? import <nixpkgs> { } }: + +pkgs.mkShell { + packages = [ + pkgs.poetry2nix.cli + pkgs.pkg-config + pkgs.libvirt + pkgs.poetry + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/update b/nixpkgs/pkgs/applications/networking/cluster/nixops/update new file mode 100755 index 000000000000..1d1fd93fdbea --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/update @@ -0,0 +1,11 @@ +#!/usr/bin/env nix-shell +#! nix-shell -I nixpkgs=../../../../../. -i bash +set -eux + +rm -f ./poetry.lock ./poetry-git-overlay.nix + +poetry lock + +# builtins.fetchGit is disabled in restricted eval +# Pin fixed-output derivations from lock file +poetry2nix lock diff --git a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix new file mode 100644 index 000000000000..e53a9c39ea7e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub, systemd }: + +buildGoModule rec { + pname = "node-problem-detector"; + version = "0.8.7"; + + src = fetchFromGitHub { + owner = "kubernetes"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-GyWvwgLtE8N+HLmGKUOjv5HXl2sdnecjh5y6VCOs+/0="; + }; + + vendorSha256 = null; + + doCheck = false; + + # Optionally, a log counter binary can be created to parse journald logs. + # The binary is dynamically linked against systemd libraries, making it a + # Linux-only feature. See 'ENABLE_JOURNALD' upstream: + # https://github.com/kubernetes/node-problem-detector/blob/master/Makefile + subPackages = [ "cmd/nodeproblemdetector" ] ++ + lib.optionals stdenv.isLinux [ "cmd/logcounter" ]; + + preBuild = '' + export CGO_ENABLED=${if stdenv.isLinux then "1" else "0"} + ''; + + buildInputs = lib.optionals stdenv.isLinux [ systemd ]; + + buildFlags = "-mod vendor" + + lib.optionalString stdenv.isLinux " -tags journald"; + + buildFlagsArray = [ + "-ldflags=" + "-X k8s.io/${pname}/pkg/version.version=v${version}" + ]; + + meta = with lib; { + description = "Various problem detectors running on the Kubernetes nodes"; + homepage = "https://github.com/kubernetes/node-problem-detector"; + changelog = "https://github.com/kubernetes/node-problem-detector/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ lbpdt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix new file mode 100644 index 000000000000..cfa8d6fc674b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "nomad-driver-podman"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + rev = "v${version}"; + sha256 = "1a2alapqm7wnkjm9cg0gvi63pkaila9lhsa5razv0vprhg1k84gy"; + }; + + vendorSha256 = "1zs5y0zfi8dd9w371hpmah4iwxahgvaf70biqqdw3c9yp6yw2rwq"; + + subPackages = [ "." ]; + + # some tests require a running podman service + doCheck = false; + + meta = with lib; { + homepage = "https://www.github.com/hashicorp/nomad-driver-podman"; + description = "Podman task driver for Nomad"; + platforms = platforms.unix; + license = licenses.mpl20; + maintainers = with maintainers; [ cpcloud ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix new file mode 100644 index 000000000000..cf4a9cde526d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix @@ -0,0 +1,11 @@ +{ callPackage +, buildGoPackage +, nvidia_x11 +, nvidiaGpuSupport +}: + +callPackage ./generic.nix { + inherit buildGoPackage nvidia_x11 nvidiaGpuSupport; + version = "0.12.12"; + sha256 = "0hz5fsqv8jh22zhs0r1yk0c4qf4sf11hmqg4db91kp2xrq72a0qg"; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix new file mode 100644 index 000000000000..ac6938e4ddc0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix @@ -0,0 +1,11 @@ +{ callPackage +, buildGoPackage +, nvidia_x11 +, nvidiaGpuSupport +}: + +callPackage ./generic.nix { + inherit buildGoPackage nvidia_x11 nvidiaGpuSupport; + version = "1.0.8"; + sha256 = "1kjwa9lnxh5zfzijqgkp94wslkzn6kspwi42kf46vrn0qkiz39f2"; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix new file mode 100644 index 000000000000..cfc38c2f59ea --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.1.nix @@ -0,0 +1,11 @@ +{ callPackage +, buildGoPackage +, nvidia_x11 +, nvidiaGpuSupport +}: + +callPackage ./generic.nix { + inherit buildGoPackage nvidia_x11 nvidiaGpuSupport; + version = "1.1.2"; + sha256 = "08ynfr2lqzv66ymj37qbc72lf2iq41kf94n76pdvynymk4dq98nq"; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix new file mode 100644 index 000000000000..dc22ab41d8b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix @@ -0,0 +1,58 @@ +{ lib +, buildGoPackage +, fetchFromGitHub +, version +, sha256 +, nvidiaGpuSupport +, patchelf +, nvidia_x11 +}: + +buildGoPackage rec { + pname = "nomad"; + inherit version; + rev = "v${version}"; + + goPackagePath = "github.com/hashicorp/nomad"; + subPackages = [ "." ]; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + inherit rev sha256; + }; + + nativeBuildInputs = lib.optionals nvidiaGpuSupport [ + patchelf + ]; + + # ui: + # Nomad release commits include the compiled version of the UI, but the file + # is only included if we build with the ui tag. + preBuild = + let + tags = [ "ui" ] ++ lib.optional (!nvidiaGpuSupport) "nonvidia"; + tagsString = lib.concatStringsSep " " tags; + in + '' + export buildFlagsArray=( + -tags="${tagsString}" + ) + ''; + + # The dependency on NVML isn't explicit. We have to make it so otherwise the + # binary will not know where to look for the relevant symbols. + postFixup = lib.optionalString nvidiaGpuSupport '' + for bin in $out/bin/*; do + patchelf --add-needed "${nvidia_x11}/lib/libnvidia-ml.so" "$bin" + done + ''; + + meta = with lib; { + homepage = "https://www.nomadproject.io/"; + description = "A Distributed, Highly Available, Datacenter-Aware Scheduler"; + platforms = platforms.unix; + license = licenses.mpl20; + maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix new file mode 100644 index 000000000000..dcdf134b26a9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix @@ -0,0 +1,66 @@ +{ lib, stdenv, fetchzip }: + +stdenv.mkDerivation rec { + pname = "octant"; + version = "0.21.0"; + + src = + let + inherit (stdenv.hostPlatform) system; + suffix = { + x86_64-linux = "Linux-64bit"; + aarch64-linux = "Linux-arm64"; + x86_64-darwin = "macOS-64bit"; + aarch64-darwin = "macOS-arm64"; + }.${system} or (throw "Unsupported system: ${system}"); + fetchsrc = version: sha256: fetchzip { + url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/octant_${version}_${suffix}.tar.gz"; + sha256 = sha256.${system}; + }; + in + fetchsrc version { + x86_64-linux = "sha256-Ben2wAquHADWBv1MEfPWxs96pLz1bK2F6bLoYVTSkng="; + aarch64-linux = "sha256-1kK0Gu4cQYk+QDJJJiiDan4SnP3Xjr8nLOBtv26UDV4="; + x86_64-darwin = "sha256-gOkHpUTWKrikKYZmkfgck3Lf3g5Pakcn0i2A9Hd07UE="; + aarch64-darwin = "sha256-Xpl8odVXw4WzF7CEZ+Bbxa6oQDBv9VMzHCNOjIcFGzE="; + }; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + install -D octant $out/bin/octant + runHook postInstall + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/octant --help + $out/bin/octant version | grep "${version}" + runHook postInstallCheck + ''; + + dontPatchELF = true; + dontPatchShebangs = true; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + homepage = "https://octant.dev/"; + changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md"; + description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters"; + longDescription = '' + Octant is a tool for developers to understand how applications run on a + Kubernetes cluster. + It aims to be part of the developer's toolkit for gaining insight and + approaching complexity found in Kubernetes. Octant offers a combination of + introspective tooling, cluster navigation, and object management along + with a plugin system to further extend its capabilities. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ jk ]; + platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix new file mode 100644 index 000000000000..4095a7907ebf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/octant/desktop.nix @@ -0,0 +1,78 @@ +{ lib, stdenv, appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, undmg }: + +let + pname = "octant-desktop"; + version = "0.21.0"; + name = "${pname}-${version}"; + + inherit (stdenv.hostPlatform) system; + + suffix = { + x86_64-linux = "AppImage"; + x86_64-darwin = "dmg"; + }.${system} or (throw "Unsupported system: ${system}"); + + src = fetchurl { + url = "https://github.com/vmware-tanzu/octant/releases/download/v${version}/Octant-${version}.${suffix}"; + sha256 = { + x86_64-linux = "sha256-Woridi8uGsxvccdeaDzVLs+2YrRKUnm3WbX5LhorM1Y="; + x86_64-darwin = "sha256-NF3bm8WFEs4kgrUp+7qCbj6Z6pUMRUp7h4nhJQDJnoY="; + }.${system}; + }; + + linux = appimageTools.wrapType2 { + inherit name src passthru meta; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = + let appimageContents = appimageTools.extractType2 { inherit name src; }; in + '' + mv $out/bin/{${name},${pname}} + install -Dm444 ${appimageContents}/octant.desktop -t $out/share/applications + substituteInPlace $out/share/applications/octant.desktop \ + --replace 'Exec=AppRun --no-sandbox' 'Exec=${pname}' + install -m 444 -D ${appimageContents}/octant.png \ + $out/share/icons/hicolor/512x512/apps/octant.png + ''; + }; + + darwin = stdenv.mkDerivation { + inherit name src passthru meta; + + nativeBuildInputs = [ undmg ]; + sourceRoot = "Octant.app"; + installPhase = '' + mkdir -p $out/Applications/Octant.app + cp -R . $out/Applications/Octant.app + ''; + }; + + passthru = { updateScript = ./update-desktop.sh; }; + + meta = with lib; { + homepage = "https://octant.dev/"; + changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md"; + description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters"; + longDescription = '' + Octant is a tool for developers to understand how applications run on a + Kubernetes cluster. + It aims to be part of the developer's toolkit for gaining insight and + approaching complexity found in Kubernetes. Octant offers a combination of + introspective tooling, cluster navigation, and object management along + with a plugin system to further extend its capabilities. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ jk ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; + +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix new file mode 100644 index 000000000000..5a4546b8cd8c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "starboard-octant-plugin"; + version = "0.10.3"; + + src = fetchFromGitHub { + owner = "aquasecurity"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-9vl068ZTw6Czf+cWQ0k1lU0pqh7P0YZgLguHkk3M918="; + }; + + vendorSha256 = "sha256-HOvZPDVKZEoL91yyaJRuKThHirY77xlKOtLKARthxn8="; + + preBuild = '' + buildFlagsArray+=("-ldflags" "-s -w") + ''; + + meta = with lib; { + homepage = "https://github.com/aquasecurity/starboard-octant-plugin"; + changelog = "https://github.com/aquasecurity/starboard-octant-plugin/releases/tag/v${version}"; + description = "Octant plugin for viewing Starboard security information"; + longDescription = '' + This is an Octant plugin for Starboard which provides visibility into vulnerability assessment reports for + Kubernetes workloads stored as custom security resources. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ jk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/update-desktop.sh b/nixpkgs/pkgs/applications/networking/cluster/octant/update-desktop.sh new file mode 100755 index 000000000000..4450834b4b70 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/octant/update-desktop.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused gawk nix-prefetch + +set -euo pipefail + +ROOT="$(dirname "$(readlink -f "$0")")" +NIX_DRV="$ROOT/desktop.nix" +if [ ! -f "$NIX_DRV" ]; then + echo "ERROR: cannot find desktop.nix in $ROOT" + exit 1 +fi + +fetch_arch() { + VER="$1"; SUFFIX="$2" + URL="https://github.com/vmware-tanzu/octant/releases/download/v${VER}/Octant-${VER}.${SUFFIX}" + nix-prefetch "{ stdenv, fetchurl }: +stdenv.mkDerivation rec { + pname = \"octant-desktop\"; version = \"${VER}\"; + src = fetchurl { url = \"$URL\"; }; +} +" +} + +replace_sha() { + sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV" +} + +OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//') + +OCTANT_DESKTOP_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "AppImage") +OCTANT_DESKTOP_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "dmg") + +sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV" + +replace_sha "x86_64-linux" "$OCTANT_DESKTOP_LINUX_X64_SHA256" +replace_sha "x86_64-darwin" "$OCTANT_DESKTOP_DARWIN_X64_SHA256" diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh b/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh new file mode 100755 index 000000000000..3e2b56b7a619 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused gawk nix-prefetch + +set -euo pipefail + +ROOT="$(dirname "$(readlink -f "$0")")" +NIX_DRV="$ROOT/default.nix" +if [ ! -f "$NIX_DRV" ]; then + echo "ERROR: cannot find default.nix in $ROOT" + exit 1 +fi + +fetch_arch() { + VER="$1"; ARCH="$2" + URL="https://github.com/vmware-tanzu/octant/releases/download/v${VER}/octant_${VER}_${ARCH}.tar.gz" + nix-prefetch "{ stdenv, fetchzip }: +stdenv.mkDerivation rec { + pname = \"octant\"; version = \"${VER}\"; + src = fetchzip { url = \"$URL\"; }; +} +" +} + +replace_sha() { + sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV" +} + +OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//') + +OCTANT_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-64bit") +OCTANT_LINUX_AARCH64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-arm64") +OCTANT_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "macOS-64bit") +OCTANT_DARWIN_AARCH64_SHA256=$(fetch_arch "$OCTANT_VER" "macOS-arm64") + +sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV" + +replace_sha "x86_64-linux" "$OCTANT_LINUX_X64_SHA256" +replace_sha "aarch64-linux" "$OCTANT_LINUX_AARCH64_SHA256" +replace_sha "x86_64-darwin" "$OCTANT_DARWIN_X64_SHA256" +replace_sha "aarch64-darwin" "$OCTANT_DARWIN_AARCH64_SHA256" diff --git a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix new file mode 100644 index 000000000000..a1d4b1468376 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix @@ -0,0 +1,77 @@ +{ lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux +, coreutils, libkrb5, ncurses, clang, installShellFiles +, components ? [ + "cmd/oc" + "cmd/openshift" + ] +}: + +with lib; + +let + version = "4.1.0"; + ver = lib.elemAt (lib.splitVersion version); + versionMajor = ver 0; + versionMinor = ver 1; + versionPatch = ver 2; + gitCommit = "b4261e0"; + # version is in vendor/k8s.io/kubernetes/pkg/version/base.go + k8sversion = "v1.11.1"; + k8sgitcommit = "b1b2997"; + k8sgitMajor = "0"; + k8sgitMinor = "1"; +in buildGoPackage rec { + pname = "openshift-origin"; + inherit version; + + src = fetchFromGitHub { + owner = "openshift"; + repo = "origin"; + rev = "v${version}"; + sha256 = "16bc6ljm418kxz92gz8ldm82491mvlqamrvigyr6ff72rf7ml7ba"; + }; + + goPackagePath = "github.com/openshift/origin"; + + buildInputs = [ libkrb5 ncurses ]; + + nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ]; + + patchPhase = '' + patchShebangs ./hack + ''; + + buildPhase = '' + cd go/src/${goPackagePath} + # Openshift build require this variables to be set + # unless there is a .git folder which is not the case with fetchFromGitHub + echo "OS_GIT_VERSION=v${version}" >> os-version-defs + echo "OS_GIT_TREE_STATE=clean" >> os-version-defs + echo "OS_GIT_MAJOR=${versionMajor}" >> os-version-defs + echo "OS_GIT_MINOR=${versionMinor}" >> os-version-defs + echo "OS_GIT_PATCH=${versionPatch}" >> os-version-defs + echo "OS_GIT_COMMIT=${gitCommit}" >> os-version-defs + echo "KUBE_GIT_VERSION=${k8sversion}" >> os-version-defs + echo "KUBE_GIT_COMMIT=${k8sgitcommit}" >> os-version-defs + echo "KUBE_GIT_MAJOR=${k8sgitMajor}" >> os-version-defs + echo "KUBE_GIT_MINOR=${k8sgitMinor}" >> os-version-defs + export OS_VERSION_FILE="os-version-defs" + export CC=clang + make all WHAT='${concatStringsSep " " components}' + ''; + + installPhase = '' + mkdir -p $out/bin + cp -a "_output/local/bin/$(go env GOOS)/$(go env GOARCH)/"* "$out/bin/" + installShellCompletion --bash contrib/completions/bash/* + installShellCompletion --zsh contrib/completions/zsh/* + ''; + + meta = with lib; { + description = "Build, deploy, and manage your applications with Docker and Kubernetes"; + license = licenses.asl20; + homepage = "http://www.openshift.org"; + maintainers = with maintainers; [offline bachp moretea]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix new file mode 100644 index 000000000000..65a4a1938430 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix @@ -0,0 +1,24 @@ +{ lib, fetchFromGitHub, buildGoPackage }: + +buildGoPackage rec { + pname = "pachyderm"; + version = "1.8.5"; + rev = "v${version}"; + + goPackagePath = "github.com/pachyderm/pachyderm"; + subPackages = [ "src/server/cmd/pachctl" ]; + + src = fetchFromGitHub { + inherit rev; + owner = "pachyderm"; + repo = "pachyderm"; + sha256 = "1b9x2xn0sxsjid15lnwr79lps8xzf24i7jfl0i48nabdigmi04wp"; + }; + + meta = with lib; { + description = "Containerized Data Analytics"; + homepage = "https://github.com/pachyderm/pachyderm"; + license = licenses.asl20; + maintainers = with maintainers; [offline]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix new file mode 100644 index 000000000000..ec36d5f52acb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "pgo-client"; + version = "4.7.0"; + + src = fetchFromGitHub { + owner = "CrunchyData"; + repo = "postgres-operator"; + rev = "v${version}"; + sha256 = "sha256-WuKLQWq/Zr/eDaUq/HbydHMdtlCWmjM858PLX7hYba4="; + }; + + vendorSha256 = "sha256-m8b6Lh6it67A6cppdBDX4X0u7Kde4GQz9wln/TrHVwI="; + + subPackages = [ "cmd/pgo" ]; + + meta = with lib; { + description = "A CLI client for Crunchy PostgreSQL Kubernetes Operator"; + homepage = "https://github.com/CrunchyData/postgres-operator"; + changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = [ maintainers.bryanasdev000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix new file mode 100644 index 000000000000..ded8a2ea4932 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchurl, makeWrapper, hadoop, jre, bash }: + +stdenv.mkDerivation rec { + + name = "pig-0.17.0"; + + src = fetchurl { + url = "mirror://apache/pig/${name}/${name}.tar.gz"; + sha256 = "1wwpg0w47f49rnivn2d26vrxgyfl9gpqx3vmzbl5lhx6x5l3fqbd"; + + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out + mv * $out + + # no need for the windows batch script + rm $out/bin/pig.cmd $out/bin/pig.py + + for n in $out/{bin,sbin}"/"*; do + wrapProgram $n \ + --prefix PATH : "${lib.makeBinPath [ jre bash ]}" \ + --set JAVA_HOME "${jre}" --set HADOOP_PREFIX "${hadoop}" + done + ''; + + meta = with lib; { + homepage = "https://pig.apache.org/"; + description = "High-level language for Apache Hadoop"; + license = licenses.asl20; + + longDescription = '' + Apache Pig is a platform for analyzing large data sets that consists of a + high-level language for expressing data analysis programs, coupled with + infrastructure for evaluating these programs. The salient property of Pig + programs is that their structure is amenable to substantial parallelization, + which in turns enables them to handle very large data sets. + ''; + + platforms = platforms.linux; + maintainers = [ maintainers.skeidel ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix new file mode 100644 index 000000000000..67fde535f56a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix @@ -0,0 +1,33 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "popeye"; + version = "0.9.2"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "derailed"; + repo = "popeye"; + sha256 = "sha256-GSH9q0hnyuGiJAdbFWKbaaYoHKl4e0SNmBkOvpn5a6s="; + }; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/derailed/popeye/cmd.version=${version} + -X github.com/derailed/popeye/cmd.commit=${version} + ''; + + vendorSha256 = "sha256-pK04vGL9Izv1aK8UA+/3lSt/SjLyckjnfSCrOalRj3c="; + + doCheck = true; + + meta = with lib; { + description = "A Kubernetes cluster resource sanitizer"; + homepage = "https://github.com/derailed/popeye"; + changelog = "https://github.com/derailed/popeye/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = [ maintainers.bryanasdev000 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix new file mode 100644 index 000000000000..b1ea88a11a33 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix @@ -0,0 +1,68 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "prow-unstable"; + version = "2020-04-01"; + rev = "32e3b5ce7695fb622381421653db436cb57b47c5"; + + src = fetchFromGitHub { + inherit rev; + + owner = "kubernetes"; + repo = "test-infra"; + sha256 = "0mc3ynmbf3kidibdy8k3v3xjlvmxl8w7zm1z2m0skmhd0y4bpmk4"; + }; + + vendorSha256 = "16fdc5r28andm8my4fxj0f1yygx6j2mvn92i6xdfhbcra0lvr4ql"; + + doCheck = false; + + subPackages = [ + "prow/cmd/admission" + "prow/cmd/branchprotector" + "prow/cmd/checkconfig" + "prow/cmd/clonerefs" + "prow/cmd/cm2kc" + "prow/cmd/config-bootstrapper" + "prow/cmd/crier" + "prow/cmd/deck" + "prow/cmd/entrypoint" + "prow/cmd/exporter" + "prow/cmd/gcsupload" + "prow/cmd/gerrit" + "prow/cmd/hook" + "prow/cmd/horologium" + "prow/cmd/initupload" + "prow/cmd/jenkins-operator" + "prow/cmd/mkbuild-cluster" + "prow/cmd/mkpj" + "prow/cmd/mkpod" + "prow/cmd/peribolos" + "prow/cmd/phaino" + "prow/cmd/phony" + "prow/cmd/pipeline" + "prow/cmd/plank" + "prow/cmd/sidecar" + "prow/cmd/sinker" + "prow/cmd/status-reconciler" + "prow/cmd/sub" + "prow/cmd/tackle" + "prow/cmd/tide" + "prow/cmd/tot" + ]; + + meta = with lib; { + description = "A Kubernetes based CI/CD system"; + longDescription = '' + Prow is a Kubernetes based CI/CD system. Jobs can be triggered by various + types of events and report their status to many different services. In + addition to job execution, Prow provides GitHub automation in the form of + policy enforcement, chat-ops via /foo style commands, and automatic PR + merging. + ''; + homepage = "https://github.com/kubernetes/test-infra/tree/master/prow"; + license = licenses.asl20; + maintainers = with maintainers; [ kalbasit ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix new file mode 100644 index 000000000000..7bcd905c9997 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix @@ -0,0 +1,32 @@ +{ lib, go, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "qbec"; + version = "0.14.2"; + + src = fetchFromGitHub { + owner = "splunk"; + repo = "qbec"; + rev = "v${version}"; + sha256 = "sha256-F5xnW9069Xrl6isvmeYtfTZUZSiSq47HLs5/p3HCf6E="; + }; + + vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs="; + + doCheck = false; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/splunk/qbec/internal/commands.version=${version} + -X github.com/splunk/qbec/internal/commands.commit=${src.rev} + -X github.com/splunk/qbec/internal/commands.goVersion=${lib.getVersion go} + ''; + + meta = with lib; { + description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io"; + homepage = "https://github.com/splunk/qbec"; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix new file mode 100644 index 000000000000..8f4324f43435 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix @@ -0,0 +1,45 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +# SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags. +let rev = "f6e19140201d6bf2f1274bf6567087bc25154210"; +in +buildGoModule rec { + pname = "sonobuoy"; + version = "0.50.0"; # Do not forget to update `rev` above + + buildFlagsArray = + let t = "github.com/vmware-tanzu/sonobuoy"; + in '' + -ldflags= + -s -X ${t}/pkg/buildinfo.Version=v${version} + -X ${t}/pkg/buildinfo.GitSHA=${rev} + -X ${t}/pkg/buildDate=unknown + ''; + + src = fetchFromGitHub { + sha256 = "sha256-LhprsDlWZjNRE6pu7V9WBszy/+bNpn5KoRopIoWvdsg="; + rev = "v${version}"; + repo = "sonobuoy"; + owner = "vmware-tanzu"; + }; + + vendorSha256 = "sha256-0Vx74nz0djJB12UPybo2Z8KVpSyKHuKPFymh/Rlpv88="; + + subPackages = [ "." ]; + + meta = with lib; { + description = '' + Diagnostic tool that makes it easier to understand the + state of a Kubernetes cluster. + ''; + longDescription = '' + Sonobuoy is a diagnostic tool that makes it easier to understand the state of + a Kubernetes cluster by running a set of Kubernetes conformance tests in an + accessible and non-destructive manner. + ''; + + homepage = "https://sonobuoy.io"; + license = licenses.asl20; + maintainers = with maintainers; [ carlosdagos saschagrunert wilsonehusin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix new file mode 100644 index 000000000000..684e9f65a5bf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/default.nix @@ -0,0 +1,32 @@ +{ pkgs, fetchFromGitHub, nodejs, stdenv, lib, ... }: + +let + src = fetchFromGitHub { + owner = "dvallin"; + repo = "spacegun"; + rev = "v0.3.3"; + sha256 = "0cd9yzms44dj9ix8lrhbkby5zsyb8wambs24j6c3ibr67sggr6sq"; + }; + + nodePackages = import ./node-composition.nix { + inherit pkgs nodejs; + inherit (stdenv.hostPlatform) system; + }; +in +nodePackages.package.override { + inherit src; + nativeBuildInputs = [ pkgs.makeWrapper pkgs.nodePackages.node-gyp-build ]; + + postInstall = '' + # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems + patchShebangs --build "$out/lib/node_modules/spacegun/node_modules/" + # compile Typescript sources + npm run build + ''; + + meta = with lib; { + description = "Version controlled multi-cluster deployment manager for kubernetes"; + maintainers = with maintainers; [ ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh b/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh new file mode 100644 index 000000000000..bda3d1727c4f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/generate-dependencies.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +# Download package.json and package-lock.json from the v0.3.3 release +curl https://raw.githubusercontent.com/dvallin/spacegun/f88cfd1cf653995a301ef4db4a1e387ef3ca01a1/package.json -o package.json +curl https://raw.githubusercontent.com/dvallin/spacegun/f88cfd1cf653995a301ef4db4a1e387ef3ca01a1/package-lock.json -o package-lock.json + +node2nix \ + --nodejs-10 \ + --node-env ../../../../development/node-packages/node-env.nix \ + --development \ + --input package.json \ + --lock package-lock.json \ + --output node-packages.nix \ + --composition node-composition.nix + +rm -f package.json package-lock.json diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix new file mode 100644 index 000000000000..7cbb2328ae73 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{pkgs ? import <nixpkgs> { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}: + +let + nodeEnv = import ../../../../development/node-packages/node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix new file mode 100644 index 000000000000..9203d8f60c5e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spacegun/node-packages.nix @@ -0,0 +1,10907 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: + +let + sources = { + "@babel/code-frame-7.5.5" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz"; + sha512 = "27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw=="; + }; + }; + "@babel/core-7.6.2" = { + name = "_at_babel_slash_core"; + packageName = "@babel/core"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz"; + sha512 = "l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ=="; + }; + }; + "@babel/generator-7.6.2" = { + name = "_at_babel_slash_generator"; + packageName = "@babel/generator"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz"; + sha512 = "j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ=="; + }; + }; + "@babel/helper-function-name-7.1.0" = { + name = "_at_babel_slash_helper-function-name"; + packageName = "@babel/helper-function-name"; + version = "7.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz"; + sha512 = "A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw=="; + }; + }; + "@babel/helper-get-function-arity-7.0.0" = { + name = "_at_babel_slash_helper-get-function-arity"; + packageName = "@babel/helper-get-function-arity"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz"; + sha512 = "r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ=="; + }; + }; + "@babel/helper-plugin-utils-7.0.0" = { + name = "_at_babel_slash_helper-plugin-utils"; + packageName = "@babel/helper-plugin-utils"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz"; + sha512 = "CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA=="; + }; + }; + "@babel/helper-split-export-declaration-7.4.4" = { + name = "_at_babel_slash_helper-split-export-declaration"; + packageName = "@babel/helper-split-export-declaration"; + version = "7.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz"; + sha512 = "Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q=="; + }; + }; + "@babel/helpers-7.6.2" = { + name = "_at_babel_slash_helpers"; + packageName = "@babel/helpers"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz"; + sha512 = "3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA=="; + }; + }; + "@babel/highlight-7.5.0" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz"; + sha512 = "7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ=="; + }; + }; + "@babel/parser-7.6.2" = { + name = "_at_babel_slash_parser"; + packageName = "@babel/parser"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz"; + sha512 = "mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg=="; + }; + }; + "@babel/plugin-syntax-object-rest-spread-7.2.0" = { + name = "_at_babel_slash_plugin-syntax-object-rest-spread"; + packageName = "@babel/plugin-syntax-object-rest-spread"; + version = "7.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz"; + sha512 = "t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA=="; + }; + }; + "@babel/template-7.6.0" = { + name = "_at_babel_slash_template"; + packageName = "@babel/template"; + version = "7.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz"; + sha512 = "5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ=="; + }; + }; + "@babel/traverse-7.6.2" = { + name = "_at_babel_slash_traverse"; + packageName = "@babel/traverse"; + version = "7.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz"; + sha512 = "8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ=="; + }; + }; + "@babel/types-7.6.1" = { + name = "_at_babel_slash_types"; + packageName = "@babel/types"; + version = "7.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz"; + sha512 = "X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g=="; + }; + }; + "@cnakazawa/watch-1.0.3" = { + name = "_at_cnakazawa_slash_watch"; + packageName = "@cnakazawa/watch"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz"; + sha512 = "r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA=="; + }; + }; + "@jest/console-24.9.0" = { + name = "_at_jest_slash_console"; + packageName = "@jest/console"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz"; + sha512 = "Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ=="; + }; + }; + "@jest/core-24.9.0" = { + name = "_at_jest_slash_core"; + packageName = "@jest/core"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz"; + sha512 = "Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A=="; + }; + }; + "@jest/environment-24.9.0" = { + name = "_at_jest_slash_environment"; + packageName = "@jest/environment"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz"; + sha512 = "5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ=="; + }; + }; + "@jest/fake-timers-24.9.0" = { + name = "_at_jest_slash_fake-timers"; + packageName = "@jest/fake-timers"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz"; + sha512 = "eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A=="; + }; + }; + "@jest/reporters-24.9.0" = { + name = "_at_jest_slash_reporters"; + packageName = "@jest/reporters"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz"; + sha512 = "mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw=="; + }; + }; + "@jest/source-map-24.9.0" = { + name = "_at_jest_slash_source-map"; + packageName = "@jest/source-map"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz"; + sha512 = "/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg=="; + }; + }; + "@jest/test-result-24.9.0" = { + name = "_at_jest_slash_test-result"; + packageName = "@jest/test-result"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz"; + sha512 = "XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA=="; + }; + }; + "@jest/test-sequencer-24.9.0" = { + name = "_at_jest_slash_test-sequencer"; + packageName = "@jest/test-sequencer"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz"; + sha512 = "6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A=="; + }; + }; + "@jest/transform-24.9.0" = { + name = "_at_jest_slash_transform"; + packageName = "@jest/transform"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz"; + sha512 = "TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ=="; + }; + }; + "@jest/types-24.9.0" = { + name = "_at_jest_slash_types"; + packageName = "@jest/types"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz"; + sha512 = "XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw=="; + }; + }; + "@kubernetes/client-node-0.10.1" = { + name = "_at_kubernetes_slash_client-node"; + packageName = "@kubernetes/client-node"; + version = "0.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-0.10.1.tgz"; + sha512 = "AOfrCPa5oqdk/7lzIVU+4yYPlphc8cGW+kbiJAS5+GTbUpo62f5jPbWSPv83jTjQwfhWucj3t+3VHxQGdNexsw=="; + }; + }; + "@types/accepts-1.3.5" = { + name = "_at_types_slash_accepts"; + packageName = "@types/accepts"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz"; + sha512 = "jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ=="; + }; + }; + "@types/axios-0.14.0" = { + name = "_at_types_slash_axios"; + packageName = "@types/axios"; + version = "0.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz"; + sha1 = "ec2300fbe7d7dddd7eb9d3abf87999964cafce46"; + }; + }; + "@types/babel-types-7.0.7" = { + name = "_at_types_slash_babel-types"; + packageName = "@types/babel-types"; + version = "7.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz"; + sha512 = "dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="; + }; + }; + "@types/babel__core-7.1.3" = { + name = "_at_types_slash_babel__core"; + packageName = "@types/babel__core"; + version = "7.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz"; + sha512 = "8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA=="; + }; + }; + "@types/babel__generator-7.6.0" = { + name = "_at_types_slash_babel__generator"; + packageName = "@types/babel__generator"; + version = "7.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz"; + sha512 = "c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw=="; + }; + }; + "@types/babel__template-7.0.2" = { + name = "_at_types_slash_babel__template"; + packageName = "@types/babel__template"; + version = "7.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz"; + sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg=="; + }; + }; + "@types/babel__traverse-7.0.7" = { + name = "_at_types_slash_babel__traverse"; + packageName = "@types/babel__traverse"; + version = "7.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz"; + sha512 = "CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw=="; + }; + }; + "@types/babylon-6.16.5" = { + name = "_at_types_slash_babylon"; + packageName = "@types/babylon"; + version = "6.16.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz"; + sha512 = "xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w=="; + }; + }; + "@types/body-parser-1.17.1" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz"; + sha512 = "RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w=="; + }; + }; + "@types/caseless-0.12.2" = { + name = "_at_types_slash_caseless"; + packageName = "@types/caseless"; + version = "0.12.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz"; + sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w=="; + }; + }; + "@types/command-line-args-5.0.0" = { + name = "_at_types_slash_command-line-args"; + packageName = "@types/command-line-args"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.0.0.tgz"; + sha512 = "4eOPXyn5DmP64MCMF8ePDvdlvlzt2a+F8ZaVjqmh2yFCpGjc1kI3kGnCFYX9SCsGTjQcWIyVZ86IHCEyjy/MNg=="; + }; + }; + "@types/connect-3.4.32" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.32"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz"; + sha512 = "4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg=="; + }; + }; + "@types/cookies-0.7.3" = { + name = "_at_types_slash_cookies"; + packageName = "@types/cookies"; + version = "0.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.3.tgz"; + sha512 = "NEkYn8pNsYZIxf3ZrjdPoeyueiPc0RbQClUpTwmdHkpmQQ8iDAlQYKpabuegHy7BJcqTteSTkhURMEs9ZxyEWg=="; + }; + }; + "@types/cron-1.7.1" = { + name = "_at_types_slash_cron"; + packageName = "@types/cron"; + version = "1.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cron/-/cron-1.7.1.tgz"; + sha512 = "48brwgU18DqA0mQX1As5OcJEo1yNjaXMM6Mk4r8K1dOzLJRQ37FE/kCivKx7ClKEHfhX2FdcxKzJ1B744a+V3A=="; + }; + }; + "@types/events-3.0.0" = { + name = "_at_types_slash_events"; + packageName = "@types/events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz"; + sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="; + }; + }; + "@types/express-4.17.1" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.1.tgz"; + sha512 = "VfH/XCP0QbQk5B5puLqTLEeFgR8lfCJHZJKkInZ9mkYd+u8byX0kztXEQxEk4wZXJs8HI+7km2ALXjn4YKcX9w=="; + }; + }; + "@types/express-serve-static-core-4.16.9" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.16.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.9.tgz"; + sha512 = "GqpaVWR0DM8FnRUJYKlWgyARoBUAVfRIeVDZQKOttLFp5SmhhF9YFIYeTPwMd/AXfxlP7xVO2dj1fGu0Q+krKQ=="; + }; + }; + "@types/form-data-2.5.0" = { + name = "_at_types_slash_form-data"; + packageName = "@types/form-data"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/form-data/-/form-data-2.5.0.tgz"; + sha512 = "23/wYiuckYYtFpL+4RPWiWmRQH2BjFuqCUi2+N3amB1a1Drv+i/byTrGvlLwRVLFNAZbwpbQ7JvTK+VCAPMbcg=="; + }; + }; + "@types/formidable-1.0.31" = { + name = "_at_types_slash_formidable"; + packageName = "@types/formidable"; + version = "1.0.31"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.31.tgz"; + sha512 = "dIhM5t8lRP0oWe2HF8MuPvdd1TpPTjhDMAqemcq6oIZQCBQTovhBAdTQ5L5veJB4pdQChadmHuxtB0YzqvfU3Q=="; + }; + }; + "@types/glob-7.1.1" = { + name = "_at_types_slash_glob"; + packageName = "@types/glob"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz"; + sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w=="; + }; + }; + "@types/http-assert-1.5.1" = { + name = "_at_types_slash_http-assert"; + packageName = "@types/http-assert"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz"; + sha512 = "PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ=="; + }; + }; + "@types/istanbul-lib-coverage-2.0.1" = { + name = "_at_types_slash_istanbul-lib-coverage"; + packageName = "@types/istanbul-lib-coverage"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz"; + sha512 = "hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg=="; + }; + }; + "@types/istanbul-lib-report-1.1.1" = { + name = "_at_types_slash_istanbul-lib-report"; + packageName = "@types/istanbul-lib-report"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz"; + sha512 = "3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg=="; + }; + }; + "@types/istanbul-reports-1.1.1" = { + name = "_at_types_slash_istanbul-reports"; + packageName = "@types/istanbul-reports"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz"; + sha512 = "UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA=="; + }; + }; + "@types/jest-24.0.15" = { + name = "_at_types_slash_jest"; + packageName = "@types/jest"; + version = "24.0.15"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/jest/-/jest-24.0.15.tgz"; + sha512 = "MU1HIvWUme74stAoc3mgAi+aMlgKOudgEvQDIm1v4RkrDudBh1T+NFp5sftpBAdXdx1J0PbdpJ+M2EsSOi1djA=="; + }; + }; + "@types/jest-diff-20.0.1" = { + name = "_at_types_slash_jest-diff"; + packageName = "@types/jest-diff"; + version = "20.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/jest-diff/-/jest-diff-20.0.1.tgz"; + sha512 = "yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA=="; + }; + }; + "@types/js-yaml-3.12.1" = { + name = "_at_types_slash_js-yaml"; + packageName = "@types/js-yaml"; + version = "3.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.1.tgz"; + sha512 = "SGGAhXLHDx+PK4YLNcNGa6goPf9XRWQNAUUbffkwVGGXIxmDKWyGGL4inzq2sPmExu431Ekb9aEMn9BkPqEYFA=="; + }; + }; + "@types/keygrip-1.0.1" = { + name = "_at_types_slash_keygrip"; + packageName = "@types/keygrip"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz"; + sha1 = "ff540462d2fb4d0a88441ceaf27d287b01c3d878"; + }; + }; + "@types/koa-2.0.48" = { + name = "_at_types_slash_koa"; + packageName = "@types/koa"; + version = "2.0.48"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa/-/koa-2.0.48.tgz"; + sha512 = "CiIUYhHlOFJhSCTmsFoFkV2t9ij1JwW26nt0W9XZoWTvmAw6zTE0+k3IAoGICtjzIfhZpZcO323NHmI1LGmdDw=="; + }; + }; + "@types/koa-compose-3.2.4" = { + name = "_at_types_slash_koa-compose"; + packageName = "@types/koa-compose"; + version = "3.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.4.tgz"; + sha512 = "ioou0rxkuWL+yBQYsHUQAzRTfVxAg8Y2VfMftU+Y3RA03/MzuFL0x/M2sXXj3PkfnENbHsjeHR1aMdezLYpTeA=="; + }; + }; + "@types/koa-router-7.0.41" = { + name = "_at_types_slash_koa-router"; + packageName = "@types/koa-router"; + version = "7.0.41"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-router/-/koa-router-7.0.41.tgz"; + sha512 = "WZwdCzMOvx2zA4MTinmrzqn66I87mE8S5lFgVY05/BVKULDi2Yup2Q2AOnw9vvaLME4IVJhWAeXpZjdZpKZDtg=="; + }; + }; + "@types/koa-send-4.1.2" = { + name = "_at_types_slash_koa-send"; + packageName = "@types/koa-send"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-send/-/koa-send-4.1.2.tgz"; + sha512 = "rfqKIv9bFds39Jxvsp8o3YJLnEQVPVriYA14AuO2OY65IHh/4UX4U/iMs5L0wATpcRmm1bbe0BNk23TRwx3VQQ=="; + }; + }; + "@types/koa-static-4.0.1" = { + name = "_at_types_slash_koa-static"; + packageName = "@types/koa-static"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-static/-/koa-static-4.0.1.tgz"; + sha512 = "SSpct5fEcAeRkBHa3RiwCIRfDHcD1cZRhwRF///ZfvRt8KhoqRrhK6wpDlYPk/vWHVFE9hPGqh68bhzsHkir4w=="; + }; + }; + "@types/koa-views-2.0.3" = { + name = "_at_types_slash_koa-views"; + packageName = "@types/koa-views"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/koa-views/-/koa-views-2.0.3.tgz"; + sha512 = "XLn//7qUUz2U9ZKXyHPwVIcQbZcW3phYTFXHGa1eW5BN88bi8n2fegvwJ+TokL2jRmRqBWwMB5p7Aab9iq1sZw=="; + }; + }; + "@types/lodash-4.14.140" = { + name = "_at_types_slash_lodash"; + packageName = "@types/lodash"; + version = "4.14.140"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.140.tgz"; + sha512 = "OU57uYCUUv9s8lgQTYuQlL6xkttWtz8VLCJSnt8ikla9+UXqMGJ8adCprSw7egJHSHwGvFpGhfpQDtHm/NQ3Cw=="; + }; + }; + "@types/lodash.clonedeep-4.5.6" = { + name = "_at_types_slash_lodash.clonedeep"; + packageName = "@types/lodash.clonedeep"; + version = "4.5.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz"; + sha512 = "cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA=="; + }; + }; + "@types/mime-2.0.1" = { + name = "_at_types_slash_mime"; + packageName = "@types/mime"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz"; + sha512 = "FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="; + }; + }; + "@types/minimatch-3.0.3" = { + name = "_at_types_slash_minimatch"; + packageName = "@types/minimatch"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz"; + sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="; + }; + }; + "@types/mkdirp-0.5.2" = { + name = "_at_types_slash_mkdirp"; + packageName = "@types/mkdirp"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz"; + sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg=="; + }; + }; + "@types/node-10.14.19" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "10.14.19"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-10.14.19.tgz"; + sha512 = "j6Sqt38ssdMKutXBUuAcmWF8QtHW1Fwz/mz4Y+Wd9mzpBiVFirjpNQf363hG5itkG+yGaD+oiLyb50HxJ36l9Q=="; + }; + }; + "@types/node-12.0.8" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "12.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-12.0.8.tgz"; + sha512 = "b8bbUOTwzIY3V5vDTY1fIJ+ePKDUBqt2hC2woVGotdQQhG/2Sh62HOKHrT7ab+VerXAcPyAiTEipPu/FsreUtg=="; + }; + }; + "@types/ora-3.2.0" = { + name = "_at_types_slash_ora"; + packageName = "@types/ora"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/ora/-/ora-3.2.0.tgz"; + sha512 = "jll99xUKpiFbIFZSQcxm4numfsLaOWBzWNaRk3PvTSE7BPqTzzOCFmS0mQ7m8qkTfmYhuYbehTGsxkvRLPC++w=="; + }; + }; + "@types/range-parser-1.2.3" = { + name = "_at_types_slash_range-parser"; + packageName = "@types/range-parser"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; + }; + }; + "@types/request-2.48.1" = { + name = "_at_types_slash_request"; + packageName = "@types/request"; + version = "2.48.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz"; + sha512 = "ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg=="; + }; + }; + "@types/serve-static-1.13.3" = { + name = "_at_types_slash_serve-static"; + packageName = "@types/serve-static"; + version = "1.13.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz"; + sha512 = "oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g=="; + }; + }; + "@types/stack-utils-1.0.1" = { + name = "_at_types_slash_stack-utils"; + packageName = "@types/stack-utils"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz"; + sha512 = "l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="; + }; + }; + "@types/tough-cookie-2.3.5" = { + name = "_at_types_slash_tough-cookie"; + packageName = "@types/tough-cookie"; + version = "2.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz"; + sha512 = "SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg=="; + }; + }; + "@types/underscore-1.9.3" = { + name = "_at_types_slash_underscore"; + packageName = "@types/underscore"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.3.tgz"; + sha512 = "SwbHKB2DPIDlvYqtK5O+0LFtZAyrUSw4c0q+HWwmH1Ve3KMQ0/5PlV3RX97+3dP7yMrnNQ8/bCWWvQpPl03Mug=="; + }; + }; + "@types/websocket-0.0.40" = { + name = "_at_types_slash_websocket"; + packageName = "@types/websocket"; + version = "0.0.40"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/websocket/-/websocket-0.0.40.tgz"; + sha512 = "ldteZwWIgl9cOy7FyvYn+39Ah4+PfpVE72eYKw75iy2L0zTbhbcwvzeJ5IOu6DQP93bjfXq0NGHY6FYtmYoqFQ=="; + }; + }; + "@types/ws-6.0.3" = { + name = "_at_types_slash_ws"; + packageName = "@types/ws"; + version = "6.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/ws/-/ws-6.0.3.tgz"; + sha512 = "yBTM0P05Tx9iXGq00BbJPo37ox68R5vaGTXivs6RGh/BQ6QP5zqZDGWdAO6JbRE/iR1l80xeGAwCQS2nMV9S/w=="; + }; + }; + "@types/yargs-13.0.3" = { + name = "_at_types_slash_yargs"; + packageName = "@types/yargs"; + version = "13.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz"; + sha512 = "K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ=="; + }; + }; + "@types/yargs-parser-13.1.0" = { + name = "_at_types_slash_yargs-parser"; + packageName = "@types/yargs-parser"; + version = "13.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz"; + sha512 = "gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg=="; + }; + }; + "@webassemblyjs/ast-1.8.5" = { + name = "_at_webassemblyjs_slash_ast"; + packageName = "@webassemblyjs/ast"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz"; + sha512 = "aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ=="; + }; + }; + "@webassemblyjs/floating-point-hex-parser-1.8.5" = { + name = "_at_webassemblyjs_slash_floating-point-hex-parser"; + packageName = "@webassemblyjs/floating-point-hex-parser"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz"; + sha512 = "9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ=="; + }; + }; + "@webassemblyjs/helper-api-error-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-api-error"; + packageName = "@webassemblyjs/helper-api-error"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz"; + sha512 = "Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA=="; + }; + }; + "@webassemblyjs/helper-buffer-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-buffer"; + packageName = "@webassemblyjs/helper-buffer"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz"; + sha512 = "Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q=="; + }; + }; + "@webassemblyjs/helper-code-frame-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-code-frame"; + packageName = "@webassemblyjs/helper-code-frame"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz"; + sha512 = "VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ=="; + }; + }; + "@webassemblyjs/helper-fsm-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-fsm"; + packageName = "@webassemblyjs/helper-fsm"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz"; + sha512 = "kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow=="; + }; + }; + "@webassemblyjs/helper-module-context-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-module-context"; + packageName = "@webassemblyjs/helper-module-context"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz"; + sha512 = "/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g=="; + }; + }; + "@webassemblyjs/helper-wasm-bytecode-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-wasm-bytecode"; + packageName = "@webassemblyjs/helper-wasm-bytecode"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz"; + sha512 = "Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ=="; + }; + }; + "@webassemblyjs/helper-wasm-section-1.8.5" = { + name = "_at_webassemblyjs_slash_helper-wasm-section"; + packageName = "@webassemblyjs/helper-wasm-section"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz"; + sha512 = "VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA=="; + }; + }; + "@webassemblyjs/ieee754-1.8.5" = { + name = "_at_webassemblyjs_slash_ieee754"; + packageName = "@webassemblyjs/ieee754"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz"; + sha512 = "aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g=="; + }; + }; + "@webassemblyjs/leb128-1.8.5" = { + name = "_at_webassemblyjs_slash_leb128"; + packageName = "@webassemblyjs/leb128"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz"; + sha512 = "plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A=="; + }; + }; + "@webassemblyjs/utf8-1.8.5" = { + name = "_at_webassemblyjs_slash_utf8"; + packageName = "@webassemblyjs/utf8"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz"; + sha512 = "U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw=="; + }; + }; + "@webassemblyjs/wasm-edit-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-edit"; + packageName = "@webassemblyjs/wasm-edit"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz"; + sha512 = "A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q=="; + }; + }; + "@webassemblyjs/wasm-gen-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-gen"; + packageName = "@webassemblyjs/wasm-gen"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz"; + sha512 = "BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg=="; + }; + }; + "@webassemblyjs/wasm-opt-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-opt"; + packageName = "@webassemblyjs/wasm-opt"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz"; + sha512 = "HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q=="; + }; + }; + "@webassemblyjs/wasm-parser-1.8.5" = { + name = "_at_webassemblyjs_slash_wasm-parser"; + packageName = "@webassemblyjs/wasm-parser"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz"; + sha512 = "pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw=="; + }; + }; + "@webassemblyjs/wast-parser-1.8.5" = { + name = "_at_webassemblyjs_slash_wast-parser"; + packageName = "@webassemblyjs/wast-parser"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz"; + sha512 = "daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg=="; + }; + }; + "@webassemblyjs/wast-printer-1.8.5" = { + name = "_at_webassemblyjs_slash_wast-printer"; + packageName = "@webassemblyjs/wast-printer"; + version = "1.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz"; + sha512 = "w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg=="; + }; + }; + "@xtuc/ieee754-1.2.0" = { + name = "_at_xtuc_slash_ieee754"; + packageName = "@xtuc/ieee754"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz"; + sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="; + }; + }; + "@xtuc/long-4.2.2" = { + name = "_at_xtuc_slash_long"; + packageName = "@xtuc/long"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz"; + sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="; + }; + }; + "abab-2.0.2" = { + name = "abab"; + packageName = "abab"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz"; + sha512 = "2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg=="; + }; + }; + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "accepts-1.3.7" = { + name = "accepts"; + packageName = "accepts"; + version = "1.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"; + sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="; + }; + }; + "acorn-3.3.0" = { + name = "acorn"; + packageName = "acorn"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"; + sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a"; + }; + }; + "acorn-4.0.13" = { + name = "acorn"; + packageName = "acorn"; + version = "4.0.13"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz"; + sha1 = "105495ae5361d697bd195c825192e1ad7f253787"; + }; + }; + "acorn-5.7.3" = { + name = "acorn"; + packageName = "acorn"; + version = "5.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz"; + sha512 = "T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="; + }; + }; + "acorn-6.3.0" = { + name = "acorn"; + packageName = "acorn"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz"; + sha512 = "/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA=="; + }; + }; + "acorn-dynamic-import-4.0.0" = { + name = "acorn-dynamic-import"; + packageName = "acorn-dynamic-import"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz"; + sha512 = "d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw=="; + }; + }; + "acorn-globals-3.1.0" = { + name = "acorn-globals"; + packageName = "acorn-globals"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz"; + sha1 = "fd8270f71fbb4996b004fa880ee5d46573a731bf"; + }; + }; + "acorn-globals-4.3.4" = { + name = "acorn-globals"; + packageName = "acorn-globals"; + version = "4.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz"; + sha512 = "clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A=="; + }; + }; + "acorn-walk-6.2.0" = { + name = "acorn-walk"; + packageName = "acorn-walk"; + version = "6.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz"; + sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="; + }; + }; + "ajv-6.10.0" = { + name = "ajv"; + packageName = "ajv"; + version = "6.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz"; + sha512 = "nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg=="; + }; + }; + "ajv-errors-1.0.1" = { + name = "ajv-errors"; + packageName = "ajv-errors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz"; + sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="; + }; + }; + "ajv-keywords-3.4.1" = { + name = "ajv-keywords"; + packageName = "ajv-keywords"; + version = "3.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz"; + sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="; + }; + }; + "align-text-0.1.4" = { + name = "align-text"; + packageName = "align-text"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"; + sha1 = "0cd90a561093f35d0a99256c22b7069433fad117"; + }; + }; + "ansi-colors-3.2.4" = { + name = "ansi-colors"; + packageName = "ansi-colors"; + version = "3.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz"; + sha512 = "hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA=="; + }; + }; + "ansi-escapes-3.2.0" = { + name = "ansi-escapes"; + packageName = "ansi-escapes"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz"; + sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="; + }; + }; + "ansi-html-0.0.7" = { + name = "ansi-html"; + packageName = "ansi-html"; + version = "0.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz"; + sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e"; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "ansi-regex-3.0.0" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; + }; + }; + "ansi-regex-4.1.0" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"; + sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="; + }; + }; + "ansi-styles-2.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; + }; + }; + "ansi-styles-3.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; + }; + }; + "any-promise-1.3.0" = { + name = "any-promise"; + packageName = "any-promise"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"; + sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f"; + }; + }; + "anymatch-2.0.0" = { + name = "anymatch"; + packageName = "anymatch"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"; + sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw=="; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "argparse-1.0.10" = { + name = "argparse"; + packageName = "argparse"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; + }; + }; + "arr-diff-4.0.0" = { + name = "arr-diff"; + packageName = "arr-diff"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"; + sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; + }; + }; + "arr-flatten-1.1.0" = { + name = "arr-flatten"; + packageName = "arr-flatten"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"; + sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="; + }; + }; + "arr-union-3.1.0" = { + name = "arr-union"; + packageName = "arr-union"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"; + sha1 = "e39b09aea9def866a8f206e288af63919bae39c4"; + }; + }; + "array-back-3.1.0" = { + name = "array-back"; + packageName = "array-back"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz"; + sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="; + }; + }; + "array-equal-1.0.0" = { + name = "array-equal"; + packageName = "array-equal"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz"; + sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93"; + }; + }; + "array-flatten-1.1.1" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"; + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; + }; + }; + "array-flatten-2.1.2" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz"; + sha512 = "hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="; + }; + }; + "array-union-1.0.2" = { + name = "array-union"; + packageName = "array-union"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz"; + sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39"; + }; + }; + "array-uniq-1.0.3" = { + name = "array-uniq"; + packageName = "array-uniq"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"; + sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6"; + }; + }; + "array-unique-0.3.2" = { + name = "array-unique"; + packageName = "array-unique"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"; + sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; + }; + }; + "asap-2.0.6" = { + name = "asap"; + packageName = "asap"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"; + sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46"; + }; + }; + "asn1-0.2.4" = { + name = "asn1"; + packageName = "asn1"; + version = "0.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; + sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; + }; + }; + "asn1.js-4.10.1" = { + name = "asn1.js"; + packageName = "asn1.js"; + version = "4.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz"; + sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw=="; + }; + }; + "assert-1.5.0" = { + name = "assert"; + packageName = "assert"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz"; + sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA=="; + }; + }; + "assert-plus-1.0.0" = { + name = "assert-plus"; + packageName = "assert-plus"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + }; + "assign-symbols-1.0.0" = { + name = "assign-symbols"; + packageName = "assign-symbols"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"; + sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; + }; + }; + "astral-regex-1.0.0" = { + name = "astral-regex"; + packageName = "astral-regex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz"; + sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="; + }; + }; + "async-1.5.2" = { + name = "async"; + packageName = "async"; + version = "1.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz"; + sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a"; + }; + }; + "async-each-1.0.3" = { + name = "async-each"; + packageName = "async-each"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"; + sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="; + }; + }; + "async-limiter-1.0.0" = { + name = "async-limiter"; + packageName = "async-limiter"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz"; + sha512 = "jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "atob-2.1.2" = { + name = "atob"; + packageName = "atob"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"; + sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="; + }; + }; + "awesome-typescript-loader-5.2.1" = { + name = "awesome-typescript-loader"; + packageName = "awesome-typescript-loader"; + version = "5.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz"; + sha512 = "slv66OAJB8orL+UUaTI3pKlLorwIvS4ARZzYR9iJJyGsEgOqueMfOMdKySWzZ73vIkEe3fcwFgsKMg4d8zyb1g=="; + }; + }; + "aws-sign2-0.7.0" = { + name = "aws-sign2"; + packageName = "aws-sign2"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + }; + "aws4-1.8.0" = { + name = "aws4"; + packageName = "aws4"; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"; + sha512 = "ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="; + }; + }; + "axios-0.19.0" = { + name = "axios"; + packageName = "axios"; + version = "0.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz"; + sha512 = "1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ=="; + }; + }; + "babel-6.23.0" = { + name = "babel"; + packageName = "babel"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz"; + sha1 = "d0d1e7d803e974765beea3232d4e153c0efb90f4"; + }; + }; + "babel-code-frame-6.26.0" = { + name = "babel-code-frame"; + packageName = "babel-code-frame"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"; + sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"; + }; + }; + "babel-core-6.26.3" = { + name = "babel-core"; + packageName = "babel-core"; + version = "6.26.3"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz"; + sha512 = "6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA=="; + }; + }; + "babel-generator-6.26.1" = { + name = "babel-generator"; + packageName = "babel-generator"; + version = "6.26.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz"; + sha512 = "HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA=="; + }; + }; + "babel-helper-builder-binary-assignment-operator-visitor-6.24.1" = { + name = "babel-helper-builder-binary-assignment-operator-visitor"; + packageName = "babel-helper-builder-binary-assignment-operator-visitor"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz"; + sha1 = "cce4517ada356f4220bcae8a02c2b346f9a56664"; + }; + }; + "babel-helper-call-delegate-6.24.1" = { + name = "babel-helper-call-delegate"; + packageName = "babel-helper-call-delegate"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz"; + sha1 = "ece6aacddc76e41c3461f88bfc575bd0daa2df8d"; + }; + }; + "babel-helper-define-map-6.26.0" = { + name = "babel-helper-define-map"; + packageName = "babel-helper-define-map"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz"; + sha1 = "a5f56dab41a25f97ecb498c7ebaca9819f95be5f"; + }; + }; + "babel-helper-explode-assignable-expression-6.24.1" = { + name = "babel-helper-explode-assignable-expression"; + packageName = "babel-helper-explode-assignable-expression"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz"; + sha1 = "f25b82cf7dc10433c55f70592d5746400ac22caa"; + }; + }; + "babel-helper-function-name-6.24.1" = { + name = "babel-helper-function-name"; + packageName = "babel-helper-function-name"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz"; + sha1 = "d3475b8c03ed98242a25b48351ab18399d3580a9"; + }; + }; + "babel-helper-get-function-arity-6.24.1" = { + name = "babel-helper-get-function-arity"; + packageName = "babel-helper-get-function-arity"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz"; + sha1 = "8f7782aa93407c41d3aa50908f89b031b1b6853d"; + }; + }; + "babel-helper-hoist-variables-6.24.1" = { + name = "babel-helper-hoist-variables"; + packageName = "babel-helper-hoist-variables"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz"; + sha1 = "1ecb27689c9d25513eadbc9914a73f5408be7a76"; + }; + }; + "babel-helper-optimise-call-expression-6.24.1" = { + name = "babel-helper-optimise-call-expression"; + packageName = "babel-helper-optimise-call-expression"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz"; + sha1 = "f7a13427ba9f73f8f4fa993c54a97882d1244257"; + }; + }; + "babel-helper-regex-6.26.0" = { + name = "babel-helper-regex"; + packageName = "babel-helper-regex"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz"; + sha1 = "325c59f902f82f24b74faceed0363954f6495e72"; + }; + }; + "babel-helper-remap-async-to-generator-6.24.1" = { + name = "babel-helper-remap-async-to-generator"; + packageName = "babel-helper-remap-async-to-generator"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz"; + sha1 = "5ec581827ad723fecdd381f1c928390676e4551b"; + }; + }; + "babel-helper-replace-supers-6.24.1" = { + name = "babel-helper-replace-supers"; + packageName = "babel-helper-replace-supers"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz"; + sha1 = "bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"; + }; + }; + "babel-helpers-6.24.1" = { + name = "babel-helpers"; + packageName = "babel-helpers"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz"; + sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2"; + }; + }; + "babel-jest-24.8.0" = { + name = "babel-jest"; + packageName = "babel-jest"; + version = "24.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-jest/-/babel-jest-24.8.0.tgz"; + sha512 = "+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw=="; + }; + }; + "babel-jest-24.9.0" = { + name = "babel-jest"; + packageName = "babel-jest"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz"; + sha512 = "ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw=="; + }; + }; + "babel-messages-6.23.0" = { + name = "babel-messages"; + packageName = "babel-messages"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz"; + sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e"; + }; + }; + "babel-plugin-check-es2015-constants-6.22.0" = { + name = "babel-plugin-check-es2015-constants"; + packageName = "babel-plugin-check-es2015-constants"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz"; + sha1 = "35157b101426fd2ffd3da3f75c7d1e91835bbf8a"; + }; + }; + "babel-plugin-istanbul-5.2.0" = { + name = "babel-plugin-istanbul"; + packageName = "babel-plugin-istanbul"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz"; + sha512 = "5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw=="; + }; + }; + "babel-plugin-jest-hoist-24.9.0" = { + name = "babel-plugin-jest-hoist"; + packageName = "babel-plugin-jest-hoist"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz"; + sha512 = "2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw=="; + }; + }; + "babel-plugin-syntax-async-functions-6.13.0" = { + name = "babel-plugin-syntax-async-functions"; + packageName = "babel-plugin-syntax-async-functions"; + version = "6.13.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz"; + sha1 = "cad9cad1191b5ad634bf30ae0872391e0647be95"; + }; + }; + "babel-plugin-syntax-exponentiation-operator-6.13.0" = { + name = "babel-plugin-syntax-exponentiation-operator"; + packageName = "babel-plugin-syntax-exponentiation-operator"; + version = "6.13.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz"; + sha1 = "9ee7e8337290da95288201a6a57f4170317830de"; + }; + }; + "babel-plugin-syntax-trailing-function-commas-6.22.0" = { + name = "babel-plugin-syntax-trailing-function-commas"; + packageName = "babel-plugin-syntax-trailing-function-commas"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz"; + sha1 = "ba0360937f8d06e40180a43fe0d5616fff532cf3"; + }; + }; + "babel-plugin-transform-async-to-generator-6.24.1" = { + name = "babel-plugin-transform-async-to-generator"; + packageName = "babel-plugin-transform-async-to-generator"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz"; + sha1 = "6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"; + }; + }; + "babel-plugin-transform-es2015-arrow-functions-6.22.0" = { + name = "babel-plugin-transform-es2015-arrow-functions"; + packageName = "babel-plugin-transform-es2015-arrow-functions"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz"; + sha1 = "452692cb711d5f79dc7f85e440ce41b9f244d221"; + }; + }; + "babel-plugin-transform-es2015-block-scoped-functions-6.22.0" = { + name = "babel-plugin-transform-es2015-block-scoped-functions"; + packageName = "babel-plugin-transform-es2015-block-scoped-functions"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz"; + sha1 = "bbc51b49f964d70cb8d8e0b94e820246ce3a6141"; + }; + }; + "babel-plugin-transform-es2015-block-scoping-6.26.0" = { + name = "babel-plugin-transform-es2015-block-scoping"; + packageName = "babel-plugin-transform-es2015-block-scoping"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz"; + sha1 = "d70f5299c1308d05c12f463813b0a09e73b1895f"; + }; + }; + "babel-plugin-transform-es2015-classes-6.24.1" = { + name = "babel-plugin-transform-es2015-classes"; + packageName = "babel-plugin-transform-es2015-classes"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz"; + sha1 = "5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"; + }; + }; + "babel-plugin-transform-es2015-computed-properties-6.24.1" = { + name = "babel-plugin-transform-es2015-computed-properties"; + packageName = "babel-plugin-transform-es2015-computed-properties"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz"; + sha1 = "6fe2a8d16895d5634f4cd999b6d3480a308159b3"; + }; + }; + "babel-plugin-transform-es2015-destructuring-6.23.0" = { + name = "babel-plugin-transform-es2015-destructuring"; + packageName = "babel-plugin-transform-es2015-destructuring"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz"; + sha1 = "997bb1f1ab967f682d2b0876fe358d60e765c56d"; + }; + }; + "babel-plugin-transform-es2015-duplicate-keys-6.24.1" = { + name = "babel-plugin-transform-es2015-duplicate-keys"; + packageName = "babel-plugin-transform-es2015-duplicate-keys"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz"; + sha1 = "73eb3d310ca969e3ef9ec91c53741a6f1576423e"; + }; + }; + "babel-plugin-transform-es2015-for-of-6.23.0" = { + name = "babel-plugin-transform-es2015-for-of"; + packageName = "babel-plugin-transform-es2015-for-of"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz"; + sha1 = "f47c95b2b613df1d3ecc2fdb7573623c75248691"; + }; + }; + "babel-plugin-transform-es2015-function-name-6.24.1" = { + name = "babel-plugin-transform-es2015-function-name"; + packageName = "babel-plugin-transform-es2015-function-name"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz"; + sha1 = "834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"; + }; + }; + "babel-plugin-transform-es2015-literals-6.22.0" = { + name = "babel-plugin-transform-es2015-literals"; + packageName = "babel-plugin-transform-es2015-literals"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz"; + sha1 = "4f54a02d6cd66cf915280019a31d31925377ca2e"; + }; + }; + "babel-plugin-transform-es2015-modules-amd-6.24.1" = { + name = "babel-plugin-transform-es2015-modules-amd"; + packageName = "babel-plugin-transform-es2015-modules-amd"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz"; + sha1 = "3b3e54017239842d6d19c3011c4bd2f00a00d154"; + }; + }; + "babel-plugin-transform-es2015-modules-commonjs-6.26.2" = { + name = "babel-plugin-transform-es2015-modules-commonjs"; + packageName = "babel-plugin-transform-es2015-modules-commonjs"; + version = "6.26.2"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz"; + sha512 = "CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q=="; + }; + }; + "babel-plugin-transform-es2015-modules-systemjs-6.24.1" = { + name = "babel-plugin-transform-es2015-modules-systemjs"; + packageName = "babel-plugin-transform-es2015-modules-systemjs"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz"; + sha1 = "ff89a142b9119a906195f5f106ecf305d9407d23"; + }; + }; + "babel-plugin-transform-es2015-modules-umd-6.24.1" = { + name = "babel-plugin-transform-es2015-modules-umd"; + packageName = "babel-plugin-transform-es2015-modules-umd"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz"; + sha1 = "ac997e6285cd18ed6176adb607d602344ad38468"; + }; + }; + "babel-plugin-transform-es2015-object-super-6.24.1" = { + name = "babel-plugin-transform-es2015-object-super"; + packageName = "babel-plugin-transform-es2015-object-super"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz"; + sha1 = "24cef69ae21cb83a7f8603dad021f572eb278f8d"; + }; + }; + "babel-plugin-transform-es2015-parameters-6.24.1" = { + name = "babel-plugin-transform-es2015-parameters"; + packageName = "babel-plugin-transform-es2015-parameters"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz"; + sha1 = "57ac351ab49caf14a97cd13b09f66fdf0a625f2b"; + }; + }; + "babel-plugin-transform-es2015-shorthand-properties-6.24.1" = { + name = "babel-plugin-transform-es2015-shorthand-properties"; + packageName = "babel-plugin-transform-es2015-shorthand-properties"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz"; + sha1 = "24f875d6721c87661bbd99a4622e51f14de38aa0"; + }; + }; + "babel-plugin-transform-es2015-spread-6.22.0" = { + name = "babel-plugin-transform-es2015-spread"; + packageName = "babel-plugin-transform-es2015-spread"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz"; + sha1 = "d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"; + }; + }; + "babel-plugin-transform-es2015-sticky-regex-6.24.1" = { + name = "babel-plugin-transform-es2015-sticky-regex"; + packageName = "babel-plugin-transform-es2015-sticky-regex"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz"; + sha1 = "00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"; + }; + }; + "babel-plugin-transform-es2015-template-literals-6.22.0" = { + name = "babel-plugin-transform-es2015-template-literals"; + packageName = "babel-plugin-transform-es2015-template-literals"; + version = "6.22.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz"; + sha1 = "a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"; + }; + }; + "babel-plugin-transform-es2015-typeof-symbol-6.23.0" = { + name = "babel-plugin-transform-es2015-typeof-symbol"; + packageName = "babel-plugin-transform-es2015-typeof-symbol"; + version = "6.23.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz"; + sha1 = "dec09f1cddff94b52ac73d505c84df59dcceb372"; + }; + }; + "babel-plugin-transform-es2015-unicode-regex-6.24.1" = { + name = "babel-plugin-transform-es2015-unicode-regex"; + packageName = "babel-plugin-transform-es2015-unicode-regex"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz"; + sha1 = "d38b12f42ea7323f729387f18a7c5ae1faeb35e9"; + }; + }; + "babel-plugin-transform-exponentiation-operator-6.24.1" = { + name = "babel-plugin-transform-exponentiation-operator"; + packageName = "babel-plugin-transform-exponentiation-operator"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz"; + sha1 = "2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"; + }; + }; + "babel-plugin-transform-regenerator-6.26.0" = { + name = "babel-plugin-transform-regenerator"; + packageName = "babel-plugin-transform-regenerator"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz"; + sha1 = "e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"; + }; + }; + "babel-plugin-transform-strict-mode-6.24.1" = { + name = "babel-plugin-transform-strict-mode"; + packageName = "babel-plugin-transform-strict-mode"; + version = "6.24.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz"; + sha1 = "d5faf7aa578a65bbe591cf5edae04a0c67020758"; + }; + }; + "babel-preset-env-1.7.0" = { + name = "babel-preset-env"; + packageName = "babel-preset-env"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz"; + sha512 = "9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg=="; + }; + }; + "babel-preset-jest-24.9.0" = { + name = "babel-preset-jest"; + packageName = "babel-preset-jest"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz"; + sha512 = "izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg=="; + }; + }; + "babel-register-6.26.0" = { + name = "babel-register"; + packageName = "babel-register"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz"; + sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071"; + }; + }; + "babel-runtime-6.26.0" = { + name = "babel-runtime"; + packageName = "babel-runtime"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"; + sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; + }; + }; + "babel-template-6.26.0" = { + name = "babel-template"; + packageName = "babel-template"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz"; + sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02"; + }; + }; + "babel-traverse-6.26.0" = { + name = "babel-traverse"; + packageName = "babel-traverse"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz"; + sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"; + }; + }; + "babel-types-6.26.0" = { + name = "babel-types"; + packageName = "babel-types"; + version = "6.26.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz"; + sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497"; + }; + }; + "babylon-6.18.0" = { + name = "babylon"; + packageName = "babylon"; + version = "6.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz"; + sha512 = "q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "base-0.11.2" = { + name = "base"; + packageName = "base"; + version = "0.11.2"; + src = fetchurl { + url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz"; + sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg=="; + }; + }; + "base64-js-1.3.1" = { + name = "base64-js"; + packageName = "base64-js"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz"; + sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="; + }; + }; + "batch-0.6.1" = { + name = "batch"; + packageName = "batch"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz"; + sha1 = "dc34314f4e679318093fc760272525f94bf25c16"; + }; + }; + "bcrypt-pbkdf-1.0.2" = { + name = "bcrypt-pbkdf"; + packageName = "bcrypt-pbkdf"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + }; + "bfj-6.1.2" = { + name = "bfj"; + packageName = "bfj"; + version = "6.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz"; + sha512 = "BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw=="; + }; + }; + "big.js-5.2.2" = { + name = "big.js"; + packageName = "big.js"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"; + sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="; + }; + }; + "binary-extensions-1.13.1" = { + name = "binary-extensions"; + packageName = "binary-extensions"; + version = "1.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz"; + sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="; + }; + }; + "bluebird-3.5.5" = { + name = "bluebird"; + packageName = "bluebird"; + version = "3.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz"; + sha512 = "5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w=="; + }; + }; + "bn.js-4.11.8" = { + name = "bn.js"; + packageName = "bn.js"; + version = "4.11.8"; + src = fetchurl { + url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz"; + sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="; + }; + }; + "body-parser-1.19.0" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; + }; + }; + "bonjour-3.5.0" = { + name = "bonjour"; + packageName = "bonjour"; + version = "3.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz"; + sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "braces-2.3.2" = { + name = "braces"; + packageName = "braces"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"; + sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w=="; + }; + }; + "brorand-1.1.0" = { + name = "brorand"; + packageName = "brorand"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"; + sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; + }; + }; + "browser-process-hrtime-0.1.3" = { + name = "browser-process-hrtime"; + packageName = "browser-process-hrtime"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz"; + sha512 = "bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="; + }; + }; + "browser-resolve-1.11.3" = { + name = "browser-resolve"; + packageName = "browser-resolve"; + version = "1.11.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz"; + sha512 = "exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ=="; + }; + }; + "browserify-aes-1.2.0" = { + name = "browserify-aes"; + packageName = "browserify-aes"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz"; + sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA=="; + }; + }; + "browserify-cipher-1.0.1" = { + name = "browserify-cipher"; + packageName = "browserify-cipher"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz"; + sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w=="; + }; + }; + "browserify-des-1.0.2" = { + name = "browserify-des"; + packageName = "browserify-des"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz"; + sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A=="; + }; + }; + "browserify-rsa-4.0.1" = { + name = "browserify-rsa"; + packageName = "browserify-rsa"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; + sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; + }; + }; + "browserify-sign-4.0.4" = { + name = "browserify-sign"; + packageName = "browserify-sign"; + version = "4.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz"; + sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"; + }; + }; + "browserify-zlib-0.2.0" = { + name = "browserify-zlib"; + packageName = "browserify-zlib"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; + sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA=="; + }; + }; + "browserslist-3.2.8" = { + name = "browserslist"; + packageName = "browserslist"; + version = "3.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz"; + sha512 = "WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ=="; + }; + }; + "bs-logger-0.2.6" = { + name = "bs-logger"; + packageName = "bs-logger"; + version = "0.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz"; + sha512 = "pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog=="; + }; + }; + "bser-2.1.0" = { + name = "bser"; + packageName = "bser"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz"; + sha512 = "8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg=="; + }; + }; + "buffer-4.9.1" = { + name = "buffer"; + packageName = "buffer"; + version = "4.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz"; + sha1 = "6d1bb601b07a4efced97094132093027c95bc298"; + }; + }; + "buffer-from-1.1.1" = { + name = "buffer-from"; + packageName = "buffer-from"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"; + sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="; + }; + }; + "buffer-indexof-1.1.1" = { + name = "buffer-indexof"; + packageName = "buffer-indexof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz"; + sha512 = "4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="; + }; + }; + "buffer-xor-1.0.3" = { + name = "buffer-xor"; + packageName = "buffer-xor"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz"; + sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; + }; + }; + "builtin-status-codes-3.0.0" = { + name = "builtin-status-codes"; + packageName = "builtin-status-codes"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"; + sha1 = "85982878e21b98e1c66425e03d0174788f569ee8"; + }; + }; + "bytes-3.0.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"; + sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048"; + }; + }; + "bytes-3.1.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; + }; + }; + "cacache-10.0.4" = { + name = "cacache"; + packageName = "cacache"; + version = "10.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz"; + sha512 = "Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA=="; + }; + }; + "cacache-12.0.3" = { + name = "cacache"; + packageName = "cacache"; + version = "12.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz"; + sha512 = "kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw=="; + }; + }; + "cache-base-1.0.1" = { + name = "cache-base"; + packageName = "cache-base"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"; + sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ=="; + }; + }; + "cache-content-type-1.0.1" = { + name = "cache-content-type"; + packageName = "cache-content-type"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz"; + sha512 = "IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA=="; + }; + }; + "callsites-3.1.0" = { + name = "callsites"; + packageName = "callsites"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"; + sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="; + }; + }; + "camelcase-1.2.1" = { + name = "camelcase"; + packageName = "camelcase"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"; + sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"; + }; + }; + "camelcase-4.1.0" = { + name = "camelcase"; + packageName = "camelcase"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz"; + sha1 = "d545635be1e33c542649c69173e5de6acfae34dd"; + }; + }; + "camelcase-5.3.1" = { + name = "camelcase"; + packageName = "camelcase"; + version = "5.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"; + sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="; + }; + }; + "caniuse-lite-1.0.30000997" = { + name = "caniuse-lite"; + packageName = "caniuse-lite"; + version = "1.0.30000997"; + src = fetchurl { + url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000997.tgz"; + sha512 = "BQLFPIdj2ntgBNWp9Q64LGUIEmvhKkzzHhUHR3CD5A9Lb7ZKF20/+sgadhFap69lk5XmK1fTUleDclaRFvgVUA=="; + }; + }; + "capture-exit-2.0.0" = { + name = "capture-exit"; + packageName = "capture-exit"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz"; + sha512 = "PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g=="; + }; + }; + "caseless-0.12.0" = { + name = "caseless"; + packageName = "caseless"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + }; + "center-align-0.1.3" = { + name = "center-align"; + packageName = "center-align"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"; + sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad"; + }; + }; + "chalk-1.1.3" = { + name = "chalk"; + packageName = "chalk"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; + }; + }; + "chalk-2.4.2" = { + name = "chalk"; + packageName = "chalk"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; + }; + }; + "character-parser-2.2.0" = { + name = "character-parser"; + packageName = "character-parser"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz"; + sha1 = "c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0"; + }; + }; + "check-types-8.0.3" = { + name = "check-types"; + packageName = "check-types"; + version = "8.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz"; + sha512 = "YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ=="; + }; + }; + "chokidar-2.1.8" = { + name = "chokidar"; + packageName = "chokidar"; + version = "2.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz"; + sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg=="; + }; + }; + "chownr-1.1.3" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz"; + sha512 = "i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw=="; + }; + }; + "chrome-trace-event-1.0.2" = { + name = "chrome-trace-event"; + packageName = "chrome-trace-event"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz"; + sha512 = "9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ=="; + }; + }; + "ci-info-2.0.0" = { + name = "ci-info"; + packageName = "ci-info"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz"; + sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="; + }; + }; + "cipher-base-1.0.4" = { + name = "cipher-base"; + packageName = "cipher-base"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz"; + sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q=="; + }; + }; + "class-utils-0.3.6" = { + name = "class-utils"; + packageName = "class-utils"; + version = "0.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"; + sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="; + }; + }; + "clean-css-4.2.1" = { + name = "clean-css"; + packageName = "clean-css"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz"; + sha512 = "4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g=="; + }; + }; + "cli-cursor-2.1.0" = { + name = "cli-cursor"; + packageName = "cli-cursor"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"; + sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5"; + }; + }; + "cli-spinners-2.2.0" = { + name = "cli-spinners"; + packageName = "cli-spinners"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz"; + sha512 = "tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ=="; + }; + }; + "cliui-2.1.0" = { + name = "cliui"; + packageName = "cliui"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"; + sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1"; + }; + }; + "cliui-4.1.0" = { + name = "cliui"; + packageName = "cliui"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz"; + sha512 = "4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ=="; + }; + }; + "cliui-5.0.0" = { + name = "cliui"; + packageName = "cliui"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"; + sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="; + }; + }; + "clone-1.0.4" = { + name = "clone"; + packageName = "clone"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"; + sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; + }; + }; + "co-4.6.0" = { + name = "co"; + packageName = "co"; + version = "4.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz"; + sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; + }; + }; + "co-body-5.2.0" = { + name = "co-body"; + packageName = "co-body"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz"; + sha512 = "sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ=="; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "collection-visit-1.0.0" = { + name = "collection-visit"; + packageName = "collection-visit"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"; + sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; + }; + }; + "color-convert-1.9.3" = { + name = "color-convert"; + packageName = "color-convert"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; + }; + }; + "color-name-1.1.3" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "command-line-args-5.1.1" = { + name = "command-line-args"; + packageName = "command-line-args"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz"; + sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg=="; + }; + }; + "commander-2.20.0" = { + name = "commander"; + packageName = "commander"; + version = "2.20.0"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz"; + sha512 = "7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="; + }; + }; + "commondir-1.0.1" = { + name = "commondir"; + packageName = "commondir"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz"; + sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b"; + }; + }; + "component-emitter-1.3.0" = { + name = "component-emitter"; + packageName = "component-emitter"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"; + sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="; + }; + }; + "compressible-2.0.17" = { + name = "compressible"; + packageName = "compressible"; + version = "2.0.17"; + src = fetchurl { + url = "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz"; + sha512 = "BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw=="; + }; + }; + "compression-1.7.4" = { + name = "compression"; + packageName = "compression"; + version = "1.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"; + sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "concat-stream-1.6.2" = { + name = "concat-stream"; + packageName = "concat-stream"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"; + sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="; + }; + }; + "condense-newlines-0.2.1" = { + name = "condense-newlines"; + packageName = "condense-newlines"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz"; + sha1 = "3de985553139475d32502c83b02f60684d24c55f"; + }; + }; + "config-chain-1.1.12" = { + name = "config-chain"; + packageName = "config-chain"; + version = "1.1.12"; + src = fetchurl { + url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz"; + sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA=="; + }; + }; + "connect-history-api-fallback-1.6.0" = { + name = "connect-history-api-fallback"; + packageName = "connect-history-api-fallback"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz"; + sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="; + }; + }; + "console-browserify-1.1.0" = { + name = "console-browserify"; + packageName = "console-browserify"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz"; + sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10"; + }; + }; + "consolidate-0.15.1" = { + name = "consolidate"; + packageName = "consolidate"; + version = "0.15.1"; + src = fetchurl { + url = "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz"; + sha512 = "DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw=="; + }; + }; + "constantinople-3.1.2" = { + name = "constantinople"; + packageName = "constantinople"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz"; + sha512 = "yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw=="; + }; + }; + "constants-browserify-1.0.0" = { + name = "constants-browserify"; + packageName = "constants-browserify"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz"; + sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; + }; + }; + "content-disposition-0.5.3" = { + name = "content-disposition"; + packageName = "content-disposition"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; + }; + }; + "content-type-1.0.4" = { + name = "content-type"; + packageName = "content-type"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; + sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; + }; + }; + "convert-source-map-1.6.0" = { + name = "convert-source-map"; + packageName = "convert-source-map"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz"; + sha512 = "eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A=="; + }; + }; + "cookie-0.4.0" = { + name = "cookie"; + packageName = "cookie"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; + }; + }; + "cookie-signature-1.0.6" = { + name = "cookie-signature"; + packageName = "cookie-signature"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; + }; + }; + "cookies-0.7.3" = { + name = "cookies"; + packageName = "cookies"; + version = "0.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cookies/-/cookies-0.7.3.tgz"; + sha512 = "+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A=="; + }; + }; + "copy-concurrently-1.0.5" = { + name = "copy-concurrently"; + packageName = "copy-concurrently"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz"; + sha512 = "f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A=="; + }; + }; + "copy-descriptor-0.1.1" = { + name = "copy-descriptor"; + packageName = "copy-descriptor"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; + sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; + }; + }; + "copy-webpack-plugin-4.6.0" = { + name = "copy-webpack-plugin"; + packageName = "copy-webpack-plugin"; + version = "4.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz"; + sha512 = "Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA=="; + }; + }; + "core-js-2.6.9" = { + name = "core-js"; + packageName = "core-js"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz"; + sha512 = "HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "create-ecdh-4.0.3" = { + name = "create-ecdh"; + packageName = "create-ecdh"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz"; + sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw=="; + }; + }; + "create-hash-1.2.0" = { + name = "create-hash"; + packageName = "create-hash"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz"; + sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg=="; + }; + }; + "create-hmac-1.1.7" = { + name = "create-hmac"; + packageName = "create-hmac"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz"; + sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg=="; + }; + }; + "cron-1.7.1" = { + name = "cron"; + packageName = "cron"; + version = "1.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cron/-/cron-1.7.1.tgz"; + sha512 = "gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A=="; + }; + }; + "cross-spawn-6.0.5" = { + name = "cross-spawn"; + packageName = "cross-spawn"; + version = "6.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz"; + sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ=="; + }; + }; + "crypto-browserify-3.12.0" = { + name = "crypto-browserify"; + packageName = "crypto-browserify"; + version = "3.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; + sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg=="; + }; + }; + "cssom-0.3.8" = { + name = "cssom"; + packageName = "cssom"; + version = "0.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz"; + sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="; + }; + }; + "cssstyle-1.4.0" = { + name = "cssstyle"; + packageName = "cssstyle"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz"; + sha512 = "GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA=="; + }; + }; + "cyclist-1.0.1" = { + name = "cyclist"; + packageName = "cyclist"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz"; + sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9"; + }; + }; + "d-1.0.1" = { + name = "d"; + packageName = "d"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz"; + sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA=="; + }; + }; + "dashdash-1.14.1" = { + name = "dashdash"; + packageName = "dashdash"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + }; + "data-urls-1.1.0" = { + name = "data-urls"; + packageName = "data-urls"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz"; + sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ=="; + }; + }; + "date-now-0.1.4" = { + name = "date-now"; + packageName = "date-now"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"; + sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b"; + }; + }; + "debug-2.6.9" = { + name = "debug"; + packageName = "debug"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; + sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; + }; + }; + "debug-3.1.0" = { + name = "debug"; + packageName = "debug"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"; + sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="; + }; + }; + "debug-3.2.6" = { + name = "debug"; + packageName = "debug"; + version = "3.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"; + sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ=="; + }; + }; + "debug-4.1.1" = { + name = "debug"; + packageName = "debug"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"; + sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw=="; + }; + }; + "decamelize-1.2.0" = { + name = "decamelize"; + packageName = "decamelize"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"; + sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; + }; + }; + "decode-uri-component-0.2.0" = { + name = "decode-uri-component"; + packageName = "decode-uri-component"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; + sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; + }; + }; + "deep-equal-1.0.1" = { + name = "deep-equal"; + packageName = "deep-equal"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz"; + sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5"; + }; + }; + "deep-is-0.1.3" = { + name = "deep-is"; + packageName = "deep-is"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"; + sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; + }; + }; + "default-gateway-4.2.0" = { + name = "default-gateway"; + packageName = "default-gateway"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz"; + sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA=="; + }; + }; + "defaults-1.0.3" = { + name = "defaults"; + packageName = "defaults"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz"; + sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d"; + }; + }; + "define-properties-1.1.3" = { + name = "define-properties"; + packageName = "define-properties"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"; + sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ=="; + }; + }; + "define-property-0.2.5" = { + name = "define-property"; + packageName = "define-property"; + version = "0.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"; + sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; + }; + }; + "define-property-1.0.0" = { + name = "define-property"; + packageName = "define-property"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"; + sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; + }; + }; + "define-property-2.0.2" = { + name = "define-property"; + packageName = "define-property"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"; + sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ=="; + }; + }; + "del-4.1.1" = { + name = "del"; + packageName = "del"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/del/-/del-4.1.1.tgz"; + sha512 = "QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "depd-1.1.2" = { + name = "depd"; + packageName = "depd"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; + }; + }; + "des.js-1.0.0" = { + name = "des.js"; + packageName = "des.js"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz"; + sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"; + }; + }; + "destroy-1.0.4" = { + name = "destroy"; + packageName = "destroy"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; + sha1 = "978857442c44749e4206613e37946205826abd80"; + }; + }; + "detect-file-1.0.0" = { + name = "detect-file"; + packageName = "detect-file"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz"; + sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7"; + }; + }; + "detect-indent-4.0.0" = { + name = "detect-indent"; + packageName = "detect-indent"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz"; + sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208"; + }; + }; + "detect-newline-2.1.0" = { + name = "detect-newline"; + packageName = "detect-newline"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz"; + sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"; + }; + }; + "detect-node-2.0.4" = { + name = "detect-node"; + packageName = "detect-node"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz"; + sha512 = "ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw=="; + }; + }; + "diff-sequences-24.9.0" = { + name = "diff-sequences"; + packageName = "diff-sequences"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz"; + sha512 = "Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew=="; + }; + }; + "diffie-hellman-5.0.3" = { + name = "diffie-hellman"; + packageName = "diffie-hellman"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz"; + sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg=="; + }; + }; + "dir-glob-2.2.2" = { + name = "dir-glob"; + packageName = "dir-glob"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz"; + sha512 = "f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw=="; + }; + }; + "dns-equal-1.0.0" = { + name = "dns-equal"; + packageName = "dns-equal"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz"; + sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d"; + }; + }; + "dns-packet-1.3.1" = { + name = "dns-packet"; + packageName = "dns-packet"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz"; + sha512 = "0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg=="; + }; + }; + "dns-txt-2.0.2" = { + name = "dns-txt"; + packageName = "dns-txt"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz"; + sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6"; + }; + }; + "doctypes-1.1.0" = { + name = "doctypes"; + packageName = "doctypes"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz"; + sha1 = "ea80b106a87538774e8a3a4a5afe293de489e0a9"; + }; + }; + "domain-browser-1.2.0" = { + name = "domain-browser"; + packageName = "domain-browser"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz"; + sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="; + }; + }; + "domexception-1.0.1" = { + name = "domexception"; + packageName = "domexception"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz"; + sha512 = "raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug=="; + }; + }; + "duplexer-0.1.1" = { + name = "duplexer"; + packageName = "duplexer"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz"; + sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1"; + }; + }; + "duplexify-3.7.1" = { + name = "duplexify"; + packageName = "duplexify"; + version = "3.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz"; + sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="; + }; + }; + "ecc-jsbn-0.1.2" = { + name = "ecc-jsbn"; + packageName = "ecc-jsbn"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + }; + "editorconfig-0.15.3" = { + name = "editorconfig"; + packageName = "editorconfig"; + version = "0.15.3"; + src = fetchurl { + url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz"; + sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g=="; + }; + }; + "ee-first-1.1.1" = { + name = "ee-first"; + packageName = "ee-first"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; + }; + }; + "ejs-2.7.1" = { + name = "ejs"; + packageName = "ejs"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz"; + sha512 = "kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ=="; + }; + }; + "electron-to-chromium-1.3.267" = { + name = "electron-to-chromium"; + packageName = "electron-to-chromium"; + version = "1.3.267"; + src = fetchurl { + url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.267.tgz"; + sha512 = "9Q2ixAJC+oHjWNtJV0MQ4vJMCWSowIrC6V6vcr+bwPddTDHj2ddv9xxXCzf4jT/fy6HP7maPoW0gifXkRxCttQ=="; + }; + }; + "elliptic-6.5.1" = { + name = "elliptic"; + packageName = "elliptic"; + version = "6.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz"; + sha512 = "xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg=="; + }; + }; + "emoji-regex-7.0.3" = { + name = "emoji-regex"; + packageName = "emoji-regex"; + version = "7.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"; + sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="; + }; + }; + "emojis-list-2.1.0" = { + name = "emojis-list"; + packageName = "emojis-list"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz"; + sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389"; + }; + }; + "encodeurl-1.0.2" = { + name = "encodeurl"; + packageName = "encodeurl"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + }; + "end-of-stream-1.4.4" = { + name = "end-of-stream"; + packageName = "end-of-stream"; + version = "1.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; + }; + }; + "enhanced-resolve-4.1.0" = { + name = "enhanced-resolve"; + packageName = "enhanced-resolve"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz"; + sha512 = "F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng=="; + }; + }; + "errno-0.1.7" = { + name = "errno"; + packageName = "errno"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz"; + sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg=="; + }; + }; + "error-ex-1.3.2" = { + name = "error-ex"; + packageName = "error-ex"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"; + sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="; + }; + }; + "error-inject-1.0.0" = { + name = "error-inject"; + packageName = "error-inject"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz"; + sha1 = "e2b3d91b54aed672f309d950d154850fa11d4f37"; + }; + }; + "es-abstract-1.14.2" = { + name = "es-abstract"; + packageName = "es-abstract"; + version = "1.14.2"; + src = fetchurl { + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz"; + sha512 = "DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg=="; + }; + }; + "es-to-primitive-1.2.0" = { + name = "es-to-primitive"; + packageName = "es-to-primitive"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz"; + sha512 = "qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg=="; + }; + }; + "es5-ext-0.10.51" = { + name = "es5-ext"; + packageName = "es5-ext"; + version = "0.10.51"; + src = fetchurl { + url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.51.tgz"; + sha512 = "oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ=="; + }; + }; + "es6-iterator-2.0.3" = { + name = "es6-iterator"; + packageName = "es6-iterator"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz"; + sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7"; + }; + }; + "es6-symbol-3.1.2" = { + name = "es6-symbol"; + packageName = "es6-symbol"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.2.tgz"; + sha512 = "/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ=="; + }; + }; + "escape-html-1.0.3" = { + name = "escape-html"; + packageName = "escape-html"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; + sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; + }; + }; + "escape-string-regexp-1.0.5" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + }; + "escodegen-1.12.0" = { + name = "escodegen"; + packageName = "escodegen"; + version = "1.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz"; + sha512 = "TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg=="; + }; + }; + "eslint-scope-4.0.3" = { + name = "eslint-scope"; + packageName = "eslint-scope"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz"; + sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg=="; + }; + }; + "esprima-3.1.3" = { + name = "esprima"; + packageName = "esprima"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"; + sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633"; + }; + }; + "esprima-4.0.1" = { + name = "esprima"; + packageName = "esprima"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; + }; + }; + "esrecurse-4.2.1" = { + name = "esrecurse"; + packageName = "esrecurse"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz"; + sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ=="; + }; + }; + "estraverse-4.3.0" = { + name = "estraverse"; + packageName = "estraverse"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"; + sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="; + }; + }; + "esutils-2.0.2" = { + name = "esutils"; + packageName = "esutils"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"; + sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; + }; + }; + "etag-1.8.1" = { + name = "etag"; + packageName = "etag"; + version = "1.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; + }; + }; + "eventemitter3-4.0.0" = { + name = "eventemitter3"; + packageName = "eventemitter3"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz"; + sha512 = "qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg=="; + }; + }; + "events-3.0.0" = { + name = "events"; + packageName = "events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz"; + sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="; + }; + }; + "eventsource-1.0.7" = { + name = "eventsource"; + packageName = "eventsource"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz"; + sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ=="; + }; + }; + "evp_bytestokey-1.0.3" = { + name = "evp_bytestokey"; + packageName = "evp_bytestokey"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; + sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA=="; + }; + }; + "exec-sh-0.3.2" = { + name = "exec-sh"; + packageName = "exec-sh"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz"; + sha512 = "9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg=="; + }; + }; + "execa-1.0.0" = { + name = "execa"; + packageName = "execa"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"; + sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA=="; + }; + }; + "exit-0.1.2" = { + name = "exit"; + packageName = "exit"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"; + sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c"; + }; + }; + "expand-brackets-2.1.4" = { + name = "expand-brackets"; + packageName = "expand-brackets"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"; + sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; + }; + }; + "expand-tilde-2.0.2" = { + name = "expand-tilde"; + packageName = "expand-tilde"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz"; + sha1 = "97e801aa052df02454de46b02bf621642cdc8502"; + }; + }; + "expect-24.9.0" = { + name = "expect"; + packageName = "expect"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz"; + sha512 = "wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q=="; + }; + }; + "express-4.17.1" = { + name = "express"; + packageName = "express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; + }; + }; + "extend-3.0.2" = { + name = "extend"; + packageName = "extend"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; + sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; + }; + }; + "extend-shallow-2.0.1" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + }; + "extend-shallow-3.0.2" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"; + sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; + }; + }; + "extglob-2.0.4" = { + name = "extglob"; + packageName = "extglob"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"; + sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw=="; + }; + }; + "extsprintf-1.3.0" = { + name = "extsprintf"; + packageName = "extsprintf"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + }; + "fast-deep-equal-2.0.1" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; + sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + }; + }; + "fast-json-stable-stringify-2.0.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + }; + "fast-levenshtein-2.0.6" = { + name = "fast-levenshtein"; + packageName = "fast-levenshtein"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; + sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; + }; + }; + "faye-websocket-0.10.0" = { + name = "faye-websocket"; + packageName = "faye-websocket"; + version = "0.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz"; + sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"; + }; + }; + "faye-websocket-0.11.3" = { + name = "faye-websocket"; + packageName = "faye-websocket"; + version = "0.11.3"; + src = fetchurl { + url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz"; + sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA=="; + }; + }; + "fb-watchman-2.0.0" = { + name = "fb-watchman"; + packageName = "fb-watchman"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz"; + sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"; + }; + }; + "figgy-pudding-3.5.1" = { + name = "figgy-pudding"; + packageName = "figgy-pudding"; + version = "3.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz"; + sha512 = "vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w=="; + }; + }; + "filesize-3.6.1" = { + name = "filesize"; + packageName = "filesize"; + version = "3.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz"; + sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg=="; + }; + }; + "fill-range-4.0.0" = { + name = "fill-range"; + packageName = "fill-range"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"; + sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; + }; + }; + "finalhandler-1.1.2" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; + }; + }; + "find-cache-dir-1.0.0" = { + name = "find-cache-dir"; + packageName = "find-cache-dir"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz"; + sha1 = "9288e3e9e3cc3748717d39eade17cf71fc30ee6f"; + }; + }; + "find-cache-dir-2.1.0" = { + name = "find-cache-dir"; + packageName = "find-cache-dir"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz"; + sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ=="; + }; + }; + "find-replace-3.0.0" = { + name = "find-replace"; + packageName = "find-replace"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz"; + sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="; + }; + }; + "find-up-2.1.0" = { + name = "find-up"; + packageName = "find-up"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"; + sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; + }; + }; + "find-up-3.0.0" = { + name = "find-up"; + packageName = "find-up"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"; + sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="; + }; + }; + "findup-sync-2.0.0" = { + name = "findup-sync"; + packageName = "findup-sync"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz"; + sha1 = "9326b1488c22d1a6088650a86901b2d9a90a2cbc"; + }; + }; + "flush-write-stream-1.1.1" = { + name = "flush-write-stream"; + packageName = "flush-write-stream"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz"; + sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w=="; + }; + }; + "follow-redirects-1.5.10" = { + name = "follow-redirects"; + packageName = "follow-redirects"; + version = "1.5.10"; + src = fetchurl { + url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz"; + sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ=="; + }; + }; + "for-in-1.0.2" = { + name = "for-in"; + packageName = "for-in"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"; + sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; + }; + }; + "forever-agent-0.6.1" = { + name = "forever-agent"; + packageName = "forever-agent"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + }; + "form-data-2.3.3" = { + name = "form-data"; + packageName = "form-data"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; + sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; + }; + }; + "form-data-2.5.1" = { + name = "form-data"; + packageName = "form-data"; + version = "2.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz"; + sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA=="; + }; + }; + "formidable-1.2.1" = { + name = "formidable"; + packageName = "formidable"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz"; + sha512 = "Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="; + }; + }; + "forwarded-0.1.2" = { + name = "forwarded"; + packageName = "forwarded"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"; + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; + }; + }; + "fragment-cache-0.2.1" = { + name = "fragment-cache"; + packageName = "fragment-cache"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"; + sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; + }; + }; + "fresh-0.5.2" = { + name = "fresh"; + packageName = "fresh"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; + }; + }; + "from2-2.3.0" = { + name = "from2"; + packageName = "from2"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz"; + sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af"; + }; + }; + "fs-extra-4.0.3" = { + name = "fs-extra"; + packageName = "fs-extra"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz"; + sha512 = "q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg=="; + }; + }; + "fs-write-stream-atomic-1.0.10" = { + name = "fs-write-stream-atomic"; + packageName = "fs-write-stream-atomic"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz"; + sha1 = "b47df53493ef911df75731e70a9ded0189db40c9"; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "fsevents-1.2.9" = { + name = "fsevents"; + packageName = "fsevents"; + version = "1.2.9"; + src = fetchurl { + url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz"; + sha512 = "oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw=="; + }; + }; + "function-bind-1.1.1" = { + name = "function-bind"; + packageName = "function-bind"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"; + sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="; + }; + }; + "get-caller-file-1.0.3" = { + name = "get-caller-file"; + packageName = "get-caller-file"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz"; + sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="; + }; + }; + "get-caller-file-2.0.5" = { + name = "get-caller-file"; + packageName = "get-caller-file"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; + sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; + }; + }; + "get-paths-0.0.4" = { + name = "get-paths"; + packageName = "get-paths"; + version = "0.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/get-paths/-/get-paths-0.0.4.tgz"; + sha512 = "+AxlfMGN7FuJr2zhT6aErH08HMKkRwynTTHtWCenIWkIZgx2OlkZKgt7SM4+rh8Dfi32lo6HcvqeTLxph3kjQw=="; + }; + }; + "get-stream-4.1.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"; + sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w=="; + }; + }; + "get-value-2.0.6" = { + name = "get-value"; + packageName = "get-value"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"; + sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; + }; + }; + "getpass-0.1.7" = { + name = "getpass"; + packageName = "getpass"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + }; + "glob-7.1.4" = { + name = "glob"; + packageName = "glob"; + version = "7.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; + sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; + }; + }; + "glob-parent-3.1.0" = { + name = "glob-parent"; + packageName = "glob-parent"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"; + sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; + }; + }; + "global-modules-1.0.0" = { + name = "global-modules"; + packageName = "global-modules"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz"; + sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg=="; + }; + }; + "global-prefix-1.0.2" = { + name = "global-prefix"; + packageName = "global-prefix"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz"; + sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe"; + }; + }; + "globals-11.12.0" = { + name = "globals"; + packageName = "globals"; + version = "11.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"; + sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="; + }; + }; + "globals-9.18.0" = { + name = "globals"; + packageName = "globals"; + version = "9.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz"; + sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="; + }; + }; + "globby-6.1.0" = { + name = "globby"; + packageName = "globby"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz"; + sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c"; + }; + }; + "globby-7.1.1" = { + name = "globby"; + packageName = "globby"; + version = "7.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz"; + sha1 = "fb2ccff9401f8600945dfada97440cca972b8680"; + }; + }; + "graceful-fs-4.1.15" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.1.15"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz"; + sha512 = "6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="; + }; + }; + "growly-1.3.0" = { + name = "growly"; + packageName = "growly"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz"; + sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081"; + }; + }; + "gzip-size-5.1.1" = { + name = "gzip-size"; + packageName = "gzip-size"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz"; + sha512 = "FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA=="; + }; + }; + "handle-thing-2.0.0" = { + name = "handle-thing"; + packageName = "handle-thing"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz"; + sha512 = "d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ=="; + }; + }; + "handlebars-4.3.3" = { + name = "handlebars"; + packageName = "handlebars"; + version = "4.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/handlebars/-/handlebars-4.3.3.tgz"; + sha512 = "VupOxR91xcGojfINrzMqrvlyYbBs39sXIrWa7YdaQWeBudOlvKEGvCczMfJPgnuwHE/zyH1M6J+IUP6cgDVyxg=="; + }; + }; + "har-schema-2.0.0" = { + name = "har-schema"; + packageName = "har-schema"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + }; + "har-validator-5.1.3" = { + name = "har-validator"; + packageName = "har-validator"; + version = "5.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"; + sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g=="; + }; + }; + "has-1.0.3" = { + name = "has"; + packageName = "has"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz"; + sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="; + }; + }; + "has-ansi-2.0.0" = { + name = "has-ansi"; + packageName = "has-ansi"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; + }; + }; + "has-flag-3.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + }; + "has-symbols-1.0.0" = { + name = "has-symbols"; + packageName = "has-symbols"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz"; + sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44"; + }; + }; + "has-value-0.3.1" = { + name = "has-value"; + packageName = "has-value"; + version = "0.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"; + sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; + }; + }; + "has-value-1.0.0" = { + name = "has-value"; + packageName = "has-value"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"; + sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; + }; + }; + "has-values-0.1.4" = { + name = "has-values"; + packageName = "has-values"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"; + sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; + }; + }; + "has-values-1.0.0" = { + name = "has-values"; + packageName = "has-values"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"; + sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; + }; + }; + "hash-base-3.0.4" = { + name = "hash-base"; + packageName = "hash-base"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz"; + sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918"; + }; + }; + "hash.js-1.1.7" = { + name = "hash.js"; + packageName = "hash.js"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; + sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; + }; + }; + "hmac-drbg-1.0.1" = { + name = "hmac-drbg"; + packageName = "hmac-drbg"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; + sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; + }; + }; + "home-or-tmp-2.0.0" = { + name = "home-or-tmp"; + packageName = "home-or-tmp"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz"; + sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8"; + }; + }; + "homedir-polyfill-1.0.3" = { + name = "homedir-polyfill"; + packageName = "homedir-polyfill"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz"; + sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA=="; + }; + }; + "hoopy-0.1.4" = { + name = "hoopy"; + packageName = "hoopy"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz"; + sha512 = "HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="; + }; + }; + "hosted-git-info-2.8.4" = { + name = "hosted-git-info"; + packageName = "hosted-git-info"; + version = "2.8.4"; + src = fetchurl { + url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz"; + sha512 = "pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ=="; + }; + }; + "hpack.js-2.1.6" = { + name = "hpack.js"; + packageName = "hpack.js"; + version = "2.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz"; + sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2"; + }; + }; + "html-encoding-sniffer-1.0.2" = { + name = "html-encoding-sniffer"; + packageName = "html-encoding-sniffer"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz"; + sha512 = "71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw=="; + }; + }; + "html-entities-1.2.1" = { + name = "html-entities"; + packageName = "html-entities"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz"; + sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f"; + }; + }; + "http-assert-1.4.1" = { + name = "http-assert"; + packageName = "http-assert"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz"; + sha512 = "rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw=="; + }; + }; + "http-deceiver-1.2.7" = { + name = "http-deceiver"; + packageName = "http-deceiver"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz"; + sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87"; + }; + }; + "http-errors-1.6.3" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz"; + sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d"; + }; + }; + "http-errors-1.7.2" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; + }; + }; + "http-parser-js-0.4.10" = { + name = "http-parser-js"; + packageName = "http-parser-js"; + version = "0.4.10"; + src = fetchurl { + url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz"; + sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4"; + }; + }; + "http-proxy-1.18.0" = { + name = "http-proxy"; + packageName = "http-proxy"; + version = "1.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz"; + sha512 = "84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ=="; + }; + }; + "http-proxy-middleware-0.19.1" = { + name = "http-proxy-middleware"; + packageName = "http-proxy-middleware"; + version = "0.19.1"; + src = fetchurl { + url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz"; + sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q=="; + }; + }; + "http-signature-1.2.0" = { + name = "http-signature"; + packageName = "http-signature"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + }; + "https-browserify-1.0.0" = { + name = "https-browserify"; + packageName = "https-browserify"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz"; + sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "ieee754-1.1.13" = { + name = "ieee754"; + packageName = "ieee754"; + version = "1.1.13"; + src = fetchurl { + url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz"; + sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="; + }; + }; + "iferr-0.1.5" = { + name = "iferr"; + packageName = "iferr"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz"; + sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"; + }; + }; + "ignore-3.3.10" = { + name = "ignore"; + packageName = "ignore"; + version = "3.3.10"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz"; + sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug=="; + }; + }; + "import-local-2.0.0" = { + name = "import-local"; + packageName = "import-local"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz"; + sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ=="; + }; + }; + "imurmurhash-0.1.4" = { + name = "imurmurhash"; + packageName = "imurmurhash"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + }; + "infer-owner-1.0.4" = { + name = "infer-owner"; + packageName = "infer-owner"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz"; + sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="; + }; + }; + "inflation-2.0.0" = { + name = "inflation"; + packageName = "inflation"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz"; + sha1 = "8b417e47c28f925a45133d914ca1fd389107f30f"; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.1" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"; + sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "ini-1.3.5" = { + name = "ini"; + packageName = "ini"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz"; + sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="; + }; + }; + "internal-ip-4.3.0" = { + name = "internal-ip"; + packageName = "internal-ip"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz"; + sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg=="; + }; + }; + "interpret-1.2.0" = { + name = "interpret"; + packageName = "interpret"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz"; + sha512 = "mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="; + }; + }; + "invariant-2.2.4" = { + name = "invariant"; + packageName = "invariant"; + version = "2.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"; + sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="; + }; + }; + "invert-kv-2.0.0" = { + name = "invert-kv"; + packageName = "invert-kv"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz"; + sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="; + }; + }; + "ip-1.1.5" = { + name = "ip"; + packageName = "ip"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz"; + sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a"; + }; + }; + "ip-regex-2.1.0" = { + name = "ip-regex"; + packageName = "ip-regex"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz"; + sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"; + }; + }; + "ipaddr.js-1.9.0" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz"; + sha512 = "M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="; + }; + }; + "is-accessor-descriptor-0.1.6" = { + name = "is-accessor-descriptor"; + packageName = "is-accessor-descriptor"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"; + sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"; + }; + }; + "is-accessor-descriptor-1.0.0" = { + name = "is-accessor-descriptor"; + packageName = "is-accessor-descriptor"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"; + sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ=="; + }; + }; + "is-arrayish-0.2.1" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"; + sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; + }; + }; + "is-binary-path-1.0.1" = { + name = "is-binary-path"; + packageName = "is-binary-path"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"; + sha1 = "75f16642b480f187a711c814161fd3a4a7655898"; + }; + }; + "is-buffer-1.1.6" = { + name = "is-buffer"; + packageName = "is-buffer"; + version = "1.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"; + sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="; + }; + }; + "is-buffer-2.0.3" = { + name = "is-buffer"; + packageName = "is-buffer"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz"; + sha512 = "U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="; + }; + }; + "is-callable-1.1.4" = { + name = "is-callable"; + packageName = "is-callable"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz"; + sha512 = "r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="; + }; + }; + "is-ci-2.0.0" = { + name = "is-ci"; + packageName = "is-ci"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz"; + sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w=="; + }; + }; + "is-data-descriptor-0.1.4" = { + name = "is-data-descriptor"; + packageName = "is-data-descriptor"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"; + sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56"; + }; + }; + "is-data-descriptor-1.0.0" = { + name = "is-data-descriptor"; + packageName = "is-data-descriptor"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"; + sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ=="; + }; + }; + "is-date-object-1.0.1" = { + name = "is-date-object"; + packageName = "is-date-object"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz"; + sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"; + }; + }; + "is-descriptor-0.1.6" = { + name = "is-descriptor"; + packageName = "is-descriptor"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"; + sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg=="; + }; + }; + "is-descriptor-1.0.2" = { + name = "is-descriptor"; + packageName = "is-descriptor"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"; + sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg=="; + }; + }; + "is-expression-3.0.0" = { + name = "is-expression"; + packageName = "is-expression"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz"; + sha1 = "39acaa6be7fd1f3471dc42c7416e61c24317ac9f"; + }; + }; + "is-extendable-0.1.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + }; + "is-extendable-1.0.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"; + sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=="; + }; + }; + "is-extglob-2.1.1" = { + name = "is-extglob"; + packageName = "is-extglob"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + }; + "is-finite-1.0.2" = { + name = "is-finite"; + packageName = "is-finite"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"; + sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-fullwidth-code-point-2.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; + }; + }; + "is-generator-fn-2.1.0" = { + name = "is-generator-fn"; + packageName = "is-generator-fn"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"; + sha512 = "cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="; + }; + }; + "is-generator-function-1.0.7" = { + name = "is-generator-function"; + packageName = "is-generator-function"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz"; + sha512 = "YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw=="; + }; + }; + "is-glob-3.1.0" = { + name = "is-glob"; + packageName = "is-glob"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"; + sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; + }; + }; + "is-glob-4.0.1" = { + name = "is-glob"; + packageName = "is-glob"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"; + sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg=="; + }; + }; + "is-number-3.0.0" = { + name = "is-number"; + packageName = "is-number"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"; + sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; + }; + }; + "is-path-cwd-2.2.0" = { + name = "is-path-cwd"; + packageName = "is-path-cwd"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz"; + sha512 = "w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="; + }; + }; + "is-path-in-cwd-2.1.0" = { + name = "is-path-in-cwd"; + packageName = "is-path-in-cwd"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz"; + sha512 = "rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ=="; + }; + }; + "is-path-inside-2.1.0" = { + name = "is-path-inside"; + packageName = "is-path-inside"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz"; + sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg=="; + }; + }; + "is-plain-object-2.0.4" = { + name = "is-plain-object"; + packageName = "is-plain-object"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"; + sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="; + }; + }; + "is-promise-2.1.0" = { + name = "is-promise"; + packageName = "is-promise"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz"; + sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"; + }; + }; + "is-regex-1.0.4" = { + name = "is-regex"; + packageName = "is-regex"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"; + sha1 = "5517489b547091b0930e095654ced25ee97e9491"; + }; + }; + "is-stream-1.1.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"; + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; + }; + }; + "is-symbol-1.0.2" = { + name = "is-symbol"; + packageName = "is-symbol"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz"; + sha512 = "HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw=="; + }; + }; + "is-typedarray-1.0.0" = { + name = "is-typedarray"; + packageName = "is-typedarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + }; + "is-whitespace-0.3.0" = { + name = "is-whitespace"; + packageName = "is-whitespace"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz"; + sha1 = "1639ecb1be036aec69a54cbb401cfbed7114ab7f"; + }; + }; + "is-windows-1.0.2" = { + name = "is-windows"; + packageName = "is-windows"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"; + sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="; + }; + }; + "is-wsl-1.1.0" = { + name = "is-wsl"; + packageName = "is-wsl"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"; + sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d"; + }; + }; + "isarray-0.0.1" = { + name = "isarray"; + packageName = "isarray"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"; + sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "isexe-2.0.0" = { + name = "isexe"; + packageName = "isexe"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + }; + "isobject-2.1.0" = { + name = "isobject"; + packageName = "isobject"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"; + sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; + }; + }; + "isobject-3.0.1" = { + name = "isobject"; + packageName = "isobject"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"; + sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; + }; + }; + "isomorphic-ws-4.0.1" = { + name = "isomorphic-ws"; + packageName = "isomorphic-ws"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz"; + sha512 = "BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="; + }; + }; + "isstream-0.1.2" = { + name = "isstream"; + packageName = "isstream"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + }; + "istanbul-lib-coverage-2.0.5" = { + name = "istanbul-lib-coverage"; + packageName = "istanbul-lib-coverage"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz"; + sha512 = "8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA=="; + }; + }; + "istanbul-lib-instrument-3.3.0" = { + name = "istanbul-lib-instrument"; + packageName = "istanbul-lib-instrument"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz"; + sha512 = "5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA=="; + }; + }; + "istanbul-lib-report-2.0.8" = { + name = "istanbul-lib-report"; + packageName = "istanbul-lib-report"; + version = "2.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz"; + sha512 = "fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ=="; + }; + }; + "istanbul-lib-source-maps-3.0.6" = { + name = "istanbul-lib-source-maps"; + packageName = "istanbul-lib-source-maps"; + version = "3.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz"; + sha512 = "R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw=="; + }; + }; + "istanbul-reports-2.2.6" = { + name = "istanbul-reports"; + packageName = "istanbul-reports"; + version = "2.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz"; + sha512 = "SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA=="; + }; + }; + "jest-24.8.0" = { + name = "jest"; + packageName = "jest"; + version = "24.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest/-/jest-24.8.0.tgz"; + sha512 = "o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg=="; + }; + }; + "jest-changed-files-24.9.0" = { + name = "jest-changed-files"; + packageName = "jest-changed-files"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz"; + sha512 = "6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg=="; + }; + }; + "jest-cli-24.9.0" = { + name = "jest-cli"; + packageName = "jest-cli"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz"; + sha512 = "+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg=="; + }; + }; + "jest-config-24.9.0" = { + name = "jest-config"; + packageName = "jest-config"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz"; + sha512 = "RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ=="; + }; + }; + "jest-diff-24.9.0" = { + name = "jest-diff"; + packageName = "jest-diff"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz"; + sha512 = "qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ=="; + }; + }; + "jest-docblock-24.9.0" = { + name = "jest-docblock"; + packageName = "jest-docblock"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz"; + sha512 = "F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA=="; + }; + }; + "jest-each-24.9.0" = { + name = "jest-each"; + packageName = "jest-each"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz"; + sha512 = "ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog=="; + }; + }; + "jest-environment-jsdom-24.9.0" = { + name = "jest-environment-jsdom"; + packageName = "jest-environment-jsdom"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz"; + sha512 = "Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA=="; + }; + }; + "jest-environment-node-24.9.0" = { + name = "jest-environment-node"; + packageName = "jest-environment-node"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz"; + sha512 = "6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA=="; + }; + }; + "jest-get-type-24.9.0" = { + name = "jest-get-type"; + packageName = "jest-get-type"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz"; + sha512 = "lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="; + }; + }; + "jest-haste-map-24.9.0" = { + name = "jest-haste-map"; + packageName = "jest-haste-map"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz"; + sha512 = "kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ=="; + }; + }; + "jest-jasmine2-24.9.0" = { + name = "jest-jasmine2"; + packageName = "jest-jasmine2"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz"; + sha512 = "Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw=="; + }; + }; + "jest-leak-detector-24.9.0" = { + name = "jest-leak-detector"; + packageName = "jest-leak-detector"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz"; + sha512 = "tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA=="; + }; + }; + "jest-matcher-utils-24.9.0" = { + name = "jest-matcher-utils"; + packageName = "jest-matcher-utils"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz"; + sha512 = "OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA=="; + }; + }; + "jest-message-util-24.9.0" = { + name = "jest-message-util"; + packageName = "jest-message-util"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz"; + sha512 = "oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw=="; + }; + }; + "jest-mock-24.9.0" = { + name = "jest-mock"; + packageName = "jest-mock"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz"; + sha512 = "3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w=="; + }; + }; + "jest-pnp-resolver-1.2.1" = { + name = "jest-pnp-resolver"; + packageName = "jest-pnp-resolver"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz"; + sha512 = "pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ=="; + }; + }; + "jest-regex-util-24.9.0" = { + name = "jest-regex-util"; + packageName = "jest-regex-util"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz"; + sha512 = "05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA=="; + }; + }; + "jest-resolve-24.9.0" = { + name = "jest-resolve"; + packageName = "jest-resolve"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz"; + sha512 = "TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ=="; + }; + }; + "jest-resolve-dependencies-24.9.0" = { + name = "jest-resolve-dependencies"; + packageName = "jest-resolve-dependencies"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz"; + sha512 = "Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g=="; + }; + }; + "jest-runner-24.9.0" = { + name = "jest-runner"; + packageName = "jest-runner"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz"; + sha512 = "KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg=="; + }; + }; + "jest-runtime-24.9.0" = { + name = "jest-runtime"; + packageName = "jest-runtime"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz"; + sha512 = "8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw=="; + }; + }; + "jest-serializer-24.9.0" = { + name = "jest-serializer"; + packageName = "jest-serializer"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz"; + sha512 = "DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ=="; + }; + }; + "jest-snapshot-24.9.0" = { + name = "jest-snapshot"; + packageName = "jest-snapshot"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz"; + sha512 = "uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew=="; + }; + }; + "jest-util-24.9.0" = { + name = "jest-util"; + packageName = "jest-util"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz"; + sha512 = "x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg=="; + }; + }; + "jest-validate-24.9.0" = { + name = "jest-validate"; + packageName = "jest-validate"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz"; + sha512 = "HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ=="; + }; + }; + "jest-watcher-24.9.0" = { + name = "jest-watcher"; + packageName = "jest-watcher"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz"; + sha512 = "+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw=="; + }; + }; + "jest-worker-24.9.0" = { + name = "jest-worker"; + packageName = "jest-worker"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz"; + sha512 = "51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw=="; + }; + }; + "js-beautify-1.10.2" = { + name = "js-beautify"; + packageName = "js-beautify"; + version = "1.10.2"; + src = fetchurl { + url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.2.tgz"; + sha512 = "ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ=="; + }; + }; + "js-stringify-1.0.2" = { + name = "js-stringify"; + packageName = "js-stringify"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz"; + sha1 = "1736fddfd9724f28a3682adc6230ae7e4e9679db"; + }; + }; + "js-tokens-3.0.2" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"; + sha1 = "9866df395102130e38f7f996bceb65443209c25b"; + }; + }; + "js-tokens-4.0.0" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; + sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; + }; + }; + "js-yaml-3.13.1" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; + sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; + }; + }; + "jsbn-0.1.1" = { + name = "jsbn"; + packageName = "jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + }; + "jsdom-11.12.0" = { + name = "jsdom"; + packageName = "jsdom"; + version = "11.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz"; + sha512 = "y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw=="; + }; + }; + "jsesc-0.5.0" = { + name = "jsesc"; + packageName = "jsesc"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"; + sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d"; + }; + }; + "jsesc-1.3.0" = { + name = "jsesc"; + packageName = "jsesc"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz"; + sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b"; + }; + }; + "jsesc-2.5.2" = { + name = "jsesc"; + packageName = "jsesc"; + version = "2.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"; + sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="; + }; + }; + "json-parse-better-errors-1.0.2" = { + name = "json-parse-better-errors"; + packageName = "json-parse-better-errors"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; + sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="; + }; + }; + "json-schema-0.2.3" = { + name = "json-schema"; + packageName = "json-schema"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + }; + "json-schema-traverse-0.4.1" = { + name = "json-schema-traverse"; + packageName = "json-schema-traverse"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; + }; + }; + "json-stream-1.0.0" = { + name = "json-stream"; + packageName = "json-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz"; + sha1 = "1a3854e28d2bbeeab31cc7ddf683d2ddc5652708"; + }; + }; + "json-stringify-safe-5.0.1" = { + name = "json-stringify-safe"; + packageName = "json-stringify-safe"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + }; + "json3-3.3.3" = { + name = "json3"; + packageName = "json3"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz"; + sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA=="; + }; + }; + "json5-0.5.1" = { + name = "json5"; + packageName = "json5"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz"; + sha1 = "1eade7acc012034ad84e2396767ead9fa5495821"; + }; + }; + "json5-1.0.1" = { + name = "json5"; + packageName = "json5"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"; + sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="; + }; + }; + "json5-2.1.0" = { + name = "json5"; + packageName = "json5"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz"; + sha512 = "8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ=="; + }; + }; + "jsonfile-4.0.0" = { + name = "jsonfile"; + packageName = "jsonfile"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"; + sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb"; + }; + }; + "jsonpath-plus-0.19.0" = { + name = "jsonpath-plus"; + packageName = "jsonpath-plus"; + version = "0.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz"; + sha512 = "GSVwsrzW9LsA5lzsqe4CkuZ9wp+kxBb2GwNniaWzI2YFn5Ig42rSW8ZxVpWXaAfakXNrx5pgY5AbQq7kzX29kg=="; + }; + }; + "jsprim-1.4.1" = { + name = "jsprim"; + packageName = "jsprim"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + }; + "jstransformer-1.0.0" = { + name = "jstransformer"; + packageName = "jstransformer"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz"; + sha1 = "ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"; + }; + }; + "keygrip-1.0.3" = { + name = "keygrip"; + packageName = "keygrip"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/keygrip/-/keygrip-1.0.3.tgz"; + sha512 = "/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g=="; + }; + }; + "killable-1.0.1" = { + name = "killable"; + packageName = "killable"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz"; + sha512 = "LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg=="; + }; + }; + "kind-of-3.2.2" = { + name = "kind-of"; + packageName = "kind-of"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"; + sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; + }; + }; + "kind-of-4.0.0" = { + name = "kind-of"; + packageName = "kind-of"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"; + sha1 = "20813df3d712928b207378691a45066fae72dd57"; + }; + }; + "kind-of-5.1.0" = { + name = "kind-of"; + packageName = "kind-of"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"; + sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="; + }; + }; + "kind-of-6.0.2" = { + name = "kind-of"; + packageName = "kind-of"; + version = "6.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"; + sha512 = "s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="; + }; + }; + "kleur-3.0.3" = { + name = "kleur"; + packageName = "kleur"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz"; + sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="; + }; + }; + "koa-2.7.0" = { + name = "koa"; + packageName = "koa"; + version = "2.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa/-/koa-2.7.0.tgz"; + sha512 = "7ojD05s2Q+hFudF8tDLZ1CpCdVZw8JQELWSkcfG9bdtoTDzMmkRF6BQBU7JzIzCCOY3xd3tftiy/loHBUYaY2Q=="; + }; + }; + "koa-body-4.1.0" = { + name = "koa-body"; + packageName = "koa-body"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-body/-/koa-body-4.1.0.tgz"; + sha512 = "rWkMfMaCjFmIAMohtjlrg4BqDzcotK5BdZhiwJu1ONuR1ceoFUjnH3wp0hEV39HuBlc9tI3eUUFMK4Cp6ccFtA=="; + }; + }; + "koa-compose-3.2.1" = { + name = "koa-compose"; + packageName = "koa-compose"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz"; + sha1 = "a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"; + }; + }; + "koa-compose-4.1.0" = { + name = "koa-compose"; + packageName = "koa-compose"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz"; + sha512 = "8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="; + }; + }; + "koa-convert-1.2.0" = { + name = "koa-convert"; + packageName = "koa-convert"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz"; + sha1 = "da40875df49de0539098d1700b50820cebcd21d0"; + }; + }; + "koa-is-json-1.0.0" = { + name = "koa-is-json"; + packageName = "koa-is-json"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz"; + sha1 = "273c07edcdcb8df6a2c1ab7d59ee76491451ec14"; + }; + }; + "koa-router-7.4.0" = { + name = "koa-router"; + packageName = "koa-router"; + version = "7.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz"; + sha512 = "IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g=="; + }; + }; + "koa-send-5.0.0" = { + name = "koa-send"; + packageName = "koa-send"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-send/-/koa-send-5.0.0.tgz"; + sha512 = "90ZotV7t0p3uN9sRwW2D484rAaKIsD8tAVtypw/aBU+ryfV+fR2xrcAwhI8Wl6WRkojLUs/cB9SBSCuIb+IanQ=="; + }; + }; + "koa-static-5.0.0" = { + name = "koa-static"; + packageName = "koa-static"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz"; + sha512 = "UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ=="; + }; + }; + "koa-views-6.2.0" = { + name = "koa-views"; + packageName = "koa-views"; + version = "6.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/koa-views/-/koa-views-6.2.0.tgz"; + sha512 = "Y1rCFd4I5uSjZg0r4Zzs4hDjYTSGHhdBM5DuEhccWzknWikwOfc2ph/DkrocKhtQfFbLPHkkz/Ox38AL+p99BA=="; + }; + }; + "lazy-cache-1.0.4" = { + name = "lazy-cache"; + packageName = "lazy-cache"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"; + sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"; + }; + }; + "lcid-2.0.0" = { + name = "lcid"; + packageName = "lcid"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz"; + sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA=="; + }; + }; + "left-pad-1.3.0" = { + name = "left-pad"; + packageName = "left-pad"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz"; + sha512 = "XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="; + }; + }; + "leven-3.1.0" = { + name = "leven"; + packageName = "leven"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz"; + sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="; + }; + }; + "levn-0.3.0" = { + name = "levn"; + packageName = "levn"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz"; + sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; + }; + }; + "load-json-file-4.0.0" = { + name = "load-json-file"; + packageName = "load-json-file"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz"; + sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b"; + }; + }; + "loader-runner-2.4.0" = { + name = "loader-runner"; + packageName = "loader-runner"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz"; + sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="; + }; + }; + "loader-utils-1.2.3" = { + name = "loader-utils"; + packageName = "loader-utils"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz"; + sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA=="; + }; + }; + "locate-path-2.0.0" = { + name = "locate-path"; + packageName = "locate-path"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"; + sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; + }; + }; + "locate-path-3.0.0" = { + name = "locate-path"; + packageName = "locate-path"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"; + sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="; + }; + }; + "lodash-4.17.15" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.15"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"; + sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="; + }; + }; + "lodash.camelcase-4.3.0" = { + name = "lodash.camelcase"; + packageName = "lodash.camelcase"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"; + sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6"; + }; + }; + "lodash.clonedeep-4.5.0" = { + name = "lodash.clonedeep"; + packageName = "lodash.clonedeep"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"; + sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef"; + }; + }; + "lodash.sortby-4.7.0" = { + name = "lodash.sortby"; + packageName = "lodash.sortby"; + version = "4.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz"; + sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438"; + }; + }; + "log-symbols-2.2.0" = { + name = "log-symbols"; + packageName = "log-symbols"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz"; + sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg=="; + }; + }; + "loglevel-1.6.4" = { + name = "loglevel"; + packageName = "loglevel"; + version = "1.6.4"; + src = fetchurl { + url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz"; + sha512 = "p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g=="; + }; + }; + "loglevelnext-1.0.5" = { + name = "loglevelnext"; + packageName = "loglevelnext"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz"; + sha512 = "V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A=="; + }; + }; + "longest-1.0.1" = { + name = "longest"; + packageName = "longest"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz"; + sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097"; + }; + }; + "loose-envify-1.4.0" = { + name = "loose-envify"; + packageName = "loose-envify"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"; + sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="; + }; + }; + "lru-cache-4.1.5" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "4.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; + sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; + }; + }; + "lru-cache-5.1.1" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"; + sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="; + }; + }; + "make-dir-1.3.0" = { + name = "make-dir"; + packageName = "make-dir"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz"; + sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ=="; + }; + }; + "make-dir-2.1.0" = { + name = "make-dir"; + packageName = "make-dir"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz"; + sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA=="; + }; + }; + "make-error-1.3.5" = { + name = "make-error"; + packageName = "make-error"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz"; + sha512 = "c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g=="; + }; + }; + "makeerror-1.0.11" = { + name = "makeerror"; + packageName = "makeerror"; + version = "1.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz"; + sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c"; + }; + }; + "mamacro-0.0.3" = { + name = "mamacro"; + packageName = "mamacro"; + version = "0.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz"; + sha512 = "qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA=="; + }; + }; + "map-age-cleaner-0.1.3" = { + name = "map-age-cleaner"; + packageName = "map-age-cleaner"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz"; + sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w=="; + }; + }; + "map-cache-0.2.2" = { + name = "map-cache"; + packageName = "map-cache"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"; + sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; + }; + }; + "map-visit-1.0.0" = { + name = "map-visit"; + packageName = "map-visit"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"; + sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; + }; + }; + "md5.js-1.3.5" = { + name = "md5.js"; + packageName = "md5.js"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz"; + sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg=="; + }; + }; + "media-typer-0.3.0" = { + name = "media-typer"; + packageName = "media-typer"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; + }; + }; + "mem-4.3.0" = { + name = "mem"; + packageName = "mem"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz"; + sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w=="; + }; + }; + "memory-fs-0.4.1" = { + name = "memory-fs"; + packageName = "memory-fs"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz"; + sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552"; + }; + }; + "merge-descriptors-1.0.1" = { + name = "merge-descriptors"; + packageName = "merge-descriptors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; + }; + }; + "merge-stream-2.0.0" = { + name = "merge-stream"; + packageName = "merge-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"; + sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="; + }; + }; + "methods-1.1.2" = { + name = "methods"; + packageName = "methods"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"; + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; + }; + }; + "micromatch-3.1.10" = { + name = "micromatch"; + packageName = "micromatch"; + version = "3.1.10"; + src = fetchurl { + url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"; + sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg=="; + }; + }; + "miller-rabin-4.0.1" = { + name = "miller-rabin"; + packageName = "miller-rabin"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz"; + sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA=="; + }; + }; + "mime-1.6.0" = { + name = "mime"; + packageName = "mime"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; + }; + }; + "mime-2.4.4" = { + name = "mime"; + packageName = "mime"; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz"; + sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="; + }; + }; + "mime-db-1.40.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.40.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz"; + sha512 = "jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="; + }; + }; + "mime-types-2.1.24" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.24"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz"; + sha512 = "WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ=="; + }; + }; + "mimic-fn-1.2.0" = { + name = "mimic-fn"; + packageName = "mimic-fn"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"; + sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="; + }; + }; + "mimic-fn-2.1.0" = { + name = "mimic-fn"; + packageName = "mimic-fn"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"; + sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="; + }; + }; + "minimalistic-assert-1.0.1" = { + name = "minimalistic-assert"; + packageName = "minimalistic-assert"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; + }; + }; + "minimalistic-crypto-utils-1.0.1" = { + name = "minimalistic-crypto-utils"; + packageName = "minimalistic-crypto-utils"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"; + sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-0.0.10" = { + name = "minimist"; + packageName = "minimist"; + version = "0.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz"; + sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf"; + }; + }; + "minimist-0.0.8" = { + name = "minimist"; + packageName = "minimist"; + version = "0.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + }; + "minimist-1.2.0" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + }; + "mississippi-2.0.0" = { + name = "mississippi"; + packageName = "mississippi"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz"; + sha512 = "zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw=="; + }; + }; + "mississippi-3.0.0" = { + name = "mississippi"; + packageName = "mississippi"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz"; + sha512 = "x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA=="; + }; + }; + "mixin-deep-1.3.2" = { + name = "mixin-deep"; + packageName = "mixin-deep"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"; + sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="; + }; + }; + "mkdirp-0.5.1" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + }; + "moment-2.24.0" = { + name = "moment"; + packageName = "moment"; + version = "2.24.0"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz"; + sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="; + }; + }; + "moment-timezone-0.5.26" = { + name = "moment-timezone"; + packageName = "moment-timezone"; + version = "0.5.26"; + src = fetchurl { + url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz"; + sha512 = "sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g=="; + }; + }; + "move-concurrently-1.0.1" = { + name = "move-concurrently"; + packageName = "move-concurrently"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz"; + sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92"; + }; + }; + "ms-2.0.0" = { + name = "ms"; + packageName = "ms"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + }; + "ms-2.1.1" = { + name = "ms"; + packageName = "ms"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; + }; + }; + "ms-2.1.2" = { + name = "ms"; + packageName = "ms"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; + sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; + }; + }; + "multicast-dns-6.2.3" = { + name = "multicast-dns"; + packageName = "multicast-dns"; + version = "6.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz"; + sha512 = "ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g=="; + }; + }; + "multicast-dns-service-types-1.1.0" = { + name = "multicast-dns-service-types"; + packageName = "multicast-dns-service-types"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz"; + sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901"; + }; + }; + "mz-2.7.0" = { + name = "mz"; + packageName = "mz"; + version = "2.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"; + sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="; + }; + }; + "nan-2.14.0" = { + name = "nan"; + packageName = "nan"; + version = "2.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"; + sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="; + }; + }; + "nanomatch-1.2.13" = { + name = "nanomatch"; + packageName = "nanomatch"; + version = "1.2.13"; + src = fetchurl { + url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"; + sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="; + }; + }; + "natural-compare-1.4.0" = { + name = "natural-compare"; + packageName = "natural-compare"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"; + sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; + }; + }; + "negotiator-0.6.2" = { + name = "negotiator"; + packageName = "negotiator"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"; + sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="; + }; + }; + "neo-async-2.6.1" = { + name = "neo-async"; + packageName = "neo-async"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz"; + sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="; + }; + }; + "next-tick-1.0.0" = { + name = "next-tick"; + packageName = "next-tick"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz"; + sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c"; + }; + }; + "nice-try-1.0.5" = { + name = "nice-try"; + packageName = "nice-try"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"; + sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="; + }; + }; + "node-forge-0.8.2" = { + name = "node-forge"; + packageName = "node-forge"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/node-forge/-/node-forge-0.8.2.tgz"; + sha512 = "mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg=="; + }; + }; + "node-int64-0.4.0" = { + name = "node-int64"; + packageName = "node-int64"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"; + sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b"; + }; + }; + "node-libs-browser-2.2.1" = { + name = "node-libs-browser"; + packageName = "node-libs-browser"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz"; + sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q=="; + }; + }; + "node-modules-regexp-1.0.0" = { + name = "node-modules-regexp"; + packageName = "node-modules-regexp"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz"; + sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40"; + }; + }; + "node-notifier-5.4.3" = { + name = "node-notifier"; + packageName = "node-notifier"; + version = "5.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz"; + sha512 = "M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q=="; + }; + }; + "nopt-4.0.1" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"; + sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + }; + }; + "normalize-package-data-2.5.0" = { + name = "normalize-package-data"; + packageName = "normalize-package-data"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"; + sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="; + }; + }; + "normalize-path-2.1.1" = { + name = "normalize-path"; + packageName = "normalize-path"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"; + sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; + }; + }; + "normalize-path-3.0.0" = { + name = "normalize-path"; + packageName = "normalize-path"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"; + sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="; + }; + }; + "npm-run-path-2.0.2" = { + name = "npm-run-path"; + packageName = "npm-run-path"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"; + sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f"; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "nwsapi-2.1.4" = { + name = "nwsapi"; + packageName = "nwsapi"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz"; + sha512 = "iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw=="; + }; + }; + "oauth-sign-0.9.0" = { + name = "oauth-sign"; + packageName = "oauth-sign"; + version = "0.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "object-copy-0.1.0" = { + name = "object-copy"; + packageName = "object-copy"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"; + sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; + }; + }; + "object-inspect-1.6.0" = { + name = "object-inspect"; + packageName = "object-inspect"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz"; + sha512 = "GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="; + }; + }; + "object-keys-1.1.1" = { + name = "object-keys"; + packageName = "object-keys"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"; + sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="; + }; + }; + "object-visit-1.0.1" = { + name = "object-visit"; + packageName = "object-visit"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"; + sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; + }; + }; + "object.assign-4.1.0" = { + name = "object.assign"; + packageName = "object.assign"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz"; + sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w=="; + }; + }; + "object.getownpropertydescriptors-2.0.3" = { + name = "object.getownpropertydescriptors"; + packageName = "object.getownpropertydescriptors"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz"; + sha1 = "8758c846f5b407adab0f236e0986f14b051caa16"; + }; + }; + "object.pick-1.3.0" = { + name = "object.pick"; + packageName = "object.pick"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"; + sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; + }; + }; + "obuf-1.1.2" = { + name = "obuf"; + packageName = "obuf"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz"; + sha512 = "PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="; + }; + }; + "on-finished-2.3.0" = { + name = "on-finished"; + packageName = "on-finished"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "onetime-2.0.1" = { + name = "onetime"; + packageName = "onetime"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz"; + sha1 = "067428230fd67443b2794b22bba528b6867962d4"; + }; + }; + "only-0.0.2" = { + name = "only"; + packageName = "only"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/only/-/only-0.0.2.tgz"; + sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4"; + }; + }; + "opener-1.5.1" = { + name = "opener"; + packageName = "opener"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz"; + sha512 = "goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA=="; + }; + }; + "opn-5.5.0" = { + name = "opn"; + packageName = "opn"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz"; + sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA=="; + }; + }; + "optimist-0.6.1" = { + name = "optimist"; + packageName = "optimist"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz"; + sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686"; + }; + }; + "optionator-0.8.2" = { + name = "optionator"; + packageName = "optionator"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz"; + sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64"; + }; + }; + "ora-3.4.0" = { + name = "ora"; + packageName = "ora"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz"; + sha512 = "eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="; + }; + }; + "original-1.0.2" = { + name = "original"; + packageName = "original"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz"; + sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg=="; + }; + }; + "os-browserify-0.3.0" = { + name = "os-browserify"; + packageName = "os-browserify"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz"; + sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-locale-3.1.0" = { + name = "os-locale"; + packageName = "os-locale"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz"; + sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q=="; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "p-defer-1.0.0" = { + name = "p-defer"; + packageName = "p-defer"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz"; + sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"; + }; + }; + "p-each-series-1.0.0" = { + name = "p-each-series"; + packageName = "p-each-series"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz"; + sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"; + }; + }; + "p-finally-1.0.0" = { + name = "p-finally"; + packageName = "p-finally"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"; + sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae"; + }; + }; + "p-is-promise-2.1.0" = { + name = "p-is-promise"; + packageName = "p-is-promise"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz"; + sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="; + }; + }; + "p-limit-1.3.0" = { + name = "p-limit"; + packageName = "p-limit"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz"; + sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="; + }; + }; + "p-limit-2.2.1" = { + name = "p-limit"; + packageName = "p-limit"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz"; + sha512 = "85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg=="; + }; + }; + "p-locate-2.0.0" = { + name = "p-locate"; + packageName = "p-locate"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"; + sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; + }; + }; + "p-locate-3.0.0" = { + name = "p-locate"; + packageName = "p-locate"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"; + sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="; + }; + }; + "p-map-2.1.0" = { + name = "p-map"; + packageName = "p-map"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz"; + sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="; + }; + }; + "p-reduce-1.0.0" = { + name = "p-reduce"; + packageName = "p-reduce"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz"; + sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"; + }; + }; + "p-retry-3.0.1" = { + name = "p-retry"; + packageName = "p-retry"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz"; + sha512 = "XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w=="; + }; + }; + "p-try-1.0.0" = { + name = "p-try"; + packageName = "p-try"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz"; + sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; + }; + }; + "p-try-2.2.0" = { + name = "p-try"; + packageName = "p-try"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"; + sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="; + }; + }; + "pako-1.0.10" = { + name = "pako"; + packageName = "pako"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz"; + sha512 = "0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw=="; + }; + }; + "parallel-transform-1.2.0" = { + name = "parallel-transform"; + packageName = "parallel-transform"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz"; + sha512 = "P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg=="; + }; + }; + "parse-asn1-5.1.5" = { + name = "parse-asn1"; + packageName = "parse-asn1"; + version = "5.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz"; + sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ=="; + }; + }; + "parse-json-4.0.0" = { + name = "parse-json"; + packageName = "parse-json"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz"; + sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0"; + }; + }; + "parse-passwd-1.0.0" = { + name = "parse-passwd"; + packageName = "parse-passwd"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz"; + sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6"; + }; + }; + "parse5-4.0.0" = { + name = "parse5"; + packageName = "parse5"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz"; + sha512 = "VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA=="; + }; + }; + "parseurl-1.3.3" = { + name = "parseurl"; + packageName = "parseurl"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; + }; + }; + "pascalcase-0.1.1" = { + name = "pascalcase"; + packageName = "pascalcase"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"; + sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; + }; + }; + "path-browserify-0.0.1" = { + name = "path-browserify"; + packageName = "path-browserify"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz"; + sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="; + }; + }; + "path-dirname-1.0.2" = { + name = "path-dirname"; + packageName = "path-dirname"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"; + sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; + }; + }; + "path-exists-3.0.0" = { + name = "path-exists"; + packageName = "path-exists"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"; + sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "path-is-inside-1.0.2" = { + name = "path-is-inside"; + packageName = "path-is-inside"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"; + sha1 = "365417dede44430d1c11af61027facf074bdfc53"; + }; + }; + "path-key-2.0.1" = { + name = "path-key"; + packageName = "path-key"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"; + sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; + }; + }; + "path-parse-1.0.6" = { + name = "path-parse"; + packageName = "path-parse"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; + }; + }; + "path-to-regexp-0.1.7" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; + sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; + }; + }; + "path-to-regexp-1.7.0" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz"; + sha1 = "59fde0f435badacba103a84e9d3bc64e96b9937d"; + }; + }; + "path-type-3.0.0" = { + name = "path-type"; + packageName = "path-type"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz"; + sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg=="; + }; + }; + "pbkdf2-3.0.17" = { + name = "pbkdf2"; + packageName = "pbkdf2"; + version = "3.0.17"; + src = fetchurl { + url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz"; + sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA=="; + }; + }; + "performance-now-2.1.0" = { + name = "performance-now"; + packageName = "performance-now"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + }; + "pify-2.3.0" = { + name = "pify"; + packageName = "pify"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"; + sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; + }; + }; + "pify-3.0.0" = { + name = "pify"; + packageName = "pify"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + }; + "pify-4.0.1" = { + name = "pify"; + packageName = "pify"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"; + sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="; + }; + }; + "pinkie-2.0.4" = { + name = "pinkie"; + packageName = "pinkie"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"; + sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; + }; + }; + "pinkie-promise-2.0.1" = { + name = "pinkie-promise"; + packageName = "pinkie-promise"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; + sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; + }; + }; + "pirates-4.0.1" = { + name = "pirates"; + packageName = "pirates"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz"; + sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA=="; + }; + }; + "pkg-dir-2.0.0" = { + name = "pkg-dir"; + packageName = "pkg-dir"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz"; + sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b"; + }; + }; + "pkg-dir-3.0.0" = { + name = "pkg-dir"; + packageName = "pkg-dir"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz"; + sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw=="; + }; + }; + "pn-1.1.0" = { + name = "pn"; + packageName = "pn"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz"; + sha512 = "2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="; + }; + }; + "portfinder-1.0.24" = { + name = "portfinder"; + packageName = "portfinder"; + version = "1.0.24"; + src = fetchurl { + url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz"; + sha512 = "ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg=="; + }; + }; + "posix-character-classes-0.1.1" = { + name = "posix-character-classes"; + packageName = "posix-character-classes"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"; + sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"; + }; + }; + "prelude-ls-1.1.2" = { + name = "prelude-ls"; + packageName = "prelude-ls"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"; + sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; + }; + }; + "prettier-1.18.2" = { + name = "prettier"; + packageName = "prettier"; + version = "1.18.2"; + src = fetchurl { + url = "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz"; + sha512 = "OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw=="; + }; + }; + "pretty-2.0.0" = { + name = "pretty"; + packageName = "pretty"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz"; + sha1 = "adbc7960b7bbfe289a557dc5f737619a220d06a5"; + }; + }; + "pretty-format-24.9.0" = { + name = "pretty-format"; + packageName = "pretty-format"; + version = "24.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz"; + sha512 = "00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA=="; + }; + }; + "private-0.1.8" = { + name = "private"; + packageName = "private"; + version = "0.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz"; + sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="; + }; + }; + "process-0.11.10" = { + name = "process"; + packageName = "process"; + version = "0.11.10"; + src = fetchurl { + url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "promise-7.3.1" = { + name = "promise"; + packageName = "promise"; + version = "7.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz"; + sha512 = "nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="; + }; + }; + "promise-inflight-1.0.1" = { + name = "promise-inflight"; + packageName = "promise-inflight"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz"; + sha1 = "98472870bf228132fcbdd868129bad12c3c029e3"; + }; + }; + "prompts-2.2.1" = { + name = "prompts"; + packageName = "prompts"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz"; + sha512 = "VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw=="; + }; + }; + "proto-list-1.2.4" = { + name = "proto-list"; + packageName = "proto-list"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz"; + sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; + }; + }; + "proxy-addr-2.0.5" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz"; + sha512 = "t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ=="; + }; + }; + "prr-1.0.1" = { + name = "prr"; + packageName = "prr"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz"; + sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; + }; + }; + "pseudomap-1.0.2" = { + name = "pseudomap"; + packageName = "pseudomap"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; + sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; + }; + }; + "psl-1.1.32" = { + name = "psl"; + packageName = "psl"; + version = "1.1.32"; + src = fetchurl { + url = "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz"; + sha512 = "MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g=="; + }; + }; + "public-encrypt-4.0.3" = { + name = "public-encrypt"; + packageName = "public-encrypt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz"; + sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q=="; + }; + }; + "pug-2.0.4" = { + name = "pug"; + packageName = "pug"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz"; + sha512 = "XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw=="; + }; + }; + "pug-attrs-2.0.4" = { + name = "pug-attrs"; + packageName = "pug-attrs"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz"; + sha512 = "TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ=="; + }; + }; + "pug-code-gen-2.0.2" = { + name = "pug-code-gen"; + packageName = "pug-code-gen"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz"; + sha512 = "kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw=="; + }; + }; + "pug-error-1.3.3" = { + name = "pug-error"; + packageName = "pug-error"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz"; + sha512 = "qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="; + }; + }; + "pug-filters-3.1.1" = { + name = "pug-filters"; + packageName = "pug-filters"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz"; + sha512 = "lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg=="; + }; + }; + "pug-lexer-4.1.0" = { + name = "pug-lexer"; + packageName = "pug-lexer"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz"; + sha512 = "i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA=="; + }; + }; + "pug-linker-3.0.6" = { + name = "pug-linker"; + packageName = "pug-linker"; + version = "3.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz"; + sha512 = "bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg=="; + }; + }; + "pug-load-2.0.12" = { + name = "pug-load"; + packageName = "pug-load"; + version = "2.0.12"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz"; + sha512 = "UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg=="; + }; + }; + "pug-parser-5.0.1" = { + name = "pug-parser"; + packageName = "pug-parser"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz"; + sha512 = "nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA=="; + }; + }; + "pug-runtime-2.0.5" = { + name = "pug-runtime"; + packageName = "pug-runtime"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz"; + sha512 = "P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="; + }; + }; + "pug-strip-comments-1.0.4" = { + name = "pug-strip-comments"; + packageName = "pug-strip-comments"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz"; + sha512 = "i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw=="; + }; + }; + "pug-walk-1.1.8" = { + name = "pug-walk"; + packageName = "pug-walk"; + version = "1.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz"; + sha512 = "GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="; + }; + }; + "pump-2.0.1" = { + name = "pump"; + packageName = "pump"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz"; + sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="; + }; + }; + "pump-3.0.0" = { + name = "pump"; + packageName = "pump"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"; + sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="; + }; + }; + "pumpify-1.5.1" = { + name = "pumpify"; + packageName = "pumpify"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz"; + sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ=="; + }; + }; + "punycode-1.3.2" = { + name = "punycode"; + packageName = "punycode"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"; + sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; + }; + }; + "punycode-1.4.1" = { + name = "punycode"; + packageName = "punycode"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + }; + "punycode-2.1.1" = { + name = "punycode"; + packageName = "punycode"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; + sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; + }; + }; + "qs-6.5.2" = { + name = "qs"; + packageName = "qs"; + version = "6.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; + sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="; + }; + }; + "qs-6.7.0" = { + name = "qs"; + packageName = "qs"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; + }; + }; + "querystring-0.2.0" = { + name = "querystring"; + packageName = "querystring"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"; + sha1 = "b209849203bb25df820da756e747005878521620"; + }; + }; + "querystring-es3-0.2.1" = { + name = "querystring-es3"; + packageName = "querystring-es3"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz"; + sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; + }; + }; + "querystringify-2.1.1" = { + name = "querystringify"; + packageName = "querystringify"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz"; + sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA=="; + }; + }; + "randombytes-2.1.0" = { + name = "randombytes"; + packageName = "randombytes"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"; + sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="; + }; + }; + "randomfill-1.0.4" = { + name = "randomfill"; + packageName = "randomfill"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz"; + sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw=="; + }; + }; + "range-parser-1.2.1" = { + name = "range-parser"; + packageName = "range-parser"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; + sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; + }; + }; + "raw-body-2.4.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; + }; + }; + "react-is-16.9.0" = { + name = "react-is"; + packageName = "react-is"; + version = "16.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz"; + sha512 = "tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw=="; + }; + }; + "read-pkg-3.0.0" = { + name = "read-pkg"; + packageName = "read-pkg"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz"; + sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389"; + }; + }; + "read-pkg-up-4.0.0" = { + name = "read-pkg-up"; + packageName = "read-pkg-up"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz"; + sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA=="; + }; + }; + "readable-stream-2.3.6" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; + sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=="; + }; + }; + "readable-stream-3.4.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz"; + sha512 = "jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ=="; + }; + }; + "readdirp-2.2.1" = { + name = "readdirp"; + packageName = "readdirp"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz"; + sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ=="; + }; + }; + "realpath-native-1.1.0" = { + name = "realpath-native"; + packageName = "realpath-native"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz"; + sha512 = "wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA=="; + }; + }; + "rechoir-0.6.2" = { + name = "rechoir"; + packageName = "rechoir"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"; + sha1 = "85204b54dba82d5742e28c96756ef43af50e3384"; + }; + }; + "regenerate-1.4.0" = { + name = "regenerate"; + packageName = "regenerate"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz"; + sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg=="; + }; + }; + "regenerator-runtime-0.11.1" = { + name = "regenerator-runtime"; + packageName = "regenerator-runtime"; + version = "0.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"; + sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="; + }; + }; + "regenerator-transform-0.10.1" = { + name = "regenerator-transform"; + packageName = "regenerator-transform"; + version = "0.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz"; + sha512 = "PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q=="; + }; + }; + "regex-not-1.0.2" = { + name = "regex-not"; + packageName = "regex-not"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"; + sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A=="; + }; + }; + "regexpu-core-2.0.0" = { + name = "regexpu-core"; + packageName = "regexpu-core"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz"; + sha1 = "49d038837b8dcf8bfa5b9a42139938e6ea2ae240"; + }; + }; + "regjsgen-0.2.0" = { + name = "regjsgen"; + packageName = "regjsgen"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz"; + sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7"; + }; + }; + "regjsparser-0.1.5" = { + name = "regjsparser"; + packageName = "regjsparser"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz"; + sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"; + }; + }; + "remove-trailing-separator-1.1.0" = { + name = "remove-trailing-separator"; + packageName = "remove-trailing-separator"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; + sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; + }; + }; + "repeat-element-1.1.3" = { + name = "repeat-element"; + packageName = "repeat-element"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"; + sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="; + }; + }; + "repeat-string-1.6.1" = { + name = "repeat-string"; + packageName = "repeat-string"; + version = "1.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"; + sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; + }; + }; + "repeating-2.0.1" = { + name = "repeating"; + packageName = "repeating"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"; + sha1 = "5214c53a926d3552707527fbab415dbc08d06dda"; + }; + }; + "request-2.88.0" = { + name = "request"; + packageName = "request"; + version = "2.88.0"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz"; + sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=="; + }; + }; + "request-promise-core-1.1.2" = { + name = "request-promise-core"; + packageName = "request-promise-core"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz"; + sha512 = "UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag=="; + }; + }; + "request-promise-native-1.0.7" = { + name = "request-promise-native"; + packageName = "request-promise-native"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz"; + sha512 = "rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w=="; + }; + }; + "require-directory-2.1.1" = { + name = "require-directory"; + packageName = "require-directory"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; + sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; + }; + }; + "require-main-filename-1.0.1" = { + name = "require-main-filename"; + packageName = "require-main-filename"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz"; + sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1"; + }; + }; + "require-main-filename-2.0.0" = { + name = "require-main-filename"; + packageName = "require-main-filename"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"; + sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="; + }; + }; + "requires-port-1.0.0" = { + name = "requires-port"; + packageName = "requires-port"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"; + sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; + }; + }; + "resolve-1.1.7" = { + name = "resolve"; + packageName = "resolve"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"; + sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b"; + }; + }; + "resolve-1.11.0" = { + name = "resolve"; + packageName = "resolve"; + version = "1.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz"; + sha512 = "WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw=="; + }; + }; + "resolve-cwd-2.0.0" = { + name = "resolve-cwd"; + packageName = "resolve-cwd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz"; + sha1 = "00a9f7387556e27038eae232caa372a6a59b665a"; + }; + }; + "resolve-dir-1.0.1" = { + name = "resolve-dir"; + packageName = "resolve-dir"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz"; + sha1 = "79a40644c362be82f26effe739c9bb5382046f43"; + }; + }; + "resolve-from-3.0.0" = { + name = "resolve-from"; + packageName = "resolve-from"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz"; + sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748"; + }; + }; + "resolve-path-1.4.0" = { + name = "resolve-path"; + packageName = "resolve-path"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz"; + sha1 = "c4bda9f5efb2fce65247873ab36bb4d834fe16f7"; + }; + }; + "resolve-url-0.2.1" = { + name = "resolve-url"; + packageName = "resolve-url"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"; + sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; + }; + }; + "restore-cursor-2.0.0" = { + name = "restore-cursor"; + packageName = "restore-cursor"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"; + sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf"; + }; + }; + "ret-0.1.15" = { + name = "ret"; + packageName = "ret"; + version = "0.1.15"; + src = fetchurl { + url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"; + sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="; + }; + }; + "retry-0.12.0" = { + name = "retry"; + packageName = "retry"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz"; + sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b"; + }; + }; + "right-align-0.1.3" = { + name = "right-align"; + packageName = "right-align"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz"; + sha1 = "61339b722fe6a3515689210d24e14c96148613ef"; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "ripemd160-2.0.2" = { + name = "ripemd160"; + packageName = "ripemd160"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz"; + sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA=="; + }; + }; + "rsvp-4.8.5" = { + name = "rsvp"; + packageName = "rsvp"; + version = "4.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz"; + sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="; + }; + }; + "run-queue-1.0.3" = { + name = "run-queue"; + packageName = "run-queue"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz"; + sha1 = "e848396f057d223f24386924618e25694161ec47"; + }; + }; + "rxjs-6.5.2" = { + name = "rxjs"; + packageName = "rxjs"; + version = "6.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz"; + sha512 = "HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg=="; + }; + }; + "safe-buffer-5.1.2" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; + }; + }; + "safe-regex-1.1.0" = { + name = "safe-regex"; + packageName = "safe-regex"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"; + sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; + }; + }; + "sane-4.1.0" = { + name = "sane"; + packageName = "sane"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz"; + sha512 = "hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "schema-utils-1.0.0" = { + name = "schema-utils"; + packageName = "schema-utils"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz"; + sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g=="; + }; + }; + "select-hose-2.0.0" = { + name = "select-hose"; + packageName = "select-hose"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz"; + sha1 = "625d8658f865af43ec962bfc376a37359a4994ca"; + }; + }; + "selfsigned-1.10.6" = { + name = "selfsigned"; + packageName = "selfsigned"; + version = "1.10.6"; + src = fetchurl { + url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.6.tgz"; + sha512 = "i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w=="; + }; + }; + "semver-5.7.0" = { + name = "semver"; + packageName = "semver"; + version = "5.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz"; + sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="; + }; + }; + "semver-6.3.0" = { + name = "semver"; + packageName = "semver"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"; + sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; + }; + }; + "send-0.17.1" = { + name = "send"; + packageName = "send"; + version = "0.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; + }; + }; + "serialize-javascript-1.9.1" = { + name = "serialize-javascript"; + packageName = "serialize-javascript"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz"; + sha512 = "0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A=="; + }; + }; + "serve-index-1.9.1" = { + name = "serve-index"; + packageName = "serve-index"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz"; + sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239"; + }; + }; + "serve-static-1.14.1" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "set-value-2.0.1" = { + name = "set-value"; + packageName = "set-value"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"; + sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=="; + }; + }; + "setimmediate-1.0.5" = { + name = "setimmediate"; + packageName = "setimmediate"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"; + sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; + }; + }; + "setprototypeof-1.1.0" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"; + sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="; + }; + }; + "setprototypeof-1.1.1" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; + }; + }; + "sha.js-2.4.11" = { + name = "sha.js"; + packageName = "sha.js"; + version = "2.4.11"; + src = fetchurl { + url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz"; + sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ=="; + }; + }; + "shebang-command-1.2.0" = { + name = "shebang-command"; + packageName = "shebang-command"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"; + sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; + }; + }; + "shebang-regex-1.0.0" = { + name = "shebang-regex"; + packageName = "shebang-regex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"; + sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; + }; + }; + "shelljs-0.8.3" = { + name = "shelljs"; + packageName = "shelljs"; + version = "0.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz"; + sha512 = "fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A=="; + }; + }; + "shellwords-0.1.1" = { + name = "shellwords"; + packageName = "shellwords"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz"; + sha512 = "vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="; + }; + }; + "sigmund-1.0.1" = { + name = "sigmund"; + packageName = "sigmund"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"; + sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590"; + }; + }; + "signal-exit-3.0.2" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + }; + "simple-git-1.96.0" = { + name = "simple-git"; + packageName = "simple-git"; + version = "1.96.0"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-git/-/simple-git-1.96.0.tgz"; + sha512 = "+gXuzJFpGtK9zCa7rPMMNs8AF2weWMsB0Vlyym5VkFX2VGQ3VBzKhnxPN//PWrGuPFGQ/u0F1yL6rZoPhj/KPQ=="; + }; + }; + "sisteransi-1.0.3" = { + name = "sisteransi"; + packageName = "sisteransi"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz"; + sha512 = "SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg=="; + }; + }; + "slash-1.0.0" = { + name = "slash"; + packageName = "slash"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz"; + sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"; + }; + }; + "slash-2.0.0" = { + name = "slash"; + packageName = "slash"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz"; + sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="; + }; + }; + "snapdragon-0.8.2" = { + name = "snapdragon"; + packageName = "snapdragon"; + version = "0.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"; + sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg=="; + }; + }; + "snapdragon-node-2.1.1" = { + name = "snapdragon-node"; + packageName = "snapdragon-node"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; + sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw=="; + }; + }; + "snapdragon-util-3.0.1" = { + name = "snapdragon-util"; + packageName = "snapdragon-util"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; + sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ=="; + }; + }; + "sockjs-0.3.19" = { + name = "sockjs"; + packageName = "sockjs"; + version = "0.3.19"; + src = fetchurl { + url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz"; + sha512 = "V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw=="; + }; + }; + "sockjs-client-1.3.0" = { + name = "sockjs-client"; + packageName = "sockjs-client"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz"; + sha512 = "R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg=="; + }; + }; + "source-list-map-2.0.1" = { + name = "source-list-map"; + packageName = "source-list-map"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"; + sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="; + }; + }; + "source-map-0.5.7" = { + name = "source-map"; + packageName = "source-map"; + version = "0.5.7"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + }; + "source-map-0.6.1" = { + name = "source-map"; + packageName = "source-map"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; + sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; + }; + }; + "source-map-resolve-0.5.2" = { + name = "source-map-resolve"; + packageName = "source-map-resolve"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz"; + sha512 = "MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA=="; + }; + }; + "source-map-support-0.4.18" = { + name = "source-map-support"; + packageName = "source-map-support"; + version = "0.4.18"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz"; + sha512 = "try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA=="; + }; + }; + "source-map-support-0.5.13" = { + name = "source-map-support"; + packageName = "source-map-support"; + version = "0.5.13"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz"; + sha512 = "SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="; + }; + }; + "source-map-url-0.4.0" = { + name = "source-map-url"; + packageName = "source-map-url"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"; + sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3"; + }; + }; + "spdx-correct-3.1.0" = { + name = "spdx-correct"; + packageName = "spdx-correct"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"; + sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q=="; + }; + }; + "spdx-exceptions-2.2.0" = { + name = "spdx-exceptions"; + packageName = "spdx-exceptions"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"; + sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="; + }; + }; + "spdx-expression-parse-3.0.0" = { + name = "spdx-expression-parse"; + packageName = "spdx-expression-parse"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"; + sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg=="; + }; + }; + "spdx-license-ids-3.0.5" = { + name = "spdx-license-ids"; + packageName = "spdx-license-ids"; + version = "3.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"; + sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="; + }; + }; + "spdy-4.0.1" = { + name = "spdy"; + packageName = "spdy"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz"; + sha512 = "HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA=="; + }; + }; + "spdy-transport-3.0.0" = { + name = "spdy-transport"; + packageName = "spdy-transport"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz"; + sha512 = "hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw=="; + }; + }; + "split-string-3.1.0" = { + name = "split-string"; + packageName = "split-string"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"; + sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="; + }; + }; + "sprintf-js-1.0.3" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + }; + "sshpk-1.16.1" = { + name = "sshpk"; + packageName = "sshpk"; + version = "1.16.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; + sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; + }; + }; + "ssri-5.3.0" = { + name = "ssri"; + packageName = "ssri"; + version = "5.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz"; + sha512 = "XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ=="; + }; + }; + "ssri-6.0.1" = { + name = "ssri"; + packageName = "ssri"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz"; + sha512 = "3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA=="; + }; + }; + "stack-utils-1.0.2" = { + name = "stack-utils"; + packageName = "stack-utils"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz"; + sha512 = "MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA=="; + }; + }; + "static-extend-0.1.2" = { + name = "static-extend"; + packageName = "static-extend"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"; + sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; + }; + }; + "statuses-1.5.0" = { + name = "statuses"; + packageName = "statuses"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; + }; + }; + "stealthy-require-1.1.1" = { + name = "stealthy-require"; + packageName = "stealthy-require"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"; + sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b"; + }; + }; + "stream-browserify-2.0.2" = { + name = "stream-browserify"; + packageName = "stream-browserify"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz"; + sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg=="; + }; + }; + "stream-each-1.2.3" = { + name = "stream-each"; + packageName = "stream-each"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz"; + sha512 = "vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw=="; + }; + }; + "stream-http-2.8.3" = { + name = "stream-http"; + packageName = "stream-http"; + version = "2.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz"; + sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw=="; + }; + }; + "stream-shift-1.0.0" = { + name = "stream-shift"; + packageName = "stream-shift"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz"; + sha1 = "d5c752825e5367e786f78e18e445ea223a155952"; + }; + }; + "string-length-2.0.0" = { + name = "string-length"; + packageName = "string-length"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz"; + sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string-width-2.1.1" = { + name = "string-width"; + packageName = "string-width"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; + sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; + }; + }; + "string-width-3.1.0" = { + name = "string-width"; + packageName = "string-width"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"; + sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; + }; + }; + "string.prototype.trimleft-2.1.0" = { + name = "string.prototype.trimleft"; + packageName = "string.prototype.trimleft"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz"; + sha512 = "FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw=="; + }; + }; + "string.prototype.trimright-2.1.0" = { + name = "string.prototype.trimright"; + packageName = "string.prototype.trimright"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz"; + sha512 = "fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg=="; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-ansi-4.0.0" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; + }; + }; + "strip-ansi-5.2.0" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"; + sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="; + }; + }; + "strip-bom-3.0.0" = { + name = "strip-bom"; + packageName = "strip-bom"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"; + sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"; + }; + }; + "strip-eof-1.0.0" = { + name = "strip-eof"; + packageName = "strip-eof"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"; + sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf"; + }; + }; + "supports-color-2.0.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; + }; + }; + "supports-color-5.5.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; + }; + }; + "supports-color-6.1.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"; + sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ=="; + }; + }; + "symbol-tree-3.2.4" = { + name = "symbol-tree"; + packageName = "symbol-tree"; + version = "3.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"; + sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="; + }; + }; + "tapable-1.1.3" = { + name = "tapable"; + packageName = "tapable"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz"; + sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="; + }; + }; + "terser-4.3.3" = { + name = "terser"; + packageName = "terser"; + version = "4.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/terser/-/terser-4.3.3.tgz"; + sha512 = "Nzr7dpRjSzMEUS+z2UYQBtzE0LDm5k0Yy8RgLRPy85QUo1TjU5lIOBwzS5/FVAMaVyHZ3WTTU2BuQcMn8KXnNQ=="; + }; + }; + "terser-webpack-plugin-1.4.1" = { + name = "terser-webpack-plugin"; + packageName = "terser-webpack-plugin"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz"; + sha512 = "ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg=="; + }; + }; + "test-exclude-5.2.3" = { + name = "test-exclude"; + packageName = "test-exclude"; + version = "5.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz"; + sha512 = "M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g=="; + }; + }; + "thenify-3.3.0" = { + name = "thenify"; + packageName = "thenify"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz"; + sha1 = "e69e38a1babe969b0108207978b9f62b88604839"; + }; + }; + "thenify-all-1.6.0" = { + name = "thenify-all"; + packageName = "thenify-all"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"; + sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"; + }; + }; + "throat-4.1.0" = { + name = "throat"; + packageName = "throat"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz"; + sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a"; + }; + }; + "through2-2.0.5" = { + name = "through2"; + packageName = "through2"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"; + sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="; + }; + }; + "thunky-1.0.3" = { + name = "thunky"; + packageName = "thunky"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz"; + sha512 = "YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow=="; + }; + }; + "timers-browserify-2.0.11" = { + name = "timers-browserify"; + packageName = "timers-browserify"; + version = "2.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz"; + sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ=="; + }; + }; + "tmpl-1.0.4" = { + name = "tmpl"; + packageName = "tmpl"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz"; + sha1 = "23640dd7b42d00433911140820e5cf440e521dd1"; + }; + }; + "to-arraybuffer-1.0.1" = { + name = "to-arraybuffer"; + packageName = "to-arraybuffer"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; + sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; + }; + }; + "to-fast-properties-1.0.3" = { + name = "to-fast-properties"; + packageName = "to-fast-properties"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz"; + sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47"; + }; + }; + "to-fast-properties-2.0.0" = { + name = "to-fast-properties"; + packageName = "to-fast-properties"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"; + sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e"; + }; + }; + "to-object-path-0.3.0" = { + name = "to-object-path"; + packageName = "to-object-path"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"; + sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af"; + }; + }; + "to-regex-3.0.2" = { + name = "to-regex"; + packageName = "to-regex"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"; + sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw=="; + }; + }; + "to-regex-range-2.1.1" = { + name = "to-regex-range"; + packageName = "to-regex-range"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"; + sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38"; + }; + }; + "toidentifier-1.0.0" = { + name = "toidentifier"; + packageName = "toidentifier"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; + }; + }; + "token-stream-0.0.1" = { + name = "token-stream"; + packageName = "token-stream"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz"; + sha1 = "ceeefc717a76c4316f126d0b9dbaa55d7e7df01a"; + }; + }; + "tough-cookie-2.4.3" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"; + sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=="; + }; + }; + "tough-cookie-2.5.0" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; + sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; + }; + }; + "tr46-1.0.1" = { + name = "tr46"; + packageName = "tr46"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz"; + sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09"; + }; + }; + "trim-right-1.0.1" = { + name = "trim-right"; + packageName = "trim-right"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"; + sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003"; + }; + }; + "tryer-1.0.1" = { + name = "tryer"; + packageName = "tryer"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz"; + sha512 = "c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="; + }; + }; + "ts-jest-24.0.2" = { + name = "ts-jest"; + packageName = "ts-jest"; + version = "24.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ts-jest/-/ts-jest-24.0.2.tgz"; + sha512 = "h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw=="; + }; + }; + "tslib-1.10.0" = { + name = "tslib"; + packageName = "tslib"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"; + sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="; + }; + }; + "tty-browserify-0.0.0" = { + name = "tty-browserify"; + packageName = "tty-browserify"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz"; + sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6"; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-0.14.5" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + }; + "type-1.2.0" = { + name = "type"; + packageName = "type"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz"; + sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="; + }; + }; + "type-check-0.3.2" = { + name = "type-check"; + packageName = "type-check"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"; + sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; + }; + }; + "type-is-1.6.18" = { + name = "type-is"; + packageName = "type-is"; + version = "1.6.18"; + src = fetchurl { + url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"; + sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; + }; + }; + "typedarray-0.0.6" = { + name = "typedarray"; + packageName = "typedarray"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + }; + "typedarray-to-buffer-3.1.5" = { + name = "typedarray-to-buffer"; + packageName = "typedarray-to-buffer"; + version = "3.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"; + sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="; + }; + }; + "typescript-3.5.2" = { + name = "typescript"; + packageName = "typescript"; + version = "3.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz"; + sha512 = "7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA=="; + }; + }; + "typical-4.0.0" = { + name = "typical"; + packageName = "typical"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz"; + sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="; + }; + }; + "uglify-js-2.8.29" = { + name = "uglify-js"; + packageName = "uglify-js"; + version = "2.8.29"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz"; + sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd"; + }; + }; + "uglify-js-3.6.0" = { + name = "uglify-js"; + packageName = "uglify-js"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz"; + sha512 = "W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg=="; + }; + }; + "uglify-to-browserify-1.0.2" = { + name = "uglify-to-browserify"; + packageName = "uglify-to-browserify"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"; + sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7"; + }; + }; + "underscore-1.9.1" = { + name = "underscore"; + packageName = "underscore"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz"; + sha512 = "5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="; + }; + }; + "union-value-1.0.1" = { + name = "union-value"; + packageName = "union-value"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"; + sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg=="; + }; + }; + "unique-filename-1.1.1" = { + name = "unique-filename"; + packageName = "unique-filename"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz"; + sha512 = "Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ=="; + }; + }; + "unique-slug-2.0.2" = { + name = "unique-slug"; + packageName = "unique-slug"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz"; + sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w=="; + }; + }; + "universalify-0.1.2" = { + name = "universalify"; + packageName = "universalify"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"; + sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="; + }; + }; + "unpipe-1.0.0" = { + name = "unpipe"; + packageName = "unpipe"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + }; + "unset-value-1.0.0" = { + name = "unset-value"; + packageName = "unset-value"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"; + sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; + }; + }; + "upath-1.2.0" = { + name = "upath"; + packageName = "upath"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"; + sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="; + }; + }; + "uri-js-4.2.2" = { + name = "uri-js"; + packageName = "uri-js"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"; + sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="; + }; + }; + "urijs-1.19.1" = { + name = "urijs"; + packageName = "urijs"; + version = "1.19.1"; + src = fetchurl { + url = "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz"; + sha512 = "xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg=="; + }; + }; + "urix-0.1.0" = { + name = "urix"; + packageName = "urix"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"; + sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; + }; + }; + "url-0.11.0" = { + name = "url"; + packageName = "url"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz"; + sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; + }; + }; + "url-parse-1.4.7" = { + name = "url-parse"; + packageName = "url-parse"; + version = "1.4.7"; + src = fetchurl { + url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz"; + sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg=="; + }; + }; + "use-3.1.1" = { + name = "use"; + packageName = "use"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz"; + sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="; + }; + }; + "util-0.10.3" = { + name = "util"; + packageName = "util"; + version = "0.10.3"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz"; + sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; + }; + }; + "util-0.11.1" = { + name = "util"; + packageName = "util"; + version = "0.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz"; + sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ=="; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "util.promisify-1.0.0" = { + name = "util.promisify"; + packageName = "util.promisify"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz"; + sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA=="; + }; + }; + "utils-merge-1.0.1" = { + name = "utils-merge"; + packageName = "utils-merge"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; + }; + }; + "uuid-3.3.2" = { + name = "uuid"; + packageName = "uuid"; + version = "3.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz"; + sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="; + }; + }; + "v8-compile-cache-2.1.0" = { + name = "v8-compile-cache"; + packageName = "v8-compile-cache"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz"; + sha512 = "usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g=="; + }; + }; + "validate-npm-package-license-3.0.4" = { + name = "validate-npm-package-license"; + packageName = "validate-npm-package-license"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"; + sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="; + }; + }; + "vary-1.1.2" = { + name = "vary"; + packageName = "vary"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + }; + "verror-1.10.0" = { + name = "verror"; + packageName = "verror"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + }; + "vm-browserify-1.1.0" = { + name = "vm-browserify"; + packageName = "vm-browserify"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz"; + sha512 = "iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw=="; + }; + }; + "void-elements-2.0.1" = { + name = "void-elements"; + packageName = "void-elements"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"; + sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec"; + }; + }; + "w3c-hr-time-1.0.1" = { + name = "w3c-hr-time"; + packageName = "w3c-hr-time"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz"; + sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045"; + }; + }; + "walker-1.0.7" = { + name = "walker"; + packageName = "walker"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz"; + sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb"; + }; + }; + "watchpack-1.6.0" = { + name = "watchpack"; + packageName = "watchpack"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz"; + sha512 = "i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA=="; + }; + }; + "wbuf-1.7.3" = { + name = "wbuf"; + packageName = "wbuf"; + version = "1.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz"; + sha512 = "O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA=="; + }; + }; + "wcwidth-1.0.1" = { + name = "wcwidth"; + packageName = "wcwidth"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz"; + sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"; + }; + }; + "webidl-conversions-4.0.2" = { + name = "webidl-conversions"; + packageName = "webidl-conversions"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz"; + sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="; + }; + }; + "webpack-4.35.0" = { + name = "webpack"; + packageName = "webpack"; + version = "4.35.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz"; + sha512 = "M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw=="; + }; + }; + "webpack-bundle-analyzer-3.3.2" = { + name = "webpack-bundle-analyzer"; + packageName = "webpack-bundle-analyzer"; + version = "3.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz"; + sha512 = "7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA=="; + }; + }; + "webpack-cli-3.3.4" = { + name = "webpack-cli"; + packageName = "webpack-cli"; + version = "3.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz"; + sha512 = "ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ=="; + }; + }; + "webpack-dev-middleware-3.7.1" = { + name = "webpack-dev-middleware"; + packageName = "webpack-dev-middleware"; + version = "3.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.1.tgz"; + sha512 = "5MWu9SH1z3hY7oHOV6Kbkz5x7hXbxK56mGHNqHTe6d+ewxOwKUxoUJBs7QIaJb33lPjl9bJZ3X0vCoooUzC36A=="; + }; + }; + "webpack-dev-server-3.7.2" = { + name = "webpack-dev-server"; + packageName = "webpack-dev-server"; + version = "3.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.7.2.tgz"; + sha512 = "mjWtrKJW2T9SsjJ4/dxDC2fkFVUw8jlpemDERqV0ZJIkjjjamR2AbQlr3oz+j4JLhYCHImHnXZK5H06P2wvUew=="; + }; + }; + "webpack-log-1.2.0" = { + name = "webpack-log"; + packageName = "webpack-log"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz"; + sha512 = "U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA=="; + }; + }; + "webpack-log-2.0.0" = { + name = "webpack-log"; + packageName = "webpack-log"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz"; + sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg=="; + }; + }; + "webpack-sources-1.4.3" = { + name = "webpack-sources"; + packageName = "webpack-sources"; + version = "1.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz"; + sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ=="; + }; + }; + "websocket-1.0.28" = { + name = "websocket"; + packageName = "websocket"; + version = "1.0.28"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket/-/websocket-1.0.28.tgz"; + sha512 = "00y/20/80P7H4bCYkzuuvvfDvh+dgtXi5kzDf3UcZwN6boTYaKvsrtZ5lIYm1Gsg48siMErd9M4zjSYfYFHTrA=="; + }; + }; + "websocket-driver-0.7.3" = { + name = "websocket-driver"; + packageName = "websocket-driver"; + version = "0.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz"; + sha512 = "bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg=="; + }; + }; + "websocket-extensions-0.1.3" = { + name = "websocket-extensions"; + packageName = "websocket-extensions"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz"; + sha512 = "nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="; + }; + }; + "whatwg-encoding-1.0.5" = { + name = "whatwg-encoding"; + packageName = "whatwg-encoding"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz"; + sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw=="; + }; + }; + "whatwg-mimetype-2.3.0" = { + name = "whatwg-mimetype"; + packageName = "whatwg-mimetype"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz"; + sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="; + }; + }; + "whatwg-url-6.5.0" = { + name = "whatwg-url"; + packageName = "whatwg-url"; + version = "6.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz"; + sha512 = "rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ=="; + }; + }; + "whatwg-url-7.0.0" = { + name = "whatwg-url"; + packageName = "whatwg-url"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz"; + sha512 = "37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ=="; + }; + }; + "which-1.3.1" = { + name = "which"; + packageName = "which"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz"; + sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="; + }; + }; + "which-module-2.0.0" = { + name = "which-module"; + packageName = "which-module"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"; + sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; + }; + }; + "window-size-0.1.0" = { + name = "window-size"; + packageName = "window-size"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"; + sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"; + }; + }; + "with-5.1.1" = { + name = "with"; + packageName = "with"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/with/-/with-5.1.1.tgz"; + sha1 = "fa4daa92daf32c4ea94ed453c81f04686b575dfe"; + }; + }; + "wordwrap-0.0.2" = { + name = "wordwrap"; + packageName = "wordwrap"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"; + sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f"; + }; + }; + "wordwrap-1.0.0" = { + name = "wordwrap"; + packageName = "wordwrap"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"; + sha1 = "27584810891456a4171c8d0226441ade90cbcaeb"; + }; + }; + "worker-farm-1.7.0" = { + name = "worker-farm"; + packageName = "worker-farm"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz"; + sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw=="; + }; + }; + "wrap-ansi-2.1.0" = { + name = "wrap-ansi"; + packageName = "wrap-ansi"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz"; + sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85"; + }; + }; + "wrap-ansi-5.1.0" = { + name = "wrap-ansi"; + packageName = "wrap-ansi"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"; + sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "write-file-atomic-2.4.1" = { + name = "write-file-atomic"; + packageName = "write-file-atomic"; + version = "2.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz"; + sha512 = "TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg=="; + }; + }; + "ws-5.2.2" = { + name = "ws"; + packageName = "ws"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz"; + sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA=="; + }; + }; + "ws-6.2.1" = { + name = "ws"; + packageName = "ws"; + version = "6.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz"; + sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA=="; + }; + }; + "xml-name-validator-3.0.0" = { + name = "xml-name-validator"; + packageName = "xml-name-validator"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz"; + sha512 = "A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="; + }; + }; + "xtend-4.0.2" = { + name = "xtend"; + packageName = "xtend"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; + sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; + }; + }; + "y18n-4.0.0" = { + name = "y18n"; + packageName = "y18n"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz"; + sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="; + }; + }; + "yaeti-0.0.6" = { + name = "yaeti"; + packageName = "yaeti"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz"; + sha1 = "f26f484d72684cf42bedfb76970aa1608fbf9577"; + }; + }; + "yallist-2.1.2" = { + name = "yallist"; + packageName = "yallist"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; + sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; + }; + }; + "yallist-3.1.0" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz"; + sha512 = "6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w=="; + }; + }; + "yargs-12.0.5" = { + name = "yargs"; + packageName = "yargs"; + version = "12.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz"; + sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw=="; + }; + }; + "yargs-13.3.0" = { + name = "yargs"; + packageName = "yargs"; + version = "13.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz"; + sha512 = "2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA=="; + }; + }; + "yargs-3.10.0" = { + name = "yargs"; + packageName = "yargs"; + version = "3.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"; + sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"; + }; + }; + "yargs-parser-10.1.0" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "10.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz"; + sha512 = "VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ=="; + }; + }; + "yargs-parser-11.1.1" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "11.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz"; + sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ=="; + }; + }; + "yargs-parser-13.1.1" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "13.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz"; + sha512 = "oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ=="; + }; + }; + "yarn-1.16.0" = { + name = "yarn"; + packageName = "yarn"; + version = "1.16.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yarn/-/yarn-1.16.0.tgz"; + sha512 = "cfemyGlnWKA1zopUUgebTPf8C4WkPIZ+TJmklwcEAJ4u6oWPtJeAzrsamaGGh/+b1XWe8W51yzAImC4AWbWR1g=="; + }; + }; + "ylru-1.2.1" = { + name = "ylru"; + packageName = "ylru"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz"; + sha512 = "faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ=="; + }; + }; + }; + args = { + name = "spacegun"; + packageName = "spacegun"; + version = "0.3.3"; + src = ./.; + dependencies = [ + sources."@babel/code-frame-7.5.5" + (sources."@babel/core-7.6.2" // { + dependencies = [ + sources."debug-4.1.1" + sources."json5-2.1.0" + sources."lodash-4.17.15" + sources."ms-2.1.2" + sources."source-map-0.5.7" + ]; + }) + (sources."@babel/generator-7.6.2" // { + dependencies = [ + sources."jsesc-2.5.2" + sources."lodash-4.17.15" + sources."source-map-0.5.7" + ]; + }) + sources."@babel/helper-function-name-7.1.0" + sources."@babel/helper-get-function-arity-7.0.0" + sources."@babel/helper-plugin-utils-7.0.0" + sources."@babel/helper-split-export-declaration-7.4.4" + sources."@babel/helpers-7.6.2" + (sources."@babel/highlight-7.5.0" // { + dependencies = [ + sources."js-tokens-4.0.0" + ]; + }) + sources."@babel/parser-7.6.2" + sources."@babel/plugin-syntax-object-rest-spread-7.2.0" + sources."@babel/template-7.6.0" + (sources."@babel/traverse-7.6.2" // { + dependencies = [ + sources."debug-4.1.1" + sources."globals-11.12.0" + sources."lodash-4.17.15" + sources."ms-2.1.2" + ]; + }) + (sources."@babel/types-7.6.1" // { + dependencies = [ + sources."lodash-4.17.15" + sources."to-fast-properties-2.0.0" + ]; + }) + sources."@cnakazawa/watch-1.0.3" + (sources."@jest/console-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + (sources."@jest/core-24.9.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + sources."slash-2.0.0" + sources."strip-ansi-5.2.0" + ]; + }) + sources."@jest/environment-24.9.0" + sources."@jest/fake-timers-24.9.0" + (sources."@jest/reporters-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."@jest/source-map-24.9.0" + sources."@jest/test-result-24.9.0" + sources."@jest/test-sequencer-24.9.0" + (sources."@jest/transform-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."@jest/types-24.9.0" + (sources."@kubernetes/client-node-0.10.1" // { + dependencies = [ + sources."@types/node-10.14.19" + ]; + }) + sources."@types/accepts-1.3.5" + sources."@types/axios-0.14.0" + sources."@types/babel-types-7.0.7" + sources."@types/babel__core-7.1.3" + sources."@types/babel__generator-7.6.0" + sources."@types/babel__template-7.0.2" + sources."@types/babel__traverse-7.0.7" + sources."@types/babylon-6.16.5" + sources."@types/body-parser-1.17.1" + sources."@types/caseless-0.12.2" + sources."@types/command-line-args-5.0.0" + sources."@types/connect-3.4.32" + sources."@types/cookies-0.7.3" + sources."@types/cron-1.7.1" + sources."@types/events-3.0.0" + sources."@types/express-4.17.1" + sources."@types/express-serve-static-core-4.16.9" + sources."@types/form-data-2.5.0" + sources."@types/formidable-1.0.31" + sources."@types/glob-7.1.1" + sources."@types/http-assert-1.5.1" + sources."@types/istanbul-lib-coverage-2.0.1" + sources."@types/istanbul-lib-report-1.1.1" + sources."@types/istanbul-reports-1.1.1" + sources."@types/jest-24.0.15" + sources."@types/jest-diff-20.0.1" + sources."@types/js-yaml-3.12.1" + sources."@types/keygrip-1.0.1" + sources."@types/koa-2.0.48" + sources."@types/koa-compose-3.2.4" + sources."@types/koa-router-7.0.41" + sources."@types/koa-send-4.1.2" + sources."@types/koa-static-4.0.1" + sources."@types/koa-views-2.0.3" + sources."@types/lodash-4.14.140" + sources."@types/lodash.clonedeep-4.5.6" + sources."@types/mime-2.0.1" + sources."@types/minimatch-3.0.3" + sources."@types/mkdirp-0.5.2" + sources."@types/node-12.0.8" + sources."@types/ora-3.2.0" + sources."@types/range-parser-1.2.3" + sources."@types/request-2.48.1" + sources."@types/serve-static-1.13.3" + sources."@types/stack-utils-1.0.1" + sources."@types/tough-cookie-2.3.5" + sources."@types/underscore-1.9.3" + sources."@types/websocket-0.0.40" + sources."@types/ws-6.0.3" + sources."@types/yargs-13.0.3" + sources."@types/yargs-parser-13.1.0" + sources."@webassemblyjs/ast-1.8.5" + sources."@webassemblyjs/floating-point-hex-parser-1.8.5" + sources."@webassemblyjs/helper-api-error-1.8.5" + sources."@webassemblyjs/helper-buffer-1.8.5" + sources."@webassemblyjs/helper-code-frame-1.8.5" + sources."@webassemblyjs/helper-fsm-1.8.5" + sources."@webassemblyjs/helper-module-context-1.8.5" + sources."@webassemblyjs/helper-wasm-bytecode-1.8.5" + sources."@webassemblyjs/helper-wasm-section-1.8.5" + sources."@webassemblyjs/ieee754-1.8.5" + sources."@webassemblyjs/leb128-1.8.5" + sources."@webassemblyjs/utf8-1.8.5" + sources."@webassemblyjs/wasm-edit-1.8.5" + sources."@webassemblyjs/wasm-gen-1.8.5" + sources."@webassemblyjs/wasm-opt-1.8.5" + sources."@webassemblyjs/wasm-parser-1.8.5" + sources."@webassemblyjs/wast-parser-1.8.5" + sources."@webassemblyjs/wast-printer-1.8.5" + sources."@xtuc/ieee754-1.2.0" + sources."@xtuc/long-4.2.2" + sources."abab-2.0.2" + sources."abbrev-1.1.1" + sources."accepts-1.3.7" + sources."acorn-5.7.3" + sources."acorn-dynamic-import-4.0.0" + (sources."acorn-globals-3.1.0" // { + dependencies = [ + sources."acorn-4.0.13" + ]; + }) + sources."acorn-walk-6.2.0" + sources."ajv-6.10.0" + sources."ajv-errors-1.0.1" + sources."ajv-keywords-3.4.1" + sources."align-text-0.1.4" + sources."ansi-colors-3.2.4" + sources."ansi-escapes-3.2.0" + sources."ansi-html-0.0.7" + sources."ansi-regex-2.1.1" + sources."ansi-styles-3.2.1" + sources."any-promise-1.3.0" + sources."anymatch-2.0.0" + sources."aproba-1.2.0" + sources."argparse-1.0.10" + sources."arr-diff-4.0.0" + sources."arr-flatten-1.1.0" + sources."arr-union-3.1.0" + sources."array-back-3.1.0" + sources."array-equal-1.0.0" + sources."array-flatten-1.1.1" + sources."array-union-1.0.2" + sources."array-uniq-1.0.3" + sources."array-unique-0.3.2" + sources."asap-2.0.6" + sources."asn1-0.2.4" + sources."asn1.js-4.10.1" + (sources."assert-1.5.0" // { + dependencies = [ + sources."inherits-2.0.1" + sources."util-0.10.3" + ]; + }) + sources."assert-plus-1.0.0" + sources."assign-symbols-1.0.0" + sources."astral-regex-1.0.0" + sources."async-1.5.2" + sources."async-each-1.0.3" + sources."async-limiter-1.0.0" + sources."asynckit-0.4.0" + sources."atob-2.1.2" + sources."awesome-typescript-loader-5.2.1" + sources."aws-sign2-0.7.0" + sources."aws4-1.8.0" + (sources."axios-0.19.0" // { + dependencies = [ + sources."is-buffer-2.0.3" + ]; + }) + sources."babel-6.23.0" + (sources."babel-code-frame-6.26.0" // { + dependencies = [ + sources."ansi-styles-2.2.1" + sources."chalk-1.1.3" + ]; + }) + (sources."babel-core-6.26.3" // { + dependencies = [ + sources."json5-0.5.1" + sources."source-map-0.5.7" + ]; + }) + (sources."babel-generator-6.26.1" // { + dependencies = [ + sources."source-map-0.5.7" + ]; + }) + sources."babel-helper-builder-binary-assignment-operator-visitor-6.24.1" + sources."babel-helper-call-delegate-6.24.1" + sources."babel-helper-define-map-6.26.0" + sources."babel-helper-explode-assignable-expression-6.24.1" + sources."babel-helper-function-name-6.24.1" + sources."babel-helper-get-function-arity-6.24.1" + sources."babel-helper-hoist-variables-6.24.1" + sources."babel-helper-optimise-call-expression-6.24.1" + sources."babel-helper-regex-6.26.0" + sources."babel-helper-remap-async-to-generator-6.24.1" + sources."babel-helper-replace-supers-6.24.1" + sources."babel-helpers-6.24.1" + (sources."babel-jest-24.8.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."babel-messages-6.23.0" + sources."babel-plugin-check-es2015-constants-6.22.0" + sources."babel-plugin-istanbul-5.2.0" + sources."babel-plugin-jest-hoist-24.9.0" + sources."babel-plugin-syntax-async-functions-6.13.0" + sources."babel-plugin-syntax-exponentiation-operator-6.13.0" + sources."babel-plugin-syntax-trailing-function-commas-6.22.0" + sources."babel-plugin-transform-async-to-generator-6.24.1" + sources."babel-plugin-transform-es2015-arrow-functions-6.22.0" + sources."babel-plugin-transform-es2015-block-scoped-functions-6.22.0" + sources."babel-plugin-transform-es2015-block-scoping-6.26.0" + sources."babel-plugin-transform-es2015-classes-6.24.1" + sources."babel-plugin-transform-es2015-computed-properties-6.24.1" + sources."babel-plugin-transform-es2015-destructuring-6.23.0" + sources."babel-plugin-transform-es2015-duplicate-keys-6.24.1" + sources."babel-plugin-transform-es2015-for-of-6.23.0" + sources."babel-plugin-transform-es2015-function-name-6.24.1" + sources."babel-plugin-transform-es2015-literals-6.22.0" + sources."babel-plugin-transform-es2015-modules-amd-6.24.1" + sources."babel-plugin-transform-es2015-modules-commonjs-6.26.2" + sources."babel-plugin-transform-es2015-modules-systemjs-6.24.1" + sources."babel-plugin-transform-es2015-modules-umd-6.24.1" + sources."babel-plugin-transform-es2015-object-super-6.24.1" + sources."babel-plugin-transform-es2015-parameters-6.24.1" + sources."babel-plugin-transform-es2015-shorthand-properties-6.24.1" + sources."babel-plugin-transform-es2015-spread-6.22.0" + sources."babel-plugin-transform-es2015-sticky-regex-6.24.1" + sources."babel-plugin-transform-es2015-template-literals-6.22.0" + sources."babel-plugin-transform-es2015-typeof-symbol-6.23.0" + sources."babel-plugin-transform-es2015-unicode-regex-6.24.1" + sources."babel-plugin-transform-exponentiation-operator-6.24.1" + sources."babel-plugin-transform-regenerator-6.26.0" + sources."babel-plugin-transform-strict-mode-6.24.1" + sources."babel-preset-env-1.7.0" + sources."babel-preset-jest-24.9.0" + (sources."babel-register-6.26.0" // { + dependencies = [ + sources."source-map-0.5.7" + sources."source-map-support-0.4.18" + ]; + }) + sources."babel-runtime-6.26.0" + sources."babel-template-6.26.0" + sources."babel-traverse-6.26.0" + sources."babel-types-6.26.0" + sources."babylon-6.18.0" + sources."balanced-match-1.0.0" + (sources."base-0.11.2" // { + dependencies = [ + sources."define-property-1.0.0" + sources."is-accessor-descriptor-1.0.0" + sources."is-data-descriptor-1.0.0" + sources."is-descriptor-1.0.2" + sources."kind-of-6.0.2" + ]; + }) + sources."base64-js-1.3.1" + sources."batch-0.6.1" + sources."bcrypt-pbkdf-1.0.2" + sources."bfj-6.1.2" + sources."big.js-5.2.2" + sources."binary-extensions-1.13.1" + sources."bluebird-3.5.5" + sources."bn.js-4.11.8" + sources."body-parser-1.19.0" + (sources."bonjour-3.5.0" // { + dependencies = [ + sources."array-flatten-2.1.2" + ]; + }) + sources."brace-expansion-1.1.11" + sources."braces-2.3.2" + sources."brorand-1.1.0" + sources."browser-process-hrtime-0.1.3" + (sources."browser-resolve-1.11.3" // { + dependencies = [ + sources."resolve-1.1.7" + ]; + }) + sources."browserify-aes-1.2.0" + sources."browserify-cipher-1.0.1" + sources."browserify-des-1.0.2" + sources."browserify-rsa-4.0.1" + sources."browserify-sign-4.0.4" + sources."browserify-zlib-0.2.0" + sources."browserslist-3.2.8" + sources."bs-logger-0.2.6" + sources."bser-2.1.0" + sources."buffer-4.9.1" + sources."buffer-from-1.1.1" + sources."buffer-indexof-1.1.1" + sources."buffer-xor-1.0.3" + sources."builtin-status-codes-3.0.0" + sources."bytes-3.1.0" + sources."cacache-10.0.4" + sources."cache-base-1.0.1" + sources."cache-content-type-1.0.1" + sources."callsites-3.1.0" + sources."camelcase-5.3.1" + sources."caniuse-lite-1.0.30000997" + sources."capture-exit-2.0.0" + sources."caseless-0.12.0" + sources."center-align-0.1.3" + (sources."chalk-2.4.2" // { + dependencies = [ + sources."supports-color-5.5.0" + ]; + }) + sources."character-parser-2.2.0" + sources."check-types-8.0.3" + (sources."chokidar-2.1.8" // { + dependencies = [ + sources."normalize-path-3.0.0" + ]; + }) + sources."chownr-1.1.3" + sources."chrome-trace-event-1.0.2" + sources."ci-info-2.0.0" + sources."cipher-base-1.0.4" + (sources."class-utils-0.3.6" // { + dependencies = [ + sources."define-property-0.2.5" + ]; + }) + sources."clean-css-4.2.1" + sources."cli-cursor-2.1.0" + sources."cli-spinners-2.2.0" + (sources."cliui-5.0.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + sources."strip-ansi-5.2.0" + ]; + }) + sources."clone-1.0.4" + sources."co-4.6.0" + sources."co-body-5.2.0" + sources."code-point-at-1.1.0" + sources."collection-visit-1.0.0" + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."combined-stream-1.0.8" + sources."command-line-args-5.1.1" + sources."commander-2.20.0" + sources."commondir-1.0.1" + sources."component-emitter-1.3.0" + sources."compressible-2.0.17" + (sources."compression-1.7.4" // { + dependencies = [ + sources."bytes-3.0.0" + ]; + }) + sources."concat-map-0.0.1" + sources."concat-stream-1.6.2" + sources."condense-newlines-0.2.1" + sources."config-chain-1.1.12" + sources."connect-history-api-fallback-1.6.0" + sources."console-browserify-1.1.0" + sources."consolidate-0.15.1" + sources."constantinople-3.1.2" + sources."constants-browserify-1.0.0" + sources."content-disposition-0.5.3" + sources."content-type-1.0.4" + sources."convert-source-map-1.6.0" + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + sources."cookies-0.7.3" + sources."copy-concurrently-1.0.5" + sources."copy-descriptor-0.1.1" + (sources."copy-webpack-plugin-4.6.0" // { + dependencies = [ + sources."p-limit-1.3.0" + sources."p-try-1.0.0" + ]; + }) + sources."core-js-2.6.9" + sources."core-util-is-1.0.2" + sources."create-ecdh-4.0.3" + sources."create-hash-1.2.0" + sources."create-hmac-1.1.7" + sources."cron-1.7.1" + sources."cross-spawn-6.0.5" + sources."crypto-browserify-3.12.0" + sources."cssom-0.3.8" + sources."cssstyle-1.4.0" + sources."cyclist-1.0.1" + sources."d-1.0.1" + sources."dashdash-1.14.1" + (sources."data-urls-1.1.0" // { + dependencies = [ + sources."whatwg-url-7.0.0" + ]; + }) + sources."date-now-0.1.4" + sources."debug-2.6.9" + sources."decamelize-1.2.0" + sources."decode-uri-component-0.2.0" + sources."deep-equal-1.0.1" + sources."deep-is-0.1.3" + sources."default-gateway-4.2.0" + sources."defaults-1.0.3" + sources."define-properties-1.1.3" + (sources."define-property-2.0.2" // { + dependencies = [ + sources."is-accessor-descriptor-1.0.0" + sources."is-data-descriptor-1.0.0" + sources."is-descriptor-1.0.2" + sources."kind-of-6.0.2" + ]; + }) + (sources."del-4.1.1" // { + dependencies = [ + (sources."globby-6.1.0" // { + dependencies = [ + sources."pify-2.3.0" + ]; + }) + sources."pify-4.0.1" + ]; + }) + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."depd-1.1.2" + sources."des.js-1.0.0" + sources."destroy-1.0.4" + sources."detect-file-1.0.0" + sources."detect-indent-4.0.0" + sources."detect-newline-2.1.0" + sources."detect-node-2.0.4" + sources."diff-sequences-24.9.0" + sources."diffie-hellman-5.0.3" + sources."dir-glob-2.2.2" + sources."dns-equal-1.0.0" + sources."dns-packet-1.3.1" + sources."dns-txt-2.0.2" + sources."doctypes-1.1.0" + sources."domain-browser-1.2.0" + sources."domexception-1.0.1" + sources."duplexer-0.1.1" + sources."duplexify-3.7.1" + sources."ecc-jsbn-0.1.2" + sources."editorconfig-0.15.3" + sources."ee-first-1.1.1" + sources."ejs-2.7.1" + sources."electron-to-chromium-1.3.267" + sources."elliptic-6.5.1" + sources."emoji-regex-7.0.3" + sources."emojis-list-2.1.0" + sources."encodeurl-1.0.2" + sources."end-of-stream-1.4.4" + sources."enhanced-resolve-4.1.0" + sources."errno-0.1.7" + sources."error-ex-1.3.2" + sources."error-inject-1.0.0" + sources."es-abstract-1.14.2" + sources."es-to-primitive-1.2.0" + sources."es5-ext-0.10.51" + sources."es6-iterator-2.0.3" + sources."es6-symbol-3.1.2" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + (sources."escodegen-1.12.0" // { + dependencies = [ + sources."esprima-3.1.3" + ]; + }) + sources."eslint-scope-4.0.3" + sources."esprima-4.0.1" + sources."esrecurse-4.2.1" + sources."estraverse-4.3.0" + sources."esutils-2.0.2" + sources."etag-1.8.1" + sources."eventemitter3-4.0.0" + sources."events-3.0.0" + sources."eventsource-1.0.7" + sources."evp_bytestokey-1.0.3" + sources."exec-sh-0.3.2" + sources."execa-1.0.0" + sources."exit-0.1.2" + (sources."expand-brackets-2.1.4" // { + dependencies = [ + sources."define-property-0.2.5" + ]; + }) + sources."expand-tilde-2.0.2" + sources."expect-24.9.0" + (sources."express-4.17.1" // { + dependencies = [ + sources."path-to-regexp-0.1.7" + ]; + }) + sources."extend-3.0.2" + sources."extend-shallow-2.0.1" + (sources."extglob-2.0.4" // { + dependencies = [ + sources."define-property-1.0.0" + sources."is-accessor-descriptor-1.0.0" + sources."is-data-descriptor-1.0.0" + sources."is-descriptor-1.0.2" + sources."kind-of-6.0.2" + ]; + }) + sources."extsprintf-1.3.0" + sources."fast-deep-equal-2.0.1" + sources."fast-json-stable-stringify-2.0.0" + sources."fast-levenshtein-2.0.6" + sources."faye-websocket-0.10.0" + sources."fb-watchman-2.0.0" + sources."figgy-pudding-3.5.1" + sources."filesize-3.6.1" + sources."fill-range-4.0.0" + sources."finalhandler-1.1.2" + sources."find-cache-dir-1.0.0" + sources."find-replace-3.0.0" + sources."find-up-3.0.0" + (sources."findup-sync-2.0.0" // { + dependencies = [ + sources."is-glob-3.1.0" + ]; + }) + sources."flush-write-stream-1.1.1" + (sources."follow-redirects-1.5.10" // { + dependencies = [ + sources."debug-3.1.0" + ]; + }) + sources."for-in-1.0.2" + sources."forever-agent-0.6.1" + sources."form-data-2.5.1" + sources."formidable-1.2.1" + sources."forwarded-0.1.2" + sources."fragment-cache-0.2.1" + sources."fresh-0.5.2" + sources."from2-2.3.0" + sources."fs-extra-4.0.3" + sources."fs-write-stream-atomic-1.0.10" + sources."fs.realpath-1.0.0" + sources."fsevents-1.2.9" + sources."function-bind-1.1.1" + sources."get-caller-file-2.0.5" + sources."get-paths-0.0.4" + sources."get-stream-4.1.0" + sources."get-value-2.0.6" + sources."getpass-0.1.7" + sources."glob-7.1.4" + (sources."glob-parent-3.1.0" // { + dependencies = [ + sources."is-glob-3.1.0" + ]; + }) + sources."global-modules-1.0.0" + sources."global-prefix-1.0.2" + sources."globals-9.18.0" + sources."globby-7.1.1" + sources."graceful-fs-4.1.15" + sources."growly-1.3.0" + (sources."gzip-size-5.1.1" // { + dependencies = [ + sources."pify-4.0.1" + ]; + }) + sources."handle-thing-2.0.0" + (sources."handlebars-4.3.3" // { + dependencies = [ + sources."uglify-js-3.6.0" + ]; + }) + sources."har-schema-2.0.0" + sources."har-validator-5.1.3" + sources."has-1.0.3" + sources."has-ansi-2.0.0" + sources."has-flag-3.0.0" + sources."has-symbols-1.0.0" + sources."has-value-1.0.0" + (sources."has-values-1.0.0" // { + dependencies = [ + sources."kind-of-4.0.0" + ]; + }) + sources."hash-base-3.0.4" + sources."hash.js-1.1.7" + sources."hmac-drbg-1.0.1" + sources."home-or-tmp-2.0.0" + sources."homedir-polyfill-1.0.3" + sources."hoopy-0.1.4" + sources."hosted-git-info-2.8.4" + sources."hpack.js-2.1.6" + sources."html-encoding-sniffer-1.0.2" + sources."html-entities-1.2.1" + sources."http-assert-1.4.1" + sources."http-deceiver-1.2.7" + sources."http-errors-1.7.2" + sources."http-parser-js-0.4.10" + sources."http-proxy-1.18.0" + sources."http-proxy-middleware-0.19.1" + sources."http-signature-1.2.0" + sources."https-browserify-1.0.0" + sources."iconv-lite-0.4.24" + sources."ieee754-1.1.13" + sources."iferr-0.1.5" + sources."ignore-3.3.10" + (sources."import-local-2.0.0" // { + dependencies = [ + sources."pkg-dir-3.0.0" + ]; + }) + sources."imurmurhash-0.1.4" + sources."infer-owner-1.0.4" + sources."inflation-2.0.0" + sources."inflight-1.0.6" + sources."inherits-2.0.3" + sources."ini-1.3.5" + sources."internal-ip-4.3.0" + sources."interpret-1.2.0" + sources."invariant-2.2.4" + sources."invert-kv-2.0.0" + sources."ip-1.1.5" + sources."ip-regex-2.1.0" + sources."ipaddr.js-1.9.0" + sources."is-accessor-descriptor-0.1.6" + sources."is-arrayish-0.2.1" + sources."is-binary-path-1.0.1" + sources."is-buffer-1.1.6" + sources."is-callable-1.1.4" + sources."is-ci-2.0.0" + sources."is-data-descriptor-0.1.4" + sources."is-date-object-1.0.1" + (sources."is-descriptor-0.1.6" // { + dependencies = [ + sources."kind-of-5.1.0" + ]; + }) + (sources."is-expression-3.0.0" // { + dependencies = [ + sources."acorn-4.0.13" + ]; + }) + sources."is-extendable-0.1.1" + sources."is-extglob-2.1.1" + sources."is-finite-1.0.2" + sources."is-fullwidth-code-point-2.0.0" + sources."is-generator-fn-2.1.0" + sources."is-generator-function-1.0.7" + sources."is-glob-4.0.1" + sources."is-number-3.0.0" + sources."is-path-cwd-2.2.0" + sources."is-path-in-cwd-2.1.0" + sources."is-path-inside-2.1.0" + sources."is-plain-object-2.0.4" + sources."is-promise-2.1.0" + sources."is-regex-1.0.4" + sources."is-stream-1.1.0" + sources."is-symbol-1.0.2" + sources."is-typedarray-1.0.0" + sources."is-whitespace-0.3.0" + sources."is-windows-1.0.2" + sources."is-wsl-1.1.0" + sources."isarray-1.0.0" + sources."isexe-2.0.0" + sources."isobject-3.0.1" + sources."isomorphic-ws-4.0.1" + sources."isstream-0.1.2" + sources."istanbul-lib-coverage-2.0.5" + (sources."istanbul-lib-instrument-3.3.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + (sources."istanbul-lib-report-2.0.8" // { + dependencies = [ + sources."make-dir-2.1.0" + sources."pify-4.0.1" + sources."supports-color-6.1.0" + ]; + }) + (sources."istanbul-lib-source-maps-3.0.6" // { + dependencies = [ + sources."debug-4.1.1" + sources."make-dir-2.1.0" + sources."ms-2.1.2" + sources."pify-4.0.1" + ]; + }) + sources."istanbul-reports-2.2.6" + (sources."jest-24.8.0" // { + dependencies = [ + sources."jest-cli-24.9.0" + ]; + }) + sources."jest-changed-files-24.9.0" + (sources."jest-config-24.9.0" // { + dependencies = [ + sources."babel-jest-24.9.0" + sources."slash-2.0.0" + ]; + }) + sources."jest-diff-24.9.0" + sources."jest-docblock-24.9.0" + sources."jest-each-24.9.0" + sources."jest-environment-jsdom-24.9.0" + sources."jest-environment-node-24.9.0" + sources."jest-get-type-24.9.0" + sources."jest-haste-map-24.9.0" + sources."jest-jasmine2-24.9.0" + sources."jest-leak-detector-24.9.0" + sources."jest-matcher-utils-24.9.0" + (sources."jest-message-util-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."jest-mock-24.9.0" + sources."jest-pnp-resolver-1.2.1" + sources."jest-regex-util-24.9.0" + sources."jest-resolve-24.9.0" + sources."jest-resolve-dependencies-24.9.0" + sources."jest-runner-24.9.0" + (sources."jest-runtime-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."jest-serializer-24.9.0" + (sources."jest-snapshot-24.9.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + (sources."jest-util-24.9.0" // { + dependencies = [ + sources."slash-2.0.0" + ]; + }) + sources."jest-validate-24.9.0" + sources."jest-watcher-24.9.0" + (sources."jest-worker-24.9.0" // { + dependencies = [ + sources."supports-color-6.1.0" + ]; + }) + sources."js-beautify-1.10.2" + sources."js-stringify-1.0.2" + sources."js-tokens-3.0.2" + sources."js-yaml-3.13.1" + sources."jsbn-0.1.1" + (sources."jsdom-11.12.0" // { + dependencies = [ + (sources."acorn-globals-4.3.4" // { + dependencies = [ + sources."acorn-6.3.0" + ]; + }) + sources."ws-5.2.2" + ]; + }) + sources."jsesc-1.3.0" + sources."json-parse-better-errors-1.0.2" + sources."json-schema-0.2.3" + sources."json-schema-traverse-0.4.1" + sources."json-stream-1.0.0" + sources."json-stringify-safe-5.0.1" + sources."json3-3.3.3" + sources."json5-1.0.1" + sources."jsonfile-4.0.0" + sources."jsonpath-plus-0.19.0" + sources."jsprim-1.4.1" + sources."jstransformer-1.0.0" + sources."keygrip-1.0.3" + sources."killable-1.0.1" + sources."kind-of-3.2.2" + sources."kleur-3.0.3" + (sources."koa-2.7.0" // { + dependencies = [ + sources."debug-3.1.0" + ]; + }) + sources."koa-body-4.1.0" + sources."koa-compose-4.1.0" + (sources."koa-convert-1.2.0" // { + dependencies = [ + sources."koa-compose-3.2.1" + ]; + }) + sources."koa-is-json-1.0.0" + (sources."koa-router-7.4.0" // { + dependencies = [ + sources."debug-3.2.6" + sources."koa-compose-3.2.1" + sources."ms-2.1.2" + ]; + }) + (sources."koa-send-5.0.0" // { + dependencies = [ + sources."debug-3.2.6" + sources."ms-2.1.2" + ]; + }) + (sources."koa-static-5.0.0" // { + dependencies = [ + sources."debug-3.2.6" + sources."ms-2.1.2" + ]; + }) + (sources."koa-views-6.2.0" // { + dependencies = [ + sources."debug-4.1.1" + sources."ms-2.1.2" + ]; + }) + sources."lazy-cache-1.0.4" + sources."lcid-2.0.0" + sources."left-pad-1.3.0" + sources."leven-3.1.0" + sources."levn-0.3.0" + sources."load-json-file-4.0.0" + sources."loader-runner-2.4.0" + sources."loader-utils-1.2.3" + sources."locate-path-3.0.0" + sources."lodash-4.17.15" + sources."lodash.camelcase-4.3.0" + sources."lodash.clonedeep-4.5.0" + sources."lodash.sortby-4.7.0" + sources."log-symbols-2.2.0" + sources."loglevel-1.6.4" + sources."loglevelnext-1.0.5" + sources."longest-1.0.1" + sources."loose-envify-1.4.0" + (sources."lru-cache-4.1.5" // { + dependencies = [ + sources."yallist-2.1.2" + ]; + }) + sources."make-dir-1.3.0" + sources."make-error-1.3.5" + sources."makeerror-1.0.11" + sources."mamacro-0.0.3" + sources."map-age-cleaner-0.1.3" + sources."map-cache-0.2.2" + sources."map-visit-1.0.0" + sources."md5.js-1.3.5" + sources."media-typer-0.3.0" + sources."mem-4.3.0" + sources."memory-fs-0.4.1" + sources."merge-descriptors-1.0.1" + sources."merge-stream-2.0.0" + sources."methods-1.1.2" + (sources."micromatch-3.1.10" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + sources."kind-of-6.0.2" + ]; + }) + sources."miller-rabin-4.0.1" + sources."mime-1.6.0" + sources."mime-db-1.40.0" + sources."mime-types-2.1.24" + sources."mimic-fn-2.1.0" + sources."minimalistic-assert-1.0.1" + sources."minimalistic-crypto-utils-1.0.1" + sources."minimatch-3.0.4" + sources."minimist-1.2.0" + (sources."mississippi-2.0.0" // { + dependencies = [ + sources."pump-2.0.1" + ]; + }) + (sources."mixin-deep-1.3.2" // { + dependencies = [ + sources."is-extendable-1.0.1" + ]; + }) + (sources."mkdirp-0.5.1" // { + dependencies = [ + sources."minimist-0.0.8" + ]; + }) + sources."moment-2.24.0" + sources."moment-timezone-0.5.26" + sources."move-concurrently-1.0.1" + sources."ms-2.0.0" + sources."multicast-dns-6.2.3" + sources."multicast-dns-service-types-1.1.0" + sources."mz-2.7.0" + sources."nan-2.14.0" + (sources."nanomatch-1.2.13" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + sources."kind-of-6.0.2" + ]; + }) + sources."natural-compare-1.4.0" + sources."negotiator-0.6.2" + sources."neo-async-2.6.1" + sources."next-tick-1.0.0" + sources."nice-try-1.0.5" + sources."node-forge-0.8.2" + sources."node-int64-0.4.0" + (sources."node-libs-browser-2.2.1" // { + dependencies = [ + sources."punycode-1.4.1" + ]; + }) + sources."node-modules-regexp-1.0.0" + sources."node-notifier-5.4.3" + sources."nopt-4.0.1" + sources."normalize-package-data-2.5.0" + sources."normalize-path-2.1.1" + sources."npm-run-path-2.0.2" + sources."number-is-nan-1.0.1" + sources."nwsapi-2.1.4" + sources."oauth-sign-0.9.0" + sources."object-assign-4.1.1" + (sources."object-copy-0.1.0" // { + dependencies = [ + sources."define-property-0.2.5" + ]; + }) + sources."object-inspect-1.6.0" + sources."object-keys-1.1.1" + sources."object-visit-1.0.1" + sources."object.assign-4.1.0" + sources."object.getownpropertydescriptors-2.0.3" + sources."object.pick-1.3.0" + sources."obuf-1.1.2" + sources."on-finished-2.3.0" + sources."on-headers-1.0.2" + sources."once-1.4.0" + (sources."onetime-2.0.1" // { + dependencies = [ + sources."mimic-fn-1.2.0" + ]; + }) + sources."only-0.0.2" + sources."opener-1.5.1" + sources."opn-5.5.0" + (sources."optimist-0.6.1" // { + dependencies = [ + sources."minimist-0.0.10" + ]; + }) + (sources."optionator-0.8.2" // { + dependencies = [ + sources."wordwrap-1.0.0" + ]; + }) + (sources."ora-3.4.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + sources."strip-ansi-5.2.0" + ]; + }) + sources."original-1.0.2" + sources."os-browserify-0.3.0" + sources."os-homedir-1.0.2" + sources."os-locale-3.1.0" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."p-defer-1.0.0" + sources."p-each-series-1.0.0" + sources."p-finally-1.0.0" + sources."p-is-promise-2.1.0" + sources."p-limit-2.2.1" + sources."p-locate-3.0.0" + sources."p-map-2.1.0" + sources."p-reduce-1.0.0" + sources."p-retry-3.0.1" + sources."p-try-2.2.0" + sources."pako-1.0.10" + sources."parallel-transform-1.2.0" + sources."parse-asn1-5.1.5" + sources."parse-json-4.0.0" + sources."parse-passwd-1.0.0" + sources."parse5-4.0.0" + sources."parseurl-1.3.3" + sources."pascalcase-0.1.1" + sources."path-browserify-0.0.1" + sources."path-dirname-1.0.2" + sources."path-exists-3.0.0" + sources."path-is-absolute-1.0.1" + sources."path-is-inside-1.0.2" + sources."path-key-2.0.1" + sources."path-parse-1.0.6" + (sources."path-to-regexp-1.7.0" // { + dependencies = [ + sources."isarray-0.0.1" + ]; + }) + sources."path-type-3.0.0" + sources."pbkdf2-3.0.17" + sources."performance-now-2.1.0" + sources."pify-3.0.0" + sources."pinkie-2.0.4" + sources."pinkie-promise-2.0.1" + sources."pirates-4.0.1" + (sources."pkg-dir-2.0.0" // { + dependencies = [ + sources."find-up-2.1.0" + sources."locate-path-2.0.0" + sources."p-limit-1.3.0" + sources."p-locate-2.0.0" + sources."p-try-1.0.0" + ]; + }) + sources."pn-1.1.0" + sources."portfinder-1.0.24" + sources."posix-character-classes-0.1.1" + sources."prelude-ls-1.1.2" + sources."prettier-1.18.2" + sources."pretty-2.0.0" + (sources."pretty-format-24.9.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + ]; + }) + sources."private-0.1.8" + sources."process-0.11.10" + sources."process-nextick-args-2.0.1" + sources."promise-7.3.1" + sources."promise-inflight-1.0.1" + sources."prompts-2.2.1" + sources."proto-list-1.2.4" + sources."proxy-addr-2.0.5" + sources."prr-1.0.1" + sources."pseudomap-1.0.2" + sources."psl-1.1.32" + sources."public-encrypt-4.0.3" + sources."pug-2.0.4" + sources."pug-attrs-2.0.4" + sources."pug-code-gen-2.0.2" + sources."pug-error-1.3.3" + sources."pug-filters-3.1.1" + sources."pug-lexer-4.1.0" + sources."pug-linker-3.0.6" + sources."pug-load-2.0.12" + sources."pug-parser-5.0.1" + sources."pug-runtime-2.0.5" + sources."pug-strip-comments-1.0.4" + sources."pug-walk-1.1.8" + sources."pump-3.0.0" + (sources."pumpify-1.5.1" // { + dependencies = [ + sources."pump-2.0.1" + ]; + }) + sources."punycode-2.1.1" + sources."qs-6.7.0" + sources."querystring-0.2.0" + sources."querystring-es3-0.2.1" + sources."querystringify-2.1.1" + sources."randombytes-2.1.0" + sources."randomfill-1.0.4" + sources."range-parser-1.2.1" + sources."raw-body-2.4.0" + sources."react-is-16.9.0" + sources."read-pkg-3.0.0" + sources."read-pkg-up-4.0.0" + sources."readable-stream-2.3.6" + sources."readdirp-2.2.1" + sources."realpath-native-1.1.0" + sources."rechoir-0.6.2" + sources."regenerate-1.4.0" + sources."regenerator-runtime-0.11.1" + sources."regenerator-transform-0.10.1" + (sources."regex-not-1.0.2" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + ]; + }) + sources."regexpu-core-2.0.0" + sources."regjsgen-0.2.0" + (sources."regjsparser-0.1.5" // { + dependencies = [ + sources."jsesc-0.5.0" + ]; + }) + sources."remove-trailing-separator-1.1.0" + sources."repeat-element-1.1.3" + sources."repeat-string-1.6.1" + sources."repeating-2.0.1" + (sources."request-2.88.0" // { + dependencies = [ + sources."form-data-2.3.3" + sources."punycode-1.4.1" + sources."qs-6.5.2" + sources."tough-cookie-2.4.3" + ]; + }) + sources."request-promise-core-1.1.2" + sources."request-promise-native-1.0.7" + sources."require-directory-2.1.1" + sources."require-main-filename-2.0.0" + sources."requires-port-1.0.0" + sources."resolve-1.11.0" + sources."resolve-cwd-2.0.0" + sources."resolve-dir-1.0.1" + sources."resolve-from-3.0.0" + (sources."resolve-path-1.4.0" // { + dependencies = [ + sources."http-errors-1.6.3" + sources."setprototypeof-1.1.0" + ]; + }) + sources."resolve-url-0.2.1" + sources."restore-cursor-2.0.0" + sources."ret-0.1.15" + sources."retry-0.12.0" + sources."right-align-0.1.3" + sources."rimraf-2.7.1" + sources."ripemd160-2.0.2" + sources."rsvp-4.8.5" + sources."run-queue-1.0.3" + sources."rxjs-6.5.2" + sources."safe-buffer-5.1.2" + sources."safe-regex-1.1.0" + sources."safer-buffer-2.1.2" + sources."sane-4.1.0" + sources."sax-1.2.4" + sources."schema-utils-1.0.0" + sources."select-hose-2.0.0" + sources."selfsigned-1.10.6" + sources."semver-5.7.0" + (sources."send-0.17.1" // { + dependencies = [ + sources."ms-2.1.1" + ]; + }) + sources."serialize-javascript-1.9.1" + (sources."serve-index-1.9.1" // { + dependencies = [ + sources."http-errors-1.6.3" + sources."setprototypeof-1.1.0" + ]; + }) + sources."serve-static-1.14.1" + sources."set-blocking-2.0.0" + sources."set-value-2.0.1" + sources."setimmediate-1.0.5" + sources."setprototypeof-1.1.1" + sources."sha.js-2.4.11" + sources."shebang-command-1.2.0" + sources."shebang-regex-1.0.0" + sources."shelljs-0.8.3" + sources."shellwords-0.1.1" + sources."sigmund-1.0.1" + sources."signal-exit-3.0.2" + (sources."simple-git-1.96.0" // { + dependencies = [ + sources."debug-3.2.6" + sources."ms-2.1.2" + ]; + }) + sources."sisteransi-1.0.3" + sources."slash-1.0.0" + (sources."snapdragon-0.8.2" // { + dependencies = [ + sources."define-property-0.2.5" + sources."source-map-0.5.7" + ]; + }) + (sources."snapdragon-node-2.1.1" // { + dependencies = [ + sources."define-property-1.0.0" + sources."is-accessor-descriptor-1.0.0" + sources."is-data-descriptor-1.0.0" + sources."is-descriptor-1.0.2" + sources."kind-of-6.0.2" + ]; + }) + sources."snapdragon-util-3.0.1" + sources."sockjs-0.3.19" + (sources."sockjs-client-1.3.0" // { + dependencies = [ + sources."debug-3.2.6" + sources."faye-websocket-0.11.3" + sources."ms-2.1.2" + ]; + }) + sources."source-list-map-2.0.1" + sources."source-map-0.6.1" + sources."source-map-resolve-0.5.2" + sources."source-map-support-0.5.13" + sources."source-map-url-0.4.0" + sources."spdx-correct-3.1.0" + sources."spdx-exceptions-2.2.0" + sources."spdx-expression-parse-3.0.0" + sources."spdx-license-ids-3.0.5" + (sources."spdy-4.0.1" // { + dependencies = [ + sources."debug-4.1.1" + sources."ms-2.1.2" + ]; + }) + (sources."spdy-transport-3.0.0" // { + dependencies = [ + sources."debug-4.1.1" + sources."ms-2.1.2" + sources."readable-stream-3.4.0" + ]; + }) + (sources."split-string-3.1.0" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + ]; + }) + sources."sprintf-js-1.0.3" + sources."sshpk-1.16.1" + sources."ssri-5.3.0" + sources."stack-utils-1.0.2" + (sources."static-extend-0.1.2" // { + dependencies = [ + sources."define-property-0.2.5" + ]; + }) + sources."statuses-1.5.0" + sources."stealthy-require-1.1.1" + sources."stream-browserify-2.0.2" + sources."stream-each-1.2.3" + sources."stream-http-2.8.3" + sources."stream-shift-1.0.0" + (sources."string-length-2.0.0" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."strip-ansi-4.0.0" + ]; + }) + (sources."string-width-3.1.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + sources."strip-ansi-5.2.0" + ]; + }) + sources."string.prototype.trimleft-2.1.0" + sources."string.prototype.trimright-2.1.0" + sources."string_decoder-1.1.1" + sources."strip-ansi-3.0.1" + sources."strip-bom-3.0.0" + sources."strip-eof-1.0.0" + sources."supports-color-2.0.0" + sources."symbol-tree-3.2.4" + sources."tapable-1.1.3" + sources."terser-4.3.3" + (sources."terser-webpack-plugin-1.4.1" // { + dependencies = [ + sources."cacache-12.0.3" + sources."find-cache-dir-2.1.0" + sources."lru-cache-5.1.1" + sources."make-dir-2.1.0" + sources."mississippi-3.0.0" + sources."pify-4.0.1" + sources."pkg-dir-3.0.0" + sources."ssri-6.0.1" + ]; + }) + sources."test-exclude-5.2.3" + sources."thenify-3.3.0" + sources."thenify-all-1.6.0" + sources."throat-4.1.0" + sources."through2-2.0.5" + sources."thunky-1.0.3" + sources."timers-browserify-2.0.11" + sources."tmpl-1.0.4" + sources."to-arraybuffer-1.0.1" + sources."to-fast-properties-1.0.3" + sources."to-object-path-0.3.0" + (sources."to-regex-3.0.2" // { + dependencies = [ + sources."extend-shallow-3.0.2" + sources."is-extendable-1.0.1" + ]; + }) + sources."to-regex-range-2.1.1" + sources."toidentifier-1.0.0" + sources."token-stream-0.0.1" + sources."tough-cookie-2.5.0" + sources."tr46-1.0.1" + sources."trim-right-1.0.1" + sources."tryer-1.0.1" + (sources."ts-jest-24.0.2" // { + dependencies = [ + sources."camelcase-4.1.0" + sources."json5-2.1.0" + sources."yargs-parser-10.1.0" + ]; + }) + sources."tslib-1.10.0" + sources."tty-browserify-0.0.0" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-0.14.5" + sources."type-1.2.0" + sources."type-check-0.3.2" + sources."type-is-1.6.18" + sources."typedarray-0.0.6" + sources."typedarray-to-buffer-3.1.5" + sources."typescript-3.5.2" + sources."typical-4.0.0" + (sources."uglify-js-2.8.29" // { + dependencies = [ + sources."camelcase-1.2.1" + sources."cliui-2.1.0" + sources."source-map-0.5.7" + sources."yargs-3.10.0" + ]; + }) + sources."uglify-to-browserify-1.0.2" + sources."underscore-1.9.1" + sources."union-value-1.0.1" + sources."unique-filename-1.1.1" + sources."unique-slug-2.0.2" + sources."universalify-0.1.2" + sources."unpipe-1.0.0" + (sources."unset-value-1.0.0" // { + dependencies = [ + (sources."has-value-0.3.1" // { + dependencies = [ + sources."isobject-2.1.0" + ]; + }) + sources."has-values-0.1.4" + ]; + }) + sources."upath-1.2.0" + sources."uri-js-4.2.2" + sources."urijs-1.19.1" + sources."urix-0.1.0" + (sources."url-0.11.0" // { + dependencies = [ + sources."punycode-1.3.2" + ]; + }) + sources."url-parse-1.4.7" + sources."use-3.1.1" + sources."util-0.11.1" + sources."util-deprecate-1.0.2" + sources."util.promisify-1.0.0" + sources."utils-merge-1.0.1" + sources."uuid-3.3.2" + sources."v8-compile-cache-2.1.0" + sources."validate-npm-package-license-3.0.4" + sources."vary-1.1.2" + sources."verror-1.10.0" + sources."vm-browserify-1.1.0" + sources."void-elements-2.0.1" + sources."w3c-hr-time-1.0.1" + sources."walker-1.0.7" + sources."watchpack-1.6.0" + sources."wbuf-1.7.3" + sources."wcwidth-1.0.1" + sources."webidl-conversions-4.0.2" + (sources."webpack-4.35.0" // { + dependencies = [ + sources."acorn-6.3.0" + ]; + }) + (sources."webpack-bundle-analyzer-3.3.2" // { + dependencies = [ + sources."acorn-6.3.0" + ]; + }) + (sources."webpack-cli-3.3.4" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."cliui-4.1.0" + sources."get-caller-file-1.0.3" + sources."require-main-filename-1.0.1" + sources."string-width-2.1.1" + sources."strip-ansi-4.0.0" + sources."supports-color-5.5.0" + (sources."wrap-ansi-2.1.0" // { + dependencies = [ + sources."ansi-regex-2.1.1" + sources."is-fullwidth-code-point-1.0.0" + sources."string-width-1.0.2" + sources."strip-ansi-3.0.1" + ]; + }) + sources."yargs-12.0.5" + sources."yargs-parser-11.1.1" + ]; + }) + (sources."webpack-dev-middleware-3.7.1" // { + dependencies = [ + sources."mime-2.4.4" + sources."webpack-log-2.0.0" + ]; + }) + (sources."webpack-dev-server-3.7.2" // { + dependencies = [ + sources."ansi-regex-3.0.0" + (sources."cliui-4.1.0" // { + dependencies = [ + sources."strip-ansi-4.0.0" + ]; + }) + sources."debug-4.1.1" + sources."get-caller-file-1.0.3" + sources."ms-2.1.2" + sources."require-main-filename-1.0.1" + sources."semver-6.3.0" + (sources."string-width-2.1.1" // { + dependencies = [ + sources."strip-ansi-4.0.0" + ]; + }) + sources."supports-color-6.1.0" + sources."webpack-log-2.0.0" + (sources."wrap-ansi-2.1.0" // { + dependencies = [ + sources."is-fullwidth-code-point-1.0.0" + sources."string-width-1.0.2" + ]; + }) + sources."yargs-12.0.5" + sources."yargs-parser-11.1.1" + ]; + }) + sources."webpack-log-1.2.0" + sources."webpack-sources-1.4.3" + sources."websocket-1.0.28" + sources."websocket-driver-0.7.3" + sources."websocket-extensions-0.1.3" + sources."whatwg-encoding-1.0.5" + sources."whatwg-mimetype-2.3.0" + sources."whatwg-url-6.5.0" + sources."which-1.3.1" + sources."which-module-2.0.0" + sources."window-size-0.1.0" + (sources."with-5.1.1" // { + dependencies = [ + sources."acorn-3.3.0" + ]; + }) + sources."wordwrap-0.0.2" + sources."worker-farm-1.7.0" + (sources."wrap-ansi-5.1.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + sources."strip-ansi-5.2.0" + ]; + }) + sources."wrappy-1.0.2" + sources."write-file-atomic-2.4.1" + sources."ws-6.2.1" + sources."xml-name-validator-3.0.0" + sources."xtend-4.0.2" + sources."y18n-4.0.0" + sources."yaeti-0.0.6" + sources."yallist-3.1.0" + sources."yargs-13.3.0" + sources."yargs-parser-13.1.1" + sources."yarn-1.16.0" + sources."ylru-1.2.1" + ]; + buildInputs = globalBuildInputs; + meta = { + license = "MIT"; + }; + production = false; + bypassCache = true; + reconstructLock = false; + }; +in +{ + args = args; + sources = sources; + tarball = nodeEnv.buildNodeSourceDist args; + package = nodeEnv.buildNodePackage args; + shell = nodeEnv.buildNodeShell args; + nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args { + src = stdenv.mkDerivation { + name = args.name + "-package-json"; + src = nix-gitignore.gitignoreSourcePure [ + "*" + "!package.json" + "!package-lock.json" + ] args.src; + dontBuild = true; + installPhase = "mkdir -p $out; cp -r ./* $out;"; + }; + }); +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix new file mode 100644 index 000000000000..76230b8e1003 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix @@ -0,0 +1,56 @@ +{ lib, stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop +, RSupport? true, R +}: + +with lib; + +stdenv.mkDerivation rec { + + pname = "spark"; + version = "2.4.4"; + + src = fetchzip { + url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz"; + sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jre pythonPackages.python pythonPackages.numpy ] + ++ optional RSupport R; + + untarDir = "${pname}-${version}-bin-without-hadoop"; + installPhase = '' + mkdir -p $out/{lib/${untarDir}/conf,bin,/share/java} + mv * $out/lib/${untarDir} + + sed -e 's/INFO, console/WARN, console/' < \ + $out/lib/${untarDir}/conf/log4j.properties.template > \ + $out/lib/${untarDir}/conf/log4j.properties + + cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF + export JAVA_HOME="${jre}" + export SPARK_HOME="$out/lib/${untarDir}" + export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath) + export PYSPARK_PYTHON="${pythonPackages.python}/bin/${pythonPackages.python.executable}" + export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH" + ${optionalString RSupport + ''export SPARKR_R_SHELL="${R}/bin/R" + export PATH=$PATH:"${R}/bin/R"''} + EOF + + for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do + makeWrapper "$n" "$out/bin/$(basename $n)" + substituteInPlace "$n" --replace dirname ${coreutils.out}/bin/dirname + done + ln -s $out/lib/${untarDir}/lib/spark-assembly-*.jar $out/share/java + ''; + + meta = { + description = "Apache Spark is a fast and general engine for large-scale data processing"; + homepage = "http://spark.apache.org"; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + maintainers = with maintainers; [ thoughtpolice offline kamilchm ]; + repositories.git = "git://git.apache.org/spark.git"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch new file mode 100644 index 000000000000..364f7653efa3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch @@ -0,0 +1,44 @@ +From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001 +From: Graham Christensen <graham@grahamc.com> +Date: Mon, 1 Mar 2021 10:57:44 -0500 +Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox. + +--- + agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++ + agent/ssm/service_test.go | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go +index a1f969ff..631ea1f5 100644 +--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go ++++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go +@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) { + } + + func TestPrimaryIpInfo(t *testing.T) { ++ t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail."); + ip, err := primaryIpInfo() + assert.NoError(t, err, "expected no error fetching the primary ip") + assert.NotEmpty(t, ip, "expected to fetch primary ip") + } + + func TestMacAddrInfo(t *testing.T) { ++ t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail."); + mac, err := macAddrInfo() + assert.NoError(t, err, "expected no error fetching the mac addr") + assert.NotEmpty(t, mac, "expected to fetch mac address") +diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go +index f4b34f83..d8216dba 100644 +--- a/agent/ssm/service_test.go ++++ b/agent/ssm/service_test.go +@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() { + // Test function for update instance information + // This function update the agent name, agent statuc, and agent version. + func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() { ++ suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports."); + // Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called. + response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent") + assert.Nil(suite.T(), err, "Err should be nil") +-- +2.29.2 + diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch new file mode 100644 index 000000000000..234e510d3d17 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch @@ -0,0 +1,46 @@ +From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001 +From: Cole Helbling <cole.e.helbling@outlook.com> +Date: Tue, 2 Mar 2021 00:24:00 -0800 +Subject: [PATCH] version-gen: don't use unnecessary constants + +This prevents the tool from being built with Nix, because this project +doesn't use Go modules (or something; I'm not really familiar with Go, +much less Go + Nix). +--- + agent/version/versiongenerator/version-gen.go | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go +index d710effc..55c9a001 100644 +--- a/agent/version/versiongenerator/version-gen.go ++++ b/agent/version/versiongenerator/version-gen.go +@@ -22,8 +22,6 @@ import ( + "path/filepath" + "strings" + "text/template" +- +- "github.com/aws/amazon-ssm-agent/agent/appconfig" + ) + + const versiongoTemplate = `// This is an autogenerated file and should not be edited. +@@ -59,7 +57,7 @@ func main() { + versionStr := strings.TrimSpace(string(versionContent)) + + fmt.Printf("Agent Version: %v", versionStr) +- if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil { ++ if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil { + log.Fatalf("Error writing to VERSION file. %v", err) + } + +@@ -108,7 +106,7 @@ func main() { + + releaseNoteOutFile := strings.Join(releaseNoteLines, "\n") + +- if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil { ++ if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil { + log.Fatalf("Error writing to RELEASENOTES.md file. %v", err) + } + +-- +2.30.0 + diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix new file mode 100644 index 000000000000..86b48633c253 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix @@ -0,0 +1,128 @@ +{ lib +, writeShellScriptBin +, buildGoPackage +, makeWrapper +, fetchFromGitHub +, coreutils +, nettools +, dmidecode +, util-linux +, bashInteractive +, overrideEtc ? true +}: + +let + # Tests use lsb_release, so we mock it (the SSM agent used to not + # read from our /etc/os-release file, but now it does) because in + # reality, it won't (shouldn't) be used when active on a system with + # /etc/os-release. If it is, we fake the only two fields it cares about. + fake-lsb-release = writeShellScriptBin "lsb_release" '' + . /etc/os-release || true + + case "$1" in + -i) echo "''${NAME:-unknown}";; + -r) echo "''${VERSION:-unknown}";; + esac + ''; +in +buildGoPackage rec { + pname = "amazon-ssm-agent"; + version = "3.0.755.0"; + + goPackagePath = "github.com/aws/${pname}"; + + nativeBuildInputs = [ makeWrapper ]; + + src = fetchFromGitHub { + rev = version; + owner = "aws"; + repo = "amazon-ssm-agent"; + hash = "sha256-yVQJL1MJ1JlAndlrXfEbNLQihlbLhSoQXTKzJMRzhao="; + }; + + patches = [ + # Some tests use networking, so we skip them. + ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch + + # They used constants from another package that I couldn't figure + # out how to resolve, so hardcoded the constants. + ./0002-version-gen-don-t-use-unnecessary-constants.patch + ]; + + preConfigure = '' + rm -r ./Tools/src/goreportcard + printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh + + substituteInPlace agent/platform/platform_unix.go \ + --replace "/usr/bin/uname" "${coreutils}/bin/uname" \ + --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \ + --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"' + + substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \ + --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode + + substituteInPlace agent/session/shell/shell_unix.go \ + --replace '"script"' '"${util-linux}/bin/script"' + + echo "${version}" > VERSION + '' + lib.optionalString overrideEtc '' + substituteInPlace agent/appconfig/constants_unix.go \ + --replace '"/etc/amazon/ssm/"' '"${placeholder "out"}/etc/amazon/ssm/"' + ''; + + preBuild = '' + cp -r go/src/${goPackagePath}/vendor/src go + + pushd go/src/${goPackagePath} + + # Note: if this step fails, please patch the code to fix it! Please only skip + # tests if it is not feasible for the test to pass in a sandbox. + make quick-integtest + + make pre-release + make pre-build + + popd + ''; + + postBuild = '' + pushd go/bin + + rm integration-cli versiongenerator generator + + mv core amazon-ssm-agent + mv agent ssm-agent-worker + mv cli-main ssm-cli + mv worker ssm-document-worker + mv logging ssm-session-logger + mv sessionworker ssm-session-worker + + popd + ''; + + # These templates retain their `.template` extensions on installation. The + # amazon-ssm-agent.json.template is required as default configuration when an + # amazon-ssm-agent.json isn't present. Here, we retain the template to show + # we're using the default configuration. + + # seelog.xml isn't actually required to run, but it does ship as a template + # with debian packages, so it's here for reference. Future work in the nixos + # module could use this template and substitute a different log level. + postInstall = '' + mkdir -p $out/etc/amazon/ssm + cp go/src/${goPackagePath}/amazon-ssm-agent.json.template $out/etc/amazon/ssm/amazon-ssm-agent.json.template + cp go/src/${goPackagePath}/seelog_unix.xml $out/etc/amazon/ssm/seelog.xml.template + ''; + + postFixup = '' + wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin + ''; + + meta = with lib; { + description = "Agent to enable remote management of your Amazon EC2 instance configuration"; + homepage = "https://github.com/aws/amazon-ssm-agent"; + license = licenses.asl20; + platforms = platforms.unix; + maintainers = with maintainers; [ copumpkin manveru ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix new file mode 100644 index 000000000000..15a3b0ac24c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, awscli, unzip }: +let + ver = "1.2.7.0"; + source = if stdenv.isDarwin then { + url = + "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/mac/sessionmanager-bundle.zip"; + sha256 = "sha256-HP+opNjS53zR9eUxpNUHGD9rZN1z7lDc6+nONR8fa/s="; + } else { + url = + "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/ubuntu_64bit/session-manager-plugin.deb"; + sha256 = "sha256-EZ9ncj1YYlod1RLfXOpZFijnKjLYWYVBb+C6yd42l34="; + }; + platformBuildInput = if stdenv.isDarwin then [ unzip ] else [ dpkg ]; + unpackCmd = if stdenv.isDarwin then "unzip $src" else "dpkg-deb -x $src ."; + archivePath = if stdenv.isDarwin then "sessionmanager-bundle" else "usr/local/sessionmanagerplugin"; +in +stdenv.mkDerivation rec { + pname = "ssm-session-manager-plugin"; + version = ver; + + src = fetchurl source; + + nativeBuildInputs = [ autoPatchelfHook ] ++ platformBuildInput; + + buildInputs = [ awscli ]; + + unpackPhase = unpackCmd; + + installPhase = "install -m755 -D ${archivePath}/bin/session-manager-plugin $out/bin/session-manager-plugin"; + + meta = with lib; { + homepage = + "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html"; + description = "Amazon SSM Session Manager Plugin"; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + license = licenses.unfree; + maintainers = with maintainers; [ mbaillie ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix new file mode 100644 index 000000000000..121611fd197d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix @@ -0,0 +1,52 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "starboard"; + version = "0.10.3"; + + src = fetchFromGitHub { + owner = "aquasecurity"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-SJogepww3IJt+NAkJ0G/lLgZ3rMWDTC+jHIrzzkzJGA="; + }; + + vendorSha256 = "sha256-vNsYGlcVIj/cDijCFz8fG5Ht/s7koM62GV8zkOyA/fA="; + + # Don't build and check the integration tests + excludedPackages = "itest"; + + preBuild = '' + buildFlagsArray+=("-ldflags" "-s -w -X main.version=v${version}") + ''; + + preCheck = '' + # Remove test that requires networking + rm pkg/plugin/aqua/client/client_integration_test.go + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/starboard --help + $out/bin/starboard version | grep "v${version}" + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://github.com/aquasecurity/starboard"; + changelog = "https://github.com/aquasecurity/starboard/releases/tag/v${version}"; + description = "Kubernetes-native security tool kit"; + longDescription = '' + Starboard integrates security tools into the Kubernetes environment, so + that users can find and view the risks that relate to different resources + in a Kubernetes-native way. Starboard provides custom security resources + definitions and a Go module to work with a range of existing security + tools, as well as a kubectl-compatible command-line tool and an Octant + plug-in that make security reports available through familiar Kubernetes + tools. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ jk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix new file mode 100644 index 000000000000..09851e67ab56 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix @@ -0,0 +1,42 @@ +{ stdenv, lib, buildPackages, buildGoModule, fetchFromGitHub, installShellFiles }: +let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; + +in +buildGoModule rec { + pname = "stern"; + version = "1.19.0"; + + src = fetchFromGitHub { + owner = "stern"; + repo = "stern"; + rev = "v${version}"; + sha256 = "sha256-jgmURvc1did3YgtqWlAzFbWxc3jHHylOfCVOLeAC7V8="; + }; + + vendorSha256 = "sha256-p8WoFDwABXcO54WKP5bszoht2JdjHlRJjbG8cMyNo6A="; + + subPackages = [ "." ]; + + nativeBuildInputs = [ installShellFiles ]; + + buildFlagsArray = + [ "-ldflags=-s -w -X github.com/stern/stern/cmd.version=${version}" ]; + + postInstall = + let stern = if isCrossBuild then buildPackages.stern else "$out"; + in + '' + for shell in bash zsh; do + ${stern}/bin/stern --completion $shell > stern.$shell + installShellCompletion stern.$shell + done + ''; + + meta = with lib; { + description = "Multi pod and container log tailing for Kubernetes"; + homepage = "https://github.com/stern/stern"; + license = licenses.asl20; + maintainers = with maintainers; [ mbode preisschild ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix new file mode 100644 index 000000000000..5cb9f8160067 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, perl }: + +stdenv.mkDerivation rec { + version = "3.7.7"; + pname = "taktuk"; + + buildInputs = [ perl ]; + + src = fetchurl { + url = "https://gforge.inria.fr/frs/download.php/33412/${pname}-${version}.tar.gz"; + sha256 = "0w0h3ynlcxvq2nzm8hkj20g0805ww3vkw53g0qwj7wvp7p3gcvnr"; + }; + + preBuild = '' + substituteInPlace ./taktuk --replace "/usr/bin/perl" "${perl}/bin/perl" + ''; + + meta = { + description = "Efficient, large scale, parallel remote execution of commands"; + longDescription = '' + TakTuk allows one to execute commands in parallel on a potentially large set + of remote nodes (using ssh to connect to each node). It is typically used + inside high performance computing clusters and grids. It uses an adaptive + algorithm to efficiently distribute the work and sets up an interconnection + network to transport commands and perform I/Os multiplexing. It doesn't + require any specific software on the nodes thanks to a self-propagation + algorithm.''; + homepage = "http://taktuk.gforge.inria.fr/"; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.bzizou ]; + platforms = lib.platforms.linux; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix new file mode 100644 index 000000000000..bf11b35d71aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix @@ -0,0 +1,36 @@ +{ buildGoModule, fetchFromGitHub, lib, installShellFiles }: + +buildGoModule rec { + pname = "tanka"; + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "grafana"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-9UfSKMyapmDyikRqs7UiA4YYcvj/Tin9pRqC9iFLPWE="; + }; + + vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw="; + + doCheck = false; + + subPackages = [ "cmd/tk" ]; + + buildFlagsArray = [ "-ldflags=-s -w -extldflags \"-static\" -X github.com/grafana/tanka/pkg/tanka.CURRENT_VERSION=v${version}" ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + echo "complete -C $out/bin/tk tk" > tk.bash + installShellCompletion tk.bash + ''; + + meta = with lib; { + description = "Flexible, reusable and concise configuration for Kubernetes"; + homepage = "https://tanka.dev"; + license = licenses.asl20; + maintainers = with maintainers; [ mikefaille ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix new file mode 100644 index 000000000000..a7778af231d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix @@ -0,0 +1,62 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "tektoncd-cli"; + version = "0.19.1"; + + src = fetchFromGitHub { + owner = "tektoncd"; + repo = "cli"; + rev = "v${version}"; + sha256 = "sha256-duJSTk5LmJWbaVYybZZHWDe8E/ZqZLCCsdPIiH5d/G4="; + }; + + vendorSha256 = null; + + preBuild = '' + buildFlagsArray+=("-ldflags" "-s -w -X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}") + ''; + + nativeBuildInputs = [ installShellFiles ]; + + # third_party/VENDOR-LICENSE breaks build/check as go files are still included + # docs is a tool for generating docs + excludedPackages = "\\(third_party\\|cmd/docs\\)"; + + preCheck = '' + # Some tests try to write to the home dir + export HOME="$TMPDIR" + # Change the golden files to match our desired version + sed -i "s/dev/${version}/" pkg/cmd/version/testdata/TestGetVersions-*.golden + ''; + + postInstall = '' + installManPage docs/man/man1/* + + installShellCompletion --cmd tkn \ + --bash <($out/bin/tkn completion bash) \ + --fish <($out/bin/tkn completion fish) \ + --zsh <($out/bin/tkn completion zsh) + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/tkn --help + # New tkn version functionality outputs empty https://github.com/tektoncd/cli/issues/1389 + # $out/bin/tkn version | grep "Client version: ${version}" + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://tekton.dev"; + changelog = "https://github.com/tektoncd/cli/releases/tag/v${version}"; + description = "Provides a CLI for interacting with Tekton"; + longDescription = '' + The Tekton Pipelines cli project provides a CLI for interacting with Tekton! + For your convenience, it is recommended that you install the Tekton CLI, tkn, together with the core component of Tekton, Tekton Pipelines. + ''; + license = licenses.asl20; + maintainers = with maintainers; [ jk mstrangfeld vdemeester ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix new file mode 100644 index 000000000000..5f71f8d70cb6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix @@ -0,0 +1,61 @@ +{ lib +, GitPython +, buildPythonApplication +, emoji +, fetchFromGitHub +, filetype +, ipython +, junit-xml +, lxml +, mock +, netaddr +, pytestCheckHook +, python3Packages +, radish-bdd +, semver +}: + +buildPythonApplication rec { + pname = "terraform-compliance"; + version = "1.2.11"; + + # No tests in Pypi package + src = fetchFromGitHub { + owner = "eerkunt"; + repo = pname; + rev = version; + sha256 = "161mszmxqp3wypnda48ama2mmq8yjilkxahwc1mxjwzy1n19sn7v"; + }; + + postPatch = '' + substituteInPlace setup.py \ + --replace "IPython==7.16.1" "IPython" + ''; + + checkInputs = [ pytestCheckHook ]; + + disabledTests = [ + "test_which_success" + "test_readable_plan_file_is_not_json" + ]; + + propagatedBuildInputs = [ + GitPython + emoji + filetype + ipython + junit-xml + lxml + mock + netaddr + radish-bdd + semver + ]; + + meta = with lib; { + description = "BDD test framework for terraform"; + homepage = "https://github.com/eerkunt/terraform-compliance"; + license = licenses.mit; + maintainers = with maintainers; [ kalbasit ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix new file mode 100644 index 000000000000..bc04d283507b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: +buildGoModule rec { + pname = "terraform-docs"; + version = "0.14.1"; + + src = fetchFromGitHub { + owner = "terraform-docs"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Jm0ySxn4GFW4iAH3tOIvclcDGJMKzH7m7fhWnAf4+gs="; + }; + + vendorSha256 = "sha256-IzmAlthE6SVvGHj72wrY1/KLehOv8Ck9VaTv5jMpt48="; + + subPackages = [ "." ]; + + meta = with lib; { + description = "A utility to generate documentation from Terraform modules in various output formats"; + homepage = "https://github.com/terraform-docs/terraform-docs/"; + license = licenses.mit; + maintainers = with maintainers; [ zimbatm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix new file mode 100644 index 000000000000..085b504314ee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoPackage, fetchFromGitHub}: + +buildGoPackage rec { + pname = "terraform-inventory"; + version = "0.7-pre"; + rev = "v${version}"; + + goPackagePath = "github.com/adammck/terraform-inventory"; + + subPackages = [ "./" ]; + + src = fetchFromGitHub { + inherit rev; + owner = "adammck"; + repo = "terraform-inventory"; + sha256 = "0wwyi2nfyn3wfpmvj8aabn0cjba0lpr5nw3rgd6qdywy7sc3rmb1"; + }; + + goDeps = ./deps.nix; + + meta = with lib; { + homepage = "https://github.com/adammck/terraform-inventory"; + description = "Terraform state to ansible inventory adapter"; + license = licenses.mit; + maintainers = with maintainers; [ htr ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix new file mode 100644 index 000000000000..9f7b5e317fe3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix @@ -0,0 +1,20 @@ +[ + { + goPackagePath = "github.com/adammck/venv"; + fetch = { + type = "git"; + url = "https://github.com/adammck/venv"; + rev = "8a9c907a37d36a8f34fa1c5b81aaf80c2554a306"; + sha256 = "1fzk3j4q59kpd2ks2aw8rmic6b123p5mh981cjh0kzs716grc6y8"; + }; + } + { + goPackagePath = "github.com/blang/vfs"; + fetch = { + type = "git"; + url = "https://github.com/blang/vfs"; + rev = "c14afcac17253ce7418da751ec6b1988790cdc8f"; + sha256 = "00q5qzxpn9n59nrmrljz4w9lljxvrr8i5j8i8b4iw86j0alcx53b"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile new file mode 100644 index 000000000000..c4f9a5511de9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'terraform_landscape' diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock new file mode 100644 index 000000000000..7307d8a33f3c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock @@ -0,0 +1,25 @@ +GEM + remote: https://rubygems.org/ + specs: + colorize (0.8.1) + commander (4.4.6) + highline (~> 1.7.2) + diffy (3.2.1) + highline (1.7.10) + polyglot (0.3.5) + terraform_landscape (0.2.1) + colorize (~> 0.7) + commander (~> 4.4) + diffy (~> 3.0) + treetop (~> 1.6) + treetop (1.6.10) + polyglot (~> 0.3) + +PLATFORMS + ruby + +DEPENDENCIES + terraform_landscape + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix new file mode 100644 index 000000000000..903aa9abb6e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix @@ -0,0 +1,18 @@ +{ lib, bundlerApp, bundlerUpdateScript }: + +bundlerApp { + pname = "terraform_landscape"; + + gemdir = ./.; + exes = [ "landscape" ]; + + passthru.updateScript = bundlerUpdateScript "terraform-landscape"; + + meta = with lib; { + description = "Improve Terraform's plan output to be easier to read and understand"; + homepage = "https://github.com/coinbase/terraform-landscape"; + license = with licenses; asl20; + maintainers = with maintainers; [ mbode manveru nicknovitski ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix new file mode 100644 index 000000000000..bf3767486eaf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix @@ -0,0 +1,61 @@ +{ + colorize = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b"; + type = "gem"; + }; + version = "0.8.1"; + }; + commander = { + dependencies = ["highline"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11sd2sb0id2dbxkv4pvymdiia1xxhms45kh4nr8mryqybad0fwwf"; + type = "gem"; + }; + version = "4.4.6"; + }; + diffy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg"; + type = "gem"; + }; + version = "3.2.1"; + }; + highline = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y"; + type = "gem"; + }; + version = "1.7.10"; + }; + polyglot = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr"; + type = "gem"; + }; + version = "0.3.5"; + }; + terraform_landscape = { + dependencies = ["colorize" "commander" "diffy" "treetop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1i93pih7r6zcqpjhsmvkpfkgbh0l66c60i6fkiymq7vy2xd6wnns"; + type = "gem"; + }; + version = "0.2.1"; + }; + treetop = { + dependencies = ["polyglot"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7"; + type = "gem"; + }; + version = "1.6.10"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix new file mode 100644 index 000000000000..b8e3c1540e94 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, buildGoPackage }: +buildGoPackage rec { + pname = "terraform-provider-ansible"; + version = "1.0.3"; + + goPackagePath = "github.com/nbering/terraform-provider-ansible"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "nbering"; + repo = "terraform-provider-ansible"; + rev = "v${version}"; + sha256 = "0dqi9ym0xvnz3h73cmd1vf6k2qwfhxvj1mcakkpmsd4cpxq4l6pr"; + }; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-ansible{,_v${version}}"; + + meta = with lib; { + description = "A Terraform provider serving as an interop layer for an Ansible dynamic inventory script."; + homepage = "https://github.com/nbering/terraform-provider-ansible"; + license = licenses.mpl20; + maintainers = with maintainers; [ uskudnik ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix new file mode 100644 index 000000000000..dc49f24afa59 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ansible/deps.nix @@ -0,0 +1,11 @@ +[ + { + goPackagePath = "github.com/hashicorp/terraform"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/terraform"; + rev = "v0.12.5"; + sha256 = "0p064rhaanwx4szs8hv6mdqad8d2bgfd94h2la11j58xbsxc7hap"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix new file mode 100644 index 000000000000..1ee986d20303 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/cloudfoundry/default.nix @@ -0,0 +1,29 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-cloudfoundry"; + version = "0.12.6"; + + src = fetchFromGitHub { + owner = "cloudfoundry-community"; + repo = pname; + rev = "v${version}"; + sha256 = "0n5ybpzk6zkrnd9vpmbjlkm8fdp7nbfr046wih0jk72pmiyrcygi"; + }; + + vendorSha256 = "01lfsd9aw9w3kr1a2a5b7ac6d8jaij83lhxl4y4qsnjlqk86fbxq"; + + # needs a running cloudfoundry + doCheck = false; + + postInstall = "mv $out/bin/terraform-provider-cloudfoundry{,_v${version}}"; + + passthru = { provider-source-address = "registry.terraform.io/cloudfoundry-community/cloudfoundry"; }; + + meta = with lib; { + homepage = "https://github.com/cloudfoundry-community/terraform-provider-cloudfoundry"; + description = "Terraform provider for cloudfoundry"; + license = licenses.mpl20; + maintainers = with maintainers; [ ris ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix new file mode 100644 index 000000000000..d88602d75bae --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix @@ -0,0 +1,67 @@ +{ lib +, buildGoModule +, buildGoPackage +, fetchFromGitHub +, callPackage +}: +let + list = lib.importJSON ./providers.json; + + buildWithGoModule = data: + buildGoModule { + pname = data.repo; + version = data.version; + subPackages = [ "." ]; + src = fetchFromGitHub { + inherit (data) owner repo rev sha256; + }; + vendorSha256 = data.vendorSha256 or null; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}"; + passthru = data; + }; + + buildWithGoPackage = data: + buildGoPackage { + pname = data.repo; + version = data.version; + goPackagePath = "github.com/${data.owner}/${data.repo}"; + subPackages = [ "." ]; + src = fetchFromGitHub { + inherit (data) owner repo rev sha256; + }; + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}"; + passthru = data; + }; + + # These providers are managed with the ./update-all script + automated-providers = lib.mapAttrs (_: attrs: + (if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else buildWithGoPackage) + attrs) list; + + # These are the providers that don't fall in line with the default model + special-providers = { + acme = automated-providers.acme.overrideAttrs (attrs: { + prePatch = attrs.prePatch or "" + '' + substituteInPlace go.mod --replace terraform-providers/terraform-provider-acme getstackhead/terraform-provider-acme + substituteInPlace main.go --replace terraform-providers/terraform-provider-acme getstackhead/terraform-provider-acme + ''; + }); + + # Packages that don't fit the default model + ansible = callPackage ./ansible {}; + cloudfoundry = callPackage ./cloudfoundry {}; + gandi = callPackage ./gandi {}; + hcloud = callPackage ./hcloud {}; + libvirt = callPackage ./libvirt {}; + linuxbox = callPackage ./linuxbox {}; + lxd = callPackage ./lxd {}; + vpsadmin = callPackage ./vpsadmin {}; + vercel = callPackage ./vercel {}; + }; +in + automated-providers // special-providers diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix new file mode 100644 index 000000000000..13afa8d3818a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, buildGoPackage }: +buildGoPackage rec { + pname = "terraform-provider-gandi"; + version = "1.0.0"; + + goPackagePath = "github.com/tiramiseb/terraform-provider-gandi"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "tiramiseb"; + repo = "terraform-provider-gandi"; + rev = "v${version}"; + sha256 = "0byydpqsimvnk11bh9iz8zlxbsmsk65w55pvkp18vjzqrhf4kyfv"; + }; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-gandi{,_v${version}}"; + + meta = with lib; { + description = "Terraform provider for the Gandi LiveDNS service."; + homepage = "https://github.com/tiramiseb/terraform-provider-gandi"; + license = licenses.mpl20; + maintainers = with maintainers; [ manveru ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix new file mode 100644 index 000000000000..3d4a3547502d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix @@ -0,0 +1,21 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.2.1 +[ + { + goPackagePath = "github.com/hashicorp/terraform"; + fetch = { + type = "git"; + url = "https://github.com/hashicorp/terraform"; + rev = "27b720113ed5143a870ec151b3b7c9d955a09bc0"; + sha256 = "1f0hwdf2z68p0ll3pgrx949h09q52gcfaxap0zz52m7px98sfab4"; + }; + } + { + goPackagePath = "github.com/tiramiseb/go-gandi-livedns"; + fetch = { + type = "git"; + url = "https://github.com/tiramiseb/go-gandi-livedns"; + rev = "4773a84f8ee7365ed21edc6cd0602aaf93e94e59"; + sha256 = "1i8s7yclrkhf974vs2splh5symzk0ym54px0bc216bq4ifzkwkqc"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix new file mode 100644 index 000000000000..5d0fcb13f179 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/hcloud/default.nix @@ -0,0 +1,32 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-hcloud"; + version = "1.26.0"; + + src = fetchFromGitHub { + owner = "hetznercloud"; + repo = pname; + rev = "v${version}"; + sha256 = "04fa3qr65hg1ylq2933ark5q1za6k0a4ky36a6vrw2dcgpr4f9zs"; + }; + + vendorSha256 = "15gcnwylxkgjriqscd4lagmwfssagq0ksrlb2svidw9aahmr7hw0"; + + # Spends an awful time in other test folders, apparently tries to reach + # opencensus and fails. + checkPhase = '' + pushd hcloud + go test -v + popd + ''; + + postInstall = "mv $out/bin/terraform-provider-hcloud{,_v${version}}"; + + meta = with lib; { + homepage = "https://github.com/cloudfoundry-community/terraform-provider-cloudfoundry"; + description = "Terraform provider for cloudfoundry"; + license = licenses.mpl20; + maintainers = with maintainers; [ ris ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix new file mode 100644 index 000000000000..ed2409ead9a3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix @@ -0,0 +1,60 @@ +{ lib, buildGoPackage, fetchFromGitHub, fetchpatch, libvirt, pkg-config, makeWrapper, cdrtools }: + +# USAGE: +# install the following package globally or in nix-shell: +# +# (terraform.withPlugins (p: [p.libvirt])) +# +# configuration.nix: +# +# virtualisation.libvirtd.enable = true; +# +# terraform-provider-libvirt does not manage pools at the moment: +# +# $ virsh --connect "qemu:///system" pool-define-as default dir - - - - /var/lib/libvirt/images +# $ virsh --connect "qemu:///system" pool-start default +# +# pick an example from (i.e ubuntu): +# https://github.com/dmacvicar/terraform-provider-libvirt/tree/master/examples + +buildGoPackage rec { + pname = "terraform-provider-libvirt"; + version = "0.6.3"; + + goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt"; + + patches = [ + (fetchpatch { + name = "base_volume_copy.patch"; + url = "https://github.com/cyril-s/terraform-provider-libvirt/commit/52df264e8a28c40ce26e2b614ee3daea882931c3.patch"; + sha256 = "1fg7ii2fi4c93hl41nhcncy9bpw3avbh6yiq99p1vkf87hhrw72n"; + }) + ]; + + src = fetchFromGitHub { + owner = "dmacvicar"; + repo = "terraform-provider-libvirt"; + rev = "v${version}"; + sha256 = "0ak2lpnv6h0i7lzfcggd90jpfhvsasdr6nflkflk2drlcpalggj9"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + buildInputs = [ libvirt ]; + + # mkisofs needed to create ISOs holding cloud-init data, + # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630 + propagatedBuildInputs = [ cdrtools ]; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postBuild = "mv go/bin/terraform-provider-libvirt{,_v${version}}"; + + meta = with lib; { + homepage = "https://github.com/dmacvicar/terraform-provider-libvirt"; + description = "Terraform provider for libvirt"; + platforms = platforms.linux; + license = licenses.asl20; + maintainers = with maintainers; [ mic92 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix new file mode 100644 index 000000000000..4f8c44aad3f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/linuxbox/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-linuxbox"; + version = "0.3.11"; + + src = fetchFromGitHub { + owner = "numtide"; + repo = pname; + rev = "v${version}"; + sha256 = "1sxb2iv4dl0rw3v1r7k5dfkyh14nmp19cprqafhb7ncarmvawq39"; + }; + + vendorSha256 = "16hp0pv1qpvr34ac1syjci39csvyj3c748inllypjwx76q6rwp7k"; + + postInstall = "mv $out/bin/terraform-provider-linuxbox{,_v${version}}"; + + passthru.provider-source-address = "registry.terraform.io/numtide/linuxbox"; + + meta = with lib; { + homepage = "https://github.com/numtide/terraform-provider-linuxbox"; + description = "Basic building block for Seed DevOps"; + license = licenses.bsd3; + maintainers = with maintainers; [ zimbatm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix new file mode 100644 index 000000000000..ab3d07a7f47b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-lxd"; + version = "1.5.0"; + + src = fetchFromGitHub { + owner = "sl1pm4t"; + repo = "terraform-provider-lxd"; + rev = "v${version}"; + sha256 = "sha256-ikI8LQ6qawdeUSb1Ee03H409DQw2M4QtsIxAESxXNRI="; + }; + + vendorSha256 = "sha256-IjpC7bFodqdrqVUEQdZBc6N8py5+t2kRYvcQiPr7CHc="; + + doCheck = false; + + postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}"; + + meta = with lib; { + homepage = "https://github.com/sl1pm4t/terraform-provider-lxd"; + description = "Terraform provider for lxd"; + platforms = platforms.linux; + license = licenses.mpl20; + maintainers = with maintainers; [ gila ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json new file mode 100644 index 000000000000..e738a6ad7753 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -0,0 +1,1160 @@ +{ + "aci": { + "owner": "terraform-providers", + "repo": "terraform-provider-aci", + "rev": "v0.2.3", + "sha256": "0sk0pp178w03fhsb65b9mpim1l4wqfnv9r9x64kiapjnvfb1rz3j", + "version": "0.2.3" + }, + "acme": { + "owner": "getstackhead", + "provider-source-address": "registry.terraform.io/getstackhead/acme", + "repo": "terraform-provider-acme", + "rev": "v1.5.0-patched", + "sha256": "1wdrjpd3l0xadsa3lqhsc9c57g8x2qkwb76q824sk8za1a7lapii", + "version": "1.5.0-patched" + }, + "aiven": { + "owner": "aiven", + "provider-source-address": "registry.terraform.io/aiven/aiven", + "repo": "terraform-provider-aiven", + "rev": "v2.1.14", + "sha256": "14bfdhn3daygj1v3lm9b3791sx2cd5h0panchpp39h6vrccrpmmk", + "vendorSha256": "1j09bfbld03yxq0vv9ld0xmw5axbza2bwlz01i1gl1v9dprlnbkc", + "version": "2.1.14" + }, + "akamai": { + "owner": "terraform-providers", + "provider-source-address": "registry.terraform.io/akamai/akamai", + "repo": "terraform-provider-akamai", + "rev": "v0.7.1", + "sha256": "0mg81147yz0m24xqljpw6v0ayhvb4fwf6qwaj7ii34hy2gjwv405", + "version": "0.7.1" + }, + "alicloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-alicloud", + "rev": "v1.86.0", + "sha256": "1hbv9ah7fd173sapwgsbg7790piwxw9zx90wfj5vz5b96ggbg28d", + "version": "1.86.0" + }, + "archive": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/archive", + "repo": "terraform-provider-archive", + "rev": "v2.0.0", + "sha256": "1d5n379zyjp2srg43g78a8h33qwcpkfkj7c35idvbyydi35vzlpl", + "vendorSha256": null, + "version": "2.0.0" + }, + "arukas": { + "owner": "terraform-providers", + "repo": "terraform-provider-arukas", + "rev": "v1.1.0", + "sha256": "1akl9fzgm5qv01vz18xjzyqjnlxw699qq4x8vr96j16l1zf10h99", + "version": "1.1.0" + }, + "auth0": { + "owner": "terraform-providers", + "repo": "terraform-provider-auth0", + "rev": "v0.11.0", + "sha256": "1dkcgzvvwmw5z5q4146jk0gj5b1zrv51vvkhhjd8qh9ipinipn97", + "version": "0.11.0" + }, + "avi": { + "owner": "terraform-providers", + "repo": "terraform-provider-avi", + "rev": "v0.2.2", + "sha256": "0dgpjg6iw21vfcn4i0x6x1l329a09wrd2jwghrjigwlq68wd835d", + "version": "0.2.2" + }, + "aviatrix": { + "owner": "terraform-providers", + "repo": "terraform-provider-aviatrix", + "rev": "v2.14.1", + "sha256": "137z7fgy5gp9n9fdvllyjh3nkbalrs2giqljfldbllymhvrv7xgr", + "version": "2.14.1" + }, + "aws": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/aws", + "repo": "terraform-provider-aws", + "rev": "v3.43.0", + "sha256": "05rv93y9hf0l869q6i581748rw4bahvsgggj0h7cwjnf7xap0sxj", + "vendorSha256": "1m6pkrpknslqnv60cz5739gp5nxc7xhga402wkl37gdagmadkmrk", + "version": "3.43.0" + }, + "azuread": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/azuread", + "repo": "terraform-provider-azuread", + "rev": "v1.4.0", + "sha256": "13y0h8af37gfsjhccbfsnj6kqcn61lr1znmsxipjr5h9ka5lc209", + "vendorSha256": null, + "version": "1.4.0" + }, + "azurerm": { + "owner": "terraform-providers", + "provider-source-address": "registry.terraform.io/hashicorp/azurerm", + "repo": "terraform-provider-azurerm", + "rev": "v2.58.0", + "sha256": "1zy3q5d63pz2rdczcs9xnxzasb2jbzhyg8nbk2r252mdnhx6h9vh", + "vendorSha256": null, + "version": "2.58.0" + }, + "azurestack": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/azurestack", + "repo": "terraform-provider-azurestack", + "rev": "v0.10.0", + "sha256": "0lcwrp6n3l1nink06wq2nrirs6k3wwjmya1w06x14pvqqdj1d5c8", + "vendorSha256": null, + "version": "0.10.0" + }, + "baiducloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-baiducloud", + "rev": "v1.2.0", + "sha256": "1s2vk4vjni5nc50pdw60pm0grrf835xy551i6d4cmfxkkpqx3f6f", + "version": "1.2.0" + }, + "bigip": { + "owner": "terraform-providers", + "repo": "terraform-provider-bigip", + "rev": "v1.2.0", + "sha256": "0z0l4j8sn8yf6kw5sbyhp6s0046f738lsm650skcspqa5f63mbd9", + "version": "1.2.0" + }, + "bitbucket": { + "owner": "terraform-providers", + "repo": "terraform-provider-bitbucket", + "rev": "v1.2.0", + "sha256": "11n4wpvmaab164g6k077n9dbdbhd5lwl7pxpha5492ks468nd95b", + "version": "1.2.0" + }, + "brightbox": { + "owner": "terraform-providers", + "repo": "terraform-provider-brightbox", + "rev": "v1.3.0", + "sha256": "127l1ic70fkcqr0h23qhbpl1j2mzp44p9593x8jl936xz4ll8l70", + "version": "1.3.0" + }, + "checkpoint": { + "owner": "terraform-providers", + "repo": "terraform-provider-checkpoint", + "rev": "v1.0.2", + "sha256": "0zypjcg1z8fkz31lfhysxx42lpw8ak4aqgdis6rxzqbnkk491fjp", + "version": "1.0.2" + }, + "chef": { + "owner": "terraform-providers", + "repo": "terraform-provider-chef", + "rev": "v0.2.0", + "sha256": "0ihn4706fflmf0585w22l7arzxsa9biq4cgh8nlhlp5y0zy934ns", + "version": "0.2.0" + }, + "cherryservers": { + "owner": "terraform-providers", + "repo": "terraform-provider-cherryservers", + "rev": "v1.0.0", + "sha256": "1z6ai6q8aw38kiy8x13rp0dsvb4jk40cv8pk5c069q15m4jab8lh", + "version": "1.0.0" + }, + "ciscoasa": { + "owner": "terraform-providers", + "repo": "terraform-provider-ciscoasa", + "rev": "v1.2.0", + "sha256": "033pgy42qwjpmjyzylpml7sfzd6dvvybs56cid1f6sm4ykmxbal7", + "version": "1.2.0" + }, + "clc": { + "owner": "terraform-providers", + "repo": "terraform-provider-clc", + "rev": "v0.1.0", + "sha256": "0gvsjnwk6xkgxai1gxsjf0hsjxbv8d8jg5hq8yd3hjhc6785fgnf", + "version": "0.1.0" + }, + "cloudflare": { + "owner": "cloudflare", + "provider-source-address": "registry.terraform.io/cloudflare/cloudflare", + "repo": "terraform-provider-cloudflare", + "rev": "v2.23.0", + "sha256": "0cyw6lddw3pj5lqra78qn0nd16ffay86vc8sqa68grx7ik9jgn7l", + "vendorSha256": "19fdwif81lqp848jhawd09b0lalslrwadd519vsdw03v2wp4p962", + "version": "2.23.0" + }, + "cloudinit": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/cloudinit", + "repo": "terraform-provider-cloudinit", + "rev": "v2.2.0", + "sha256": "0yv52hz60whmqfwv2a6f9f1fpszcyzs78hhz3lq4imz9dv5bd29z", + "vendorSha256": null, + "version": "2.2.0" + }, + "cloudscale": { + "owner": "terraform-providers", + "repo": "terraform-provider-cloudscale", + "rev": "v2.1.2", + "sha256": "052pa17a77fkmhvygfgmpz87xlc08qvz1apzc2scg2449xfdv7zb", + "version": "2.1.2" + }, + "cloudstack": { + "owner": "terraform-providers", + "repo": "terraform-provider-cloudstack", + "rev": "v0.3.0", + "sha256": "0zmyww6z3j839ydlmv254hr8gcsixng4lcvmiwkhxb3hj1nw8hcw", + "version": "0.3.0" + }, + "cobbler": { + "owner": "terraform-providers", + "repo": "terraform-provider-cobbler", + "rev": "v1.1.0", + "sha256": "08ljqibfi6alpvv8f7pzvjl2k4w6br6g6ac755x4xw4ycrr24xw9", + "version": "1.1.0" + }, + "cohesity": { + "owner": "terraform-providers", + "repo": "terraform-provider-cohesity", + "rev": "v0.1.0", + "sha256": "1yifipjf51n8q9xyqcmc4zjpszmpyzb330f4zas81hahjml78hgx", + "version": "0.1.0" + }, + "constellix": { + "owner": "terraform-providers", + "repo": "terraform-provider-constellix", + "rev": "v0.1.0", + "sha256": "14y0v8ilbrjj0aymrw50fkz2mihnwyv83z8a9f8dh399s8l624w1", + "version": "0.1.0" + }, + "consul": { + "owner": "terraform-providers", + "provider-source-address": "registry.terraform.io/hashicorp/consul", + "repo": "terraform-provider-consul", + "rev": "v2.8.0", + "sha256": "1brd0fp9ksc3x8cygxm0k2q1sh4v5x89298pnidg6xirn41lvcr4", + "version": "2.8.0" + }, + "ct": { + "owner": "poseidon", + "provider-source-address": "registry.terraform.io/poseidon/ct", + "repo": "terraform-provider-ct", + "rev": "v0.8.0", + "sha256": "1mm86q3rl81dm2yfg2hdf88x8g5mhwwixrxgrffpkjvjqy42a8h7", + "version": "0.8.0" + }, + "datadog": { + "owner": "terraform-providers", + "repo": "terraform-provider-datadog", + "rev": "v2.7.0", + "sha256": "0cq11cjcm2nlszqhsrj425mk8dp0h5ljrrn7jplrbffp8g6wvadd", + "version": "2.7.0" + }, + "digitalocean": { + "owner": "digitalocean", + "provider-source-address": "registry.terraform.io/digitalocean/digitalocean", + "repo": "terraform-provider-digitalocean", + "rev": "v2.2.0", + "sha256": "14v9sh2qqdflzzp5mvkr7hd5c21hch8b8shxiwm0ar4qgdxq3wfy", + "vendorSha256": null, + "version": "2.2.0" + }, + "dme": { + "owner": "terraform-providers", + "repo": "terraform-provider-dme", + "rev": "v0.1.0", + "sha256": "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv", + "version": "0.1.0" + }, + "dns": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/dns", + "repo": "terraform-provider-dns", + "rev": "v3.0.0", + "sha256": "160dbmg7xg7iyc70f66dphyiysrdbscwya2n28idi8wp5rjx8bid", + "vendorSha256": null, + "version": "3.0.0" + }, + "dnsimple": { + "owner": "terraform-providers", + "repo": "terraform-provider-dnsimple", + "rev": "v0.4.0", + "sha256": "1f1cpfa30frghp4yxp9n313yaf2mm1hnjq4kzmn6n9210prab9h1", + "version": "0.4.0" + }, + "docker": { + "owner": "terraform-providers", + "repo": "terraform-provider-docker", + "rev": "v2.7.1", + "sha256": "1jqnlc3dfy354yjdkj8iyxv0vamyxgmwxmhjim11alwzwjafbv9s", + "version": "2.7.1" + }, + "dome9": { + "owner": "terraform-providers", + "repo": "terraform-provider-dome9", + "rev": "v1.19.0", + "sha256": "190q74aaa1v7n7pqcri8kib0g0d4njf9dzm3cygyzmsjs3pxj1lc", + "version": "1.19.0" + }, + "dyn": { + "owner": "terraform-providers", + "repo": "terraform-provider-dyn", + "rev": "v1.2.0", + "sha256": "1a3kxmbib2y0nl7gnxknbhsflj5kfknxnm3gjxxrb2h5d2kvqy48", + "version": "1.2.0" + }, + "elasticsearch": { + "owner": "phillbaker", + "provider-source-address": "registry.terraform.io/phillbaker/elasticsearch", + "repo": "terraform-provider-elasticsearch", + "rev": "v1.5.2", + "sha256": "1yfmlqab2jb679gbns04sdcjfihzsa0dfp7blhfk3v5zhgv1g7ys", + "vendorSha256": "15m9aqb2lqjv6g3k46zyha2m118wpbjrh4ap1bfps0fcxn20qvr5", + "version": "1.5.2" + }, + "exoscale": { + "owner": "terraform-providers", + "repo": "terraform-provider-exoscale", + "rev": "v0.16.2", + "sha256": "102z4v3shk0as76v90151j4c6p93wy16m1hzzk1yp50dlc8ffsks", + "version": "0.16.2" + }, + "external": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/external", + "repo": "terraform-provider-external", + "rev": "v2.1.0", + "sha256": "0xc3mj0d4yrr1952c5ywrx19ny1k2475grka9v2w7szdy6p2rkk5", + "vendorSha256": null, + "version": "2.1.0" + }, + "fastly": { + "owner": "terraform-providers", + "repo": "terraform-provider-fastly", + "rev": "v0.16.1", + "sha256": "1pjrcw03a86xgkzcx778f7kk79svv8csy05b7qi0m5x77zy4pws7", + "version": "0.16.1" + }, + "flexibleengine": { + "owner": "terraform-providers", + "repo": "terraform-provider-flexibleengine", + "rev": "v1.12.1", + "sha256": "0klxi40dd3a4dp7gjsjjwh6zv2m94hh6mk5m9g0dyhvn0r28w5j2", + "version": "1.12.1" + }, + "fortios": { + "owner": "terraform-providers", + "repo": "terraform-provider-fortios", + "rev": "v1.2.0", + "sha256": "0sqp23pyldxjkfw33xn5l5fqs4vn00kkfhy9wnl690wn0cwmldbx", + "version": "1.2.0" + }, + "genymotion": { + "owner": "terraform-providers", + "repo": "terraform-provider-genymotion", + "rev": "v1.1.0", + "sha256": "02jpr3cm7rrf810c69sr6lcxzvxpnf7icc5z80gnvg67wwfg4ph4", + "version": "1.1.0" + }, + "github": { + "owner": "terraform-providers", + "repo": "terraform-provider-github", + "rev": "v3.1.0", + "sha256": "1xl4fd1lfbn1vnrdmg2xljnv8hy6rmf0iv7g8pzbnzbvj2pi7w3b", + "version": "3.1.0" + }, + "gitlab": { + "owner": "gitlabhq", + "provider-source-address": "registry.terraform.io/gitlabhq/gitlab", + "repo": "terraform-provider-gitlab", + "rev": "v3.4.0", + "sha256": "03k3xjhxw70n00dvwd0fkdshff9hnicrah6rm6zqmksb4mb7wji3", + "version": "3.4.0" + }, + "google": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/google", + "repo": "terraform-provider-google", + "rev": "v3.62.0", + "sha256": "0x0qp8nk88667hvlpgxrdjsgirw8iwv85gn3k9xb37a3lw7xs4qz", + "vendorSha256": "0w6aavj1c4blpvsy00vz4dcj8rnxx6a586b16lqp6s1flqmlqrbi", + "version": "3.62.0" + }, + "google-beta": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/google-beta", + "repo": "terraform-provider-google-beta", + "rev": "v3.47.0", + "sha256": "1nk0bg2q7dg65rn3j5pkdjv07x0gs7bkv1bpfvlhi9p4fzx9g4by", + "vendorSha256": "0c2q4d2khsi3v9b659q1kmncnlshv4px6ch99jpcymwqg3xrxda2", + "version": "3.47.0" + }, + "grafana": { + "owner": "grafana", + "provider-source-address": "registry.terraform.io/grafana/grafana", + "repo": "terraform-provider-grafana", + "rev": "v1.12.0", + "sha256": "0jqm8ql8kams2rh90fwdmv9nnf4npzpxaagm9725nsf0iqn3qlhn", + "vendorSha256": "0pxd3sgpkry7gik6rgfl3cpgawhvgpb0sn1rkhdp9p11iwx7xxbi", + "version": "1.12.0" + }, + "gridscale": { + "owner": "terraform-providers", + "repo": "terraform-provider-gridscale", + "rev": "v1.6.0", + "sha256": "00l3cwvyyjk0n3j535qfj3bsf1s5l07786gnxycj0f8vz3a06bcq", + "version": "1.6.0" + }, + "hedvig": { + "owner": "terraform-providers", + "repo": "terraform-provider-hedvig", + "rev": "v1.1.1", + "sha256": "1gd26jm9frn52hy2vm5sv003lbai5sjgdign6akhjmw5sdsmfr05", + "version": "1.1.1" + }, + "helm": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/helm", + "repo": "terraform-provider-helm", + "rev": "v2.1.2", + "sha256": "1385r9wk6mpb9fj53bkq586v8lw2310dim3kgj3pkrc1fssvwj0z", + "vendorSha256": null, + "version": "2.1.2" + }, + "heroku": { + "owner": "terraform-providers", + "repo": "terraform-provider-heroku", + "rev": "v2.4.1", + "sha256": "10dacnd0y8q952s53n5myy08slw349pbfddjz63wcblcjyhvq0df", + "version": "2.4.1" + }, + "http": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/http", + "repo": "terraform-provider-http", + "rev": "v2.0.0", + "sha256": "0x6a9qf819g16dj9inyvhwff67xy0ixyy70ck56lkidrldara444", + "vendorSha256": null, + "version": "2.0.0" + }, + "huaweicloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-huaweicloud", + "rev": "v1.14.0", + "sha256": "10g5xl3pspzmj0bjzqbw3br4k7kh2jplph06f7sz2zg9dncl4h5z", + "version": "1.14.0" + }, + "huaweicloudstack": { + "owner": "terraform-providers", + "repo": "terraform-provider-huaweicloudstack", + "rev": "v1.2.0", + "sha256": "0jhx9rap4128j8sfkvpp8lbdmvdba0rkd3nxvy38wr3n18m7v1xg", + "version": "1.2.0" + }, + "hydra": { + "owner": "DeterminateSystems", + "provider-source-address": "registry.terraform.io/DeterminateSystems/hydra", + "repo": "terraform-provider-hydra", + "rev": "v0.1.2", + "sha256": "1a1ah5pzng9ik8f18kqx87fdh1c5wqbn2bsbhqrzd1nb8fc5xl03", + "vendorSha256": null, + "version": "0.1.2" + }, + "ibm": { + "owner": "IBM-Cloud", + "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm", + "repo": "terraform-provider-ibm", + "rev": "v1.14.0", + "sha256": "1r3y7r0mnbzd7xk6d5f7pvysl3p8vl5i5phya89dfwrk2x9xyw21", + "vendorSha256": null, + "version": "1.14.0" + }, + "icinga2": { + "owner": "terraform-providers", + "repo": "terraform-provider-icinga2", + "rev": "v0.3.0", + "sha256": "0xwjxb84glhp9viqykziwanj696w2prq4r7k0565k0w3qiaz440v", + "version": "0.3.0" + }, + "ignition": { + "owner": "terraform-providers", + "repo": "terraform-provider-ignition", + "rev": "v1.2.1", + "sha256": "0wd29iw0a5w7ykgs9m1mmi0bw5z9dl4z640qyz64x8rlh5hl1wql", + "version": "1.2.1" + }, + "incapsula": { + "owner": "terraform-providers", + "repo": "terraform-provider-incapsula", + "rev": "v2.1.0", + "sha256": "12zw2m7j52rszfawywbiv9rgv976h1w6bp98012qn45d4ap2kvzy", + "version": "2.1.0" + }, + "influxdb": { + "owner": "terraform-providers", + "repo": "terraform-provider-influxdb", + "rev": "v1.3.0", + "sha256": "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9", + "version": "1.3.0" + }, + "infoblox": { + "owner": "terraform-providers", + "repo": "terraform-provider-infoblox", + "rev": "v1.0.0", + "sha256": "0p95y5w3fzddygmsjc0j60z0f4aazvy5iwbwszj0i8gs42qhda2f", + "version": "1.0.0" + }, + "jdcloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-jdcloud", + "rev": "v1.1.0", + "sha256": "04vz0m3z9rfw2hp0h3jhn625r2v37b319krznvhqylqzksv39dzf", + "version": "1.1.0" + }, + "kafka": { + "owner": "Mongey", + "provider-source-address": "registry.terraform.io/Mongey/kafka", + "repo": "terraform-provider-kafka", + "rev": "v0.3.3", + "sha256": "10il2mmsrk27zgzdkwn495sfhlad2nnc2xa7qzn7rlqzh92bb8rb", + "vendorSha256": "1gxx561s7jghiq6kqb2nns52bbcp0ks2dylrb1lvy7g2798cpspf", + "version": "0.3.3" + }, + "kafka-connect": { + "owner": "Mongey", + "provider-source-address": "registry.terraform.io/Mongey/kafka-connect", + "repo": "terraform-provider-kafka-connect", + "rev": "v0.2.3", + "sha256": "0fn03l58lkrlinvnxld2ba7z1gx95vxklbhh2z7930pih0vhr0sr", + "vendorSha256": "17fwqhxh22szdys97dxh069z6s8xr3y9i3pi5ckdcr462j1dr95w", + "version": "0.2.3" + }, + "keycloak": { + "owner": "mrparkers", + "provider-source-address": "registry.terraform.io/mrparkers/keycloak", + "repo": "terraform-provider-keycloak", + "rev": "v3.0.0", + "sha256": "1q9vzmj9c7mznv6al58d3rs5kk1fh28k1qccx46hcbk82z52da3a", + "vendorSha256": "0kh6lljvqd577s19gx0fmfsmx9wm3ikla3jz16lbwwb8ahbqcw1f", + "version": "3.0.0" + }, + "ksyun": { + "owner": "terraform-providers", + "repo": "terraform-provider-ksyun", + "rev": "v1.0.0", + "sha256": "1vcx612bz2p0rjsrx11j6fdc0f0q2jm5m3xl94wrpx9jjb7aczvc", + "version": "1.0.0" + }, + "kubectl": { + "owner": "gavinbunney", + "provider-source-address": "registry.terraform.io/gavinbunney/kubectl", + "repo": "terraform-provider-kubectl", + "rev": "v1.10.0", + "sha256": "1w8g47dh77i7bhvxwysn7ldrcxl999sivxc7ws71ly5mnsljhhz0", + "vendorSha256": "1qrw2mg8ik2n6xlrnbcrgs9zhr9mwh1niv47kzhbp3mxvj5vdskk", + "version": "1.10.0" + }, + "kubernetes": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/kubernetes", + "repo": "terraform-provider-kubernetes", + "rev": "v2.1.0", + "sha256": "02ygydgi3fa8z6qd04hgcilbbwns8f21agaqxly2pf9j23fzi37g", + "vendorSha256": null, + "version": "2.1.0" + }, + "kubernetes-alpha": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/kubernetes-alpha", + "repo": "terraform-provider-kubernetes-alpha", + "rev": "v0.3.3", + "sha256": "18i9yp0w6mmic95p6d6ah1hl3rmgkh264z1a05973yslpqhyx9yl", + "vendorSha256": null, + "version": "0.3.3" + }, + "launchdarkly": { + "owner": "terraform-providers", + "repo": "terraform-provider-launchdarkly", + "rev": "v1.3.2", + "sha256": "0vgkivzbf6hcl9by6l0whpwidva7zmmgdabkshjjk0npl2cj8f9n", + "version": "1.3.2" + }, + "librato": { + "owner": "terraform-providers", + "repo": "terraform-provider-librato", + "rev": "v0.1.0", + "sha256": "0bxadwj5s7bvc4vlymn3w6qckf14hz82r7q98w2nh55sqr52d923", + "version": "0.1.0" + }, + "linode": { + "owner": "terraform-providers", + "repo": "terraform-provider-linode", + "rev": "v1.12.3", + "sha256": "17hnm7wivd75psap2qdmlnmmlf964s7jf4jrfgsm6njx32wwwfpp", + "version": "1.12.3" + }, + "local": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/local", + "repo": "terraform-provider-local", + "rev": "v2.1.0", + "sha256": "0lv1mvy4pkx0sc49xny4j0h30m64lvr3rnmqk85i5p0xhyn77gf2", + "vendorSha256": null, + "version": "2.1.0" + }, + "logentries": { + "owner": "terraform-providers", + "repo": "terraform-provider-logentries", + "rev": "v1.0.0", + "sha256": "04xprkb9zwdjyzmsdf10bgmn8sa8q7jw0izz8lw0cc9hag97qgbq", + "version": "1.0.0" + }, + "logicmonitor": { + "owner": "terraform-providers", + "repo": "terraform-provider-logicmonitor", + "rev": "v1.3.0", + "sha256": "00d8qx95cxaif636dyh935nv9nn6lmb1ybxy7n4myy9g80y50ap1", + "version": "1.3.0" + }, + "mailgun": { + "owner": "terraform-providers", + "repo": "terraform-provider-mailgun", + "rev": "v0.4.1", + "sha256": "1l76pg4hmww9zg2n4rkhm5dwjh42fxri6d41ih1bf670krkxwsmz", + "version": "0.4.1" + }, + "matchbox": { + "owner": "poseidon", + "repo": "terraform-provider-matchbox", + "rev": "v0.3.0", + "sha256": "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3", + "version": "0.3.0" + }, + "metal": { + "owner": "equinix", + "provider-source-address": "registry.terraform.io/equinix/metal", + "repo": "terraform-provider-metal", + "rev": "v2.1.0", + "sha256": "06i3rj6ig8hxbncdpa8b11v8pr3zhi90ppmf77jjin1114ikd172", + "version": "2.1.0" + }, + "metalcloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-metalcloud", + "rev": "v2.2.0", + "sha256": "0xii9gk96srzi9y4pbvlx2cvwypll4igvk89f9qrg18qrw72ags3", + "version": "2.2.0" + }, + "mongodbatlas": { + "owner": "terraform-providers", + "repo": "terraform-provider-mongodbatlas", + "rev": "v0.5.1", + "sha256": "0sl5yd1bqj79f7pj49aqh7l3fvdrbf8r7a4g7cv15qbc8g3lr1dh", + "version": "0.5.1" + }, + "mysql": { + "owner": "terraform-providers", + "repo": "terraform-provider-mysql", + "rev": "v1.9.0", + "sha256": "14gxxki3jhncv3s2x828ns2vgmf2xxzigdyp9b54mbkw5rnv1k2g", + "version": "1.9.0" + }, + "ncloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-ncloud", + "rev": "v1.2.0", + "sha256": "1h2fr0ss58dr3ypqj6kw90iyji6s83sz2i85vhs5z2adjbk7h8va", + "version": "1.2.0" + }, + "netlify": { + "owner": "terraform-providers", + "repo": "terraform-provider-netlify", + "rev": "v0.4.0", + "sha256": "07xds84k2vgpvn2cy3id7hmzg57sz2603zs4msn3ysxmi28lmqyg", + "version": "0.4.0" + }, + "newrelic": { + "owner": "terraform-providers", + "repo": "terraform-provider-newrelic", + "rev": "v1.19.0", + "sha256": "0nmbgw4qyzsw8kxi7p8dy4j1lkxcz7qfs56qsvwf2w07y4qm382p", + "version": "1.19.0" + }, + "nixos": { + "owner": "tweag", + "repo": "terraform-provider-nixos", + "rev": "v0.0.1", + "sha256": "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf", + "version": "0.0.1" + }, + "nomad": { + "owner": "terraform-providers", + "repo": "terraform-provider-nomad", + "rev": "v1.4.5", + "sha256": "1sccm4mspjn92ky6nscsrmbb573mx53wzsvvapsf2p4119h9s30i", + "version": "1.4.5" + }, + "ns1": { + "owner": "terraform-providers", + "repo": "terraform-provider-ns1", + "rev": "v1.8.3", + "sha256": "18mq6r8sw2jjvngay0zyvzlfiln8c0xb8hcrl2wcmnpqv2iinbkl", + "version": "1.8.3" + }, + "nsxt": { + "owner": "terraform-providers", + "repo": "terraform-provider-nsxt", + "rev": "v2.0.0", + "sha256": "0fka793r0c06sz8vlxk0z7vbm6kab5xzk39r5pznkq34004r17sl", + "version": "2.0.0" + }, + "null": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/null", + "repo": "terraform-provider-null", + "rev": "v3.1.0", + "sha256": "0s6j2py9bb3knrn0f8aga8ypkxj6v5ns08k7zgw26h3wwdxwyd12", + "vendorSha256": null, + "version": "3.1.0" + }, + "nutanix": { + "owner": "terraform-providers", + "repo": "terraform-provider-nutanix", + "rev": "v1.0.2", + "sha256": "17sgsxsh8minirks08c6gz52cf7ndn220sx4xzi6bq64yi6qw2yc", + "version": "1.0.2" + }, + "oci": { + "owner": "terraform-providers", + "provider-source-address": "registry.terraform.io/hashicorp/oci", + "repo": "terraform-provider-oci", + "rev": "v3.79.0", + "sha256": "11n2v537zniiv5xvhpypqrm09my8zybirvq4ly94hp69v73xj89c", + "version": "3.79.0" + }, + "okta": { + "owner": "terraform-providers", + "repo": "terraform-provider-okta", + "rev": "v3.3.0", + "sha256": "1z557z1yagp2caf85hmcr6sddax9a5h47jja17082qmmr1qy0i07", + "version": "3.3.0" + }, + "oktaasa": { + "owner": "terraform-providers", + "repo": "terraform-provider-oktaasa", + "rev": "v1.0.0", + "sha256": "093d5r8dz8gryk8qp5var2qrrgkvs1gwgw3zqpxry9xc5cpn30w0", + "version": "1.0.0" + }, + "oneandone": { + "owner": "terraform-providers", + "repo": "terraform-provider-oneandone", + "rev": "v1.3.0", + "sha256": "0c412nqg3k17124i51nn3ffra6gcll904h37h7hyvz97cdblcncn", + "version": "1.3.0" + }, + "opc": { + "owner": "terraform-providers", + "repo": "terraform-provider-opc", + "rev": "v1.4.0", + "sha256": "1yl8bbh4pf94wlmna294zcawylr9hiaix82wr321g9wb0vi3d5l8", + "version": "1.4.0" + }, + "opennebula": { + "owner": "terraform-providers", + "repo": "terraform-provider-opennebula", + "rev": "v0.1.1", + "sha256": "048cqd89fz5xpji1w8ylg75nbzzcx1c5n89y1k0ra8d3g2208yb2", + "version": "0.1.1" + }, + "openstack": { + "owner": "terraform-providers", + "repo": "terraform-provider-openstack", + "rev": "v1.28.0", + "sha256": "1g2nxv312ddvkgpph17m9sh4zmy5ddj8gqwnfb3frbfbbamrgar6", + "version": "1.28.0" + }, + "opentelekomcloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-opentelekomcloud", + "rev": "v1.17.1", + "sha256": "1d4w35hpvxy5wkb6n9wrh2nfcsy0xgk6d4jbk4sy7dn44w3nkqbg", + "version": "1.17.1" + }, + "opsgenie": { + "owner": "terraform-providers", + "repo": "terraform-provider-opsgenie", + "rev": "v0.3.4", + "sha256": "11pbkhn7yhz2mfa01ikn7rdajl28zwxfq9g9qdf9lvkdrv88gwh0", + "version": "0.3.4" + }, + "oraclepaas": { + "owner": "terraform-providers", + "repo": "terraform-provider-oraclepaas", + "rev": "v1.5.3", + "sha256": "0xb03b5jgm06rgrllib6zj1nkh54zv2mqjnyfflgnazpf4c1ia15", + "version": "1.5.3" + }, + "ovh": { + "owner": "terraform-providers", + "repo": "terraform-provider-ovh", + "rev": "v0.8.0", + "sha256": "1ww4ng8w5hm50rbxd83xzbkq8qsn04dqwpdjhs587v9d0x2vwrf1", + "version": "0.8.0" + }, + "packet": { + "owner": "packethost", + "repo": "terraform-provider-packet", + "rev": "v3.2.0", + "sha256": "sha256-YIv4OPRbR00YTVwz0iJ/y6qTbj50nsi5ylrWEx1kZck=", + "version": "3.2.0" + }, + "pagerduty": { + "owner": "terraform-providers", + "repo": "terraform-provider-pagerduty", + "rev": "v1.7.2", + "sha256": "1a8g8rpn52wibrxhnvhlda7ja38vw9aadgdc8nbj7zs50x4aj3ic", + "version": "1.7.2" + }, + "panos": { + "owner": "terraform-providers", + "repo": "terraform-provider-panos", + "rev": "v1.6.2", + "sha256": "1qy6jynv61zhvq16s8jkwjhxz7r65cmk9k37ahh07pbhdx707mz5", + "version": "1.6.2" + }, + "pass": { + "owner": "camptocamp", + "repo": "terraform-provider-pass", + "rev": "1.2.1", + "sha256": "1hf5mvgz5ycp7shiy8px205d9kwswfjmclg7mlh9a55bkraffahk", + "version": "1.2.1" + }, + "postgresql": { + "owner": "cyrilgdn", + "provider-source-address": "registry.terraform.io/cyrilgdn/postgresql", + "repo": "terraform-provider-postgresql", + "rev": "v1.8.1", + "sha256": "07qaiy3vmz179am1qrxwvrk7xpraaa8g0hf49bj54pw7nkrmaixq", + "vendorSha256": null, + "version": "1.8.1" + }, + "powerdns": { + "owner": "terraform-providers", + "repo": "terraform-provider-powerdns", + "rev": "v1.4.0", + "sha256": "1mfcj32v66w5gnzbrdkampydl3m9f1155vcdw8l1f2nba59irkgw", + "version": "1.4.0" + }, + "profitbricks": { + "owner": "terraform-providers", + "repo": "terraform-provider-profitbricks", + "rev": "v1.5.2", + "sha256": "0gass4gzv8axlzn5rgg35nqvd61q82k041r0sr6x6pv6j8v1ixln", + "version": "1.5.2" + }, + "pureport": { + "owner": "terraform-providers", + "repo": "terraform-provider-pureport", + "rev": "v1.1.8", + "sha256": "02vmqwjz5m5hj4zghwicjp27dxvc4qsiwj4gjsi66w6djdqnh4h1", + "version": "1.1.8" + }, + "rabbitmq": { + "owner": "cyrilgdn", + "provider-source-address": "registry.terraform.io/cyrilgdn/rabbitmq", + "repo": "terraform-provider-rabbitmq", + "rev": "v1.5.1", + "sha256": "1yxvhzrp63wv5zbzj3ma2745g1marpj32b5h41ha27h0i42498ky", + "vendorSha256": null, + "version": "1.5.1" + }, + "rancher": { + "owner": "terraform-providers", + "repo": "terraform-provider-rancher", + "rev": "v1.5.0", + "sha256": "0yhv9ahj6ajspgnl2f77gpyd6klq44dyl74lvl10bx6yy56abi2m", + "version": "1.5.0" + }, + "rancher2": { + "owner": "rancher", + "provider-source-address": "registry.terraform.io/hashicorp/rancher2", + "repo": "terraform-provider-rancher2", + "rev": "v1.13.0", + "sha256": "0xczv9qsviryiw95yd6cl1nnb0daxs971fm733gfvwm36jvmyr89", + "vendorSha256": "0apy6qbmshfj4pzz9nqdhyk6h7l9qwrccz30q8ljl928pj49q04c", + "version": "1.13.0" + }, + "random": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/random", + "repo": "terraform-provider-random", + "rev": "v3.1.0", + "sha256": "1677mia6bbydqa8w50f1y85rynpv9lhg9ar5s6japsr5g78lrcqf", + "vendorSha256": null, + "version": "3.1.0" + }, + "rightscale": { + "owner": "terraform-providers", + "repo": "terraform-provider-rightscale", + "rev": "v1.3.1", + "sha256": "0abwxaghrxpahpsk6kd02fjh0rhck4xsdrzcpv629yh8ip9rzcaj", + "version": "1.3.1" + }, + "rundeck": { + "owner": "terraform-providers", + "repo": "terraform-provider-rundeck", + "rev": "v0.4.0", + "sha256": "1x131djsny8w84yf7w2il33wlc3ysy3k399dziii2lmq4h8sgrpr", + "version": "0.4.0" + }, + "runscope": { + "owner": "terraform-providers", + "repo": "terraform-provider-runscope", + "rev": "v0.6.0", + "sha256": "1fsph2cnyvzdwa5hwdjabfk4azmc3x8a7afpwpawxfdvqhgpr595", + "version": "0.6.0" + }, + "scaleway": { + "owner": "terraform-providers", + "repo": "terraform-provider-scaleway", + "rev": "v1.15.0", + "sha256": "0bdhjrml14f5z4spkl7l305g0vdzpgama7ahngws8jhvl8yfa208", + "version": "1.15.0" + }, + "secret": { + "owner": "tweag", + "repo": "terraform-provider-secret", + "rev": "v1.1.1", + "sha256": "1pr0amzgv1i1lxniqlx8spdb73q522l7pm8a4m25hwy1kwby37sd", + "version": "1.1.1" + }, + "segment": { + "owner": "ajbosco", + "repo": "terraform-provider-segment", + "rev": "v0.2.0", + "sha256": "0ic5b9djhnb1bs2bz3zdprgy3r55dng09xgc4d9l9fyp85g2amaz", + "version": "0.2.0" + }, + "selectel": { + "owner": "terraform-providers", + "repo": "terraform-provider-selectel", + "rev": "v3.3.0", + "sha256": "1fs96qd2b4glk8hhn5m9r04ap679g0kf3nnhjx1a2idqwrv71gcl", + "version": "3.3.0" + }, + "shell": { + "owner": "scottwinkler", + "provider-source-address": "registry.terraform.io/scottwinkler/shell", + "repo": "terraform-provider-shell", + "rev": "v1.6.0", + "sha256": "0jxb30vw93ibnwz8nfqapac7p9r2famzvsf2h4nfbmhkm6mpan4l", + "vendorSha256": "1p2ja6cw3dl7mx41svri6frjpgb9pxsrl7sq0rk1d3sviw0f88sg", + "version": "1.6.0" + }, + "signalfx": { + "owner": "terraform-providers", + "repo": "terraform-provider-signalfx", + "rev": "v4.23.0", + "sha256": "1v3whvqb6nilfvw4c0xziq6yrlkl96d2cya094c7bd7wp9hzif1l", + "version": "4.23.0" + }, + "skytap": { + "owner": "terraform-providers", + "repo": "terraform-provider-skytap", + "rev": "v0.14.1", + "sha256": "0ygsdkv7czyhsjsx1q57rmmcl8x66d65yarhg40hlng5c7xpi52g", + "version": "0.14.1" + }, + "softlayer": { + "owner": "terraform-providers", + "repo": "terraform-provider-softlayer", + "rev": "v0.0.1", + "sha256": "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq", + "version": "0.0.1" + }, + "sops": { + "owner": "carlpett", + "repo": "terraform-provider-sops", + "rev": "v0.5.1", + "sha256": "1x32w1qw46rwa8bjhkfn6ybr1dkbdqk0prlm0bnwn3gvvj0hc7kh", + "version": "0.5.1" + }, + "spotinst": { + "owner": "terraform-providers", + "repo": "terraform-provider-spotinst", + "rev": "v1.17.0", + "sha256": "0pmbr2xdqrzkd66zv4gpyxzahs7p2m2xl5qyvqpg0apxn91z3ra7", + "version": "1.17.0" + }, + "stackpath": { + "owner": "terraform-providers", + "repo": "terraform-provider-stackpath", + "rev": "v1.3.0", + "sha256": "0gsr903v6fngaxm2r5h53g9yc3jpx2zccqq07rhzm9jbsfb6rlzn", + "version": "1.3.0" + }, + "statuscake": { + "owner": "terraform-providers", + "repo": "terraform-provider-statuscake", + "rev": "v1.0.0", + "sha256": "1x295va6c72465cxps0kx3rrb7s9aip2cniy6icsg1b2yrsb9b26", + "version": "1.0.0" + }, + "sumologic": { + "owner": "terraform-providers", + "repo": "terraform-provider-sumologic", + "rev": "v2.0.3", + "sha256": "0d7xsfdfs6dj02bh90bhwsa2jgxf84df3pqmsjlmxvpv65dv4vs8", + "version": "2.0.3" + }, + "telefonicaopencloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-telefonicaopencloud", + "rev": "v1.0.0", + "sha256": "1761wkjz3d2458xl7855lxklyxgyk05fddh92rp6975y0ca6xa5m", + "version": "1.0.0" + }, + "template": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/template", + "repo": "terraform-provider-template", + "rev": "v2.2.0", + "sha256": "12pn1i06jz4xl50md94yfdggg3pg5bv1viwf35izizm5rnyksyv2", + "vendorSha256": null, + "version": "2.2.0" + }, + "tencentcloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-tencentcloud", + "rev": "v1.36.0", + "sha256": "1sqynm0g1al5hnxzccv8iiqcgd07ys0g828f3xfw53b6f5vzbhfr", + "version": "1.36.0" + }, + "terraform": { + "owner": "terraform-providers", + "repo": "terraform-provider-terraform", + "rev": "v1.0.2", + "sha256": "1aj6g6l68n9kqmxfjlkwwxnac7fhha6wrmvsw4yylf0qyssww75v", + "version": "1.0.2" + }, + "tfe": { + "owner": "terraform-providers", + "repo": "terraform-provider-tfe", + "rev": "v0.18.0", + "sha256": "1cl83afm00fflsd3skynjvncid3r74fkxfznrs1v8qypcg1j79g1", + "version": "0.18.0" + }, + "time": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/time", + "repo": "terraform-provider-time", + "rev": "v0.6.0", + "sha256": "0fb81hisjicib9rzbn51jqfrchyjd3hzq98adnf22cbra8wlnxlm", + "version": "0.6.0" + }, + "tls": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/tls", + "repo": "terraform-provider-tls", + "rev": "v3.0.0", + "sha256": "1p9d5wrr4xwf2i930zlcarm1zl8ysj3nyc6rrbhpxk04kr6ap0wz", + "vendorSha256": null, + "version": "3.0.0" + }, + "triton": { + "owner": "terraform-providers", + "repo": "terraform-provider-triton", + "rev": "v0.7.0", + "sha256": "14wbdm2rlmjld9y7iizdinhk1fnx5s8fgjgd3jcs1b4g126s0pl0", + "version": "0.7.0" + }, + "turbot": { + "owner": "terraform-providers", + "repo": "terraform-provider-turbot", + "rev": "v1.3.0", + "sha256": "0z56s3kmx84raiwiny9jing8ac9msfd5vk8va24k8czwj2v5gb0f", + "version": "1.3.0" + }, + "ucloud": { + "owner": "terraform-providers", + "repo": "terraform-provider-ucloud", + "rev": "v1.20.0", + "sha256": "1s3xgdrngiy7slxwk5cmhij681yyfvc8185yig7jmrm21q2981f6", + "version": "1.20.0" + }, + "ultradns": { + "owner": "terraform-providers", + "repo": "terraform-provider-ultradns", + "rev": "v0.1.0", + "sha256": "0bq2y6bxdax7qnmq6vxh8pz9sqy1r3m05dv7q5dbv2xvba1b88hj", + "version": "0.1.0" + }, + "vault": { + "owner": "terraform-providers", + "provider-source-address": "registry.terraform.io/hashicorp/vault", + "repo": "terraform-provider-vault", + "rev": "v2.11.0", + "sha256": "1yzakc7jp0rs9axnfdqw409asrbjhq0qa7xn4xzpi7m94g1ii12d", + "version": "2.11.0" + }, + "vcd": { + "owner": "terraform-providers", + "repo": "terraform-provider-vcd", + "rev": "v2.8.0", + "sha256": "0myj5a9mrh7vg6h3gk5f0wsdp6832nz0z10h184107sdchpv253n", + "version": "2.8.0" + }, + "venafi": { + "owner": "terraform-providers", + "repo": "terraform-provider-venafi", + "rev": "v0.9.2", + "sha256": "06nk5c7lxs8fc04sz97lc3yk1zk1b9phkzw6fj9fnmpgaak87bj9", + "version": "0.9.2" + }, + "vra7": { + "owner": "terraform-providers", + "repo": "terraform-provider-vra7", + "rev": "v1.0.1", + "sha256": "0qmldgxmrv840c5rbmskdf4f9g4v52gg9v7magm6j2w2g0dp1022", + "version": "1.0.1" + }, + "vsphere": { + "owner": "hashicorp", + "provider-source-address": "registry.terraform.io/hashicorp/vsphere", + "repo": "terraform-provider-vsphere", + "rev": "v2.0.1", + "sha256": "0ah3bi4zpg8j59v4bj9a8vyknpnyl1g8bx4qyfwwz4gnqp9m4anr", + "vendorSha256": null, + "version": "2.0.1" + }, + "vthunder": { + "owner": "terraform-providers", + "repo": "terraform-provider-vthunder", + "rev": "v0.1.0", + "sha256": "1mw55g0kjgp300p6y4s8wc91fgfxjm0cbszfzgbc8ca4b00j8cc2", + "version": "0.1.0" + }, + "vultr": { + "owner": "vultr", + "repo": "terraform-provider-vultr", + "rev": "v2.1.3", + "sha256": "sha256-fvqkzg3j2TYAMbPc8Ifh35sBe0D76LYH6Ut5Ugdyexg=", + "version": "2.1.3" + }, + "wavefront": { + "owner": "terraform-providers", + "repo": "terraform-provider-wavefront", + "rev": "v2.3.0", + "sha256": "0aci96852bd4y8bi9y68p550jiji0c69kiw4zhf9qfld0sjz44j2", + "version": "2.3.0" + }, + "yandex": { + "owner": "yandex-cloud", + "repo": "terraform-provider-yandex", + "rev": "v0.54.0", + "sha256": "0q9m7520zl7q1liri6x849xjp221wbc9l2w6dj19mmgfwspqv02l", + "vendorSha256": "0rzldsb8gyhvnsd26wg9byqngzzj64pi86v2hb4i63rlfmnn77xi", + "version": "0.54.0" + } +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers new file mode 100755 index 000000000000..052c56742c5f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all-providers @@ -0,0 +1,22 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p jq +# shellcheck shell=bash + +# Update all providers which have specified provider source address +set -euo pipefail + +providers=$( + jq -r 'to_entries + | map_values(.value + { alias: .key }) + | .[] + | select(."provider-source-address"?) + | .alias' providers.json +) + +echo "Will update providers:" +echo "$providers" + +for provider in $providers; do + echo "Updating $provider" + ./update-provider "$provider" +done diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider new file mode 100755 index 000000000000..f97bbce83faa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider @@ -0,0 +1,179 @@ +#!/usr/bin/env nix-shell +#! nix-shell -I nixpkgs=../../../../.. -i bash -p coreutils curl jq moreutils nix +# shellcheck shell=bash +# vim: ft=sh +# +# Update a terraform provider to the latest version advertised at the +# provider source address. +# +set -euo pipefail + +show_usage() { + cat <<DOC +Usage: ./update-provider [--force] [--vendor] [<owner>/]<provider> + +Update a single provider in the providers.json inventory file. + +For example to update 'terraform-providers.aws' run: + + ./update-provider aws + +If the provider is not in the list already, use the form '<owner>/<provider>' +to add the provider to the list: + + ./update-provider hetznercloud/hcloud + +Options: + + * --force: Force the update even if the version matches. + * --vendor: Switch from go package to go modules with vendor. + * --vendor-sha256 <sha256>: Override the SHA256 or "null". +DOC +} + +force= +provider= +vendor= +vendorSha256= + +while [[ $# -gt 0 ]]; do + case "$1" in + -h | --help) + show_usage + exit + ;; + --force) + force=1 + shift + ;; + --vendor) + force=1 + vendor=1 + shift + ;; + --vendor-sha256) + force=1 + vendorSha256=$2 + shift 2 + ;; + *) + if [[ -n "$provider" ]]; then + echo "ERROR: provider name was passed two times: '$provider' and '$1'" + echo "Use --help for more info" + exit 1 + fi + provider=$1 + shift + esac +done + +if [[ -z "$provider" ]]; then + echo "ERROR: No providers specified!" + echo + show_usage + exit 1 +fi + +provider_name=$(basename "$provider") + +# Usage: read_attr <key> +read_attr() { + jq -r ".\"$provider_name\".\"$1\"" providers.json +} + +# Usage: update_attr <key> <value> +update_attr() { + if [[ "$2" == "null" ]]; then + jq -S ".\"$provider_name\".\"$1\" = null" providers.json | sponge providers.json + else + jq -S ".\"$provider_name\".\"$1\" = \"$2\"" providers.json | sponge providers.json + fi +} + +prefetch_github() { + # of a given owner, repo and rev, fetch the tarball and return the output of + # `nix-prefetch-url` + local owner=$1 + local repo=$2 + local rev=$3 + nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz" +} + +old_source_address="$(read_attr provider-source-address)" +old_vendor_sha256=$(read_attr vendorSha256) +old_version=$(read_attr version) + +if [[ $provider =~ ^[^/]+/[^/]+$ ]]; then + source_address=registry.terraform.io/$provider +else + source_address=$old_source_address +fi +if [[ "$source_address" == "null" ]]; then + echo "Could not find the source address for provider: $provider" + exit 1 +fi +update_attr "provider-source-address" "$source_address" + +# The provider source address (used inside Terraform `required_providers` block) is +# used to compute the registry API endpoint +# +# registry.terraform.io/hashicorp/aws (provider source address) +# registry.terraform.io/providers/hashicorp/aws (provider URL for the website) +# registry.terraform.io/v1/providers/hashicorp/aws (provider URL for the JSON API) +registry_response=$(curl -s https://"${source_address/\///v1/providers/}") + +version="$(jq -r '.version' <<< "$registry_response")" +if [[ "$old_version" = "$version" && "$force" != 1 && -z "$vendorSha256" && "$old_vendor_sha256" != "$vendorSha256" ]]; then + echo "$provider_name is already at version $version" + exit +fi +update_attr version "$version" + +provider_source_url="$(jq -r '.source' <<< "$registry_response")" + +org="$(echo "$provider_source_url" | cut -d '/' -f 4)" +update_attr owner "$org" +repo="$(echo "$provider_source_url" | cut -d '/' -f 5)" +update_attr repo "$repo" +rev="$(jq -r '.tag' <<< "$registry_response")" +update_attr rev "$rev" +sha256=$(prefetch_github "$org" "$repo" "$rev") +update_attr sha256 "$sha256" + +repo_root=$(git rev-parse --show-toplevel) + +if [[ -z "$vendorSha256" ]]; then + if [[ "$old_vendor_sha256" == null ]]; then + vendorSha256=null + elif [[ -n "$old_vendor_sha256" || "$vendor" = 1 ]]; then + echo "=== Calculating vendorSha256 ===" + update_attr vendorSha256 "0000000000000000000000000000000000000000000000000000000000000000" + # Hackish way to find out the desired sha256. First build, then extract the + # error message from the logs. + set +e + nix-build --no-out-link "$repo_root" -A "terraform-providers.$provider_name.go-modules" 2>vendor_log.txt + set -e + logs=$(< vendor_log.txt) + if ! [[ $logs =~ got:\ +([^\ ]+) ]]; then + echo "ERROR: could not find new hash in output:" + cat vendor_log.txt + rm -f vendor_log.txt + exit 1 + fi + rm -f vendor_log.txt + # trim the results in case it they have a sha256: prefix or contain more than one line + vendorSha256=$(echo "${BASH_REMATCH[1]#sha256:}" | head -n 1) + # Deal with nix unstable + if [[ $vendorSha256 = sha256-* ]]; then + vendorSha256=$(nix to-base32 "$vendorSha256") + fi + fi +fi + +if [[ -n "$vendorSha256" ]]; then + update_attr vendorSha256 "$vendorSha256" +fi + +# Check that the provider builds +echo "=== Building terraform-providers.$provider_name ===" +nix-build "$repo_root" -A "terraform-providers.$provider_name" diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix new file mode 100644 index 000000000000..f37d1ac5d87a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terraform-provider-vercel"; + version = "2.1.0"; + + src = fetchFromGitHub { + owner = "ondrejsika"; + repo = pname; + rev = "v${version}"; + sha256 = "06lskp3mmax7g0lchq6jaxavycj7snkhip9madzqkr552qvz5cgw"; + }; + + vendorSha256 = "0s0kf1v2217q9hfmc7r2yybcfk33k566dfvs2jiq63kyjnadhb0k"; + + postInstall = "mv $out/bin/terraform-provider-vercel{,_v${version}}"; + + meta = with lib; { + homepage = "https://github.com/ondrejsika/terraform-provider-vercel"; + description = "Terraform provider for Vercel"; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix new file mode 100644 index 000000000000..93401dfc635b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchFromGitHub, buildGoModule }: +buildGoModule rec { + pname = "terraform-provider-vpsadmin"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "vpsfreecz"; + repo = "terraform-provider-vpsadmin"; + rev = "v${version}"; + sha256 = "1vny6w9arbbra04bjjafisaswinm93ic1phy59l0g78sqf6x3a7v"; + }; + + vendorSha256 = "0j90fnzba23mwf9bzf9w5h0hszkl3h61p5i780s9v9c0hbzhbqsh"; + + doCheck = false; + + subPackages = [ "." ]; + + # Terraform allow checking the provider versions, but this breaks + # if the versions are not provided via file paths. + postInstall = "mv $out/bin/${pname}{,_v${version}}"; + + meta = with lib; { + description = "Terraform provider for vpsAdmin"; + homepage = "https://github.com/vpsfreecz/terraform-provider-vpsadmin"; + license = licenses.mpl20; + maintainers = with maintainers; [ zimbatm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix new file mode 100644 index 000000000000..691491ae7fd0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix @@ -0,0 +1,226 @@ +{ stdenv +, lib +, buildGoModule +, fetchFromGitHub +, makeWrapper +, coreutils +, runCommand +, runtimeShell +, writeText +, terraform-providers +, fetchpatch +}: + +let + generic = { version, sha256, vendorSha256 ? null, ... }@attrs: + let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "vendorSha256" ]; + in + buildGoModule ({ + name = "terraform-${version}"; + + inherit vendorSha256; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = "terraform"; + rev = "v${version}"; + inherit sha256; + }; + + postConfigure = '' + # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22 + substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \ + --replace "/bin/stty" "${coreutils}/bin/stty" + ''; + + postInstall = '' + # remove all plugins, they are part of the main binary now + for i in $out/bin/*; do + if [[ $(basename $i) != terraform ]]; then + rm "$i" + fi + done + ''; + + preCheck = '' + export HOME=$TMPDIR + export TF_SKIP_REMOTE_TESTS=1 + ''; + + subPackages = [ "." ]; + + meta = with lib; { + description = + "Tool for building, changing, and versioning infrastructure"; + homepage = "https://www.terraform.io/"; + changelog = "https://github.com/hashicorp/terraform/blob/v${version}/CHANGELOG.md"; + license = licenses.mpl20; + maintainers = with maintainers; [ + Chili-Man + babariviere + kalbasit + marsam + timstott + zimbatm + ]; + }; + } // attrs'); + + pluggable = terraform: + let + withPlugins = plugins: + let + actualPlugins = plugins terraform.plugins; + + # Make providers available in Terraform 0.13 and 0.12 search paths. + pluginDir = lib.concatMapStrings + (pl: + let + inherit (pl) version GOOS GOARCH; + + pname = pl.pname or (throw "${pl.name} is missing a pname attribute"); + + # This is just the name, without the terraform-provider- prefix + plugin_name = lib.removePrefix "terraform-provider-" pname; + + slug = pl.passthru.provider-source-address or "registry.terraform.io/nixpkgs/${plugin_name}"; + + shim = writeText "shim" '' + #!${runtimeShell} + exec ${pl}/bin/${pname}_v${version} "$@" + ''; + in + '' + TF_0_13_PROVIDER_PATH=$out/plugins/${slug}/${version}/${GOOS}_${GOARCH}/${pname}_v${version} + mkdir -p "$(dirname $TF_0_13_PROVIDER_PATH)" + + cp ${shim} "$TF_0_13_PROVIDER_PATH" + chmod +x "$TF_0_13_PROVIDER_PATH" + + TF_0_12_PROVIDER_PATH=$out/plugins/${pname}_v${version} + + cp ${shim} "$TF_0_12_PROVIDER_PATH" + chmod +x "$TF_0_12_PROVIDER_PATH" + '' + ) + actualPlugins; + + # Wrap PATH of plugins propagatedBuildInputs, plugins may have runtime dependencies on external binaries + wrapperInputs = lib.unique (lib.flatten + (lib.catAttrs "propagatedBuildInputs" + (builtins.filter (x: x != null) actualPlugins))); + + passthru = { + withPlugins = newplugins: + withPlugins (x: newplugins x ++ actualPlugins); + full = withPlugins lib.attrValues; + + # Ouch + overrideDerivation = f: + (pluggable (terraform.overrideDerivation f)).withPlugins plugins; + overrideAttrs = f: + (pluggable (terraform.overrideAttrs f)).withPlugins plugins; + override = x: + (pluggable (terraform.override x)).withPlugins plugins; + }; + # Don't bother wrapping unless we actually have plugins, since the wrapper will stop automatic downloading + # of plugins, which might be counterintuitive if someone just wants a vanilla Terraform. + in + if actualPlugins == [ ] then + terraform.overrideAttrs + (orig: { passthru = orig.passthru // passthru; }) + else + lib.appendToName "with-plugins" (stdenv.mkDerivation { + inherit (terraform) name meta; + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = pluginDir + '' + mkdir -p $out/bin/ + makeWrapper "${terraform}/bin/terraform" "$out/bin/terraform" \ + --set NIX_TERRAFORM_PLUGIN_DIR $out/plugins \ + --prefix PATH : "${lib.makeBinPath wrapperInputs}" + ''; + + inherit passthru; + }); + in + withPlugins (_: [ ]); + + plugins = removeAttrs terraform-providers [ + "override" + "overrideDerivation" + "recurseForDerivations" + ]; +in +rec { + # Constructor for other terraform versions + mkTerraform = attrs: pluggable (generic attrs); + + terraform_0_12 = mkTerraform { + version = "0.12.31"; + sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg"; + patches = [ + ./provider-path.patch + (fetchpatch { + name = "fix-mac-mojave-crashes.patch"; + url = "https://github.com/hashicorp/terraform/commit/cd65b28da051174a13ac76e54b7bb95d3051255c.patch"; + sha256 = "1k70kk4hli72x8gza6fy3vpckdm3sf881w61fmssrah3hgmfmbrs"; + }) + ]; + passthru = { inherit plugins; }; + }; + + terraform_0_13 = mkTerraform { + version = "0.13.7"; + sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn"; + patches = [ ./provider-path.patch ]; + passthru = { inherit plugins; }; + }; + + terraform_0_14 = mkTerraform { + version = "0.14.11"; + sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j"; + vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm"; + patches = [ ./provider-path.patch ]; + passthru = { inherit plugins; }; + }; + + terraform_0_15 = mkTerraform { + version = "0.15.5"; + sha256 = "18f4a6l24s3cym7gk40agxikd90i56q84wziskw1spy9rgv2yx6d"; + vendorSha256 = "12hrpxay6k3kz89ihyhl91c4lw4wp821ppa245w9977fq09fhnx0"; + patches = [ ./provider-path-0_15.patch ]; + passthru = { inherit plugins; }; + }; + + terraform_1_0 = mkTerraform { + version = "1.0.1"; + sha256 = "0sy33wf2wjhybr5smmyla7ci61w8irk0nrv3vv7h87yli1dd9yj0"; + vendorSha256 = "0ai7h85f0xdlh7q04l4hb9m5wajyqbylhvpjanlhkzvc60silhmx"; + patches = [ ./provider-path-0_15.patch ]; + passthru = { inherit plugins; }; + }; + + # Tests that the plugins are being used. Terraform looks at the specific + # file pattern and if the plugin is not found it will try to download it + # from the Internet. With sandboxing enable this test will fail if that is + # the case. + terraform_plugins_test = + let + mainTf = writeText "main.tf" '' + resource "random_id" "test" {} + ''; + terraform = terraform_1_0.withPlugins (p: [ p.random ]); + test = + runCommand "terraform-plugin-test" { buildInputs = [ terraform ]; } '' + set -e + # make it fail outside of sandbox + export HTTP_PROXY=http://127.0.0.1:0 HTTPS_PROXY=https://127.0.0.1:0 + cp ${mainTf} main.tf + terraform init + touch $out + ''; + in + test; + +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch new file mode 100644 index 000000000000..318df9ab69a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch @@ -0,0 +1,23 @@ +diff -Naur terraform.old/internal/command/init.go terraform.new/internal/command/init.go +--- terraform.old/internal/command/init.go ++++ terraform.new/internal/command/init.go +@@ -3,6 +3,7 @@ + import ( + "context" + "fmt" ++ "os" + "log" + "strings" + +@@ -55,6 +56,11 @@ + + var diags tfdiags.Diagnostics + ++ val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR") ++ if ok { ++ flagPluginPath = append(flagPluginPath, val) ++ } ++ + if len(flagPluginPath) > 0 { + c.pluginPath = flagPluginPath + } diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch new file mode 100644 index 000000000000..39a69e4a389f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch @@ -0,0 +1,16 @@ +diff --git a/command/init.go b/command/init.go +index 403ca245b..05d98329a 100644 +--- a/command/init.go ++++ b/command/init.go +@@ -64,6 +64,11 @@ func (c *InitCommand) Run(args []string) int { + return 1 + } + ++ val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR") ++ if ok { ++ flagPluginPath = append(flagPluginPath, val) ++ } ++ + if len(flagPluginPath) > 0 { + c.pluginPath = flagPluginPath + c.getPlugins = false diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile new file mode 100644 index 000000000000..e6a4991e899d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem 'terraforming' diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock new file mode 100644 index 000000000000..ae2a40cc35b0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock @@ -0,0 +1,92 @@ +GEM + remote: https://rubygems.org/ + specs: + aws-eventstream (1.1.1) + aws-partitions (1.436.0) + aws-sdk-autoscaling (1.59.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatch (1.50.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.113.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-dynamodb (1.60.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-ec2 (1.230.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-efs (1.39.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticache (1.54.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancing (1.31.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancingv2 (1.61.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-iam (1.51.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-kms (1.43.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-rds (1.117.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-redshift (1.58.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53 (1.48.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.93.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.1) + aws-sdk-sns (1.39.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-sqs (1.38.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.2.3) + aws-eventstream (~> 1, >= 1.0.2) + jmespath (1.4.0) + multi_json (1.12.2) + terraforming (0.18.0) + aws-sdk-autoscaling (~> 1) + aws-sdk-cloudwatch (~> 1) + aws-sdk-dynamodb (~> 1.18) + aws-sdk-ec2 (~> 1) + aws-sdk-efs (~> 1, >= 1.13.0) + aws-sdk-elasticache (~> 1) + aws-sdk-elasticloadbalancing (~> 1) + aws-sdk-elasticloadbalancingv2 (~> 1) + aws-sdk-iam (~> 1) + aws-sdk-kms (~> 1) + aws-sdk-rds (~> 1) + aws-sdk-redshift (~> 1) + aws-sdk-route53 (~> 1) + aws-sdk-s3 (~> 1) + aws-sdk-sns (~> 1) + aws-sdk-sqs (~> 1) + multi_json (~> 1.12.1) + thor + thor (1.1.0) + +PLATFORMS + ruby + +DEPENDENCIES + terraforming + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix new file mode 100644 index 000000000000..85d522257cde --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix @@ -0,0 +1,20 @@ +{ lib, bundlerApp, bundlerUpdateScript, ruby }: + +bundlerApp rec { + inherit ruby; + + pname = "terraforming"; + gemdir = ./.; + exes = [ "terraforming" ]; + + passthru.updateScript = bundlerUpdateScript "terraforming"; + + meta = with lib; { + inherit (ruby.meta) platforms; + + description = "Export existing AWS resources to Terraform style (tf, tfstate)"; + homepage = "https://github.com/dtan4/terraforming"; + license = with licenses; mit; + maintainers = with maintainers; [ kalbasit ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix new file mode 100644 index 000000000000..9882efc29e80 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix @@ -0,0 +1,261 @@ +{ + aws-eventstream = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3"; + type = "gem"; + }; + version = "1.1.1"; + }; + aws-partitions = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gn09cafg2n6gdc3ja80r3xjllly05r0m7x3w3b3rywir6k6ai4f"; + type = "gem"; + }; + version = "1.436.0"; + }; + aws-sdk-autoscaling = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0br6hfi2i5rri8ivamkmnx00p640s24pqmp8s67sm5asvdfzx4vr"; + type = "gem"; + }; + version = "1.59.0"; + }; + aws-sdk-cloudwatch = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xga00dn925rfgz4p2zf734aaik00dqb9psll27lg5626jd6xr0c"; + type = "gem"; + }; + version = "1.50.0"; + }; + aws-sdk-core = { + dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1774xyfqf307qvh5npvf01948ayrviaadq576r4jxin6xvlg8j9z"; + type = "gem"; + }; + version = "3.113.0"; + }; + aws-sdk-dynamodb = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dfsmkzv9cziykzc56g9pwxmbdqjpykxka3fq07b6iarzh38j1i3"; + type = "gem"; + }; + version = "1.60.0"; + }; + aws-sdk-ec2 = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c7qqly2f94db3643xwjj9mcb34vilx11awbv40v2f8z7xisvvz3"; + type = "gem"; + }; + version = "1.230.0"; + }; + aws-sdk-efs = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kmpz86sxkm6nzcf80nd65902fy29hz8lvx1kjwl5idx07ls8pnd"; + type = "gem"; + }; + version = "1.39.0"; + }; + aws-sdk-elasticache = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05kn2k437rnsf9nkwc1x5i2klrasjgyk1pj89f2gb0za86swjcza"; + type = "gem"; + }; + version = "1.54.0"; + }; + aws-sdk-elasticloadbalancing = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j3px8dn2yxsnmy010kfkwa1a2flbdxachmly20f436ysi3ql3v3"; + type = "gem"; + }; + version = "1.31.0"; + }; + aws-sdk-elasticloadbalancingv2 = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16hknbqv5s1im04dch9kdbc79x072613imdih62w48mvsf12c1mm"; + type = "gem"; + }; + version = "1.61.0"; + }; + aws-sdk-iam = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x2768blsy8lpib9pi2f2d67flabar3bq6chmbj07iqzpwvpz569"; + type = "gem"; + }; + version = "1.51.0"; + }; + aws-sdk-kms = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh"; + type = "gem"; + }; + version = "1.43.0"; + }; + aws-sdk-rds = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hwxgcka6bmzdn5pazss0fv8xgbbgas4h2cwpzwhkjkwhh23dx6a"; + type = "gem"; + }; + version = "1.117.0"; + }; + aws-sdk-redshift = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sp186v00lj517hia6rsn28ph8rqknz9r79vbkbyh5fgrbh2j6bd"; + type = "gem"; + }; + version = "1.58.0"; + }; + aws-sdk-route53 = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p9g0scw9c6qancdwvaw3kkj3pywchy2vl3qz2rqpjncqvj04pn5"; + type = "gem"; + }; + version = "1.48.0"; + }; + aws-sdk-s3 = { + dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94"; + type = "gem"; + }; + version = "1.93.0"; + }; + aws-sdk-sns = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pmxi871r2nkl6by89vsy05ahk8dr6hmkny56fycrby6r9kri9q4"; + type = "gem"; + }; + version = "1.39.0"; + }; + aws-sdk-sqs = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01m2l8y4q4fixjvl70w5bi1ihmmx2y4krms9kkjwd3ch21y14hif"; + type = "gem"; + }; + version = "1.38.0"; + }; + aws-sigv4 = { + dependencies = ["aws-eventstream"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw"; + type = "gem"; + }; + version = "1.2.3"; + }; + jmespath = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf"; + type = "gem"; + }; + version = "1.4.0"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x"; + type = "gem"; + }; + version = "1.12.2"; + }; + terraforming = { + dependencies = ["aws-sdk-autoscaling" "aws-sdk-cloudwatch" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-efs" "aws-sdk-elasticache" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-iam" "aws-sdk-kms" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-s3" "aws-sdk-sns" "aws-sdk-sqs" "multi_json" "thor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03fyhqx6bxpbn26pbcz748gz7rh7q3r9r0jimq7vj07fl454fmwh"; + type = "gem"; + }; + version = "0.18.0"; + }; + thor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna"; + type = "gem"; + }; + version = "1.1.0"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix new file mode 100644 index 000000000000..1717d3209007 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "terragrunt"; + version = "0.31.0"; + + src = fetchFromGitHub { + owner = "gruntwork-io"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-JRIwPOExPbwLS7ps4pJpvIRaZ9jZZjVK+POaUHAmiPI="; + }; + + vendorSha256 = "sha256-lck4nabDhFA8N0lo+cIKiJjlg2TGx3qMExbblHQwbvQ="; + + doCheck = false; + + ldflags = [ "-s" "-w" "-X main.VERSION=v${version}" ]; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/terragrunt --help + $out/bin/terragrunt --version | grep "v${version}" + runHook postInstallCheck + ''; + + meta = with lib; { + homepage = "https://terragrunt.gruntwork.io"; + changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}"; + description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices"; + license = licenses.mit; + maintainers = with maintainers; [ jk ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix new file mode 100644 index 000000000000..89a96cc12ca5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/terranix/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, ... }: + +stdenv.mkDerivation rec { + + pname = "terranix"; + version = "2.3.0"; + + src = fetchFromGitHub { + owner = "mrVanDalo"; + repo = "terranix"; + rev = version; + sha256 = "030067h3gjc02llaa7rx5iml0ikvw6szadm0nrss2sqzshsfimm4"; + }; + + installPhase = '' + mkdir -p $out + mv bin core modules lib $out/ + ''; + + meta = with lib; { + description = "A NixOS like terraform-json generator"; + homepage = "https://terranix.org"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ mrVanDalo ]; + }; + +} + diff --git a/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix new file mode 100644 index 000000000000..f56f8bc6d652 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix @@ -0,0 +1,32 @@ +{ buildGoModule, lib, fetchFromGitHub }: +buildGoModule rec { + pname = "tfswitch"; + version = "0.12.1119"; + + src = fetchFromGitHub { + owner = "warrensbox"; + repo = "terraform-switcher"; + rev = version; + sha256 = "1xsmr4hnmdg2il3rp39cyhv55ha4qcilcsr00iiija3bzxsm4rya"; + }; + + vendorSha256 = "0mpm4m07v8w02g95cnj73m5gvd118id4ag2pym8d9r2svkyz5n70"; + + # Disable tests since it requires network access and relies on the + # presence of release.hashicorp.com + doCheck = false; + + runVend = true; + + postInstall = '' + # The binary is named tfswitch + mv $out/bin/terraform-switcher $out/bin/tfswitch + ''; + + meta = with lib; { + description = "A command line tool to switch between different versions of terraform"; + homepage = "https://github.com/warrensbox/terraform-switcher"; + license = licenses.mit; + maintainers = with maintainers; [ psibi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix new file mode 100644 index 000000000000..d717bd42652b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix @@ -0,0 +1,28 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "tilt"; + /* Do not use "dev" as a version. If you do, Tilt will consider itself + running in development environment and try to serve assets from the + source tree, which is not there once build completes. */ + version = "0.20.5"; + + src = fetchFromGitHub { + owner = "tilt-dev"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-pUKKHrShED7yp5WSmHSbS+eiYs22Nm2/ouc2a8WYc38="; + }; + vendorSha256 = null; + + subPackages = [ "cmd/tilt" ]; + + buildFlagsArray = [ "-ldflags=-X main.version=${version}" ]; + + meta = with lib; { + description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production"; + homepage = "https://tilt.dev/"; + license = licenses.asl20; + maintainers = with maintainers; [ anton-dessiatov ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix new file mode 100644 index 000000000000..b38787e29689 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix @@ -0,0 +1,48 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "velero"; + # When updating, change the commit underneath + version = "1.6.0"; + commit = "5bd70fd8eef316d220317245e46dc6016c348dce"; + + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "vmware-tanzu"; + repo = "velero"; + sha256 = "sha256-2d4xsffh5DpxGahmzXpgUBRFAt5CsDnHCm8xU1ksqyQ="; + }; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version} + -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=${commit} + -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean + ''; + + vendorSha256 = "sha256-aQjtebIyV69nRwc/zvK/9v0mX3pAPKfOunSL/FpFZJU="; + + excludedPackages = [ "issue-template-gen" ]; + + doCheck = false; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + $out/bin/velero completion bash > velero.bash + $out/bin/velero completion zsh > velero.zsh + installShellCompletion velero.{bash,zsh} + ''; + + meta = with lib; { + description = + "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes"; + homepage = "https://velero.io/"; + changelog = + "https://github.com/vmware-tanzu/velero/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = [ maintainers.mbode maintainers.bryanasdev000 ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix new file mode 100644 index 000000000000..b0d0d6193e27 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix @@ -0,0 +1,83 @@ +{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }: + +buildGoModule rec { + pname = "waypoint"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "hashicorp"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-JB/0nU/05Agh4fWFeSfrUHFtR8cQjxdXW0QHAoH0dDc="; + }; + + deleteVendor = true; + vendorSha256 = "sha256-2YrCRdpRk+gPHN8flahgWb2sbK5dYL5ivVqeJSsiy8Y="; + + nativeBuildInputs = [ go-bindata installShellFiles ]; + + # GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway + buildPhase = '' + runHook preBuild + make bin GIT_DESCRIBE="v${version}" GIT_COMMIT="" GIT_DIRTY="" + runHook postBuild + ''; + + doCheck = false; + + installPhase = '' + runHook preInstall + + local INSTALL="$out/bin/waypoint" + install -D waypoint $out/bin/waypoint + + # waypoint's completion install command alters your <something>rc files + # below is the equivalent of what it injects + + # Write to a file as it doesn't like EOF within <() + cat > waypoint.fish <<EOF + function __complete_waypoint + set -lx COMP_LINE (commandline -cp) + test -z (commandline -ct) + and set COMP_LINE "$COMP_LINE " + $INSTALL + end + complete -f -c waypoint -a "(__complete_waypoint)" + EOF + installShellCompletion --cmd waypoint \ + --bash <(echo "complete -C $INSTALL waypoint") \ + --fish <(cat waypoint.fish) \ + --zsh <(echo "complete -o nospace -C $INSTALL waypoint") + + runHook postInstall + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + # `version` tries to write to ~/.config/waypoint + export HOME="$TMPDIR" + + $out/bin/waypoint --help + $out/bin/waypoint version | grep "CLI: v${version}" + runHook postInstallCheck + ''; + + # Binary is static + dontPatchELF = true; + dontPatchShebangs = true; + + meta = with lib; { + homepage = "https://waypointproject.io"; + changelog = "https://github.com/hashicorp/waypoint/blob/v${version}/CHANGELOG.md"; + description = "A tool to build, deploy, and release any application on any platform"; + longDescription = '' + Waypoint allows developers to define their application build, deploy, and + release lifecycle as code, reducing the time to deliver deployments + through a consistent and repeatable workflow. + ''; + license = licenses.mpl20; + maintainers = with maintainers; [ winpat jk ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/compactor/default.nix b/nixpkgs/pkgs/applications/networking/compactor/default.nix new file mode 100644 index 000000000000..f4535c9120cd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/compactor/default.nix @@ -0,0 +1,59 @@ +{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb +, libpcap, libtins, libtool, xz, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli +}: + +stdenv.mkDerivation rec { + pname = "compactor"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "dns-stats"; + repo = pname; + rev = version; + sha256 = "0qykdnwi2q9sajkkc2sl5f00lvxjfymqjzqm0limsziykanh87c0"; + }; + + # cbor-diag, cddl and wireshark-cli are only used for tests. + nativeBuildInputs = [ autoconf automake libtool pkg-config cbor-diag cddl wireshark-cli ]; + buildInputs = [ + boost + libpcap + openssl + libtins + xz + libctemplate + libmaxminddb + ]; + + prePatch = '' + patchShebangs test-scripts/ + ''; + + preConfigure = '' + ${stdenv.shell} autogen.sh + substituteInPlace configure \ + --replace "/usr/bin/file" "${file}/bin/file" + ''; + CXXFLAGS = "-std=c++11"; + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--with-boost=${boost.dev}" + ]; + enableParallelBuilding = true; + + doCheck = true; + preCheck = '' + substituteInPlace test-scripts/check-live-pcap.sh \ + --replace "/usr/sbin/tcpdump" "${tcpdump}/bin/tcpdump" + rm test-scripts/same-tshark-output.sh + ''; # TODO: https://github.com/dns-stats/compactor/issues/49 (failing test) + + meta = with lib; { + description = "Tools to capture DNS traffic and record it in C-DNS files"; + homepage = "http://dns-stats.org/"; + changelog = "https://github.com/dns-stats/${pname}/raw/${version}/ChangeLog.txt"; + license = [ licenses.boost licenses.mpl20 licenses.openssl ]; + maintainers = with maintainers; [ fdns ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/datovka/default.nix b/nixpkgs/pkgs/applications/networking/datovka/default.nix new file mode 100644 index 000000000000..a48bd4ae44d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/datovka/default.nix @@ -0,0 +1,32 @@ +{ lib +, mkDerivation +, fetchurl +, libxml2 +, libisds +, qmake +, qtbase +, qtsvg +, pkg-config +}: + +mkDerivation rec { + pname = "datovka"; + version = "4.15.6"; + + src = fetchurl { + url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz"; + sha256 = "1qs1yd9qqsf56jm9w6sffkqb2l8s3i9qgi2q8vd59ss19ym6yky2"; + }; + + buildInputs = [ libisds qmake qtbase qtsvg libxml2 ]; + + nativeBuildInputs = [ pkg-config ]; + + meta = with lib; { + description = "Client application for operating Czech government-provided Databox infomation system"; + homepage = "https://www.datovka.cz/"; + license = licenses.lgpl3; + maintainers = [ maintainers.mmahut ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/davmail/default.nix b/nixpkgs/pkgs/applications/networking/davmail/default.nix new file mode 100644 index 000000000000..4adc508392af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/davmail/default.nix @@ -0,0 +1,32 @@ +{ fetchurl, lib, stdenv, jre, glib, libXtst, gtk2, makeWrapper, unzip }: + +stdenv.mkDerivation rec { + pname = "davmail"; + version = "5.5.1"; + src = fetchurl { + url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-3299.zip"; + sha256 = "sha256-NN/TUOcUIifNzrJnZmtYhs6UVktjlfoOYJjYaMEQpI4="; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ makeWrapper unzip ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/davmail + cp -vR ./* $out/share/davmail + makeWrapper $out/share/davmail/davmail $out/bin/davmail \ + --prefix PATH : ${jre}/bin \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk2 libXtst ]} + runHook postInstall + ''; + + meta = with lib; { + homepage = "http://davmail.sourceforge.net/"; + description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers"; + maintainers = [ maintainers.hinton ]; + platforms = platforms.all; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix new file mode 100644 index 000000000000..69f71a7479e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "dnscontrol"; + version = "3.10.1"; + + src = fetchFromGitHub { + owner = "StackExchange"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-fYQqH/J027XJPML/qKMpuu2Nxuvb0cyjOu2czLH8SoM="; + }; + + vendorSha256 = "sha256-225TR9jTZSGEJZz3csl/pR/v2unUK67l08x5ESQTJzA="; + + subPackages = [ "." ]; + + buildFlagsArray = [ "-ldflags=-s -w" ]; + + meta = with lib; { + description = "Synchronize your DNS to multiple providers from a simple DSL"; + homepage = "https://stackexchange.github.io/dnscontrol/"; + license = licenses.mit; + maintainers = with maintainers; [ mmahut SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/drive/default.nix b/nixpkgs/pkgs/applications/networking/drive/default.nix new file mode 100644 index 000000000000..ad1a0c9a533c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/drive/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "drive"; + version = "0.3.8.1"; + + goPackagePath = "github.com/odeke-em/drive"; + subPackages = [ "cmd/drive" ]; + + src = fetchFromGitHub { + owner = "odeke-em"; + repo = "drive"; + rev = "v${version}"; + sha256 = "1b9cgc148rg5irg4jas10zv9i2km75x1zin25hld340dmpjcpi82"; + }; + + goDeps = ./deps.nix; + + meta = with lib; { + homepage = "https://github.com/odeke-em/drive"; + description = "Google Drive client for the commandline"; + license = licenses.asl20; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/drive/deps.nix b/nixpkgs/pkgs/applications/networking/drive/deps.nix new file mode 100644 index 000000000000..ca132288bd69 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/drive/deps.nix @@ -0,0 +1,192 @@ +# This file was generated by go2nix. +[ + { + goPackagePath = "cloud.google.com/go"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/gocloud"; + rev = "7450882a75c8d2600748666d1ed16e0a5afa532d"; + sha256 = "1hl2lsf9m1imdszf5mww4h6qrcjfdjghwh6l2kqsy85d32vbkjgd"; + }; + } + { + goPackagePath = "github.com/boltdb/bolt"; + fetch = { + type = "git"; + url = "https://github.com/boltdb/bolt"; + rev = "074dffcc83e9f421e261526d297cd93f22a34080"; + sha256 = "1kkmsby74n9czqx4mvng9x1cvnm4qgjl3dp6b4mfmg2b00fwbqnv"; + }; + } + { + goPackagePath = "github.com/cheggaaa/pb"; + fetch = { + type = "git"; + url = "https://github.com/cheggaaa/pb"; + rev = "ad4efe000aa550bb54918c06ebbadc0ff17687b9"; + sha256 = "0w6dl2s0vzb64q85yfy1hd5z2fq2vzwygiwl65is6hwa4vkc7hi3"; + }; + } + { + goPackagePath = "github.com/mattn/go-isatty"; + fetch = { + type = "git"; + url = "https://github.com/mattn/go-isatty"; + rev = "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8"; + sha256 = "17lf13ndnai9a6dlmykqkdyzf1z04q7kffs0l7kvd78wpv3l6rm5"; + }; + } + { + goPackagePath = "github.com/odeke-em/cache"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/cache"; + rev = "baf8e436bc97557118cb0bf118ab8ac6aeeda381"; + sha256 = "00nvrnp40w4m1ld89k3s3gwi9qcfjxwi8hnp62zggnvqqyc4fyz1"; + }; + } + { + goPackagePath = "github.com/odeke-em/cli-spinner"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/cli-spinner"; + rev = "610063bb4aeef25f7645b3e6080456655ec0fb33"; + sha256 = "13wzs2qrxd72ah32ym0ppswhvyimjw5cqaq3q153y68vlvxd048c"; + }; + } + { + goPackagePath = "github.com/odeke-em/command"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/command"; + rev = "91ca5ec5e9a1bc2668b1ccbe0967e04a349e3561"; + sha256 = "1ghckzr8h99ckagpmb15p61xazdjmf9mjmlym634hsr9vcj84v62"; + }; + } + { + goPackagePath = "github.com/odeke-em/exponential-backoff"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/exponential-backoff"; + rev = "96e25d36ae36ad09ac02cbfe653b44c4043a8e09"; + sha256 = "1as21p2jj8xpahvdxqwsw2i1s3fll14dlc9j192iq7xl1ybwpqs6"; + }; + } + { + goPackagePath = "github.com/odeke-em/extractor"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/extractor"; + rev = "801861aedb854c7ac5e1329e9713023e9dc2b4d4"; + sha256 = "036zmnqxy48h6mxiwywgxix2p4fqvl4svlmcp734ri2rbq3cmxs1"; + }; + } + { + goPackagePath = "github.com/odeke-em/go-utils"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/go-utils"; + rev = "d915395a7a46a9fe73d93f4daeff5953eeac5ef2"; + sha256 = "0c1z4vmz69vxak8ldw4qjcgwia5ph969gj80az7a3824gia7zhbh"; + }; + } + { + goPackagePath = "github.com/odeke-em/go-uuid"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/go-uuid"; + rev = "b211d769a9aaba5b2b8bdbab5de3c227116f3c39"; + sha256 = "086l4xmwkjl5qcylcb5iwy9ksk9k5g43xwfbkcgvmhpz5mq3wmz2"; + }; + } + { + goPackagePath = "github.com/odeke-em/log"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/log"; + rev = "cad53c4565a0b0304577bd13f3862350bdc5f907"; + sha256 = "059c933qjikxlvaywzpzljqnab19svymbv6x32pc7khw156fh48w"; + }; + } + { + goPackagePath = "github.com/odeke-em/meddler"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/meddler"; + rev = "d2b51d2b40e786ab5f810d85e65b96404cf33570"; + sha256 = "0m0fqrn3kxy4swyk4ja1y42dn1i35rq9j85y11wb222qppy2342x"; + }; + } + { + goPackagePath = "github.com/odeke-em/pretty-words"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/pretty-words"; + rev = "9d37a7fcb4ae6f94b288d371938482994458cecb"; + sha256 = "1466wjhrg9lhqmzil1vf8qj16fxk32b5kxlcccyw2x6dybqa6pkl"; + }; + } + { + goPackagePath = "github.com/odeke-em/semalim"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/semalim"; + rev = "9c88bf5f9156ed06ec5110a705d41b8580fd96f7"; + sha256 = "0nq93dcl84cmlvg31rdk281ndlc2452zlh5s7i40hasi0z0kmn1k"; + }; + } + { + goPackagePath = "github.com/odeke-em/statos"; + fetch = { + type = "git"; + url = "https://github.com/odeke-em/statos"; + rev = "6f7e4db337bc11fc46d9b0456a93836cbbfe5141"; + sha256 = "1lijz3cxqxd78sl0nzfgvs675dg7q99jqwvhgisnk9n84ic4ffzj"; + }; + } + { + goPackagePath = "github.com/skratchdot/open-golang"; + fetch = { + type = "git"; + url = "https://github.com/skratchdot/open-golang"; + rev = "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c"; + sha256 = "1b67imqbsdvg19vif1q1dfmapxy3v2anagacbql95fwnnw0v8jga"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "5dc8cb4b8a8eb076cbb5a06bc3b8682c15bdbbd3"; + sha256 = "18c1vpqlj10z1id66hglgnv51d9gwphgsdvxgghc6mcm01f1g5xj"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "6acef71eb69611914f7a30939ea9f6e194c78172"; + sha256 = "1fcsv50sbq0lpzrhx3m9jw51wa255fsbqjwsx9iszq4d0gysnnvc"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "1e695b1c8febf17aad3bfa7bf0a819ef94b98ad5"; + sha256 = "1sfgrc63jwslczkld7bsfipw1jm1rn06228dx0vc5gggd52155ys"; + }; + } + { + goPackagePath = "google.golang.org/api"; + fetch = { + type = "git"; + url = "https://code.googlesource.com/google-api-go-client"; + rev = "eb84d1a029af1654777e7ba65c979085305c3e38"; + sha256 = "0ldmzcx5lxa81lcr39djcvyhd0ls11jlswj5877rinq3505ayf5l"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/droopy/default.nix b/nixpkgs/pkgs/applications/networking/droopy/default.nix new file mode 100644 index 000000000000..63afa5ce76f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/droopy/default.nix @@ -0,0 +1,38 @@ +{ stdenv, lib, fetchFromGitHub, wrapPython, fetchpatch }: + +with lib; + +stdenv.mkDerivation { + pname = "droopy"; + version = "20160830"; + + src = fetchFromGitHub { + owner = "stackp"; + repo = "Droopy"; + rev = "7a9c7bc46c4ff8b743755be86a9b29bd1a8ba1d9"; + sha256 = "03i1arwyj9qpfyyvccl21lbpz3rnnp1hsadvc0b23nh1z2ng9sff"; + }; + + patches = [ + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/stackp/Droopy/pull/30.patch"; + sha256 = "Y6jBraKvVQAiScbvLwezSKeWY3vaAbhaNXEGNaItigQ="; + }) + ]; + + nativeBuildInputs = [ wrapPython ]; + + installPhase = '' + install -vD droopy $out/bin/droopy + install -vD -m 644 man/droopy.1 $out/share/man/man1/droopy.1 + wrapPythonPrograms + ''; + + meta = { + description = "Mini Web server that let others upload files to your computer"; + homepage = "http://stackp.online.fr/droopy"; + license = licenses.bsd3; + maintainers = [ maintainers.Profpatsch ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/dropbox/cli.nix b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix new file mode 100644 index 000000000000..f602bab27e8a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix @@ -0,0 +1,70 @@ +{ lib, stdenv +, substituteAll +, pkg-config +, fetchurl +, python3 +, dropbox +, gtk3 +, gnome +, gdk-pixbuf +, gobject-introspection +}: + +let + version = "2020.03.04"; + dropboxd = "${dropbox}/bin/dropbox"; +in +stdenv.mkDerivation { + pname = "dropbox-cli"; + inherit version; + + outputs = [ "out" "nautilusExtension" ]; + + src = fetchurl { + url = "https://linux.dropboxstatic.com/packages/nautilus-dropbox-${version}.tar.bz2"; + sha256 = "1jjc835n2j61d23kvygdb4n4jsrw33r9mbwxrm4fqin6x01l2w7k"; + }; + + strictDeps = true; + + patches = [ + (substituteAll { + src = ./fix-cli-paths.patch; + inherit dropboxd; + }) + ]; + + nativeBuildInputs = [ + pkg-config + gobject-introspection + gdk-pixbuf + # only for build, the install command also wants to use GTK through introspection + # but we are using Nix for installation so we will not need that. + (python3.withPackages (ps: with ps; [ + docutils + pygobject3 + ])) + ]; + + buildInputs = [ + python3 + gtk3 + gnome.nautilus + ]; + + configureFlags = [ + "--with-nautilus-extension-dir=${placeholder "nautilusExtension"}/lib/nautilus/extensions-3.0" + ]; + + makeFlags = [ + "EMBLEM_DIR=${placeholder "nautilusExtension"}/share/nautilus-dropbox/emblems" + ]; + + meta = { + homepage = "https://www.dropbox.com"; + description = "Command line client for the dropbox daemon"; + license = lib.licenses.gpl3Plus; + # NOTE: Dropbox itself only works on linux, so this is ok. + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dropbox/default.nix b/nixpkgs/pkgs/applications/networking/dropbox/default.nix new file mode 100644 index 000000000000..845d0f2779c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dropbox/default.nix @@ -0,0 +1,85 @@ +{ stdenv, lib, buildFHSUserEnv, writeScript, makeDesktopItem }: + +let platforms = [ "i686-linux" "x86_64-linux" ]; in + +assert lib.elem stdenv.hostPlatform.system platforms; + +# Dropbox client to bootstrap installation. +# The client is self-updating, so the actual version may be newer. +let + version = "111.3.447"; + + arch = { + x86_64-linux = "x86_64"; + i686-linux = "x86"; + }.${stdenv.hostPlatform.system}; + + installer = "https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.${arch}-${version}.tar.gz"; +in + +let + desktopItem = makeDesktopItem { + name = "dropbox"; + exec = "dropbox"; + comment = "Sync your files across computers and to the web"; + desktopName = "Dropbox"; + genericName = "File Synchronizer"; + categories = "Network;FileTransfer;"; + startupNotify = "false"; + }; +in + +buildFHSUserEnv { + name = "dropbox"; + + targetPkgs = pkgs: with pkgs; with xorg; [ + libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender + libXxf86vm libxcb xkeyboardconfig + curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt + procps zlib mesa libxshmfence libpthreadstubs libappindicator + ]; + + extraInstallCommands = '' + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* $out/share/applications + ''; + + runScript = writeScript "install-and-start-dropbox" '' + export BROWSER=firefox + + set -e + + do_install= + if ! [ -d "$HOME/.dropbox-dist" ]; then + do_install=1 + else + installed_version=$(cat "$HOME/.dropbox-dist/VERSION") + latest_version=$(printf "${version}\n$installed_version\n" | sort -rV | head -n 1) + if [ "x$installed_version" != "x$latest_version" ]; then + do_install=1 + fi + fi + + if [ -n "$do_install" ]; then + installer=$(mktemp) + # Dropbox is not installed. + # Download and unpack the client. If a newer version is available, + # the client will update itself when run. + curl '${installer}' >"$installer" + pkill dropbox || true + rm -fr "$HOME/.dropbox-dist" + tar -C "$HOME" -x -z -f "$installer" + rm "$installer" + fi + + exec "$HOME/.dropbox-dist/dropboxd" "$@" + ''; + + meta = with lib; { + description = "Online stored folders (daemon version)"; + homepage = "http://www.dropbox.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ ttuegel ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch b/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch new file mode 100644 index 000000000000..84cd8014e1e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dropbox/fix-cli-paths.patch @@ -0,0 +1,11 @@ +--- a/dropbox.in ++++ b/dropbox.in +@@ -71,7 +71,7 @@ + + PARENT_DIR = os.path.expanduser("~") + DROPBOX_DIST_PATH = "%s/.dropbox-dist" % PARENT_DIR +-DROPBOXD_PATH = os.path.join(DROPBOX_DIST_PATH, "dropboxd") ++DROPBOXD_PATH = "@dropboxd@" + DESKTOP_FILE = "@DESKTOP_FILE_DIR@/dropbox.desktop" + + enc = locale.getpreferredencoding() diff --git a/nixpkgs/pkgs/applications/networking/dsvpn/default.nix b/nixpkgs/pkgs/applications/networking/dsvpn/default.nix new file mode 100644 index 000000000000..f165e6a59942 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dsvpn/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "dsvpn"; + version = "0.1.4"; + + src = fetchFromGitHub { + owner = "jedisct1"; + repo = pname; + rev = version; + sha256 = "1gbj3slwmq990qxsbsaxasi98alnnzv3adp6f8w8sxd4gi6qxhdh"; + }; + + installPhase = '' + runHook preInstall + + install -Dm755 -t $out/bin dsvpn + + runHook postInstall + ''; + + meta = with lib; { + description = "A Dead Simple VPN"; + homepage = "https://github.com/jedisct1/dsvpn"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix new file mode 100644 index 000000000000..afddb6be875e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix @@ -0,0 +1,27 @@ +{ lib, fetchFromGitHub, rustPlatform, pkg-config, openssl }: + +with rustPlatform; + +buildRustPackage rec { + pname = "cfdyndns"; + version = "0.0.3"; + src = fetchFromGitHub { + owner = "colemickens"; + repo = "cfdyndns"; + rev = "v${version}"; + sha256 = "1fba0w2979dmc2wyggqx4fj52rrl1s2vpjk6mkj1811a848l1hdi"; + }; + + cargoSha256 = "06qbagq4gvm5vk846lxskli02z9lqxsvis6ndq29bj0b9yyvdkay"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ]; + + meta = with lib; { + description = "CloudFlare Dynamic DNS Client"; + homepage = "https://github.com/colemickens/cfdyndns"; + license = lib.licenses.mit; + maintainers = with maintainers; [ colemickens ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix new file mode 100644 index 000000000000..66b1d2639d68 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix @@ -0,0 +1,60 @@ +{ stdenv, lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "dyndnsc"; + version = "0.6.1"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "13078d29eea2f9a4ca01f05676c3309ead5e341dab047e0d51c46f23d4b7fbb4"; + }; + + postPatch = '' + substituteInPlace setup.py --replace "bottle==" "bottle>=" + ''; + + nativeBuildInputs = with python3Packages; [ pytestrunner ]; + propagatedBuildInputs = with python3Packages; [ + daemonocle + dnspython + netifaces + requests + json-logging + setuptools + ]; + checkInputs = with python3Packages; [ bottle mock pytest-console-scripts pytestCheckHook ]; + + disabledTests = [ + # dnswanip connects to an external server to discover the + # machine's IP address. + "dnswanip" + ] ++ lib.optionals stdenv.isDarwin [ + # The tests that spawn a server using Bottle cannot be run on + # macOS or Windows as the default multiprocessing start method + # on those platforms is 'spawn', which requires the code to be + # run to be picklable, which this code isn't. + # Additionaly, other start methods are unsafe and prone to failure + # on macOS; see https://bugs.python.org/issue33725. + "BottleServer" + ]; + # Allow tests that bind or connect to localhost on macOS. + __darwinAllowLocalNetworking = true; + + meta = with lib; { + description = "Dynamic DNS update client with support for multiple protocols"; + longDescription = '' + Dyndnsc is a command line client for sending updates to Dynamic + DNS (DDNS, DynDNS) services. It supports multiple protocols and + services, and it has native support for IPv6. The configuration + file allows using foreign, but compatible services. Dyndnsc + ships many different IP detection mechanisms, support for + configuring multiple services in one place and it has a daemon + mode for running unattended. It has a plugin system to provide + external notification services. + ''; + homepage = "https://github.com/infothrill/python-dyndnsc"; + license = licenses.mit; + maintainers = with maintainers; [ AluisioASG ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix new file mode 100644 index 000000000000..ef4baaadc2b8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchurl, fetchpatch }: + +stdenv.mkDerivation { + version = "3.3.2"; + pname = "enhanced-ctorrent-dhn"; + + src = fetchurl { + url = "http://www.rahul.net/dholmes/ctorrent/ctorrent-dnh3.3.2.tar.gz"; + sha256 = "0qs8waqwllk56i3yy3zhncy7nsnhmf09a494p5siz4vm2k4ncwy8"; + }; + + # These patches come from Debian and fix CVE-2009-1759. + patches = [ + (fetchpatch { + url = "https://sources.debian.org/data/main/c/ctorrent/1.3.4.dnh3.3.2-5/debian/patches/cve-security-fix.diff"; + sha256 = "1qkzzm8sfspbcs10azmmif4qcr7pr8r38dsa2py84lsjm1yi3kls"; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/c/ctorrent/1.3.4.dnh3.3.2-5/debian/patches/FTBFS-fix.diff"; + sha256 = "1m3zh96xwqjjzsbg62f7kx0miams58nys1f484qhdn870b5x9p06"; + }) + ]; + + meta = { + description = "BitTorrent client written in C++"; + longDescription = '' + CTorrent, a BitTorrent client implemented in C++, with bugfixes and + performance enhancements. + ''; + homepage = "http://www.rahul.net/dholmes/ctorrent/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/errbot/default.nix b/nixpkgs/pkgs/applications/networking/errbot/default.nix new file mode 100644 index 000000000000..f4a44275b693 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/errbot/default.nix @@ -0,0 +1,91 @@ +{ lib +, ansi +, buildPythonApplication +, colorlog +, daemonize +, deepmerge +, dulwich +, fetchFromGitHub +, flask +, glibcLocales +, hypchat +, irc +, jinja2 +, markdown +, mock +, pyasn1 +, pyasn1-modules +, pygments +, pygments-markdown-lexer +, pyopenssl +, pytestCheckHook +, requests +, slackclient +, sleekxmpp +, telegram +, webtest +}: + +buildPythonApplication rec { + pname = "errbot"; + version = "6.1.7"; + + src = fetchFromGitHub { + owner = "errbotio"; + repo = "errbot"; + rev = version; + sha256 = "02h44qd3d91zy657hyqsw3gskgxg31848pw6zpb8dhd1x84z5y77"; + }; + + LC_ALL = "en_US.utf8"; + + buildInputs = [ glibcLocales ]; + + propagatedBuildInputs = [ + ansi + colorlog + daemonize + deepmerge + dulwich + flask + hypchat + irc + jinja2 + markdown + pyasn1 + pyasn1-modules + pygments + pygments-markdown-lexer + pyopenssl + requests + slackclient + sleekxmpp + telegram + webtest + ]; + + checkInputs = [ + mock + pytestCheckHook + ]; + + # Slack backend test has an import issue + pytestFlagsArray = [ "--ignore=tests/backend_tests/slack_test.py" ]; + + disabledTests = [ + "backup" + "broken_plugin" + "plugin_cycle" + ]; + + pythonImportsCheck = [ "errbot" ]; + + meta = with lib; { + description = "Chatbot designed to be simple to extend with plugins written in Python"; + homepage = "http://errbot.io/"; + maintainers = with maintainers; [ fpletz globin ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + # flaky on darwin, "RuntimeError: can't start new thread" + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix new file mode 100644 index 000000000000..729d12c1e5b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, python3Packages, readline, ncurses, canto-daemon }: + +python3Packages.buildPythonApplication rec { + version = "0.9.9"; + pname = "canto-curses"; + + src = fetchFromGitHub { + owner = "themoken"; + repo = "canto-curses"; + rev = "v${version}"; + sha256 = "1vzb9n1j4gxigzll6654ln79lzbrrm6yy0lyazd9kldyl349b8sr"; + }; + + buildInputs = [ readline ncurses canto-daemon ]; + propagatedBuildInputs = [ canto-daemon ]; + + meta = { + description = "An ncurses-based console Atom/RSS feed reader"; + longDescription = '' + Canto is an Atom/RSS feed reader for the console that is meant to be + quick, concise, and colorful. It's meant to allow you to crank through + feeds like you've never cranked before by providing a minimal, yet + information packed interface. No navigating menus. No dense blocks of + unreadable white text. An interface with almost infinite customization + and extensibility using the excellent Python programming language. + ''; + homepage = "https://codezen.org/canto-ng/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix new file mode 100644 index 000000000000..5eb8c9d74379 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchFromGitHub, python3Packages, }: + +python3Packages.buildPythonApplication rec { + version = "0.9.8"; + pname = "canto-daemon"; + + src = fetchFromGitHub { + owner = "themoken"; + repo = "canto-next"; + rev = "v${version}"; + sha256 = "0fmsdn28z09bvivdkqcla5bnalky7k744iir25z70bv4pz1jcvnk"; + }; + + propagatedBuildInputs = with python3Packages; [ feedparser ]; + + doCheck = false; + + pythonImportsCheck = [ "canto_next" ]; + + meta = with lib; { + description = "Daemon for the canto Atom/RSS feed reader"; + longDescription = '' + Canto is an Atom/RSS feed reader for the console that is meant to be + quick, concise, and colorful. It's meant to allow you to crank through + feeds like you've never cranked before by providing a minimal, yet + information packed interface. No navigating menus. No dense blocks of + unreadable white text. An interface with almost infinite customization + and extensibility using the excellent Python programming language. + ''; + homepage = "https://codezen.org/canto-ng/"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers;[ devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix new file mode 100644 index 000000000000..f0f09c8de7e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, fetchFromGitHub +, autoreconfHook +, pkg-config +, glib +, ronn +, curl +, id3lib +, libxml2 +, glibcLocales +}: + +stdenv.mkDerivation rec { + pname = "castget"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "mlj"; + repo = pname; + # Upstream uses `_` instead of `.` for the version + rev = "rel_${lib.replaceStrings ["."] ["_"] version}"; + sha256 = "1129x64rw587q3sdpa3lrgs0gni5f0siwbvmfz8ya4zkbhgi2ik7"; + }; + + # without this, the build fails because of an encoding issue with the manual page. + # https://stackoverflow.com/a/17031697/4935114 + # This requires glibcLocales to be present in the build so it will have an impact. + # See https://github.com/NixOS/nixpkgs/issues/8398 + preBuild = '' + export LC_ALL="en_US.UTF-8"; + ''; + + buildInputs = [ glib curl id3lib libxml2 ]; + nativeBuildInputs = [ + ronn + # See comment on locale above + glibcLocales + autoreconfHook + pkg-config + ]; + + meta = with lib; { + description = "A simple, command-line based RSS enclosure downloader"; + longDescription = '' + castget is a simple, command-line based RSS enclosure downloader. It is + primarily intended for automatic, unattended downloading of podcasts. + ''; + homepage = "https://castget.johndal.com/"; + maintainers = with maintainers; [ doronbehar ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix new file mode 100644 index 000000000000..4eb8da760bff --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkg-config, vala, gettext, python3 +, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts +, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas +, curl, glib, gnome, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2 +}: + +stdenv.mkDerivation rec { + pname = "feedreader"; + version = "2.11.0"; + + src = fetchFromGitHub { + owner = "jangernert"; + repo = pname; + rev = "v${version}"; + sha256 = "1agy1nkpkdsy2kbrrc8nrwphj5n86rikjjvwkr8klbf88mzl6civ"; + }; + + nativeBuildInputs = [ + meson ninja pkg-config vala gettext appstream-glib desktop-file-utils + libxml2 python3 wrapGAppsHook + ]; + + buildInputs = [ + curl glib json-glib libnotify libsecret sqlite gumbo gtk3 + libgee libpeas gnome.libsoup librest webkitgtk gsettings-desktop-schemas + gnome-online-accounts + ] ++ (with gst_all_1; [ + gstreamer gst-plugins-base gst-plugins-good + ]); + + postPatch = '' + patchShebangs build-aux/meson_post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A modern desktop application designed to complement existing web-based RSS accounts"; + homepage = "https://jangernert.github.io/FeedReader/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ edwtjo ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix new file mode 100644 index 000000000000..9b173e856827 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix @@ -0,0 +1,89 @@ +{ lib +, callPackage + +, fetchFromGitLab + +, appstream +, gobject-introspection +, meson +, ninja +, pkg-config +, wrapGAppsHook + +, glib +, gtk3 +, libhandy +, listparser ? callPackage ./listparser.nix { } +, webkitgtk +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gnome-feeds"; + version = "0.16.2"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "gfeeds"; + rev = version; + sha256 = "sha256-66dwVR9owg050aHCHJek7jYnT+/yyCKo4AaUE0hCqBA="; + }; + + format = "other"; + + nativeBuildInputs = [ + appstream + glib # for glib-compile-schemas + gobject-introspection + meson + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + libhandy + webkitgtk + ]; + + propagatedBuildInputs = with python3.pkgs; [ + beautifulsoup4 + python-dateutil + feedparser + html5lib + listparser + lxml + pillow + pygments + pygobject3 + pyreadability + pytz + requests + ]; + + # https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + passthru = { + inherit listparser; + }; + + meta = with lib; { + description = "An RSS/Atom feed reader for GNOME"; + homepage = "https://gitlab.gnome.org/World/gfeeds"; + license = licenses.gpl3Plus; + maintainers = [ + maintainers.pbogdan + ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix new file mode 100644 index 000000000000..c67df416c5c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix @@ -0,0 +1,31 @@ +{ lib +, python3 +}: +python3.pkgs.buildPythonPackage rec { + pname = "listparser"; + version = "0.18"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + sha256 = "0hdqs1mmayw1r8yla43hgb4d9y3zqs5483vgf8j9ygczkd2wrq2b"; + }; + + propagatedBuildInputs = with python3.pkgs; [ + requests + six + ]; + + checkPhase = '' + ${python3.interpreter} lptest.py + ''; + + meta = with lib; { + description = "A parser for subscription lists"; + homepage = "https://github.com/kurtmckee/listparser"; + license = licenses.lgpl3Plus; + maintainers = [ + maintainers.pbogdan + ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix new file mode 100644 index 000000000000..289f631ee8fb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix @@ -0,0 +1,69 @@ +{ lib, stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkg-config, libxml2, json_c, ncurses +, asciidoctor, libiconv, Security, Foundation, makeWrapper }: + +rustPlatform.buildRustPackage rec { + pname = "newsboat"; + version = "2.24"; + + src = fetchFromGitHub { + owner = "newsboat"; + repo = "newsboat"; + rev = "r${version}"; + sha256 = "0qb10w7pn9hiczjjpc0xanmc83p22ngcqcrkjwji5rl0sh8v9ii4"; + }; + + cargoSha256 = "0vhr8qyw4f3lc208mgl1m3z42igkbwly6wcv7g7jrq3c6dcwyhjn"; + + # TODO: Check if that's still needed + postPatch = lib.optionalString stdenv.isDarwin '' + # Allow other ncurses versions on Darwin + substituteInPlace config.sh \ + --replace "ncurses5.4" "ncurses" + ''; + + nativeBuildInputs = [ + pkg-config + asciidoctor + gettext + ] ++ lib.optionals stdenv.isDarwin [ makeWrapper ncurses ]; + + buildInputs = [ stfl sqlite curl libxml2 json_c ncurses ] + ++ lib.optionals stdenv.isDarwin [ Security Foundation libiconv gettext ]; + + postBuild = '' + make prefix="$out" + ''; + + # TODO: Check if that's still needed + NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin " -Wno-error=format-security"; + + # https://github.com/NixOS/nixpkgs/pull/98471#issuecomment-703100014 . We set + # these for all platforms, since upstream's gettext crate behavior might + # change in the future. + GETTEXT_LIB_DIR = "${lib.getLib gettext}/lib"; + GETTEXT_INCLUDE_DIR = "${lib.getDev gettext}/include"; + GETTEXT_BIN_DIR = "${lib.getBin gettext}/bin"; + + doCheck = true; + + preCheck = '' + make test + ''; + + postInstall = '' + make prefix="$out" install + cp -r contrib $out + '' + lib.optionalString stdenv.isDarwin '' + for prog in $out/bin/*; do + wrapProgram "$prog" --prefix DYLD_LIBRARY_PATH : "${stfl}/lib" + done + ''; + + meta = with lib; { + homepage = "https://newsboat.org/"; + description = "A fork of Newsbeuter, an RSS/Atom feed reader for the text console"; + maintainers = with maintainers; [ dotlambda nicknovitski ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix new file mode 100644 index 000000000000..24ec320cc431 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix @@ -0,0 +1,99 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitLab +, meson +, ninja +, pkg-config +, wrapGAppsHook +, gdk-pixbuf +, glib +, gtk3 +, libhandy +, openssl +, sqlite +, webkitgtk +, glib-networking +, librsvg +, xdg-utils +, gst_all_1 +}: + +stdenv.mkDerivation rec { + pname = "newsflash"; + version = "1.4.2"; + + src = fetchFromGitLab { + owner = "news-flash"; + repo = "news_flash_gtk"; + rev = version; + hash = "sha256-8W158GrvVGu5b3TG5bomK+hAF6jttZuImkmtcZOl91o="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-zHtD3NVWYQ5njg17Z2YmEttiK2oiq01OiAXIZofIqKI="; + }; + + patches = [ + # Post install tries to generate an icon cache & update the + # desktop database. The gtk setup hook drop-icon-theme-cache.sh + # would strip out the icon cache and the desktop database wouldn't + # be included in $out. They will generated by xdg.mime.enable & + # gtk.iconCache.enable instead. + ./no-post-install.patch + ]; + + postPatch = '' + patchShebangs . + ''; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wrapGAppsHook + + # Provides setup hook to fix "Unrecognized image file format" + gdk-pixbuf + + # Provides glib-compile-resources to compile gresources + glib + ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + buildInputs = [ + gtk3 + libhandy + openssl + sqlite + webkitgtk + + # TLS support for loading external content in webkitgtk WebView + glib-networking + + # SVG support for gdk-pixbuf + librsvg + + # Open links in browser + xdg-utils + ] ++ (with gst_all_1; [ + # Audio & video support for webkitgtk WebView + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); + + meta = with lib; { + description = "A modern feed reader designed for the GNOME desktop"; + homepage = "https://gitlab.com/news-flash/news_flash_gtk"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ kira-bruneau ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch new file mode 100644 index 000000000000..b638f30cd44c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch @@ -0,0 +1,10 @@ +diff --git a/meson.build b/meson.build +index 1d7089c..1952e7f 100644 +--- a/meson.build ++++ b/meson.build +@@ -61,5 +61,3 @@ meson.add_dist_script( + meson.source_root(), + join_paths(meson.build_root(), 'meson-dist', meson.project_name() + '-' + newsflash_version) + ) +- +-meson.add_install_script('build-aux/meson_post_install.py') diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix new file mode 100644 index 000000000000..f840c191f909 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchurl, python2Packages }: + +python2Packages.buildPythonApplication rec { + pname = "rawdog"; + version = "2.23"; + + src = fetchurl { + url = "https://offog.org/files/${pname}-${version}.tar.gz"; + sha256 = "18nyg19mwxyqdnykplkqmzb4n27vvrhvp639zai8f81gg9vdbsjp"; + }; + + propagatedBuildInputs = with python2Packages; [ feedparser ]; + + # Requested by @SuperSandro20001 + pythonImportsCheck = [ "feedparser" ]; + doCheck = false; + + namePrefix = ""; + + meta = with lib; { + homepage = "https://offog.org/code/rawdog/"; + description = "RSS Aggregator Without Delusions Of Grandeur"; + license = licenses.gpl2; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix new file mode 100644 index 000000000000..9ecadd56f150 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix @@ -0,0 +1,50 @@ +{ pythonPackages, fetchurl, lib, nixosTests }: + +with pythonPackages; + +buildPythonApplication rec { + pname = "rss2email"; + version = "3.13"; + + propagatedBuildInputs = [ feedparser html2text ]; + checkInputs = [ beautifulsoup4 ]; + + src = fetchurl { + url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz"; + sha256 = "09vp2y0ibv20y9yysniv6njzigif4h74pkj31l2a8xw5g19gclna"; + }; + + outputs = [ "out" "man" "doc" ]; + + postPatch = '' + # sendmail executable is called from PATH instead of sbin by default + sed -e 's|/usr/sbin/sendmail|sendmail|' \ + -i rss2email/config.py + ''; + + postInstall = '' + install -Dm 644 r2e.1 $man/share/man/man1/r2e.1 + # an alias for better finding the manpage + ln -s -T r2e.1 $man/share/man/man1/rss2email.1 + + # copy documentation + mkdir -p $doc/share/doc/rss2email + cp AUTHORS COPYING CHANGELOG README.rst $doc/share/doc/rss2email/ + ''; + + checkPhase = '' + runHook preCheck + env PATH=$out/bin:$PATH python ./test/test.py + runHook postCheck + ''; + + meta = with lib; { + description = "A tool that converts RSS/Atom newsfeeds to email"; + homepage = "https://pypi.python.org/pypi/rss2email"; + license = licenses.gpl2; + maintainers = with maintainers; [ jb55 Profpatsch ekleog ]; + }; + passthru.tests = { + smoke-test = nixosTests.rss2email; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix new file mode 100644 index 000000000000..7e13408d04d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, qmake, qtwebengine, qttools, wrapGAppsHook, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "rssguard"; + version = "3.9.1"; + + src = fetchFromGitHub { + owner = "martinrotter"; + repo = pname; + rev = version; + sha256 = "sha256-zSnSCbBNySc5GQSm0O8NztCKNqdNs6bGNWL/RkmGsUw="; + }; + + buildInputs = [ qtwebengine qttools ]; + nativeBuildInputs = [ qmake wrapGAppsHook wrapQtAppsHook ]; + qmakeFlags = [ "CONFIG+=release" ]; + + meta = with lib; { + description = "Simple RSS/Atom feed reader with online synchronization"; + longDescription = '' + RSS Guard is a simple, light and easy-to-use RSS/ATOM feed aggregator + developed using Qt framework and with online feed synchronization support + for ownCloud/Nextcloud. + ''; + homepage = "https://github.com/martinrotter/rssguard"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix new file mode 100644 index 000000000000..ea1566cd6974 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub, cppcheck, libmrss, libiconv }: + +stdenv.mkDerivation { + pname = "rsstail"; + version = "2.1"; + + src = fetchFromGitHub { + sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6"; + rev = "6f2436185372b3f945a4989406c4b6a934fe8a95"; + repo = "rsstail"; + owner = "flok99"; + }; + + buildInputs = [ libmrss ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; + checkInputs = [ cppcheck ]; + + postPatch = '' + substituteInPlace Makefile --replace -liconv_hook "" + ''; + + makeFlags = [ "prefix=$(out)" ]; + enableParallelBuilding = true; + + doCheck = true; + + meta = with lib; { + description = "Monitor RSS feeds for new entries"; + longDescription = '' + RSSTail is more or less an RSS reader: it monitors an RSS feed and if it + detects a new entry it'll emit only that new entry. + ''; + homepage = "http://www.vanheusden.com/rsstail/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/firehol/default.nix b/nixpkgs/pkgs/applications/networking/firehol/default.nix new file mode 100644 index 000000000000..424c67721046 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/default.nix @@ -0,0 +1,58 @@ +{ stdenv, lib, fetchFromGitHub, pkgs +, autoconf, automake, curl, iprange, iproute2, ipset, iptables, iputils +, kmod, nettools, procps, tcpdump, traceroute, util-linux, whois + +# If true, just install FireQOS without FireHOL +, onlyQOS ? false +}: + +stdenv.mkDerivation rec { + pname = "firehol"; + version = "3.1.7"; + + src = fetchFromGitHub { + owner = "firehol"; + repo = "firehol"; + rev = "v${version}"; + sha256 = "sha256-gq7l7QoUsK+j5DUn84kD9hlUTC4hz3ds3gNJc1tRygs="; + }; + + patches = [ + # configure tries to determine if `ping6` or the newer, combined + # `ping` is installed by using `ping -6` which would fail. + ./firehol-ping6.patch + + # put firehol config files in /etc/firehol (not $out/etc/firehol) + # to avoid error on startup, see #35114 + ./firehol-sysconfdir.patch + + # we must quote "$UNAME_CMD", or the dash in + # /nix/store/...-coreutils-.../bin/uname will be interpreted as + # IFS -> error. this might be considered an upstream bug but only + # appears when there are dashes in the command path + ./firehol-uname-command.patch + ]; + + nativeBuildInputs = [ autoconf automake ]; + buildInputs = [ + curl iprange iproute2 ipset iptables iputils kmod + nettools procps tcpdump traceroute util-linux whois + ]; + + preConfigure = "./autogen.sh"; + configureFlags = [ "--localstatedir=/var" + "--disable-doc" "--disable-man" ] ++ + lib.optional onlyQOS [ "--disable-firehol" ]; + + meta = with lib; { + description = "A firewall for humans"; + longDescription = '' + FireHOL, an iptables stateful packet filtering firewall for humans! + FireQOS, a TC based bandwidth shaper for humans! + ''; + homepage = "https://firehol.org/"; + license = licenses.gpl2; + maintainers = with maintainers; [ oxzi ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/firehol/firehol-ping6.patch b/nixpkgs/pkgs/applications/networking/firehol/firehol-ping6.patch new file mode 100644 index 000000000000..7e06e503ef6f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/firehol-ping6.patch @@ -0,0 +1,29 @@ +--- a/m4/ax_check_ping_ipv6.m4 ++++ b/m4/ax_check_ping_ipv6.m4 +@@ -42,16 +42,16 @@ AC_DEFUN([AX_CHECK_PING_IPV6], + + AC_CACHE_CHECK([whether ]PING[ has working -6 option], [ac_cv_ping_6_opt], + [ +- ac_cv_ping_6_opt=no +- if test -n "$PING"; then +- echo "Trying '$PING -6 -c 1 ::1'" >&AS_MESSAGE_LOG_FD +- $PING -6 -c 1 ::1 > conftest.out 2>&1 +- if test "$?" = 0; then +- ac_cv_ping_6_opt=yes +- fi +- cat conftest.out >&AS_MESSAGE_LOG_FD +- rm -f conftest.out +- fi ++ ac_cv_ping_6_opt=yes ++ #if test -n "$PING"; then ++ # echo "Trying '$PING -6 -c 1 ::1'" >&AS_MESSAGE_LOG_FD ++ # $PING -6 -c 1 ::1 > conftest.out 2>&1 ++ # if test "$?" = 0; then ++ # ac_cv_ping_6_opt=yes ++ # fi ++ # cat conftest.out >&AS_MESSAGE_LOG_FD ++ # rm -f conftest.out ++ #fi + ]) + + AS_IF([test "x$ac_cv_ping_6_opt" = "xyes"],[ diff --git a/nixpkgs/pkgs/applications/networking/firehol/firehol-sysconfdir.patch b/nixpkgs/pkgs/applications/networking/firehol/firehol-sysconfdir.patch new file mode 100644 index 000000000000..c541dd585acc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/firehol-sysconfdir.patch @@ -0,0 +1,5 @@ +--- a/sbin/install.config.in.in ++++ b/sbin/install.config.in.in +@@ -4,1 +4,1 @@ +-SYSCONFDIR="@sysconfdir_POST@" ++SYSCONFDIR="/etc" diff --git a/nixpkgs/pkgs/applications/networking/firehol/firehol-uname-command.patch b/nixpkgs/pkgs/applications/networking/firehol/firehol-uname-command.patch new file mode 100644 index 000000000000..92ab4cd93214 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/firehol-uname-command.patch @@ -0,0 +1,11 @@ +--- a/sbin/firehol ++++ b/sbin/firehol +@@ -10295,7 +10295,7 @@ + kmaj=$1 + kmin=$2 + +- set -- $($UNAME_CMD -r) ++ set -- $("$UNAME_CMD" -r) + eval $kmaj=\$1 $kmin=\$2 + } + kernel_maj_min KERNELMAJ KERNELMIN diff --git a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix new file mode 100644 index 000000000000..7dc43d5c116c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix @@ -0,0 +1,18 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "iprange"; + version = "1.0.4"; + + src = fetchurl { + url = "https://github.com/firehol/iprange/releases/download/v${version}/iprange-${version}.tar.xz"; + sha256 = "0rymw4ydn09dng34q4g5111706fyppzs2gd5br76frgvfj4x2f71"; + }; + + meta = with lib; { + description = "manage IP ranges"; + homepage = "https://github.com/firehol/iprange"; + license = licenses.gpl2; + maintainers = with maintainers; [ oxzi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/flent/default.nix b/nixpkgs/pkgs/applications/networking/flent/default.nix new file mode 100644 index 000000000000..9e76a73233cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flent/default.nix @@ -0,0 +1,39 @@ +{ lib, buildPythonApplication, fetchPypi, matplotlib, procps, pyqt5, python +, pythonPackages, qt5, sphinx, xvfb-run }: + +buildPythonApplication rec { + pname = "flent"; + version = "1.3.2"; + src = fetchPypi { + inherit pname version; + sha256 = "1k265xxxjld6q38m9lsgy7p0j70qp9a49vh9zg0njbi4i21lxq23"; + }; + + buildInputs = [ sphinx ]; + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + propagatedBuildInputs = [ matplotlib procps pyqt5 ]; + checkInputs = [ procps pythonPackages.mock pyqt5 xvfb-run ]; + + checkPhase = '' + cat >test-runner <<EOF + #!/bin/sh + + ${python.pythonForBuild.interpreter} nix_run_setup test + EOF + chmod +x test-runner + wrapQtApp test-runner --prefix PYTHONPATH : $PYTHONPATH + xvfb-run -s '-screen 0 800x600x24' ./test-runner + ''; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "The FLExible Network Tester"; + homepage = "https://flent.org"; + license = licenses.gpl3; + + maintainers = [ maintainers.mmlb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/flent/http-getter.nix b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix new file mode 100644 index 000000000000..21c9d3ca6fb1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchFromGitHub, cmake, curl, pkg-config }: + +stdenv.mkDerivation { + pname = "http-getter"; + version = "unstable-2020-12-08"; + + src = fetchFromGitHub { + owner = "tohojo"; + repo = "http-getter"; + rev = "0b20f08133206aaf225946814ceb6b85ab37e136"; + sha256 = "0plyqqwfm9bysichda0w3akbdxf6279wd4mx8mda0c4mxd4xy9nl"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ curl ]; + + meta = with lib; { + homepage = "https://github.com/tohojo/http-getter"; + description = "Simple getter for HTTP URLs using cURL"; + platforms = platforms.unix; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix new file mode 100644 index 000000000000..61e42ce22ec1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix @@ -0,0 +1,69 @@ +{ lib, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "FlexGet"; + version = "3.1.127"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "25a973eb54f2f9ccd422d536b29038c570de3584b8174d993119e3c6b434cc54"; + }; + + postPatch = '' + # remove dependency constraints + sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt + + # "zxcvbn-python" was renamed to "zxcvbn", and we don't have the former in + # nixpkgs. See: https://github.com/NixOS/nixpkgs/issues/62110 + substituteInPlace requirements.txt --replace "zxcvbn-python" "zxcvbn" + ''; + + # ~400 failures + doCheck = false; + + propagatedBuildInputs = with python3Packages; [ + # See https://github.com/Flexget/Flexget/blob/master/requirements.in + APScheduler + beautifulsoup4 + cherrypy + colorama + colorclass + feedparser + flask-compress + flask-cors + flask_login + flask-restful + flask-restx + flask + greenlet + guessit + html5lib + jinja2 + jsonschema + loguru + more-itertools + progressbar + pynzb + pyparsing + PyRSS2Gen + python-dateutil + pyyaml + rebulk + requests + rpyc + sgmllib3k + sqlalchemy + terminaltables + zxcvbn + psutil + # plugins + transmission-rpc + ]; + + meta = with lib; { + homepage = "https://flexget.com/"; + description = "Multipurpose automation tool for all of your media"; + license = licenses.mit; + maintainers = with maintainers; [ marsam ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix new file mode 100644 index 000000000000..5472782758cb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv +, fetchurl +, autoreconfHook +, dbus +, gettext +, gnutls +, libfilezilla +, libidn +, nettle +, pkg-config +, pugixml +, sqlite +, tinyxml +, wrapGAppsHook +, wxGTK30-gtk3 +, xdg-utils +}: + +stdenv.mkDerivation rec { + pname = "filezilla"; + version = "3.53.1"; + + src = fetchurl { + url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2"; + sha256 = "sha256-ZWh08ursVGcscvQepeoUnFAZfFDeXWdIu0HXIr/D93k="; + }; + + # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769 + postPatch = '' + sed -i src/interface/Mainfrm.h \ + -e '/^#define/a #include <list>' + ''; + + configureFlags = [ + "--disable-manualupdatecheck" + "--disable-autoupdatecheck" + ]; + + nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ]; + + buildInputs = [ + dbus + gettext + gnutls + libfilezilla + libidn + nettle + pugixml + sqlite + tinyxml + wxGTK30-gtk3 + wxGTK30-gtk3.gtk + xdg-utils + ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://filezilla-project.org/"; + description = "Graphical FTP, FTPS and SFTP client"; + longDescription = '' + FileZilla Client is a free, open source FTP client. It supports + FTP, SFTP, and FTPS (FTP over SSL/TLS). The client is available + under many platforms, binaries for Windows, Linux and macOS are + provided. + ''; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix new file mode 100644 index 000000000000..66692f96c669 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchFromGitHub +, gobject-introspection +, gtk3 +, libgee +, libsecret +, libsoup +, meson +, ninja +, nix-update-script +, pantheon +, pkg-config +, python3 +, vala +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "taxi"; + version = "0.0.1-unstable=2020-09-03"; + + src = fetchFromGitHub { + owner = "Alecaddd"; + repo = pname; + rev = "74aade67fd9ba9e5bc10c950ccd8d7e48adc2ea1"; + sha256 = "sha256-S/FeKJxIdA30CpfFVrQsALdq7Gy4F4+P50Ky5tmqKvM="; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + libgee + libsecret + libsoup + pantheon.granite + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with lib; { + homepage = "https://github.com/Alecaddd/taxi"; + description = "The FTP Client that drives you anywhere"; + license = licenses.lgpl3Plus; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; + }; + + passthru.updateScript = nix-update-script { + attrPath = pname; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gdrive/default.nix b/nixpkgs/pkgs/applications/networking/gdrive/default.nix new file mode 100644 index 000000000000..b62bda3c469f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gdrive/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "gdrive"; + version = "2.1.0"; + rev = version; + + goPackagePath = "github.com/prasmussen/gdrive"; + + src = fetchFromGitHub { + owner = "prasmussen"; + repo = "gdrive"; + sha256 = "0ywm4gdmrqzb1a99vg66a641r74p7lglavcpgkm6cc2gdwzjjfg7"; + inherit rev; + }; + + meta = with lib; { + homepage = "https://github.com/prasmussen/gdrive"; + description = "A command line utility for interacting with Google Drive"; + platforms = platforms.unix; + license = licenses.mit; + maintainers = [ maintainers.rzetterberg ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/giara/default.nix b/nixpkgs/pkgs/applications/networking/giara/default.nix new file mode 100644 index 000000000000..1f4d2e0a2d90 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/giara/default.nix @@ -0,0 +1,68 @@ +{ lib +, fetchFromGitLab +, meson +, gobject-introspection +, pkg-config +, ninja +, python3 +, wrapGAppsHook +, gtk3 +, gdk-pixbuf +, webkitgtk +, gtksourceview4 +, libhandy +, glib-networking +}: + +python3.pkgs.buildPythonApplication rec { + pname = "giara"; + version = "0.3"; + + format = "other"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = pname; + rev = version; + sha256 = "004qmkfrgd37axv0b6hfh6v7nx4pvy987k5yv4bmlmkj9sbqm6f9"; + }; + + nativeBuildInputs = [ + meson + gobject-introspection + pkg-config + ninja + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + gdk-pixbuf + webkitgtk + gtksourceview4 + libhandy + glib-networking + ]; + + pythonPath = with python3.pkgs; [ + pygobject3 + pycairo + python-dateutil + praw + pillow + mistune + beautifulsoup4 + ]; + + # Fix setup-hooks https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + meta = with lib; { + description = "A Reddit app, built with Python, GTK and Handy; Created with mobile Linux in mind"; + maintainers = with maintainers; [ dasj19 ]; + homepage = "https://gitlab.gnome.org/World/giara"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gmailctl/default.nix b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix new file mode 100644 index 000000000000..0042e5417df3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "gmailctl"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "mbrt"; + repo = "gmailctl"; + rev = "v${version}"; + sha256 = "sha256-UZzpecW4vW1JYUDCcwDIJXCGjw80fgZC4wvCh0DdE98="; + }; + + vendorSha256 = "sha256-5oVr1qazTzsSNVLvcAsAN8UyrJOeqLjSVinImLOyJlk="; + + doCheck = false; + + meta = with lib; { + description = "Declarative configuration for Gmail filters"; + homepage = "https://github.com/mbrt/gmailctl"; + license = licenses.mit; + maintainers = [ maintainers.doronbehar ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix b/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix new file mode 100644 index 000000000000..8456720cb7ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix @@ -0,0 +1,82 @@ +{ lib, stdenv +, fetchurl +, fetchpatch +# native +, meson +, ninja +, pkg-config +, gettext +, desktop-file-utils +, appstream-glib +, wrapGAppsHook +, python3 +# Not native +, gst_all_1 +, gsettings-desktop-schemas +, gtk3 +, glib +, networkmanager +, libpulseaudio +}: + +stdenv.mkDerivation rec { + pname = "gnome-network-displays"; + version = "0.90.4"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "04snnfz5jxxpjkrwa7dchc2h4shszi8mq9g3ihvsvipgzjw3d498"; + }; + + patches = [ + # Undeclared dependency on gio-unix-2.0, see: + # https://github.com/NixOS/nixpkgs/issues/36468 and + # https://gitlab.gnome.org/GNOME/gnome-network-displays/-/merge_requests/147 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/ef3f3ff565acd8238da46de604a1e750d4f02f07.diff"; + sha256 = "1ljiwgqia6am4lansg70qnwkch9mp1fr6bga98s5fwyiaw6b6f4p"; + }) + # Fixes an upstream bug: https://gitlab.gnome.org/GNOME/gnome-network-displays/-/issues/147 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/23164b58f4d5dd59de988525906d6e5e82c5a63c.patch"; + sha256 = "0x32dvkzv9m04q41aicscpf4aspghx81a65462kjqnsavi64lga5"; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + desktop-file-utils + appstream-glib + wrapGAppsHook + python3 + ]; + + buildInputs = [ + gtk3 + glib + gsettings-desktop-schemas + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + gst_all_1.gst-rtsp-server + networkmanager + libpulseaudio + ]; + + preConfigure = '' + patchShebangs ./build-aux/meson/postinstall.py + ''; + + meta = with lib; { + homepage = "https://gitlab.gnome.org/GNOME/gnome-network-displays"; + description = "Miracast implementation for GNOME"; + maintainers = with maintainers; [ doronbehar ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix new file mode 100644 index 000000000000..b3d8a5b3fead --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix @@ -0,0 +1,49 @@ +{ callPackage, libsForQt5 }: + +let + stableVersion = "2.2.18"; + previewVersion = stableVersion; + addVersion = args: + let version = if args.stable then stableVersion else previewVersion; + branch = if args.stable then "stable" else "preview"; + in args // { inherit version branch; }; + extraArgs = rec { + mkOverride = attrname: version: sha256: + self: super: { + ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: { + inherit version; + src = oldAttrs.src.override { + inherit version sha256; + }; + }); + }; + commonOverrides = [ + (mkOverride "psutil" "5.6.7" + "1an5llivfkwpbcfaapbx78p8sfnvzyfypf60wfxihib1mjr8xbgz") + (mkOverride "jsonschema" "3.2.0" + "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68") + ]; + }; + mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { }; + mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { }; + guiSrcHash = "118z6asl6hsv0777rld4plnrwzkbkh3gb9lg9i6bqrjs93p028fw"; + serverSrcHash = "0gd37zpvibhlvqqpflpwlrgg8g9rpbxwi9w9fsym00mfwf7sdd3b"; +in { + guiStable = mkGui { + stable = true; + sha256Hash = guiSrcHash; + }; + guiPreview = mkGui { + stable = false; + sha256Hash = guiSrcHash; + }; + + serverStable = mkServer { + stable = true; + sha256Hash = serverSrcHash; + }; + serverPreview = mkServer { + stable = false; + sha256Hash = serverSrcHash; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix new file mode 100644 index 000000000000..5f5594c05374 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix @@ -0,0 +1,49 @@ +{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }: + +{ lib, python3, fetchFromGitHub, wrapQtAppsHook }: + +let + defaultOverrides = commonOverrides ++ [ + ]; + + python = python3.override { + packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides; + }; +in python.pkgs.buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "gns3-gui"; + + src = fetchFromGitHub { + owner = "GNS3"; + repo = pname; + rev = "v${version}"; + sha256 = sha256Hash; + }; + + nativeBuildInputs = [ wrapQtAppsHook ]; + propagatedBuildInputs = with python.pkgs; [ + sentry-sdk psutil jsonschema # tox for check + # Runtime dependencies + sip_4 (pyqt5.override { withWebSockets = true; }) distro setuptools + ]; + + doCheck = false; # Failing + dontWrapQtApps = true; + postFixup = '' + wrapQtApp "$out/bin/gns3" + ''; + + meta = with lib; { + description = "Graphical Network Simulator 3 GUI (${branch} release)"; + longDescription = '' + Graphical user interface for controlling the GNS3 network simulator. This + requires access to a local or remote GNS3 server (it's recommended to + download the official GNS3 VM). + ''; + homepage = "https://www.gns3.com/"; + changelog = "https://github.com/GNS3/gns3-gui/releases/tag/v${version}"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix new file mode 100644 index 000000000000..47bf0eb106bf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix @@ -0,0 +1,57 @@ +{ stable, branch, version, sha256Hash, mkOverride, commonOverrides }: + +{ lib, python3, fetchFromGitHub }: + +let + defaultOverrides = commonOverrides ++ [ + (mkOverride "aiofiles" "0.5.0" + "98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af") + ]; + + python = python3.override { + packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) defaultOverrides; + }; +in python.pkgs.buildPythonPackage { + pname = "gns3-server"; + inherit version; + + src = fetchFromGitHub { + owner = "GNS3"; + repo = "gns3-server"; + rev = "v${version}"; + sha256 = sha256Hash; + }; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "aiohttp==3.6.2" "aiohttp>=3.6.2" \ + --replace "py-cpuinfo==7.0.0" "py-cpuinfo>=8.0.0" + ''; + + propagatedBuildInputs = with python.pkgs; [ + aiohttp-cors yarl aiohttp multidict setuptools + jinja2 psutil zipstream sentry-sdk jsonschema distro async_generator aiofiles + prompt_toolkit py-cpuinfo + ]; + + # Requires network access + doCheck = false; + + postInstall = '' + rm $out/bin/gns3loopback # For Windows only + ''; + + meta = with lib; { + description = "Graphical Network Simulator 3 server (${branch} release)"; + longDescription = '' + The GNS3 server manages emulators such as Dynamips, VirtualBox or + Qemu/KVM. Clients like the GNS3 GUI control the server using a HTTP REST + API. + ''; + homepage = "https://www.gns3.com/"; + changelog = "https://github.com/GNS3/gns3-server/releases/tag/v${version}"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix new file mode 100644 index 000000000000..29ae860cdadf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix @@ -0,0 +1,29 @@ +{ lib, buildDunePackage, fetchFromGitHub +, ocaml_extlib, ocamlfuse, gapi_ocaml, ocaml_sqlite3 +}: + +buildDunePackage rec { + pname = "google-drive-ocamlfuse"; + version = "0.7.26"; + + useDune2 = true; + + minimumOCamlVersion = "4.06"; + + src = fetchFromGitHub { + owner = "astrada"; + repo = "google-drive-ocamlfuse"; + rev = "v${version}"; + sha256 = "sha256-8s3DnpdYIVyJj5rtsof3WpLvX9wCrWU47dp4D6c986s="; + }; + + buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 ]; + + meta = { + inherit (src.meta) homepage; + description = "A FUSE-based file system backed by Google Drive, written in OCaml"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ obadz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix b/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix new file mode 100644 index 000000000000..09b8f8aafcb3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, ncurses }: + +stdenv.mkDerivation rec { + pname = "gopher"; + version = "3.0.17"; + + src = fetchFromGitHub { + owner = "jgoerzen"; + repo = pname; + rev = "release/${version}"; + sha256 = "1j6xh5l8v231d4mwl9gj1c34dc0jmazz6zg1qqfxmqr9y609jq3h"; + }; + + buildInputs = [ ncurses ]; + + preConfigure = "export LIBS=-lncurses"; + + meta = with lib; { + homepage = "http://gopher.quux.org:70/devel/gopher"; + description = "A ncurses gopher client"; + platforms = platforms.linux; # clang doesn't like local regex.h + license = licenses.gpl2; + maintainers = with maintainers; [ sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix new file mode 100644 index 000000000000..4d18f6a4f4a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchurl, ncurses +, patches ? [] # allow users to easily override config.def.h +}: + +stdenv.mkDerivation rec { + pname = "sacc"; + version = "1.03"; + + src = fetchurl { + url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tgz"; + sha512 = "sha512-vOjAGBM2+080JZv4C4b5dNRTTX45evWFEJfK1DRaWCYrHRCAe07QdEIrHhbaIxhSYfrBd3D1y75rmDnuPC4THA=="; + }; + + inherit patches; + + buildInputs = [ ncurses ]; + + CFLAGS = lib.optionals stdenv.isDarwin [ + "-D_DARWIN_C_SOURCE" + ]; + + postPatch = '' + substituteInPlace config.mk \ + --replace curses ncurses \ + --replace "/usr/local" "$out" + ''; + + meta = with lib; { + description = "A terminal gopher client"; + homepage = "gopher://bitreich.org/1/scm/sacc"; + license = licenses.isc; + maintainers = [ maintainers.sternenseemann ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix new file mode 100644 index 000000000000..64a237480c65 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/hpmyroom/default.nix @@ -0,0 +1,58 @@ +{ mkDerivation, stdenv, lib, fetchurl, rpmextract, autoPatchelfHook , libuuid +, libXtst, libXfixes, glib, gst_all_1, alsa-lib, freetype, fontconfig , libXext +, libGL, libpng, libXScrnSaver, libxcb, xorg, libpulseaudio, libdrm +}: +mkDerivation rec { + pname = "hpmyroom"; + version = "12.1.1.0257"; + + src = fetchurl { + url = "https://www.myroom.hpe.com/downloadfiles/${pname}-${version}.x86_64.rpm"; + sha256 = "1xm41v324zq1x5awgb7fr238f7ml7vq6jrfh84358i5shgha1g2k"; + }; + + nativeBuildInputs = [ + rpmextract autoPatchelfHook + ]; + + buildInputs = [ + libuuid libXtst libXScrnSaver libXfixes alsa-lib freetype fontconfig libXext + libGL libpng libxcb libpulseaudio libdrm + glib # For libgobject + stdenv.cc.cc # For libstdc++ + xorg.libX11 + ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]); + + unpackPhase = '' + rpmextract $src + ''; + + installPhase = '' + runHook preInstall + + mv usr $out + + runHook postInstall + ''; + + qtWrapperArgs = [ + "--prefix QT_XKB_CONFIG_ROOT : '${xorg.xkeyboardconfig}/share/X11/xkb'" + ]; + + postFixup = '' + substituteInPlace $out/share/applications/HP-myroom.desktop \ + --replace /usr/bin/hpmyroom hpmyroom \ + --replace Icon=/usr/share/hpmyroom/Resources/MyRoom.png Icon=$out/share/hpmyroom/Resources/MyRoom.png + + ln -s ${libpng}/lib/libpng.so $out/lib/hpmyroom/libpng15.so.15 + ''; + + meta = { + description = "Client for HPE's MyRoom web conferencing solution"; + maintainers = with lib.maintainers; [ johnazoidberg ]; + license = lib.licenses.unfree; + homepage = "https://myroom.hpe.com"; + # TODO: A Darwin binary is available upstream + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix new file mode 100644 index 000000000000..d47560c4e874 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: + +buildGoModule rec { + pname = "hydroxide"; + version = "0.2.18"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-s8EmoVZUUeaKTaINXvKO5tSdPUS3MlhEucwnmTTC3Wk="; + }; + + vendorSha256 = "sha256-jkiTpDsJN628YKkFZcng9P05hmNUc3UeFsanLf+QtJY="; + + doCheck = false; + + subPackages = [ "cmd/hydroxide" ]; + + meta = with lib; { + description = "A third-party, open-source ProtonMail bridge"; + homepage = "https://github.com/emersion/hydroxide"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/hyprspace/default.nix b/nixpkgs/pkgs/applications/networking/hyprspace/default.nix new file mode 100644 index 000000000000..7f792957199c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/hyprspace/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub, iproute2mac }: + +buildGoModule rec { + pname = "hyprspace"; + version = "0.1.5"; + + propagatedBuildInputs = lib.optional stdenv.isDarwin iproute2mac; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-aLODIaDbSLVEog/F0FVx6ykadCggE0Vebzwjw0sqYJ0="; + }; + + vendorSha256 = "sha256-rw75xNBBV58F+HBVtD/EslPWxZxLbI3/mJVdJF4usKI="; + + meta = with lib; { + description = "A Lightweight VPN Built on top of Libp2p for Truly Distributed Networks."; + homepage = "https://github.com/hyprspace/hyprspace"; + license = licenses.asl20; + maintainers = with maintainers; [ yusdacra ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/icemon/default.nix b/nixpkgs/pkgs/applications/networking/icemon/default.nix new file mode 100644 index 000000000000..b757445eb087 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/icemon/default.nix @@ -0,0 +1,24 @@ +{ lib, fetchFromGitHub, mkDerivation, qtbase, cmake, extra-cmake-modules, icecream, libcap_ng, lzo, zstd, libarchive, wrapQtAppsHook }: + +mkDerivation rec { + pname = "icemon"; + version = "3.3"; + + src = fetchFromGitHub { + owner = "icecc"; + repo = pname; + rev = "v${version}"; + sha256 = "09jnipr67dhawbxfn69yh7mmjrkylgiqmd0gmc2limd3z15d7pgc"; + }; + + nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ]; + buildInputs = [ icecream qtbase libcap_ng lzo zstd libarchive ]; + + meta = with lib; { + description = "Icecream GUI Monitor"; + inherit (src.meta) homepage; + license = licenses.gpl2; + maintainers = with maintainers; [ emantor ]; + platforms = with platforms; linux ++ darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/daq/default.nix b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix new file mode 100644 index 000000000000..26ae9e7a5819 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchurl, flex, bison, libpcap, libdnet, libnfnetlink, libnetfilter_queue}: + +stdenv.mkDerivation rec { + name = "daq-2.2.2"; + + src = fetchurl { + name = "${name}.tar.gz"; + url = "https://snort.org/downloads/archive/snort/${name}.tar.gz"; + sha256 = "0yvzscy7vqj7s5rccza0f7p6awghfm3yaxihx1h57lqspg51in3w"; + }; + + buildInputs = [ flex bison libpcap libdnet libnfnetlink libnetfilter_queue]; + + configureFlags = [ + "--enable-nfq-module=yes" + "--with-dnet-includes=${libdnet}/includes" + "--with-dnet-libraries=${libdnet}/lib" + ]; + + meta = { + description = "Data AcQuisition library (DAQ), for packet I/O"; + homepage = "https://www.snort.org"; + maintainers = with lib.maintainers; [ aycanirican ]; + license = lib.licenses.gpl2; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/snort/default.nix b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix new file mode 100644 index 000000000000..938626806cae --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix @@ -0,0 +1,40 @@ +{lib, stdenv, pkg-config, luajit, openssl, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper +, libtirpc +}: + +stdenv.mkDerivation rec { + version = "2.9.18"; + pname = "snort"; + + src = fetchurl { + name = "${pname}-${version}.tar.gz"; + url = "https://snort.org/downloads/archive/snort/${pname}-${version}.tar.gz"; + sha256 = "0xrc7crchflfrk4x5dq5zx22zkmgcrbkww5r1pvkc3cyyr18cc6h"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ pkg-config luajit openssl libpcap pcre libdnet daq zlib flex bison libtirpc ]; + + NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ]; + + enableParallelBuilding = true; + + configureFlags = [ + "--disable-static-daq" + "--enable-control-socket" + "--with-daq-includes=${daq}/includes" + "--with-daq-libraries=${daq}/lib" + ]; + + postInstall = '' + wrapProgram $out/bin/snort --add-flags "--daq-dir ${daq}/lib/daq --dynamic-preprocessor-lib-dir $out/lib/snort_dynamicpreprocessor/ --dynamic-engine-lib-dir $out/lib/snort_dynamicengine" + ''; + + meta = { + description = "Network intrusion prevention and detection system (IDS/IPS)"; + homepage = "https://www.snort.org"; + maintainers = with lib.maintainers; [ aycanirican ]; + license = lib.licenses.gpl2; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch b/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch new file mode 100644 index 000000000000..d4e8c95fea22 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/suricata/bpf_stubs_workaround.patch @@ -0,0 +1,19 @@ +*** suricata-5.0.0/ebpf/Makefile.in 2019-10-16 22:39:13.174649416 +0200 +--- suricata-5.0.0/ebpf/Makefile.in.fixed 2019-10-16 22:38:41.822201802 +0200 +*************** +*** 527,533 **** + @BUILD_EBPF_TRUE@$(BPF_TARGETS): %.bpf: %.c + # From C-code to LLVM-IR format suffix .ll (clang -S -emit-llvm) + @BUILD_EBPF_TRUE@ ${CLANG} -Wall $(BPF_CFLAGS) -O2 \ +! @BUILD_EBPF_TRUE@ -I/usr/include/$(build_cpu)-$(build_os)/ \ + @BUILD_EBPF_TRUE@ -D__KERNEL__ -D__ASM_SYSREG_H \ + @BUILD_EBPF_TRUE@ -target bpf -S -emit-llvm $< -o ${@:.bpf=.ll} + # From LLVM-IR to BPF-bytecode in ELF-obj file +--- 527,533 ---- + @BUILD_EBPF_TRUE@$(BPF_TARGETS): %.bpf: %.c + # From C-code to LLVM-IR format suffix .ll (clang -S -emit-llvm) + @BUILD_EBPF_TRUE@ ${CLANG} -Wall $(BPF_CFLAGS) -O2 \ +! @BUILD_EBPF_TRUE@ -idirafter ../bpf_stubs_workaround \ + @BUILD_EBPF_TRUE@ -D__KERNEL__ -D__ASM_SYSREG_H \ + @BUILD_EBPF_TRUE@ -target bpf -S -emit-llvm $< -o ${@:.bpf=.ll} + # From LLVM-IR to BPF-bytecode in ELF-obj file diff --git a/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix b/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix new file mode 100644 index 000000000000..5d24f589abca --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/suricata/default.nix @@ -0,0 +1,158 @@ +{ stdenv +, lib +, fetchurl +, clang +, llvm +, pkg-config +, makeWrapper +, file +, hyperscan +, jansson +, libbpf +, libcap_ng +, libelf +, libevent +, libmaxminddb +, libnet +, libnetfilter_log +, libnetfilter_queue +, libnfnetlink +, libpcap +, libyaml +, luajit +, lz4 +, nspr +, nss +, pcre +, python +, zlib +, redisSupport ? true, redis, hiredis +, rustSupport ? true, rustc, cargo +}: let + libmagic = file; + hyperscanSupport = stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"; +in +stdenv.mkDerivation rec { + pname = "suricata"; + version = "6.0.3"; + + src = fetchurl { + url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz"; + sha256 = "sha256-2vE0uy18mAA16a5g96rzEzI6gJNAAJ8m5IEQzN6B9gI="; + }; + + nativeBuildInputs = [ + clang + llvm + makeWrapper + pkg-config + ] + ++ lib.optionals rustSupport [ rustc cargo ] + ; + + buildInputs = [ + jansson + libbpf + libcap_ng + libelf + libevent + libmagic + libmaxminddb + libnet + libnetfilter_log + libnetfilter_queue + libnfnetlink + libpcap + libyaml + luajit + lz4 + nspr + nss + pcre + python + zlib + ] + ++ lib.optional hyperscanSupport hyperscan + ++ lib.optionals redisSupport [ redis hiredis ] + ; + + enableParallelBuilding = true; + + patches = lib.optional stdenv.is64bit ./bpf_stubs_workaround.patch; + + postPatch = '' + substituteInPlace ./configure \ + --replace "/usr/bin/file" "${file}/bin/file" + substituteInPlace ./libhtp/configure \ + --replace "/usr/bin/file" "${file}/bin/file" + + mkdir -p bpf_stubs_workaround/gnu + touch bpf_stubs_workaround/gnu/stubs-32.h + ''; + + configureFlags = [ + "--disable-gccmarch-native" + "--enable-af-packet" + "--enable-ebpf" + "--enable-ebpf-build" + "--enable-gccprotect" + "--enable-geoip" + "--enable-luajit" + "--enable-nflog" + "--enable-nfqueue" + "--enable-pie" + "--disable-prelude" + "--enable-python" + "--enable-unix-socket" + "--localstatedir=/var" + "--sysconfdir=/etc" + "--with-libnet-includes=${libnet}/include" + "--with-libnet-libraries=${libnet}/lib" + ] + ++ lib.optionals hyperscanSupport [ + "--with-libhs-includes=${hyperscan.dev}/include/hs" + "--with-libhs-libraries=${hyperscan}/lib" + ] + ++ lib.optional redisSupport "--enable-hiredis" + ++ lib.optionals rustSupport [ + "--enable-rust" + "--enable-rust-experimental" + ]; + + postConfigure = '' + # Avoid unintended clousure growth. + sed -i 's|/nix/store/\(.\{8\}\)[^-]*-|/nix/store/\1...-|g' ./src/build-info.h + ''; + + hardeningDisable = [ "stackprotector" ]; + + installFlags = [ + "e_localstatedir=\${TMPDIR}" + "e_logdir=\${TMPDIR}" + "e_logcertsdir=\${TMPDIR}" + "e_logfilesdir=\${TMPDIR}" + "e_rundir=\${TMPDIR}" + "e_sysconfdir=\${out}/etc/suricata" + "e_sysconfrulesdir=\${out}/etc/suricata/rules" + "localstatedir=\${TMPDIR}" + "runstatedir=\${TMPDIR}" + "sysconfdir=\${out}/etc" + ]; + + installTargets = [ "install" "install-conf" ]; + + postInstall = '' + wrapProgram "$out/bin/suricatasc" \ + --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") + substituteInPlace "$out/etc/suricata/suricata.yaml" \ + --replace "/etc/suricata" "$out/etc/suricata" + ''; + + meta = with lib; { + description = "A free and open source, mature, fast and robust network threat detection engine"; + homepage = "https://suricata-ids.org"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ magenbluten ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix new file mode 100644 index 000000000000..979d765e9e6e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchurl +, cmake +, flex +, bison +, openssl +, libpcap +, zlib +, file +, curl +, libmaxminddb +, gperftools +, python3 +, swig +, gettext +, coreutils +, ncurses +, caf +}: + +stdenv.mkDerivation rec { + pname = "zeek"; + version = "4.0.3"; + + src = fetchurl { + url = "https://download.zeek.org/zeek-${version}.tar.gz"; + sha256 = "1nrkwaj0dilyzhfl6yma214vyakvpi97acyffdr7n4kdm4m6pvik"; + }; + + nativeBuildInputs = [ cmake flex bison file ]; + buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python3 swig ncurses ] + ++ lib.optionals stdenv.isDarwin [ gettext ]; + + outputs = [ "out" "lib" "py" ]; + + cmakeFlags = [ + "-DCAF_ROOT=${caf}" + "-DZEEK_PYTHON_DIR=${placeholder "py"}/lib/${python3.libPrefix}/site-packages" + "-DENABLE_PERFTOOLS=true" + "-DINSTALL_AUX_TOOLS=true" + ]; + + postInstall = '' + for file in $out/share/zeek/base/frameworks/notice/actions/pp-alarms.zeek $out/share/zeek/base/frameworks/notice/main.zeek; do + substituteInPlace $file \ + --replace "/bin/rm" "${coreutils}/bin/rm" \ + --replace "/bin/cat" "${coreutils}/bin/cat" + done + + for file in $out/share/zeek/policy/misc/trim-trace-file.zeek $out/share/zeek/base/frameworks/logging/postprocessors/scp.zeek $out/share/zeek/base/frameworks/logging/postprocessors/sftp.zeek; do + substituteInPlace $file --replace "/bin/rm" "${coreutils}/bin/rm" + done + ''; + + meta = with lib; { + description = "Powerful network analysis framework much different from a typical IDS"; + homepage = "https://www.zeek.org"; + changelog = "https://github.com/zeek/zeek/blob/v${version}/CHANGES"; + license = licenses.bsd3; + maintainers = with maintainers; [ pSub marsam tobim ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ike/default.nix b/nixpkgs/pkgs/applications/networking/ike/default.nix new file mode 100644 index 000000000000..7b4ddb6134db --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ike/default.nix @@ -0,0 +1,61 @@ +{ lib, stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper +, gcc, nettools, iproute2, linuxHeaders }: + +# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp"; +# launch with "iked -f /etc/iked.conf" + +# NOTE: my testings reveal that kernels 3.11.10 and 3.12.6 won't let the traffic through the tunnel, +# so I'm sticking with 3.4 + +stdenv.mkDerivation rec { + pname = "ike"; + version = "2.2.1"; + + src = fetchurl { + url = "https://www.shrew.net/download/ike/${pname}-${version}-release.tgz"; + sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y"; + }; + + patches = [ + # required for openssl 1.1.x compatibility + (fetchpatch { + name = "openssl-1.1.0.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/openssl-1.1.0.patch?h=ike&id=3a56735ddc26f750df4720f4baba0728bb4cb458"; + sha256 = "1hw8q4xy858rivpjkq5288q3mc75d52bg4w3n30y99h05wik0h51"; + }) + ]; + + nativeBuildInputs = [ cmake flex bison makeWrapper ]; + buildInputs = [ openssl libedit qt4 nettools iproute2 ]; + + postPatch = '' + # fix build with bison3 + sed -i 's/define "parser_class_name"/define parser_class_name/' source/iked/conf.parse.yy + ''; + + configurePhase = '' + mkdir -p $out/{bin,sbin,lib} + cmake -DQTGUI=YES -DETCDIR=$out/etc -DLIBDIR=$out/lib -DSBINDIR=$out/sbin -DBINDIR=$out/bin \ + -DKRNINC="${linuxHeaders}/include/" -DTESTS=YES \ + -DMANDIR=$out/man -DNATT=YES -DCMAKE_INSTALL_PREFIX:BOOL=$out + ''; + + buildPhase = '' + make + ''; + + installPhase = '' + make install + for file in "$out"/bin/* "$out"/sbin/*; do + wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${lib.makeLibraryPath [ openssl gcc.cc stdenv.cc.libc libedit qt4 ]}" + done + ''; + + meta = with lib; { + homepage = "https://www.shrew.net/software"; + description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems"; + platforms = platforms.unix; + maintainers = [ ]; + license = licenses.sleepycat; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix new file mode 100644 index 000000000000..bab9d12123df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, cmake, boost166 }: + +stdenv.mkDerivation rec { + pname = "SkypeExport"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "Temptin"; + repo = "SkypeExport"; + rev = "v${version}"; + sha256 = "1ilkh0s3dz5cp83wwgmscnfmnyck5qcwqg1yxp9zv6s356dxnbak"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ boost166 ]; + + preConfigure = "cd src/SkypeExport/_gccbuild/linux"; + installPhase = "install -Dt $out/bin SkypeExport"; + + meta = with lib; { + description = "Export Skype history to HTML"; + homepage = "https://github.com/Temptin/SkypeExport"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ yegortimoshenko ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix new file mode 100644 index 000000000000..03f0bf638180 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, fetchurl, zlib, openssl, libre, librem, pkg-config, gst_all_1 +, cairo, mpg123, alsa-lib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg +, gsm, speex, portaudio, spandsp, libuuid, libvpx +}: +stdenv.mkDerivation rec { + version = "0.6.5"; + pname = "baresip"; + src=fetchurl { + url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz"; + sha256 = "13di0ycdcr2q2a20mjvyaqfmvk5xldwqaxklqsz7470jnbc5n0rb"; + }; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [zlib openssl libre librem cairo mpg123 + alsa-lib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid + libvpx + ] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]); + makeFlags = [ + "LIBRE_MK=${libre}/share/re/re.mk" + "LIBRE_INC=${libre}/include/re" + "LIBRE_SO=${libre}/lib" + "LIBREM_PATH=${librem}" + "PREFIX=$(out)" + "USE_VIDEO=1" + "CCACHE_DISABLE=1" + + "USE_ALSA=1" "USE_AMR=1" "USE_CAIRO=1" "USE_CELT=1" + "USE_CONS=1" "USE_EVDEV=1" "USE_FFMPEG=1" "USE_GSM=1" "USE_GST1=1" + "USE_L16=1" "USE_MPG123=1" "USE_OSS=1" "USE_PLC=1" "USE_VPX=1" + "USE_PORTAUDIO=1" "USE_SDL=1" "USE_SNDFILE=1" "USE_SPEEX=1" + "USE_SPEEX_AEC=1" "USE_SPEEX_PP=1" "USE_SPEEX_RESAMP=1" "USE_SRTP=1" + "USE_STDIO=1" "USE_SYSLOG=1" "USE_UUID=1" "USE_V4L2=1" "USE_X11=1" + + "USE_BV32=" "USE_COREAUDIO=" "USE_G711=1" "USE_G722=1" "USE_G722_1=" + "USE_ILBC=" "USE_OPUS=" "USE_SILK=" + ] + ++ lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}" + ++ lib.optional (stdenv.cc.libc != null) "SYSROOT=${stdenv.cc.libc}" + ; + + NIX_CFLAGS_COMPILE='' -I${librem}/include/rem -I${gsm}/include/gsm + -DHAVE_INTTYPES_H -D__GLIBC__ + -D__need_timeval -D__need_timespec -D__need_time_t ''; + meta = { + homepage = "http://www.creytiv.com/baresip.html"; + platforms = with lib.platforms; linux; + maintainers = with lib.maintainers; [raskin]; + license = lib.licenses.bsd3; + inherit version; + downloadPage = "http://www.creytiv.com/pub/"; + updateWalker = true; + downloadURLRegexp = "/baresip-.*[.]tar[.].*"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix new file mode 100644 index 000000000000..543a5f52c979 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, stdenv, bitlbee, autoreconfHook, pkg-config, glib }: + +with lib; +stdenv.mkDerivation rec { + pname = "bitlbee-discord"; + version = "0.4.3"; + + src = fetchFromGitHub { + rev = version; + owner = "sm00th"; + repo = "bitlbee-discord"; + sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ bitlbee ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + export BITLBEE_DATADIR=$out/share/bitlbee + ./autogen.sh + ''; + + meta = { + description = "Bitlbee plugin for Discord"; + + homepage = "https://github.com/sm00th/bitlbee-discord"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ lassulus jb55 ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix new file mode 100644 index 000000000000..e5a45a1e9f52 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix @@ -0,0 +1,30 @@ +{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, json-glib }: + +stdenv.mkDerivation rec { + pname = "bitlbee-facebook"; + version = "1.2.2"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "bitlbee"; + repo = "bitlbee-facebook"; + sha256 = "1qiiiq17ybylbhwgbwsvmshb517589r8yy5rsh1rfaylmlcxyy7z"; + }; + + nativeBuildInputs = [ autoconf automake libtool pkg-config ]; + + buildInputs = [ bitlbee json-glib ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + ./autogen.sh + ''; + + meta = with lib; { + description = "The Facebook protocol plugin for bitlbee"; + homepage = "https://github.com/bitlbee/bitlbee-facebook"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ toonn ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix new file mode 100644 index 000000000000..f1b2df658a6b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchgit, stdenv, bitlbee, autoreconfHook, pkg-config, glib }: + +with lib; +stdenv.mkDerivation rec { + pname = "bitlbee-mastodon"; + version = "1.4.4"; + + src = fetchgit { + url = "https://alexschroeder.ch/cgit/bitlbee-mastodon"; + rev = "v${version}"; + sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ bitlbee ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + export BITLBEE_DATADIR=$out/share/bitlbee + ''; + + meta = { + description = "Bitlbee plugin for Mastodon"; + homepage = "https://alexschroeder.ch/cgit/bitlbee-mastodon/about"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ jpotier ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix new file mode 100644 index 000000000000..14464247659c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix @@ -0,0 +1,30 @@ +{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, glib, libgcrypt }: + +with lib; +stdenv.mkDerivation rec { + version = "1.4.2"; + pname = "bitlbee-steam"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "bitlbee"; + repo = "bitlbee-steam"; + sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ bitlbee autoconf automake libtool libgcrypt ]; + + preConfigure = '' + export BITLBEE_PLUGINDIR=$out/lib/bitlbee + ./autogen.sh + ''; + + meta = { + description = "Steam protocol plugin for BitlBee"; + + homepage = "https://github.com/jgeboski/bitlbee-steam"; + license = licenses.gpl2Plus; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix new file mode 100644 index 000000000000..c5a718c3a702 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix @@ -0,0 +1,68 @@ +{ lib, fetchurl, fetchpatch, stdenv, gnutls, glib, pkg-config, check, libotr, python2 +, enableLibPurple ? false, pidgin ? null +, enablePam ? false, pam ? null +}: + +with lib; +stdenv.mkDerivation rec { + name = "bitlbee-3.6"; + + src = fetchurl { + url = "mirror://bitlbee/src/${name}.tar.gz"; + sha256 = "0zhhcbcr59sx9h4maf8zamzv2waya7sbsl7w74gbyilvy93dw5cz"; + }; + + nativeBuildInputs = [ pkg-config ] ++ optional doCheck check; + + buildInputs = [ gnutls libotr python2 ] + ++ optional enableLibPurple pidgin + ++ optional enablePam pam; + + propagatedBuildInputs = [ glib ]; + + configureFlags = [ + "--otr=1" + "--ssl=gnutls" + "--pidfile=/var/lib/bitlbee/bitlbee.pid" + ] ++ optional enableLibPurple "--purple=1" + ++ optional enablePam "--pam=1"; + + patches = [ + # This should be dropped once the issue is fixed upstream. + (fetchpatch { + url = "https://github.com/bitlbee/bitlbee/commit/6ff651b3ec93e5fd74f80766d5e9714d963137bc.diff"; + sha256 = "144dpm4kq7c268fpww1q3n88ayg068n73fbabr5arh1zryw48qfv"; + }) + ]; + + installTargets = [ "install" "install-dev" ]; + + doCheck = !enableLibPurple; # Checks fail with libpurple for some reason + checkPhase = '' + # check flags set VERBOSE=y which breaks the build due overriding a command + make check + ''; + + enableParallelBuilding = true; + + meta = { + description = "IRC instant messaging gateway"; + + longDescription = '' + BitlBee brings IM (instant messaging) to IRC clients. It's a + great solution for people who have an IRC client running all the + time and don't want to run an additional MSN/AIM/whatever + client. + + BitlBee currently supports the following IM networks/protocols: + XMPP/Jabber (including Google Talk), MSN Messenger, Yahoo! + Messenger, AIM and ICQ. + ''; + + homepage = "https://www.bitlbee.org/"; + license = licenses.gpl2Plus; + + maintainers = with maintainers; [ pSub ]; + platforms = platforms.gnu ++ platforms.linux; # arbitrary choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix new file mode 100644 index 000000000000..ad68fcb4b79d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix @@ -0,0 +1,20 @@ +{ lib, stdenv, bitlbee }: + +with lib; + +plugins: + +stdenv.mkDerivation { + inherit bitlbee plugins; + name = "bitlbee-plugins"; + buildInputs = [ bitlbee plugins ]; + phases = [ "installPhase" ]; + installPhase = '' + mkdir -p $out/lib/bitlbee + for plugin in $plugins; do + for thing in $(ls $plugin/lib/bitlbee); do + ln -s $plugin/lib/bitlbee/$thing $out/lib/bitlbee/ + done + done + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix new file mode 100644 index 000000000000..805278b4e456 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix @@ -0,0 +1,68 @@ +{ lib, fetchdarcs, python2Packages, libvncserver, zlib +, gnutls, libvpx, makeDesktopItem, mkDerivationWith }: + +mkDerivationWith python2Packages.buildPythonApplication rec { + + pname = "blink"; + version = "3.2.0"; + + src = fetchdarcs { + url = "http://devel.ag-projects.com/repositories/blink-qt"; + rev = "release-${version}"; + sha256 = "19rcwr5scw48qnj79q1pysw95fz9h98nyc3161qy2kph5g7dwkc3"; + }; + + patches = [ ./pythonpath.patch ]; + postPatch = '' + sed -i 's|@out@|'"''${out}"'|g' blink/resources.py + ''; + + propagatedBuildInputs = with python2Packages; [ + pyqt5_with_qtwebkit + cjson + sipsimple + twisted + google-api-python-client + ]; + + buildInputs = [ + python2Packages.cython + zlib + libvncserver + libvpx + ]; + + desktopItem = makeDesktopItem { + name = "Blink"; + exec = "blink"; + comment = meta.description; + desktopName = "Blink"; + icon = "blink"; + genericName = "Instant Messaging"; + categories = "Internet;"; + }; + + dontWrapQtApps = true; + + postInstall = '' + mkdir -p "$out/share/applications" + mkdir -p "$out/share/pixmaps" + cp "$desktopItem"/share/applications/* "$out/share/applications" + cp "$out"/share/blink/icons/blink.* "$out/share/pixmaps" + ''; + + preFixup = '' + makeWrapperArgs+=( + --prefix "LD_LIBRARY_PATH" ":" "${gnutls.out}/lib" + "''${qtWrapperArgs[@]}" + ) + ''; + + meta = with lib; { + homepage = "http://icanblink.com/"; + description = "A state of the art, easy to use SIP client for Voice, Video and IM"; + platforms = platforms.linux; + license = licenses.gpl3; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch new file mode 100644 index 000000000000..0df8bc84ff30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch @@ -0,0 +1,49 @@ +--- blink-2.0.0/blink/resources.py 2016-03-09 14:39:07.000000000 +0100 ++++ blink-2.0.0/blink/resources-patched.py 2016-03-12 21:34:14.965476623 +0100 +@@ -1,7 +1,10 @@ ++# Copyright (C) 2010-2013 AG Projects. See LICENSE for details. ++# + + """Provide access to Blink's resources""" + +-import __main__ ++__all__ = ['ApplicationData', 'Resources', 'IconManager'] ++ + import imghdr + import os + import platform +@@ -19,14 +22,10 @@ + from blink.util import run_in_gui_thread + + +-__all__ = ['ApplicationData', 'Resources', 'IconManager'] +- +- + class DirectoryContextManager(unicode): + def __enter__(self): + self.directory = os.getcwdu() + os.chdir(self) +- + def __exit__(self, type, value, traceback): + os.chdir(self.directory) + +@@ -61,18 +60,7 @@ + @classproperty + def directory(cls): + if cls._cached_directory is None: +- try: +- binary_directory = os.path.dirname(os.path.realpath(__main__.__file__)) +- except AttributeError: +- if hasattr(sys, 'frozen'): +- application_directory = os.path.dirname(os.path.realpath(sys.executable)) +- else: +- application_directory = os.path.realpath('') # executed in interactive interpreter +- else: +- if os.path.basename(binary_directory) == 'bin': +- application_directory = os.path.dirname(binary_directory) +- else: +- application_directory = binary_directory ++ application_directory = '@out@' + if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')): + cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding()) + else: diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix new file mode 100644 index 000000000000..adc19f5dcfdf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix @@ -0,0 +1,135 @@ +{ stdenv +, lib +, fetchurl +, rpmextract +, libnotify +, libuuid +, cairo +, cups +, pango +, fontconfig +, udev +, dbus +, gtk3 +, atk +, at-spi2-atk +, expat +, gdk-pixbuf +, freetype +, nspr +, glib +, nss +, libX11 +, libXrandr +, libXrender +, libXtst +, libXdamage +, libxcb +, libXcursor +, libXi +, libXext +, libXfixes +, libXft +, libXcomposite +, libXScrnSaver +, alsa-lib +, pulseaudio +, makeWrapper +, xdg-utils +}: + +let + getFirst = n: v: builtins.concatStringsSep "." (lib.take n (lib.splitString "." v)); +in + +stdenv.mkDerivation rec { + pname = "bluejeans"; + version = "2.22.0.87"; + + src = fetchurl { + url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm"; + sha256 = "sha256-0nobn+YcvqakwvBdkoEJrzHoL+OGym2zJ806oUabYfo="; + }; + + nativeBuildInputs = [ rpmextract makeWrapper ]; + + libPath = + lib.makeLibraryPath + [ + libnotify + libuuid + cairo + cups + pango + fontconfig + gtk3 + atk + at-spi2-atk + expat + gdk-pixbuf + dbus + (lib.getLib udev) + freetype + nspr + glib + stdenv.cc.cc.lib + nss + libX11 + libXrandr + libXrender + libXtst + libXdamage + libxcb + libXcursor + libXi + libXext + libXfixes + libXft + libXcomposite + libXScrnSaver + alsa-lib + pulseaudio + ]; + + localtime64_stub = ./localtime64_stub.c; + + buildCommand = '' + mkdir -p $out/bin/ + cd $out + rpmextract $src + mv usr/share share + rmdir usr + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --replace-needed libudev.so.0 libudev.so.1 \ + opt/BlueJeans/bluejeans-v2 + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + opt/BlueJeans/resources/BluejeansHelper + + cc $localtime64_stub -shared -o "${placeholder "out"}"/opt/BlueJeans/liblocaltime64_stub.so + + makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \ + --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \ + --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so \ + --prefix PATH : ${lib.makeBinPath [ xdg-utils ]} + + substituteInPlace "$out"/share/applications/bluejeans-v2.desktop \ + --replace "/opt/BlueJeans/bluejeans-v2" "$out/bin/bluejeans" + + patchShebangs "$out" + ''; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day"; + homepage = "https://www.bluejeans.com"; + license = licenses.unfree; + maintainers = with maintainers; [ ]; + platforms = [ "x86_64-linux" ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c new file mode 100644 index 000000000000..87c2fa11714c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c @@ -0,0 +1,12 @@ +#include <stdio.h> +#include <stdlib.h> + +void *localtime64() { + fprintf(stderr, "nixpkgs: call into localtime64_r\n"); + abort(); +} + +void *localtime64_r() { + fprintf(stderr, "nixpkgs: call into localtime64_r\n"); + abort(); +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/update.sh new file mode 100755 index 000000000000..2c527462003e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/update.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl pup common-updater-scripts + +set -eu -o pipefail + +version="$(curl -Ls https://www.bluejeans.com/download | \ + pup 'a[aria-label~="Linux"] attr{href}' | \ + #output contains *.deb and *.rpm + grep "\.rpm" | \ + awk -F'[ ._ ]' '{printf $6"."$7"."$8"."$9"\n"}')" + +update-source-version bluejeans-gui "$version" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix new file mode 100644 index 000000000000..78178f0021e2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, gnused, openssl, curl, ncurses, libjpeg +, withGpg ? true, gpgme ? null}: + +stdenv.mkDerivation rec { + version = "5.0.1"; + pname = "centerim5"; + + src = fetchurl { + url = "http://centerim.org/download/cim5/${pname}-${version}.tar.gz"; + sha256 = "0viz86jflp684vfginhl6aaw4gh2qvalc25anlwljjl3kkmibklk"; + }; + + CXXFLAGS = "-std=gnu++98"; + + buildInputs = [ openssl curl ncurses libjpeg ] + ++ lib.optional withGpg gpgme; + + preConfigure = '' + ${gnused}/bin/sed -i '1,1i#include <stdio.h>' libicq2000/libicq2000/sigslot.h + ''; + + configureFlags = [ + "--with-openssl=${openssl.dev}" + ]; + + meta = { + homepage = "http://www.centerim.org/"; + description = "Fork of CenterICQ, a curses instant messaging program"; + license = lib.licenses.gpl2Plus; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix new file mode 100644 index 000000000000..075fd5b3a20a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix @@ -0,0 +1,36 @@ +{ mkDerivation, stdenv, lib, pkg-config, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qmake, boost, openssl, wrapQtAppsHook }: + +mkDerivation rec { + pname = "chatterino2"; + version = "2.3.0"; + src = fetchFromGitHub { + owner = "Chatterino"; + repo = pname; + rev = "v${version}"; + sha256 = "0x12zcrbkxn2nn0hqkj1amrxv4q032id282cajzsx7by970r1shd"; + fetchSubmodules = true; + }; + nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ]; + buildInputs = [ qtbase qtsvg qtmultimedia boost openssl ]; + postInstall = lib.optionalString stdenv.isDarwin '' + mkdir -p "$out/Applications" + mv bin/chatterino.app "$out/Applications/" + ''; + postFixup = lib.optionalString stdenv.isDarwin '' + wrapQtApp "$out/Applications/chatterino.app/Contents/MacOS/chatterino" + ''; + meta = with lib; { + description = "A chat client for Twitch chat"; + longDescription = '' + Chatterino is a chat client for Twitch chat. It aims to be an + improved/extended version of the Twitch web chat. Chatterino 2 is + the second installment of the Twitch chat client series + "Chatterino". + ''; + homepage = "https://github.com/Chatterino/chatterino2"; + changelog = "https://github.com/Chatterino/chatterino2/blob/master/CHANGELOG.md"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ rexim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix new file mode 100644 index 000000000000..a906c46c4aef --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "cordless"; + version = "2020-11-22"; + + src = fetchFromGitHub { + owner = "Bios-Marcel"; + repo = pname; + rev = version; + sha256 = "0avf09b73fs3wpb4fzmm6ka595aanfvp95m6xj1ccxvq8ciwpqcw"; + }; + + subPackages = [ "." ]; + + vendorSha256 = "01anbhwgwam70dymcmvkia1xpw48658rq7wv4m7fiavxvnli6z2y"; + + meta = with lib; { + homepage = "https://github.com/Bios-Marcel/cordless"; + description = "Discord terminal client"; + license = licenses.bsd3; + maintainers = with maintainers; [ colemickens ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix new file mode 100644 index 000000000000..abcdf617352b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoPackage, fetchFromGitHub, pkg-config, + cairo, gdk-pixbuf, glib, gnome, wrapGAppsHook, gtk3 }: + +buildGoPackage rec { + pname = "coyim"; + version = "0.3.11"; + + goPackagePath = "github.com/coyim/coyim"; + + src = fetchFromGitHub { + owner = "coyim"; + repo = "coyim"; + rev = "v${version}"; + sha256 = "1g8nf56j17rdhhj7pv3ha1rb2mfc0mdvyzl35pgcki08w7iw08j3"; + }; + + nativeBuildInputs = [ pkg-config wrapGAppsHook ]; + + buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome.adwaita-icon-theme ]; + + meta = with lib; { + description = "a safe and secure chat client"; + homepage = "https://coy.im/"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix new file mode 100644 index 000000000000..e7263b1d1617 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix @@ -0,0 +1,49 @@ +{ lib +, python3 +, fetchFromGitHub +, wrapGAppsHook +, gobject-introspection +, libnotify +}: + +python3.pkgs.buildPythonApplication rec { + pname = "deltachat-cursed"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "adbenitez"; + repo = "deltachat-cursed"; + rev = "v${version}"; + sha256 = "0kbb7lh17dbkd85mcqf438qwk5masz2fxsy8ljdh23kis55nksh8"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + ]; + + buildInputs = [ + gobject-introspection + libnotify + ]; + + propagatedBuildInputs = with python3.pkgs; [ + deltachat + pygobject3 + urwid-readline + ]; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + doCheck = false; # no tests implemented + + meta = with lib; { + description = "Lightweight Delta Chat client"; + homepage = "https://github.com/adbenitez/deltachat-cursed"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix new file mode 100644 index 000000000000..0134fac0e202 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }: + +let + pname = "deltachat-electron"; + version = "1.15.5"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage"; + sha256 = "sha256-BTGwgC0zSr1tq/X4v/fS/12E7/mGVYQ0m+Bt6o7VL4o="; + }; + + appimageContents = appimageTools.extract { inherit name src; }; + +in +appimageTools.wrapType2 { + inherit name src; + + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D \ + ${appimageContents}/deltachat-desktop.desktop \ + $out/share/applications/${pname}.desktop + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + cp -r ${appimageContents}/usr/share/icons $out/share + ''; + + meta = with lib; { + description = "Electron client for DeltaChat"; + homepage = "https://delta.chat/"; + license = licenses.gpl3; + maintainers = with maintainers; [ ehmry ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix new file mode 100644 index 000000000000..7f0127c28fd8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix @@ -0,0 +1,88 @@ +{ lib, stdenv, fetchFromGitHub +, vala, cmake, ninja, wrapGAppsHook, pkg-config, gettext +, gobject-introspection, gnome, glib, gdk-pixbuf, gtk3, glib-networking +, xorg, libXdmcp, libxkbcommon +, libnotify, libsoup, libgee +, librsvg, libsignal-protocol-c +, libgcrypt +, epoxy +, at-spi2-core +, sqlite +, dbus +, gpgme +, pcre +, qrencode +, icu + }: + +stdenv.mkDerivation rec { + pname = "dino"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "dino"; + repo = "dino"; + rev = "v${version}"; + sha256 = "11m38syqzb1z92wmdaf45gryl6gjxwbcnk32j4p984ipqj2vdzd8"; + }; + + nativeBuildInputs = [ + vala + cmake + ninja + pkg-config + wrapGAppsHook + gettext + ]; + + buildInputs = [ + qrencode + gobject-introspection + glib-networking + glib + libgee + gnome.adwaita-icon-theme + sqlite + gdk-pixbuf + gtk3 + libnotify + gpgme + libgcrypt + libsoup + pcre + epoxy + at-spi2-core + dbus + icu + libsignal-protocol-c + librsvg + ] ++ lib.optionals (!stdenv.isDarwin) [ + xorg.libxcb + xorg.libpthreadstubs + libXdmcp + libxkbcommon + ]; + + # Dino looks for plugins with a .so filename extension, even on macOS where + # .dylib is appropriate, and despite the fact that it builds said plugins with + # that as their filename extension + # + # Therefore, on macOS rename all of the plugins to use correct names that Dino + # will load + # + # See https://github.com/dino/dino/wiki/macOS + postFixup = lib.optionalString (stdenv.isDarwin) '' + cd "$out/lib/dino/plugins/" + for f in *.dylib; do + mv "$f" "$(basename "$f" .dylib).so" + done + ''; + + meta = with lib; { + description = "Modern Jabber/XMPP Client using GTK/Vala"; + homepage = "https://github.com/dino/dino"; + license = licenses.gpl3; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ mic92 qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix new file mode 100644 index 000000000000..a8b2b02f0bfd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix @@ -0,0 +1,84 @@ +{ pname, version, src, binaryName, desktopName +, autoPatchelfHook, makeDesktopItem, lib, stdenv, wrapGAppsHook +, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig +, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid +, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext +, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence +, mesa, nspr, nss, pango, systemd, libappindicator-gtk3, libdbusmenu +}: + +let + inherit binaryName; +in stdenv.mkDerivation rec { + inherit pname version src; + + nativeBuildInputs = [ + alsa-lib + autoPatchelfHook + cups + libdrm + libuuid + libXdamage + libX11 + libXScrnSaver + libXtst + libxcb + libxshmfence + mesa + nss + wrapGAppsHook + ]; + + dontWrapGApps = true; + + libPath = lib.makeLibraryPath [ + libcxx systemd libpulseaudio libdrm mesa + stdenv.cc.cc alsa-lib atk at-spi2-atk at-spi2-core cairo cups dbus expat fontconfig freetype + gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid + libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender + libXtst nspr nss libxcb pango systemd libXScrnSaver + libappindicator-gtk3 libdbusmenu + ]; + + installPhase = '' + mkdir -p $out/{bin,opt/${binaryName},share/pixmaps} + mv * $out/opt/${binaryName} + + chmod +x $out/opt/${binaryName}/${binaryName} + patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ + $out/opt/${binaryName}/${binaryName} + + wrapProgram $out/opt/${binaryName}/${binaryName} \ + "''${gappsWrapperArgs[@]}" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName} + + ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ + # Without || true the install would fail on case-insensitive filesystems + ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${lib.strings.toLower binaryName} || true + ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png + + ln -s "${desktopItem}/share/applications" $out/share/ + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = binaryName; + icon = pname; + inherit desktopName; + genericName = meta.description; + categories = "Network;InstantMessaging;"; + mimeType = "x-scheme-handler/discord"; + }; + + passthru.updateScript = ./update-discord.sh; + + meta = with lib; { + description = "All-in-one cross-platform voice and text chat for gamers"; + homepage = "https://discordapp.com/"; + downloadPage = "https://discordapp.com/download"; + license = licenses.unfree; + maintainers = with maintainers; [ ldesgoui MP2E ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix new file mode 100644 index 000000000000..f7435aa3ae3b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -0,0 +1,36 @@ +{ branch ? "stable", pkgs }: +# Generated by ./update-discord.sh +let + inherit (pkgs) callPackage fetchurl; +in { + stable = callPackage ./base.nix rec { + pname = "discord"; + binaryName = "Discord"; + desktopName = "Discord"; + version = "0.0.15"; + src = fetchurl { + url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; + sha256 = "0pn2qczim79hqk2limgh88fsn93sa8wvana74mpdk5n6x5afkvdd"; + }; + }; + ptb = callPackage ./base.nix rec { + pname = "discord-ptb"; + binaryName = "DiscordPTB"; + desktopName = "Discord PTB"; + version = "0.0.25"; + src = fetchurl { + url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; + sha256 = "082ygmsycicddpkv5s03vw3rjkrk4lgprq29z8b1hdjifvw93b21"; + }; + }; + canary = callPackage ./base.nix rec { + pname = "discord-canary"; + binaryName = "DiscordCanary"; + desktopName = "Discord Canary"; + version = "0.0.125"; + src = fetchurl { + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; + sha256 = "0ly5a6l7rvl54mc39xma14jrcrf11q3ndnkkr16by5hy3palmz9g"; + }; + }; +}.${branch} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh new file mode 100755 index 000000000000..34c1574c65aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/update-discord.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# script to generate ./default.nix + +set -e +exec >"${BASH_SOURCE%/*}/default.nix" + +cat <<EOF +{ branch ? "stable", pkgs }: +# Generated by ./update-discord.sh +let + inherit (pkgs) callPackage fetchurl; +in { +EOF + +for branch in "" ptb canary; do + url=$(curl -sI "https://discordapp.com/api/download${branch:+/}${branch}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+') + version=${url##https://dl*.discordapp.net/apps/linux/} + version=${version%%/*.tar.gz} + echo " ${branch:-stable} = callPackage ./base.nix rec {" + echo " pname = \"discord${branch:+-}${branch}\";" + case $branch in + "") suffix="" ;; + ptb) suffix="PTB" ;; + canary) suffix="Canary" ;; + esac + echo " binaryName = \"Discord${suffix}\";" + echo " desktopName = \"Discord${suffix:+ }${suffix}\";" + echo " version = \"${version}\";" + echo " src = fetchurl {" + echo " url = \"${url//${version}/\$\{version\}}\";" + echo " sha256 = \"$(nix-prefetch-url "$url")\";" + echo " };" + echo " };" +done + +echo "}.\${branch}" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json new file mode 100644 index 000000000000..063c64fa377e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json @@ -0,0 +1,119 @@ +{ + "name": "element-desktop", + "productName": "Element", + "main": "src/electron-main.js", + "version": "1.7.31", + "description": "A feature-rich client for Matrix.org", + "author": "Element", + "repository": { + "type": "git", + "url": "https://github.com/vector-im/element-desktop" + }, + "license": "Apache-2.0", + "files": [], + "scripts": { + "i18n": "matrix-gen-i18n", + "prunei18n": "matrix-prune-i18n", + "diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json", + "mkdirs": "mkdirp packages deploys", + "fetch": "yarn run mkdirs && node scripts/fetch-package.js", + "asar-webapp": "asar p webapp webapp.asar", + "start": "electron .", + "lint": "eslint src/ scripts/ hak/", + "build:native": "yarn run hak", + "build32": "electron-builder --ia32", + "build64": "electron-builder --x64", + "build": "electron-builder", + "docker:setup": "docker build -t element-desktop-dockerbuild dockerbuild", + "docker:build:native": "scripts/in-docker.sh yarn run hak", + "docker:build": "scripts/in-docker.sh yarn run build", + "docker:install": "scripts/in-docker.sh yarn install", + "debrepo": "scripts/mkrepo.sh", + "clean": "rimraf webapp.asar dist packages deploys", + "hak": "node scripts/hak/index.js" + }, + "dependencies": { + "auto-launch": "^5.0.5", + "counterpart": "^0.18.6", + "electron-store": "^6.0.1", + "electron-window-state": "^5.0.3", + "minimist": "^1.2.3", + "png-to-ico": "^2.1.1", + "request": "^2.88.2" + }, + "devDependencies": { + "asar": "^2.0.1", + "electron-builder": "22.11.4", + "electron-builder-squirrel-windows": "22.11.4", + "electron-devtools-installer": "^3.1.1", + "electron-notarize": "^1.0.0", + "eslint": "7.18.0", + "eslint-config-google": "^0.14.0", + "eslint-plugin-matrix-org": "github:matrix-org/eslint-plugin-matrix-org#main", + "find-npm-prefix": "^1.0.2", + "fs-extra": "^8.1.0", + "glob": "^7.1.6", + "matrix-web-i18n": "github:matrix-org/matrix-web-i18n", + "mkdirp": "^1.0.3", + "needle": "^2.5.0", + "node-pre-gyp": "^0.15.0", + "npm": "^6.14.11", + "rimraf": "^3.0.2", + "semver": "^7.3.4", + "tar": "^6.1.0" + }, + "hakDependencies": { + "matrix-seshat": "^2.2.3", + "keytar": "^5.6.0" + }, + "build": { + "appId": "im.riot.app", + "electronVersion": "12.0.11", + "files": [ + "package.json", + { + "from": ".hak/hakModules", + "to": "node_modules" + }, + "src/**" + ], + "extraResources": [ + { + "from": "res/img", + "to": "img" + }, + "webapp.asar" + ], + "linux": { + "target": "deb", + "category": "Network;InstantMessaging;Chat", + "maintainer": "support@element.io", + "desktop": { + "StartupWMClass": "element" + } + }, + "mac": { + "category": "public.app-category.social-networking", + "darkModeSupport": true + }, + "win": { + "target": { + "target": "squirrel" + }, + "sign": "scripts/electron_winSign" + }, + "directories": { + "output": "dist" + }, + "afterPack": "scripts/electron_afterPack", + "afterSign": "scripts/electron_afterSign", + "protocols": [ + { + "name": "element", + "schemes": [ + "element" + ] + } + ] + } +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix new file mode 100644 index 000000000000..733cfa3a11a4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix @@ -0,0 +1,6621 @@ +{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec { + offline_cache = linkFarm "offline" packages; + packages = [ + { + name = "7zip_bin___7zip_bin_5.1.1.tgz"; + path = fetchurl { + name = "7zip_bin___7zip_bin_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz"; + sha1 = "9274ec7460652f9c632c59addf24efb1684ef876"; + }; + } + { + name = "_babel_code_frame___code_frame_7.5.5.tgz"; + path = fetchurl { + name = "_babel_code_frame___code_frame_7.5.5.tgz"; + url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz"; + sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d"; + }; + } + { + name = "_babel_code_frame___code_frame_7.12.13.tgz"; + path = fetchurl { + name = "_babel_code_frame___code_frame_7.12.13.tgz"; + url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz"; + sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658"; + }; + } + { + name = "_babel_generator___generator_7.13.16.tgz"; + path = fetchurl { + name = "_babel_generator___generator_7.13.16.tgz"; + url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz"; + sha1 = "0befc287031a201d84cdfc173b46b320ae472d14"; + }; + } + { + name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz"; + path = fetchurl { + name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz"; + sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"; + }; + } + { + name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz"; + path = fetchurl { + name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz"; + sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583"; + }; + } + { + name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz"; + path = fetchurl { + name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz"; + sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05"; + }; + } + { + name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz"; + path = fetchurl { + name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz"; + url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz"; + sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed"; + }; + } + { + name = "_babel_highlight___highlight_7.5.0.tgz"; + path = fetchurl { + name = "_babel_highlight___highlight_7.5.0.tgz"; + url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz"; + sha1 = "56d11312bd9248fa619591d02472be6e8cb32540"; + }; + } + { + name = "_babel_highlight___highlight_7.13.10.tgz"; + path = fetchurl { + name = "_babel_highlight___highlight_7.13.10.tgz"; + url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz"; + sha1 = "a8b2a66148f5b27d666b15d81774347a731d52d1"; + }; + } + { + name = "_babel_parser___parser_7.13.16.tgz"; + path = fetchurl { + name = "_babel_parser___parser_7.13.16.tgz"; + url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz"; + sha1 = "0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37"; + }; + } + { + name = "_babel_runtime___runtime_7.11.2.tgz"; + path = fetchurl { + name = "_babel_runtime___runtime_7.11.2.tgz"; + url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz"; + sha1 = "f549c13c754cc40b87644b9fa9f09a6a95fe0736"; + }; + } + { + name = "_babel_template___template_7.12.13.tgz"; + path = fetchurl { + name = "_babel_template___template_7.12.13.tgz"; + url = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz"; + sha1 = "530265be8a2589dbb37523844c5bcb55947fb327"; + }; + } + { + name = "_babel_traverse___traverse_7.13.17.tgz"; + path = fetchurl { + name = "_babel_traverse___traverse_7.13.17.tgz"; + url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz"; + sha1 = "c85415e0c7d50ac053d758baec98b28b2ecfeea3"; + }; + } + { + name = "_babel_types___types_7.13.17.tgz"; + path = fetchurl { + name = "_babel_types___types_7.13.17.tgz"; + url = "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz"; + sha1 = "48010a115c9fba7588b4437dd68c9469012b38b4"; + }; + } + { + name = "_develar_schema_utils___schema_utils_2.6.5.tgz"; + path = fetchurl { + name = "_develar_schema_utils___schema_utils_2.6.5.tgz"; + url = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz"; + sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6"; + }; + } + { + name = "_electron_universal___universal_1.0.5.tgz"; + path = fetchurl { + name = "_electron_universal___universal_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz"; + sha1 = "b812340e4ef21da2b3ee77b2b4d35c9b86defe37"; + }; + } + { + name = "_eslint_eslintrc___eslintrc_0.3.0.tgz"; + path = fetchurl { + name = "_eslint_eslintrc___eslintrc_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz"; + sha1 = "d736d6963d7003b6514e6324bec9c602ac340318"; + }; + } + { + name = "_iarna_cli___cli_1.2.0.tgz"; + path = fetchurl { + name = "_iarna_cli___cli_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/@iarna/cli/-/cli-1.2.0.tgz"; + sha1 = "0f7af5e851afe895104583c4ca07377a8094d641"; + }; + } + { + name = "_jimp_bmp___bmp_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_bmp___bmp_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.1.tgz"; + sha1 = "6e2da655b2ba22e721df0795423f34e92ef13768"; + }; + } + { + name = "_jimp_core___core_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_core___core_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.1.tgz"; + sha1 = "68c4288f6ef7f31a0f6b859ba3fb28dae930d39d"; + }; + } + { + name = "_jimp_custom___custom_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_custom___custom_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.1.tgz"; + sha1 = "28b659c59e20a1d75a0c46067bd3f4bd302cf9c5"; + }; + } + { + name = "_jimp_gif___gif_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_gif___gif_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.1.tgz"; + sha1 = "d1f7c3a58f4666482750933af8b8f4666414f3ca"; + }; + } + { + name = "_jimp_jpeg___jpeg_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_jpeg___jpeg_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.1.tgz"; + sha1 = "3b7bb08a4173f2f6d81f3049b251df3ee2ac8175"; + }; + } + { + name = "_jimp_plugin_blit___plugin_blit_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_blit___plugin_blit_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz"; + sha1 = "09ea919f9d326de3b9c2826fe4155da37dde8edb"; + }; + } + { + name = "_jimp_plugin_blur___plugin_blur_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_blur___plugin_blur_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz"; + sha1 = "e614fa002797dcd662e705d4cea376e7db968bf5"; + }; + } + { + name = "_jimp_plugin_circle___plugin_circle_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_circle___plugin_circle_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz"; + sha1 = "20e3194a67ca29740aba2630fd4d0a89afa27491"; + }; + } + { + name = "_jimp_plugin_color___plugin_color_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_color___plugin_color_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.16.1.tgz"; + sha1 = "0f298ba74dee818b663834cd80d53e56f3755233"; + }; + } + { + name = "_jimp_plugin_contain___plugin_contain_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_contain___plugin_contain_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz"; + sha1 = "3c5f5c495fd9bb08a970739d83694934f58123f2"; + }; + } + { + name = "_jimp_plugin_cover___plugin_cover_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_cover___plugin_cover_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz"; + sha1 = "0e8caec16a40abe15b1b32e5383a603a3306dc41"; + }; + } + { + name = "_jimp_plugin_crop___plugin_crop_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_crop___plugin_crop_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz"; + sha1 = "b362497c873043fe47ba881ab08604bf7226f50f"; + }; + } + { + name = "_jimp_plugin_displace___plugin_displace_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_displace___plugin_displace_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz"; + sha1 = "4dd9db518c3e78de9d723f86a234bf98922afe8d"; + }; + } + { + name = "_jimp_plugin_dither___plugin_dither_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_dither___plugin_dither_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz"; + sha1 = "b47de2c0bb09608bed228b41c3cd01a85ec2d45b"; + }; + } + { + name = "_jimp_plugin_fisheye___plugin_fisheye_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_fisheye___plugin_fisheye_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz"; + sha1 = "f625047b6cdbe1b83b89e9030fd025ab19cdb1a4"; + }; + } + { + name = "_jimp_plugin_flip___plugin_flip_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_flip___plugin_flip_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz"; + sha1 = "7a99ea22bde802641017ed0f2615870c144329bb"; + }; + } + { + name = "_jimp_plugin_gaussian___plugin_gaussian_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_gaussian___plugin_gaussian_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz"; + sha1 = "0845e314085ccd52e34fad9a83949bc0d81a68e8"; + }; + } + { + name = "_jimp_plugin_invert___plugin_invert_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_invert___plugin_invert_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz"; + sha1 = "7e6f5a15707256f3778d06921675bbcf18545c97"; + }; + } + { + name = "_jimp_plugin_mask___plugin_mask_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_mask___plugin_mask_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz"; + sha1 = "e7f2460e05c3cda7af5e76f33ccb0579f66f90df"; + }; + } + { + name = "_jimp_plugin_normalize___plugin_normalize_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_normalize___plugin_normalize_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz"; + sha1 = "032dfd88eefbc4dedc8b1b2d243832e4f3af30c8"; + }; + } + { + name = "_jimp_plugin_print___plugin_print_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_print___plugin_print_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.16.1.tgz"; + sha1 = "66b803563f9d109825970714466e6ab9ae639ff6"; + }; + } + { + name = "_jimp_plugin_resize___plugin_resize_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_resize___plugin_resize_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz"; + sha1 = "65e39d848ed13ba2d6c6faf81d5d590396571d10"; + }; + } + { + name = "_jimp_plugin_rotate___plugin_rotate_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_rotate___plugin_rotate_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz"; + sha1 = "53fb5d51a4b3d05af9c91c2a8fffe5d7a1a47c8c"; + }; + } + { + name = "_jimp_plugin_scale___plugin_scale_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_scale___plugin_scale_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz"; + sha1 = "89f6ba59feed3429847ed226aebda33a240cc647"; + }; + } + { + name = "_jimp_plugin_shadow___plugin_shadow_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_shadow___plugin_shadow_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz"; + sha1 = "a7af892a740febf41211e10a5467c3c5c521a04c"; + }; + } + { + name = "_jimp_plugin_threshold___plugin_threshold_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugin_threshold___plugin_threshold_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz"; + sha1 = "34f3078f9965145b7ae26c53a32ad74b1195bbf5"; + }; + } + { + name = "_jimp_plugins___plugins_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_plugins___plugins_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.16.1.tgz"; + sha1 = "9f08544c97226d6460a16ced79f57e85bec3257b"; + }; + } + { + name = "_jimp_png___png_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_png___png_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.1.tgz"; + sha1 = "f24cfc31529900b13a2dd9d4fdb4460c1e4d814e"; + }; + } + { + name = "_jimp_tiff___tiff_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_tiff___tiff_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.1.tgz"; + sha1 = "0e8756695687d7574b6bc73efab0acd4260b7a12"; + }; + } + { + name = "_jimp_types___types_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_types___types_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.1.tgz"; + sha1 = "0dbab37b3202315c91010f16c31766d35a2322cc"; + }; + } + { + name = "_jimp_utils___utils_0.16.1.tgz"; + path = fetchurl { + name = "_jimp_utils___utils_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.1.tgz"; + sha1 = "2f51e6f14ff8307c4aa83d5e1a277da14a9fe3f7"; + }; + } + { + name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz"; + path = fetchurl { + name = "_malept_cross_spawn_promise___cross_spawn_promise_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz"; + sha1 = "504af200af6b98e198bce768bc1730c6936ae01d"; + }; + } + { + name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz"; + path = fetchurl { + name = "_malept_flatpak_bundler___flatpak_bundler_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz"; + sha1 = "e8a32c30a95d20c2b1bb635cc580981a06389858"; + }; + } + { + name = "_sindresorhus_is___is_0.14.0.tgz"; + path = fetchurl { + name = "_sindresorhus_is___is_0.14.0.tgz"; + url = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz"; + sha1 = "9fb3a3cf3132328151f353de4632e01e52102bea"; + }; + } + { + name = "_szmarczak_http_timer___http_timer_1.1.2.tgz"; + path = fetchurl { + name = "_szmarczak_http_timer___http_timer_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz"; + sha1 = "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"; + }; + } + { + name = "_types_color_name___color_name_1.1.1.tgz"; + path = fetchurl { + name = "_types_color_name___color_name_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz"; + sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"; + }; + } + { + name = "_types_debug___debug_4.1.5.tgz"; + path = fetchurl { + name = "_types_debug___debug_4.1.5.tgz"; + url = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz"; + sha1 = "b14efa8852b7768d898906613c23f688713e02cd"; + }; + } + { + name = "_types_fs_extra___fs_extra_9.0.11.tgz"; + path = fetchurl { + name = "_types_fs_extra___fs_extra_9.0.11.tgz"; + url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz"; + sha1 = "8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87"; + }; + } + { + name = "_types_glob___glob_7.1.3.tgz"; + path = fetchurl { + name = "_types_glob___glob_7.1.3.tgz"; + url = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz"; + sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183"; + }; + } + { + name = "_types_minimatch___minimatch_3.0.4.tgz"; + path = fetchurl { + name = "_types_minimatch___minimatch_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz"; + sha1 = "f0ec25dbf2f0e4b18647313ac031134ca5b24b21"; + }; + } + { + name = "_types_node___node_13.7.1.tgz"; + path = fetchurl { + name = "_types_node___node_13.7.1.tgz"; + url = "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz"; + sha1 = "238eb34a66431b71d2aaddeaa7db166f25971a0d"; + }; + } + { + name = "_types_node___node_14.14.21.tgz"; + path = fetchurl { + name = "_types_node___node_14.14.21.tgz"; + url = "https://registry.yarnpkg.com/@types/node/-/node-14.14.21.tgz"; + sha1 = "d934aacc22424fe9622ebf6857370c052eae464e"; + }; + } + { + name = "_types_plist___plist_3.0.2.tgz"; + path = fetchurl { + name = "_types_plist___plist_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz"; + sha1 = "61b3727bba0f5c462fe333542534a0c3e19ccb01"; + }; + } + { + name = "_types_verror___verror_1.10.4.tgz"; + path = fetchurl { + name = "_types_verror___verror_1.10.4.tgz"; + url = "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.4.tgz"; + sha1 = "805c0612b3a0c124cf99f517364142946b74ba3b"; + }; + } + { + name = "_types_yargs_parser___yargs_parser_15.0.0.tgz"; + path = fetchurl { + name = "_types_yargs_parser___yargs_parser_15.0.0.tgz"; + url = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz"; + sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d"; + }; + } + { + name = "_types_yargs___yargs_16.0.3.tgz"; + path = fetchurl { + name = "_types_yargs___yargs_16.0.3.tgz"; + url = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.3.tgz"; + sha1 = "4b6d35bb8e680510a7dc2308518a80ee1ef27e01"; + }; + } + { + name = "JSONStream___JSONStream_1.3.5.tgz"; + path = fetchurl { + name = "JSONStream___JSONStream_1.3.5.tgz"; + url = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz"; + sha1 = "3208c1f08d3a4d99261ab64f92302bc15e111ca0"; + }; + } + { + name = "abbrev___abbrev_1.1.1.tgz"; + path = fetchurl { + name = "abbrev___abbrev_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz"; + sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8"; + }; + } + { + name = "acorn_jsx___acorn_jsx_5.3.1.tgz"; + path = fetchurl { + name = "acorn_jsx___acorn_jsx_5.3.1.tgz"; + url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz"; + sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b"; + }; + } + { + name = "acorn___acorn_7.4.1.tgz"; + path = fetchurl { + name = "acorn___acorn_7.4.1.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz"; + sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa"; + }; + } + { + name = "agent_base___agent_base_4.3.0.tgz"; + path = fetchurl { + name = "agent_base___agent_base_4.3.0.tgz"; + url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz"; + sha1 = "8165f01c436009bccad0b1d122f05ed770efc6ee"; + }; + } + { + name = "agent_base___agent_base_4.2.1.tgz"; + path = fetchurl { + name = "agent_base___agent_base_4.2.1.tgz"; + url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz"; + sha1 = "d89e5999f797875674c07d87f260fc41e83e8ca9"; + }; + } + { + name = "agentkeepalive___agentkeepalive_3.5.2.tgz"; + path = fetchurl { + name = "agentkeepalive___agentkeepalive_3.5.2.tgz"; + url = "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz"; + sha1 = "a113924dd3fa24a0bc3b78108c450c2abee00f67"; + }; + } + { + name = "ajv_keywords___ajv_keywords_3.4.1.tgz"; + path = fetchurl { + name = "ajv_keywords___ajv_keywords_3.4.1.tgz"; + url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz"; + sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da"; + }; + } + { + name = "ajv___ajv_6.12.3.tgz"; + path = fetchurl { + name = "ajv___ajv_6.12.3.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz"; + sha1 = "18c5af38a111ddeb4f2697bd78d68abc1cabd706"; + }; + } + { + name = "ajv___ajv_6.12.2.tgz"; + path = fetchurl { + name = "ajv___ajv_6.12.2.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz"; + sha1 = "c629c5eced17baf314437918d2da88c99d5958cd"; + }; + } + { + name = "ajv___ajv_6.12.6.tgz"; + path = fetchurl { + name = "ajv___ajv_6.12.6.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz"; + sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4"; + }; + } + { + name = "ajv___ajv_6.12.5.tgz"; + path = fetchurl { + name = "ajv___ajv_6.12.5.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz"; + sha1 = "19b0e8bae8f476e5ba666300387775fb1a00a4da"; + }; + } + { + name = "ajv___ajv_6.10.2.tgz"; + path = fetchurl { + name = "ajv___ajv_6.10.2.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz"; + sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52"; + }; + } + { + name = "ajv___ajv_8.5.0.tgz"; + path = fetchurl { + name = "ajv___ajv_8.5.0.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz"; + sha1 = "695528274bcb5afc865446aa275484049a18ae4b"; + }; + } + { + name = "ansi_align___ansi_align_2.0.0.tgz"; + path = fetchurl { + name = "ansi_align___ansi_align_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz"; + sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f"; + }; + } + { + name = "ansi_align___ansi_align_3.0.0.tgz"; + path = fetchurl { + name = "ansi_align___ansi_align_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz"; + sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb"; + }; + } + { + name = "ansi_colors___ansi_colors_4.1.1.tgz"; + path = fetchurl { + name = "ansi_colors___ansi_colors_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz"; + sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348"; + }; + } + { + name = "ansi_regex___ansi_regex_2.1.1.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + } + { + name = "ansi_regex___ansi_regex_3.0.0.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz"; + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; + }; + } + { + name = "ansi_regex___ansi_regex_4.1.0.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz"; + sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997"; + }; + } + { + name = "ansi_regex___ansi_regex_5.0.0.tgz"; + path = fetchurl { + name = "ansi_regex___ansi_regex_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz"; + sha1 = "388539f55179bf39339c81af30a654d69f87cb75"; + }; + } + { + name = "ansi_styles___ansi_styles_3.2.1.tgz"; + path = fetchurl { + name = "ansi_styles___ansi_styles_3.2.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d"; + }; + } + { + name = "ansi_styles___ansi_styles_4.2.1.tgz"; + path = fetchurl { + name = "ansi_styles___ansi_styles_4.2.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz"; + sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359"; + }; + } + { + name = "ansicolors___ansicolors_0.3.2.tgz"; + path = fetchurl { + name = "ansicolors___ansicolors_0.3.2.tgz"; + url = "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz"; + sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"; + }; + } + { + name = "ansistyles___ansistyles_0.1.3.tgz"; + path = fetchurl { + name = "ansistyles___ansistyles_0.1.3.tgz"; + url = "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz"; + sha1 = "5de60415bda071bb37127854c864f41b23254539"; + }; + } + { + name = "any_base___any_base_1.1.0.tgz"; + path = fetchurl { + name = "any_base___any_base_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz"; + sha1 = "ae101a62bc08a597b4c9ab5b7089d456630549fe"; + }; + } + { + name = "app_builder_bin___app_builder_bin_3.5.13.tgz"; + path = fetchurl { + name = "app_builder_bin___app_builder_bin_3.5.13.tgz"; + url = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz"; + sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e"; + }; + } + { + name = "app_builder_lib___app_builder_lib_22.11.4.tgz"; + path = fetchurl { + name = "app_builder_lib___app_builder_lib_22.11.4.tgz"; + url = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.4.tgz"; + sha1 = "f476e8f1c843d2bcce0348d60e2deae3a71b3474"; + }; + } + { + name = "applescript___applescript_1.0.0.tgz"; + path = fetchurl { + name = "applescript___applescript_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz"; + sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317"; + }; + } + { + name = "aproba___aproba_1.2.0.tgz"; + path = fetchurl { + name = "aproba___aproba_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz"; + sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a"; + }; + } + { + name = "aproba___aproba_2.0.0.tgz"; + path = fetchurl { + name = "aproba___aproba_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz"; + sha1 = "52520b8ae5b569215b354efc0caa3fe1e45a8adc"; + }; + } + { + name = "archiver_utils___archiver_utils_2.1.0.tgz"; + path = fetchurl { + name = "archiver_utils___archiver_utils_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz"; + sha1 = "e8a460e94b693c3e3da182a098ca6285ba9249e2"; + }; + } + { + name = "archiver___archiver_5.3.0.tgz"; + path = fetchurl { + name = "archiver___archiver_5.3.0.tgz"; + url = "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz"; + sha1 = "dd3e097624481741df626267564f7dd8640a45ba"; + }; + } + { + name = "archy___archy_1.0.0.tgz"; + path = fetchurl { + name = "archy___archy_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz"; + sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"; + }; + } + { + name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz"; + path = fetchurl { + name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz"; + url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21"; + }; + } + { + name = "argparse___argparse_1.0.10.tgz"; + path = fetchurl { + name = "argparse___argparse_1.0.10.tgz"; + url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz"; + sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911"; + }; + } + { + name = "argparse___argparse_2.0.1.tgz"; + path = fetchurl { + name = "argparse___argparse_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz"; + sha1 = "246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"; + }; + } + { + name = "asap___asap_2.0.6.tgz"; + path = fetchurl { + name = "asap___asap_2.0.6.tgz"; + url = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz"; + sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46"; + }; + } + { + name = "asar___asar_2.0.1.tgz"; + path = fetchurl { + name = "asar___asar_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/asar/-/asar-2.0.1.tgz"; + sha1 = "8518a1c62c238109c15a5f742213e83a09b9fd38"; + }; + } + { + name = "asar___asar_3.0.3.tgz"; + path = fetchurl { + name = "asar___asar_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz"; + sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b"; + }; + } + { + name = "asn1___asn1_0.2.4.tgz"; + path = fetchurl { + name = "asn1___asn1_0.2.4.tgz"; + url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz"; + sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136"; + }; + } + { + name = "assert_plus___assert_plus_1.0.0.tgz"; + path = fetchurl { + name = "assert_plus___assert_plus_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + } + { + name = "astral_regex___astral_regex_2.0.0.tgz"; + path = fetchurl { + name = "astral_regex___astral_regex_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz"; + sha1 = "483143c567aeed4785759c0865786dc77d7d2e31"; + }; + } + { + name = "async_exit_hook___async_exit_hook_2.0.1.tgz"; + path = fetchurl { + name = "async_exit_hook___async_exit_hook_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz"; + sha1 = "8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3"; + }; + } + { + name = "async___async_0.9.2.tgz"; + path = fetchurl { + name = "async___async_0.9.2.tgz"; + url = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz"; + sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d"; + }; + } + { + name = "async___async_3.2.0.tgz"; + path = fetchurl { + name = "async___async_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz"; + sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720"; + }; + } + { + name = "asynckit___asynckit_0.4.0.tgz"; + path = fetchurl { + name = "asynckit___asynckit_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + } + { + name = "at_least_node___at_least_node_1.0.0.tgz"; + path = fetchurl { + name = "at_least_node___at_least_node_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz"; + sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2"; + }; + } + { + name = "atomically___atomically_1.7.0.tgz"; + path = fetchurl { + name = "atomically___atomically_1.7.0.tgz"; + url = "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz"; + sha1 = "c07a0458432ea6dbc9a3506fffa424b48bccaafe"; + }; + } + { + name = "auto_launch___auto_launch_5.0.5.tgz"; + path = fetchurl { + name = "auto_launch___auto_launch_5.0.5.tgz"; + url = "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz"; + sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0"; + }; + } + { + name = "aws_sign2___aws_sign2_0.7.0.tgz"; + path = fetchurl { + name = "aws_sign2___aws_sign2_0.7.0.tgz"; + url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + } + { + name = "aws4___aws4_1.9.0.tgz"; + path = fetchurl { + name = "aws4___aws4_1.9.0.tgz"; + url = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz"; + sha1 = "24390e6ad61386b0a747265754d2a17219de862c"; + }; + } + { + name = "balanced_match___balanced_match_1.0.2.tgz"; + path = fetchurl { + name = "balanced_match___balanced_match_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz"; + sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"; + }; + } + { + name = "base64_js___base64_js_1.3.1.tgz"; + path = fetchurl { + name = "base64_js___base64_js_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz"; + sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"; + }; + } + { + name = "base64_js___base64_js_1.5.1.tgz"; + path = fetchurl { + name = "base64_js___base64_js_1.5.1.tgz"; + url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz"; + sha1 = "1b1b440160a5bf7ad40b650f095963481903930a"; + }; + } + { + name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; + path = fetchurl { + name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + } + { + name = "bin_links___bin_links_1.1.7.tgz"; + path = fetchurl { + name = "bin_links___bin_links_1.1.7.tgz"; + url = "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.7.tgz"; + sha1 = "34b79ea9d0e575d7308afeff0c6b2fc24c793359"; + }; + } + { + name = "bin_links___bin_links_1.1.8.tgz"; + path = fetchurl { + name = "bin_links___bin_links_1.1.8.tgz"; + url = "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.8.tgz"; + sha1 = "bd39aadab5dc4bdac222a07df5baf1af745b2228"; + }; + } + { + name = "bl___bl_4.0.3.tgz"; + path = fetchurl { + name = "bl___bl_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz"; + sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489"; + }; + } + { + name = "bluebird_lst___bluebird_lst_1.0.9.tgz"; + path = fetchurl { + name = "bluebird_lst___bluebird_lst_1.0.9.tgz"; + url = "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz"; + sha1 = "a64a0e4365658b9ab5fe875eb9dfb694189bb41c"; + }; + } + { + name = "bluebird___bluebird_3.7.2.tgz"; + path = fetchurl { + name = "bluebird___bluebird_3.7.2.tgz"; + url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz"; + sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f"; + }; + } + { + name = "bmp_js___bmp_js_0.1.0.tgz"; + path = fetchurl { + name = "bmp_js___bmp_js_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz"; + sha1 = "e05a63f796a6c1ff25f4771ec7adadc148c07233"; + }; + } + { + name = "boxen___boxen_1.3.0.tgz"; + path = fetchurl { + name = "boxen___boxen_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz"; + sha1 = "55c6c39a8ba58d9c61ad22cd877532deb665a20b"; + }; + } + { + name = "boxen___boxen_5.0.0.tgz"; + path = fetchurl { + name = "boxen___boxen_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.0.tgz"; + sha1 = "64fe9b16066af815f51057adcc800c3730120854"; + }; + } + { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + path = fetchurl { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd"; + }; + } + { + name = "buffer_crc32___buffer_crc32_0.2.13.tgz"; + path = fetchurl { + name = "buffer_crc32___buffer_crc32_0.2.13.tgz"; + url = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz"; + sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"; + }; + } + { + name = "buffer_equal___buffer_equal_0.0.1.tgz"; + path = fetchurl { + name = "buffer_equal___buffer_equal_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz"; + sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b"; + }; + } + { + name = "buffer_equal___buffer_equal_1.0.0.tgz"; + path = fetchurl { + name = "buffer_equal___buffer_equal_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz"; + sha1 = "59616b498304d556abd466966b22eeda3eca5fbe"; + }; + } + { + name = "buffer_from___buffer_from_1.1.1.tgz"; + path = fetchurl { + name = "buffer_from___buffer_from_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz"; + sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef"; + }; + } + { + name = "buffer___buffer_5.7.1.tgz"; + path = fetchurl { + name = "buffer___buffer_5.7.1.tgz"; + url = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz"; + sha1 = "ba62e7c13133053582197160851a8f648e99eed0"; + }; + } + { + name = "buffer___buffer_5.6.0.tgz"; + path = fetchurl { + name = "buffer___buffer_5.6.0.tgz"; + url = "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz"; + sha1 = "a31749dc7d81d84db08abf937b6b8c4033f62786"; + }; + } + { + name = "builder_util_runtime___builder_util_runtime_8.7.5.tgz"; + path = fetchurl { + name = "builder_util_runtime___builder_util_runtime_8.7.5.tgz"; + url = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.5.tgz"; + sha1 = "fbe59e274818885e0d2e358d5b7017c34ae6b0f5"; + }; + } + { + name = "builder_util___builder_util_22.11.4.tgz"; + path = fetchurl { + name = "builder_util___builder_util_22.11.4.tgz"; + url = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.4.tgz"; + sha1 = "5deee8e067d6e3248791977ce2928b98fe514342"; + }; + } + { + name = "builtins___builtins_1.0.3.tgz"; + path = fetchurl { + name = "builtins___builtins_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz"; + sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88"; + }; + } + { + name = "byline___byline_5.0.0.tgz"; + path = fetchurl { + name = "byline___byline_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz"; + sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1"; + }; + } + { + name = "byte_size___byte_size_5.0.1.tgz"; + path = fetchurl { + name = "byte_size___byte_size_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz"; + sha1 = "4b651039a5ecd96767e71a3d7ed380e48bed4191"; + }; + } + { + name = "cacache___cacache_12.0.4.tgz"; + path = fetchurl { + name = "cacache___cacache_12.0.4.tgz"; + url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz"; + sha1 = "668bcbd105aeb5f1d92fe25570ec9525c8faa40c"; + }; + } + { + name = "cacache___cacache_12.0.3.tgz"; + path = fetchurl { + name = "cacache___cacache_12.0.3.tgz"; + url = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz"; + sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390"; + }; + } + { + name = "cacheable_request___cacheable_request_6.1.0.tgz"; + path = fetchurl { + name = "cacheable_request___cacheable_request_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz"; + sha1 = "20ffb8bd162ba4be11e9567d823db651052ca912"; + }; + } + { + name = "call_limit___call_limit_1.1.1.tgz"; + path = fetchurl { + name = "call_limit___call_limit_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.1.tgz"; + sha1 = "ef15f2670db3f1992557e2d965abc459e6e358d4"; + }; + } + { + name = "callsites___callsites_3.1.0.tgz"; + path = fetchurl { + name = "callsites___callsites_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz"; + sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73"; + }; + } + { + name = "camelcase___camelcase_4.1.0.tgz"; + path = fetchurl { + name = "camelcase___camelcase_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz"; + sha1 = "d545635be1e33c542649c69173e5de6acfae34dd"; + }; + } + { + name = "camelcase___camelcase_5.3.1.tgz"; + path = fetchurl { + name = "camelcase___camelcase_5.3.1.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz"; + sha1 = "e3c9b31569e106811df242f715725a1f4c494320"; + }; + } + { + name = "camelcase___camelcase_6.2.0.tgz"; + path = fetchurl { + name = "camelcase___camelcase_6.2.0.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz"; + sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809"; + }; + } + { + name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz"; + path = fetchurl { + name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz"; + sha1 = "a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"; + }; + } + { + name = "caseless___caseless_0.12.0.tgz"; + path = fetchurl { + name = "caseless___caseless_0.12.0.tgz"; + url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + } + { + name = "chalk___chalk_2.4.2.tgz"; + path = fetchurl { + name = "chalk___chalk_2.4.2.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz"; + sha1 = "cd42541677a54333cf541a49108c1432b44c9424"; + }; + } + { + name = "chalk___chalk_4.1.0.tgz"; + path = fetchurl { + name = "chalk___chalk_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz"; + sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a"; + }; + } + { + name = "chalk___chalk_4.1.1.tgz"; + path = fetchurl { + name = "chalk___chalk_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz"; + sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad"; + }; + } + { + name = "chownr___chownr_1.1.4.tgz"; + path = fetchurl { + name = "chownr___chownr_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz"; + sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b"; + }; + } + { + name = "chownr___chownr_2.0.0.tgz"; + path = fetchurl { + name = "chownr___chownr_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz"; + sha1 = "15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"; + }; + } + { + name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz"; + path = fetchurl { + name = "chromium_pickle_js___chromium_pickle_js_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz"; + sha1 = "04a106672c18b085ab774d983dfa3ea138f22205"; + }; + } + { + name = "ci_info___ci_info_1.6.0.tgz"; + path = fetchurl { + name = "ci_info___ci_info_1.6.0.tgz"; + url = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz"; + sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497"; + }; + } + { + name = "ci_info___ci_info_2.0.0.tgz"; + path = fetchurl { + name = "ci_info___ci_info_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz"; + sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46"; + }; + } + { + name = "ci_info___ci_info_3.2.0.tgz"; + path = fetchurl { + name = "ci_info___ci_info_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz"; + sha1 = "2876cb948a498797b5236f0095bc057d0dca38b6"; + }; + } + { + name = "cidr_regex___cidr_regex_2.0.10.tgz"; + path = fetchurl { + name = "cidr_regex___cidr_regex_2.0.10.tgz"; + url = "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz"; + sha1 = "af13878bd4ad704de77d6dc800799358b3afa70d"; + }; + } + { + name = "cli_boxes___cli_boxes_1.0.0.tgz"; + path = fetchurl { + name = "cli_boxes___cli_boxes_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz"; + sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143"; + }; + } + { + name = "cli_boxes___cli_boxes_2.2.1.tgz"; + path = fetchurl { + name = "cli_boxes___cli_boxes_2.2.1.tgz"; + url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz"; + sha1 = "ddd5035d25094fce220e9cab40a45840a440318f"; + }; + } + { + name = "cli_columns___cli_columns_3.1.2.tgz"; + path = fetchurl { + name = "cli_columns___cli_columns_3.1.2.tgz"; + url = "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz"; + sha1 = "6732d972979efc2ae444a1f08e08fa139c96a18e"; + }; + } + { + name = "cli_table3___cli_table3_0.5.1.tgz"; + path = fetchurl { + name = "cli_table3___cli_table3_0.5.1.tgz"; + url = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz"; + sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202"; + }; + } + { + name = "cli_truncate___cli_truncate_1.1.0.tgz"; + path = fetchurl { + name = "cli_truncate___cli_truncate_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz"; + sha1 = "2b2dfd83c53cfd3572b87fc4d430a808afb04086"; + }; + } + { + name = "cliui___cliui_3.2.0.tgz"; + path = fetchurl { + name = "cliui___cliui_3.2.0.tgz"; + url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz"; + sha1 = "120601537a916d29940f934da3b48d585a39213d"; + }; + } + { + name = "cliui___cliui_5.0.0.tgz"; + path = fetchurl { + name = "cliui___cliui_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz"; + sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5"; + }; + } + { + name = "cliui___cliui_7.0.4.tgz"; + path = fetchurl { + name = "cliui___cliui_7.0.4.tgz"; + url = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz"; + sha1 = "a0265ee655476fc807aea9df3df8df7783808b4f"; + }; + } + { + name = "clone_response___clone_response_1.0.2.tgz"; + path = fetchurl { + name = "clone_response___clone_response_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz"; + sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b"; + }; + } + { + name = "clone___clone_1.0.4.tgz"; + path = fetchurl { + name = "clone___clone_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz"; + sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e"; + }; + } + { + name = "cmd_shim___cmd_shim_3.0.3.tgz"; + path = fetchurl { + name = "cmd_shim___cmd_shim_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-3.0.3.tgz"; + sha1 = "2c35238d3df37d98ecdd7d5f6b8dc6b21cadc7cb"; + }; + } + { + name = "code_point_at___code_point_at_1.1.0.tgz"; + path = fetchurl { + name = "code_point_at___code_point_at_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + } + { + name = "color_convert___color_convert_1.9.3.tgz"; + path = fetchurl { + name = "color_convert___color_convert_1.9.3.tgz"; + url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz"; + sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8"; + }; + } + { + name = "color_convert___color_convert_2.0.1.tgz"; + path = fetchurl { + name = "color_convert___color_convert_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz"; + sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"; + }; + } + { + name = "color_name___color_name_1.1.3.tgz"; + path = fetchurl { + name = "color_name___color_name_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + } + { + name = "color_name___color_name_1.1.4.tgz"; + path = fetchurl { + name = "color_name___color_name_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz"; + sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2"; + }; + } + { + name = "colors___colors_1.0.3.tgz"; + path = fetchurl { + name = "colors___colors_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz"; + sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b"; + }; + } + { + name = "colors___colors_1.4.0.tgz"; + path = fetchurl { + name = "colors___colors_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz"; + sha1 = "c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"; + }; + } + { + name = "columnify___columnify_1.5.4.tgz"; + path = fetchurl { + name = "columnify___columnify_1.5.4.tgz"; + url = "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz"; + sha1 = "4737ddf1c7b69a8a7c340570782e947eec8e78bb"; + }; + } + { + name = "combined_stream___combined_stream_1.0.8.tgz"; + path = fetchurl { + name = "combined_stream___combined_stream_1.0.8.tgz"; + url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz"; + sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f"; + }; + } + { + name = "commander___commander_2.9.0.tgz"; + path = fetchurl { + name = "commander___commander_2.9.0.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz"; + sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4"; + }; + } + { + name = "commander___commander_2.20.3.tgz"; + path = fetchurl { + name = "commander___commander_2.20.3.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz"; + sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33"; + }; + } + { + name = "commander___commander_5.1.0.tgz"; + path = fetchurl { + name = "commander___commander_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz"; + sha1 = "46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"; + }; + } + { + name = "compress_commons___compress_commons_4.1.0.tgz"; + path = fetchurl { + name = "compress_commons___compress_commons_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.0.tgz"; + sha1 = "25ec7a4528852ccd1d441a7d4353cd0ece11371b"; + }; + } + { + name = "concat_map___concat_map_0.0.1.tgz"; + path = fetchurl { + name = "concat_map___concat_map_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + } + { + name = "concat_stream___concat_stream_1.6.2.tgz"; + path = fetchurl { + name = "concat_stream___concat_stream_1.6.2.tgz"; + url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz"; + sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"; + }; + } + { + name = "conf___conf_7.1.2.tgz"; + path = fetchurl { + name = "conf___conf_7.1.2.tgz"; + url = "https://registry.yarnpkg.com/conf/-/conf-7.1.2.tgz"; + sha1 = "d9678a9d8f04de8bf5cd475105da8fdae49c2ec4"; + }; + } + { + name = "config_chain___config_chain_1.1.12.tgz"; + path = fetchurl { + name = "config_chain___config_chain_1.1.12.tgz"; + url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz"; + sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa"; + }; + } + { + name = "configstore___configstore_3.1.2.tgz"; + path = fetchurl { + name = "configstore___configstore_3.1.2.tgz"; + url = "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz"; + sha1 = "c6f25defaeef26df12dd33414b001fe81a543f8f"; + }; + } + { + name = "configstore___configstore_5.0.1.tgz"; + path = fetchurl { + name = "configstore___configstore_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz"; + sha1 = "d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"; + }; + } + { + name = "console_control_strings___console_control_strings_1.1.0.tgz"; + path = fetchurl { + name = "console_control_strings___console_control_strings_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + } + { + name = "copy_concurrently___copy_concurrently_1.0.5.tgz"; + path = fetchurl { + name = "copy_concurrently___copy_concurrently_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz"; + sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0"; + }; + } + { + name = "core_util_is___core_util_is_1.0.2.tgz"; + path = fetchurl { + name = "core_util_is___core_util_is_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + } + { + name = "counterpart___counterpart_0.18.6.tgz"; + path = fetchurl { + name = "counterpart___counterpart_0.18.6.tgz"; + url = "https://registry.yarnpkg.com/counterpart/-/counterpart-0.18.6.tgz"; + sha1 = "cf6b60d8ef99a4b44b8bf6445fa99b4bd1b2f9dd"; + }; + } + { + name = "crc_32___crc_32_1.2.0.tgz"; + path = fetchurl { + name = "crc_32___crc_32_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz"; + sha1 = "cb2db6e29b88508e32d9dd0ec1693e7b41a18208"; + }; + } + { + name = "crc32_stream___crc32_stream_4.0.1.tgz"; + path = fetchurl { + name = "crc32_stream___crc32_stream_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.1.tgz"; + sha1 = "0f047d74041737f8a55e86837a1b826bd8ab0067"; + }; + } + { + name = "crc___crc_3.8.0.tgz"; + path = fetchurl { + name = "crc___crc_3.8.0.tgz"; + url = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz"; + sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6"; + }; + } + { + name = "create_error_class___create_error_class_3.0.2.tgz"; + path = fetchurl { + name = "create_error_class___create_error_class_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz"; + sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6"; + }; + } + { + name = "cross_spawn___cross_spawn_5.1.0.tgz"; + path = fetchurl { + name = "cross_spawn___cross_spawn_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz"; + sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449"; + }; + } + { + name = "cross_spawn___cross_spawn_7.0.3.tgz"; + path = fetchurl { + name = "cross_spawn___cross_spawn_7.0.3.tgz"; + url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz"; + sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6"; + }; + } + { + name = "crypto_random_string___crypto_random_string_1.0.0.tgz"; + path = fetchurl { + name = "crypto_random_string___crypto_random_string_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz"; + sha1 = "a230f64f568310e1498009940790ec99545bca7e"; + }; + } + { + name = "crypto_random_string___crypto_random_string_2.0.0.tgz"; + path = fetchurl { + name = "crypto_random_string___crypto_random_string_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz"; + sha1 = "ef2a7a966ec11083388369baa02ebead229b30d5"; + }; + } + { + name = "cuint___cuint_0.2.2.tgz"; + path = fetchurl { + name = "cuint___cuint_0.2.2.tgz"; + url = "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz"; + sha1 = "408086d409550c2631155619e9fa7bcadc3b991b"; + }; + } + { + name = "cyclist___cyclist_1.0.1.tgz"; + path = fetchurl { + name = "cyclist___cyclist_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz"; + sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9"; + }; + } + { + name = "dashdash___dashdash_1.14.1.tgz"; + path = fetchurl { + name = "dashdash___dashdash_1.14.1.tgz"; + url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + } + { + name = "date_names___date_names_0.1.13.tgz"; + path = fetchurl { + name = "date_names___date_names_0.1.13.tgz"; + url = "https://registry.yarnpkg.com/date-names/-/date-names-0.1.13.tgz"; + sha1 = "c4358f6f77c8056e2f5ea68fdbb05f0bf1e53bd0"; + }; + } + { + name = "debounce_fn___debounce_fn_4.0.0.tgz"; + path = fetchurl { + name = "debounce_fn___debounce_fn_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz"; + sha1 = "ed76d206d8a50e60de0dd66d494d82835ffe61c7"; + }; + } + { + name = "debug___debug_3.1.0.tgz"; + path = fetchurl { + name = "debug___debug_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz"; + sha1 = "5bb5a0672628b64149566ba16819e61518c67261"; + }; + } + { + name = "debug___debug_3.2.7.tgz"; + path = fetchurl { + name = "debug___debug_3.2.7.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz"; + sha1 = "72580b7e9145fb39b6676f9c5e5fb100b934179a"; + }; + } + { + name = "debug___debug_3.2.6.tgz"; + path = fetchurl { + name = "debug___debug_3.2.6.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz"; + sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b"; + }; + } + { + name = "debug___debug_4.1.1.tgz"; + path = fetchurl { + name = "debug___debug_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz"; + sha1 = "3b72260255109c6b589cee050f1d516139664791"; + }; + } + { + name = "debug___debug_4.3.1.tgz"; + path = fetchurl { + name = "debug___debug_4.3.1.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz"; + sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"; + }; + } + { + name = "debug___debug_4.3.2.tgz"; + path = fetchurl { + name = "debug___debug_4.3.2.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz"; + sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b"; + }; + } + { + name = "debuglog___debuglog_1.0.1.tgz"; + path = fetchurl { + name = "debuglog___debuglog_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz"; + sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492"; + }; + } + { + name = "decamelize___decamelize_1.2.0.tgz"; + path = fetchurl { + name = "decamelize___decamelize_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz"; + sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; + }; + } + { + name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; + path = fetchurl { + name = "decode_uri_component___decode_uri_component_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz"; + sha1 = "eb3913333458775cb84cd1a1fae062106bb87545"; + }; + } + { + name = "decompress_response___decompress_response_3.3.0.tgz"; + path = fetchurl { + name = "decompress_response___decompress_response_3.3.0.tgz"; + url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz"; + sha1 = "80a4dd323748384bfa248083622aedec982adff3"; + }; + } + { + name = "deep_extend___deep_extend_0.6.0.tgz"; + path = fetchurl { + name = "deep_extend___deep_extend_0.6.0.tgz"; + url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz"; + sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac"; + }; + } + { + name = "deep_is___deep_is_0.1.3.tgz"; + path = fetchurl { + name = "deep_is___deep_is_0.1.3.tgz"; + url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz"; + sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; + }; + } + { + name = "defaults___defaults_1.0.3.tgz"; + path = fetchurl { + name = "defaults___defaults_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz"; + sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d"; + }; + } + { + name = "defer_to_connect___defer_to_connect_1.1.1.tgz"; + path = fetchurl { + name = "defer_to_connect___defer_to_connect_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz"; + sha1 = "88ae694b93f67b81815a2c8c769aef6574ac8f2f"; + }; + } + { + name = "define_properties___define_properties_1.1.3.tgz"; + path = fetchurl { + name = "define_properties___define_properties_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz"; + sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1"; + }; + } + { + name = "delayed_stream___delayed_stream_1.0.0.tgz"; + path = fetchurl { + name = "delayed_stream___delayed_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + } + { + name = "delegates___delegates_1.0.0.tgz"; + path = fetchurl { + name = "delegates___delegates_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + } + { + name = "detect_indent___detect_indent_5.0.0.tgz"; + path = fetchurl { + name = "detect_indent___detect_indent_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz"; + sha1 = "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"; + }; + } + { + name = "detect_libc___detect_libc_1.0.3.tgz"; + path = fetchurl { + name = "detect_libc___detect_libc_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + } + { + name = "detect_newline___detect_newline_2.1.0.tgz"; + path = fetchurl { + name = "detect_newline___detect_newline_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz"; + sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"; + }; + } + { + name = "dezalgo___dezalgo_1.0.3.tgz"; + path = fetchurl { + name = "dezalgo___dezalgo_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz"; + sha1 = "7f742de066fc748bc8db820569dddce49bf0d456"; + }; + } + { + name = "dir_compare___dir_compare_2.4.0.tgz"; + path = fetchurl { + name = "dir_compare___dir_compare_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/dir-compare/-/dir-compare-2.4.0.tgz"; + sha1 = "785c41dc5f645b34343a4eafc50b79bac7f11631"; + }; + } + { + name = "dmg_builder___dmg_builder_22.11.4.tgz"; + path = fetchurl { + name = "dmg_builder___dmg_builder_22.11.4.tgz"; + url = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.4.tgz"; + sha1 = "8e3a31bd835d51d3b686d1a6be6c0d08d3e7b1f4"; + }; + } + { + name = "dmg_license___dmg_license_1.0.9.tgz"; + path = fetchurl { + name = "dmg_license___dmg_license_1.0.9.tgz"; + url = "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.9.tgz"; + sha1 = "a2fb8d692af0e30b0730b5afc91ed9edc2d9cb4f"; + }; + } + { + name = "doctrine___doctrine_3.0.0.tgz"; + path = fetchurl { + name = "doctrine___doctrine_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz"; + sha1 = "addebead72a6574db783639dc87a121773973961"; + }; + } + { + name = "dom_walk___dom_walk_0.1.1.tgz"; + path = fetchurl { + name = "dom_walk___dom_walk_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz"; + sha1 = "672226dc74c8f799ad35307df936aba11acd6018"; + }; + } + { + name = "dot_prop___dot_prop_4.2.1.tgz"; + path = fetchurl { + name = "dot_prop___dot_prop_4.2.1.tgz"; + url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz"; + sha1 = "45884194a71fc2cda71cbb4bceb3a4dd2f433ba4"; + }; + } + { + name = "dot_prop___dot_prop_5.2.0.tgz"; + path = fetchurl { + name = "dot_prop___dot_prop_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz"; + sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"; + }; + } + { + name = "dotenv_expand___dotenv_expand_5.1.0.tgz"; + path = fetchurl { + name = "dotenv_expand___dotenv_expand_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz"; + sha1 = "3fbaf020bfd794884072ea26b1e9791d45a629f0"; + }; + } + { + name = "dotenv___dotenv_5.0.1.tgz"; + path = fetchurl { + name = "dotenv___dotenv_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz"; + sha1 = "a5317459bd3d79ab88cff6e44057a6a3fbb1fcef"; + }; + } + { + name = "dotenv___dotenv_9.0.2.tgz"; + path = fetchurl { + name = "dotenv___dotenv_9.0.2.tgz"; + url = "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz"; + sha1 = "dacc20160935a37dea6364aa1bef819fb9b6ab05"; + }; + } + { + name = "duplexer3___duplexer3_0.1.4.tgz"; + path = fetchurl { + name = "duplexer3___duplexer3_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz"; + sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"; + }; + } + { + name = "duplexify___duplexify_3.7.1.tgz"; + path = fetchurl { + name = "duplexify___duplexify_3.7.1.tgz"; + url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz"; + sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"; + }; + } + { + name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz"; + path = fetchurl { + name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + } + { + name = "editor___editor_1.0.0.tgz"; + path = fetchurl { + name = "editor___editor_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz"; + sha1 = "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742"; + }; + } + { + name = "ejs___ejs_3.1.6.tgz"; + path = fetchurl { + name = "ejs___ejs_3.1.6.tgz"; + url = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz"; + sha1 = "5bfd0a0689743bb5268b3550cceeebbc1702822a"; + }; + } + { + name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.11.4.tgz"; + path = fetchurl { + name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.11.4.tgz"; + url = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.11.4.tgz"; + sha1 = "6dc50a26396d813f58a4d8e5b90ee3cedb56f4d8"; + }; + } + { + name = "electron_builder___electron_builder_22.11.4.tgz"; + path = fetchurl { + name = "electron_builder___electron_builder_22.11.4.tgz"; + url = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.4.tgz"; + sha1 = "aadb57a4fc90863e82ebdbc66131400fc3bb4c82"; + }; + } + { + name = "electron_devtools_installer___electron_devtools_installer_3.1.1.tgz"; + path = fetchurl { + name = "electron_devtools_installer___electron_devtools_installer_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/electron-devtools-installer/-/electron-devtools-installer-3.1.1.tgz"; + sha1 = "7b56c8c86475c5e4e10de6917d150c53c9ceb55e"; + }; + } + { + name = "electron_notarize___electron_notarize_1.0.0.tgz"; + path = fetchurl { + name = "electron_notarize___electron_notarize_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.0.0.tgz"; + sha1 = "bc925b1ccc3f79e58e029e8c4706572b01a9fd8f"; + }; + } + { + name = "electron_publish___electron_publish_22.11.4.tgz"; + path = fetchurl { + name = "electron_publish___electron_publish_22.11.4.tgz"; + url = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.4.tgz"; + sha1 = "0f526edb7e0c3f0155103ff3b8a2e363a3a392f1"; + }; + } + { + name = "electron_store___electron_store_6.0.1.tgz"; + path = fetchurl { + name = "electron_store___electron_store_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/electron-store/-/electron-store-6.0.1.tgz"; + sha1 = "2178b9dc37aeb749d99cf9d1d1bc090890b922dc"; + }; + } + { + name = "electron_window_state___electron_window_state_5.0.3.tgz"; + path = fetchurl { + name = "electron_window_state___electron_window_state_5.0.3.tgz"; + url = "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-5.0.3.tgz"; + sha1 = "4f36d09e3f953d87aff103bf010f460056050aa8"; + }; + } + { + name = "emoji_regex___emoji_regex_7.0.3.tgz"; + path = fetchurl { + name = "emoji_regex___emoji_regex_7.0.3.tgz"; + url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz"; + sha1 = "933a04052860c85e83c122479c4748a8e4c72156"; + }; + } + { + name = "emoji_regex___emoji_regex_8.0.0.tgz"; + path = fetchurl { + name = "emoji_regex___emoji_regex_8.0.0.tgz"; + url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz"; + sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37"; + }; + } + { + name = "encoding___encoding_0.1.13.tgz"; + path = fetchurl { + name = "encoding___encoding_0.1.13.tgz"; + url = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz"; + sha1 = "56574afdd791f54a8e9b2785c0582a2d26210fa9"; + }; + } + { + name = "end_of_stream___end_of_stream_1.4.4.tgz"; + path = fetchurl { + name = "end_of_stream___end_of_stream_1.4.4.tgz"; + url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"; + }; + } + { + name = "enquirer___enquirer_2.3.6.tgz"; + path = fetchurl { + name = "enquirer___enquirer_2.3.6.tgz"; + url = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz"; + sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d"; + }; + } + { + name = "env_paths___env_paths_2.2.0.tgz"; + path = fetchurl { + name = "env_paths___env_paths_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz"; + sha1 = "cdca557dc009152917d6166e2febe1f039685e43"; + }; + } + { + name = "err_code___err_code_1.1.2.tgz"; + path = fetchurl { + name = "err_code___err_code_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz"; + sha1 = "06e0116d3028f6aef4806849eb0ea6a748ae6960"; + }; + } + { + name = "errno___errno_0.1.7.tgz"; + path = fetchurl { + name = "errno___errno_0.1.7.tgz"; + url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz"; + sha1 = "4684d71779ad39af177e3f007996f7c67c852618"; + }; + } + { + name = "error_ex___error_ex_1.3.2.tgz"; + path = fetchurl { + name = "error_ex___error_ex_1.3.2.tgz"; + url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz"; + sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf"; + }; + } + { + name = "es_abstract___es_abstract_1.16.3.tgz"; + path = fetchurl { + name = "es_abstract___es_abstract_1.16.3.tgz"; + url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.3.tgz"; + sha1 = "52490d978f96ff9f89ec15b5cf244304a5bca161"; + }; + } + { + name = "es_to_primitive___es_to_primitive_1.2.1.tgz"; + path = fetchurl { + name = "es_to_primitive___es_to_primitive_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; + sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a"; + }; + } + { + name = "es6_promise___es6_promise_4.2.8.tgz"; + path = fetchurl { + name = "es6_promise___es6_promise_4.2.8.tgz"; + url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz"; + sha1 = "4eb21594c972bc40553d276e510539143db53e0a"; + }; + } + { + name = "es6_promisify___es6_promisify_5.0.0.tgz"; + path = fetchurl { + name = "es6_promisify___es6_promisify_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz"; + sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203"; + }; + } + { + name = "escalade___escalade_3.1.1.tgz"; + path = fetchurl { + name = "escalade___escalade_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz"; + sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40"; + }; + } + { + name = "escape_goat___escape_goat_2.1.1.tgz"; + path = fetchurl { + name = "escape_goat___escape_goat_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz"; + sha1 = "1b2dc77003676c457ec760b2dc68edb648188675"; + }; + } + { + name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; + path = fetchurl { + name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + } + { + name = "eslint_config_google___eslint_config_google_0.14.0.tgz"; + path = fetchurl { + name = "eslint_config_google___eslint_config_google_0.14.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz"; + sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a"; + }; + } + { + name = "53000626a9256811f6b355de4eafeb5575bda7fc"; + path = fetchurl { + name = "53000626a9256811f6b355de4eafeb5575bda7fc"; + url = "https://codeload.github.com/matrix-org/eslint-plugin-matrix-org/tar.gz/53000626a9256811f6b355de4eafeb5575bda7fc"; + sha1 = "12617a8105ab0ea2e7df2567928260a41ebffd58"; + }; + } + { + name = "eslint_scope___eslint_scope_5.1.1.tgz"; + path = fetchurl { + name = "eslint_scope___eslint_scope_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz"; + sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c"; + }; + } + { + name = "eslint_utils___eslint_utils_2.1.0.tgz"; + path = fetchurl { + name = "eslint_utils___eslint_utils_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz"; + sha1 = "d2de5e03424e707dc10c74068ddedae708741b27"; + }; + } + { + name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz"; + path = fetchurl { + name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz"; + sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2"; + }; + } + { + name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz"; + path = fetchurl { + name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"; + sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e"; + }; + } + { + name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz"; + path = fetchurl { + name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"; + sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303"; + }; + } + { + name = "eslint___eslint_7.18.0.tgz"; + path = fetchurl { + name = "eslint___eslint_7.18.0.tgz"; + url = "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz"; + sha1 = "7fdcd2f3715a41fe6295a16234bd69aed2c75e67"; + }; + } + { + name = "espree___espree_7.3.1.tgz"; + path = fetchurl { + name = "espree___espree_7.3.1.tgz"; + url = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz"; + sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6"; + }; + } + { + name = "esprima___esprima_4.0.1.tgz"; + path = fetchurl { + name = "esprima___esprima_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz"; + sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71"; + }; + } + { + name = "esquery___esquery_1.3.1.tgz"; + path = fetchurl { + name = "esquery___esquery_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz"; + sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57"; + }; + } + { + name = "esrecurse___esrecurse_4.3.0.tgz"; + path = fetchurl { + name = "esrecurse___esrecurse_4.3.0.tgz"; + url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz"; + sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921"; + }; + } + { + name = "estraverse___estraverse_4.3.0.tgz"; + path = fetchurl { + name = "estraverse___estraverse_4.3.0.tgz"; + url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz"; + sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d"; + }; + } + { + name = "estraverse___estraverse_5.1.0.tgz"; + path = fetchurl { + name = "estraverse___estraverse_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz"; + sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642"; + }; + } + { + name = "estraverse___estraverse_5.2.0.tgz"; + path = fetchurl { + name = "estraverse___estraverse_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz"; + sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880"; + }; + } + { + name = "esutils___esutils_2.0.3.tgz"; + path = fetchurl { + name = "esutils___esutils_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz"; + sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64"; + }; + } + { + name = "except___except_0.1.3.tgz"; + path = fetchurl { + name = "except___except_0.1.3.tgz"; + url = "https://registry.yarnpkg.com/except/-/except-0.1.3.tgz"; + sha1 = "98261c91958551536b44482238e9783fb73d292a"; + }; + } + { + name = "execa___execa_0.7.0.tgz"; + path = fetchurl { + name = "execa___execa_0.7.0.tgz"; + url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz"; + sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777"; + }; + } + { + name = "exif_parser___exif_parser_0.1.12.tgz"; + path = fetchurl { + name = "exif_parser___exif_parser_0.1.12.tgz"; + url = "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz"; + sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922"; + }; + } + { + name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz"; + path = fetchurl { + name = "exit_on_epipe___exit_on_epipe_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz"; + sha1 = "0bdd92e87d5285d267daa8171d0eb06159689692"; + }; + } + { + name = "extend___extend_3.0.2.tgz"; + path = fetchurl { + name = "extend___extend_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz"; + sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa"; + }; + } + { + name = "extsprintf___extsprintf_1.3.0.tgz"; + path = fetchurl { + name = "extsprintf___extsprintf_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + } + { + name = "extsprintf___extsprintf_1.4.0.tgz"; + path = fetchurl { + name = "extsprintf___extsprintf_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz"; + sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f"; + }; + } + { + name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz"; + path = fetchurl { + name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; + sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + }; + } + { + name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz"; + path = fetchurl { + name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz"; + url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"; + sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525"; + }; + } + { + name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz"; + path = fetchurl { + name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + } + { + name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; + path = fetchurl { + name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz"; + url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; + sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; + }; + } + { + name = "figgy_pudding___figgy_pudding_3.5.2.tgz"; + path = fetchurl { + name = "figgy_pudding___figgy_pudding_3.5.2.tgz"; + url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz"; + sha1 = "b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"; + }; + } + { + name = "file_entry_cache___file_entry_cache_6.0.1.tgz"; + path = fetchurl { + name = "file_entry_cache___file_entry_cache_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz"; + sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027"; + }; + } + { + name = "file_type___file_type_9.0.0.tgz"; + path = fetchurl { + name = "file_type___file_type_9.0.0.tgz"; + url = "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz"; + sha1 = "a68d5ad07f486414dfb2c8866f73161946714a18"; + }; + } + { + name = "filelist___filelist_1.0.1.tgz"; + path = fetchurl { + name = "filelist___filelist_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz"; + sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb"; + }; + } + { + name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz"; + path = fetchurl { + name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz"; + sha1 = "8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf"; + }; + } + { + name = "find_up___find_up_2.1.0.tgz"; + path = fetchurl { + name = "find_up___find_up_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz"; + sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; + }; + } + { + name = "find_up___find_up_3.0.0.tgz"; + path = fetchurl { + name = "find_up___find_up_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz"; + sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73"; + }; + } + { + name = "flat_cache___flat_cache_3.0.4.tgz"; + path = fetchurl { + name = "flat_cache___flat_cache_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz"; + sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11"; + }; + } + { + name = "flatted___flatted_3.1.1.tgz"; + path = fetchurl { + name = "flatted___flatted_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz"; + sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469"; + }; + } + { + name = "flush_write_stream___flush_write_stream_1.1.1.tgz"; + path = fetchurl { + name = "flush_write_stream___flush_write_stream_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz"; + sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"; + }; + } + { + name = "foreachasync___foreachasync_3.0.0.tgz"; + path = fetchurl { + name = "foreachasync___foreachasync_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz"; + sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6"; + }; + } + { + name = "forever_agent___forever_agent_0.6.1.tgz"; + path = fetchurl { + name = "forever_agent___forever_agent_0.6.1.tgz"; + url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + } + { + name = "form_data___form_data_2.3.3.tgz"; + path = fetchurl { + name = "form_data___form_data_2.3.3.tgz"; + url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz"; + sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6"; + }; + } + { + name = "from2___from2_1.3.0.tgz"; + path = fetchurl { + name = "from2___from2_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz"; + sha1 = "88413baaa5f9a597cfde9221d86986cd3c061dfd"; + }; + } + { + name = "from2___from2_2.3.0.tgz"; + path = fetchurl { + name = "from2___from2_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz"; + sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af"; + }; + } + { + name = "fs_constants___fs_constants_1.0.0.tgz"; + path = fetchurl { + name = "fs_constants___fs_constants_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz"; + sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"; + }; + } + { + name = "fs_extra___fs_extra_10.0.0.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_10.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz"; + sha1 = "9ff61b655dde53fb34a82df84bb214ce802e17c1"; + }; + } + { + name = "fs_extra___fs_extra_8.1.0.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_8.1.0.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz"; + sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"; + }; + } + { + name = "fs_extra___fs_extra_9.1.0.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_9.1.0.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz"; + sha1 = "5954460c764a8da2094ba3554bf839e6b9a7c86d"; + }; + } + { + name = "fs_extra___fs_extra_9.0.1.tgz"; + path = fetchurl { + name = "fs_extra___fs_extra_9.0.1.tgz"; + url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz"; + sha1 = "910da0062437ba4c39fedd863f1675ccfefcb9fc"; + }; + } + { + name = "fs_minipass___fs_minipass_1.2.7.tgz"; + path = fetchurl { + name = "fs_minipass___fs_minipass_1.2.7.tgz"; + url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7"; + }; + } + { + name = "fs_minipass___fs_minipass_2.0.0.tgz"; + path = fetchurl { + name = "fs_minipass___fs_minipass_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz"; + sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1"; + }; + } + { + name = "fs_vacuum___fs_vacuum_1.2.10.tgz"; + path = fetchurl { + name = "fs_vacuum___fs_vacuum_1.2.10.tgz"; + url = "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz"; + sha1 = "b7629bec07a4031a2548fdf99f5ecf1cc8b31e36"; + }; + } + { + name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz"; + path = fetchurl { + name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz"; + url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz"; + sha1 = "b47df53493ef911df75731e70a9ded0189db40c9"; + }; + } + { + name = "fs.realpath___fs.realpath_1.0.0.tgz"; + path = fetchurl { + name = "fs.realpath___fs.realpath_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + } + { + name = "function_bind___function_bind_1.1.1.tgz"; + path = fetchurl { + name = "function_bind___function_bind_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; + sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; + }; + } + { + name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; + path = fetchurl { + name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"; + sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"; + }; + } + { + name = "gauge___gauge_2.7.4.tgz"; + path = fetchurl { + name = "gauge___gauge_2.7.4.tgz"; + url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + } + { + name = "genfun___genfun_5.0.0.tgz"; + path = fetchurl { + name = "genfun___genfun_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz"; + sha1 = "9dd9710a06900a5c4a5bf57aca5da4e52fe76537"; + }; + } + { + name = "gentle_fs___gentle_fs_2.3.0.tgz"; + path = fetchurl { + name = "gentle_fs___gentle_fs_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.0.tgz"; + sha1 = "13538db5029400f98684be4894e8a7d8f0d1ea7f"; + }; + } + { + name = "gentle_fs___gentle_fs_2.3.1.tgz"; + path = fetchurl { + name = "gentle_fs___gentle_fs_2.3.1.tgz"; + url = "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.3.1.tgz"; + sha1 = "11201bf66c18f930ddca72cf69460bdfa05727b1"; + }; + } + { + name = "get_caller_file___get_caller_file_1.0.3.tgz"; + path = fetchurl { + name = "get_caller_file___get_caller_file_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz"; + sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"; + }; + } + { + name = "get_caller_file___get_caller_file_2.0.5.tgz"; + path = fetchurl { + name = "get_caller_file___get_caller_file_2.0.5.tgz"; + url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz"; + sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e"; + }; + } + { + name = "get_stream___get_stream_3.0.0.tgz"; + path = fetchurl { + name = "get_stream___get_stream_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz"; + sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14"; + }; + } + { + name = "get_stream___get_stream_4.1.0.tgz"; + path = fetchurl { + name = "get_stream___get_stream_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz"; + sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"; + }; + } + { + name = "get_stream___get_stream_5.1.0.tgz"; + path = fetchurl { + name = "get_stream___get_stream_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz"; + sha1 = "01203cdc92597f9b909067c3e656cc1f4d3c4dc9"; + }; + } + { + name = "getpass___getpass_0.1.7.tgz"; + path = fetchurl { + name = "getpass___getpass_0.1.7.tgz"; + url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + } + { + name = "gifwrap___gifwrap_0.9.2.tgz"; + path = fetchurl { + name = "gifwrap___gifwrap_0.9.2.tgz"; + url = "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz"; + sha1 = "348e286e67d7cf57942172e1e6f05a71cee78489"; + }; + } + { + name = "glob_parent___glob_parent_5.1.2.tgz"; + path = fetchurl { + name = "glob_parent___glob_parent_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz"; + sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4"; + }; + } + { + name = "glob___glob_7.1.6.tgz"; + path = fetchurl { + name = "glob___glob_7.1.6.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz"; + sha1 = "141f33b81a7c2492e125594307480c46679278a6"; + }; + } + { + name = "glob___glob_7.1.7.tgz"; + path = fetchurl { + name = "glob___glob_7.1.7.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz"; + sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90"; + }; + } + { + name = "global_dirs___global_dirs_0.1.1.tgz"; + path = fetchurl { + name = "global_dirs___global_dirs_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz"; + sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445"; + }; + } + { + name = "global_dirs___global_dirs_3.0.0.tgz"; + path = fetchurl { + name = "global_dirs___global_dirs_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz"; + sha1 = "70a76fe84ea315ab37b1f5576cbde7d48ef72686"; + }; + } + { + name = "global___global_4.3.2.tgz"; + path = fetchurl { + name = "global___global_4.3.2.tgz"; + url = "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz"; + sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f"; + }; + } + { + name = "globals___globals_11.12.0.tgz"; + path = fetchurl { + name = "globals___globals_11.12.0.tgz"; + url = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz"; + sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e"; + }; + } + { + name = "globals___globals_12.4.0.tgz"; + path = fetchurl { + name = "globals___globals_12.4.0.tgz"; + url = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz"; + sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8"; + }; + } + { + name = "got___got_6.7.1.tgz"; + path = fetchurl { + name = "got___got_6.7.1.tgz"; + url = "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz"; + sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0"; + }; + } + { + name = "got___got_9.6.0.tgz"; + path = fetchurl { + name = "got___got_9.6.0.tgz"; + url = "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz"; + sha1 = "edf45e7d67f99545705de1f7bbeeeb121765ed85"; + }; + } + { + name = "graceful_fs___graceful_fs_4.2.3.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_4.2.3.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz"; + sha1 = "4a12ff1b60376ef09862c2093edd908328be8423"; + }; + } + { + name = "graceful_fs___graceful_fs_4.2.6.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_4.2.6.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz"; + sha1 = "ff040b2b0853b23c3d31027523706f1885d76bee"; + }; + } + { + name = "graceful_fs___graceful_fs_4.2.4.tgz"; + path = fetchurl { + name = "graceful_fs___graceful_fs_4.2.4.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz"; + sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb"; + }; + } + { + name = "graceful_readlink___graceful_readlink_1.0.1.tgz"; + path = fetchurl { + name = "graceful_readlink___graceful_readlink_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz"; + sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725"; + }; + } + { + name = "har_schema___har_schema_2.0.0.tgz"; + path = fetchurl { + name = "har_schema___har_schema_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + } + { + name = "har_validator___har_validator_5.1.3.tgz"; + path = fetchurl { + name = "har_validator___har_validator_5.1.3.tgz"; + url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz"; + sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080"; + }; + } + { + name = "har_validator___har_validator_5.1.5.tgz"; + path = fetchurl { + name = "har_validator___har_validator_5.1.5.tgz"; + url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz"; + sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"; + }; + } + { + name = "has_flag___has_flag_3.0.0.tgz"; + path = fetchurl { + name = "has_flag___has_flag_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + } + { + name = "has_flag___has_flag_4.0.0.tgz"; + path = fetchurl { + name = "has_flag___has_flag_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz"; + sha1 = "944771fd9c81c81265c4d6941860da06bb59479b"; + }; + } + { + name = "has_symbols___has_symbols_1.0.1.tgz"; + path = fetchurl { + name = "has_symbols___has_symbols_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz"; + sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8"; + }; + } + { + name = "has_unicode___has_unicode_2.0.1.tgz"; + path = fetchurl { + name = "has_unicode___has_unicode_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + } + { + name = "has_yarn___has_yarn_2.1.0.tgz"; + path = fetchurl { + name = "has_yarn___has_yarn_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz"; + sha1 = "137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"; + }; + } + { + name = "has___has_1.0.3.tgz"; + path = fetchurl { + name = "has___has_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; + sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; + }; + } + { + name = "hosted_git_info___hosted_git_info_2.8.9.tgz"; + path = fetchurl { + name = "hosted_git_info___hosted_git_info_2.8.9.tgz"; + url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz"; + sha1 = "dffc0bf9a21c02209090f2aa69429e1414daf3f9"; + }; + } + { + name = "hosted_git_info___hosted_git_info_4.0.2.tgz"; + path = fetchurl { + name = "hosted_git_info___hosted_git_info_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz"; + sha1 = "5e425507eede4fea846b7262f0838456c4209961"; + }; + } + { + name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz"; + path = fetchurl { + name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz"; + url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz"; + sha1 = "39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"; + }; + } + { + name = "http_cache_semantics___http_cache_semantics_4.0.3.tgz"; + path = fetchurl { + name = "http_cache_semantics___http_cache_semantics_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz"; + sha1 = "495704773277eeef6e43f9ab2c2c7d259dda25c5"; + }; + } + { + name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz"; + path = fetchurl { + name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz"; + sha1 = "e4821beef5b2142a2026bd73926fe537631c5405"; + }; + } + { + name = "http_signature___http_signature_1.2.0.tgz"; + path = fetchurl { + name = "http_signature___http_signature_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + } + { + name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz"; + path = fetchurl { + name = "https_proxy_agent___https_proxy_agent_2.2.4.tgz"; + url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz"; + sha1 = "4ee7a737abd92678a293d9b34a1af4d0d08c787b"; + }; + } + { + name = "humanize_ms___humanize_ms_1.2.1.tgz"; + path = fetchurl { + name = "humanize_ms___humanize_ms_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz"; + sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed"; + }; + } + { + name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz"; + path = fetchurl { + name = "iconv_corefoundation___iconv_corefoundation_1.1.6.tgz"; + url = "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.6.tgz"; + sha1 = "27c135470237f6f8d13462fa1f5eaf250523c29a"; + }; + } + { + name = "iconv_lite___iconv_lite_0.4.24.tgz"; + path = fetchurl { + name = "iconv_lite___iconv_lite_0.4.24.tgz"; + url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b"; + }; + } + { + name = "iconv_lite___iconv_lite_0.6.3.tgz"; + path = fetchurl { + name = "iconv_lite___iconv_lite_0.6.3.tgz"; + url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz"; + sha1 = "a52f80bf38da1952eb5c681790719871a1a72501"; + }; + } + { + name = "ieee754___ieee754_1.2.1.tgz"; + path = fetchurl { + name = "ieee754___ieee754_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz"; + sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352"; + }; + } + { + name = "ieee754___ieee754_1.1.13.tgz"; + path = fetchurl { + name = "ieee754___ieee754_1.1.13.tgz"; + url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz"; + sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84"; + }; + } + { + name = "iferr___iferr_0.1.5.tgz"; + path = fetchurl { + name = "iferr___iferr_0.1.5.tgz"; + url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz"; + sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"; + }; + } + { + name = "iferr___iferr_1.0.2.tgz"; + path = fetchurl { + name = "iferr___iferr_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz"; + sha1 = "e9fde49a9da06dc4a4194c6c9ed6d08305037a6d"; + }; + } + { + name = "ignore_walk___ignore_walk_3.0.3.tgz"; + path = fetchurl { + name = "ignore_walk___ignore_walk_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha1 = "017e2447184bfeade7c238e4aefdd1e8f95b1e37"; + }; + } + { + name = "ignore___ignore_4.0.6.tgz"; + path = fetchurl { + name = "ignore___ignore_4.0.6.tgz"; + url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz"; + sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc"; + }; + } + { + name = "image_q___image_q_1.1.1.tgz"; + path = fetchurl { + name = "image_q___image_q_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz"; + sha1 = "fc84099664460b90ca862d9300b6bfbbbfbf8056"; + }; + } + { + name = "immediate___immediate_3.0.6.tgz"; + path = fetchurl { + name = "immediate___immediate_3.0.6.tgz"; + url = "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz"; + sha1 = "9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"; + }; + } + { + name = "import_fresh___import_fresh_3.2.1.tgz"; + path = fetchurl { + name = "import_fresh___import_fresh_3.2.1.tgz"; + url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz"; + sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66"; + }; + } + { + name = "import_fresh___import_fresh_3.3.0.tgz"; + path = fetchurl { + name = "import_fresh___import_fresh_3.3.0.tgz"; + url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz"; + sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"; + }; + } + { + name = "import_lazy___import_lazy_2.1.0.tgz"; + path = fetchurl { + name = "import_lazy___import_lazy_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz"; + sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43"; + }; + } + { + name = "imurmurhash___imurmurhash_0.1.4.tgz"; + path = fetchurl { + name = "imurmurhash___imurmurhash_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + } + { + name = "indexof___indexof_0.0.1.tgz"; + path = fetchurl { + name = "indexof___indexof_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz"; + sha1 = "82dc336d232b9062179d05ab3293a66059fd435d"; + }; + } + { + name = "infer_owner___infer_owner_1.0.4.tgz"; + path = fetchurl { + name = "infer_owner___infer_owner_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz"; + sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"; + }; + } + { + name = "inflight___inflight_1.0.6.tgz"; + path = fetchurl { + name = "inflight___inflight_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + } + { + name = "inherits___inherits_2.0.4.tgz"; + path = fetchurl { + name = "inherits___inherits_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz"; + sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c"; + }; + } + { + name = "ini___ini_2.0.0.tgz"; + path = fetchurl { + name = "ini___ini_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz"; + sha1 = "e5fd556ecdd5726be978fa1001862eacb0a94bc5"; + }; + } + { + name = "ini___ini_1.3.8.tgz"; + path = fetchurl { + name = "ini___ini_1.3.8.tgz"; + url = "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz"; + sha1 = "a29da425b48806f34767a4efce397269af28432c"; + }; + } + { + name = "init_package_json___init_package_json_1.10.3.tgz"; + path = fetchurl { + name = "init_package_json___init_package_json_1.10.3.tgz"; + url = "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz"; + sha1 = "45ffe2f610a8ca134f2bd1db5637b235070f6cbe"; + }; + } + { + name = "invert_kv___invert_kv_1.0.0.tgz"; + path = fetchurl { + name = "invert_kv___invert_kv_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz"; + sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"; + }; + } + { + name = "ip_regex___ip_regex_2.1.0.tgz"; + path = fetchurl { + name = "ip_regex___ip_regex_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz"; + sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"; + }; + } + { + name = "ip___ip_1.1.5.tgz"; + path = fetchurl { + name = "ip___ip_1.1.5.tgz"; + url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz"; + sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a"; + }; + } + { + name = "is_arrayish___is_arrayish_0.2.1.tgz"; + path = fetchurl { + name = "is_arrayish___is_arrayish_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz"; + sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d"; + }; + } + { + name = "is_callable___is_callable_1.1.4.tgz"; + path = fetchurl { + name = "is_callable___is_callable_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz"; + sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"; + }; + } + { + name = "is_ci___is_ci_1.2.1.tgz"; + path = fetchurl { + name = "is_ci___is_ci_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz"; + sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c"; + }; + } + { + name = "is_ci___is_ci_2.0.0.tgz"; + path = fetchurl { + name = "is_ci___is_ci_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz"; + sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c"; + }; + } + { + name = "is_ci___is_ci_3.0.0.tgz"; + path = fetchurl { + name = "is_ci___is_ci_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz"; + sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"; + }; + } + { + name = "is_cidr___is_cidr_3.1.0.tgz"; + path = fetchurl { + name = "is_cidr___is_cidr_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.1.0.tgz"; + sha1 = "72e233d8e1c4cd1d3f11713fcce3eba7b0e3476f"; + }; + } + { + name = "is_date_object___is_date_object_1.0.1.tgz"; + path = fetchurl { + name = "is_date_object___is_date_object_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz"; + sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"; + }; + } + { + name = "is_extglob___is_extglob_2.1.1.tgz"; + path = fetchurl { + name = "is_extglob___is_extglob_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + } + { + name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz"; + path = fetchurl { + name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + } + { + name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; + path = fetchurl { + name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; + }; + } + { + name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; + path = fetchurl { + name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; + sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d"; + }; + } + { + name = "is_function___is_function_1.0.1.tgz"; + path = fetchurl { + name = "is_function___is_function_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz"; + sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5"; + }; + } + { + name = "is_glob___is_glob_4.0.1.tgz"; + path = fetchurl { + name = "is_glob___is_glob_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz"; + sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"; + }; + } + { + name = "is_installed_globally___is_installed_globally_0.1.0.tgz"; + path = fetchurl { + name = "is_installed_globally___is_installed_globally_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz"; + sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80"; + }; + } + { + name = "is_installed_globally___is_installed_globally_0.4.0.tgz"; + path = fetchurl { + name = "is_installed_globally___is_installed_globally_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz"; + sha1 = "9a0fd407949c30f86eb6959ef1b7994ed0b7b520"; + }; + } + { + name = "is_npm___is_npm_1.0.0.tgz"; + path = fetchurl { + name = "is_npm___is_npm_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz"; + sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4"; + }; + } + { + name = "is_npm___is_npm_5.0.0.tgz"; + path = fetchurl { + name = "is_npm___is_npm_5.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz"; + sha1 = "43e8d65cc56e1b67f8d47262cf667099193f45a8"; + }; + } + { + name = "is_obj___is_obj_1.0.1.tgz"; + path = fetchurl { + name = "is_obj___is_obj_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz"; + sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"; + }; + } + { + name = "is_obj___is_obj_2.0.0.tgz"; + path = fetchurl { + name = "is_obj___is_obj_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz"; + sha1 = "473fb05d973705e3fd9620545018ca8e22ef4982"; + }; + } + { + name = "is_path_inside___is_path_inside_1.0.1.tgz"; + path = fetchurl { + name = "is_path_inside___is_path_inside_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz"; + sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"; + }; + } + { + name = "is_path_inside___is_path_inside_3.0.3.tgz"; + path = fetchurl { + name = "is_path_inside___is_path_inside_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz"; + sha1 = "d231362e53a07ff2b0e0ea7fed049161ffd16283"; + }; + } + { + name = "is_redirect___is_redirect_1.0.0.tgz"; + path = fetchurl { + name = "is_redirect___is_redirect_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz"; + sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"; + }; + } + { + name = "is_regex___is_regex_1.0.4.tgz"; + path = fetchurl { + name = "is_regex___is_regex_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz"; + sha1 = "5517489b547091b0930e095654ced25ee97e9491"; + }; + } + { + name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz"; + path = fetchurl { + name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz"; + sha1 = "d778488bd0a4666a3be8a1482b9f2baafedea8b4"; + }; + } + { + name = "is_stream___is_stream_1.1.0.tgz"; + path = fetchurl { + name = "is_stream___is_stream_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz"; + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; + }; + } + { + name = "is_symbol___is_symbol_1.0.3.tgz"; + path = fetchurl { + name = "is_symbol___is_symbol_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz"; + sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937"; + }; + } + { + name = "is_typedarray___is_typedarray_1.0.0.tgz"; + path = fetchurl { + name = "is_typedarray___is_typedarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + } + { + name = "is_yarn_global___is_yarn_global_0.3.0.tgz"; + path = fetchurl { + name = "is_yarn_global___is_yarn_global_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz"; + sha1 = "d502d3382590ea3004893746754c89139973e232"; + }; + } + { + name = "isarray___isarray_0.0.1.tgz"; + path = fetchurl { + name = "isarray___isarray_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz"; + sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; + }; + } + { + name = "isarray___isarray_1.0.0.tgz"; + path = fetchurl { + name = "isarray___isarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + } + { + name = "isbinaryfile___isbinaryfile_4.0.8.tgz"; + path = fetchurl { + name = "isbinaryfile___isbinaryfile_4.0.8.tgz"; + url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz"; + sha1 = "5d34b94865bd4946633ecc78a026fc76c5b11fcf"; + }; + } + { + name = "isexe___isexe_2.0.0.tgz"; + path = fetchurl { + name = "isexe___isexe_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + } + { + name = "isstream___isstream_0.1.2.tgz"; + path = fetchurl { + name = "isstream___isstream_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + } + { + name = "jake___jake_10.8.2.tgz"; + path = fetchurl { + name = "jake___jake_10.8.2.tgz"; + url = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz"; + sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"; + }; + } + { + name = "jimp___jimp_0.16.1.tgz"; + path = fetchurl { + name = "jimp___jimp_0.16.1.tgz"; + url = "https://registry.yarnpkg.com/jimp/-/jimp-0.16.1.tgz"; + sha1 = "192f851a30e5ca11112a3d0aa53137659a78ca7a"; + }; + } + { + name = "jpeg_js___jpeg_js_0.4.2.tgz"; + path = fetchurl { + name = "jpeg_js___jpeg_js_0.4.2.tgz"; + url = "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz"; + sha1 = "8b345b1ae4abde64c2da2fe67ea216a114ac279d"; + }; + } + { + name = "js_tokens___js_tokens_4.0.0.tgz"; + path = fetchurl { + name = "js_tokens___js_tokens_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz"; + sha1 = "19203fb59991df98e3a287050d4647cdeaf32499"; + }; + } + { + name = "js_yaml___js_yaml_3.13.1.tgz"; + path = fetchurl { + name = "js_yaml___js_yaml_3.13.1.tgz"; + url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz"; + sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847"; + }; + } + { + name = "js_yaml___js_yaml_4.1.0.tgz"; + path = fetchurl { + name = "js_yaml___js_yaml_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz"; + sha1 = "c1fb65f8f5017901cdd2c951864ba18458a10602"; + }; + } + { + name = "jsbn___jsbn_0.1.1.tgz"; + path = fetchurl { + name = "jsbn___jsbn_0.1.1.tgz"; + url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + } + { + name = "jsesc___jsesc_2.5.2.tgz"; + path = fetchurl { + name = "jsesc___jsesc_2.5.2.tgz"; + url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz"; + sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4"; + }; + } + { + name = "json_buffer___json_buffer_3.0.0.tgz"; + path = fetchurl { + name = "json_buffer___json_buffer_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz"; + sha1 = "5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"; + }; + } + { + name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz"; + path = fetchurl { + name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz"; + sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9"; + }; + } + { + name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; + path = fetchurl { + name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz"; + url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660"; + }; + } + { + name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz"; + path = fetchurl { + name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"; + sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"; + }; + } + { + name = "json_schema_typed___json_schema_typed_7.0.3.tgz"; + path = fetchurl { + name = "json_schema_typed___json_schema_typed_7.0.3.tgz"; + url = "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz"; + sha1 = "23ff481b8b4eebcd2ca123b4fa0409e66469a2d9"; + }; + } + { + name = "json_schema___json_schema_0.2.3.tgz"; + path = fetchurl { + name = "json_schema___json_schema_0.2.3.tgz"; + url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + } + { + name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; + path = fetchurl { + name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"; + sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651"; + }; + } + { + name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; + path = fetchurl { + name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + } + { + name = "json5___json5_2.2.0.tgz"; + path = fetchurl { + name = "json5___json5_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz"; + sha1 = "2dfefe720c6ba525d9ebd909950f0515316c89a3"; + }; + } + { + name = "jsonfile___jsonfile_4.0.0.tgz"; + path = fetchurl { + name = "jsonfile___jsonfile_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz"; + sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb"; + }; + } + { + name = "jsonfile___jsonfile_6.0.1.tgz"; + path = fetchurl { + name = "jsonfile___jsonfile_6.0.1.tgz"; + url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz"; + sha1 = "98966cba214378c8c84b82e085907b40bf614179"; + }; + } + { + name = "jsonparse___jsonparse_1.3.1.tgz"; + path = fetchurl { + name = "jsonparse___jsonparse_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz"; + sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280"; + }; + } + { + name = "jsprim___jsprim_1.4.1.tgz"; + path = fetchurl { + name = "jsprim___jsprim_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + } + { + name = "jszip___jszip_3.5.0.tgz"; + path = fetchurl { + name = "jszip___jszip_3.5.0.tgz"; + url = "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz"; + sha1 = "b4fd1f368245346658e781fec9675802489e15f6"; + }; + } + { + name = "keyv___keyv_3.1.0.tgz"; + path = fetchurl { + name = "keyv___keyv_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz"; + sha1 = "ecc228486f69991e49e9476485a5be1e8fc5c4d9"; + }; + } + { + name = "latest_version___latest_version_3.1.0.tgz"; + path = fetchurl { + name = "latest_version___latest_version_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz"; + sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15"; + }; + } + { + name = "latest_version___latest_version_5.1.0.tgz"; + path = fetchurl { + name = "latest_version___latest_version_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz"; + sha1 = "119dfe908fe38d15dfa43ecd13fa12ec8832face"; + }; + } + { + name = "lazy_property___lazy_property_1.0.0.tgz"; + path = fetchurl { + name = "lazy_property___lazy_property_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz"; + sha1 = "84ddc4b370679ba8bd4cdcfa4c06b43d57111147"; + }; + } + { + name = "lazy_val___lazy_val_1.0.4.tgz"; + path = fetchurl { + name = "lazy_val___lazy_val_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz"; + sha1 = "882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65"; + }; + } + { + name = "lazy_val___lazy_val_1.0.5.tgz"; + path = fetchurl { + name = "lazy_val___lazy_val_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz"; + sha1 = "6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d"; + }; + } + { + name = "lazystream___lazystream_1.0.0.tgz"; + path = fetchurl { + name = "lazystream___lazystream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz"; + sha1 = "f6995fe0f820392f61396be89462407bb77168e4"; + }; + } + { + name = "lcid___lcid_1.0.0.tgz"; + path = fetchurl { + name = "lcid___lcid_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz"; + sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835"; + }; + } + { + name = "levn___levn_0.4.1.tgz"; + path = fetchurl { + name = "levn___levn_0.4.1.tgz"; + url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz"; + sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade"; + }; + } + { + name = "libcipm___libcipm_4.0.8.tgz"; + path = fetchurl { + name = "libcipm___libcipm_4.0.8.tgz"; + url = "https://registry.yarnpkg.com/libcipm/-/libcipm-4.0.8.tgz"; + sha1 = "dcea4919e10dfbce420327e63901613b9141bc89"; + }; + } + { + name = "libnpm___libnpm_3.0.1.tgz"; + path = fetchurl { + name = "libnpm___libnpm_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz"; + sha1 = "0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2"; + }; + } + { + name = "libnpmaccess___libnpmaccess_3.0.2.tgz"; + path = fetchurl { + name = "libnpmaccess___libnpmaccess_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-3.0.2.tgz"; + sha1 = "8b2d72345ba3bef90d3b4f694edd5c0417f58923"; + }; + } + { + name = "libnpmconfig___libnpmconfig_1.2.1.tgz"; + path = fetchurl { + name = "libnpmconfig___libnpmconfig_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz"; + sha1 = "c0c2f793a74e67d4825e5039e7a02a0044dfcbc0"; + }; + } + { + name = "libnpmhook___libnpmhook_5.0.3.tgz"; + path = fetchurl { + name = "libnpmhook___libnpmhook_5.0.3.tgz"; + url = "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-5.0.3.tgz"; + sha1 = "4020c0f5edbf08ebe395325caa5ea01885b928f7"; + }; + } + { + name = "libnpmorg___libnpmorg_1.0.1.tgz"; + path = fetchurl { + name = "libnpmorg___libnpmorg_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-1.0.1.tgz"; + sha1 = "5d2503f6ceb57f33dbdcc718e6698fea6d5ad087"; + }; + } + { + name = "libnpmpublish___libnpmpublish_1.1.3.tgz"; + path = fetchurl { + name = "libnpmpublish___libnpmpublish_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-1.1.3.tgz"; + sha1 = "e3782796722d79eef1a0a22944c117e0c4ca4280"; + }; + } + { + name = "libnpmsearch___libnpmsearch_2.0.2.tgz"; + path = fetchurl { + name = "libnpmsearch___libnpmsearch_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-2.0.2.tgz"; + sha1 = "9a4f059102d38e3dd44085bdbfe5095f2a5044cf"; + }; + } + { + name = "libnpmteam___libnpmteam_1.0.2.tgz"; + path = fetchurl { + name = "libnpmteam___libnpmteam_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-1.0.2.tgz"; + sha1 = "8b48bcbb6ce70dd8150c950fcbdbf3feb6eec820"; + }; + } + { + name = "libnpx___libnpx_10.2.4.tgz"; + path = fetchurl { + name = "libnpx___libnpx_10.2.4.tgz"; + url = "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.4.tgz"; + sha1 = "ef0e3258e29aef2ec7ee3276115e20e67f67d4ee"; + }; + } + { + name = "lie___lie_3.3.0.tgz"; + path = fetchurl { + name = "lie___lie_3.3.0.tgz"; + url = "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz"; + sha1 = "dcf82dee545f46074daf200c7c1c5a08e0f40f6a"; + }; + } + { + name = "load_bmfont___load_bmfont_1.4.1.tgz"; + path = fetchurl { + name = "load_bmfont___load_bmfont_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz"; + sha1 = "c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9"; + }; + } + { + name = "load_json_file___load_json_file_2.0.0.tgz"; + path = fetchurl { + name = "load_json_file___load_json_file_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz"; + sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8"; + }; + } + { + name = "locate_path___locate_path_2.0.0.tgz"; + path = fetchurl { + name = "locate_path___locate_path_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz"; + sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; + }; + } + { + name = "locate_path___locate_path_3.0.0.tgz"; + path = fetchurl { + name = "locate_path___locate_path_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz"; + sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e"; + }; + } + { + name = "lock_verify___lock_verify_2.2.0.tgz"; + path = fetchurl { + name = "lock_verify___lock_verify_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.2.0.tgz"; + sha1 = "12432feb68bb647071c78c44bde16029a0f7d935"; + }; + } + { + name = "lockfile___lockfile_1.0.4.tgz"; + path = fetchurl { + name = "lockfile___lockfile_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz"; + sha1 = "07f819d25ae48f87e538e6578b6964a4981a5609"; + }; + } + { + name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz"; + path = fetchurl { + name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz"; + sha1 = "0ebb44e456814af7905c6212fa2c9b2d51b841e8"; + }; + } + { + name = "lodash._createset___lodash._createset_4.0.3.tgz"; + path = fetchurl { + name = "lodash._createset___lodash._createset_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz"; + sha1 = "0f4659fbb09d75194fa9e2b88a6644d363c9fe26"; + }; + } + { + name = "lodash._root___lodash._root_3.0.1.tgz"; + path = fetchurl { + name = "lodash._root___lodash._root_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz"; + sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692"; + }; + } + { + name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz"; + path = fetchurl { + name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"; + sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef"; + }; + } + { + name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; + path = fetchurl { + name = "lodash.defaults___lodash.defaults_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz"; + sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c"; + }; + } + { + name = "lodash.difference___lodash.difference_4.5.0.tgz"; + path = fetchurl { + name = "lodash.difference___lodash.difference_4.5.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz"; + sha1 = "9ccb4e505d486b91651345772885a2df27fd017c"; + }; + } + { + name = "lodash.flatten___lodash.flatten_4.4.0.tgz"; + path = fetchurl { + name = "lodash.flatten___lodash.flatten_4.4.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz"; + sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f"; + }; + } + { + name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz"; + path = fetchurl { + name = "lodash.isplainobject___lodash.isplainobject_4.0.6.tgz"; + url = "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz"; + sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb"; + }; + } + { + name = "lodash.truncate___lodash.truncate_4.4.2.tgz"; + path = fetchurl { + name = "lodash.truncate___lodash.truncate_4.4.2.tgz"; + url = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz"; + sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193"; + }; + } + { + name = "lodash.union___lodash.union_4.6.0.tgz"; + path = fetchurl { + name = "lodash.union___lodash.union_4.6.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz"; + sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88"; + }; + } + { + name = "lodash.uniq___lodash.uniq_4.5.0.tgz"; + path = fetchurl { + name = "lodash.uniq___lodash.uniq_4.5.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; + sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; + }; + } + { + name = "lodash.without___lodash.without_4.4.0.tgz"; + path = fetchurl { + name = "lodash.without___lodash.without_4.4.0.tgz"; + url = "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz"; + sha1 = "3cd4574a00b67bae373a94b748772640507b7aac"; + }; + } + { + name = "lodash___lodash_4.17.21.tgz"; + path = fetchurl { + name = "lodash___lodash_4.17.21.tgz"; + url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz"; + sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c"; + }; + } + { + name = "lowercase_keys___lowercase_keys_1.0.1.tgz"; + path = fetchurl { + name = "lowercase_keys___lowercase_keys_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz"; + sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f"; + }; + } + { + name = "lowercase_keys___lowercase_keys_2.0.0.tgz"; + path = fetchurl { + name = "lowercase_keys___lowercase_keys_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz"; + sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479"; + }; + } + { + name = "lru_cache___lru_cache_4.1.5.tgz"; + path = fetchurl { + name = "lru_cache___lru_cache_4.1.5.tgz"; + url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz"; + sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"; + }; + } + { + name = "lru_cache___lru_cache_5.1.1.tgz"; + path = fetchurl { + name = "lru_cache___lru_cache_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz"; + sha1 = "1da27e6710271947695daf6848e847f01d84b920"; + }; + } + { + name = "lru_cache___lru_cache_6.0.0.tgz"; + path = fetchurl { + name = "lru_cache___lru_cache_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz"; + sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"; + }; + } + { + name = "make_dir___make_dir_1.3.0.tgz"; + path = fetchurl { + name = "make_dir___make_dir_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz"; + sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c"; + }; + } + { + name = "make_dir___make_dir_3.0.2.tgz"; + path = fetchurl { + name = "make_dir___make_dir_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz"; + sha1 = "04a1acbf22221e1d6ef43559f43e05a90dbb4392"; + }; + } + { + name = "make_dir___make_dir_3.1.0.tgz"; + path = fetchurl { + name = "make_dir___make_dir_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz"; + sha1 = "415e967046b3a7f1d185277d84aa58203726a13f"; + }; + } + { + name = "make_fetch_happen___make_fetch_happen_5.0.2.tgz"; + path = fetchurl { + name = "make_fetch_happen___make_fetch_happen_5.0.2.tgz"; + url = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz"; + sha1 = "aa8387104f2687edca01c8687ee45013d02d19bd"; + }; + } + { + name = "63f9119bc0bc304e83d4e8e22364caa7850e7671"; + path = fetchurl { + name = "63f9119bc0bc304e83d4e8e22364caa7850e7671"; + url = "https://codeload.github.com/matrix-org/matrix-web-i18n/tar.gz/63f9119bc0bc304e83d4e8e22364caa7850e7671"; + sha1 = "17709c5ad5da065d2718fffe873b8d0a1a53a4cd"; + }; + } + { + name = "meant___meant_1.0.3.tgz"; + path = fetchurl { + name = "meant___meant_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/meant/-/meant-1.0.3.tgz"; + sha1 = "67769af9de1d158773e928ae82c456114903554c"; + }; + } + { + name = "mem___mem_1.1.0.tgz"; + path = fetchurl { + name = "mem___mem_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz"; + sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76"; + }; + } + { + name = "mime_db___mime_db_1.42.0.tgz"; + path = fetchurl { + name = "mime_db___mime_db_1.42.0.tgz"; + url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz"; + sha1 = "3e252907b4c7adb906597b4b65636272cf9e7bac"; + }; + } + { + name = "mime_types___mime_types_2.1.25.tgz"; + path = fetchurl { + name = "mime_types___mime_types_2.1.25.tgz"; + url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz"; + sha1 = "39772d46621f93e2a80a856c53b86a62156a6437"; + }; + } + { + name = "mime___mime_1.6.0.tgz"; + path = fetchurl { + name = "mime___mime_1.6.0.tgz"; + url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz"; + sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1"; + }; + } + { + name = "mime___mime_2.5.2.tgz"; + path = fetchurl { + name = "mime___mime_2.5.2.tgz"; + url = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz"; + sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"; + }; + } + { + name = "mimic_fn___mimic_fn_1.2.0.tgz"; + path = fetchurl { + name = "mimic_fn___mimic_fn_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz"; + sha1 = "820c86a39334640e99516928bd03fca88057d022"; + }; + } + { + name = "mimic_fn___mimic_fn_2.1.0.tgz"; + path = fetchurl { + name = "mimic_fn___mimic_fn_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz"; + sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"; + }; + } + { + name = "mimic_fn___mimic_fn_3.1.0.tgz"; + path = fetchurl { + name = "mimic_fn___mimic_fn_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz"; + sha1 = "65755145bbf3e36954b949c16450427451d5ca74"; + }; + } + { + name = "mimic_response___mimic_response_1.0.1.tgz"; + path = fetchurl { + name = "mimic_response___mimic_response_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz"; + sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b"; + }; + } + { + name = "min_document___min_document_2.19.0.tgz"; + path = fetchurl { + name = "min_document___min_document_2.19.0.tgz"; + url = "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz"; + sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685"; + }; + } + { + name = "minimatch___minimatch_3.0.4.tgz"; + path = fetchurl { + name = "minimatch___minimatch_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"; + sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; + }; + } + { + name = "minimist___minimist_0.0.8.tgz"; + path = fetchurl { + name = "minimist___minimist_0.0.8.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + } + { + name = "minimist___minimist_1.2.3.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.3.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.3.tgz"; + sha1 = "3db5c0765545ab8637be71f333a104a965a9ca3f"; + }; + } + { + name = "minimist___minimist_1.2.5.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.5.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz"; + sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602"; + }; + } + { + name = "minipass___minipass_2.9.0.tgz"; + path = fetchurl { + name = "minipass___minipass_2.9.0.tgz"; + url = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz"; + sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6"; + }; + } + { + name = "minipass___minipass_3.1.1.tgz"; + path = fetchurl { + name = "minipass___minipass_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz"; + sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5"; + }; + } + { + name = "minizlib___minizlib_1.3.3.tgz"; + path = fetchurl { + name = "minizlib___minizlib_1.3.3.tgz"; + url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz"; + sha1 = "2290de96818a34c29551c8a8d301216bd65a861d"; + }; + } + { + name = "minizlib___minizlib_2.1.2.tgz"; + path = fetchurl { + name = "minizlib___minizlib_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz"; + sha1 = "e90d3466ba209b932451508a11ce3d3632145931"; + }; + } + { + name = "mississippi___mississippi_3.0.0.tgz"; + path = fetchurl { + name = "mississippi___mississippi_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz"; + sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022"; + }; + } + { + name = "mkdirp___mkdirp_0.5.1.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_0.5.1.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + } + { + name = "mkdirp___mkdirp_0.5.5.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_0.5.5.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz"; + sha1 = "d91cefd62d1436ca0f41620e251288d420099def"; + }; + } + { + name = "mkdirp___mkdirp_1.0.3.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz"; + sha1 = "4cf2e30ad45959dddea53ad97d518b6c8205e1ea"; + }; + } + { + name = "move_concurrently___move_concurrently_1.0.1.tgz"; + path = fetchurl { + name = "move_concurrently___move_concurrently_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz"; + sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92"; + }; + } + { + name = "ms___ms_2.0.0.tgz"; + path = fetchurl { + name = "ms___ms_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + } + { + name = "ms___ms_2.1.2.tgz"; + path = fetchurl { + name = "ms___ms_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz"; + sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009"; + }; + } + { + name = "ms___ms_2.1.3.tgz"; + path = fetchurl { + name = "ms___ms_2.1.3.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz"; + sha1 = "574c8138ce1d2b5861f0b44579dbadd60c6615b2"; + }; + } + { + name = "mute_stream___mute_stream_0.0.8.tgz"; + path = fetchurl { + name = "mute_stream___mute_stream_0.0.8.tgz"; + url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz"; + sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d"; + }; + } + { + name = "natural_compare___natural_compare_1.4.0.tgz"; + path = fetchurl { + name = "natural_compare___natural_compare_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz"; + sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; + }; + } + { + name = "needle___needle_2.5.0.tgz"; + path = fetchurl { + name = "needle___needle_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz"; + sha1 = "e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0"; + }; + } + { + name = "node_addon_api___node_addon_api_1.7.2.tgz"; + path = fetchurl { + name = "node_addon_api___node_addon_api_1.7.2.tgz"; + url = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz"; + sha1 = "3df30b95720b53c24e59948b49532b662444f54d"; + }; + } + { + name = "node_fetch_npm___node_fetch_npm_2.0.4.tgz"; + path = fetchurl { + name = "node_fetch_npm___node_fetch_npm_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz"; + sha1 = "6507d0e17a9ec0be3bec516958a497cec54bf5a4"; + }; + } + { + name = "node_gyp___node_gyp_5.1.0.tgz"; + path = fetchurl { + name = "node_gyp___node_gyp_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.0.tgz"; + sha1 = "8e31260a7af4a2e2f994b0673d4e0b3866156332"; + }; + } + { + name = "node_gyp___node_gyp_5.1.1.tgz"; + path = fetchurl { + name = "node_gyp___node_gyp_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz"; + sha1 = "eb915f7b631c937d282e33aed44cb7a025f62a3e"; + }; + } + { + name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz"; + path = fetchurl { + name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz"; + url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz"; + sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087"; + }; + } + { + name = "nopt___nopt_4.0.1.tgz"; + path = fetchurl { + name = "nopt___nopt_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz"; + sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + }; + } + { + name = "nopt___nopt_4.0.3.tgz"; + path = fetchurl { + name = "nopt___nopt_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz"; + sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48"; + }; + } + { + name = "normalize_package_data___normalize_package_data_2.5.0.tgz"; + path = fetchurl { + name = "normalize_package_data___normalize_package_data_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz"; + sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8"; + }; + } + { + name = "normalize_path___normalize_path_3.0.0.tgz"; + path = fetchurl { + name = "normalize_path___normalize_path_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz"; + sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65"; + }; + } + { + name = "normalize_url___normalize_url_4.5.1.tgz"; + path = fetchurl { + name = "normalize_url___normalize_url_4.5.1.tgz"; + url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz"; + sha1 = "0dd90cf1288ee1d1313b87081c9a5932ee48518a"; + }; + } + { + name = "npm_audit_report___npm_audit_report_1.3.3.tgz"; + path = fetchurl { + name = "npm_audit_report___npm_audit_report_1.3.3.tgz"; + url = "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.3.tgz"; + sha1 = "8226deeb253b55176ed147592a3995442f2179ed"; + }; + } + { + name = "npm_bundled___npm_bundled_1.1.1.tgz"; + path = fetchurl { + name = "npm_bundled___npm_bundled_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz"; + sha1 = "1edd570865a94cdb1bc8220775e29466c9fb234b"; + }; + } + { + name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz"; + path = fetchurl { + name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz"; + sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11"; + }; + } + { + name = "npm_install_checks___npm_install_checks_3.0.2.tgz"; + path = fetchurl { + name = "npm_install_checks___npm_install_checks_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.2.tgz"; + sha1 = "ab2e32ad27baa46720706908e5b14c1852de44d9"; + }; + } + { + name = "npm_lifecycle___npm_lifecycle_3.1.4.tgz"; + path = fetchurl { + name = "npm_lifecycle___npm_lifecycle_3.1.4.tgz"; + url = "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz"; + sha1 = "de6975c7d8df65f5150db110b57cce498b0b604c"; + }; + } + { + name = "npm_lifecycle___npm_lifecycle_3.1.5.tgz"; + path = fetchurl { + name = "npm_lifecycle___npm_lifecycle_3.1.5.tgz"; + url = "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz"; + sha1 = "9882d3642b8c82c815782a12e6a1bfeed0026309"; + }; + } + { + name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz"; + path = fetchurl { + name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz"; + sha1 = "44610141ca24664cad35d1e607176193fd8f5b88"; + }; + } + { + name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz"; + path = fetchurl { + name = "npm_normalize_package_bin___npm_normalize_package_bin_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"; + sha1 = "6e79a41f23fd235c0623218228da7d9c23b8f6e2"; + }; + } + { + name = "npm_package_arg___npm_package_arg_6.1.1.tgz"; + path = fetchurl { + name = "npm_package_arg___npm_package_arg_6.1.1.tgz"; + url = "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz"; + sha1 = "02168cb0a49a2b75bf988a28698de7b529df5cb7"; + }; + } + { + name = "npm_packlist___npm_packlist_1.4.8.tgz"; + path = fetchurl { + name = "npm_packlist___npm_packlist_1.4.8.tgz"; + url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz"; + sha1 = "56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"; + }; + } + { + name = "npm_pick_manifest___npm_pick_manifest_3.0.2.tgz"; + path = fetchurl { + name = "npm_pick_manifest___npm_pick_manifest_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz"; + sha1 = "f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7"; + }; + } + { + name = "npm_profile___npm_profile_4.0.2.tgz"; + path = fetchurl { + name = "npm_profile___npm_profile_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.2.tgz"; + sha1 = "8272a71c19634d0dce9c35a5daf8ee589cbb0f52"; + }; + } + { + name = "npm_profile___npm_profile_4.0.4.tgz"; + path = fetchurl { + name = "npm_profile___npm_profile_4.0.4.tgz"; + url = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz"; + sha1 = "28ee94390e936df6d084263ee2061336a6a1581b"; + }; + } + { + name = "npm_registry_fetch___npm_registry_fetch_4.0.7.tgz"; + path = fetchurl { + name = "npm_registry_fetch___npm_registry_fetch_4.0.7.tgz"; + url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz"; + sha1 = "57951bf6541e0246b34c9f9a38ab73607c9449d7"; + }; + } + { + name = "npm_run_path___npm_run_path_2.0.2.tgz"; + path = fetchurl { + name = "npm_run_path___npm_run_path_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz"; + sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f"; + }; + } + { + name = "npm_user_validate___npm_user_validate_1.0.1.tgz"; + path = fetchurl { + name = "npm_user_validate___npm_user_validate_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz"; + sha1 = "31428fc5475fe8416023f178c0ab47935ad8c561"; + }; + } + { + name = "npm___npm_6.14.11.tgz"; + path = fetchurl { + name = "npm___npm_6.14.11.tgz"; + url = "https://registry.yarnpkg.com/npm/-/npm-6.14.11.tgz"; + sha1 = "e0b5598d7b9a42d275e61d8bd28cd7eee0074a3b"; + }; + } + { + name = "npmlog___npmlog_4.1.2.tgz"; + path = fetchurl { + name = "npmlog___npmlog_4.1.2.tgz"; + url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz"; + sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b"; + }; + } + { + name = "number_is_nan___number_is_nan_1.0.1.tgz"; + path = fetchurl { + name = "number_is_nan___number_is_nan_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + } + { + name = "oauth_sign___oauth_sign_0.9.0.tgz"; + path = fetchurl { + name = "oauth_sign___oauth_sign_0.9.0.tgz"; + url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455"; + }; + } + { + name = "object_assign___object_assign_4.1.1.tgz"; + path = fetchurl { + name = "object_assign___object_assign_4.1.1.tgz"; + url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + } + { + name = "object_inspect___object_inspect_1.7.0.tgz"; + path = fetchurl { + name = "object_inspect___object_inspect_1.7.0.tgz"; + url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz"; + sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"; + }; + } + { + name = "object_keys___object_keys_1.1.1.tgz"; + path = fetchurl { + name = "object_keys___object_keys_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz"; + sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e"; + }; + } + { + name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz"; + path = fetchurl { + name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz"; + sha1 = "8758c846f5b407adab0f236e0986f14b051caa16"; + }; + } + { + name = "omggif___omggif_1.0.10.tgz"; + path = fetchurl { + name = "omggif___omggif_1.0.10.tgz"; + url = "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz"; + sha1 = "ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19"; + }; + } + { + name = "once___once_1.4.0.tgz"; + path = fetchurl { + name = "once___once_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + } + { + name = "onetime___onetime_5.1.0.tgz"; + path = fetchurl { + name = "onetime___onetime_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz"; + sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5"; + }; + } + { + name = "opener___opener_1.5.2.tgz"; + path = fetchurl { + name = "opener___opener_1.5.2.tgz"; + url = "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz"; + sha1 = "5d37e1f35077b9dcac4301372271afdeb2a13598"; + }; + } + { + name = "optionator___optionator_0.9.1.tgz"; + path = fetchurl { + name = "optionator___optionator_0.9.1.tgz"; + url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz"; + sha1 = "4f236a6373dae0566a6d43e1326674f50c291499"; + }; + } + { + name = "os_homedir___os_homedir_1.0.2.tgz"; + path = fetchurl { + name = "os_homedir___os_homedir_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + } + { + name = "os_locale___os_locale_2.1.0.tgz"; + path = fetchurl { + name = "os_locale___os_locale_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz"; + sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2"; + }; + } + { + name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; + path = fetchurl { + name = "os_tmpdir___os_tmpdir_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + } + { + name = "osenv___osenv_0.1.5.tgz"; + path = fetchurl { + name = "osenv___osenv_0.1.5.tgz"; + url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz"; + sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410"; + }; + } + { + name = "p_cancelable___p_cancelable_1.1.0.tgz"; + path = fetchurl { + name = "p_cancelable___p_cancelable_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz"; + sha1 = "d078d15a3af409220c886f1d9a0ca2e441ab26cc"; + }; + } + { + name = "p_finally___p_finally_1.0.0.tgz"; + path = fetchurl { + name = "p_finally___p_finally_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz"; + sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae"; + }; + } + { + name = "p_limit___p_limit_1.3.0.tgz"; + path = fetchurl { + name = "p_limit___p_limit_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz"; + sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"; + }; + } + { + name = "p_limit___p_limit_2.2.1.tgz"; + path = fetchurl { + name = "p_limit___p_limit_2.2.1.tgz"; + url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz"; + sha1 = "aa07a788cc3151c939b5131f63570f0dd2009537"; + }; + } + { + name = "p_locate___p_locate_2.0.0.tgz"; + path = fetchurl { + name = "p_locate___p_locate_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz"; + sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; + }; + } + { + name = "p_locate___p_locate_3.0.0.tgz"; + path = fetchurl { + name = "p_locate___p_locate_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz"; + sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4"; + }; + } + { + name = "p_try___p_try_1.0.0.tgz"; + path = fetchurl { + name = "p_try___p_try_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz"; + sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; + }; + } + { + name = "p_try___p_try_2.2.0.tgz"; + path = fetchurl { + name = "p_try___p_try_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz"; + sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6"; + }; + } + { + name = "package_json___package_json_4.0.1.tgz"; + path = fetchurl { + name = "package_json___package_json_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz"; + sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed"; + }; + } + { + name = "package_json___package_json_6.5.0.tgz"; + path = fetchurl { + name = "package_json___package_json_6.5.0.tgz"; + url = "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz"; + sha1 = "6feedaca35e75725876d0b0e64974697fed145b0"; + }; + } + { + name = "pacote___pacote_9.5.12.tgz"; + path = fetchurl { + name = "pacote___pacote_9.5.12.tgz"; + url = "https://registry.yarnpkg.com/pacote/-/pacote-9.5.12.tgz"; + sha1 = "1e11dd7a8d736bcc36b375a9804d41bb0377bf66"; + }; + } + { + name = "pako___pako_1.0.11.tgz"; + path = fetchurl { + name = "pako___pako_1.0.11.tgz"; + url = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz"; + sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf"; + }; + } + { + name = "parallel_transform___parallel_transform_1.2.0.tgz"; + path = fetchurl { + name = "parallel_transform___parallel_transform_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz"; + sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc"; + }; + } + { + name = "parent_module___parent_module_1.0.1.tgz"; + path = fetchurl { + name = "parent_module___parent_module_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz"; + sha1 = "691d2709e78c79fae3a156622452d00762caaaa2"; + }; + } + { + name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz"; + path = fetchurl { + name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz"; + sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285"; + }; + } + { + name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz"; + path = fetchurl { + name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz"; + sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006"; + }; + } + { + name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz"; + path = fetchurl { + name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz"; + url = "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz"; + sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389"; + }; + } + { + name = "parse_headers___parse_headers_2.0.3.tgz"; + path = fetchurl { + name = "parse_headers___parse_headers_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz"; + sha1 = "5e8e7512383d140ba02f0c7aa9f49b4399c92515"; + }; + } + { + name = "parse_json___parse_json_2.2.0.tgz"; + path = fetchurl { + name = "parse_json___parse_json_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz"; + sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9"; + }; + } + { + name = "path_exists___path_exists_3.0.0.tgz"; + path = fetchurl { + name = "path_exists___path_exists_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz"; + sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; + }; + } + { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + path = fetchurl { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + } + { + name = "path_is_inside___path_is_inside_1.0.2.tgz"; + path = fetchurl { + name = "path_is_inside___path_is_inside_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz"; + sha1 = "365417dede44430d1c11af61027facf074bdfc53"; + }; + } + { + name = "path_key___path_key_2.0.1.tgz"; + path = fetchurl { + name = "path_key___path_key_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz"; + sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40"; + }; + } + { + name = "path_key___path_key_3.1.1.tgz"; + path = fetchurl { + name = "path_key___path_key_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz"; + sha1 = "581f6ade658cbba65a0d3380de7753295054f375"; + }; + } + { + name = "path_parse___path_parse_1.0.6.tgz"; + path = fetchurl { + name = "path_parse___path_parse_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz"; + sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c"; + }; + } + { + name = "path_type___path_type_2.0.0.tgz"; + path = fetchurl { + name = "path_type___path_type_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz"; + sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73"; + }; + } + { + name = "performance_now___performance_now_2.1.0.tgz"; + path = fetchurl { + name = "performance_now___performance_now_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + } + { + name = "phin___phin_2.9.3.tgz"; + path = fetchurl { + name = "phin___phin_2.9.3.tgz"; + url = "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz"; + sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c"; + }; + } + { + name = "pify___pify_2.3.0.tgz"; + path = fetchurl { + name = "pify___pify_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz"; + sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; + }; + } + { + name = "pify___pify_3.0.0.tgz"; + path = fetchurl { + name = "pify___pify_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + } + { + name = "pixelmatch___pixelmatch_4.0.2.tgz"; + path = fetchurl { + name = "pixelmatch___pixelmatch_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz"; + sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854"; + }; + } + { + name = "pkg_up___pkg_up_3.1.0.tgz"; + path = fetchurl { + name = "pkg_up___pkg_up_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz"; + sha1 = "100ec235cc150e4fd42519412596a28512a0def5"; + }; + } + { + name = "plist___plist_3.0.2.tgz"; + path = fetchurl { + name = "plist___plist_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/plist/-/plist-3.0.2.tgz"; + sha1 = "74bbf011124b90421c22d15779cee60060ba95bc"; + }; + } + { + name = "pluralizers___pluralizers_0.1.7.tgz"; + path = fetchurl { + name = "pluralizers___pluralizers_0.1.7.tgz"; + url = "https://registry.yarnpkg.com/pluralizers/-/pluralizers-0.1.7.tgz"; + sha1 = "8d38dd0a1b660e739b10ab2eab10b684c9d50142"; + }; + } + { + name = "png_to_ico___png_to_ico_2.1.1.tgz"; + path = fetchurl { + name = "png_to_ico___png_to_ico_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-2.1.1.tgz"; + sha1 = "35be46f93c1ac8d77025f6f4b60c1fa567c1d47c"; + }; + } + { + name = "pngjs___pngjs_3.4.0.tgz"; + path = fetchurl { + name = "pngjs___pngjs_3.4.0.tgz"; + url = "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz"; + sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f"; + }; + } + { + name = "prelude_ls___prelude_ls_1.2.1.tgz"; + path = fetchurl { + name = "prelude_ls___prelude_ls_1.2.1.tgz"; + url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz"; + sha1 = "debc6489d7a6e6b0e7611888cec880337d316396"; + }; + } + { + name = "prepend_http___prepend_http_1.0.4.tgz"; + path = fetchurl { + name = "prepend_http___prepend_http_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz"; + sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"; + }; + } + { + name = "prepend_http___prepend_http_2.0.0.tgz"; + path = fetchurl { + name = "prepend_http___prepend_http_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz"; + sha1 = "e92434bfa5ea8c19f41cdfd401d741a3c819d897"; + }; + } + { + name = "printj___printj_1.1.2.tgz"; + path = fetchurl { + name = "printj___printj_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz"; + sha1 = "d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"; + }; + } + { + name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; + path = fetchurl { + name = "process_nextick_args___process_nextick_args_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"; + }; + } + { + name = "process___process_0.5.2.tgz"; + path = fetchurl { + name = "process___process_0.5.2.tgz"; + url = "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz"; + sha1 = "1638d8a8e34c2f440a91db95ab9aeb677fc185cf"; + }; + } + { + name = "progress___progress_2.0.3.tgz"; + path = fetchurl { + name = "progress___progress_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz"; + sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"; + }; + } + { + name = "promise_inflight___promise_inflight_1.0.1.tgz"; + path = fetchurl { + name = "promise_inflight___promise_inflight_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz"; + sha1 = "98472870bf228132fcbdd868129bad12c3c029e3"; + }; + } + { + name = "promise_retry___promise_retry_1.1.1.tgz"; + path = fetchurl { + name = "promise_retry___promise_retry_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz"; + sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d"; + }; + } + { + name = "promzard___promzard_0.3.0.tgz"; + path = fetchurl { + name = "promzard___promzard_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz"; + sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"; + }; + } + { + name = "proto_list___proto_list_1.2.4.tgz"; + path = fetchurl { + name = "proto_list___proto_list_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz"; + sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849"; + }; + } + { + name = "protoduck___protoduck_5.0.1.tgz"; + path = fetchurl { + name = "protoduck___protoduck_5.0.1.tgz"; + url = "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz"; + sha1 = "03c3659ca18007b69a50fd82a7ebcc516261151f"; + }; + } + { + name = "prr___prr_1.0.1.tgz"; + path = fetchurl { + name = "prr___prr_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz"; + sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; + }; + } + { + name = "pseudomap___pseudomap_1.0.2.tgz"; + path = fetchurl { + name = "pseudomap___pseudomap_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz"; + sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; + }; + } + { + name = "psl___psl_1.6.0.tgz"; + path = fetchurl { + name = "psl___psl_1.6.0.tgz"; + url = "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz"; + sha1 = "60557582ee23b6c43719d9890fb4170ecd91e110"; + }; + } + { + name = "psl___psl_1.8.0.tgz"; + path = fetchurl { + name = "psl___psl_1.8.0.tgz"; + url = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz"; + sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24"; + }; + } + { + name = "pump___pump_2.0.1.tgz"; + path = fetchurl { + name = "pump___pump_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz"; + sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909"; + }; + } + { + name = "pump___pump_3.0.0.tgz"; + path = fetchurl { + name = "pump___pump_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz"; + sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64"; + }; + } + { + name = "pumpify___pumpify_1.5.1.tgz"; + path = fetchurl { + name = "pumpify___pumpify_1.5.1.tgz"; + url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz"; + sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce"; + }; + } + { + name = "punycode___punycode_1.4.1.tgz"; + path = fetchurl { + name = "punycode___punycode_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + } + { + name = "punycode___punycode_2.1.1.tgz"; + path = fetchurl { + name = "punycode___punycode_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz"; + sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec"; + }; + } + { + name = "pupa___pupa_2.1.1.tgz"; + path = fetchurl { + name = "pupa___pupa_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz"; + sha1 = "f5e8fd4afc2c5d97828faa523549ed8744a20d62"; + }; + } + { + name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz"; + path = fetchurl { + name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz"; + url = "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz"; + sha1 = "bb5b699ef7f9f0505092a3748be4464fe71b5819"; + }; + } + { + name = "qs___qs_6.5.2.tgz"; + path = fetchurl { + name = "qs___qs_6.5.2.tgz"; + url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz"; + sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36"; + }; + } + { + name = "query_string___query_string_6.10.1.tgz"; + path = fetchurl { + name = "query_string___query_string_6.10.1.tgz"; + url = "https://registry.yarnpkg.com/query-string/-/query-string-6.10.1.tgz"; + sha1 = "30b3505f6fca741d5ae541964d1b3ae9dc2a0de8"; + }; + } + { + name = "qw___qw_1.0.1.tgz"; + path = fetchurl { + name = "qw___qw_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz"; + sha1 = "efbfdc740f9ad054304426acb183412cc8b996d4"; + }; + } + { + name = "rc___rc_1.2.8.tgz"; + path = fetchurl { + name = "rc___rc_1.2.8.tgz"; + url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz"; + sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"; + }; + } + { + name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz"; + path = fetchurl { + name = "read_cmd_shim___read_cmd_shim_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz"; + sha1 = "87e43eba50098ba5a32d0ceb583ab8e43b961c16"; + }; + } + { + name = "read_config_file___read_config_file_6.2.0.tgz"; + path = fetchurl { + name = "read_config_file___read_config_file_6.2.0.tgz"; + url = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.2.0.tgz"; + sha1 = "71536072330bcd62ba814f91458b12add9fc7ade"; + }; + } + { + name = "read_installed___read_installed_4.0.3.tgz"; + path = fetchurl { + name = "read_installed___read_installed_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz"; + sha1 = "ff9b8b67f187d1e4c29b9feb31f6b223acd19067"; + }; + } + { + name = "read_package_json___read_package_json_2.1.1.tgz"; + path = fetchurl { + name = "read_package_json___read_package_json_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz"; + sha1 = "16aa66c59e7d4dad6288f179dd9295fd59bb98f1"; + }; + } + { + name = "read_package_tree___read_package_tree_5.3.1.tgz"; + path = fetchurl { + name = "read_package_tree___read_package_tree_5.3.1.tgz"; + url = "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz"; + sha1 = "a32cb64c7f31eb8a6f31ef06f9cedf74068fe636"; + }; + } + { + name = "read_pkg_up___read_pkg_up_2.0.0.tgz"; + path = fetchurl { + name = "read_pkg_up___read_pkg_up_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz"; + sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be"; + }; + } + { + name = "read_pkg___read_pkg_2.0.0.tgz"; + path = fetchurl { + name = "read_pkg___read_pkg_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz"; + sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"; + }; + } + { + name = "read___read_1.0.7.tgz"; + path = fetchurl { + name = "read___read_1.0.7.tgz"; + url = "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz"; + sha1 = "b3da19bd052431a97671d44a42634adf710b40c4"; + }; + } + { + name = "readable_stream___readable_stream_2.3.7.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_2.3.7.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz"; + sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57"; + }; + } + { + name = "readable_stream___readable_stream_3.6.0.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_3.6.0.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz"; + sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198"; + }; + } + { + name = "readable_stream___readable_stream_1.1.14.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_1.1.14.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz"; + sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9"; + }; + } + { + name = "readdir_glob___readdir_glob_1.1.1.tgz"; + path = fetchurl { + name = "readdir_glob___readdir_glob_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz"; + sha1 = "f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4"; + }; + } + { + name = "readdir_scoped_modules___readdir_scoped_modules_1.1.0.tgz"; + path = fetchurl { + name = "readdir_scoped_modules___readdir_scoped_modules_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz"; + sha1 = "8d45407b4f870a0dcaebc0e28670d18e74514309"; + }; + } + { + name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz"; + path = fetchurl { + name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz"; + url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz"; + sha1 = "cac2dacc8a1ea675feaabaeb8ae833898ae46f55"; + }; + } + { + name = "regexpp___regexpp_3.1.0.tgz"; + path = fetchurl { + name = "regexpp___regexpp_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz"; + sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"; + }; + } + { + name = "registry_auth_token___registry_auth_token_3.4.0.tgz"; + path = fetchurl { + name = "registry_auth_token___registry_auth_token_3.4.0.tgz"; + url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz"; + sha1 = "d7446815433f5d5ed6431cd5dca21048f66b397e"; + }; + } + { + name = "registry_auth_token___registry_auth_token_4.0.0.tgz"; + path = fetchurl { + name = "registry_auth_token___registry_auth_token_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz"; + sha1 = "30e55961eec77379da551ea5c4cf43cbf03522be"; + }; + } + { + name = "registry_url___registry_url_3.1.0.tgz"; + path = fetchurl { + name = "registry_url___registry_url_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz"; + sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942"; + }; + } + { + name = "registry_url___registry_url_5.1.0.tgz"; + path = fetchurl { + name = "registry_url___registry_url_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz"; + sha1 = "e98334b50d5434b81136b44ec638d9c2009c5009"; + }; + } + { + name = "request___request_2.88.0.tgz"; + path = fetchurl { + name = "request___request_2.88.0.tgz"; + url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz"; + sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef"; + }; + } + { + name = "request___request_2.88.2.tgz"; + path = fetchurl { + name = "request___request_2.88.2.tgz"; + url = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz"; + sha1 = "d73c918731cb5a87da047e207234146f664d12b3"; + }; + } + { + name = "require_directory___require_directory_2.1.1.tgz"; + path = fetchurl { + name = "require_directory___require_directory_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz"; + sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; + }; + } + { + name = "require_from_string___require_from_string_2.0.2.tgz"; + path = fetchurl { + name = "require_from_string___require_from_string_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz"; + sha1 = "89a7fdd938261267318eafe14f9c32e598c36909"; + }; + } + { + name = "require_main_filename___require_main_filename_1.0.1.tgz"; + path = fetchurl { + name = "require_main_filename___require_main_filename_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz"; + sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1"; + }; + } + { + name = "require_main_filename___require_main_filename_2.0.0.tgz"; + path = fetchurl { + name = "require_main_filename___require_main_filename_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz"; + sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b"; + }; + } + { + name = "resolve_from___resolve_from_4.0.0.tgz"; + path = fetchurl { + name = "resolve_from___resolve_from_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz"; + sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6"; + }; + } + { + name = "resolve___resolve_1.13.1.tgz"; + path = fetchurl { + name = "resolve___resolve_1.13.1.tgz"; + url = "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz"; + sha1 = "be0aa4c06acd53083505abb35f4d66932ab35d16"; + }; + } + { + name = "responselike___responselike_1.0.2.tgz"; + path = fetchurl { + name = "responselike___responselike_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz"; + sha1 = "918720ef3b631c5642be068f15ade5a46f4ba1e7"; + }; + } + { + name = "retry___retry_0.10.1.tgz"; + path = fetchurl { + name = "retry___retry_0.10.1.tgz"; + url = "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz"; + sha1 = "e76388d217992c252750241d3d3956fed98d8ff4"; + }; + } + { + name = "retry___retry_0.12.0.tgz"; + path = fetchurl { + name = "retry___retry_0.12.0.tgz"; + url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz"; + sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b"; + }; + } + { + name = "rimraf___rimraf_2.7.1.tgz"; + path = fetchurl { + name = "rimraf___rimraf_2.7.1.tgz"; + url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz"; + sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec"; + }; + } + { + name = "rimraf___rimraf_3.0.2.tgz"; + path = fetchurl { + name = "rimraf___rimraf_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz"; + sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"; + }; + } + { + name = "run_queue___run_queue_1.0.3.tgz"; + path = fetchurl { + name = "run_queue___run_queue_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz"; + sha1 = "e848396f057d223f24386924618e25694161ec47"; + }; + } + { + name = "safe_buffer___safe_buffer_5.2.1.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.2.1.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz"; + sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"; + }; + } + { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; + }; + } + { + name = "safer_buffer___safer_buffer_2.1.2.tgz"; + path = fetchurl { + name = "safer_buffer___safer_buffer_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a"; + }; + } + { + name = "sanitize_filename___sanitize_filename_1.6.3.tgz"; + path = fetchurl { + name = "sanitize_filename___sanitize_filename_1.6.3.tgz"; + url = "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz"; + sha1 = "755ebd752045931977e30b2025d340d7c9090378"; + }; + } + { + name = "sax___sax_1.2.4.tgz"; + path = fetchurl { + name = "sax___sax_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz"; + sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9"; + }; + } + { + name = "semver_diff___semver_diff_2.1.0.tgz"; + path = fetchurl { + name = "semver_diff___semver_diff_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz"; + sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"; + }; + } + { + name = "semver_diff___semver_diff_3.1.1.tgz"; + path = fetchurl { + name = "semver_diff___semver_diff_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz"; + sha1 = "05f77ce59f325e00e2706afd67bb506ddb1ca32b"; + }; + } + { + name = "semver___semver_5.7.1.tgz"; + path = fetchurl { + name = "semver___semver_5.7.1.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz"; + sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7"; + }; + } + { + name = "semver___semver_6.3.0.tgz"; + path = fetchurl { + name = "semver___semver_6.3.0.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz"; + sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d"; + }; + } + { + name = "semver___semver_7.3.2.tgz"; + path = fetchurl { + name = "semver___semver_7.3.2.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz"; + sha1 = "604962b052b81ed0786aae84389ffba70ffd3938"; + }; + } + { + name = "semver___semver_7.3.4.tgz"; + path = fetchurl { + name = "semver___semver_7.3.4.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz"; + sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97"; + }; + } + { + name = "semver___semver_7.3.5.tgz"; + path = fetchurl { + name = "semver___semver_7.3.5.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz"; + sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7"; + }; + } + { + name = "set_blocking___set_blocking_2.0.0.tgz"; + path = fetchurl { + name = "set_blocking___set_blocking_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + } + { + name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz"; + path = fetchurl { + name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz"; + sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"; + }; + } + { + name = "sha___sha_3.0.0.tgz"; + path = fetchurl { + name = "sha___sha_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/sha/-/sha-3.0.0.tgz"; + sha1 = "b2f2f90af690c16a3a839a6a6c680ea51fedd1ae"; + }; + } + { + name = "shebang_command___shebang_command_1.2.0.tgz"; + path = fetchurl { + name = "shebang_command___shebang_command_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz"; + sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; + }; + } + { + name = "shebang_command___shebang_command_2.0.0.tgz"; + path = fetchurl { + name = "shebang_command___shebang_command_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz"; + sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea"; + }; + } + { + name = "shebang_regex___shebang_regex_1.0.0.tgz"; + path = fetchurl { + name = "shebang_regex___shebang_regex_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz"; + sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; + }; + } + { + name = "shebang_regex___shebang_regex_3.0.0.tgz"; + path = fetchurl { + name = "shebang_regex___shebang_regex_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz"; + sha1 = "ae16f1644d873ecad843b0307b143362d4c42172"; + }; + } + { + name = "signal_exit___signal_exit_3.0.2.tgz"; + path = fetchurl { + name = "signal_exit___signal_exit_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + } + { + name = "slice_ansi___slice_ansi_1.0.0.tgz"; + path = fetchurl { + name = "slice_ansi___slice_ansi_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz"; + sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d"; + }; + } + { + name = "slice_ansi___slice_ansi_4.0.0.tgz"; + path = fetchurl { + name = "slice_ansi___slice_ansi_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz"; + sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b"; + }; + } + { + name = "slide___slide_1.1.6.tgz"; + path = fetchurl { + name = "slide___slide_1.1.6.tgz"; + url = "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz"; + sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"; + }; + } + { + name = "smart_buffer___smart_buffer_4.1.0.tgz"; + path = fetchurl { + name = "smart_buffer___smart_buffer_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz"; + sha1 = "91605c25d91652f4661ea69ccf45f1b331ca21ba"; + }; + } + { + name = "socks_proxy_agent___socks_proxy_agent_4.0.2.tgz"; + path = fetchurl { + name = "socks_proxy_agent___socks_proxy_agent_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz"; + sha1 = "3c8991f3145b2799e70e11bd5fbc8b1963116386"; + }; + } + { + name = "socks___socks_2.3.3.tgz"; + path = fetchurl { + name = "socks___socks_2.3.3.tgz"; + url = "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz"; + sha1 = "01129f0a5d534d2b897712ed8aceab7ee65d78e3"; + }; + } + { + name = "sorted_object___sorted_object_2.0.1.tgz"; + path = fetchurl { + name = "sorted_object___sorted_object_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz"; + sha1 = "7d631f4bd3a798a24af1dffcfbfe83337a5df5fc"; + }; + } + { + name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz"; + path = fetchurl { + name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz"; + url = "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz"; + sha1 = "c7794c7e077880052ff71a8d4a2dbb4a9a638ac7"; + }; + } + { + name = "source_map_support___source_map_support_0.5.19.tgz"; + path = fetchurl { + name = "source_map_support___source_map_support_0.5.19.tgz"; + url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz"; + sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61"; + }; + } + { + name = "source_map___source_map_0.5.7.tgz"; + path = fetchurl { + name = "source_map___source_map_0.5.7.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + } + { + name = "source_map___source_map_0.6.1.tgz"; + path = fetchurl { + name = "source_map___source_map_0.6.1.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz"; + sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263"; + }; + } + { + name = "spdx_correct___spdx_correct_3.1.0.tgz"; + path = fetchurl { + name = "spdx_correct___spdx_correct_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz"; + sha1 = "fb83e504445268f154b074e218c87c003cd31df4"; + }; + } + { + name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz"; + path = fetchurl { + name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"; + sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977"; + }; + } + { + name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz"; + path = fetchurl { + name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"; + sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0"; + }; + } + { + name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz"; + path = fetchurl { + name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz"; + url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"; + sha1 = "3694b5804567a458d3c8045842a6358632f62654"; + }; + } + { + name = "split_on_first___split_on_first_1.1.0.tgz"; + path = fetchurl { + name = "split_on_first___split_on_first_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz"; + sha1 = "f610afeee3b12bce1d0c30425e76398b78249a5f"; + }; + } + { + name = "sprintf_js___sprintf_js_1.1.2.tgz"; + path = fetchurl { + name = "sprintf_js___sprintf_js_1.1.2.tgz"; + url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz"; + sha1 = "da1765262bf8c0f571749f2ad6c26300207ae673"; + }; + } + { + name = "sprintf_js___sprintf_js_1.0.3.tgz"; + path = fetchurl { + name = "sprintf_js___sprintf_js_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + } + { + name = "sshpk___sshpk_1.16.1.tgz"; + path = fetchurl { + name = "sshpk___sshpk_1.16.1.tgz"; + url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz"; + sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877"; + }; + } + { + name = "ssri___ssri_6.0.2.tgz"; + path = fetchurl { + name = "ssri___ssri_6.0.2.tgz"; + url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz"; + sha1 = "157939134f20464e7301ddba3e90ffa8f7728ac5"; + }; + } + { + name = "stat_mode___stat_mode_1.0.0.tgz"; + path = fetchurl { + name = "stat_mode___stat_mode_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz"; + sha1 = "68b55cb61ea639ff57136f36b216a291800d1465"; + }; + } + { + name = "stream_each___stream_each_1.2.3.tgz"; + path = fetchurl { + name = "stream_each___stream_each_1.2.3.tgz"; + url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz"; + sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae"; + }; + } + { + name = "stream_iterate___stream_iterate_1.2.0.tgz"; + path = fetchurl { + name = "stream_iterate___stream_iterate_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz"; + sha1 = "2bd7c77296c1702a46488b8ad41f79865eecd4e1"; + }; + } + { + name = "stream_shift___stream_shift_1.0.1.tgz"; + path = fetchurl { + name = "stream_shift___stream_shift_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz"; + sha1 = "d7088281559ab2778424279b0877da3c392d5a3d"; + }; + } + { + name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz"; + path = fetchurl { + name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"; + sha1 = "b9c7330c7042862f6b142dc274bbcc5866ce3546"; + }; + } + { + name = "string_width___string_width_1.0.2.tgz"; + path = fetchurl { + name = "string_width___string_width_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + } + { + name = "string_width___string_width_2.1.1.tgz"; + path = fetchurl { + name = "string_width___string_width_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz"; + sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e"; + }; + } + { + name = "string_width___string_width_3.1.0.tgz"; + path = fetchurl { + name = "string_width___string_width_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz"; + sha1 = "22767be21b62af1081574306f69ac51b62203961"; + }; + } + { + name = "string_width___string_width_4.2.0.tgz"; + path = fetchurl { + name = "string_width___string_width_4.2.0.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz"; + sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5"; + }; + } + { + name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz"; + path = fetchurl { + name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz"; + sha1 = "6cc47f0d7eb8d62b0f3701611715a3954591d634"; + }; + } + { + name = "string.prototype.trimright___string.prototype.trimright_2.1.0.tgz"; + path = fetchurl { + name = "string.prototype.trimright___string.prototype.trimright_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz"; + sha1 = "669d164be9df9b6f7559fa8e89945b168a5a6c58"; + }; + } + { + name = "string_decoder___string_decoder_1.3.0.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz"; + sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e"; + }; + } + { + name = "string_decoder___string_decoder_0.10.31.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_0.10.31.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz"; + sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; + }; + } + { + name = "string_decoder___string_decoder_1.1.1.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; + sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8"; + }; + } + { + name = "stringify_package___stringify_package_1.0.1.tgz"; + path = fetchurl { + name = "stringify_package___stringify_package_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz"; + sha1 = "e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85"; + }; + } + { + name = "strip_ansi___strip_ansi_3.0.1.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + } + { + name = "strip_ansi___strip_ansi_4.0.0.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz"; + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; + }; + } + { + name = "strip_ansi___strip_ansi_5.2.0.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_5.2.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz"; + sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"; + }; + } + { + name = "strip_ansi___strip_ansi_6.0.0.tgz"; + path = fetchurl { + name = "strip_ansi___strip_ansi_6.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz"; + sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532"; + }; + } + { + name = "strip_bom___strip_bom_3.0.0.tgz"; + path = fetchurl { + name = "strip_bom___strip_bom_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz"; + sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"; + }; + } + { + name = "strip_eof___strip_eof_1.0.0.tgz"; + path = fetchurl { + name = "strip_eof___strip_eof_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz"; + sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf"; + }; + } + { + name = "strip_json_comments___strip_json_comments_3.1.1.tgz"; + path = fetchurl { + name = "strip_json_comments___strip_json_comments_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz"; + sha1 = "31f1281b3832630434831c310c01cccda8cbe006"; + }; + } + { + name = "strip_json_comments___strip_json_comments_2.0.1.tgz"; + path = fetchurl { + name = "strip_json_comments___strip_json_comments_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + } + { + name = "supports_color___supports_color_5.5.0.tgz"; + path = fetchurl { + name = "supports_color___supports_color_5.5.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz"; + sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f"; + }; + } + { + name = "supports_color___supports_color_7.1.0.tgz"; + path = fetchurl { + name = "supports_color___supports_color_7.1.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz"; + sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1"; + }; + } + { + name = "table___table_6.7.1.tgz"; + path = fetchurl { + name = "table___table_6.7.1.tgz"; + url = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz"; + sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2"; + }; + } + { + name = "tar_stream___tar_stream_2.2.0.tgz"; + path = fetchurl { + name = "tar_stream___tar_stream_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz"; + sha1 = "acad84c284136b060dc3faa64474aa9aebd77287"; + }; + } + { + name = "tar___tar_4.4.13.tgz"; + path = fetchurl { + name = "tar___tar_4.4.13.tgz"; + url = "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz"; + sha1 = "43b364bc52888d555298637b10d60790254ab525"; + }; + } + { + name = "tar___tar_6.1.0.tgz"; + path = fetchurl { + name = "tar___tar_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz"; + sha1 = "d1724e9bcc04b977b18d5c573b333a2207229a83"; + }; + } + { + name = "temp_file___temp_file_3.4.0.tgz"; + path = fetchurl { + name = "temp_file___temp_file_3.4.0.tgz"; + url = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz"; + sha1 = "766ea28911c683996c248ef1a20eea04d51652c7"; + }; + } + { + name = "term_size___term_size_1.2.0.tgz"; + path = fetchurl { + name = "term_size___term_size_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz"; + sha1 = "458b83887f288fc56d6fffbfad262e26638efa69"; + }; + } + { + name = "text_table___text_table_0.2.0.tgz"; + path = fetchurl { + name = "text_table___text_table_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"; + sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4"; + }; + } + { + name = "through2___through2_2.0.5.tgz"; + path = fetchurl { + name = "through2___through2_2.0.5.tgz"; + url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz"; + sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd"; + }; + } + { + name = "through___through_2.3.8.tgz"; + path = fetchurl { + name = "through___through_2.3.8.tgz"; + url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz"; + sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; + }; + } + { + name = "timed_out___timed_out_4.0.1.tgz"; + path = fetchurl { + name = "timed_out___timed_out_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz"; + sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f"; + }; + } + { + name = "timm___timm_1.7.1.tgz"; + path = fetchurl { + name = "timm___timm_1.7.1.tgz"; + url = "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz"; + sha1 = "96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f"; + }; + } + { + name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz"; + path = fetchurl { + name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz"; + sha1 = "fa08aad501ed730f31cc043181d995c39a935e07"; + }; + } + { + name = "tinycolor2___tinycolor2_1.4.2.tgz"; + path = fetchurl { + name = "tinycolor2___tinycolor2_1.4.2.tgz"; + url = "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz"; + sha1 = "3f6a4d1071ad07676d7fa472e1fac40a719d8803"; + }; + } + { + name = "tmp_promise___tmp_promise_1.1.0.tgz"; + path = fetchurl { + name = "tmp_promise___tmp_promise_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz"; + sha1 = "bb924d239029157b9bc1d506a6aa341f8b13e64c"; + }; + } + { + name = "tmp_promise___tmp_promise_3.0.2.tgz"; + path = fetchurl { + name = "tmp_promise___tmp_promise_3.0.2.tgz"; + url = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz"; + sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a"; + }; + } + { + name = "tmp___tmp_0.1.0.tgz"; + path = fetchurl { + name = "tmp___tmp_0.1.0.tgz"; + url = "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz"; + sha1 = "ee434a4e22543082e294ba6201dcc6eafefa2877"; + }; + } + { + name = "tmp___tmp_0.2.1.tgz"; + path = fetchurl { + name = "tmp___tmp_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz"; + sha1 = "8457fc3037dcf4719c251367a1af6500ee1ccf14"; + }; + } + { + name = "to_fast_properties___to_fast_properties_2.0.0.tgz"; + path = fetchurl { + name = "to_fast_properties___to_fast_properties_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz"; + sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e"; + }; + } + { + name = "to_readable_stream___to_readable_stream_1.0.0.tgz"; + path = fetchurl { + name = "to_readable_stream___to_readable_stream_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz"; + sha1 = "ce0aa0c2f3df6adf852efb404a783e77c0475771"; + }; + } + { + name = "tough_cookie___tough_cookie_2.4.3.tgz"; + path = fetchurl { + name = "tough_cookie___tough_cookie_2.4.3.tgz"; + url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz"; + sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781"; + }; + } + { + name = "tough_cookie___tough_cookie_2.5.0.tgz"; + path = fetchurl { + name = "tough_cookie___tough_cookie_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz"; + sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"; + }; + } + { + name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz"; + path = fetchurl { + name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz"; + sha1 = "405923909592d56f78a5818434b0b78489ca5f2b"; + }; + } + { + name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; + path = fetchurl { + name = "tunnel_agent___tunnel_agent_0.6.0.tgz"; + url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + } + { + name = "tweetnacl___tweetnacl_0.14.5.tgz"; + path = fetchurl { + name = "tweetnacl___tweetnacl_0.14.5.tgz"; + url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + } + { + name = "type_check___type_check_0.4.0.tgz"; + path = fetchurl { + name = "type_check___type_check_0.4.0.tgz"; + url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz"; + sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1"; + }; + } + { + name = "type_fest___type_fest_0.16.0.tgz"; + path = fetchurl { + name = "type_fest___type_fest_0.16.0.tgz"; + url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz"; + sha1 = "3240b891a78b0deae910dbeb86553e552a148860"; + }; + } + { + name = "type_fest___type_fest_0.20.2.tgz"; + path = fetchurl { + name = "type_fest___type_fest_0.20.2.tgz"; + url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz"; + sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4"; + }; + } + { + name = "type_fest___type_fest_0.8.1.tgz"; + path = fetchurl { + name = "type_fest___type_fest_0.8.1.tgz"; + url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz"; + sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d"; + }; + } + { + name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz"; + path = fetchurl { + name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz"; + url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"; + sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"; + }; + } + { + name = "typedarray___typedarray_0.0.6.tgz"; + path = fetchurl { + name = "typedarray___typedarray_0.0.6.tgz"; + url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + } + { + name = "uid_number___uid_number_0.0.6.tgz"; + path = fetchurl { + name = "uid_number___uid_number_0.0.6.tgz"; + url = "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz"; + sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81"; + }; + } + { + name = "umask___umask_1.1.0.tgz"; + path = fetchurl { + name = "umask___umask_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz"; + sha1 = "f29cebf01df517912bb58ff9c4e50fde8e33320d"; + }; + } + { + name = "unique_filename___unique_filename_1.1.1.tgz"; + path = fetchurl { + name = "unique_filename___unique_filename_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz"; + sha1 = "1d69769369ada0583103a1e6ae87681b56573230"; + }; + } + { + name = "unique_slug___unique_slug_2.0.2.tgz"; + path = fetchurl { + name = "unique_slug___unique_slug_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz"; + sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c"; + }; + } + { + name = "unique_string___unique_string_1.0.0.tgz"; + path = fetchurl { + name = "unique_string___unique_string_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz"; + sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a"; + }; + } + { + name = "unique_string___unique_string_2.0.0.tgz"; + path = fetchurl { + name = "unique_string___unique_string_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz"; + sha1 = "39c6451f81afb2749de2b233e3f7c5e8843bd89d"; + }; + } + { + name = "universalify___universalify_0.1.2.tgz"; + path = fetchurl { + name = "universalify___universalify_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz"; + sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66"; + }; + } + { + name = "universalify___universalify_1.0.0.tgz"; + path = fetchurl { + name = "universalify___universalify_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz"; + sha1 = "b61a1da173e8435b2fe3c67d29b9adf8594bd16d"; + }; + } + { + name = "universalify___universalify_2.0.0.tgz"; + path = fetchurl { + name = "universalify___universalify_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz"; + sha1 = "75a4984efedc4b08975c5aeb73f530d02df25717"; + }; + } + { + name = "unpipe___unpipe_1.0.0.tgz"; + path = fetchurl { + name = "unpipe___unpipe_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + } + { + name = "untildify___untildify_3.0.3.tgz"; + path = fetchurl { + name = "untildify___untildify_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz"; + sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"; + }; + } + { + name = "unzip_crx_3___unzip_crx_3_0.2.0.tgz"; + path = fetchurl { + name = "unzip_crx_3___unzip_crx_3_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/unzip-crx-3/-/unzip-crx-3-0.2.0.tgz"; + sha1 = "d5324147b104a8aed9ae8639c95521f6f7cda292"; + }; + } + { + name = "unzip_response___unzip_response_2.0.1.tgz"; + path = fetchurl { + name = "unzip_response___unzip_response_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz"; + sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97"; + }; + } + { + name = "update_notifier___update_notifier_2.5.0.tgz"; + path = fetchurl { + name = "update_notifier___update_notifier_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz"; + sha1 = "d0744593e13f161e406acb1d9408b72cad08aff6"; + }; + } + { + name = "update_notifier___update_notifier_5.1.0.tgz"; + path = fetchurl { + name = "update_notifier___update_notifier_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz"; + sha1 = "4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"; + }; + } + { + name = "uri_js___uri_js_4.2.2.tgz"; + path = fetchurl { + name = "uri_js___uri_js_4.2.2.tgz"; + url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz"; + sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0"; + }; + } + { + name = "url_parse_lax___url_parse_lax_1.0.0.tgz"; + path = fetchurl { + name = "url_parse_lax___url_parse_lax_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz"; + sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73"; + }; + } + { + name = "url_parse_lax___url_parse_lax_3.0.0.tgz"; + path = fetchurl { + name = "url_parse_lax___url_parse_lax_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz"; + sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c"; + }; + } + { + name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz"; + path = fetchurl { + name = "utf8_byte_length___utf8_byte_length_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz"; + sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61"; + }; + } + { + name = "utif___utif_2.0.1.tgz"; + path = fetchurl { + name = "utif___utif_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz"; + sha1 = "9e1582d9bbd20011a6588548ed3266298e711759"; + }; + } + { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + path = fetchurl { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + } + { + name = "util_extend___util_extend_1.0.3.tgz"; + path = fetchurl { + name = "util_extend___util_extend_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz"; + sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f"; + }; + } + { + name = "util_promisify___util_promisify_2.1.0.tgz"; + path = fetchurl { + name = "util_promisify___util_promisify_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz"; + sha1 = "3c2236476c4d32c5ff3c47002add7c13b9a82a53"; + }; + } + { + name = "util.promisify___util.promisify_1.0.0.tgz"; + path = fetchurl { + name = "util.promisify___util.promisify_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz"; + sha1 = "440f7165a459c9a16dc145eb8e72f35687097030"; + }; + } + { + name = "uuid___uuid_3.3.3.tgz"; + path = fetchurl { + name = "uuid___uuid_3.3.3.tgz"; + url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz"; + sha1 = "4568f0216e78760ee1dbf3a4d2cf53e224112866"; + }; + } + { + name = "uuid___uuid_3.4.0.tgz"; + path = fetchurl { + name = "uuid___uuid_3.4.0.tgz"; + url = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz"; + sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee"; + }; + } + { + name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz"; + path = fetchurl { + name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz"; + url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz"; + sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745"; + }; + } + { + name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz"; + path = fetchurl { + name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"; + sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"; + }; + } + { + name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz"; + path = fetchurl { + name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz"; + sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e"; + }; + } + { + name = "verror___verror_1.10.0.tgz"; + path = fetchurl { + name = "verror___verror_1.10.0.tgz"; + url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + } + { + name = "walk___walk_2.3.14.tgz"; + path = fetchurl { + name = "walk___walk_2.3.14.tgz"; + url = "https://registry.yarnpkg.com/walk/-/walk-2.3.14.tgz"; + sha1 = "60ec8631cfd23276ae1e7363ce11d626452e1ef3"; + }; + } + { + name = "wcwidth___wcwidth_1.0.1.tgz"; + path = fetchurl { + name = "wcwidth___wcwidth_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz"; + sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"; + }; + } + { + name = "which_module___which_module_2.0.0.tgz"; + path = fetchurl { + name = "which_module___which_module_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz"; + sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; + }; + } + { + name = "which___which_1.3.1.tgz"; + path = fetchurl { + name = "which___which_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz"; + sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a"; + }; + } + { + name = "which___which_2.0.2.tgz"; + path = fetchurl { + name = "which___which_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz"; + sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"; + }; + } + { + name = "wide_align___wide_align_1.1.3.tgz"; + path = fetchurl { + name = "wide_align___wide_align_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz"; + sha1 = "ae074e6bdc0c14a431e804e624549c633b000457"; + }; + } + { + name = "widest_line___widest_line_2.0.1.tgz"; + path = fetchurl { + name = "widest_line___widest_line_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz"; + sha1 = "7438764730ec7ef4381ce4df82fb98a53142a3fc"; + }; + } + { + name = "widest_line___widest_line_3.1.0.tgz"; + path = fetchurl { + name = "widest_line___widest_line_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz"; + sha1 = "8292333bbf66cb45ff0de1603b136b7ae1496eca"; + }; + } + { + name = "winreg___winreg_1.2.4.tgz"; + path = fetchurl { + name = "winreg___winreg_1.2.4.tgz"; + url = "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz"; + sha1 = "ba065629b7a925130e15779108cf540990e98d1b"; + }; + } + { + name = "word_wrap___word_wrap_1.2.3.tgz"; + path = fetchurl { + name = "word_wrap___word_wrap_1.2.3.tgz"; + url = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz"; + sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c"; + }; + } + { + name = "worker_farm___worker_farm_1.7.0.tgz"; + path = fetchurl { + name = "worker_farm___worker_farm_1.7.0.tgz"; + url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz"; + sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8"; + }; + } + { + name = "wrap_ansi___wrap_ansi_2.1.0.tgz"; + path = fetchurl { + name = "wrap_ansi___wrap_ansi_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz"; + sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85"; + }; + } + { + name = "wrap_ansi___wrap_ansi_5.1.0.tgz"; + path = fetchurl { + name = "wrap_ansi___wrap_ansi_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz"; + sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09"; + }; + } + { + name = "wrap_ansi___wrap_ansi_7.0.0.tgz"; + path = fetchurl { + name = "wrap_ansi___wrap_ansi_7.0.0.tgz"; + url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"; + sha1 = "67e145cff510a6a6984bdf1152911d69d2eb9e43"; + }; + } + { + name = "wrappy___wrappy_1.0.2.tgz"; + path = fetchurl { + name = "wrappy___wrappy_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + } + { + name = "write_file_atomic___write_file_atomic_2.4.3.tgz"; + path = fetchurl { + name = "write_file_atomic___write_file_atomic_2.4.3.tgz"; + url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz"; + sha1 = "1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"; + }; + } + { + name = "write_file_atomic___write_file_atomic_3.0.1.tgz"; + path = fetchurl { + name = "write_file_atomic___write_file_atomic_3.0.1.tgz"; + url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz"; + sha1 = "558328352e673b5bb192cf86500d60b230667d4b"; + }; + } + { + name = "xdg_basedir___xdg_basedir_3.0.0.tgz"; + path = fetchurl { + name = "xdg_basedir___xdg_basedir_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz"; + sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4"; + }; + } + { + name = "xdg_basedir___xdg_basedir_4.0.0.tgz"; + path = fetchurl { + name = "xdg_basedir___xdg_basedir_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz"; + sha1 = "4bc8d9984403696225ef83a1573cbbcb4e79db13"; + }; + } + { + name = "xhr___xhr_2.5.0.tgz"; + path = fetchurl { + name = "xhr___xhr_2.5.0.tgz"; + url = "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz"; + sha1 = "bed8d1676d5ca36108667692b74b316c496e49dd"; + }; + } + { + name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz"; + path = fetchurl { + name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz"; + sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28"; + }; + } + { + name = "xml2js___xml2js_0.4.22.tgz"; + path = fetchurl { + name = "xml2js___xml2js_0.4.22.tgz"; + url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz"; + sha1 = "4fa2d846ec803237de86f30aa9b5f70b6600de02"; + }; + } + { + name = "xmlbuilder___xmlbuilder_15.1.1.tgz"; + path = fetchurl { + name = "xmlbuilder___xmlbuilder_15.1.1.tgz"; + url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz"; + sha1 = "9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"; + }; + } + { + name = "xmlbuilder___xmlbuilder_9.0.7.tgz"; + path = fetchurl { + name = "xmlbuilder___xmlbuilder_9.0.7.tgz"; + url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz"; + sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d"; + }; + } + { + name = "xmlbuilder___xmlbuilder_11.0.1.tgz"; + path = fetchurl { + name = "xmlbuilder___xmlbuilder_11.0.1.tgz"; + url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz"; + sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3"; + }; + } + { + name = "xmldom___xmldom_0.5.0.tgz"; + path = fetchurl { + name = "xmldom___xmldom_0.5.0.tgz"; + url = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz"; + sha1 = "193cb96b84aa3486127ea6272c4596354cb4962e"; + }; + } + { + name = "xtend___xtend_4.0.2.tgz"; + path = fetchurl { + name = "xtend___xtend_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz"; + sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54"; + }; + } + { + name = "y18n___y18n_3.2.2.tgz"; + path = fetchurl { + name = "y18n___y18n_3.2.2.tgz"; + url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz"; + sha1 = "85c901bd6470ce71fc4bb723ad209b70f7f28696"; + }; + } + { + name = "y18n___y18n_4.0.3.tgz"; + path = fetchurl { + name = "y18n___y18n_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz"; + sha1 = "b5f259c82cd6e336921efd7bfd8bf560de9eeedf"; + }; + } + { + name = "y18n___y18n_5.0.5.tgz"; + path = fetchurl { + name = "y18n___y18n_5.0.5.tgz"; + url = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz"; + sha1 = "8769ec08d03b1ea2df2500acef561743bbb9ab18"; + }; + } + { + name = "yaku___yaku_0.16.7.tgz"; + path = fetchurl { + name = "yaku___yaku_0.16.7.tgz"; + url = "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz"; + sha1 = "1d195c78aa9b5bf8479c895b9504fd4f0847984e"; + }; + } + { + name = "yallist___yallist_2.1.2.tgz"; + path = fetchurl { + name = "yallist___yallist_2.1.2.tgz"; + url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz"; + sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; + }; + } + { + name = "yallist___yallist_3.1.1.tgz"; + path = fetchurl { + name = "yallist___yallist_3.1.1.tgz"; + url = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz"; + sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"; + }; + } + { + name = "yallist___yallist_4.0.0.tgz"; + path = fetchurl { + name = "yallist___yallist_4.0.0.tgz"; + url = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz"; + sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72"; + }; + } + { + name = "yargs_parser___yargs_parser_15.0.1.tgz"; + path = fetchurl { + name = "yargs_parser___yargs_parser_15.0.1.tgz"; + url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz"; + sha1 = "54786af40b820dcb2fb8025b11b4d659d76323b3"; + }; + } + { + name = "yargs_parser___yargs_parser_20.2.4.tgz"; + path = fetchurl { + name = "yargs_parser___yargs_parser_20.2.4.tgz"; + url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz"; + sha1 = "b42890f14566796f85ae8e3a25290d205f154a54"; + }; + } + { + name = "yargs_parser___yargs_parser_7.0.0.tgz"; + path = fetchurl { + name = "yargs_parser___yargs_parser_7.0.0.tgz"; + url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz"; + sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"; + }; + } + { + name = "yargs___yargs_14.2.3.tgz"; + path = fetchurl { + name = "yargs___yargs_14.2.3.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz"; + sha1 = "1a1c3edced1afb2a2fea33604bc6d1d8d688a414"; + }; + } + { + name = "yargs___yargs_17.0.1.tgz"; + path = fetchurl { + name = "yargs___yargs_17.0.1.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz"; + sha1 = "6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb"; + }; + } + { + name = "yargs___yargs_8.0.2.tgz"; + path = fetchurl { + name = "yargs___yargs_8.0.2.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz"; + sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360"; + }; + } + { + name = "zip_stream___zip_stream_4.1.0.tgz"; + path = fetchurl { + name = "zip_stream___zip_stream_4.1.0.tgz"; + url = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz"; + sha1 = "51dd326571544e36aa3f756430b313576dc8fc79"; + }; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix new file mode 100644 index 000000000000..f8f4d31d6ec1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix @@ -0,0 +1,81 @@ +{ lib, fetchFromGitHub +, makeWrapper, makeDesktopItem, mkYarnPackage +, electron, element-web +}: +# Notes for maintainers: +# * versions of `element-web` and `element-desktop` should be kept in sync. +# * the Yarn dependency expression must be updated with `./update-element-desktop.sh <git release tag>` + +let + executableName = "element-desktop"; + version = "1.7.31"; + src = fetchFromGitHub { + owner = "vector-im"; + repo = "element-desktop"; + rev = "v${version}"; + sha256 = "14vyqzf69g4n3i7qjm1pgq2kwym6cira0jwvirzdrwxkfsl0dsq6"; + }; +in mkYarnPackage rec { + name = "element-desktop-${version}"; + inherit version src; + + packageJSON = ./element-desktop-package.json; + yarnNix = ./element-desktop-yarndeps.nix; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + # resources + mkdir -p "$out/share/element" + ln -s '${element-web}' "$out/share/element/webapp" + cp -r './deps/element-desktop' "$out/share/element/electron" + cp -r './deps/element-desktop/res/img' "$out/share/element" + rm "$out/share/element/electron/node_modules" + cp -r './node_modules' "$out/share/element/electron" + + # icons + for icon in $out/share/element/electron/build/icons/*.png; do + mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps" + ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png" + done + + # desktop item + mkdir -p "$out/share" + ln -s "${desktopItem}/share/applications" "$out/share/applications" + + # executable wrapper + makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \ + --add-flags "$out/share/element/electron" + ''; + + # Do not attempt generating a tarball for element-web again. + # note: `doDist = false;` does not work. + distPhase = '' + true + ''; + + # The desktop item properties should be kept in sync with data from upstream: + # https://github.com/vector-im/element-desktop/blob/develop/package.json + desktopItem = makeDesktopItem { + name = "element-desktop"; + exec = "${executableName} %u"; + icon = "element"; + desktopName = "Element (Riot)"; + genericName = "Matrix Client"; + comment = meta.description; + categories = "Network;InstantMessaging;Chat;"; + extraEntries = '' + StartupWMClass=element + MimeType=x-scheme-handler/element; + ''; + }; + + meta = with lib; { + description = "A feature-rich client for Matrix.org"; + homepage = "https://element.io/"; + changelog = "https://github.com/vector-im/element-desktop/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = teams.matrix.members; + inherit (electron.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix new file mode 100644 index 000000000000..d9aec35b04b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, writeText, jq, conf ? {} }: + +# Note for maintainers: +# Versions of `element-web` and `element-desktop` should be kept in sync. + +let + noPhoningHome = { + disable_guests = true; # disable automatic guest account registration at matrix.org + piwik = false; # disable analytics + }; + configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf)); + +in stdenv.mkDerivation rec { + pname = "element-web"; + version = "1.7.31"; + + src = fetchurl { + url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz"; + sha256 = "1p0vg5bkri7qiqv5yic56hjjbb5zvhvyzsm5zi7fx3yb7zdxmr3f"; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/ + cp -R . $out/ + ${jq}/bin/jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json" + + runHook postInstall + ''; + + meta = { + description = "A glossy Matrix collaboration client for the web"; + homepage = "https://element.io/"; + changelog = "https://github.com/vector-im/element-web/blob/v${version}/CHANGELOG.md"; + maintainers = lib.teams.matrix.members; + license = lib.licenses.asl20; + platforms = lib.platforms.all; + hydraPlatforms = []; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh new file mode 100755 index 000000000000..69d0d3d70728 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix + +set -euo pipefail + +if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then + echo "Regenerates the Yarn dependency lock files for the element-desktop package." + echo "Usage: $0 <git release tag>" + exit 1 +fi + +RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/element-desktop/$1" + +wget "$RIOT_WEB_SRC/package.json" -O element-desktop-package.json +wget "$RIOT_WEB_SRC/yarn.lock" -O element-desktop-yarndeps.lock +yarn2nix --lockfile=element-desktop-yarndeps.lock > element-desktop-yarndeps.nix +rm element-desktop-yarndeps.lock diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix new file mode 100644 index 000000000000..5d3b251089cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix @@ -0,0 +1,34 @@ +{ lib, mkFranzDerivation, fetchurl, xorg, xdg-utils, buildEnv, writeShellScriptBin }: + +let + mkFranzDerivation' = mkFranzDerivation.override { + xdg-utils = buildEnv { + name = "xdg-utils-for-ferdi"; + paths = [ + xdg-utils + (lib.hiPrio (writeShellScriptBin "xdg-open" '' + unset GDK_BACKEND + exec ${xdg-utils}/bin/xdg-open "$@" + '')) + ]; + }; + }; +in +mkFranzDerivation' rec { + pname = "ferdi"; + name = "Ferdi"; + version = "5.6.0-beta.6"; + src = fetchurl { + url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb"; + sha256 = "sha256-Q1HSAEVcaxFyOq7oWqa6AJJpsBKRxbsKb9ydyK/gH/A="; + }; + extraBuildInputs = [ xorg.libxshmfence ]; + meta = with lib; { + description = "Combine your favorite messaging services into one application"; + homepage = "https://getferdi.com/"; + license = licenses.asl20; + maintainers = with maintainers; [ davidtwco ma27 ]; + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix new file mode 100644 index 000000000000..d957daced26d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix @@ -0,0 +1,93 @@ +{ lib, stdenv +, fetchFromGitLab +, nix-update-script +, meson +, ninja +, gettext +, python3 +, rustPlatform +, pkg-config +, gtksourceview4 +, glib +, libhandy_0 +, gtk3 +, dbus +, openssl +, sqlite +, gst_all_1 +, cairo +, gdk-pixbuf +, gspell +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "fractal"; + version = "4.4.0"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "fractal"; + rev = version; + sha256 = "DSNVd9YvI7Dd3s3+M0+wE594tmL1yPNMnD1W9wLhSuw="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc="; + }; + + nativeBuildInputs = [ + gettext + meson + ninja + pkg-config + python3 + rustPlatform.rust.cargo + rustPlatform.cargoSetupHook + rustPlatform.rust.rustc + wrapGAppsHook + glib + ]; + + buildInputs = [ + cairo + dbus + gdk-pixbuf + glib + gspell + gst_all_1.gst-editing-services + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + (gst_all_1.gst-plugins-good.override { + gtkSupport = true; + }) + gst_all_1.gstreamer + gst_all_1.gst-devtools + gtk3 + gtksourceview4 + libhandy_0 + openssl + sqlite + ]; + + postPatch = '' + chmod +x scripts/test.sh + patchShebangs scripts/meson_post_install.py scripts/test.sh + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Matrix group messaging app"; + homepage = "https://gitlab.gnome.org/GNOME/fractal"; + license = licenses.gpl3; + maintainers = teams.gnome.members ++ (with maintainers; [ dtzWill ]); + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix new file mode 100644 index 000000000000..9f772bf3f6d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix @@ -0,0 +1,19 @@ +{ lib, mkFranzDerivation, fetchurl }: + +mkFranzDerivation rec { + pname = "franz"; + name = "Franz"; + version = "5.6.1"; + src = fetchurl { + url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb"; + sha256 = "1gn0n1hr6z2gsdnpxysyq6sm8y7cjr9jafhsam8ffw0bq74kph7p"; + }; + meta = with lib; { + description = "A free messaging app that combines chat & messaging services into one application"; + homepage = "https://meetfranz.com"; + license = licenses.free; + maintainers = [ maintainers.davidtwco ]; + platforms = [ "x86_64-linux" ]; + hydraPlatforms = [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix new file mode 100644 index 000000000000..d63318ecfaf7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix @@ -0,0 +1,94 @@ +{ stdenv +, lib +, makeWrapper +, wrapGAppsHook +, autoPatchelfHook +, dpkg +, xorg +, atk +, glib +, pango +, gdk-pixbuf +, cairo +, freetype +, fontconfig +, gtk3 +, gnome2 +, dbus +, nss +, nspr +, alsa-lib +, cups +, expat +, udev +, libnotify +, xdg-utils +, mesa +}: + +# Helper function for building a derivation for Franz and forks. + +{ pname, name, version, src, meta, extraBuildInputs ? [] }: + +stdenv.mkDerivation rec { + inherit pname version src meta; + + # Don't remove runtime deps. + dontPatchELF = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ]; + buildInputs = extraBuildInputs ++ (with xorg; [ + libXi + libXcursor + libXdamage + libXrandr + libXcomposite + libXext + libXfixes + libXrender + libX11 + libXtst + libXScrnSaver + ]) ++ [ + mesa #libgbm + gtk3 + atk + glib + pango + gdk-pixbuf + cairo + freetype + fontconfig + dbus + gnome2.GConf + nss + nspr + alsa-lib + cups + expat + stdenv.cc.cc + ]; + runtimeDependencies = [ stdenv.cc.cc.lib (lib.getLib udev) libnotify ]; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p $out/bin + cp -r opt $out + ln -s $out/opt/${name}/${pname} $out/bin + + # Provide desktop item and icon. + cp -r usr/share $out + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace /opt/${name}/${pname} ${pname} + ''; + + dontWrapGApps = true; + + postFixup = '' + wrapProgram $out/opt/${name}/${pname} \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDependencies}" \ + --prefix PATH : ${xdg-utils}/bin \ + "''${gappsWrapperArgs[@]}" + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix new file mode 100644 index 000000000000..4c28e346a124 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub +, guile, pkg-config, glib, loudmouth, gmp, libidn, readline, libtool +, libunwind, ncurses, curl, jansson, texinfo +, automake, autoconf }: +stdenv.mkDerivation rec { + pname = "freetalk"; + version = "4.1"; + + src = fetchFromGitHub { + owner = "GNUFreetalk"; + repo = "freetalk"; + rev = "v${version}"; + sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757"; + }; + + preConfigure = '' + ./autogen.sh + ''; + + nativeBuildInputs = [ pkg-config texinfo autoconf automake ]; + buildInputs = [ + guile glib loudmouth gmp libidn readline libtool + libunwind ncurses curl jansson + ]; + + meta = with lib; { + description = "Console XMPP client"; + license = licenses.gpl3Plus ; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; + downloadPage = "https://www.gnu.org/software/freetalk/"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix new file mode 100644 index 000000000000..74a4ab968c9c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix @@ -0,0 +1,78 @@ +{ lib, fetchurl, gettext, wrapGAppsHook + +# Native dependencies +, python3, gtk3, gobject-introspection, gnome +, glib-networking + +# Test dependencies +, xvfb-run, dbus + +# Optional dependencies +, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-good, libnice +, enableE2E ? true +, enableSecrets ? true, libsecret +, enableRST ? true, docutils +, enableSpelling ? true, gspell +, enableUPnP ? true, gupnp-igd +, enableOmemoPluginDependencies ? true +, extraPythonPackages ? ps: [] +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gajim"; + version = "1.3.2"; + + src = fetchurl { + url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz"; + sha256 = "1vjzv8zg9s393xw81klcgbkn4h6j2blzla9iil5kqfrw7wmldskh"; + }; + + buildInputs = [ + gobject-introspection gtk3 gnome.adwaita-icon-theme + glib-networking + ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ] + ++ lib.optional enableSecrets libsecret + ++ lib.optional enableSpelling gspell + ++ lib.optional enableUPnP gupnp-igd; + + nativeBuildInputs = [ + gettext wrapGAppsHook + ]; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + propagatedBuildInputs = with python3.pkgs; [ + nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools + ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ] + ++ lib.optional enableRST docutils + ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ] + ++ extraPythonPackages python3.pkgs; + + checkInputs = [ xvfb-run dbus.daemon ]; + + checkPhase = '' + # https://dev.gajim.org/gajim/gajim/-/issues/10478 + rm test/lib/gajim_mocks.py test/unit/test_gui_interface.py + + xvfb-run dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + ${python3.interpreter} setup.py test + ''; + + # necessary for wrapGAppsHook + strictDeps = false; + + meta = { + homepage = "http://gajim.org/"; + description = "Jabber client written in PyGTK"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ raskin abbradar ]; + downloadPage = "http://gajim.org/downloads.php"; + updateWalker = true; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix new file mode 100644 index 000000000000..854cc18a47ff --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix @@ -0,0 +1,102 @@ +{ lib, stdenv, alsa-lib, atk, at-spi2-core, cairo, cups, dbus, dpkg, expat, fetchurl +, fontconfig, freetype, gdk-pixbuf, glib, gnome2, gtk3, libdrm, libX11 +, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes +, libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx +, libnotify, libpulseaudio, libxcb, makeDesktopItem, makeWrapper, mesa, nspr, nss +, pango, systemd }: + +let gitterDirectorySuffix = "opt/gitter"; + libPath = lib.makeLibraryPath [ + alsa-lib + atk + at-spi2-core + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libappindicator-gtk3 + libcxx + libdrm + libnotify + libpulseaudio + libxcb + mesa + nspr + nss + pango + stdenv.cc.cc + systemd + ]; + doELFPatch = target: '' + patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ + --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \ + $out/${gitterDirectorySuffix}/${target} + ''; +in stdenv.mkDerivation rec { + pname = "gitter"; + version = "5.0.1"; + + src = fetchurl { + url = "https://update.gitter.im/linux64/${pname}_${version}_amd64.deb"; + sha256 = "1ps9akylqrril4902r8mi0mprm0hb5wra51ry6c1rb5xz5nrzgh1"; + }; + + nativeBuildInputs = [ makeWrapper dpkg ]; + + unpackPhase = "dpkg -x $src ."; + + installPhase = '' + mkdir -p $out/{bin,opt/gitter,share/pixmaps} + mv ./opt/Gitter/linux64/* $out/opt/gitter + + ${doELFPatch "Gitter"} + ${doELFPatch "nacl_helper"} + ${doELFPatch "minidump_stackwalk"} + ${doELFPatch "nwjc"} + ${doELFPatch "chromedriver"} + ${doELFPatch "payload"} + + patchelf --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \ + $out/${gitterDirectorySuffix}/lib/libnw.so + + wrapProgram $out/${gitterDirectorySuffix}/Gitter --prefix LD_LIBRARY_PATH : ${libPath} + + ln -s $out/${gitterDirectorySuffix}/Gitter $out/bin/ + ln -s $out/${gitterDirectorySuffix}/logo.png $out/share/pixmaps/gitter.png + ln -s "${desktopItem}/share/applications" $out/share/ + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = "Gitter"; + icon = pname; + desktopName = "Gitter"; + genericName = meta.description; + categories = "Network;InstantMessaging;"; + }; + + meta = with lib; { + description = "Where developers come to talk"; + downloadPage = "https://gitter.im/apps"; + license = licenses.mit; + maintainers = [ maintainers.imalison ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix new file mode 100644 index 000000000000..f1e335133d72 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix @@ -0,0 +1,29 @@ +{ lib, buildGoModule, fetchFromGitHub, nixosTests, olm }: + +buildGoModule { + pname = "go-neb"; + version = "unstable-2021-03-24"; + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "go-neb"; + rev = "b6edd50d6e33de3bcdb35055fa6c5f0157f45321"; + sha256 = "sha256-wFqkN4C0rWzWxa6+/LiHMMS8i/g3Q57f5z4cG2XZQzs="; + }; + + subPackages = [ "." ]; + + buildInputs = [ olm ]; + + vendorSha256 = "sha256-sWrLWjODf25Z8QqCDg4KyVWmTc3PRiYpRL88yxK0j/M"; + + doCheck = false; + + passthru.tests.go-neb = nixosTests.go-neb; + + meta = with lib; { + description = "Extensible matrix bot written in Go"; + homepage = "https://github.com/matrix-org/go-neb"; + license = licenses.asl20; + maintainers = with maintainers; [ hexa maralorn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix new file mode 100644 index 000000000000..0fea57ea9cc7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, substituteAll +, buildGoModule +, fetchFromGitHub +, makeDesktopItem +, makeWrapper +, libnotify +, olm +, pulseaudio +, sound-theme-freedesktop +}: + +buildGoModule rec { + pname = "gomuks"; + version = "0.2.3"; + + src = fetchFromGitHub { + owner = "tulir"; + repo = pname; + rev = "v${version}"; + sha256 = "0g0aa6h6bm00mdgkb38wm66rcrhqfvs2xj9rl04bwprsa05q5lca"; + }; + + vendorSha256 = "14ya5advpv4q5il235h5dxy8c2ap2yzrvqs0sjqgw0v1vm6vpwdx"; + + doCheck = false; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ olm ]; + + # Upstream issue: https://github.com/tulir/gomuks/issues/260 + patches = lib.optional stdenv.isLinux (substituteAll { + src = ./hardcoded_path.patch; + soundTheme = sound-theme-freedesktop; + }); + + postInstall = '' + cp -r ${ + makeDesktopItem { + name = "net.maunium.gomuks.desktop"; + exec = "@out@/bin/gomuks"; + terminal = "true"; + desktopName = "Gomuks"; + genericName = "Matrix client"; + categories = "Network;Chat"; + comment = meta.description; + } + }/* $out/ + substituteAllInPlace $out/share/applications/* + wrapProgram $out/bin/gomuks \ + --prefix PATH : "${lib.makeBinPath (lib.optionals stdenv.isLinux [ libnotify pulseaudio ])}" + ''; + + meta = with lib; { + homepage = "https://maunium.net/go/gomuks/"; + description = "A terminal based Matrix client written in Go"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ chvp emily ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch new file mode 100644 index 000000000000..0e0d4e28b0a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/hardcoded_path.patch @@ -0,0 +1,13 @@ +diff --git a/lib/notification/notify_linux.go b/lib/notification/notify_linux.go +index f93a95f..da6a61d 100644 +--- a/lib/notification/notify_linux.go ++++ b/lib/notification/notify_linux.go +@@ -32,7 +32,7 @@ func Send(title, text string, critical, sound bool) error { + if critical { + soundName = "complete" + } +- exec.Command("paplay", "/usr/share/sounds/freedesktop/stereo/"+soundName+".oga").Run() ++ exec.Command("paplay", "@soundTheme@/share/sounds/freedesktop/stereo/"+soundName+".oga").Run() + } + return exec.Command("notify-send", args...).Run() + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix new file mode 100644 index 000000000000..fec5462c47a7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix @@ -0,0 +1,19 @@ +{lib, stdenv, fetchurl, ncurses, openssl, tcl, tk}: + +stdenv.mkDerivation { + name = "gtmess-0.97"; + + src = fetchurl { + url = "mirror://sourceforge/gtmess/gtmess-0.97.tar.gz"; + sha256 = "1ipmqsrj0r1ssbgs2fpr4x5vnzlxlqhx9jrnadp1jw7s0sxpjqv0"; + }; + + buildInputs = [ ncurses openssl tcl tk]; + + meta = { + description = "Console MSN Messenger client for Linux and other unix systems"; + homepage = "http://gtmess.sourceforge.net/"; + license = lib.licenses.gpl2Plus; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix new file mode 100644 index 000000000000..6a677c9e0d61 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix @@ -0,0 +1,88 @@ +{ lib, stdenv, fetchurl, xorg, freetype, fontconfig, openssl, glib, nss, nspr, expat +, alsa-lib, dbus, zlib, libxml2, libxslt, makeWrapper, xkeyboard_config, systemd +, libGL, xcbutilkeysyms, xdg-utils, libtool }: + +let + version = "4.30.5.1682"; + + rpath = lib.makeLibraryPath [ + xdg-utils + xorg.libXext + xorg.libSM + xorg.libICE + xorg.libX11 + xorg.libXrandr + xorg.libXdamage + xorg.libXrender + xorg.libXfixes + xorg.libXcomposite + xorg.libXcursor + xorg.libxcb + xorg.libXi + xorg.libXScrnSaver + xorg.libXtst + freetype + fontconfig + openssl + glib + nss + nspr + dbus + alsa-lib + zlib + libtool + libxml2 + libxslt + expat + xcbutilkeysyms + systemd + libGL + ] + ":${stdenv.cc.cc.lib}/lib64"; +in stdenv.mkDerivation { + pname = "hipchat"; + inherit version; + + src = fetchurl { + url = "https://atlassian.artifactoryonline.com/artifactory/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb"; + sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = '' + ar x $src + tar xfvz data.tar.gz + + mkdir -p $out/libexec/hipchat + d=$out/libexec/hipchat/lib + mv opt/HipChat4/* $out/libexec/hipchat/ + mv usr/share $out + + for file in $(find $d -type f); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $file || true + patchelf --set-rpath ${rpath}:$out/libexec/hipchat/lib:\$ORIGIN $file || true + done + + patchShebangs $d/linuxbrowserlaunch.sh + + substituteInPlace $out/share/applications/hipchat4.desktop \ + --replace /opt/HipChat4/bin/HipChat4 $out/bin/hipchat + + makeWrapper $d/HipChat.bin $out/bin/hipchat \ + --run 'export HIPCHAT_LD_LIBRARY_PATH=$LD_LIBRARY_PATH' \ + --run 'export HIPCHAT_QT_PLUGIN_PATH=$QT_PLUGIN_PATH' \ + --set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \ + --set QTWEBENGINEPROCESS_PATH $d/QtWebEngineProcess + + makeWrapper $d/QtWebEngineProcess.bin $d/QtWebEngineProcess \ + --set QT_PLUGIN_PATH "$d/plugins" + ''; + + meta = with lib; { + description = "Desktop client for HipChat services"; + homepage = "http://www.hipchat.com"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ puffnfresh ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix new file mode 100644 index 000000000000..89d4931a2fe4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchFromGitHub, ocamlPackages }: + +with ocamlPackages; + +buildDunePackage rec { + pname = "jackline"; + version = "unstable-2021-04-23"; + + minimumOCamlVersion = "4.08"; + + useDune2 = true; + + src = fetchFromGitHub { + owner = "hannesm"; + repo = "jackline"; + rev = "861c59bb7cd27ad5c7558ff94cb0d0e8dca249e5"; + sha256 = "00waw5qr0n70i9l9b25r9ryfi836x4qrj046bb4k9qa4d0p8q1sa"; + }; + + nativeBuildInpts = [ + ppx_sexp_conv + ppx_deriving + ]; + + buildInputs = [ + erm_xmpp + tls + mirage-crypto-pk + x509 + domain-name + ocaml_lwt + otr + astring + ptime + notty + sexplib + hex + uutf + uchar + uuseg + uucp + dns-client + cstruct + base64 + ]; + + meta = with lib; { + homepage = "https://github.com/hannesm/jackline"; + description = "minimalistic secure XMPP client in OCaml"; + license = licenses.bsd2; + maintainers = with maintainers; [ sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix new file mode 100644 index 000000000000..83f261cd4830 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix @@ -0,0 +1,61 @@ +{ lib, stdenv +, fetchurl +, appimageTools +, makeWrapper +, electron_12 +, xorg +}: + +let + electron = electron_12; +in +stdenv.mkDerivation rec { + pname = "jitsi-meet-electron"; + version = "2.8.7"; + + src = fetchurl { + url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage"; + sha256 = "sha256-2VjYXDTb+u3gVM4FPwFzwyUj3O1t7fHpOrNU5Z+Hq2E="; + name = "${pname}-${version}.AppImage"; + }; + + appimageContents = appimageTools.extractType2 { + name = "${pname}-${version}"; + inherit src; + }; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/${pname} $out/share/applications + + cp -a ${appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${appimageContents}/jitsi-meet.desktop $out/share/applications/${pname}.desktop + cp -a ${appimageContents}/usr/share/icons $out/share + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app.asar \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc xorg.libXtst ]}" + ''; + + meta = with lib; { + description = "Jitsi Meet desktop application powered by Electron"; + homepage = "https://github.com/jitsi/jitsi-meet-electron"; + license = licenses.asl20; + maintainers = teams.jitsi.members; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix new file mode 100644 index 000000000000..e2ace1a5d35f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix @@ -0,0 +1,72 @@ +{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk8 +# Optional, Jitsi still runs without, but you may pass null: +, alsa-lib, dbus, gtk2, libpulseaudio, openssl, xorg +}: + +let jdk = jdk8; in +stdenv.mkDerivation rec { + pname = "jitsi"; + version = "2.10.5550"; + + src = fetchurl { + url = "https://download.jitsi.org/jitsi/src/jitsi-src-${version}.zip"; + sha256 = "11vjchc3dnzj55x7c62wsm6masvwmij1ifkds917r1qvil1nzz6d"; + }; + + patches = [ ./jitsi.patch ]; + + jitsiItem = makeDesktopItem { + name = "Jitsi"; + exec = "jitsi"; + comment = "VoIP and Instant Messaging client"; + desktopName = "Jitsi"; + genericName = "Instant Messaging"; + categories = "Chat"; + }; + + libPath = lib.makeLibraryPath ([ + stdenv.cc.cc # For libstdc++. + alsa-lib + dbus + gtk2 + libpulseaudio + openssl + xorg.libX11 + xorg.libXext + xorg.libXScrnSaver + xorg.libXv + ]); + + nativeBuildInputs = [ unzip ]; + buildInputs = [ ant jdk ]; + + buildPhase = "ant make"; + + installPhase = '' + mkdir -p $out + cp -a lib $out/ + rm -rf $out/lib/native/solaris + cp -a sc-bundles $out/ + mkdir $out/bin + cp resources/install/generic/run.sh $out/bin/jitsi + chmod +x $out/bin/jitsi + substituteInPlace $out/bin/jitsi \ + --subst-var-by JAVA ${jdk}/bin/java \ + --subst-var-by EXTRALIBS ${gtk2.out}/lib + sed -e 's,^java\ ,${jdk}/bin/java ,' -i $out/bin/jitsi + patchShebangs $out + libPath="$libPath:${jdk.home}/lib/${jdk.architecture}" + find $out/ -type f -name '*.so' | while read file; do + patchelf --set-rpath "$libPath" "$file" && \ + patchelf --shrink-rpath "$file" + done + ''; + + meta = with lib; { + homepage = "https://jitsi.org/"; + description = "Open Source Video Calls and Chat"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = teams.jitsi.members; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch new file mode 100644 index 000000000000..07b16b919962 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch @@ -0,0 +1,27 @@ +--- /home/dario/Downloads/jitsi/resources/install/generic/run.sh 2013-11-01 15:37:21.000000000 +0000 ++++ jitsi/resources/install/generic/run.sh 2014-03-04 11:52:30.796397567 +0000 +@@ -1,4 +1,9 @@ +-mkdir -p $HOME/.sip-communicator/log ++#! /bin/bash ++# A modified version of the generic run.sh ++ ++#mkdir -p $HOME/.sip-communicator/log ++ ++cd "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")" + + # Get architecture + ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/` +@@ -6,10 +11,12 @@ + # Additionnal JVM arguments + CLIENTARGS="" + ++NATIVELIBS="lib/native/linux-64" + if [ $ARCH = 32 ] + then + CLIENTARGS="-client -Xmx256m" ++ NATIVELIBS="lib/native/linux" + fi + + export PATH=$PATH:native +-java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator ++LD_LIBRARY_PATH=@EXTRALIBS@ exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix new file mode 100644 index 000000000000..74449ae705e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix @@ -0,0 +1,62 @@ +{ mkDerivation +, lib +, fetchFromGitLab +, cmake +, extra-cmake-modules +, pkg-config +, qtquickcontrols2 +, qtmultimedia +, qtlocation +, qqc2-desktop-style +, kirigami2 +, knotifications +, zxing-cpp +, qxmpp +, gst_all_1 +}: + +mkDerivation rec { + pname = "kaidan"; + version = "0.8.0"; + + src = fetchFromGitLab { + domain = "invent.kde.org"; + owner = "network"; + repo = pname; + rev = "v${version}"; + sha256 = "070njci5zyzahmz3nqyp660chxnqx1mxp31w17syfllvrw403qmg"; + }; + + nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; + + buildInputs = with gst_all_1; [ + qtquickcontrols2 + qtmultimedia + qtlocation + qqc2-desktop-style + kirigami2 + knotifications + zxing-cpp + qxmpp + gstreamer + gst-plugins-bad + gst-plugins-base + gst-plugins-good + ]; + postInstall = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "User-friendly and modern chat app, using XMPP"; + homepage = "https://www.kaidan.im"; + license = with licenses; [ + gpl3Plus + mit + asl20 + cc-by-sa-40 + ]; + maintainers = with maintainers; [ astro ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix new file mode 100644 index 000000000000..4918a4d91f82 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix @@ -0,0 +1,45 @@ +{ lib +, mkDerivation +, fetchFromSourcehut +, cmake +, extra-cmake-modules +, pkg-config +, kirigami2 +, libdeltachat +, qtimageformats +, qtmultimedia +, qtwebengine +}: + +mkDerivation rec { + pname = "kdeltachat"; + version = "unstable-2021-07-04"; + + src = fetchFromSourcehut { + owner = "~link2xt"; + repo = "kdeltachat"; + rev = "5d3cddc47773b49d4a801d031c1de96c38617908"; + sha256 = "1sah27pvdkilnyj41xf4awri9ya14gxayr99qksllz92ywd9lxad"; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkg-config + ]; + + buildInputs = [ + kirigami2 + libdeltachat + qtimageformats + qtmultimedia + qtwebengine + ]; + + meta = with lib; { + description = "Delta Chat client using Kirigami framework"; + homepage = "https://git.sr.ht/~link2xt/kdeltachat"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix new file mode 100644 index 000000000000..1c2df3924ecd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix @@ -0,0 +1,187 @@ +{ bcg729 +, bctoolbox +, bcunit +, belcard +, belle-sip +, belr +, bzrtp +, cairo +, cmake +, cyrus_sasl +, fetchFromGitLab +, fetchurl +, ffmpeg +, gdk-pixbuf +, glib +, gnused +, graphviz +, gtk2 +, intltool +, lib +, libexosip +, liblinphone +, libmatroska +, libnotify +, libosip +, libsoup +, libupnp +, libX11 +, libxml2 +, makeWrapper +, mbedtls +, mediastreamer +, mediastreamer-openh264 +, minizip2 +, mkDerivation +, openldap +, ortp +, pango +, pkg-config +, python +, qtbase +, qtgraphicaleffects +, qtquickcontrols2 +, qttranslations +, readline +, speex +, sqlite + +, udev +, zlib +}: + +mkDerivation rec { + pname = "linphone-desktop"; + version = "4.2.5"; + + src = fetchFromGitLab { + domain = "gitlab.linphone.org"; + owner = "public"; + group = "BC"; + repo = pname; + rev = version; + sha256 = "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"; + }; + + patches = [ + ./do-not-build-linphone-sdk.patch + ./remove-bc_compute_full_version-usage.patch + ]; + + # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21 + postPatch = '' + echo "project(linphoneqt VERSION ${version})" >linphone-app/linphoneqt_version.cmake + substituteInPlace linphone-app/src/app/AppController.cpp \ + --replace "LINPHONE_QT_GIT_VERSION" "\"${version}\"" + ''; + + # TODO: After linphone-desktop and liblinphone split into separate packages, + # there might be some build inputs here that aren't needed for + # linphone-desktop. + buildInputs = [ + bcg729 + bctoolbox + belcard + belle-sip + belr + bzrtp + cairo + cyrus_sasl + ffmpeg + gdk-pixbuf + glib + gtk2 + libX11 + libexosip + liblinphone + libmatroska + libnotify + libosip + libsoup + libupnp + libxml2 + mbedtls + mediastreamer + mediastreamer-openh264 + minizip2 + openldap + ortp + pango + qtbase + qtgraphicaleffects + qtquickcontrols2 + qttranslations + readline + speex + sqlite + udev + zlib + ]; + + nativeBuildInputs = [ + bcunit + cmake + gnused + graphviz + intltool + makeWrapper + pkg-config + ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + "-DMINIZIP_INCLUDE_DIRS=${minizip2}/include" + "-DMINIZIP_LIBRARIES=minizip" + ]; + + # The default install phase fails because the paths are somehow messed up in + # the makefiles. The errors were like: + # + # CMake Error at cmake_builder/linphone_package/cmake_install.cmake:49 (file): + # file INSTALL cannot find + # "/build/linphone-desktop-.../build/linphone-sdk/desktop//nix/store/.../bin": + # No such file or directory. + # + # If someone is able to figure out how to fix that, great. For now, just + # trying to pick all the relevant files to the output. + # + # Also, the exec path in linphone.desktop file remains invalid, pointing to + # the build directory, after the whole nix build process. So, let's use sed to + # manually fix that path. + # + # In order to find mediastreamer plugins, mediastreamer package was patched to + # support an environment variable pointing to the plugin directory. Set that + # environment variable by wrapping the Linphone executable. + # + # Also, some grammar files needed to be copied too from some dependencies. I + # suppose if one define a dependency in such a way that its share directory is + # found, then this copying would be unnecessary. These missing grammar files + # were discovered when linphone crashed at startup and it was run with + # --verbose flag. Instead of actually copying these files, create symlinks. + # + # It is quite likely that there are some other files still missing and + # Linphone will randomly crash when it tries to access those files. Then, + # those just need to be copied manually below. + installPhase = '' + mkdir -p $out/bin + cp linphone-app/linphone $out/bin/ + wrapProgram $out/bin/linphone \ + --set MEDIASTREAMER_PLUGINS_DIR \ + ${mediastreamer-openh264}/lib/mediastreamer/plugins + mkdir -p $out/share/applications + cp linphone-app/linphone.desktop $out/share/applications/ + cp -r ../linphone-app/assets/icons $out/share/ + mkdir -p $out/share/belr/grammars + ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/ + mkdir -p $out/share/linphone + ln -s ${liblinphone}/share/linphone/* $out/share/linphone/ + ''; + + meta = with lib; { + homepage = "https://www.linphone.org/"; + description = "Open source SIP phone for voice/video calls and instant messaging"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ jluttine ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch new file mode 100644 index 000000000000..fe774a479fac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch @@ -0,0 +1,118 @@ +From 08b8b1811a1ad079fa713d19a8cc6bf2dc782bb7 Mon Sep 17 00:00:00 2001 +From: David P <megver83@parabola.nu> +Date: Thu, 26 Nov 2020 15:56:30 -0300 +Subject: [PATCH 1/2] do not build linphone-sdk + +Signed-off-by: David P <megver83@parabola.nu> +--- + CMakeLists.txt | 61 +------------------ + .../cmake_builder/additional_steps.cmake | 9 --- + 2 files changed, 3 insertions(+), 67 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f7eb05f2..5921ee5b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -118,7 +118,6 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}") + + list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}") + +-include(ExternalProject) + set(PROJECT_BUILD_COMMAND "") + if(CMAKE_BUILD_PARALLEL_LEVEL) + list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}") +@@ -136,29 +135,8 @@ if(UNIX AND NOT APPLE) + set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib:${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}") + list(APPEND APP_OPTIONS "-DCMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}") + endif() +-ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk" +- INSTALL_DIR "${LINPHONE_OUTPUT_DIR}" +- STAMP_DIR "${SDK_BUILD_DIR}/stamp" +- BINARY_DIR "${SDK_BUILD_DIR}" +- STEP_TARGETS build +- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} +- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time." +- LIST_SEPARATOR | # Use the alternate list separator +- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} +- #BUILD_ALWAYS NO #${DO_BUILD} +-) +-ExternalProject_Add_Step(sdk force_build +- COMMENT "Forcing build for 'desktop'" +- DEPENDEES configure +- DEPENDERS build +- ALWAYS 1 +-) + include(FindPkgConfig) + +-set(APP_DEPENDS sdk) +- +- + find_package(Qt5 5.12 COMPONENTS Core REQUIRED) + + if ( NOT Qt5_FOUND ) +@@ -173,39 +151,6 @@ find_package(Mediastreamer2 CONFIG QUIET) + find_package(ortp CONFIG QUIET) + + +-if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR FORCE_APP_EXTERNAL_PROJECTS) +- message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target install") +- ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphone-app" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app" +- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" +- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app" +- DEPENDS ${APP_DEPENDS} +- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} +- INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step will not be done by external project" +- LIST_SEPARATOR | # Use the alternate list separator +- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} +- # ${APP_OPTIONS} +- BUILD_ALWAYS ON +- ) +- install(CODE "message(STATUS Running install)") +- set(AUTO_REGENERATION auto_regeneration) +- add_custom_target(${AUTO_REGENERATION} ALL +- COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS linphone-qt) +-else() +- message("Adding Linphone Desktop in an IDE-friendly state") +- set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") +- add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) +- add_dependencies(app-library ${APP_DEPENDS}) +-endif() +-ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphone-app" +- SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-app" +- INSTALL_DIR "${APPLICATION_OUTPUT_DIR}" +- BINARY_DIR "${CMAKE_BINARY_DIR}/linphone-app" +- BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND} +-# INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Install step is already done at build time." +- LIST_SEPARATOR | # Use the alternate list separator +- CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} +- EXCLUDE_FROM_ALL ON +- BUILD_ALWAYS ON +-) ++message("Adding Linphone Desktop in an IDE-friendly state") ++set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") ++add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-app) +diff --git a/linphone-app/cmake_builder/additional_steps.cmake b/linphone-app/cmake_builder/additional_steps.cmake +index 7f7fd573..a69a04e8 100644 +--- a/linphone-app/cmake_builder/additional_steps.cmake ++++ b/linphone-app/cmake_builder/additional_steps.cmake +@@ -54,14 +54,5 @@ if (ENABLE_PACKAGING) + linphone_builder_apply_flags() + linphone_builder_set_ep_directories(linphone_package) + linphone_builder_expand_external_project_vars() +- ExternalProject_Add(TARGET_linphone_package +- DEPENDS TARGET_linphone_builder +- TMP_DIR ${ep_tmp} +- BINARY_DIR ${ep_build} +- SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package" +- DOWNLOAD_COMMAND "" +- CMAKE_GENERATOR ${CMAKE_GENERATOR} +- CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY} +- ) + endif () + endif () +-- +2.29.2 + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch new file mode 100644 index 000000000000..547652d3af7f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch @@ -0,0 +1,74 @@ +From 6fc23da651d54979e73776fcda38614e290d65dc Mon Sep 17 00:00:00 2001 +From: David P <megver83@parabola.nu> +Date: Fri, 23 Oct 2020 16:44:17 -0300 +Subject: [PATCH 2/2] remove bc_compute_full_version usage + +--- + linphone-app/CMakeLists.txt | 11 +---------- + linphone-app/build/CMakeLists.txt | 5 ----- + .../cmake_builder/linphone_package/CMakeLists.txt | 10 +--------- + 3 files changed, 2 insertions(+), 24 deletions(-) + +diff --git a/linphone-app/CMakeLists.txt b/linphone-app/CMakeLists.txt +index 3bc9420a..27b418ee 100644 +--- a/linphone-app/CMakeLists.txt ++++ b/linphone-app/CMakeLists.txt +@@ -21,17 +21,8 @@ + ################################################################################ + cmake_minimum_required(VERSION 3.1) + ++include(linphoneqt_version.cmake) + find_package(bctoolbox CONFIG) +-set(FULL_VERSION ) +-bc_compute_full_version(FULL_VERSION) +-set(version_major ) +-set(version_minor ) +-set(version_patch ) +-set(identifiers ) +-set(metadata ) +-bc_parse_full_version("${FULL_VERSION}" version_major version_minor version_patch identifiers metadata) +- +-project(linphoneqt VERSION "${version_major}.${version_minor}.${version_patch}") + + if(ENABLE_BUILD_VERBOSE) + #message("CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}") +diff --git a/linphone-app/build/CMakeLists.txt b/linphone-app/build/CMakeLists.txt +index 8ef03faa..97d94bd6 100644 +--- a/linphone-app/build/CMakeLists.txt ++++ b/linphone-app/build/CMakeLists.txt +@@ -46,11 +46,6 @@ set(CPACK_SOURCE_IGNORE_FILES + "libmng.spec" + ) + +-bc_compute_full_version(PROJECT_VERSION_BUILD) +-if(PROJECT_VERSION_BUILD) +- set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PROJECT_VERSION_BUILD}") +-endif() +- + message("-- Package file name is ${CPACK_PACKAGE_FILE_NAME}") + + set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) +diff --git a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt +index baea03cf..08ffc1b5 100644 +--- a/linphone-app/cmake_builder/linphone_package/CMakeLists.txt ++++ b/linphone-app/cmake_builder/linphone_package/CMakeLists.txt +@@ -38,15 +38,7 @@ set(LINPHONE_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../ui") + # ============================================================================== + # Build package version. + # ============================================================================== +-bc_compute_full_version(APP_PROJECT_VERSION) +-if (GIT_EXECUTABLE AND NOT(APP_PROJECT_VERSION)) +- execute_process( +- COMMAND ${GIT_EXECUTABLE} describe --always +- OUTPUT_VARIABLE APP_PROJECT_VERSION +- OUTPUT_STRIP_TRAILING_WHITESPACE +- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../.." +- ) +-elseif (NOT(APP_PROJECT_VERSION)) ++if (NOT(APP_PROJECT_VERSION)) + set(APP_PROJECT_VERSION "0.0.0") + endif () + string(REGEX REPLACE "([0-9.]+)-?.*" "\\1" LINPHONE_VERSION "${APP_PROJECT_VERSION}") +-- +2.29.2 + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix new file mode 100644 index 000000000000..2ebf762c418b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix @@ -0,0 +1,42 @@ +{ stdenv, lib, fetchFromGitHub, cacert, python3 }: + +stdenv.mkDerivation { + pname = "matrix-commander"; + version = "unstable-2021-05-26"; + + src = fetchFromGitHub { + owner = "8go"; + repo = "matrix-commander"; + rev = "06b4738bc74ee86fb3ac88c04b8230abf82e7421"; + sha256 = "1skpq3xfnz11m298qnsw68xv391p5qg47flagzsk86pnzi841vc1"; + }; + + buildInputs = [ + cacert + (python3.withPackages(ps: with ps; [ + matrix-nio + magic + markdown + pillow + urllib3 + aiofiles + ]))]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp $src/matrix-commander.py $out/bin/matrix-commander + chmod +x $out/bin/matrix-commander + + runHook postInstall + ''; + + meta = with lib; { + description = "Simple but convenient CLI-based Matrix client app for sending and receiving"; + homepage = "https://github.com/8go/matrix-commander"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = [ maintainers.seb314 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix new file mode 100644 index 000000000000..caf6669e120b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix @@ -0,0 +1,25 @@ +{ lib, python3Packages, fetchFromGitHub }: + +python3Packages.buildPythonApplication rec { + pname = "matrix-dl"; + version = "unstable-2020-07-14"; + + src = fetchFromGitHub { + owner = "rubo77"; + repo = pname; + rev = "b1a86d1421f39ee327284e1023f09dc165e3c8a5"; + sha256 = "1l8nh8z7kz24v0wcy3ll3w6in2yxwa1yz8lyc3x0blz37d8ss4ql"; + }; + + propagatedBuildInputs = with python3Packages; [ + matrix-client + ]; + + meta = with lib; { + description = "Download backlogs from Matrix as raw text"; + homepage = src.meta.homepage; + license = licenses.gpl1Plus; + maintainers = with maintainers; [ aw ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix new file mode 100644 index 000000000000..2992bf22cb31 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/composition.nix @@ -0,0 +1,20 @@ +# This file has been generated by node2nix 1.7.0. Do not edit! + +{pkgs ? import <nixpkgs> { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + +let + nodeEnv = import ./node-env.nix { + inherit (pkgs) lib stdenv python2 util-linux runCommand writeTextFile; + inherit nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +locpkgs = import ./node-packages.nix { + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; + globalBuildInputs = [ + locpkgs.node-pre-gyp + ]; +}; +in locpkgs diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix new file mode 100644 index 000000000000..9e3527948818 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, pkgs }: +(import ./composition.nix { + inherit pkgs; + inherit (stdenv.hostPlatform) system; +})."package".override { + postInstall = '' + mkdir "$out/bin" + echo '#!/bin/sh' >> "$out/bin/matrix-recorder" + echo "'${pkgs.nodejs-12_x}/bin/node'" \ + "'$out/lib/node_modules/matrix-recorder/matrix-recorder.js'" \ + '"$@"' >> "$out/bin/matrix-recorder" + echo '#!/bin/sh' >> "$out/bin/matrix-recorder-to-html" + echo 'cd "$1"' >> "$out/bin/matrix-recorder-to-html" + echo "test -d templates/ || ln -sfT '$out/lib/node_modules/matrix-recorder/templates' templates" >> "$out/bin/matrix-recorder-to-html" + echo "'${pkgs.nodejs-12_x}/bin/node'" \ + "'$out/lib/node_modules/matrix-recorder/recorder-to-html.js'" \ + '.' >> "$out/bin/matrix-recorder-to-html" + chmod a+x "$out/bin/matrix-recorder" + chmod a+x "$out/bin/matrix-recorder-to-html" + ''; + meta = { + description = "Matrix message recorder"; + homepage = "https://gitlab.com/argit/matrix-recorder/"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.raskin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix new file mode 100644 index 000000000000..e6131fe8e771 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-env.nix @@ -0,0 +1,540 @@ +# This file originates from node2nix + +{lib, stdenv, nodejs, python2, util-linux, libtool, runCommand, writeTextFile}: + +let + python = if nodejs ? python then nodejs.python else python2; + + # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise + tarWrapper = runCommand "tarWrapper" {} '' + mkdir -p $out/bin + + cat > $out/bin/tar <<EOF + #! ${stdenv.shell} -e + $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore + EOF + + chmod +x $out/bin/tar + ''; + + # Function that generates a TGZ file from a NPM project + buildNodeSourceDist = + { name, version, src, ... }: + + stdenv.mkDerivation { + name = "node-tarball-${name}-${version}"; + inherit src; + buildInputs = [ nodejs ]; + buildPhase = '' + export HOME=$TMPDIR + tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts) + ''; + installPhase = '' + mkdir -p $out/tarballs + mv $tgzFile $out/tarballs + mkdir -p $out/nix-support + echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products + ''; + }; + + includeDependencies = {dependencies}: + lib.optionalString (dependencies != []) + (lib.concatMapStrings (dependency: + '' + # Bundle the dependencies of the package + mkdir -p node_modules + cd node_modules + + # Only include dependencies if they don't exist. They may also be bundled in the package. + if [ ! -e "${dependency.name}" ] + then + ${composePackage dependency} + fi + + cd .. + '' + ) dependencies); + + # Recursively composes the dependencies of a package + composePackage = { name, packageName, src, dependencies ? [], ... }@args: + '' + DIR=$(pwd) + cd $TMPDIR + + unpackFile ${src} + + # Make the base dir in which the target dependency resides first + mkdir -p "$(dirname "$DIR/${packageName}")" + + if [ -f "${src}" ] + then + # Figure out what directory has been unpacked + packageDir="$(find . -maxdepth 1 -type d | tail -1)" + + # Restore write permissions to make building work + find "$packageDir" -type d -exec chmod u+x {} \; + chmod -R u+w "$packageDir" + + # Move the extracted tarball into the output folder + mv "$packageDir" "$DIR/${packageName}" + elif [ -d "${src}" ] + then + # Get a stripped name (without hash) of the source directory. + # On old nixpkgs it's already set internally. + if [ -z "$strippedName" ] + then + strippedName="$(stripHash ${src})" + fi + + # Restore write permissions to make building work + chmod -R u+w "$strippedName" + + # Move the extracted directory into the output folder + mv "$strippedName" "$DIR/${packageName}" + fi + + # Unset the stripped name to not confuse the next unpack step + unset strippedName + + # Include the dependencies of the package + cd "$DIR/${packageName}" + ${includeDependencies { inherit dependencies; }} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + ''; + + pinpointDependencies = {dependencies, production}: + let + pinpointDependenciesFromPackageJSON = writeTextFile { + name = "pinpointDependencies.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function resolveDependencyVersion(location, name) { + if(location == process.env['NIX_STORE']) { + return null; + } else { + var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); + + if(fs.existsSync(dependencyPackageJSON)) { + var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); + + if(dependencyPackageObj.name == name) { + return dependencyPackageObj.version; + } + } else { + return resolveDependencyVersion(path.resolve(location, ".."), name); + } + } + } + + function replaceDependencies(dependencies) { + if(typeof dependencies == "object" && dependencies !== null) { + for(var dependency in dependencies) { + var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); + + if(resolvedVersion === null) { + process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); + } else { + dependencies[dependency] = resolvedVersion; + } + } + } + } + + /* Read the package.json configuration */ + var packageObj = JSON.parse(fs.readFileSync('./package.json')); + + /* Pinpoint all dependencies */ + replaceDependencies(packageObj.dependencies); + if(process.argv[2] == "development") { + replaceDependencies(packageObj.devDependencies); + } + replaceDependencies(packageObj.optionalDependencies); + + /* Write the fixed package.json file */ + fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); + ''; + }; + in + '' + node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} + + ${lib.optionalString (dependencies != []) + '' + if [ -d node_modules ] + then + cd node_modules + ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} + cd .. + fi + ''} + ''; + + # Recursively traverses all dependencies of a package and pinpoints all + # dependencies in the package.json file to the versions that are actually + # being used. + + pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: + '' + if [ -d "${packageName}" ] + then + cd "${packageName}" + ${pinpointDependencies { inherit dependencies production; }} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + fi + ''; + + # Extract the Node.js source code which is used to compile packages with + # native bindings + nodeSources = runCommand "node-sources" {} '' + tar --no-same-owner --no-same-permissions -xf ${nodejs.src} + mv node-* $out + ''; + + # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) + addIntegrityFieldsScript = writeTextFile { + name = "addintegrityfields.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function augmentDependencies(baseDir, dependencies) { + for(var dependencyName in dependencies) { + var dependency = dependencies[dependencyName]; + + // Open package.json and augment metadata fields + var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); + var packageJSONPath = path.join(packageJSONDir, "package.json"); + + if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored + console.log("Adding metadata fields to: "+packageJSONPath); + var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); + + if(dependency.integrity) { + packageObj["_integrity"] = dependency.integrity; + } else { + packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads. + } + + if(dependency.resolved) { + packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided + } else { + packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. + } + + if(dependency.from !== undefined) { // Adopt from property if one has been provided + packageObj["_from"] = dependency.from; + } + + fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); + } + + // Augment transitive dependencies + if(dependency.dependencies !== undefined) { + augmentDependencies(packageJSONDir, dependency.dependencies); + } + } + } + + if(fs.existsSync("./package-lock.json")) { + var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); + + if(packageLock.lockfileVersion !== 1) { + process.stderr.write("Sorry, I only understand lock file version 1!\n"); + process.exit(1); + } + + if(packageLock.dependencies !== undefined) { + augmentDependencies(".", packageLock.dependencies); + } + } + ''; + }; + + # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes + reconstructPackageLock = writeTextFile { + name = "addintegrityfields.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + var packageObj = JSON.parse(fs.readFileSync("package.json")); + + var lockObj = { + name: packageObj.name, + version: packageObj.version, + lockfileVersion: 1, + requires: true, + dependencies: {} + }; + + function augmentPackageJSON(filePath, dependencies) { + var packageJSON = path.join(filePath, "package.json"); + if(fs.existsSync(packageJSON)) { + var packageObj = JSON.parse(fs.readFileSync(packageJSON)); + dependencies[packageObj.name] = { + version: packageObj.version, + integrity: "sha1-000000000000000000000000000=", + dependencies: {} + }; + processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies); + } + } + + function processDependencies(dir, dependencies) { + if(fs.existsSync(dir)) { + var files = fs.readdirSync(dir); + + files.forEach(function(entry) { + var filePath = path.join(dir, entry); + var stats = fs.statSync(filePath); + + if(stats.isDirectory()) { + if(entry.substr(0, 1) == "@") { + // When we encounter a namespace folder, augment all packages belonging to the scope + var pkgFiles = fs.readdirSync(filePath); + + pkgFiles.forEach(function(entry) { + if(stats.isDirectory()) { + var pkgFilePath = path.join(filePath, entry); + augmentPackageJSON(pkgFilePath, dependencies); + } + }); + } else { + augmentPackageJSON(filePath, dependencies); + } + } + }); + } + } + + processDependencies("node_modules", lockObj.dependencies); + + fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); + ''; + }; + + prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: + let + forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; + in + '' + # Pinpoint the versions of all dependencies to the ones that are actually being used + echo "pinpointing versions of dependencies..." + source $pinpointDependenciesScriptPath + + # Patch the shebangs of the bundled modules to prevent them from + # calling executables outside the Nix store as much as possible + patchShebangs . + + # Deploy the Node.js package by running npm install. Since the + # dependencies have been provided already by ourselves, it should not + # attempt to install them again, which is good, because we want to make + # it Nix's responsibility. If it needs to install any dependencies + # anyway (e.g. because the dependency parameters are + # incomplete/incorrect), it fails. + # + # The other responsibilities of NPM are kept -- version checks, build + # steps, postprocessing etc. + + export HOME=$TMPDIR + cd "${packageName}" + runHook preRebuild + + ${lib.optionalString bypassCache '' + ${lib.optionalString reconstructLock '' + if [ -f package-lock.json ] + then + echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" + echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" + rm package-lock.json + else + echo "No package-lock.json file found, reconstructing..." + fi + + node ${reconstructPackageLock} + ''} + + node ${addIntegrityFieldsScript} + ''} + + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild + + if [ "$dontNpmInstall" != "1" ] + then + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. + rm -f npm-shrinkwrap.json + + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install + fi + ''; + + # Builds and composes an NPM package including all its dependencies + buildNodePackage = + { name + , packageName + , version + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , preRebuild ? "" + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ]; + in + stdenv.mkDerivation ({ + name = "node_${name}-${version}"; + buildInputs = [ tarWrapper python nodejs ] + ++ lib.optional (stdenv.isLinux) util-linux + ++ lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall preRebuild unpackPhase buildPhase; + + compositionScript = composePackage args; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; + + passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; + + installPhase = '' + # Create and enter a root node_modules/ folder + mkdir -p $out/lib/node_modules + cd $out/lib/node_modules + + # Compose the package and all its dependencies + source $compositionScriptPath + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Create symlink to the deployed executable folder, if applicable + if [ -d "$out/lib/node_modules/.bin" ] + then + ln -s $out/lib/node_modules/.bin $out/bin + fi + + # Create symlinks to the deployed manual page folders, if applicable + if [ -d "$out/lib/node_modules/${packageName}/man" ] + then + mkdir -p $out/share + for dir in "$out/lib/node_modules/${packageName}/man/"* + do + mkdir -p $out/share/man/$(basename "$dir") + for page in "$dir"/* + do + ln -s $page $out/share/man/$(basename "$dir") + done + done + fi + + # Run post install hook, if provided + runHook postInstall + ''; + } // extraArgs); + + # Builds a development shell + buildNodeShell = + { name + , packageName + , version + , src + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; + + nodeDependencies = stdenv.mkDerivation ({ + name = "node-dependencies-${name}-${version}"; + + buildInputs = [ tarWrapper python nodejs ] + ++ lib.optional (stdenv.isLinux) util-linux + ++ lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall unpackPhase buildPhase; + + includeScript = includeDependencies { inherit dependencies; }; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; + + passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; + + installPhase = '' + mkdir -p $out/${packageName} + cd $out/${packageName} + + source $includeScriptPath + + # Create fake package.json to make the npm commands work properly + cp ${src}/package.json . + chmod 644 package.json + ${lib.optionalString bypassCache '' + if [ -f ${src}/package-lock.json ] + then + cp ${src}/package-lock.json . + fi + ''} + + # Go to the parent folder to make sure that all packages are pinpointed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Expose the executables that were installed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + mv ${packageName} lib + ln -s $out/lib/node_modules/.bin $out/bin + ''; + } // extraArgs); + in + stdenv.mkDerivation { + name = "node-shell-${name}-${version}"; + + buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) util-linux ++ buildInputs; + buildCommand = '' + mkdir -p $out/bin + cat > $out/bin/shell <<EOF + #! ${stdenv.shell} -e + $shellHook + exec ${stdenv.shell} + EOF + chmod +x $out/bin/shell + ''; + + # Provide the dependencies in a development shell through the NODE_PATH environment variable + inherit nodeDependencies; + shellHook = lib.optionalString (dependencies != []) '' + export NODE_PATH=$nodeDependencies/lib/node_modules + export PATH="$nodeDependencies/bin:$PATH" + ''; + }; +in +{ + buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; + buildNodePackage = lib.makeOverridable buildNodePackage; + buildNodeShell = lib.makeOverridable buildNodeShell; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix new file mode 100644 index 000000000000..1f968a62c9f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/node-packages.nix @@ -0,0 +1,1426 @@ +# This file has been generated by node2nix 1.7.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy"; + }; + }; + "ajv-6.10.2" = { + name = "ajv"; + packageName = "ajv"; + version = "6.10.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"; + sha512 = "13mb943karizrqc9k4wpfs02jcrjzqyaysld4pmqacald7yj8wsjbx8gk2pbn6kc85fzjyb22x836g65fjj0mmndk2a9f878r858ysd"; + }; + }; + "another-json-0.2.0" = { + name = "another-json"; + packageName = "another-json"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz"; + sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc"; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3"; + }; + }; + "are-we-there-yet-1.1.5" = { + name = "are-we-there-yet"; + packageName = "are-we-there-yet"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha512 = "3mizm1yfxynlhaavbimv7n9qljrbhni22v4fch6zr89x6ps0gpjcxm5yfvv05n8vc3r17hmglyswgq9w0s598xv70nnyw358q11s5p6"; + }; + }; + "asn1-0.2.4" = { + name = "asn1"; + packageName = "asn1"; + version = "0.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; + sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g"; + }; + }; + "assert-plus-1.0.0" = { + name = "assert-plus"; + packageName = "assert-plus"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "aws-sign2-0.7.0" = { + name = "aws-sign2"; + packageName = "aws-sign2"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + }; + "aws4-1.9.0" = { + name = "aws4"; + packageName = "aws4"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz"; + sha512 = "3h6cs1b1kw3rsfczqb8jzjlsha24ax4hyhgrk4smwj1i66lgc63kv03cvkn7zbivqvnrpmk640mp3c1bnmm49v1v40kvl5xay2vmyjj"; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "bcrypt-pbkdf-1.0.2" = { + name = "bcrypt-pbkdf"; + packageName = "bcrypt-pbkdf"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8"; + }; + }; + "browser-request-0.3.3" = { + name = "browser-request"; + packageName = "browser-request"; + version = "0.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz"; + sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17"; + }; + }; + "caseless-0.12.0" = { + name = "caseless"; + packageName = "caseless"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + }; + "chownr-1.1.3" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz"; + sha512 = "1gqsfnpd5kpc4vi8v5b2dr480pk56d674a49bi0505qrjf9iash3n016cyz7qq1iwa41qny8dixp24w9vvam9sy9vnp0mv6g1a1zgcb"; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm"; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "console-control-strings-1.1.0" = { + name = "console-control-strings"; + packageName = "console-control-strings"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "dashdash-1.14.1" = { + name = "dashdash"; + packageName = "dashdash"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + }; + "debug-3.2.6" = { + name = "debug"; + packageName = "debug"; + version = "3.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"; + sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr"; + }; + }; + "deep-extend-0.6.0" = { + name = "deep-extend"; + packageName = "deep-extend"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; + sha512 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c"; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "detect-libc-1.0.3" = { + name = "detect-libc"; + packageName = "detect-libc"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + }; + "ecc-jsbn-0.1.2" = { + name = "ecc-jsbn"; + packageName = "ecc-jsbn"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + }; + "encoding-0.1.12" = { + name = "encoding"; + packageName = "encoding"; + version = "0.1.12"; + src = fetchurl { + url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"; + sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb"; + }; + }; + "extend-3.0.2" = { + name = "extend"; + packageName = "extend"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; + sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky"; + }; + }; + "extsprintf-1.3.0" = { + name = "extsprintf"; + packageName = "extsprintf"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + }; + "fast-deep-equal-2.0.1" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; + sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; + }; + }; + "fast-json-stable-stringify-2.0.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; + sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; + }; + }; + "forever-agent-0.6.1" = { + name = "forever-agent"; + packageName = "forever-agent"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + }; + "form-data-2.3.3" = { + name = "form-data"; + packageName = "form-data"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; + sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn"; + }; + }; + "fs-minipass-1.2.7" = { + name = "fs-minipass"; + packageName = "fs-minipass"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r"; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "gauge-2.7.4" = { + name = "gauge"; + packageName = "gauge"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + }; + "getpass-0.1.7" = { + name = "getpass"; + packageName = "getpass"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + }; + "glob-7.1.6" = { + name = "glob"; + packageName = "glob"; + version = "7.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"; + sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig"; + }; + }; + "graceful-fs-4.2.3" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz"; + sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb"; + }; + }; + "har-schema-2.0.0" = { + name = "har-schema"; + packageName = "har-schema"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + }; + "har-validator-5.1.3" = { + name = "har-validator"; + packageName = "har-validator"; + version = "5.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"; + sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh"; + }; + }; + "has-unicode-2.0.1" = { + name = "has-unicode"; + packageName = "has-unicode"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + }; + "http-signature-1.2.0" = { + name = "http-signature"; + packageName = "http-signature"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz"; + }; + }; + "ignore-walk-3.0.3" = { + name = "ignore-walk"; + packageName = "ignore-walk"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha512 = "0mlk9s23jc3avly1bv6s5j7hs0aafxabmgn7iqi0bjag4b03nqckvcdrgnarpmysdq8yr1rgxh6k7p82vzjj1z6hnm5ckwswg33mflv"; + }; + }; + "imurmurhash-0.1.4" = { + name = "imurmurhash"; + packageName = "imurmurhash"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk"; + }; + }; + "ini-1.3.5" = { + name = "ini"; + packageName = "ini"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz"; + sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-stream-1.1.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"; + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; + }; + }; + "is-typedarray-1.0.0" = { + name = "is-typedarray"; + packageName = "is-typedarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "isstream-0.1.2" = { + name = "isstream"; + packageName = "isstream"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + }; + "jsbn-0.1.1" = { + name = "jsbn"; + packageName = "jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + }; + "json-schema-0.2.3" = { + name = "json-schema"; + packageName = "json-schema"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + }; + "json-schema-traverse-0.4.1" = { + name = "json-schema-traverse"; + packageName = "json-schema-traverse"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5"; + }; + }; + "json-stringify-safe-5.0.1" = { + name = "json-stringify-safe"; + packageName = "json-stringify-safe"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + }; + "jsprim-1.4.1" = { + name = "jsprim"; + packageName = "jsprim"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + }; + "marked-0.6.3" = { + name = "marked"; + packageName = "marked"; + version = "0.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz"; + sha512 = "0wnipqyl61ks0g90fa5pmgmzjcc16j8mbvs1h5s9lbqskdp7b76wwxr7xglzqrizggpilwd8pih983ynav61cramv61fswlmxxbp9hn"; + }; + }; + "matrix-js-sdk-0.7.13" = { + name = "matrix-js-sdk"; + packageName = "matrix-js-sdk"; + version = "0.7.13"; + src = fetchurl { + url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-0.7.13.tgz"; + sha1 = "283accc710009f5a0b02367682f2e86155fd00c4"; + }; + }; + "mime-db-1.42.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.42.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz"; + sha512 = "1hipkh3wjfb7m6qid0nrqdas0bj5c2hj3123pcwhcdb1qxxwyacnidn1nhdp01nnrkycwzymrf81jg6yin24pyah16m808l3q4wkdsi"; + }; + }; + "mime-types-2.1.25" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.25"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz"; + sha512 = "1b88jc29kn9ksarmd9ad8d4y4q1cn977g7nvfqyj7grmsll6y9zlfx4wwpcq0426y8dgvm412fhr9n1401h92kag3099ikrl2v55a74"; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8"; + }; + }; + "minimist-0.0.8" = { + name = "minimist"; + packageName = "minimist"; + version = "0.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + }; + "minimist-1.2.0" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + }; + "minipass-2.9.0" = { + name = "minipass"; + packageName = "minipass"; + version = "2.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; + sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3"; + }; + }; + "minizlib-1.3.3" = { + name = "minizlib"; + packageName = "minizlib"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; + sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9"; + }; + }; + "mkdirp-0.5.1" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + }; + "ms-2.1.2" = { + name = "ms"; + packageName = "ms"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; + sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh"; + }; + }; + "mustache-2.3.2" = { + name = "mustache"; + packageName = "mustache"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz"; + sha512 = "1aihy6k9338c8w0cip0c3v4s2h5yqd8xksqrv17rjybj01nsrpplbniiv09fvjadwhbyjbhkr82lyx3gyidcli0zp73sqrcsk0hv4ra"; + }; + }; + "nan-2.14.0" = { + name = "nan"; + packageName = "nan"; + version = "2.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"; + sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0"; + }; + }; + "needle-2.4.0" = { + name = "needle"; + packageName = "needle"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz"; + sha512 = "1k9220dhvc3m78hzd1xh2135p19z15y964hmhsajayvj11j2p3rv5w0gii7lmgr8w57bqkjg0xby5f1gkcph60kxvyr52z6pp7g0yg0"; + }; + }; + "node-fetch-1.7.3" = { + name = "node-fetch"; + packageName = "node-fetch"; + version = "1.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz"; + sha512 = "0lz5m15w7qaks0a0s3dm0crsjrsd123dy00pn6qwcp50zfjykxkp22i5ymh6smlc0ags38nmdxlxw9yyq509azlv8kcdvdiq857h5in"; + }; + }; + "node-localstorage-1.3.1" = { + name = "node-localstorage"; + packageName = "node-localstorage"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz"; + sha512 = "1lwiz287h6lgv0xjnz0n1fzj3bpq1rbxawlrddympi9hrwwji839wwk6y7w36k2nrkpaq86z3n2nbysad9mmwlk9z3rds4wcm4q5i9l"; + }; + }; + "node-pre-gyp-0.11.0" = { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; + sha512 = "38q9mq0yq7pjnlqnxjiq8qz38jrgj7rccdf4n6dk95zwamncxmvb88192zabdccpnjhvd9rl4nmqxn727mzb7v6g2yvg3zljqwq01ag"; + }; + }; + "nopt-4.0.1" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"; + sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + }; + }; + "npm-bundled-1.0.6" = { + name = "npm-bundled"; + packageName = "npm-bundled"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz"; + sha512 = "395ysq8prylnnimwxy4w37dwaxlk56dxwdc4jif41qghhcpdmignikigrpg6sfxxb0mr92z2p1kbad72sqxmcjfzrzvgha7zdll5wpk"; + }; + }; + "npm-packlist-1.4.6" = { + name = "npm-packlist"; + packageName = "npm-packlist"; + version = "1.4.6"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.6.tgz"; + sha512 = "2b0xwi30n7mqd43xc06yx3ck4j7ny8xaph36qs1zj2zxr64bn6m79cxfd9vxawcqpkdcy1apf1mfvc120wgqqa2pi30pazysr0nxbmv"; + }; + }; + "npmlog-4.1.2" = { + name = "npmlog"; + packageName = "npmlog"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; + sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs"; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "oauth-sign-0.9.0" = { + name = "oauth-sign"; + packageName = "oauth-sign"; + version = "0.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x"; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "olm-https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" = { + name = "olm"; + packageName = "olm"; + version = "2.3.0"; + src = fetchurl { + name = "olm-2.3.0.tar.gz"; + url = "https://packages.matrix.org/npm/olm/olm-2.3.0.tgz"; + sha256 = "1f0f037a025a44509646cb849ded7c1a1f55e7bfed240fad19676c002fcd953a"; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "3ddw0y41pxv08ls5xhmq1bi81hppjbr45k78cjfx99vznh5znrj5g1b1wab9caj1mqlsvmfms0zm9cfb47ygm0d8wv5fccx8049q9fh"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "performance-now-2.1.0" = { + name = "performance-now"; + packageName = "performance-now"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy"; + }; + }; + "psl-1.4.0" = { + name = "psl"; + packageName = "psl"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz"; + sha512 = "0bjwkcvqqwlhg86aa7pmd3n65y9hhiv5np25mw6g2phqx3mp9iv0d8sxl8r2j50hiniwz00k569h8hdxsviry8ql7r54w6ycc4fm70x"; + }; + }; + "punycode-1.4.1" = { + name = "punycode"; + packageName = "punycode"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + }; + "punycode-2.1.1" = { + name = "punycode"; + packageName = "punycode"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; + sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx"; + }; + }; + "q-1.5.1" = { + name = "q"; + packageName = "q"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz"; + sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7"; + }; + }; + "qs-6.5.2" = { + name = "qs"; + packageName = "qs"; + version = "6.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; + sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip"; + }; + }; + "rc-1.2.8" = { + name = "rc"; + packageName = "rc"; + version = "1.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; + sha512 = "0xhy1n9n3y6cp28f8f0f2mi0xzc7ay1g5nhbp64fyvcwv9q30zq2zvyc5q2d0al8aa0hx101yq2y6d2ln4r5jxnqifh1pd3la1ccxnb"; + }; + }; + "readable-stream-2.3.6" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; + sha512 = "0mj9b6190amln9rg89x5pq2n195s3v0gzicpdamv1kbabg69aw5m71l34jsjn7bqil7405l6l35x9ijnb3h4jz5vx2i00l8sl1ll2xm"; + }; + }; + "request-2.88.0" = { + name = "request"; + packageName = "request"; + version = "2.88.0"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz"; + sha512 = "2339w6v6d7n7pj0085vkfvk0864gs8kfh1kghbl3smj7s21ny3k265in140frsaipc6bvqbi4k696ic4z13d6a56dfvc653p15822il"; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r"; + }; + }; + "safe-buffer-5.1.2" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r"; + }; + }; + "safe-buffer-5.2.0" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz"; + sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx"; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1"; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n"; + }; + }; + "semver-5.7.1" = { + name = "semver"; + packageName = "semver"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; + sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi"; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "signal-exit-3.0.2" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + }; + "slide-1.1.6" = { + name = "slide"; + packageName = "slide"; + version = "1.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz"; + sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"; + }; + }; + "sqlite3-4.1.0" = { + name = "sqlite3"; + packageName = "sqlite3"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.0.tgz"; + sha512 = "1my61d8alqzqpi3xm9qvkb3sqvypxa511xq72h2v4f9p04zvw75rcz4jn9h1ajxldwnmnalwy5pq78mdiy6jfwsn33r1wmy38msiyj6"; + }; + }; + "sshpk-1.16.1" = { + name = "sshpk"; + packageName = "sshpk"; + version = "1.16.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; + sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z"; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-json-comments-2.0.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + }; + "tar-4.4.13" = { + name = "tar"; + packageName = "tar"; + version = "4.4.13"; + src = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz"; + sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3"; + }; + }; + "tough-cookie-2.4.3" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"; + sha512 = "2akhyixx49dkqadghzwj53xwfa1aikf0iv04ib9zj0kbilkzxxh16j5c6vfkcwm3cy29y46q3d8lzinsy6ql2cvb1wcw31gzs9jp6s3"; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-0.14.5" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + }; + "uri-js-4.2.2" = { + name = "uri-js"; + packageName = "uri-js"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"; + sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9"; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "uuid-3.3.3" = { + name = "uuid"; + packageName = "uuid"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"; + sha512 = "14s78i0nwzf5q1xz1d5rjlsm2rk5rf75nizydkj19mhbk1hw00lwzilkncx3bqzqhsni41i88wajwmc2mxxckkjlkjhq7j6ajihsvd5"; + }; + }; + "verror-1.10.0" = { + name = "verror"; + packageName = "verror"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + }; + "wide-align-1.1.3" = { + name = "wide-align"; + packageName = "wide-align"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; + sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0"; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "write-file-atomic-1.3.4" = { + name = "write-file-atomic"; + packageName = "write-file-atomic"; + version = "1.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz"; + sha1 = "f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb"; + }; + }; + }; + node-pre-gyp = nodeEnv.buildNodePackage { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz"; + sha512 = "32drv6q9sh4i2ff2djd1dhxxxiaiymmgycbm12wpkz9vxspnldxgmppf9sazp3c72771a1p5s4kkzgwn4w1csyz9bn4zdbdnq5w6azq"; + }; + dependencies = [ + sources."abbrev-1.1.1" + sources."ansi-regex-2.1.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."balanced-match-1.0.0" + sources."brace-expansion-1.1.11" + sources."chownr-1.1.3" + sources."code-point-at-1.1.0" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."core-util-is-1.0.2" + sources."debug-3.2.6" + sources."deep-extend-0.6.0" + sources."delegates-1.0.0" + sources."detect-libc-1.0.3" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."glob-7.1.6" + sources."has-unicode-2.0.1" + sources."iconv-lite-0.4.24" + sources."ignore-walk-3.0.3" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."ini-1.3.5" + sources."is-fullwidth-code-point-1.0.0" + sources."isarray-1.0.0" + sources."minimatch-3.0.4" + sources."minimist-0.0.8" + sources."minipass-2.9.0" + sources."minizlib-1.3.3" + sources."mkdirp-0.5.1" + sources."ms-2.1.2" + sources."needle-2.4.0" + sources."nopt-4.0.1" + sources."npm-bundled-1.0.6" + sources."npm-packlist-1.4.6" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."object-assign-4.1.1" + sources."once-1.4.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."path-is-absolute-1.0.1" + sources."process-nextick-args-2.0.1" + (sources."rc-1.2.8" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + sources."readable-stream-2.3.6" + sources."rimraf-2.7.1" + sources."safe-buffer-5.1.2" + sources."safer-buffer-2.1.2" + sources."sax-1.2.4" + sources."semver-5.7.1" + sources."set-blocking-2.0.0" + sources."signal-exit-3.0.2" + sources."string-width-1.0.2" + sources."string_decoder-1.1.1" + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."tar-4.4.13" + sources."util-deprecate-1.0.2" + sources."wide-align-1.1.3" + sources."wrappy-1.0.2" + sources."yallist-3.1.1" + ]; + buildInputs = []; + meta = { + description = "Node.js native addon binary install tool"; + homepage = "https://github.com/mapbox/node-pre-gyp#readme"; + license = "BSD-3-Clause"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; + args = { + name = "matrix-recorder"; + packageName = "matrix-recorder"; + version = "0.0.6"; + src = fetchgit { + url = "https://gitlab.com/argit/matrix-recorder/"; + rev = "006b78c8a4ddc636be8f6f1e3875b13a4a6d2c7c"; + sha256 = "0m3kzwbrxymwl6hr981q6fsf752fqxwzbpxryx25j4lkwc23nmj3"; + }; + dependencies = [ + sources."abbrev-1.1.1" + sources."ajv-6.10.2" + sources."another-json-0.2.0" + sources."ansi-regex-2.1.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."asn1-0.2.4" + sources."assert-plus-1.0.0" + sources."asynckit-0.4.0" + sources."aws-sign2-0.7.0" + sources."aws4-1.9.0" + sources."balanced-match-1.0.0" + sources."bcrypt-pbkdf-1.0.2" + sources."brace-expansion-1.1.11" + sources."browser-request-0.3.3" + sources."caseless-0.12.0" + sources."chownr-1.1.3" + sources."code-point-at-1.1.0" + sources."combined-stream-1.0.8" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."core-util-is-1.0.2" + sources."dashdash-1.14.1" + sources."debug-3.2.6" + sources."deep-extend-0.6.0" + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."detect-libc-1.0.3" + sources."ecc-jsbn-0.1.2" + sources."encoding-0.1.12" + sources."extend-3.0.2" + sources."extsprintf-1.3.0" + sources."fast-deep-equal-2.0.1" + sources."fast-json-stable-stringify-2.0.0" + sources."forever-agent-0.6.1" + sources."form-data-2.3.3" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."getpass-0.1.7" + sources."glob-7.1.6" + sources."graceful-fs-4.2.3" + sources."har-schema-2.0.0" + sources."har-validator-5.1.3" + sources."has-unicode-2.0.1" + sources."http-signature-1.2.0" + sources."iconv-lite-0.4.24" + sources."ignore-walk-3.0.3" + sources."imurmurhash-0.1.4" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."ini-1.3.5" + sources."is-fullwidth-code-point-1.0.0" + sources."is-stream-1.1.0" + sources."is-typedarray-1.0.0" + sources."isarray-1.0.0" + sources."isstream-0.1.2" + sources."jsbn-0.1.1" + sources."json-schema-0.2.3" + sources."json-schema-traverse-0.4.1" + sources."json-stringify-safe-5.0.1" + sources."jsprim-1.4.1" + sources."marked-0.6.3" + sources."matrix-js-sdk-0.7.13" + sources."mime-db-1.42.0" + sources."mime-types-2.1.25" + sources."minimatch-3.0.4" + sources."minimist-0.0.8" + sources."minipass-2.9.0" + sources."minizlib-1.3.3" + sources."mkdirp-0.5.1" + sources."ms-2.1.2" + sources."mustache-2.3.2" + sources."nan-2.14.0" + sources."needle-2.4.0" + sources."node-fetch-1.7.3" + sources."node-localstorage-1.3.1" + sources."node-pre-gyp-0.11.0" + sources."nopt-4.0.1" + sources."npm-bundled-1.0.6" + sources."npm-packlist-1.4.6" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."oauth-sign-0.9.0" + sources."object-assign-4.1.1" + sources."olm-https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" + sources."once-1.4.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."path-is-absolute-1.0.1" + sources."performance-now-2.1.0" + sources."process-nextick-args-2.0.1" + sources."psl-1.4.0" + sources."punycode-2.1.1" + sources."q-1.5.1" + sources."qs-6.5.2" + (sources."rc-1.2.8" // { + dependencies = [ + sources."minimist-1.2.0" + ]; + }) + (sources."readable-stream-2.3.6" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."request-2.88.0" + sources."rimraf-2.7.1" + sources."safe-buffer-5.2.0" + sources."safer-buffer-2.1.2" + sources."sax-1.2.4" + sources."semver-5.7.1" + sources."set-blocking-2.0.0" + sources."signal-exit-3.0.2" + sources."slide-1.1.6" + sources."sqlite3-4.1.0" + sources."sshpk-1.16.1" + sources."string-width-1.0.2" + (sources."string_decoder-1.1.1" // { + dependencies = [ + sources."safe-buffer-5.1.2" + ]; + }) + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."tar-4.4.13" + (sources."tough-cookie-2.4.3" // { + dependencies = [ + sources."punycode-1.4.1" + ]; + }) + sources."tunnel-agent-0.6.0" + sources."tweetnacl-0.14.5" + sources."uri-js-4.2.2" + sources."util-deprecate-1.0.2" + sources."uuid-3.3.3" + sources."verror-1.10.0" + sources."wide-align-1.1.3" + sources."wrappy-1.0.2" + sources."write-file-atomic-1.3.4" + sources."yallist-3.1.1" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "A recorder that can record Matrix rooms you are a member of (including E2E-encrypted rooms)."; + license = "MIT"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +in +{ + tarball = nodeEnv.buildNodeSourceDist args; + package = nodeEnv.buildNodePackage args; + shell = nodeEnv.buildNodeShell args; + inherit node-pre-gyp; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json new file mode 100644 index 000000000000..fc03d636ad21 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-recorder/package.json @@ -0,0 +1,27 @@ +{ + "name": "matrix-recorder", + "version": "0.0.6", + "description": "A recorder that can record Matrix rooms you are a member of (including E2E-encrypted rooms).", + "author": "Hello Matrix <hello@hello-matrix.net>", + "main": "matrix-recorder.js", + "scripts": { + "start": "node matrix-recorder.js" + }, + "repository": { + "type": "git", + "url": "https://gitlab.com/argit/matrix-recorder.git" + }, + "dependencies": { + "marked": "^0.6.2", + "matrix-js-sdk": "^0.7.13", + "mime-types": "^2.1.14", + "mustache": "^2.3.0", + "node-fetch": "^1.6.3", + "node-localstorage": "^1.3.0", + "sqlite3": "^4.0.7", + "olm": "https://packages.matrix.org/npm/olm/olm-2.3.0.tgz" + }, + "license": "MIT", + "optionalDependencies": { + } +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix new file mode 100644 index 000000000000..aadb18606e11 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchgit + , buildPythonApplication, buildPythonPackage + , pygobject3, pytestrunner, requests, responses, pytest, python-olm + , canonicaljson, olm +}: +let + mainsrc = fetchgit { + url = "https://github.com/saadnpq/matrixcli"; + rev = "61ebde173ca2f77185c261c2b7f6db297ca89863"; + sha256 = "0xcjjy2xwlcixr9fwgzcfjjkivqpk104h7dslfa7lz9jq9pzqzvq"; + fetchSubmodules = true; + }; + + sdk = buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "matrix-python-sdk-matrixcli"; + version = "0.0.2019-08-15"; + + src = "${mainsrc}/matrix-python-sdk/"; + + propagatedBuildInputs = [ + requests responses olm python-olm canonicaljson + pytestrunner pytest + ]; + + doCheck = false; + doInstallCheck = false; + + meta = { + license = lib.licenses.asl20; + description = "Fork of Matrix Python SDK"; + platforms = lib.platforms.linux; + }; + }; + +in +buildPythonApplication rec { + name = "${pname}-${version}"; + pname = "matrixcli"; + version = "0.0.2019-08-15"; + + src = mainsrc; + + propagatedBuildInputs = [pygobject3 sdk]; + + meta = { + description = "CLI client for Matrix"; + license = lib.licenses.gpl3; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; + homepage = "https://github.com/saadnpq/matrixcli"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix new file mode 100644 index 000000000000..5b14fba5b420 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix @@ -0,0 +1,104 @@ +{ lib, stdenv, fetchurl, gnome2, gtk3, pango, atk, cairo, gdk-pixbuf, glib, +freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage, +libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst, +libXScrnSaver, nss, nspr, alsa-lib, cups, expat, udev, wrapGAppsHook, +hicolor-icon-theme, libuuid, at-spi2-core, at-spi2-atk }: + +let + rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + pango + libuuid + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + nspr + nss + stdenv.cc.cc + udev + xorg.libxcb + ]; + +in + stdenv.mkDerivation rec { + pname = "mattermost-desktop"; + version = "4.6.2"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz"; + sha256 = "0i836bc0gx375a9fm2cdxg84k03zhpx1z6jqxndf2m8pkfsblc3x"; + } + else if stdenv.hostPlatform.system == "i686-linux" then + fetchurl { + url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz"; + sha256 = "04jv9hkmkh0jipv0fjdprnp5kmkjvf3c0fah6ysi21wmnmp5ab3m"; + } + else + throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}"; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + + nativeBuildInputs = [ wrapGAppsHook ]; + + buildInputs = [ gtk3 hicolor-icon-theme ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/mattermost-desktop + cp -R . $out/share/mattermost-desktop + + mkdir -p "$out/bin" + ln -s $out/share/mattermost-desktop/mattermost-desktop \ + $out/bin/mattermost-desktop + + patchShebangs $out/share/mattermost-desktop/create_desktop_file.sh + $out/share/mattermost-desktop/create_desktop_file.sh + rm $out/share/mattermost-desktop/create_desktop_file.sh + mkdir -p $out/share/applications + mv Mattermost.desktop $out/share/applications/Mattermost.desktop + substituteInPlace \ + $out/share/applications/Mattermost.desktop \ + --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop + + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpath}:$out/share/mattermost-desktop" \ + $out/share/mattermost-desktop/mattermost-desktop + + runHook postInstall + ''; + + meta = with lib; { + description = "Mattermost Desktop client"; + homepage = "https://about.mattermost.com/"; + license = licenses.asl20; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = [ maintainers.joko ]; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix new file mode 100644 index 000000000000..7c5bff940848 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchurl, openssl, ncurses, pkg-config, glib, loudmouth, libotr +, gpgme +}: + +stdenv.mkDerivation rec { + pname = "mcabber"; + version = "1.1.2"; + + src = fetchurl { + url = "https://mcabber.com/files/mcabber-${version}.tar.bz2"; + sha256 = "0q1i5acyghsmzas88qswvki8kkk2nfpr8zapgnxbcd3lwcxl38f4"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ncurses glib loudmouth libotr gpgme ]; + + configureFlags = [ + "--with-openssl=${openssl.dev}" + "--enable-modules" + "--enable-otr" + ]; + + doCheck = true; + + meta = with lib; { + homepage = "http://mcabber.com/"; + description = "Small Jabber console client"; + license = licenses.gpl2; + maintainers = with maintainers; [ pSub ]; + platforms = with platforms; linux; + updateWalker = true; + downloadPage = "http://mcabber.com/files/"; + downloadURLRegexp = "mcabber-[0-9.]+[.]tar[.][a-z0-9]+$"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix new file mode 100644 index 000000000000..c20ec46f266d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix @@ -0,0 +1,160 @@ +{ lib +, stdenv +, fetchurl +, bundlerEnv +, alsa-utils +, atk +, copyDesktopItems +, gobject-introspection +, gtk2 +, ruby +, libicns +, libnotify +, makeDesktopItem +, which +, wrapGAppsHook +, writeText +}: + +let + # NOTE: $out may have different values depending on context + mikutterPaths = rec { + optPrefixDir = "$out/opt/mikutter"; + appPrefixDir = "$out/Applications/mikutter.app/Contents"; + appBinDir = "${appPrefixDir}/MacOS"; + appResourceDir = "${appPrefixDir}/Resources"; + iconPath = "${optPrefixDir}/core/skin/data/icon.png"; + }; + + gems = bundlerEnv { + name = "mikutter-gems"; # leave the version out to enable package reuse + gemdir = ./deps; + groups = [ "default" "plugin" ]; + inherit ruby; + + # Avoid the following error: + # > `<module:Moneta>': uninitialized constant Moneta::Builder (NameError) + # + # Related: + # https://github.com/NixOS/nixpkgs/pull/76510 + # https://github.com/NixOS/nixpkgs/pull/76765 + # https://github.com/NixOS/nixpkgs/issues/83442 + # https://github.com/NixOS/nixpkgs/issues/106545 + copyGemFiles = true; + }; + + mkDesktopItem = { description }: + makeDesktopItem { + name = "mikutter"; + desktopName = "mikutter"; + exec = "mikutter"; + icon = "mikutter"; + categories = "Network;"; + comment = description; + extraDesktopEntries.Keywords = "Mastodon;"; + }; + + mkInfoPlist = { version }: + writeText "Info.plist" (lib.generators.toPlist { } { + CFBundleName = "mikutter"; + CFBundleDisplayName = "mikutter"; + CFBundleExecutable = "mikutter"; + CFBundleIconFile = "mikutter"; + CFBundleIdentifier = "net.hachune.mikutter"; + CFBundleInfoDictionaryVersion = "6.0"; + CFBundlePackageType = "APPL"; + CFBundleVersion = version; + CFBundleShortVersionString = version; + }); + + inherit (gems) wrappedRuby; +in +with mikutterPaths; stdenv.mkDerivation rec { + pname = "mikutter"; + version = "4.1.4"; + + src = fetchurl { + url = "https://mikutter.hachune.net/bin/mikutter-${version}.tar.gz"; + sha256 = "05253nz4i1lmnq6czj48qdab2ny4vx2mznj6nsn2l1m2z6zqkwk3"; + }; + + nativeBuildInputs = [ copyDesktopItems wrapGAppsHook ] + ++ lib.optionals stdenv.isDarwin [ libicns ]; + buildInputs = [ + atk + gtk2 + gobject-introspection + libnotify + which # some plugins use it at runtime + wrappedRuby + ] ++ lib.optionals stdenv.isLinux [ alsa-utils ]; + + scriptPath = lib.makeBinPath ( + [ wrappedRuby libnotify which ] + ++ lib.optionals stdenv.isLinux [ alsa-utils ] + ); + + postUnpack = '' + rm -rf vendor + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin ${optPrefixDir} + + install -Dm644 README $out/share/doc/mikutter/README + install -Dm644 LICENSE $out/share/doc/mikutter/LICENSE + rm -r README LICENSE deployment + + cp -r . ${optPrefixDir} + + gappsWrapperArgsHook # FIXME: currently runs at preFixup + wrapGApp ${optPrefixDir}/mikutter.rb \ + --prefix PATH : "${scriptPath}" \ + --set DISABLE_BUNDLER_SETUP 1 + mv ${optPrefixDir}/mikutter.rb $out/bin/mikutter + + install -Dm644 ${iconPath} $out/share/icons/hicolor/256x256/apps/mikutter.png + + runHook postInstall + ''; + + postInstall = + let + infoPlist = mkInfoPlist { inherit version; }; + in + lib.optionalString stdenv.isDarwin '' + mkdir -p ${appBinDir} ${appResourceDir} + install -Dm644 ${infoPlist} ${appPrefixDir}/Info.plist + ln -s $out/bin/mikutter ${appBinDir}/mikutter + png2icns ${appResourceDir}/mikutter.icns ${iconPath} + ''; + + installCheckPhase = '' + runHook preInstallCheck + + testDir="$(mktemp -d)" + install -Dm644 ${./test_plugin.rb} "$testDir/plugin/test_plugin/test_plugin.rb" + + $out/bin/mikutter --confroot="$testDir" --plugin=test_plugin --debug + + runHook postInstallCheck + ''; + + desktopItems = [ + (mkDesktopItem { inherit (meta) description; }) + ]; + + doInstallCheck = true; + dontWrapGApps = true; # the target is placed outside of bin/ + + passthru.updateScript = [ ./update.sh version (toString ./.) ]; + + meta = with lib; { + description = "An extensible Mastodon client"; + homepage = "https://mikutter.hachune.net"; + platforms = ruby.meta.platforms; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile new file mode 100644 index 000000000000..fbe6a2f29c5d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile @@ -0,0 +1,39 @@ +alias __source_distinct__ source +def source(url) + @loaded ||= {} + unless @loaded[url] + @loaded[url] = true + __source_distinct__(url) end end + +source 'https://rubygems.org' + +ruby '>= 2.5.0' + +group :default do + gem 'addressable','>= 2.7.0', '< 2.8' + gem 'delayer','>= 1.1.2', '< 2.0' + gem 'delayer-deferred','>= 2.2.0', '< 3.0' + gem 'diva','>= 1.0.2', '< 2.0' + gem 'memoist','>= 0.16.2', '< 0.17' + gem 'oauth','>= 0.5.4' + gem 'pluggaloid','>= 1.5.0', '< 2.0' + gem 'typed-array','>= 0.1.2', '< 0.2' +end + +group :test do + gem 'test-unit','>= 3.3.4', '< 4.0' + gem 'rake','>= 13.0.1' + gem 'mocha','>= 1.11.1' + gem 'webmock','>= 3.7.6' + gem 'ruby-prof','>= 1.1.0' +end + + +group :plugin do + Dir.glob(File.expand_path(File.join(__dir__, 'plugin/*/Gemfile'))){ |path| + eval File.open(path).read + } + Dir.glob(File.join(File.expand_path(ENV['MIKUTTER_CONFROOT'] || '~/.mikutter'), 'plugin/*/Gemfile')){ |path| + eval File.open(path).read + } +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock new file mode 100644 index 000000000000..92568056d52a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock @@ -0,0 +1,101 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + atk (3.4.1) + glib2 (= 3.4.1) + cairo (1.17.5) + native-package-installer (>= 1.0.3) + pkg-config (>= 1.2.2) + red-colors + cairo-gobject (3.4.1) + cairo (>= 1.16.2) + glib2 (= 3.4.1) + crack (0.4.5) + rexml + delayer (1.2.0) + delayer-deferred (2.2.0) + delayer (>= 1.1.2, < 2.0) + diva (1.0.2) + addressable (>= 2.5.2, < 2.8) + gdk_pixbuf2 (3.4.1) + gio2 (= 3.4.1) + gettext (3.3.7) + locale (>= 2.0.5) + text (>= 1.3.0) + gio2 (3.4.1) + gobject-introspection (= 3.4.1) + glib2 (3.4.1) + native-package-installer (>= 1.0.3) + pkg-config (>= 1.3.5) + gobject-introspection (3.4.1) + glib2 (= 3.4.1) + gtk2 (3.4.1) + atk (= 3.4.1) + gdk_pixbuf2 (= 3.4.1) + pango (= 3.4.1) + hashdiff (1.0.1) + httpclient (2.8.3) + instance_storage (1.0.0) + locale (2.1.3) + memoist (0.16.2) + mini_portile2 (2.5.0) + mocha (1.12.0) + moneta (1.4.1) + native-package-installer (1.1.1) + nokogiri (1.11.3) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + oauth (0.5.6) + pango (3.4.1) + cairo-gobject (= 3.4.1) + gobject-introspection (= 3.4.1) + pkg-config (1.4.6) + pluggaloid (1.5.0) + delayer (>= 1.1.0, < 2.0) + instance_storage (>= 1.0.0, < 2.0.0) + power_assert (2.0.0) + public_suffix (4.0.6) + racc (1.5.2) + rake (13.0.3) + red-colors (0.1.1) + rexml (3.2.5) + ruby-prof (1.4.3) + test-unit (3.4.0) + power_assert + text (1.3.1) + typed-array (0.1.2) + webmock (3.12.2) + addressable (>= 2.3.6) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + ruby + +DEPENDENCIES + addressable (>= 2.7.0, < 2.8) + delayer (>= 1.1.2, < 2.0) + delayer-deferred (>= 2.2.0, < 3.0) + diva (>= 1.0.2, < 2.0) + gettext (>= 3.3.5, < 3.4) + gtk2 (= 3.4.1) + httpclient + memoist (>= 0.16.2, < 0.17) + mocha (>= 1.11.1) + moneta + nokogiri + oauth (>= 0.5.4) + pluggaloid (>= 1.5.0, < 2.0) + rake (>= 13.0.1) + ruby-prof (>= 1.1.0) + test-unit (>= 3.3.4, < 4.0) + typed-array (>= 0.1.2, < 0.2) + webmock (>= 3.7.6) + +RUBY VERSION + ruby 2.6.6p146 + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix new file mode 100644 index 000000000000..b45a36c6fec0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix @@ -0,0 +1,410 @@ +{ + addressable = { + dependencies = ["public_suffix"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; + type = "gem"; + }; + version = "2.7.0"; + }; + atk = { + dependencies = ["glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8q9a1f6x4gy55p8cf52a22bnpjgn18ad9n959x0f4gybbhs948"; + type = "gem"; + }; + version = "3.4.1"; + }; + cairo = { + dependencies = ["native-package-installer" "pkg-config" "red-colors"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s"; + type = "gem"; + }; + version = "1.17.5"; + }; + cairo-gobject = { + dependencies = ["cairo" "glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gkxdfslcvrwrs48giilji3bgxd5bwijwq33p9h00r10jzfg2028"; + type = "gem"; + }; + version = "3.4.1"; + }; + crack = { + dependencies = ["rexml"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r"; + type = "gem"; + }; + version = "0.4.5"; + }; + delayer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iqf4i18i8rk3x7qgvkhbiqskf0xzdf733fjimrq6xkag2mq60bl"; + type = "gem"; + }; + version = "1.2.0"; + }; + delayer-deferred = { + dependencies = ["delayer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i2das3ncssacpqdgaf4as77vrxm7jfiizaja884fqv4rzv6s2sv"; + type = "gem"; + }; + version = "2.2.0"; + }; + diva = { + dependencies = ["addressable"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05wl4wg57vvng4nrp4lzjq148v908xzq092kq93phwvyxs7jnw2g"; + type = "gem"; + }; + version = "1.0.2"; + }; + gdk_pixbuf2 = { + dependencies = ["gio2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0194gzn0kialfh0j7crllvp808r64sg6dh297x69b0av21ar5pam"; + type = "gem"; + }; + version = "3.4.1"; + }; + gettext = { + dependencies = ["locale" "text"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fqlwq7i8ck1fjyhn19q3skvgrbz44q7gq51mlr0qym5rkj5f6rn"; + type = "gem"; + }; + version = "3.3.7"; + }; + gio2 = { + dependencies = ["gobject-introspection"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l3jpgbdvb55xhcmpkcqgwx5068dfyi8kijfvzhbqh96ng0p1m7g"; + type = "gem"; + }; + version = "3.4.1"; + }; + glib2 = { + dependencies = ["native-package-installer" "pkg-config"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18clyn0fp0h5alnkf9i2bqd6wvl78h468pdbzs1csqnba8vw4q1c"; + type = "gem"; + }; + version = "3.4.1"; + }; + gobject-introspection = { + dependencies = ["glib2"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3x8qiisbax3x0izj8l5w66r53ba5ma53ax2jhdbhbvaxx3d02n"; + type = "gem"; + }; + version = "3.4.1"; + }; + gtk2 = { + dependencies = ["atk" "gdk_pixbuf2" "pango"]; + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17az8g0n1yzz90kdbjg2hpabi04qccda7v6lin76bs637ivfg2md"; + type = "gem"; + }; + version = "3.4.1"; + }; + hashdiff = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; + type = "gem"; + }; + version = "1.0.1"; + }; + httpclient = { + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + instance_storage = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08nf5fhq9dckq9lmaklxydq0hrlfi7phk66gr3bggxg45zd687pl"; + type = "gem"; + }; + version = "1.0.0"; + }; + locale = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0997465kxvpxm92fiwc2b16l49mngk7b68g5k35ify0m3q0yxpdn"; + type = "gem"; + }; + version = "2.1.3"; + }; + memoist = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55"; + type = "gem"; + }; + version = "0.16.2"; + }; + mini_portile2 = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + type = "gem"; + }; + version = "2.5.0"; + }; + mocha = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a"; + type = "gem"; + }; + version = "1.12.0"; + }; + moneta = { + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z25b4yysvnf2hi9jxnsiv3fvnicnzr2m70ci231av5093jfknc6"; + type = "gem"; + }; + version = "1.4.1"; + }; + native-package-installer = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8"; + type = "gem"; + }; + version = "1.1.1"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0"; + type = "gem"; + }; + version = "1.11.3"; + }; + oauth = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0"; + type = "gem"; + }; + version = "0.5.6"; + }; + pango = { + dependencies = ["cairo-gobject" "gobject-introspection"]; + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d0cn50qgpifrcv8qx72wi6l9xalw3ryngbfmm9xpg9vx5rl1qbp"; + type = "gem"; + }; + version = "3.4.1"; + }; + pkg-config = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl"; + type = "gem"; + }; + version = "1.4.6"; + }; + pluggaloid = { + dependencies = ["delayer" "instance_storage"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m3f940lf1bg01jin22by7hg9hs43y995isgcyqb6vbvlv51zj11"; + type = "gem"; + }; + version = "1.5.0"; + }; + power_assert = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "172qfmzwxdf82bmwgcb13hnz9i3p6i2s2nijxnx6r63kn3drjppr"; + type = "gem"; + }; + version = "2.0.0"; + }; + public_suffix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9"; + type = "gem"; + }; + version = "4.0.6"; + }; + racc = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g"; + type = "gem"; + }; + version = "1.5.2"; + }; + rake = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67"; + type = "gem"; + }; + version = "13.0.3"; + }; + red-colors = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca"; + type = "gem"; + }; + version = "0.1.1"; + }; + rexml = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + type = "gem"; + }; + version = "3.2.5"; + }; + ruby-prof = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m"; + type = "gem"; + }; + version = "1.4.3"; + }; + test-unit = { + dependencies = ["power_assert"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h0c323zfn4hdida4g58h8wnlh4kax438gyxlw20dd78kcp01i8m"; + type = "gem"; + }; + version = "3.4.0"; + }; + text = { + groups = ["default" "plugin"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + typed-array = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qlv2rnkin9rwkgjx3k5qvc17m0m7jf5cdirw3wxbjnw5kga27w9"; + type = "gem"; + }; + version = "0.1.2"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0"; + type = "gem"; + }; + version = "3.12.2"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile new file mode 100644 index 000000000000..3306c29e3cbf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'gtk2', '3.4.1' + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile new file mode 100644 index 000000000000..f86005fef078 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile @@ -0,0 +1 @@ +gem 'moneta' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile new file mode 100644 index 000000000000..66016eee9c46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +gem 'nokogiri' +gem 'httpclient' diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile new file mode 100644 index 000000000000..08b4831dfc66 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile @@ -0,0 +1,5 @@ +source 'https://rubygems.org' + +group :default do + gem 'gettext', '>= 3.3.5', '< 3.4' +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb new file mode 100644 index 000000000000..b19c15cd304f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb @@ -0,0 +1,10 @@ +# Tests mikutter's event system. + +Plugin.create(:test_plugin) do + require 'logger' + Delayer.new do + log = Logger.new(STDOUT) + log.info("loaded test_plugin") + exit + end +end diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/update.sh new file mode 100755 index 000000000000..142fd8ca9424 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/update.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bundler bundix curl jq common-updater-scripts +# shellcheck shell=bash + +set -euo pipefail + +main() { + local currentVer="$1" + local scriptDir="$2" + local latestVer + local srcDir + + if [[ -z "$UPDATE_NIX_ATTR_PATH" ]]; then + echo "[ERROR] Please run the following instead:" >&2 + echo >&2 + echo " % nix-shell maintainers/scripts/update.nix --argstr path mikutter" >&2 + exit 1 + fi + + latestVer="$(queryLatestVersion)" + if [[ "$currentVer" == "$latestVer" ]]; then + echo "[INFO] mikutter is already up to date" >&2 + exit + fi + + update-source-version "$UPDATE_NIX_ATTR_PATH" "$latestVer" + + cd "$scriptDir" + + rm -rf deps + mkdir deps + cd deps + + srcDir="$(nix-build ../../../../../.. --no-out-link -A mikutter.src)" + tar xvf "$srcDir" --strip-components=1 + find . -not -name Gemfile -exec rm {} \; + find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \; || true + + bundle lock + bundix +} + +queryLatestVersion() { + curl -sS 'https://mikutter.hachune.net/download.json?count=1' \ + | jq -r '.[].version_string' \ + | head -n1 +} + +main "$@" + +# vim:set ft=bash: diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix new file mode 100644 index 000000000000..42ea1c52fa9b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix @@ -0,0 +1,59 @@ +{ lib, stdenv, mkDerivation, fetchFromGitHub +, qmake, pkg-config, olm, wrapQtAppsHook +, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qtgraphicaleffects +, python3Packages, pyotherside, libXScrnSaver +}: + +let + pypkgs = with python3Packages; [ + aiofiles filetype matrix-nio appdirs cairosvg + pymediainfo setuptools html-sanitizer mistune blist + pyotherside + ]; +in +mkDerivation rec { + pname = "mirage"; + version = "0.6.4"; + + src = fetchFromGitHub { + owner = "mirukana"; + repo = pname; + rev = "v${version}"; + sha256 = "15x0x2rf4fzsd0zr84fq3j3ddzkgc5il8s54jpxk8wl4ah03g4nv"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook python3Packages.wrapPython ]; + + buildInputs = [ + qtbase qtmultimedia + qtquickcontrols2 + qtkeychain qtgraphicaleffects + olm pyotherside + libXScrnSaver + ]; + + propagatedBuildInputs = pypkgs; + + pythonPath = pypkgs; + + qmakeFlags = [ "PREFIX=${placeholder "out"}" "CONFIG+=qtquickcompiler" ]; + + dontWrapQtApps = true; + postInstall = '' + buildPythonPath "$out $pythonPath" + wrapProgram $out/bin/mirage \ + --prefix PYTHONPATH : "$PYTHONPATH" \ + "''${qtWrapperArgs[@]}" + ''; + + meta = with lib; { + description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication"; + homepage = "https://github.com/mirukana/mirage"; + license = licenses.lgpl3; + maintainers = with maintainers; [ colemickens ]; + broken = stdenv.isDarwin; + inherit (qtbase.meta) platforms; + inherit version; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix new file mode 100644 index 000000000000..c8f24e72a9ae --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix @@ -0,0 +1,21 @@ +{ lib, buildGoModule, fetchgit }: + +buildGoModule { + pname = "mm"; + version = "2020.11.17"; + + src = fetchgit { + url = "https://git.lost.host/meutraa/mm.git"; + rev = "e5fa8eeb845aac8f28fc36013ee8a1dbe1e5710c"; + sha256 = "sha256-SdD4EE/rc85H7xqKB/kU8XFsC63i1sVObPha/zrxFGk="; + }; + + vendorSha256 = "sha256-zJJ9PzQShv2iRNyCg1XVscbwjV9ZtMIojJDtXXm3rVM="; + + meta = with lib; { + description = "A file system based matrix client"; + homepage = "https://git.lost.host/meutraa/mm"; + license = licenses.isc; + maintainers = with maintainers; [ meutraa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix new file mode 100644 index 000000000000..c0e0c80b4595 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/neochat/default.nix @@ -0,0 +1,65 @@ +{ mkDerivation +, lib +, fetchFromGitLab +, pkg-config +, cmake +, qtquickcontrols2 +, qtmultimedia +, qtgraphicaleffects +, qtkeychain +, libpulseaudio +, olm +, libsecret +, cmark +, extra-cmake-modules +, kirigami2 +, kitemmodels +, ki18n +, knotifications +, kdbusaddons +, kconfig +, libquotient +, kquickimageedit +}: + +mkDerivation rec { + pname = "neochat"; + version = "1.1.1"; + + src = fetchFromGitLab { + domain = "invent.kde.org"; + owner = "network"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-HvLPsU+fxlyPDP7i9OSnZ/C1RjouOQCp+4WCl6FlFJo="; + }; + + nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; + + buildInputs = [ + qtkeychain + qtquickcontrols2 + qtmultimedia + qtgraphicaleffects + olm + libsecret + cmark + kirigami2 + kitemmodels + ki18n + knotifications + kdbusaddons + kconfig + libquotient + kquickimageedit + libpulseaudio + ]; + + meta = with lib; { + description = "A client for matrix, the decentralized communication protocol."; + homepage = "https://apps.kde.org/en/neochat"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ mjlbach peterhoeg ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix new file mode 100644 index 000000000000..b097864af431 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -0,0 +1,91 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, cmark +, lmdb +, lmdbxx +, libsecret +, mkDerivation +, qtbase +, qtkeychain +, qtmacextras +, qtmultimedia +, qttools +, qtquickcontrols2 +, qtgraphicaleffects +, mtxclient +, boost17x +, spdlog +, fmt +, olm +, pkg-config +, nlohmann_json +, voipSupport ? true +, gst_all_1 +, libnice +}: + +mkDerivation rec { + pname = "nheko"; + version = "0.8.2"; + + src = fetchFromGitHub { + owner = "Nheko-Reborn"; + repo = "nheko"; + rev = "v${version}"; + sha256 = "sha256-w4l91/W6F1FL+Q37qWSjYRHv4vad/10fxdKwfNeEwgw="; + }; + + nativeBuildInputs = [ + lmdbxx + cmake + pkg-config + ]; + + buildInputs = [ + nlohmann_json + mtxclient + olm + boost17x + libsecret + lmdb + spdlog + fmt + cmark + qtbase + qtmultimedia + qttools + qtquickcontrols2 + qtgraphicaleffects + qtkeychain + ] ++ lib.optional stdenv.isDarwin qtmacextras + ++ lib.optionals voipSupport (with gst_all_1; [ + gstreamer + gst-plugins-base + (gst-plugins-good.override { qt5Support = true; }) + gst-plugins-bad + libnice + ]); + + cmakeFlags = [ + "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389 + ]; + + preFixup = lib.optionalString voipSupport '' + # add gstreamer plugins path to the wrapper + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Desktop client for the Matrix protocol"; + homepage = "https://github.com/Nheko-Reborn/nheko"; + maintainers = with maintainers; [ ekleog fpletz ]; + platforms = platforms.all; + # Should be fixable if a higher clang version is used, see: + # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177 + broken = stdenv.targetPlatform.isDarwin; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix new file mode 100644 index 000000000000..e3595e07a788 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix @@ -0,0 +1,42 @@ +{ stdenv, lib, perl, perlPackages, coreutils, +fetchFromGitHub, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "oysttyer"; + version = "2.10.0"; + + src = fetchFromGitHub { + owner = "oysttyer"; + repo = "oysttyer"; + rev = version; + sha256 = "0cm1hvi68iqgjsg15xdii271pklgzjn9j9afb1c460z71kgy3wz2"; + }; + + buildInputs = [ + perl + makeWrapper + ]; + + propagatedBuildInputs = with perlPackages; [ + DateTimeFormatDateParse + TermReadLineTTYtter + TermReadKey + ]; + + installPhase = '' + ${coreutils}/bin/install -Dm755 \ + oysttyer.pl \ + $out/bin/oysttyer + + wrapProgram $out/bin/oysttyer \ + --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + inherit version; + description = "Perl Console Twitter Client"; + homepage = "http://oysttyer.github.io/"; + maintainers = with maintainers; [ woffs ]; + license = with licenses; [ ffsl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix new file mode 100644 index 000000000000..214675349936 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix @@ -0,0 +1,80 @@ +{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder, + attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus, + prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3, + setuptools, fetchpatch, installShellFiles, + + pytest, faker, pytest-aiohttp, aioresponses, + + enableDbusUi ? true +}: + +buildPythonApplication rec { + pname = "pantalaimon"; + version = "0.9.2"; + + disabled = pythonOlder "3.6"; + + # pypi tarball miss tests + src = fetchFromGitHub { + owner = "matrix-org"; + repo = pname; + rev = version; + sha256 = "11dfv5b2slqybisq6npmrqxrzslh4bjs4093vrc05s94046d9d9n"; + }; + + patches = [ + # accept newer matrix-nio versions + (fetchpatch { + url = "https://github.com/matrix-org/pantalaimon/commit/73f68c76fb05037bd7fe71688ce39eb1f526a385.patch"; + sha256 = "0wvqcfan8yp67p6khsqkynbkifksp2422b9jy511mvhpy51sqykl"; + }) + ]; + + propagatedBuildInputs = [ + aiohttp + appdirs + attrs + click + janus + keyring + Logbook + matrix-nio + peewee + prompt_toolkit + setuptools + ] ++ lib.optional enableDbusUi [ + dbus-python + notify2 + pygobject3 + pydbus + ]; + + checkInputs = [ + pytest + faker + pytest-aiohttp + aioresponses + ]; + + nativeBuildInputs = [ + installShellFiles + ]; + + # darwin has difficulty communicating with server, fails some integration tests + doCheck = !stdenv.isDarwin; + + checkPhase = '' + pytest + ''; + + postInstall = '' + installManPage docs/man/*.[1-9] + ''; + + meta = with lib; { + description = "An end-to-end encryption aware Matrix reverse proxy daemon"; + homepage = "https://github.com/matrix-org/pantalaimon"; + license = licenses.asl20; + maintainers = with maintainers; [ valodim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix new file mode 100644 index 000000000000..f702a667ae16 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, libxml2, pidgin, pkg-config, fetchFromGitHub } : + +stdenv.mkDerivation rec { + pname = "pidgin-carbons"; + version = "0.2.3"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "carbons"; + rev = "v${version}"; + sha256 = "sha256-qiyIvmJbRmCrAi/93UxDVtO76nSdtzUVfT/sZGxxAh8="; + }; + + makeFlags = [ "PURPLE_PLUGIN_DIR=$(out)/lib/pidgin" ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libxml2 pidgin ]; + + meta = with lib; { + homepage = "https://github.com/gkdr/carbons"; + description = "XEP-0280: Message Carbons plugin for libpurple"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix new file mode 100644 index 000000000000..c32bd6f3e398 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, pidgin} : + +stdenv.mkDerivation { + name = "pidgin-msn-pecan-0.1.4"; + src = fetchurl { + url = "http://msn-pecan.googlecode.com/files/msn-pecan-0.1.4.tar.bz2"; + sha256 = "0d43z2ay9is1r2kkc9my8pz0fwdyzv7k19vdmbird18lg7rlbjd2"; + }; + + meta = { + description = "Alternative MSN protocol plug-in for Pidgin IM"; + homepage = "https://github.com/felipec/msn-pecan"; + platforms = lib.platforms.linux; + }; + + makeFlags = [ + "PURPLE_LIBDIR=${placeholder "out"}/lib" + "PURPLE_DATADIR=${placeholder "out"}/share/data" + ]; + + buildInputs = [pidgin]; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix new file mode 100644 index 000000000000..c7bad49cebaa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, libotr, pidgin, intltool } : + +stdenv.mkDerivation rec { + name = "pidgin-otr-4.0.2"; + src = fetchurl { + url = "http://www.cypherpunks.ca/otr/${name}.tar.gz"; + sha256 = "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"; + }; + + postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr"; + + buildInputs = [ libotr pidgin intltool ]; + + meta = with lib; { + homepage = "https://otr.cypherpunks.ca/"; + description = "Plugin for Pidgin 2.x which implements OTR Messaging"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix new file mode 100644 index 000000000000..1250e3877b96 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchurl, pkg-config, pidgin, texLive, imagemagick, glib, gtk2 }: + +let version = "1.5.0"; +in +stdenv.mkDerivation { + pname = "pidgin-latex"; + inherit version; + + src = fetchurl { + url = "mirror://sourceforge/pidgin-latex/pidgin-latex_${version}.tar.bz2"; + sha256 = "9c850aee90d7e59de834f83e09fa6e3e51b123f06e265ead70957608ada95441"; + }; + + nativeBuildInputs = [pkg-config]; + buildInputs = [gtk2 glib pidgin]; + makeFlags = [ "PREFIX=$(out)" ]; + + postPatch = '' + sed -e 's/-Wl,-soname//' -i Makefile + ''; + + passthru = { + wrapArgs = "--prefix PATH ':' ${lib.makeBinPath [ texLive imagemagick ]}"; + }; + + meta = with lib; { + homepage = "https://sourceforge.net/projects/pidgin-latex/"; + description = "LaTeX rendering plugin for Pidgin IM"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix new file mode 100644 index 000000000000..a168eb984c33 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchgit, pkg-config, pidgin } : + +let + version = "54b2992"; +in +stdenv.mkDerivation { + pname = "pidgin-mra"; + inherit version; + + src = fetchgit { + url = "https://github.com/dreadatour/pidgin-mra"; + rev = version; + sha256 = "1adq57g11kw7bfpivyvfk3nlpjkc8raiw4bzn3gn4nx3m0wl99vw"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin ]; + + postPatch = '' + sed -i 's|-I/usr/include/libpurple|$(shell pkg-config --cflags purple)|' Makefile + ''; + + makeFlags = [ + "DESTDIR=/" + "LIBDIR=${placeholder "out"}/lib" + "DATADIR=${placeholder "out"}/share" + ]; + + meta = { + homepage = "https://github.com/dreadatour/pidgin-mra"; + description = "Mail.ru Agent plugin for Pidgin / libpurple"; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix new file mode 100644 index 000000000000..9af8b0aff77b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, glib, json-glib, nss, nspr +, libsecret +} : + +stdenv.mkDerivation rec { + pname = "pidgin-opensteamworks"; + version = "1.7"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "pidgin-opensteamworks"; + rev = version; + sha256 = "0zxd45g9ycw5kmm4i0800jnqg1ms2gbqcld6gkyv6n3ac1wxizpj"; + }; + + sourceRoot = "source/steam-mobile"; + + installFlags = [ + "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2" + "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share" + ]; + + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + pidgin glib json-glib nss nspr libsecret + ]; + + meta = with lib; { + homepage = "https://github.com/EionRobb/pidgin-opensteamworks"; + description = "Plugin for Pidgin 2.x which implements Steam Friends/Steam IM compatibility"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ arobyn ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix new file mode 100644 index 000000000000..4c7cb2c46bfa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, xosd +, autoreconfHook } : + +stdenv.mkDerivation rec { + name = "pidgin-osd-0.2.0"; + src = fetchFromGitHub { + owner = "edanaher"; + repo = "pidgin-osd"; + rev = name; + sha256 = "07wa9anz99hnv6kffpcph3fbq8mjbyq17ij977ggwgw37zb9fzb5"; + }; + + # autoreconf is run such that it *really* wants all the files, and there's no + # default ChangeLog. So make it happy. + preAutoreconf = "touch ChangeLog"; + + postInstall = '' + mkdir -p $out/lib/pidgin + mv $out/lib/pidgin-osd.{la,so} $out/lib/pidgin + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ xosd pidgin ]; + + meta = with lib; { + homepage = "https://github.com/mbroemme/pidgin-osd"; + description = "Plugin for Pidgin which implements on-screen display via libxosd"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix new file mode 100644 index 000000000000..d7c3c6cacabd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, json-glib }: + +stdenv.mkDerivation rec { + pname = "pidgin-skypeweb"; + version = "1.7"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "skype4pidgin"; + rev = version; + sha256 = "11snyrjhm58gjvdmr5h5ajii3ah4a7c8zw3cavjv9xnnwrpfm5rb"; + }; + + setSourceRoot = '' + sourceRoot=$(echo */skypeweb) + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin json-glib ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/EionRobb/skype4pidgin"; + description = "SkypeWeb plugin for Pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix new file mode 100644 index 000000000000..f545b65cd8ea --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, pidgin } : + +let + version = "0.8"; +in +stdenv.mkDerivation { + pname = "pidgin-xmpp-receipts"; + inherit version; + + src = fetchFromGitHub { + owner = "noonien-d"; + repo = "pidgin-xmpp-receipts"; + rev = "release_${version}"; + sha256 = "13kwaymzkymjsdv8q95byd173i4vanj211vgx9cm0y8ag2r3cjsb"; + }; + + buildInputs = [ pidgin ]; + + installPhase = '' + mkdir -p $out/lib/pidgin/ + cp xmpp-receipts.so $out/lib/pidgin/ + ''; + + meta = with lib; { + homepage = "http://devel.kondorgulasch.de/pidgin-xmpp-receipts/"; + description = "Message delivery receipts (XEP-0184) Pidgin plugin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ orivej ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix new file mode 100644 index 000000000000..10cbcb6c1d29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, json-glib }: + +stdenv.mkDerivation { + pname = "purple-discord"; + version = "unstable-2018-04-10"; + + src = fetchFromGitHub { + owner = "EionRobb"; + repo = "purple-discord"; + rev = "9a97886d15a1f028de54b5e6fc54e784531063b0"; + sha256 = "0dc344zh1v4yh9c8javcw5ylzwc1wpx0ih8bww8p8cjmhr8kcl32"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin json-glib ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/EionRobb/purple-discord"; + description = "Discord plugin for Pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ sna ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix new file mode 100644 index 000000000000..a45f91ec57fd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix @@ -0,0 +1,65 @@ +{ lib, stdenv, fetchFromGitHub, fetchhg, pidgin, glib, json-glib, autoreconfHook }: + + +let + pidginHg = fetchhg { + url = "https://bitbucket.org/pidgin/main"; + # take from VERSION file + rev = "9ff9acf9fa14"; + sha256 = "06imlhsps4wrjgjb92zpaxprxfxl2pjb2x9pl859c8cryssrz2jv"; + }; + +in stdenv.mkDerivation rec { + name = "purple-facebook-0.9.5"; + + src = fetchFromGitHub { + owner = "dequis"; + repo = "purple-facebook"; + rev = "v0.9.5-9ff9acf9fa14"; + sha256 = "0a1860bkzrmyxahm9rlxi80z335w491wzdaqaw6j9ccavbymhwhs"; + }; + + postPatch = '' + # we do all patching from update.sh in preAutoreconf + echo "#!${stdenv.shell}" > update.sh + ''; + + preAutoreconf = '' + for FILE in $(cat MANIFEST_PIDGIN); do + install -Dm644 "${pidginHg}/$FILE" "pidgin/$FILE" || true + done + + touch $(cat MANIFEST_VOIDS) + + patchdir="$(pwd)/patches" + pushd pidgin + + for patch in $(ls -1 "$patchdir"); do + patch -p1 -i "$patchdir/$patch" + done + popd + + ./autogen.sh + ''; + + makeFlags = [ + "PLUGIN_DIR_PURPLE=/lib/pidgin/" + "DATA_ROOT_DIR_PURPLE=/share" + ]; + + installPhase = '' + mkdir -p $out/lib/purple-2 + cp pidgin/libpurple/protocols/facebook/.libs/*.so $out/lib/purple-2/ + ''; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ pidgin glib json-glib ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Facebook protocol plugin for libpurple"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ davorb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix new file mode 100644 index 000000000000..653708abe3b6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchhg, pidgin, glib, json-glib, protobuf, protobufc }: + +stdenv.mkDerivation { + pname = "purple-hangouts-hg"; + version = "2018-12-02"; + + src = fetchhg { + url = "https://bitbucket.org/EionRobb/purple-hangouts/"; + rev = "cccf2f6"; + sha256 = "1zd1rlzqvw1zkb0ydyz039n3xa1kv1f20a4l6rkm9a8sp6rpf3pi"; + }; + + buildInputs = [ pidgin glib json-glib protobuf protobufc ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://bitbucket.org/EionRobb/purple-hangouts"; + description = "Native Hangouts support for pidgin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ralith ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix new file mode 100644 index 000000000000..2170aac16e05 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pidgin, minixml, libxml2, sqlite, libgcrypt }: + +stdenv.mkDerivation rec { + pname = "purple-lurch"; + version = "0.6.7"; + + src = fetchFromGitHub { + owner = "gkdr"; + repo = "lurch"; + rev = "v${version}"; + sha256 = "029jjqinsfhpv0zgji3sv1cyk54fn9qp176fwy97d1clf0vflxrz"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ pidgin minixml libxml2 sqlite libgcrypt ]; + + dontUseCmakeConfigure = true; + + installPhase = '' + install -Dm755 -t $out/lib/purple-2 build/lurch.so + ''; + + meta = with lib; { + homepage = "https://github.com/gkdr/lurch"; + description = "XEP-0384: OMEMO Encryption for libpurple"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix new file mode 100644 index 000000000000..9845491f235d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, pidgin, json-glib, glib, http-parser, sqlite, olm, libgcrypt } : + +stdenv.mkDerivation rec { + pname = "purple-matrix-unstable"; + version = "2019-06-06"; + + src = fetchFromGitHub { + owner = "matrix-org"; + repo = "purple-matrix"; + rev = "4494ba22b479917f0b1f96a3019792d3d75bcff1"; + sha256 = "1gjm0z4wa5vi9x1xk43rany5pffrwg958n180ahdj9a7sa8a4hpm"; + }; + + NIX_CFLAGS_COMPILE = builtins.toString [ + # glib-2.62 deprecations + "-DGLIB_DISABLE_DEPRECATION_WARNINGS" + # override "-O0 -Werror" set by build system + "-O3" "-Wno-error" + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin json-glib glib http-parser sqlite olm libgcrypt ]; + + makeFlags = [ + "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2" + "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share" + ]; + + buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # fix build on darwin + + meta = with lib; { + homepage = "https://github.com/matrix-org/purple-matrix"; + description = "Matrix support for Pidgin / libpurple"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ symphorien ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-mm-sms/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-mm-sms/default.nix new file mode 100644 index 000000000000..3bdecf504ceb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-mm-sms/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, glibmm, pidgin, pkg-config, modemmanager, fetchFromGitLab } : + +stdenv.mkDerivation rec { + pname = "purple-mm-sms"; + version = "0.1.7"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "0917gjig35hmi6isqb62vhxd3lkc2nwdn13ym2gvzgcjfgjzjajr"; + }; + + makeFlags = [ + "DATA_ROOT_DIR_PURPLE=$(out)/share" + "PLUGIN_DIR_PURPLE=$(out)/lib/purple-2" + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ glibmm pidgin modemmanager ]; + + meta = with lib; { + homepage = "https://source.puri.sm/Librem5/purple-mm-sms"; + description = "A libpurple plugin for sending and receiving SMS via Modemmanager"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ tomfitzhenry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix new file mode 100644 index 000000000000..edc047c78ba2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix @@ -0,0 +1,19 @@ +{ lib, stdenv, fetchurl, pidgin, intltool, python } : + +stdenv.mkDerivation rec { + name = "purple-plugin-pack-2.7.0"; + src = fetchurl { + url = "https://bitbucket.org/rekkanoryo/purple-plugin-pack/downloads/${name}.tar.bz2"; + sha256 = "0g5hmy7fwgjq59j52h9yps28jsjjrfkd4r18gyx6hfd3g3kzbg1b"; + }; + + buildInputs = [ pidgin intltool python ]; + + meta = with lib; { + homepage = "https://bitbucket.org/rekkanoryo/purple-plugin-pack"; + description = "Plugin pack for Pidgin 2.x"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ bdimcheff ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix new file mode 100644 index 000000000000..9f5f9a2bda1e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-slack/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, pidgin, pkg-config }: + +stdenv.mkDerivation { + pname = "purple-slack-unstable"; + version = "2020-09-22"; + + src = fetchFromGitHub { + owner = "dylex"; + repo = "slack-libpurple"; + rev = "2e9fa028224b02e29473b1b998fc1e5f487e79ec"; + sha256 = "1sksqshiwldd32k8jmiflp2pcax31ym6rypr4qa4v5vdn907g80m"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin ]; + + PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2"; + PKG_CONFIG_PURPLE_DATAROOTDIR = "${placeholder "out"}/share"; + + meta = with lib; { + homepage = "https://github.com/dylex/slack-libpurple"; + description = "Slack plugin for Pidgin"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ eyjhb ]; + }; +} + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix new file mode 100644 index 000000000000..07b38ff3c5a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchhg, pidgin, cmake, libxml2 } : + +let + version = "40ddb6d"; +in +stdenv.mkDerivation { + pname = "purple-vk-plugin"; + inherit version; + + src = fetchhg { + url = "https://bitbucket.org/olegoandreev/purple-vk-plugin"; + rev = version; + sha256 = "02p57fgx8ml00cbrb4f280ak2802svz80836dzk9f1zwm1bcr2qc"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ pidgin libxml2 ]; + + preConfigure = '' + sed -i -e 's|DESTINATION.*PURPLE_PLUGIN_DIR}|DESTINATION lib/purple-2|' CMakeLists.txt + ''; + + cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT=1" ]; + + meta = { + homepage = "https://bitbucket.org/olegoandreev/purple-vk-plugin"; + description = "Vk (russian social network) plugin for Pidgin / libpurple"; + license = lib.licenses.gpl3; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix new file mode 100644 index 000000000000..6ade8e5f19e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchgit, pidgin, glib, libxml2 }: + +stdenv.mkDerivation { + name = "purple-xmpp-upload-2017-12-31"; + + src = fetchgit { + url = "https://github.com/Junker/purple-xmpp-http-upload"; + rev = "178096cbfc9df165c2dc1677666439969d212b37"; + sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp"; + }; + + buildInputs = [ pidgin glib libxml2 ]; + + installPhase = '' + install -Dm644 -t $out/lib/purple-2 jabber_http_file_upload.so + ''; + + meta = with lib; { + homepage = "https://github.com/Junker/purple-xmpp-http-upload"; + description = "HTTP File Upload plugin for libpurple (XMPP Protocol XEP-0363)"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ emmanuelrosa ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix new file mode 100644 index 000000000000..fa314e82dac8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, fetchpatch, pidgin, intltool, libxml2, gmime, nss }: + +stdenv.mkDerivation rec { + pname = "pidgin-sipe"; + version = "1.25.0"; + + src = fetchurl { + url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz"; + sha256 = "0262sz00iqxylx0xfyr48xikhiqzr8pg7b4b7vwj5iv4qxpxv939"; + }; + + patches = [ + # add sipe_utils_memdup() function + (fetchpatch { + url = "https://repo.or.cz/siplcs.git/patch/567d0ddc0692adfef5f15d0d383825a9b2ea4b49"; + sha256 = "24L8ZfoOGc3JoTCGxuTNjuHzt5QgFDu1+vSoJpGvde4="; + }) + # replace g_memdup() with sipe_utils_memdup() + # g_memdup is deprecatein newer Glib + (fetchpatch { + url = "https://repo.or.cz/siplcs.git/patch/583a734e63833f03d11798b7b0d59a17d08ae60f"; + sha256 = "Ai6Czpy/FYvBi4GZR7yzch6OcouJgfreI9HcojhGVV4="; + }) + ]; + + nativeBuildInputs = [ intltool ]; + buildInputs = [ pidgin gmime libxml2 nss ]; + enableParallelBuilding = true; + + postInstall = "ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; + + meta = with lib; { + description = "SIPE plugin for Pidgin IM"; + homepage = "http://sipe.sourceforge.net/"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix new file mode 100644 index 000000000000..6e14ee1a2b88 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, pkg-config, pidgin, libnotify, gdk-pixbuf, glib, dbus +, dbus-glib }: + +stdenv.mkDerivation rec { + name = "skype4pidgin-novas0x2a-20120411-6c53f7c48f"; + src = fetchurl { + url = "https://github.com/novas0x2a/skype4pidgin/tarball/6c53f7c48f"; + name = "${name}.tar.gz"; + sha256 = "116jfh5ravaixivqx4a4bz0lbb9c49d5r83nwmripja56zdbpgr0"; + }; + + NIX_CFLAGS_COMPILE = "-I${libnotify}/include/libnotify"; + + patchPhase = '' + sed -i -e 's/ [^ ]*-gcc/ gcc/' -e 's/-march[^ ]*//' \ + -e 's/GLIB_CFLAGS =.*/GLIB_CFLAGS=`pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 libnotify purple dbus-glib-1`/' Makefile + pkg-config --cflags glib-2.0 gdk-pixbuf-2.0 libnotify + ''; + + buildPhase = "make libskype.so libskype_dbus.so"; + + installPhase = '' + mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48} $out/bin $out/lib/pidgin + cp icons/16/skypeout.png $out/pixmaps/pidgin/protocols/16 + cp icons/22/skypeout.png $out/pixmaps/pidgin/protocols/22 + cp icons/48/skypeout.png $out/pixmaps/pidgin/protocols/48 + cp libskype.so libskype_dbus.so $out/lib/pidgin + ''; + + postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-otr"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin libnotify gdk-pixbuf glib dbus dbus-glib ]; + + meta = { + homepage = "https://github.com/novas0x2a/skype4pidgin"; + license = lib.licenses.gpl3Plus; + description = "Plugin to use a running skype account through pidgin"; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix new file mode 100644 index 000000000000..527af9ed98db --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchgit, pkg-config, pidgin, libwebp, libgcrypt, gettext } : + +let + version = "1.3.1"; +in +stdenv.mkDerivation rec { + pname = "telegram-purple"; + inherit version; + + src = fetchgit { + url = "https://github.com/majn/telegram-purple"; + rev = "v${version}"; + sha256 = "0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp"; + }; + + NIX_CFLAGS_COMPILE = "-Wno-error=cast-function-type"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ pidgin libwebp libgcrypt gettext ]; + + preConfigure = '' + sed -i "s|/etc/telegram-purple/server.tglpub|$out/lib/purple-2/server.tglpub|g" telegram-purple.c + echo "#define GIT_COMMIT \"${builtins.substring 0 10 src.rev}\"" > commit.h + ''; + + installPhase = '' + mkdir -p $out/lib/purple-2/ + cp bin/*.so $out/lib/purple-2/ #*/ + cp tg-server.tglpub $out/lib/purple-2/server.tglpub + mkdir -p $out/pixmaps/pidgin/protocols/{16,22,48} + cp imgs/telegram16.png $out/pixmaps/pidgin/protocols/16 + cp imgs/telegram22.png $out/pixmaps/pidgin/protocols/22 + cp imgs/telegram48.png $out/pixmaps/pidgin/protocols/48 + ''; + + meta = with lib; { + homepage = "https://github.com/majn/telegram-purple"; + description = "Telegram for Pidgin / libpurple"; + license = licenses.gpl2; + maintainers = [ maintainers.jagajaga ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix new file mode 100644 index 000000000000..41c6a75310a6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, libtoxcore, pidgin, autoreconfHook, libsodium }: + +stdenv.mkDerivation rec { + pname = "tox-prpl"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "jin-eld"; + repo = "tox-prpl"; + rev = "v${version}"; + sha256 = "0ms367l2f7x83k407c93bmhpyc820f1css61fh2gx4jq13cxqq3p"; + }; + + NIX_LDFLAGS = "-lssp -lsodium"; + + postInstall = "mv $out/lib/purple-2 $out/lib/pidgin"; + + buildInputs = [ libtoxcore pidgin libsodium ]; + nativeBuildInputs = [ autoreconfHook ]; + + meta = with lib; { + homepage = "https://github.com/jin-eld/tox-prpl"; + description = "Tox plugin for Pidgin / libpurple"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix new file mode 100644 index 000000000000..c5437e965ed8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, pidgin } : + +stdenv.mkDerivation rec { + pname = "pidgin-window-merge"; + version = "0.3"; + + src = fetchurl { + url = "https://github.com/downloads/dm0-/window_merge/window_merge-${version}.tar.gz"; + sha256 = "0cb5rvi7jqvm345g9mlm4wpq0240kcybv81jpw5wlx7hz0lwi478"; + }; + + buildInputs = [ pidgin ]; + + meta = with lib; { + homepage = "https://github.com/dm0-/window_merge"; + description = "Pidgin plugin that merges the Buddy List window with a conversation window"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch new file mode 100644 index 000000000000..b0758777186a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch @@ -0,0 +1,20 @@ +diff --git a/libpurple/plugin.c b/libpurple/plugin.c +index 4f2b402..fda9add 100644 +--- a/libpurple/plugin.c ++++ b/libpurple/plugin.c +@@ -1181,8 +1181,15 @@ purple_plugins_get_handle(void) { + void + purple_plugins_init(void) { + void *handle = purple_plugins_get_handle(); ++ gchar **paths, **p; + + purple_plugins_add_search_path(LIBDIR); ++ paths = g_strsplit(g_getenv("PURPLE_PLUGIN_PATH"), ":", -1); ++ if (paths) { ++ for (p = paths; *p; ++p) ++ if (**p) purple_plugins_add_search_path(*p); ++ } ++ g_strfreev(paths); + + purple_signal_register(handle, "plugin-load", + purple_marshal_VOID__POINTER, diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix new file mode 100644 index 000000000000..dc5a87397609 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix @@ -0,0 +1,102 @@ +{ stdenv, fetchurl, makeWrapper, pkg-config, gtk2, gtk2-x11 +, gtkspell2, aspell +, gst_all_1, startupnotification, gettext +, perlPackages, libxml2, nss, nspr, farstream +, libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn +, lib, python, libICE, libXext, libSM +, cyrus_sasl ? null +, openssl ? null +, gnutls ? null +, libgcrypt ? null +, plugins, symlinkJoin +}: + +# FIXME: clean the mess around choosing the SSL library (nss by default) + +let unwrapped = stdenv.mkDerivation rec { + pname = "pidgin"; + majorVersion = "2"; + version = "${majorVersion}.13.0"; + + src = fetchurl { + url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.bz2"; + sha256 = "13vdqj70315p9rzgnbxjp9c51mdzf1l4jg1kvnylc4bidw61air7"; + }; + + inherit nss ncurses; + + nativeBuildInputs = [ makeWrapper ]; + + NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; + + buildInputs = let + python-with-dbus = python.withPackages (pp: with pp; [ dbus-python ]); + in [ + aspell startupnotification + gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + libxml2 nss nspr + libXScrnSaver ncurses python-with-dbus + avahi dbus dbus-glib intltool libidn + libICE libXext libSM cyrus_sasl + ] + ++ (lib.optional (openssl != null) openssl) + ++ (lib.optional (gnutls != null) gnutls) + ++ (lib.optional (libgcrypt != null) libgcrypt) + ++ (lib.optionals (stdenv.isLinux) [gtk2 gtkspell2 farstream]) + ++ (lib.optional (stdenv.isDarwin) gtk2-x11); + + + propagatedBuildInputs = [ pkg-config gettext ] + ++ (with perlPackages; [ perl XMLParser ]) + ++ (lib.optional (stdenv.isLinux) gtk2) + ++ (lib.optional (stdenv.isDarwin) gtk2-x11); + + patches = [ ./pidgin-makefile.patch ./add-search-path.patch ]; + + configureFlags = [ + "--with-nspr-includes=${nspr.dev}/include/nspr" + "--with-nspr-libs=${nspr.out}/lib" + "--with-nss-includes=${nss.dev}/include/nss" + "--with-nss-libs=${nss.out}/lib" + "--with-ncurses-headers=${ncurses.dev}/include" + "--disable-meanwhile" + "--disable-nm" + "--disable-tcl" + ] + ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ]) + ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]) + ++ (lib.optionals (stdenv.isDarwin) ["--disable-gtkspell" "--disable-vv"]); + + enableParallelBuilding = true; + + postInstall = '' + wrapProgram $out/bin/pidgin \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" + ''; + + doInstallCheck = stdenv.hostPlatform == stdenv.buildPlatform; + # In particular, this detects missing python imports in some of the tools. + postFixup = let + # TODO: python is a script, so it doesn't work as interpreter on darwin + binsToTest = lib.optionalString stdenv.isLinux "purple-remote," + "pidgin,finch"; + in lib.optionalString doInstallCheck '' + for f in "''${!outputBin}"/bin/{${binsToTest}}; do + echo "Testing: $f --help" + "$f" --help + done + ''; + + meta = with lib; { + description = "Multi-protocol instant messaging client"; + homepage = "http://pidgin.im"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.vcunat ]; + }; +}; + +in if plugins == [] then unwrapped + else import ./wrapper.nix { + inherit makeWrapper symlinkJoin plugins; + pidgin = unwrapped; + } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch new file mode 100644 index 000000000000..049d404a8d5f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch @@ -0,0 +1,64 @@ +diff --git a/pidgin/Makefile.am b/pidgin/Makefile.am +index 84d927b..1467c19 100644 +--- a/pidgin/Makefile.am ++++ b/pidgin/Makefile.am +@@ -151,6 +151,7 @@ pidgin_LDADD = \ + $(GLIB_LIBS) \ + $(DBUS_LIBS) \ + $(GSTREAMER_LIBS) \ ++ $(GSTINTERFACES_LIBS) \ + $(GSTVIDEO_LIBS) \ + $(XSS_LIBS) \ + $(SM_LIBS) \ +@@ -171,6 +172,7 @@ AM_CPPFLAGS = \ + -I$(top_srcdir) \ + $(GLIB_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(DEBUG_CFLAGS) \ + $(GTK_CFLAGS) \ + $(DBUS_CFLAGS) \ +diff --git a/pidgin/Makefile.in b/pidgin/Makefile.in +index 0d51e25..dd5d879 100644 +--- a/pidgin/Makefile.in ++++ b/pidgin/Makefile.in +@@ -703,6 +703,7 @@ EXTRA_DIST = \ + @ENABLE_GTK_TRUE@ $(GLIB_LIBS) \ + @ENABLE_GTK_TRUE@ $(DBUS_LIBS) \ + @ENABLE_GTK_TRUE@ $(GSTREAMER_LIBS) \ ++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_LIBS) \ + @ENABLE_GTK_TRUE@ $(GSTVIDEO_LIBS) \ + @ENABLE_GTK_TRUE@ $(XSS_LIBS) \ + @ENABLE_GTK_TRUE@ $(SM_LIBS) \ +@@ -723,6 +724,7 @@ EXTRA_DIST = \ + @ENABLE_GTK_TRUE@ -I$(top_srcdir) \ + @ENABLE_GTK_TRUE@ $(GLIB_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(GSTREAMER_CFLAGS) \ ++@ENABLE_GTK_TRUE@ $(GSTINTERFACES_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(DEBUG_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(GTK_CFLAGS) \ + @ENABLE_GTK_TRUE@ $(DBUS_CFLAGS) \ +diff --git a/pidgin/plugins/Makefile.am b/pidgin/plugins/Makefile.am +index 3bb8c22..6d1e869 100644 +--- a/pidgin/plugins/Makefile.am ++++ b/pidgin/plugins/Makefile.am +@@ -145,6 +145,7 @@ AM_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(UNITY_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(PLUGIN_CFLAGS) + + # +diff --git a/pidgin/plugins/Makefile.in b/pidgin/plugins/Makefile.in +index 82a34aa..1f7db00 100644 +--- a/pidgin/plugins/Makefile.in ++++ b/pidgin/plugins/Makefile.in +@@ -781,6 +781,7 @@ AM_CPPFLAGS = \ + $(GTK_CFLAGS) \ + $(UNITY_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ ++ $(GSTINTERFACES_CFLAGS) \ + $(PLUGIN_CFLAGS) + + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix new file mode 100644 index 000000000000..095f838fe981 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix @@ -0,0 +1,20 @@ +{ symlinkJoin, pidgin, makeWrapper, plugins }: + +let +extraArgs = map (x: x.wrapArgs or "") plugins; +in symlinkJoin { + name = "pidgin-with-plugins-${pidgin.version}"; + + paths = [ pidgin ] ++ plugins; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/pidgin \ + --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" \ + ${toString extraArgs} + wrapProgram $out/bin/finch \ + --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion}" \ + ${toString extraArgs} + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix new file mode 100644 index 000000000000..bd8c492ff28f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix @@ -0,0 +1,59 @@ +{ lib +, aiodns +, buildPythonApplication +, cffi +, fetchFromGitHub +, mpd2 +, pkg-config +, potr +, pyasn1 +, pyasn1-modules +, pyinotify +, pytestCheckHook +, pythonOlder +, setuptools +, slixmpp +, typing-extensions +}: + +buildPythonApplication rec { + pname = "poezio"; + version = "0.13.1"; + disabled = pythonOlder "3.4"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy"; + }; + + nativeBuildInputs = [ + pkg-config + ]; + + propagatedBuildInputs = [ + aiodns + cffi + mpd2 + potr + pyasn1 + pyasn1-modules + pyinotify + setuptools + slixmpp + ] ++ lib.optionals (pythonOlder "3.7") [ + typing-extensions + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Free console XMPP client"; + homepage = "https://poez.io"; + license = licenses.zlib; + maintainers = [ maintainers.lsix ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix new file mode 100644 index 000000000000..4c059cb20d83 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, buildGoPackage, trousers, dclxvi, wrapGAppsHook, pkg-config, gtk3, gtkspell3, + fetchgit }: + +let + gui = true; # Might be implemented with nixpkgs config. +in +buildGoPackage rec { + pname = "pond"; + version = "20150830-${lib.strings.substring 0 7 rev}"; + rev = "bce6e0dc61803c23699c749e29a83f81da3c41b2"; + + goPackagePath = "github.com/agl/pond"; + + src = fetchgit { + inherit rev; + url = "https://github.com/agl/pond"; + sha256 = "1dmgbg4ak3jkbgmxh0lr4hga1nl623mh7pvsgby1rxl4ivbzwkh4"; + }; + + goDeps = ./deps.nix; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ trousers gtk3 gtkspell3 ] + ++ lib.optional stdenv.hostPlatform.isx86_64 dclxvi + ++ lib.optionals gui [ wrapGAppsHook ]; + buildFlags = lib.optionals (!gui) [ "-tags" "nogui" ]; + excludedPackages = "\\(appengine\\|bn256cgo\\)"; + postPatch = lib.optionalString stdenv.hostPlatform.isx86_64 '' + grep -r 'bn256' | awk -F: '{print $1}' | xargs sed -i \ + -e "s,golang.org/x/crypto/bn256,github.com/agl/pond/bn256cgo,g" \ + -e "s,bn256\.,bn256cgo.,g" + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix new file mode 100644 index 000000000000..55850f0a89c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix @@ -0,0 +1,47 @@ +[ + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6"; + sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa"; + }; + } + { + goPackagePath = "github.com/agl/ed25519"; + fetch = { + type = "git"; + url = "https://github.com/agl/ed25519"; + rev = "278e1ec8e8a6e017cd07577924d6766039146ced"; + sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "59b73b37c1e45995477aae817e4a653c89a858db"; + sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4"; + sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p"; + }; + } + { + goPackagePath = "github.com/agl/go-gtk"; + fetch = { + type = "git"; + url = "https://github.com/agl/go-gtk"; + rev = "91c1edb38c241d73129e6b098ca1c9fa83abfc15"; + sha256 = "156ixlhakpqgyp35rsvmndrqz8aggv5bcmzg9ynpri3b9j6kim4d"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix new file mode 100644 index 000000000000..e7f8a9e77261 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix @@ -0,0 +1,83 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, glib, openssl +, glibcLocales, expect, ncurses, libotr, curl, readline, libuuid +, cmocka, libmicrohttpd, expat, sqlite, libmesode, autoconf-archive + +, autoAwaySupport ? true, libXScrnSaver ? null, libX11 ? null +, notifySupport ? true, libnotify ? null, gdk-pixbuf ? null +, traySupport ? true, gtk2 ? null +, pgpSupport ? true, gpgme ? null +, pythonPluginSupport ? true, python ? null +, omemoSupport ? true, libsignal-protocol-c ? null, libgcrypt ? null +}: + +assert autoAwaySupport -> libXScrnSaver != null && libX11 != null; +assert notifySupport -> libnotify != null && gdk-pixbuf != null; +assert traySupport -> gtk2 != null; +assert pgpSupport -> gpgme != null; +assert pythonPluginSupport -> python != null; +assert omemoSupport -> libsignal-protocol-c != null && libgcrypt != null; + +with lib; + +stdenv.mkDerivation rec { + pname = "profanity"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "profanity-im"; + repo = "profanity"; + rev = version; + sha256 = "0a9rzhnivxcr8v02xxzrbck7pvvv4c66ap2zy0gzxhri5p8ac03r"; + }; + + patches = [ + ./patches/packages-osx.patch + ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + autoreconfHook autoconf-archive glibcLocales pkg-config + ]; + + buildInputs = [ + expect readline libuuid glib openssl expat ncurses libotr + curl libmesode cmocka libmicrohttpd sqlite + ] ++ optionals autoAwaySupport [ libXScrnSaver libX11 ] + ++ optionals notifySupport [ libnotify gdk-pixbuf ] + ++ optionals traySupport [ gtk2 ] + ++ optionals pgpSupport [ gpgme ] + ++ optionals pythonPluginSupport [ python ] + ++ optionals omemoSupport [ libsignal-protocol-c libgcrypt ]; + + # Enable feature flags, so that build fail if libs are missing + configureFlags = [ "--enable-c-plugins" "--enable-otr" ] + ++ optionals notifySupport [ "--enable-notifications" ] + ++ optionals traySupport [ "--enable-icons-and-clipboard" ] + ++ optionals pgpSupport [ "--enable-pgp" ] + ++ optionals pythonPluginSupport [ "--enable-python-plugins" ] + ++ optionals omemoSupport [ "--enable-omemo" ]; + + preAutoreconf = '' + mkdir m4 + ''; + + doCheck = true; + + LC_ALL = "en_US.utf8"; + + meta = { + description = "A console based XMPP client"; + longDescription = '' + Profanity is a console based XMPP client written in C using ncurses and + libstrophe, inspired by Irssi. + ''; + homepage = "http://www.profanity.im/"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + changelog = "https://github.com/profanity-im/profanity/releases/tag/${version}"; + downloadPage = "https://github.com/profanity-im/profanity/releases/"; + maintainers = [ maintainers.devhell ]; + updateWalker = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch new file mode 100644 index 000000000000..796ec6b0a615 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index 5c00aca..eb78060 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -23,7 +23,6 @@ PLATFORM="unknown" + AS_CASE([$host_os], + [freebsd*], [PLATFORM="freebsd"], + [openbsd*], [PLATFORM="openbsd"], +- [darwin*], [PLATFORM="osx"], + [cygwin], [PLATFORM="cygwin"], + [PLATFORM="nix"]) + + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix new file mode 100644 index 000000000000..c180cdb4e01f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -0,0 +1,52 @@ +{ lib, mkDerivation, fetchFromGitHub, cmake +, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine +, libidn, qca-qt5, libXScrnSaver, hunspell +, libsecret, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c +, usrsctp + +# Voice messages +, voiceMessagesSupport ? true +, gst_all_1 +}: + +mkDerivation rec { + pname = "psi-plus"; + version = "1.5.1520"; + + src = fetchFromGitHub { + owner = "psi-plus"; + repo = "psi-plus-snapshots"; + rev = version; + sha256 = "0cj811qv0n8xck2qrnps2ybzrpvyjqz7nxkyccpaivq6zxj6mc12"; + }; + + cmakeFlags = [ + "-DENABLE_PLUGINS=ON" + ]; + + nativeBuildInputs = [ cmake qttools ]; + + buildInputs = [ + qtbase qtmultimedia qtx11extras qtwebengine + libidn qca-qt5 libXScrnSaver hunspell + libsecret libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c + usrsctp + ] ++ lib.optionals voiceMessagesSupport [ + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ]; + + preFixup = lib.optionalString voiceMessagesSupport '' + qtWrapperArgs+=( + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" + ) + ''; + + meta = with lib; { + homepage = "https://psi-plus.com"; + description = "XMPP (Jabber) client"; + maintainers = with maintainers; [ orivej misuzu ]; + license = licenses.gpl2Only; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix new file mode 100644 index 000000000000..62b6c8f8e59c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix @@ -0,0 +1,32 @@ +{ lib, mkDerivation, fetchFromGitHub, cmake +, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine +, libidn, qca-qt5, libXScrnSaver, hunspell +}: + +mkDerivation rec { + pname = "psi"; + version = "1.5"; + src = fetchFromGitHub { + owner = "psi-im"; + repo = pname; + rev = version; + sha256 = "hXDZODHl14kimRlMQ1XjISQ2kk9NS78axVN3U21wkuM="; + fetchSubmodules = true; + }; + patches = [ + ./fix-cmake-hunspell-1.7.patch + ]; + nativeBuildInputs = [ cmake qttools ]; + buildInputs = [ + qtbase qtmultimedia qtx11extras qtwebengine + libidn qca-qt5 libXScrnSaver hunspell + ]; + + meta = with lib; { + homepage = "https://psi-im.org"; + description = "An XMPP (Jabber) client"; + maintainers = [ maintainers.raskin ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch new file mode 100644 index 000000000000..7d5711a6f2bc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/fix-cmake-hunspell-1.7.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/modules/FindHunspell.cmake b/cmake/modules/FindHunspell.cmake +index a2d180b3..3a5aef3a 100644 +--- a/cmake/modules/FindHunspell.cmake ++++ b/cmake/modules/FindHunspell.cmake +@@ -64,6 +64,7 @@ set(HUNSPELL_NAMES + hunspell-1.4 + hunspell-1.5 + hunspell-1.6 ++ hunspell-1.7 + libhunspell${d} + ) + find_library( diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix new file mode 100644 index 000000000000..279eea2f2d7b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchFromGitHub, python2Packages, openssl }: + +python2Packages.buildPythonApplication rec { + pname = "pybitmessage"; + + version = "0.6.3.2"; + + src = fetchFromGitHub { + owner = "bitmessage"; + repo = "PyBitmessage"; + rev = version; + sha256 = "1lmhbpwsqh1v93krlqqhafw2pc3y0qp8zby186yllbph6s8kdp35"; + }; + + propagatedBuildInputs = with python2Packages; [ msgpack pyqt4 numpy pyopencl setuptools ] ++ [ openssl ]; + + preConfigure = '' + # Remove interaction and misleading output + substituteInPlace setup.py \ + --replace "nothing = raw_input()" pass \ + --replace 'print "It looks like building the package failed.\n" \' pass \ + --replace ' "You may be missing a C++ compiler and the OpenSSL headers."' pass \ + --replace 'msgpack-python' 'msgpack' + + substituteInPlace src/pyelliptic/openssl.py \ + --replace "libdir.append(find_library('ssl'))" "libdir.append('${openssl.out}/lib/libssl.so')" + + substituteInPlace src/depends.py \ + --replace "ctypes.util.find_library('ssl')" "'${openssl.out}/lib/libssl.so'" + + ''; + + meta = with lib; { + homepage = "https://bitmessage.org/"; + description = "The official Bitmessage client"; + license = licenses.mit; + maintainers = with maintainers; [ jgillich ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix new file mode 100644 index 000000000000..656ddade11f8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix @@ -0,0 +1,78 @@ +{ lib +, stdenv +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, perl +, libtoxcore +, libpthreadstubs +, libXdmcp +, libXScrnSaver +, qtbase +, qtsvg +, qttools +, qttranslations +, ffmpeg +, filter-audio +, libexif +, libsodium +, libopus +, libvpx +, openal +, pcre +, qrencode +, sqlcipher +, AVFoundation +}: + +mkDerivation rec { + pname = "qtox"; + version = "1.17.3"; + + src = fetchFromGitHub { + owner = "qTox"; + repo = "qTox"; + rev = "v${version}"; + sha256 = "19xgw9bqirxbgvj5cdh20qxh61pkwk838lq1l78n6py1qrs7z5wp"; + }; + + buildInputs = [ + libtoxcore + libpthreadstubs + libXdmcp + libXScrnSaver + qtbase + qtsvg + qttranslations + ffmpeg + filter-audio + libexif + libopus + libsodium + libvpx + openal + pcre + qrencode + sqlcipher + ] ++ lib.optionals stdenv.isDarwin [ AVFoundation ]; + + nativeBuildInputs = [ cmake pkg-config qttools ] + ++ lib.optionals stdenv.isDarwin [ perl ]; + + cmakeFlags = [ + "-DGIT_DESCRIBE=v${version}" + "-DENABLE_STATUSNOTIFIER=False" + "-DENABLE_GTK_SYSTRAY=False" + "-DENABLE_APPINDICATOR=False" + "-DTIMESTAMP=1" + ]; + + meta = with lib; { + description = "Qt Tox client"; + homepage = "https://tox.chat"; + license = licenses.gpl3; + maintainers = with maintainers; [ akaWolf peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix new file mode 100644 index 000000000000..f918cbdc2b89 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix @@ -0,0 +1,47 @@ +{ mkDerivation, stdenv, lib, fetchFromGitHub, cmake +, qtbase, qtquickcontrols, qtquickcontrols2, qtkeychain, qtmultimedia, qttools +, libquotient, libsecret +}: + +mkDerivation rec { + pname = "quaternion"; + version = "0.0.9.5-beta2"; + + src = fetchFromGitHub { + owner = "QMatrixClient"; + repo = "Quaternion"; + rev = version; + sha256 = "sha256-K4SMB5kL0YO2OIeNUu4hWqU4E4n4vZDRRsJVYmCZqvM="; + }; + + buildInputs = [ + qtbase + qtmultimedia + qtquickcontrols + qtquickcontrols2 + qtkeychain + libquotient + libsecret + ]; + + nativeBuildInputs = [ cmake qttools ]; + + postInstall = if stdenv.isDarwin then '' + mkdir -p $out/Applications + mv $out/bin/quaternion.app $out/Applications + rmdir $out/bin || : + '' else '' + substituteInPlace $out/share/applications/com.github.quaternion.desktop \ + --replace 'Exec=quaternion' "Exec=$out/bin/quaternion" + ''; + + meta = with lib; { + description = + "Cross-platform desktop IM client for the Matrix protocol"; + homepage = "https://matrix.org/docs/projects/client/quaternion.html"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtbase.meta) platforms; + inherit version; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix new file mode 100644 index 000000000000..8782a4bc5beb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix @@ -0,0 +1,31 @@ +{ stdenv, callPackage, fetchurl, lib }: + +let + mkRambox = opts: callPackage (import ./rambox.nix opts) { }; +in mkRambox rec { + pname = "rambox"; + version = "0.7.7"; + + src = { + x86_64-linux = fetchurl { + url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-x86_64.AppImage"; + sha256 = "0f82hq0dzcjicdz6lkzj8889y100yqciqrwh8wjjy9pxkhjcdini"; + }; + i686-linux = fetchurl { + url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.AppImage"; + sha256 = "1nhgqjha10jvyf9nsghvlkibg7byj8qz140639ygag9qlpd52rfs"; + }; + }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); + + meta = with lib; { + description = "Free and Open Source messaging and emailing app that combines common web applications into one"; + homepage = "https://rambox.pro"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + platforms = ["i686-linux" "x86_64-linux"]; + hydraPlatforms = []; + knownVulnerabilities = [ + "Electron 7.2.4 is EOL and contains at least the following vulnerabilities: CVE-2020-6458, CVE-2020-6460 and more (https://www.electronjs.org/releases/stable?version=7). Consider using an alternative such as `ferdi'." + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix new file mode 100644 index 000000000000..827cac7c2970 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix @@ -0,0 +1,25 @@ +{ stdenv, callPackage, fetchurl, lib }: + +let + mkRambox = opts: callPackage (import ./rambox.nix opts) { }; +in mkRambox rec { + pname = "rambox-pro"; + version = "1.5.0"; + + desktopName = "Rambox Pro"; + + src = { + x86_64-linux = fetchurl { + url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.AppImage"; + sha256 = "1g7lrjm8yxklqpc2mp8gy0g61wfilr15dl80r3sh6pa5b4k5spir"; + }; + }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); + + meta = with lib; { + description = "Messaging and emailing app that combines common web applications into one"; + homepage = "https://rambox.pro"; + license = licenses.unfree; + maintainers = with maintainers; [ chrisaw ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix new file mode 100644 index 000000000000..56930f561c78 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/rambox.nix @@ -0,0 +1,30 @@ +{ pname, version, src, meta, desktopName ? "Rambox" }: + +{ appimageTools, lib, fetchurl, makeDesktopItem }: + +let + name = "${pname}-${version}"; + + desktopItem = (makeDesktopItem { + inherit desktopName; + name = pname; + exec = pname; + icon = pname; + type = "Application"; + categories = "Network;"; + }); + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; +in appimageTools.wrapType2 rec { + inherit name src meta; + + extraInstallCommands = '' + mkdir -p $out/share/applications $out/share/icons/hicolor/256x256/apps + # CE uses rambox-<version>, Pro uses rambox + mv $out/bin/rambox* $out/bin/${pname} + install -Dm644 ${appimageContents}/usr/share/icons/hicolor/256x256/apps/rambox*.png $out/share/icons/hicolor/256x256/apps/${pname}.png + install -Dm644 ${desktopItem}/share/applications/* $out/share/applications + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix new file mode 100644 index 000000000000..1851a60216b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchgit, libtoxcore +, conf ? null }: + +with lib; + +let + configFile = optionalString (conf!=null) (builtins.toFile "config.h" conf); + +in stdenv.mkDerivation { + name = "ratox-0.4.20180303"; + + src = fetchgit { + url = "git://git.2f30.org/ratox.git"; + rev = "269f7f97fb374a8f9c0b82195c21de15b81ddbbb"; + sha256 = "0bpn37h8jvsqd66fkba8ky42nydc8acawa5x31yxqlxc8mc66k74"; + }; + + buildInputs = [ libtoxcore ]; + + preConfigure = '' + substituteInPlace config.mk \ + --replace '-lsodium -lopus -lvpx ' "" + + ${optionalString (conf!=null) "cp ${configFile} config.def.h"} + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = { + description = "FIFO based tox client"; + homepage = "http://ratox.2f30.org/"; + license = licenses.isc; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix new file mode 100644 index 000000000000..97d8d39f6567 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix @@ -0,0 +1,59 @@ +{ mkDerivation, lib, fetchurl, pkg-config, makeDesktopItem +, qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols +, openssl, protobuf, qmake +}: + +mkDerivation rec { + pname = "ricochet"; + version = "1.1.4"; + + src = fetchurl { + url = "https://github.com/ricochet-im/ricochet/archive/v${version}.tar.gz"; + sha256 = "1kfj42ksvj7axc809lb8siqzj5hck2pib427b63a3ipnqc5h1faf"; + }; + + desktopItem = makeDesktopItem { + name = "ricochet"; + exec = "ricochet"; + icon = "ricochet"; + desktopName = "Ricochet"; + genericName = "Ricochet"; + comment = meta.description; + categories = "Office;Email;"; + }; + + buildInputs = [ + qtbase qttools qtmultimedia qtquick1 qtquickcontrols + openssl protobuf + ]; + + nativeBuildInputs = [ pkg-config qmake ]; + + preConfigure = '' + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)" + ''; + + qmakeFlags = [ "DEFINES+=RICOCHET_NO_PORTABLE" ]; + + installPhase = '' + mkdir -p $out/bin + cp ricochet $out/bin + + mkdir -p $out/share/applications + cp $desktopItem/share/applications"/"* $out/share/applications + + mkdir -p $out/share/pixmaps + cp icons/ricochet.png $out/share/pixmaps/ricochet.png + ''; + + # RCC: Error in 'translation/embedded.qrc': Cannot find file 'ricochet_en.qm' + enableParallelBuilding = false; + + meta = with lib; { + description = "Anonymous peer-to-peer instant messaging"; + homepage = "https://ricochet.im"; + license = licenses.bsd3; + maintainers = [ maintainers.codsl maintainers.jgillich maintainers.np ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix new file mode 100644 index 000000000000..94e0dc9c8c2f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix @@ -0,0 +1,150 @@ +{ lib, stdenv +, fetchgit +, which +, autoreconfHook +, pkg-config +, automake +, libtool +, pjsip +, libyamlcpp +, alsa-lib +, libpulseaudio +, libsamplerate +, libsndfile +, dbus +, dbus_cplusplus +, ffmpeg_3 +, udev +, pcre +, gsm +, speex +, boost +, opendht +, msgpack +, gnutls +, zlib +, jsoncpp +, xorg +, libargon2 +, cryptopp +, openssl +, perl +, python3 +, libupnp +, speexdsp +, fetchFromGitHub +, cmake +, asio +}: + +let + myPython = python3.withPackages (ps: with ps; [ + pygobject3 + dbus-python + ]); + + src = fetchgit { + url = "https://gitlab.savoirfairelinux.com/ring/ring-daemon.git"; + rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c"; + sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47"; + }; + + patchdir = "${src}/contrib/src"; + + restbed = import ./restbed.nix { + inherit stdenv lib fetchFromGitHub cmake asio openssl; + patches = [ + "${patchdir}/restbed/CMakeLists.patch" + "${patchdir}/restbed/strand.patch" + "${patchdir}/restbed/uri_cpp.patch" + "${patchdir}/restbed/dns-resolution-error.patch" + "${patchdir}/restbed/string.patch" + ]; + }; + + pjsip' = lib.overrideDerivation pjsip (old: { + patches = [ + "${patchdir}/pjproject/gnutls.patch" + ./notestsapps.patch # this one had to be modified + "${patchdir}/pjproject/fix_base64.patch" + "${patchdir}/pjproject/ipv6.patch" + "${patchdir}/pjproject/ice_config.patch" + "${patchdir}/pjproject/multiple_listeners.patch" + "${patchdir}/pjproject/pj_ice_sess.patch" + "${patchdir}/pjproject/fix_turn_fallback.patch" + "${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch" + "${patchdir}/pjproject/add_dtls_transport.patch" + ]; + CFLAGS = "-g -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000"; + }); +in +stdenv.mkDerivation { + pname = "ring-daemon"; + version = "2017-07-11"; + + inherit src; + + nativeBuildInputs = [ + which + autoreconfHook + automake + libtool + pkg-config + ]; + + buildInputs = [ + pjsip' + libyamlcpp + alsa-lib + libpulseaudio + libsamplerate + libsndfile + dbus + dbus_cplusplus + ffmpeg_3 + udev + pcre + gsm + speex + boost + opendht + msgpack + gnutls + zlib + jsoncpp + restbed + xorg.libX11 + libargon2 + cryptopp + openssl + perl + libupnp + speexdsp + ]; + + postInstall = '' + mkdir $out/bin + ln -s $out/lib/ring/dring $out/bin/dring + cp -R ./tools/dringctrl/ $out/ + substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \ + --replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3" + chmod +x $out/dringctrl/dringctrl.py + ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py + ''; + + meta = with lib; { + description = "A Voice-over-IP software phone"; + longDescription = '' + As the SIP/audio daemon and the user interface are separate processes, it + is easy to provide different user interfaces. GNU Ring comes with various + graphical user interfaces and even scripts to control the daemon from the + shell. + ''; + homepage = "https://ring.cx"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ taeer olynch ]; + platforms = platforms.linux; + # pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4 + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch new file mode 100644 index 000000000000..842060935b04 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch @@ -0,0 +1,106 @@ +/* diff --git a/Makefile b/Makefile */ +/* index 33a4e6b..a486eb7 100644 */ +/* --- a/Makefile */ +/* +++ b/Makefile */ +/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */ +/* include version.mak */ + +/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */ +/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */ +/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */ + +/* ifdef MINSIZE */ +/* MAKE_FLAGS := MINSIZE=1 */ +diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile +index cb601cb..862a78a 100644 +--- a/pjlib-util/build/Makefile ++++ b/pjlib-util/build/Makefile +@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \ + export UTIL_TEST_CFLAGS += $(_CFLAGS) + export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS) + export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile +index 1e64950..a75fa65 100644 +--- a/pjlib/build/Makefile ++++ b/pjlib/build/Makefile +@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \ + export TEST_CFLAGS += $(_CFLAGS) + export TEST_CXXFLAGS += $(_CXXFLAGS) + export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS) +-export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile +index 8012cb7..2ca283a 100644 +--- a/pjmedia/build/Makefile ++++ b/pjmedia/build/Makefile +@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \ + $(PJLIB_UTIL_LDLIB) \ + $(PJNATH_LDLIB) \ + $(_LDFLAGS) +-export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT +diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile +index 1bc08b5..109f79b 100644 +--- a/pjnath/build/Makefile ++++ b/pjnath/build/Makefile +@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o + export PJNATH_TEST_CFLAGS += $(_CFLAGS) + export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS) + export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE) + + + ############################################################################### +@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o + export PJTURN_CLIENT_CFLAGS += $(_CFLAGS) + export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS) + export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE) + + ############################################################################### + # Defines for building TURN server application +@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \ + export PJTURN_SRV_CFLAGS += $(_CFLAGS) + export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS) + export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS) +-export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE) + + + +diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile +index d2a5c2a..7e2ec60 100644 +--- a/pjsip/build/Makefile ++++ b/pjsip/build/Makefile +@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ + account.o endpoint.o json.o persistent.o types.o \ + siptypes.o call.o presence.o media.o + export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) +-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS) ++export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS) + export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \ + $(PJSIP_UA_LDLIB) \ + $(PJSIP_SIMPLE_LDLIB) \ +@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ + export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS) + export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS) + export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS) +-export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE) + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT + +@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \ + $(PJLIB_UTIL_LDLIB) \ + $(PJNATH_LDLIB) \ + $(_LDFLAGS) +-export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix new file mode 100644 index 000000000000..e2cdb1f05b0e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix @@ -0,0 +1,38 @@ +{ lib, stdenv +, fetchFromGitHub +, cmake +, asio +, openssl +, patches +}: + +stdenv.mkDerivation { + pname = "restbed"; + version = "2016-09-15"; + + src = fetchFromGitHub { + owner = "Corvusoft"; + repo = "restbed"; + rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a"; + sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22"; + }; + + inherit patches; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ asio openssl ]; + + meta = with lib; { + description = "HTTP framework for building networked applications"; + longDescription = '' + HTTP framework for building networked applications that require seamless + and secure communication, with the flexability to model a range of + business processes. Targeting mobile, tablet, desktop, and embedded + production environments. + ''; + homepage = "https://corvusoft.co.uk/"; + license = licenses.agpl3; + maintainers = with maintainers; [ taeer ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix new file mode 100755 index 000000000000..dbcd447d156d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix @@ -0,0 +1,68 @@ +{ lib, mkDerivation, fetchurl, makeFontsConf, appimageTools +, qtbase, qtsvg, qtmultimedia, qtwebsockets, qtimageformats +, autoPatchelfHook, desktop-file-utils, imagemagick +, twemoji-color-font, xorg, libsodium, libopus, libGL, alsa-lib }: + +mkDerivation rec { + pname = "ripcord"; + version = "0.4.28"; + + src = let + appimage = fetchurl { + url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage"; + sha256 = "0bczqp4kny7jlp06f4bh1xg0x17g8980dj6pk4waqc7qk88i6sfv"; + name = "${pname}-${version}.AppImage"; + }; + in appimageTools.extract { + name = "${pname}-${version}"; + src = appimage; + }; + + nativeBuildInputs = [ autoPatchelfHook desktop-file-utils imagemagick ]; + buildInputs = [ libsodium libopus libGL alsa-lib ] + ++ [ qtbase qtsvg qtmultimedia qtwebsockets qtimageformats ] + ++ (with xorg; [ libX11 libXScrnSaver libXcursor xkeyboardconfig ]); + + fontsConf = makeFontsConf { + fontDirectories = [ twemoji-color-font ]; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r ${src}/{qt.conf,translations,twemoji.ripdb} $out + + for size in 16 32 48 64 72 96 128 192 256 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" ${src}/Ripcord_Icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/ripcord.png + done + + desktop-file-install --dir $out/share/applications \ + --set-key Exec --set-value ripcord \ + --set-key Icon --set-value ripcord \ + --set-key Comment --set-value "${meta.description}" \ + ${src}/Ripcord.desktop + mv $out/share/applications/Ripcord.desktop $out/share/applications/ripcord.desktop + + install -Dm755 ${src}/Ripcord $out/Ripcord + patchelf --replace-needed libsodium.so.18 libsodium.so $out/Ripcord + makeQtWrapper $out/Ripcord $out/bin/ripcord \ + --run "cd $out" \ + --set FONTCONFIG_FILE "${fontsConf}" \ + --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \ + --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \ + --set RIPCORD_ALLOW_UPDATES 0 + + runHook postInstall + ''; + + meta = with lib; { + description = "Desktop chat client for Slack and Discord"; + homepage = "https://cancel.fm/ripcord/"; + # See: https://cancel.fm/ripcord/shareware-redistribution/ + license = licenses.unfreeRedistributable; + maintainers = with maintainers; [ infinisil ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix new file mode 100644 index 000000000000..6a6302e74955 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix @@ -0,0 +1,60 @@ +{ 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/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix new file mode 100644 index 000000000000..a8e711c447d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix @@ -0,0 +1,67 @@ +{ 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/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix new file mode 100644 index 000000000000..29d4c3600c39 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix @@ -0,0 +1,21 @@ +{ lib, fetchurl, python3Packages }: + +let version = "1.63"; +in python3Packages.buildPythonPackage { + name = "scudcloud-${version}"; + + src = fetchurl { + url = "https://github.com/raelgc/scudcloud/archive/v${version}.tar.gz"; + sha256 = "e0d1cb72115d0fda17db92d28be51558ad8fe250972683fac3086dbe8d350d22"; + }; + + propagatedBuildInputs = with python3Packages; [ pyqt5_with_qtwebkit dbus-python jsmin ]; + + meta = with lib; { + description = "Non-official desktop client for Slack"; + homepage = "https://github.com/raelgc/scudcloud"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ volhovm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix new file mode 100644 index 000000000000..ed02def3eb88 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, fetchurl +, alsa-lib +, libopus +, libogg +, gmp +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "seren"; + version = "0.0.21"; + + buildInputs = [ alsa-lib libopus libogg gmp ncurses ]; + + src = fetchurl { + url = "http://holdenc.altervista.org/seren/downloads/${pname}-${version}.tar.gz"; + sha256 = "sha256-adI365McrJkvTexvnWjMzpHcJkLY3S/uWfE8u4yuqho="; + }; + + meta = with lib; { + description = "A simple ncurses VoIP program based on the Opus codec"; + longDescription = '' + Seren is a simple VoIP program based on the Opus codec + that allows you to create a voice conference from the terminal, with up to 10 + participants, without having to register accounts, exchange emails, or add + people to contact lists. All you need to join an existing conference is the + host name or IP address of one of the participants. + ''; + homepage = "http://holdenc.altervista.org/seren/"; + changelog = "http://holdenc.altervista.org/seren/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ matthewcroughan nixinator ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix new file mode 100644 index 000000000000..05ab8b49a69e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, fetchurl, makeWrapper, openjdk11_headless, libmatthew_java, dbus, dbus_java }: + +stdenv.mkDerivation rec { + pname = "signal-cli"; + version = "0.8.1"; + + # Building from source would be preferred, but is much more involved. + src = fetchurl { + url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz"; + sha256 = "sha256-Lq1RSJ1VIa6MFTiTbGqNy7IqliJwGeuegm/1+RRtu+I="; + }; + + buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ]; + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + cp -r lib $out/lib + cp bin/signal-cli $out/bin/signal-cli + '' + (if stdenv.isLinux then '' + makeWrapper ${openjdk11_headless}/bin/java $out/bin/signal-cli \ + --set JAVA_HOME "${openjdk11_headless}" \ + --add-flags "-classpath '$out/lib/*:${libmatthew_java}/lib/jni'" \ + --add-flags "-Djava.library.path=${libmatthew_java}/lib/jni:${dbus_java}/share/java/dbus:$out/lib" \ + --add-flags "org.asamk.signal.Main" + '' else '' + wrapProgram $out/bin/signal-cli \ + --prefix PATH : ${lib.makeBinPath [ openjdk11_headless ]} \ + --set JAVA_HOME ${openjdk11_headless} + ''); + + # Execution in the macOS (10.13) sandbox fails with + # dyld: Library not loaded: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa + # Referenced from: /nix/store/5ghc2l65p8jcjh0bsmhahd5m9k5p8kx0-zulu1.8.0_121-8.20.0.5/bin/java + # Reason: no suitable image found. Did find: + # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() + # /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa: file system sandbox blocked stat() + # /nix/store/in41dz8byyyz4c0w132l7mqi43liv4yr-stdenv-darwin/setup: line 1310: 2231 Abort trap: 6 signal-cli --version + doInstallCheck = stdenv.isLinux; + + installCheckPhase = '' + export PATH=$PATH:$out/bin + # --help returns non-0 exit code even when working + signal-cli --version + ''; + + meta = with lib; { + homepage = "https://github.com/AsamK/signal-cli"; + description = "Command-line and dbus interface for communicating with the Signal messaging service"; + license = licenses.gpl3; + maintainers = with maintainers; [ ivan erictapen ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py new file mode 100755 index 000000000000..8556ee1e4d73 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/db-reencryption-wrapper.py @@ -0,0 +1,92 @@ +#!@PYTHON@ + +import json +import os +import re +import shlex +import sqlite3 +import subprocess +import sys + + +DB_PATH = os.path.join(os.environ['HOME'], '.config/Signal/sql/db.sqlite') +DB_COPY = os.path.join(os.environ['HOME'], '.config/Signal/sql/db.tmp') +CONFIG_PATH = os.path.join(os.environ['HOME'], '.config/Signal/config.json') + + +def zenity_askyesno(title, text): + args = [ + '@ZENITY@', + '--question', + '--title', + shlex.quote(title), + '--text', + shlex.quote(text) + ] + return subprocess.run(args).returncode == 0 + + +def start_signal(): + os.execvp('@SIGNAL-DESKTOP@', ['@SIGNAL-DESKTOP@'] + sys.argv[1:]) + + +def copy_pragma(name): + result = subprocess.run([ + '@SQLCIPHER@', + DB_PATH, + f"PRAGMA {name};" + ], check=True, capture_output=True).stdout + result = re.search(r'[0-9]+', result.decode()).group(0) + subprocess.run([ + '@SQLCIPHER@', + DB_COPY, + f"PRAGMA key = \"x'{key}'\"; PRAGMA {name} = {result};" + ], check=True, capture_output=True) + + +try: + # Test if DB is encrypted: + con = sqlite3.connect(f'file:{DB_PATH}?mode=ro', uri=True) + cursor = con.cursor() + cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") + con.close() +except: + # DB is encrypted, everything ok: + start_signal() + + +# DB is unencrypted! +answer = zenity_askyesno( + "Error: Signal-Desktop database is not encrypted", + "Should we try to fix this automatically?" + + "You likely want to backup ~/.config/Signal/ first." +) +if not answer: + answer = zenity_askyesno( + "Launch Signal-Desktop", + "DB is unencrypted, should we still launch Signal-Desktop?" + + "Warning: This could result in data loss!" + ) + if not answer: + print('Aborted') + sys.exit(0) + start_signal() + +# Re-encrypt the DB: +with open(CONFIG_PATH) as json_file: + key = json.load(json_file)['key'] +result = subprocess.run([ + '@SQLCIPHER@', + DB_PATH, + f" ATTACH DATABASE '{DB_COPY}' AS signal_db KEY \"x'{key}'\";" + + " SELECT sqlcipher_export('signal_db');" + + " DETACH DATABASE signal_db;" +]).returncode +if result != 0: + print('DB encryption failed') + sys.exit(1) +# Need to copy user_version and schema_version manually: +copy_pragma('user_version') +copy_pragma('schema_version') +os.rename(DB_COPY, DB_PATH) +start_signal() diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix new file mode 100644 index 000000000000..a9de901cd870 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -0,0 +1,168 @@ +{ stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests +, gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig +, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite +, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsa-lib +, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa +# Runtime dependencies: +, systemd, libnotify, libdbusmenu, libpulseaudio +# Unfortunately this also overwrites the UI language (not just the spell +# checking language!): +, hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE" +# For a full list of available languages: +# $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }' +, python3 +, gnome +, sqlcipher +}: + +let + customLanguageWrapperArgs = (with lib; + let + # E.g. "de_DE" -> "de-de" (spellcheckerLanguage -> hunspellDict) + spellLangComponents = splitString "_" spellcheckerLanguage; + hunspellDict = elemAt spellLangComponents 0 + "-" + toLower (elemAt spellLangComponents 1); + in if spellcheckerLanguage != null + then '' + --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \ + --set LC_MESSAGES "${spellcheckerLanguage}"'' + else ""); +in stdenv.mkDerivation rec { + pname = "signal-desktop"; + version = "5.7.1"; # Please backport all updates to the stable channel. + # All releases have a limited lifetime and "expire" 90 days after the release. + # When releases "expire" the application becomes unusable until an update is + # applied. The expiration date for the current release can be extracted with: + # $ grep -a "^{\"buildExpiration" "${signal-desktop}/lib/Signal/resources/app.asar" + # (Alternatively we could try to patch the asar archive, but that requires a + # few additional steps and might not be the best idea.) + + src = fetchurl { + url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; + sha256 = "1hjykjqf3n20aab9g3bwk5w8x8v61320xv6z4iqrwwdzfkb3ly20"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXrender + libXtst + libappindicator-gtk3 + libnotify + libuuid + mesa # for libgbm + nspr + nss + pango + systemd + xorg.libxcb + xorg.libxshmfence + ]; + + runtimeDependencies = [ + (lib.getLib systemd) + libnotify + libdbusmenu + ]; + + unpackPhase = "dpkg-deb -x $src ."; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + # We need to run autoPatchelf manually with the "no-recurse" option, see + # https://github.com/NixOS/nixpkgs/pull/78413 for the reasons. + dontAutoPatchelf = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + + mv usr/share $out/share + mv opt/Signal $out/lib/Signal + + # Note: The following path contains bundled libraries: + # $out/lib/Signal/resources/app.asar.unpacked/node_modules/sharp/vendor/lib/ + # We run autoPatchelf with the "no-recurse" option to avoid picking those + # up, but resources/app.asar still requires them. + + # Symlink to bin + mkdir -p $out/bin + ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop-unwrapped + + runHook postInstall + ''; + + # Required for $SQLCIPHER_LIB which contains "/build/" inside the path: + noAuditTmpdir = true; + + preFixup = '' + export SQLCIPHER_LIB="$out/lib/Signal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node" + test -x "$SQLCIPHER_LIB" # To ensure the location hasn't changed + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }" + --prefix LD_PRELOAD : "$SQLCIPHER_LIB" + ${customLanguageWrapperArgs} + ) + + # Fix the desktop link + substituteInPlace $out/share/applications/signal-desktop.desktop \ + --replace /opt/Signal/signal-desktop $out/bin/signal-desktop + + autoPatchelf --no-recurse -- $out/lib/Signal/ + patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc-x64.node + ''; + + postFixup = '' + # This hack is temporarily required to avoid data-loss for users: + cp ${./db-reencryption-wrapper.py} $out/bin/signal-desktop + substituteInPlace $out/bin/signal-desktop \ + --replace '@PYTHON@' '${python3}/bin/python3' \ + --replace '@ZENITY@' '${gnome.zenity}/bin/zenity' \ + --replace '@SQLCIPHER@' '${sqlcipher}/bin/sqlcipher' \ + --replace '@SIGNAL-DESKTOP@' "$out/bin/signal-desktop-unwrapped" + ''; + + # Tests if the application launches and waits for "Link your phone to Signal Desktop": + passthru.tests.application-launch = nixosTests.signal-desktop; + + meta = { + description = "Private, simple, and secure messenger"; + longDescription = '' + Signal Desktop is an Electron application that links with your + "Signal Android" or "Signal iOS" app. + ''; + homepage = "https://signal.org/"; + changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ ixmatus primeos equirosa ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix new file mode 100644 index 000000000000..a26fbed2a049 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/default.nix @@ -0,0 +1,95 @@ +{ lib, stdenv, fetchurl, fetchgit, jre_headless, coreutils, gradle_6, git, perl +, makeWrapper }: + +let + pname = "signald"; + + version = "0.13.1"; + + # This package uses the .git directory + src = fetchgit { + url = "https://gitlab.com/signald/signald"; + rev = version; + sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7"; + leaveDotGit = true; + }; + + buildConfigJar = fetchurl { + url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar"; + sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f"; + }; + + patches = [ ./git-describe-always.patch ./gradle-plugin.patch ]; + + postPatch = '' + patchShebangs gradlew + sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle + ''; + + # fake build to pre-download deps into fixed-output derivation + deps = stdenv.mkDerivation { + name = "${pname}-deps"; + inherit src version postPatch patches; + nativeBuildInputs = [ gradle_6 perl ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + gradle --no-daemon build + ''; + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \ + | sh + ''; + # Don't move info to share/ + forceShare = [ "dummy" ]; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7"; + }; + +in stdenv.mkDerivation rec { + inherit pname src version postPatch patches; + + buildPhase = '' + runHook preBuild + + export GRADLE_USER_HOME=$(mktemp -d) + + # Use the local packages from -deps + sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle + + gradle --offline --no-daemon distTar + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/ + wrapProgram $out/bin/signald \ + --prefix PATH : ${lib.makeBinPath [ coreutils ]} \ + --set JAVA_HOME "${jre_headless}" + + runHook postInstall + ''; + + nativeBuildInputs = [ git gradle_6 makeWrapper ]; + + doCheck = true; + + meta = with lib; { + description = "Unofficial daemon for interacting with Signal"; + longDescription = '' + Signald is a daemon that facilitates communication over Signal. It is + unofficial, unapproved, and not nearly as secure as the real Signal + clients. + ''; + homepage = "https://signald.org"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch new file mode 100644 index 000000000000..2f4830e27dd5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch @@ -0,0 +1,9 @@ +diff --git a/version.sh b/version.sh +index 7aeeb3c..060cba3 100755 +--- a/version.sh ++++ b/version.sh +@@ -1,3 +1,3 @@ + #!/bin/sh +-VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --abbrev=0)..HEAD --count) ++VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --always --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --always --abbrev=0)..HEAD --count) + echo $VERSION diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch new file mode 100644 index 000000000000..6952654758d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch @@ -0,0 +1,26 @@ +diff --git a/build.gradle b/build.gradle +index 11d7a99..66805bb 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal + import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform + import org.xml.sax.SAXParseException + +-plugins { +- id 'de.fuerstenau.buildconfig' version '1.1.8' ++buildscript { ++ dependencies { ++ classpath files ("BuildConfig.jar") ++ } + } ++apply plugin: 'de.fuerstenau.buildconfig' + + apply plugin: 'java' + apply plugin: 'application' +@@ -185,4 +188,4 @@ task integrationTest(type: Test) { + testClassesDirs = sourceSets.integrationTest.output.classesDirs + classpath = sourceSets.integrationTest.runtimeClasspath + outputs.upToDateWhen { false } +-} +\ No newline at end of file ++} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix new file mode 100644 index 000000000000..83cc80ccaf05 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, perl, pkg-config, glib, ncurses +, enablePlugin ? false }: + +# Enabling the plugin and using it with a recent irssi, segafults on join: +# http://marc.info/?l=silc-devel&m=125610477802211 + +let + basename = "silc-client-1.1.11"; +in +stdenv.mkDerivation { + name = basename + lib.optionalString enablePlugin "-irssi-plugin"; + + src = fetchurl { + url = "mirror://sourceforge/silc/silc/client/sources/${basename}.tar.bz2"; + sha256 = "13cp3fmdnj8scjak0d2xal3bfvs2k7ssrwdhp0zl6jar5rwc7prn"; + }; + + enableParallelBuilding = true; + + dontDisableStatic = true; + + hardeningDisable = [ "format" ]; + + configureFlags = [ "--with-ncurses=${ncurses.dev}" ]; + + preConfigure = lib.optionalString enablePlugin '' + configureFlags="$configureFlags --with-silc-plugin=$out/lib/irssi" + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ perl glib ncurses ]; + + meta = { + homepage = "http://silcnet.org/"; + description = "Secure Internet Live Conferencing server"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix new file mode 100644 index 000000000000..4eb536256240 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix @@ -0,0 +1,127 @@ +{ lib, stdenv, fetchurl, dpkg +, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome +, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg +, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon }: + +let + + # Please keep the version x.y.0.z and do not update to x.y.76.z because the + # source of the latter disappears much faster. + version = "8.69.0.77"; + + rpath = lib.makeLibraryPath [ + alsa-lib + atk + at-spi2-atk + at-spi2-core + cairo + cups + curl + dbus + expat + fontconfig + freetype + glib + glibc + libsecret + libuuid + + gnome2.GConf + gdk-pixbuf + gtk3 + libappindicator-gtk3 + + gnome.gnome-keyring + + libnotify + libpulseaudio + nspr + nss + pango + stdenv.cc.cc + systemd + + libv4l + libdrm + mesa + libxkbcommon + xorg.libxkbfile + xorg.libX11 + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libXScrnSaver + xorg.libxcb + ] + ":${stdenv.cc.cc.lib}/lib64"; + + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + urls = [ + "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" + "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" + "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb" + ]; + sha256 = "PaqlPp+BRS0cH7XI4x1/5HqYti63rQThmTtPaghIQH0="; + } + else + throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}"; + +in stdenv.mkDerivation { + pname = "skypeforlinux"; + inherit version; + + system = "x86_64-linux"; + + inherit src; + + nativeBuildInputs = [ + wrapGAppsHook + glib # For setup hook populating GSETTINGS_SCHEMA_PATH + ]; + + buildInputs = [ dpkg ]; + + dontUnpack = true; + installPhase = '' + mkdir -p $out + dpkg -x $src $out + cp -av $out/usr/* $out + rm -rf $out/opt $out/usr + rm $out/bin/skypeforlinux + + ln -s "$out/share/skypeforlinux/skypeforlinux" "$out/bin/skypeforlinux" + + # Otherwise it looks "suspicious" + chmod -R g-w $out + ''; + + postFixup = '' + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* -or -name \*.node\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/share/skypeforlinux $file || true + done + + # Fix the desktop link + substituteInPlace $out/share/applications/skypeforlinux.desktop \ + --replace /usr/bin/ $out/bin/ + substituteInPlace $out/share/applications/skypeforlinux-share.desktop \ + --replace /usr/bin/ $out/bin/ + substituteInPlace $out/share/kservices5/ServiceMenus/skypeforlinux.desktop \ + --replace /usr/bin/ $out/bin/ + ''; + + meta = with lib; { + description = "Linux client for skype"; + homepage = "https://www.skype.com"; + license = licenses.unfree; + maintainers = with lib.maintainers; [ panaeon jraygauthier ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix new file mode 100644 index 000000000000..30cc7396c562 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + # https://github.com/erroneousboat/slack-term + pname = "slack-term"; + version = "0.5.0"; + + goPackagePath = "github.com/erroneousboat/slack-term"; + + src = fetchFromGitHub { + owner = "erroneousboat"; + repo = "slack-term"; + rev = "v${version}"; + sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6"; + }; + + meta = with lib; { + description = "Slack client for your terminal"; + homepage = "https://github.com/erroneousboat/slack-term"; + license = licenses.mit; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix new file mode 100644 index 000000000000..39cff6de85de --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -0,0 +1,188 @@ +{ lib +, stdenv +, fetchurl +, dpkg +, undmg +, makeWrapper +, nodePackages +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, cairo +, cups +, curl +, dbus +, expat +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gnome2 +, gtk3 +, libGL +, libappindicator-gtk3 +, libdrm +, libnotify +, libpulseaudio +, libuuid +, libxcb +, libxkbcommon +, libxshmfence +, mesa +, nspr +, nss +, pango +, systemd +, xdg-utils +, xorg +}: + +let + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + pname = "slack"; + + x86_64-darwin-version = "4.17.0"; + x86_64-darwin-sha256 = "0r5cafxw73qnn14ljprn7w8bfn67zbkcniq60k9pf2zbqgb4cyj9"; + + x86_64-linux-version = "4.17.0"; + x86_64-linux-sha256 = "07ccms58pq27ilkyhcf6cgwb7qrddwil5kgy8yv95ljikqzi5rxi"; + + version = { + x86_64-darwin = x86_64-darwin-version; + x86_64-linux = x86_64-linux-version; + }.${system} or throwSystem; + + src = + let + base = "https://downloads.slack-edge.com"; + in + { + x86_64-darwin = fetchurl { + url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg"; + sha256 = x86_64-darwin-sha256; + }; + x86_64-linux = fetchurl { + url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb"; + sha256 = x86_64-linux-sha256; + }; + }.${system} or throwSystem; + + meta = with lib; { + description = "Desktop client for Slack"; + homepage = "https://slack.com"; + license = licenses.unfree; + maintainers = with maintainers; [ mmahut ]; + platforms = [ "x86_64-darwin" "x86_64-linux" ]; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version src meta; + + passthru.updateScript = ./update.sh; + + rpath = lib.makeLibraryPath [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk3 + libGL + libappindicator-gtk3 + libdrm + libnotify + libpulseaudio + libuuid + libxcb + libxkbcommon + mesa + 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.libxkbfile + xorg.libxshmfence + ] + ":${stdenv.cc.cc.lib}/lib64"; + + buildInputs = [ + gtk3 # needed for GSETTINGS_SCHEMAS_PATH + ]; + + nativeBuildInputs = [ dpkg makeWrapper nodePackages.asar ]; + + dontUnpack = true; + dontBuild = true; + dontPatchELF = true; + + installPhase = '' + # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here + dpkg --fsys-tarfile $src | tar --extract + rm -rf usr/share/lintian + + mkdir -p $out + mv usr/* $out + + # Otherwise it looks "suspicious" + chmod -R g-w $out + + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath ${rpath}:$out/lib/slack $file || true + done + + # Replace the broken bin/slack symlink with a startup wrapper + rm $out/bin/slack + makeWrapper $out/lib/slack/slack $out/bin/slack \ + --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \ + --prefix PATH : ${lib.makeBinPath [xdg-utils]} + + # Fix the desktop link + substituteInPlace $out/share/applications/slack.desktop \ + --replace /usr/bin/ $out/bin/ \ + --replace /usr/share/ $out/share/ + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + passthru.updateScript = ./update.sh; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "Slack.app"; + + installPhase = '' + mkdir -p $out/Applications/Slack.app + cp -R . $out/Applications/Slack.app + /usr/bin/defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES + ''; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh new file mode 100755 index 000000000000..0bb0d784167c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/update.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p curl gnused + +set -eou pipefail + +latest_linux_version=$(curl -L --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p') +latest_mac_version=$(curl -L --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p') + +# Double check that the latest mac and linux versions are in sync. +if [[ "$latest_linux_version" != "$latest_mac_version" ]]; then + echo "the latest linux ($latest_linux_version) and mac ($latest_mac_version) versions are not the same" + exit 1 +fi + +nixpkgs="$(git rev-parse --show-toplevel)" +slack_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix" +nixpkgs_linux_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-linux-version = \"\([0-9\.]\+\)\";.*/\1/p') +nixpkgs_mac_version=$(cat "$slack_nix" | sed -n 's/.*x86_64-darwin-version = \"\([0-9\.]\+\)\";.*/\1/p') + +if [[ "$nixpkgs_linux_version" == "$latest_linux_version" && "$nixpkgs_mac_version" == "$latest_mac_version" ]]; then + echo "nixpkgs versions are all up to date!" + exit 0 +fi + +linux_url="https://downloads.slack-edge.com/linux_releases/slack-desktop-${latest_linux_version}-amd64.deb" +mac_url="https://downloads.slack-edge.com/releases/macos/${latest_mac_version}/prod/x64/Slack-${latest_mac_version}-macOS.dmg" +linux_sha256=$(nix-prefetch-url ${linux_url}) +mac_sha256=$(nix-prefetch-url ${mac_url}) + +sed -i "s/x86_64-linux-version = \".*\"/x86_64-linux-version = \"${latest_linux_version}\"/" "$slack_nix" +sed -i "s/x86_64-darwin-version = \".*\"/x86_64-darwin-version = \"${latest_mac_version}\"/" "$slack_nix" +sed -i "s/x86_64-linux-sha256 = \".*\"/x86_64-linux-sha256 = \"${linux_sha256}\"/" "$slack_nix" +sed -i "s/x86_64-darwin-sha256 = \".*\"/x86_64-darwin-sha256 = \"${mac_sha256}\"/" "$slack_nix" + +if ! nix-build -A slack "$nixpkgs"; then + echo "The updated slack failed to build." + exit 1 +fi + +echo "Successfully updated" +echo "slack: $nixpkgs_linux_version -> $latest_linux_version" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix new file mode 100644 index 000000000000..71693485a1b0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ssh-chat"; + version = "1.10.1"; + + src = fetchFromGitHub { + owner = "shazow"; + repo = "ssh-chat"; + rev = "v${version}"; + sha256 = "LgrqIuM/tLC0JqDai2TLu6G/edZ5Q7WFXjX5bzc0Bcc="; + }; + + vendorSha256 = "QTUBorUAsWDOpNP3E/Y6ht7ZXZViWBbrMPtLl7lHtgE="; + + meta = with lib; { + description = "Chat over SSH"; + homepage = "https://github.com/shazow/ssh-chat"; + license = licenses.mit; + maintainers = with maintainers; [ luc65r ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix new file mode 100644 index 000000000000..026dc5b64056 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix @@ -0,0 +1,68 @@ +{ lib, stdenv, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig +, freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }: +let + fullPath = lib.makeLibraryPath [ + alsa-lib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + gtk2 + nspr + nss + pango + udev + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + ] + ":${stdenv.cc.cc.lib}/lib64"; +in +stdenv.mkDerivation rec { + version = "1.17.82"; + pname = "stride"; + + src = fetchurl { + url = "https://packages.atlassian.com/stride-apt-client/pool/stride_${version}_amd64.deb"; + sha256 = "0lx61gdhw0kv4f9fwbfg69yq52dsp4db7c4li25d6wn11qanzqhy"; + }; + + dontBuild = true; + dontFixup = true; + + buildInputs = [ dpkg ]; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + installPhase ='' + mkdir "$out" + mv usr/* "$out/" + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${fullPath}:\$ORIGIN" \ + "$out/bin/stride" + ''; + + meta = with lib; { + description = "Desktop client for Atlassian Stride"; + homepage = "https://www.stride.com/"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ puffnfresh ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix new file mode 100644 index 000000000000..58335bed4218 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix @@ -0,0 +1,44 @@ +{ mkDerivation, lib, fetchurl, pkg-config, qttools, sconsPackages +, GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2 +, lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib +}: + +mkDerivation rec { + pname = "swift-im"; + version = "4.0.2"; + + src = fetchurl { + url = "https://swift.im/downloads/releases/swift-${version}/swift-${version}.tar.gz"; + sha256 = "0w0aiszjd58ynxpacwcgf052zpmbpcym4dhci64vbfgch6wryz0w"; + }; + + patches = [ ./qt-5.11.patch ./scons.patch ]; + + nativeBuildInputs = [ pkg-config qttools sconsPackages.scons_3_1_2 ]; + + buildInputs = [ + GConf avahi boost hunspell libXScrnSaver libedit libidn libnatpmp libxml2 + lua miniupnpc openssl qtbase qtmultimedia qtsvg qtwebkit qtx11extras zlib + ]; + + propagatedUserEnvPkgs = [ GConf ]; + + NIX_CFLAGS_COMPILE = toString [ + "-I${libxml2.dev}/include/libxml2" + "-I${miniupnpc}/include/miniupnpc" + "-I${qtwebkit.dev}/include/QtWebKit" + "-I${qtwebkit.dev}/include/QtWebKitWidgets" + "-fpermissive" + ]; + + installTargets = [ (placeholder "out") ]; + installFlags = [ "SWIFT_INSTALLDIR=${placeholder "out"}" ]; + + meta = with lib; { + homepage = "https://swift.im/"; + description = "Qt XMPP client"; + license = licenses.gpl3; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch new file mode 100644 index 000000000000..911e7570427f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch @@ -0,0 +1,10 @@ +--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.h ++++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.h +@@ -8,6 +8,7 @@ + + #include <set> + ++#include <QAbstractItemModel> + #include <QWizard> + + #include <Swiften/Base/Override.h> diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch new file mode 100644 index 000000000000..c63b05d7acb1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch @@ -0,0 +1,53 @@ +diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot +index 40f242513..53e1ff26a 100644 +--- a/BuildTools/SCons/SConscript.boot ++++ b/BuildTools/SCons/SConscript.boot +@@ -508,6 +508,7 @@ if env.get("distcc", False) : + if var.startswith("DISTCC_") : + env["ENV"][var] = os.environ[var] + ++env["ENV"] = os.environ + conf_env = env.Clone() + + Export("env") +diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct +index 70bffbcfe..fef281899 100644 +--- a/BuildTools/SCons/SConstruct ++++ b/BuildTools/SCons/SConstruct +@@ -272,7 +272,7 @@ if env.get("try_gconf", True) and env["PLATFORM"] != "win32" and env["PLATFORM"] + gconf_env = conf_env.Clone() + conf = Configure(gconf_env, custom_tests = {"CheckPKG": CheckPKG}) + if conf.CheckPKG("gconf-2.0") : +- gconf_bare_env = Environment() ++ gconf_bare_env = Environment(ENV = os.environ) + gconf_bare_env.ParseConfig('pkg-config --cflags gconf-2.0 gobject-2.0 --libs gconf-2.0 gobject-2.0') + if os.path.basename(env["CXX"]).startswith(("g++", "clang++")) : + gconf_bare_env["CCFLAGS"] = [("-isystem" + ccflag) for ccflag in gconf_bare_env["CPPPATH"]] +@@ -634,9 +634,9 @@ hunspell_env.MergeFlags(hunspell_flags) + env["HAVE_HUNSPELL"] = 0; + if env.get("hunspell_enable", False) : + hunspell_conf = Configure(hunspell_env) +- if hunspell_conf.CheckCXXHeader("hunspell/hunspell.hxx") and hunspell_conf.CheckLib("hunspell") : ++ if hunspell_conf.CheckCXXHeader("hunspell/hunspell.hxx") and hunspell_conf.CheckLib("hunspell-1.6") : + env["HAVE_HUNSPELL"] = 1 +- hunspell_flags["LIBS"] = ["hunspell"] ++ hunspell_flags["LIBS"] = ["hunspell-1.6"] + env["HUNSPELL_FLAGS"] = hunspell_flags + hunspell_conf.Finish() + +diff --git a/BuildTools/SCons/Tools/textfile.py b/BuildTools/SCons/Tools/textfile.py +index 89f8963dc..b8559f7a6 100644 +--- a/BuildTools/SCons/Tools/textfile.py ++++ b/BuildTools/SCons/Tools/textfile.py +@@ -113,7 +113,10 @@ def _action(target, source, env): + lsep = None + for s in source: + if lsep: fd.write(lsep) +- fd.write(_do_subst(s, subs)) ++ b = _do_subst(s, subs) ++ if isinstance(b, unicode): ++ b = b.encode('UTF-8') ++ fd.write(b) + lsep = linesep + fd.close() + diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix new file mode 100644 index 000000000000..e7ca8c320ac6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix @@ -0,0 +1,56 @@ +{ stdenv, lib, fetchFromGitHub, appstream-glib, desktop-file-utils, gdk-pixbuf +, gettext, gjs, glib, gobject-introspection, gsettings-desktop-schemas, gtk3 +, hicolor-icon-theme, meson, ninja, pkg-config, python3, webkitgtk, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "tangram"; + version = "1.3.1"; + + src = fetchFromGitHub { + owner = "sonnyp"; + repo = "Tangram"; + rev = "v${version}"; + sha256 = "0bhs9s6c2k06i3cx01h2102lgl7g6vxm3k63jkkhh2bwdpc9kvn3"; + fetchSubmodules = true; + }; + + buildInputs = [ gdk-pixbuf gjs glib gsettings-desktop-schemas gtk3 webkitgtk ]; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + gettext + gobject-introspection + hicolor-icon-theme + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + dontWrapGApps = true; + + # Fixes https://github.com/NixOS/nixpkgs/issues/31168 + postPatch = '' + chmod +x build-aux/meson/postinstall.py + patchShebangs build-aux/meson/postinstall.py + ''; + + postFixup = '' + for file in $out/bin/re.sonny.Tangram; do + sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \ + -i $file + wrapGApp "$file" + done + ''; + + meta = with lib; { + description = "Run web apps on your desktop"; + homepage = "https://github.com/sonnyp/Tangram"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ austinbutler ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix new file mode 100644 index 000000000000..1267340c0985 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix @@ -0,0 +1,122 @@ +{ lib +, stdenv +, fetchurl +, autoPatchelfHook +, wrapGAppsHook +, dpkg +, atomEnv +, libuuid +, libappindicator-gtk3 +, pulseaudio +, at-spi2-atk +, coreutils +, gawk +, xdg-utils +, systemd +, nodePackages +, enableRectOverlay ? false }: + +stdenv.mkDerivation rec { + pname = "teams"; + version = "1.4.00.13653"; + + src = fetchurl { + url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb"; + sha256 = "1kx4j837fd344zy90nl0j3r8cdvihy6i6gf56wd5n56zngx1fhjv"; + }; + + nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook nodePackages.asar ]; + + unpackCmd = "dpkg -x $curSrc ."; + + buildInputs = atomEnv.packages ++ [ + libuuid + at-spi2-atk + ]; + + runtimeDependencies = [ + (lib.getLib systemd) + pulseaudio + libappindicator-gtk3 + ]; + + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : "${coreutils}/bin:${gawk}/bin") + gappsWrapperArgs+=(--add-flags --disable-namespace-sandbox) + gappsWrapperArgs+=(--add-flags --disable-setuid-sandbox) + ''; + + + buildPhase = '' + runHook preBuild + + asar extract share/teams/resources/app.asar "$TMP/work" + substituteInPlace $TMP/work/main.bundle.js \ + --replace "/usr/share/pixmaps/" "$out/share/pixmaps" \ + --replace "/usr/bin/xdg-mime" "${xdg-utils}/bin/xdg-mime" \ + --replace "Exec=/usr/bin/" "Exec=" # Remove usage of absolute path in autostart. + asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" share/teams/resources/app.asar + + runHook postBuild + ''; + + preferLocalBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{opt,bin} + + mv share/teams $out/opt/ + mv share $out/share + + substituteInPlace $out/share/applications/teams.desktop \ + --replace /usr/bin/ "" + + ln -s $out/opt/teams/teams $out/bin/ + + ${lib.optionalString (!enableRectOverlay) '' + # Work-around screen sharing bug + # https://docs.microsoft.com/en-us/answers/questions/42095/sharing-screen-not-working-anymore-bug.html + rm $out/opt/teams/resources/app.asar.unpacked/node_modules/slimcore/bin/rect-overlay + ''} + + runHook postInstall + ''; + + dontAutoPatchelf = true; + + # Includes runtimeDependencies in the RPATH of the included Node modules + # so that dynamic loading works. We cannot use directly runtimeDependencies + # here, since the libraries from runtimeDependencies are not propagated + # to the dynamically loadable node modules because of a condition in + # autoPatchElfHook since *.node modules have Type: DYN (Shared object file) + # instead of EXEC or INTERP it expects. + # Fixes: https://github.com/NixOS/nixpkgs/issues/85449 + postFixup = '' + autoPatchelf "$out" + + runtime_rpath="${lib.makeLibraryPath runtimeDependencies}" + + for mod in $(find "$out/opt/teams" -name '*.node'); do + mod_rpath="$(patchelf --print-rpath "$mod")" + + echo "Adding runtime dependencies to RPATH of Node module $mod" + patchelf --set-rpath "$runtime_rpath:$mod_rpath" "$mod" + done; + + # fix for https://docs.microsoft.com/en-us/answers/questions/298724/open-teams-meeting-link-on-linux-doens39t-work.html?childToView=309406#comment-309406 + # while we create the wrapper ourselves, gappsWrapperArgs leads to the same issue + # another option would be to introduce gappsWrapperAppendedArgs, to allow control of positioning + substituteInPlace "$out/bin/teams" --replace '.teams-wrapped" --disable-namespace-sandbox --disable-setuid-sandbox "$@"' '.teams-wrapped" "$@" --disable-namespace-sandbox --disable-setuid-sandbox' + ''; + + meta = with lib; { + description = "Microsoft Teams"; + homepage = "https://teams.microsoft.com"; + downloadPage = "https://teams.microsoft.com/downloads"; + license = licenses.unfree; + maintainers = [ maintainers.liff ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix new file mode 100644 index 000000000000..048d40082daa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -0,0 +1,148 @@ +{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl +, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, qtwebsockets, xkeyboard_config +, alsa-lib, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin +}: + +let + + arch = if stdenv.is64bit then "amd64" else "x86"; + + libDir = if stdenv.is64bit then "lib64" else "lib"; + + deps = + [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl + xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama + xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsa-lib qtbase qtwebengine qtwebchannel qtsvg + qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi + ]; + + desktopItem = makeDesktopItem { + name = "teamspeak"; + exec = "ts3client"; + icon = "teamspeak"; + comment = "The TeamSpeak voice communication tool"; + desktopName = "TeamSpeak"; + genericName = "TeamSpeak"; + categories = "Network"; + }; + + fakeLess = writeShellScriptBin "less" "cat"; + +in + +stdenv.mkDerivation rec { + pname = "teamspeak-client"; + + version = "3.5.6"; + + src = fetchurl { + url = "https://files.teamspeak-services.com/releases/client/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"; + sha256 = if stdenv.is64bit + then "sha256:0hjai1bd4mq3g2dlyi0zkn8s4zlgxd38skw77mb78nc4di5gvgpg" + else "sha256:1y1c65nap91nv9xkvd96fagqbfl56p9n0rl6iac0i29bkysdmija"; + }; + + # grab the plugin sdk for the desktop icon + pluginsdk = fetchurl { + url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.1.1.1.zip"; + sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f"; + }; + + nativeBuildInputs = [ makeWrapper fakeLess which unzip ]; + + unpackPhase = + '' + echo -e '\ny' | sh -xe $src + cd TeamSpeak* + ''; + + buildPhase = + '' + mv ts3client_linux_${arch} ts3client + echo "patching ts3client..." + patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client + patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \ + --force-rpath \ + ts3client + ''; + + installPhase = + '' + # Delete unecessary libraries - these are provided by nixos. + rm *.so.* *.so + rm QtWebEngineProcess + rm qt.conf + rm -r platforms # contains libqxcb.so + + # Install files. + mkdir -p $out/lib/teamspeak + mv * $out/lib/teamspeak/ + + # Make a desktop item + mkdir -p $out/share/applications/ $out/share/icons/ + unzip ${pluginsdk} + cp pluginsdk/docs/client_html/images/logo.png $out/share/icons/teamspeak.png + cp ${desktopItem}/share/applications/* $out/share/applications/ + + # Make a symlink to the binary from bin. + mkdir -p $out/bin/ + ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client + + wrapProgram $out/bin/ts3client \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \ + --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb + ''; + + dontStrip = true; + dontPatchELF = true; + + meta = with lib; { + description = "The TeamSpeak voice communication tool"; + homepage = "https://teamspeak.com/"; + license = { + fullName = "Teamspeak client license"; + url = "https://www.teamspeak.com/en/privacy-and-terms/"; + free = false; + }; + maintainers = with maintainers; [ lhvwb lukegb ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} + +/* +License issues: +Date: Mon, 10 Dec 2007 19:55:16 -0500 +From: TeamSpeak Sales <sales@tritoncia.com> +To: 'Marc Weber' <marco-oweber@gmx.de> +Subject: RE: teamspeak on nix? + +Yes, that would be fine. As long as you are not renting servers or selling +TeamSpeak then you are more than welcome to distribute it. + +Thank you, + +TeamSpeak Sales Team +________________________________ +e-Mail: sales@tritoncia.com +TeamSpeak: http://www.TeamSpeak.com +Account Login: https://sales.TritonCIA.com/users + + + +-----Original Message----- +From: Marc Weber [mailto:marco-oweber@gmx.de] +Sent: Monday, December 10, 2007 5:03 PM +To: sales@tritoncia.com +Subject: teamspeak on nix? + +Hello, + +nix is very young software distribution system (http://nix.cs.uu.nl/) +I'd like to ask wether you permit us to add teamspeak (server/ client?) + +Sincerly +Marc Weber (small nix contributor) +*/ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix new file mode 100644 index 000000000000..44430ef62e2d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix @@ -0,0 +1,100 @@ +{ lib, stdenv, fetchurl, postgresql, autoPatchelfHook, writeScript }: + +let + arch = if stdenv.is64bit then "amd64" else "x86"; +in stdenv.mkDerivation rec { + pname = "teamspeak-server"; + version = "3.13.6"; + + src = fetchurl { + url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"; + sha256 = if stdenv.is64bit + then "sha256-U3BNJ4Jjhd39gD7iMsHT8CGtm/GFQDE2kYQa2btyK+w=" + else "sha256-8UKiFedv6w5bmqNvo3AXwQnUROwbZnU0ZTh9V17zmxQ="; + }; + + buildInputs = [ stdenv.cc.cc postgresql.lib ]; + + nativeBuildInputs = [ autoPatchelfHook ]; + + installPhase = '' + runHook preInstall + + # Install files. + mkdir -p $out/lib/teamspeak + mv * $out/lib/teamspeak/ + + # Make symlinks to the binaries from bin. + mkdir -p $out/bin/ + ln -s $out/lib/teamspeak/ts3server $out/bin/ts3server + ln -s $out/lib/teamspeak/tsdns/tsdnsserver $out/bin/tsdnsserver + + runHook postInstall + ''; + + passthru.updateScript = writeScript "update-teampeak-server" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused jq pup + + set -eu -o pipefail + + version=$( \ + curl https://www.teamspeak.com/en/downloads/ \ + | pup "#server .linux .version json{}" \ + | jq -r ".[0].text" + ) + + versionOld=$(nix-instantiate --eval --strict -A "teamspeak_server.version") + + nixFile=pkgs/applications/networking/instant-messengers/teamspeak/server.nix + + update-source-version teamspeak_server "$version" --system=i686-linux + + sed -i -e "s/version = \"$version\";/version = $versionOld;/" "$nixFile" + + update-source-version teamspeak_server "$version" --system=x86_64-linux + ''; + + meta = with lib; { + description = "TeamSpeak voice communication server"; + homepage = "https://teamspeak.com/"; + license = licenses.unfreeRedistributable; + platforms = platforms.linux; + maintainers = with maintainers; [ arobyn gerschtli ]; + }; +} + +/* +License issues: +Date: Mon, 10 Dec 2007 19:55:16 -0500 +From: TeamSpeak Sales <sales@tritoncia.com> +To: 'Marc Weber' <marco-oweber@gmx.de> +Subject: RE: teamspeak on nix? + +Yes, that would be fine. As long as you are not renting servers or selling +TeamSpeak then you are more than welcome to distribute it. + +Thank you, + +TeamSpeak Sales Team +________________________________ +e-Mail: sales@tritoncia.com +TeamSpeak: http://www.TeamSpeak.com +Account Login: https://sales.TritonCIA.com/users + + + +-----Original Message----- +From: Marc Weber [mailto:marco-oweber@gmx.de] +Sent: Monday, December 10, 2007 5:03 PM +To: sales@tritoncia.com +Subject: teamspeak on nix? + +Hello, + +nix is very young software distribution system (http://nix.cs.uu.nl/) +I'd like to ask wether you permit us to add teamspeak (server/ client?) + +Sincerly +Marc Weber (small nix contributor) +*/ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix new file mode 100644 index 000000000000..d9f9cd91a52d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -0,0 +1,74 @@ +{ mkDerivation, lib, fetchFromGitHub, callPackage +, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook +, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash +, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3 +, tl-expected, hunspell, glibmm, webkitgtk +# Transitive dependencies: +, pcre, xorg, util-linux, libselinux, libsepol, epoxy +, at-spi2-core, libXtst, libthai, libdatrie +}: + +with lib; + +let + tg_owt = callPackage ./tg_owt.nix {}; +in mkDerivation rec { + pname = "kotatogram-desktop"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "kotatogram"; + repo = "kotatogram-desktop"; + rev = "k${version}"; + sha256 = "07z56gz3sk45n5j0gw9p9mxrbwixxsmp7lvqc6lqnxmglz6knc1d"; + fetchSubmodules = true; + }; + + postPatch = '' + substituteInPlace Telegram/CMakeLists.txt \ + --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"' + ''; + + # We want to run wrapProgram manually (with additional parameters) + dontWrapGApps = true; + dontWrapQtApps = true; + + nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook ]; + + buildInputs = [ + qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash + ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3 + tl-expected hunspell glibmm webkitgtk + tg_owt + # Transitive dependencies: + pcre xorg.libXdmcp util-linux libselinux libsepol epoxy + at-spi2-core libXtst libthai libdatrie + ]; + + cmakeFlags = [ "-DTDESKTOP_API_TEST=ON" ]; + + postFixup = '' + # We also use gappsWrapperArgs from wrapGAppsHook. + wrapProgram $out/bin/kotatogram-desktop \ + "''${gappsWrapperArgs[@]}" \ + "''${qtWrapperArgs[@]}" + ''; + + passthru = { + inherit tg_owt; + }; + + meta = { + description = "Kotatogram – experimental Telegram Desktop fork"; + longDescription = '' + Unofficial desktop client for the Telegram messenger, based on Telegram Desktop. + + It contains some useful (or purely cosmetic) features, but they could be unstable. A detailed list is available here: https://kotatogram.github.io/changes + ''; + license = licenses.gpl3; + platforms = platforms.linux; + homepage = "https://kotatogram.github.io"; + changelog = "https://github.com/kotatogram/kotatogram-desktop/releases/tag/k{ver}"; + maintainers = with maintainers; [ ilya-fedin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix new file mode 100644 index 000000000000..614183b72d08 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, ninja, yasm +, libjpeg, openssl, libopus, ffmpeg, alsa-lib, libpulseaudio, protobuf +, xorg, libXtst +}: + +let + rev = "2d804d2c9c5d05324c8ab22f2e6ff8306521b3c3"; + sha256 = "0kz0i381iwsgcc3yzsq7njx3gkqja4bb9fsgc24vhg0md540qhyn"; + +in stdenv.mkDerivation { + pname = "tg_owt"; + version = "git-${rev}"; + + src = fetchFromGitHub { + owner = "desktop-app"; + repo = "tg_owt"; + inherit rev sha256; + fetchSubmodules = true; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkg-config cmake ninja yasm ]; + + buildInputs = [ + libjpeg openssl libopus ffmpeg alsa-lib libpulseaudio protobuf + xorg.libX11 libXtst + ]; + + cmakeFlags = [ + # Building as a shared library isn't officially supported and currently broken: + "-DBUILD_SHARED_LIBS=OFF" + ]; + + meta.license = lib.licenses.bsd3; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix new file mode 100644 index 000000000000..47aa7c7330f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix @@ -0,0 +1,114 @@ +{ mkDerivation, lib, fetchFromGitHub, callPackage +, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo +, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash +, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3 +, tl-expected, hunspell, glibmm, webkitgtk +, libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules +# Transitive dependencies: +, pcre, xorg, util-linux, libselinux, libsepol, epoxy +, at-spi2-core, libXtst, libthai, libdatrie +, xdg-utils, libsysprof-capture, libpsl, brotli +}: + +with lib; + +# Main reference: +# - This package was originally based on the Arch package but all patches are now upstreamed: +# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop +# Other references that could be useful: +# - https://git.alpinelinux.org/aports/tree/testing/telegram-desktop/APKBUILD +# - https://github.com/void-linux/void-packages/blob/master/srcpkgs/telegram-desktop/template + +let + tg_owt = callPackage ./tg_owt.nix {}; +in mkDerivation rec { + pname = "telegram-desktop"; + version = "2.8.4"; + # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py + + # Telegram-Desktop with submodules + src = fetchFromGitHub { + owner = "telegramdesktop"; + repo = "tdesktop"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "sha256-IN3GQgdNM66/GxKa5EGKB/LIkgBxS8Y4mkPBaSEphmw="; + }; + + postPatch = '' + substituteInPlace Telegram/CMakeLists.txt \ + --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"' + ''; + + # We want to run wrapProgram manually (with additional parameters) + dontWrapGApps = true; + dontWrapQtApps = true; + + nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ]; + + buildInputs = [ + qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash + ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3 + tl-expected hunspell glibmm webkitgtk + libtgvoip rnnoise abseil-cpp extra-cmake-modules + tg_owt + # Transitive dependencies: + pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy + at-spi2-core libXtst libthai libdatrie libsysprof-capture libpsl brotli + ]; + + cmakeFlags = [ + "-Ddisable_autoupdate=ON" + # We're allowed to used the API ID of the Snap package: + "-DTDESKTOP_API_ID=611335" + "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c" + #"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""' + "-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default + ]; + + # Note: The following packages could be packaged system-wide, but it's + # probably best to use the bundled ones from tdesktop (Arch does this too): + # rlottie: + # - CMake flag: "-DTDESKTOP_USE_PACKAGED_TGVOIP=ON" + # - Sources (problem: there are no stable releases!): + # - desktop-app (tdesktop): https://github.com/desktop-app/rlottie + # - upstream: https://github.com/Samsung/rlottie + # libtgvoip: + # - CMake flag: "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON" + # - Sources (problem: the stable releases might be too old!): + # - tdesktop: https://github.com/telegramdesktop/libtgvoip + # - upstream: https://github.com/grishka/libtgvoip + # Both of these packages are included in this PR (kotatogram-desktop): + # https://github.com/NixOS/nixpkgs/pull/75210 + # TODO: Package mapbox-variant + + postFixup = '' + # This is necessary to run Telegram in a pure environment. + # We also use gappsWrapperArgs from wrapGAppsHook. + wrapProgram $out/bin/telegram-desktop \ + "''${gappsWrapperArgs[@]}" \ + "''${qtWrapperArgs[@]}" \ + --prefix PATH : ${xdg-utils}/bin \ + --set XDG_RUNTIME_DIR "XDG-RUNTIME-DIR" + sed -i $out/bin/telegram-desktop \ + -e "s,'XDG-RUNTIME-DIR',\"\''${XDG_RUNTIME_DIR:-/run/user/\$(id --user)}\"," + ''; + + passthru = { + inherit tg_owt; + updateScript = ./update.py; + }; + + meta = { + description = "Telegram Desktop messaging app"; + longDescription = '' + Desktop client for the Telegram messenger, based on the Telegram API and + the MTProto secure protocol. + ''; + license = licenses.gpl3; + platforms = platforms.linux; + homepage = "https://desktop.telegram.org/"; + changelog = "https://github.com/telegramdesktop/tdesktop/releases/tag/v{version}"; + maintainers = with maintainers; [ primeos abbradar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix new file mode 100644 index 000000000000..46076bca68c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch +, pkg-config, cmake, ninja, yasm +, libjpeg, openssl, libopus, ffmpeg, alsa-lib, libpulseaudio, protobuf +, xorg, libXtst, libXcomposite, libXdamage, libXext, libXrender, libXrandr +, glib, abseil-cpp, pcre, util-linuxMinimal, libselinux, libsepol, pipewire +, libXi +}: + +stdenv.mkDerivation { + pname = "tg_owt"; + version = "unstable-2021-06-27"; + + src = fetchFromGitHub { + owner = "desktop-app"; + repo = "tg_owt"; + rev = "91d836dc84a16584c6ac52b36c04c0de504d9c34"; + sha256 = "1ir4svv5mijpzr0rmx65088iikck83vhcdqrpf9dnk6yp4j9v4v2"; + fetchSubmodules = true; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkg-config cmake ninja yasm ]; + + buildInputs = [ + libjpeg openssl libopus ffmpeg alsa-lib libpulseaudio protobuf + xorg.libX11 libXtst libXcomposite libXdamage libXext libXrender libXrandr + glib abseil-cpp pcre util-linuxMinimal libselinux libsepol pipewire + libXi + ]; + + cmakeFlags = [ + # Building as a shared library isn't officially supported and currently broken: + "-DBUILD_SHARED_LIBS=OFF" + ]; + + meta.license = lib.licenses.bsd3; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py new file mode 100755 index 000000000000..8f39533e2986 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py @@ -0,0 +1,77 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python3 -p python3 nix nix-prefetch-git + +import fileinput +import json +import os +import re +import subprocess + +from datetime import datetime +from urllib.request import urlopen, Request + + +DIR = os.path.dirname(os.path.abspath(__file__)) +HEADERS = {'Accept': 'application/vnd.github.v3+json'} + + +def github_api_request(endpoint): + base_url = 'https://api.github.com/' + request = Request(base_url + endpoint, headers=HEADERS) + with urlopen(request) as http_response: + return json.loads(http_response.read().decode('utf-8')) + + +def get_commit_date(repo, sha): + url = f'https://api.github.com/repos/{repo}/commits/{sha}' + request = Request(url, headers=HEADERS) + with urlopen(request) as http_response: + commit = json.loads(http_response.read().decode()) + date = commit['commit']['committer']['date'].rstrip('Z') + date = datetime.fromisoformat(date).date().isoformat() + return 'unstable-' + date + + +def nix_prefetch_git(url, rev): + """Prefetches the requested Git revision (incl. submodules) of the given repository URL.""" + print(f'nix-prefetch-git {url} {rev}') + out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev, '--fetch-submodules']) + return json.loads(out)['sha256'] + + +def nix_prefetch_url(url, unpack=False): + """Prefetches the content of the given URL.""" + print(f'nix-prefetch-url {url}') + options = ['--type', 'sha256'] + if unpack: + options += ['--unpack'] + out = subprocess.check_output(['nix-prefetch-url'] + options + [url]) + return out.decode('utf-8').rstrip() + + +def update_file(relpath, version, sha256, rev=None): + file_path = os.path.join(DIR, relpath) + with fileinput.FileInput(file_path, inplace=True) as f: + for line in f: + result = line + result = re.sub(r'^ version = ".+";', f' version = "{version}";', result) + result = re.sub(r'^ sha256 = ".+";', f' sha256 = "{sha256}";', result) + if rev: + result = re.sub(r'^ rev = ".*";', f' rev = "{rev}";', result) + print(result, end='') + + +if __name__ == "__main__": + tdesktop_tag = github_api_request('repos/telegramdesktop/tdesktop/releases/latest')['tag_name'] + tdesktop_version = tdesktop_tag.lstrip('v') + tdesktop_hash = nix_prefetch_git('https://github.com/telegramdesktop/tdesktop.git', tdesktop_tag) + update_file('default.nix', tdesktop_version, tdesktop_hash) + tg_owt_ref = github_api_request('repos/desktop-app/tg_owt/commits/master')['sha'] + tg_owt_version = get_commit_date('desktop-app/tg_owt', tg_owt_ref) + tg_owt_hash = nix_prefetch_git('https://github.com/desktop-app/tg_owt.git', tg_owt_ref) + update_file('tg_owt.nix', tg_owt_version, tg_owt_hash, tg_owt_ref) + tg_owt_ref = github_api_request('repos/desktop-app/tg_owt/commits/master')['sha'] + libtgvoip_ref = github_api_request(f'repos/telegramdesktop/tdesktop/contents/Telegram/ThirdParty/libtgvoip?ref={tdesktop_tag}')['sha'] + libtgvoip_version = get_commit_date('telegramdesktop/libtgvoip', libtgvoip_ref) + libtgvoip_hash = nix_prefetch_url(f'https://github.com/telegramdesktop/libtgvoip/archive/{libtgvoip_ref}.tar.gz', unpack=True) + update_file('../../../../../development/libraries/libtgvoip/default.nix', libtgvoip_version, libtgvoip_hash, libtgvoip_ref) diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix new file mode 100644 index 000000000000..deb01f1ef220 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchurl, pkg-config, libxslt, telepathy-glib, python2, libxml2, dbus-glib, dbus +, sqlite, libsoup, libnice, gnutls}: + +stdenv.mkDerivation rec { + name = "telepathy-gabble-0.18.4"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/telepathy-gabble/${name}.tar.gz"; + sha256 = "174nlkqm055vrhv11gy73m20jbsggcb0ddi51c7s9m3j5ibr2p0i"; + }; + + nativeBuildInputs = [ pkg-config libxslt ]; + buildInputs = [ libxml2 dbus-glib sqlite libsoup libnice telepathy-glib gnutls python2 ]; + + checkInputs = [ dbus.daemon ]; + + configureFlags = [ "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" ]; + + enableParallelBuilding = true; + doCheck = true; + + meta = with lib; { + homepage = "https://telepathy.freedesktop.org/components/telepathy-gabble/"; + description = "Jabber/XMPP connection manager for the Telepathy framework"; + license = licenses.lgpl21Plus; + platforms = lib.platforms.gnu ++ lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix new file mode 100644 index 000000000000..11acf05c19e9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, fetchpatch, pidgin, telepathy-glib, python2, glib, dbus-glib, pkg-config, libxslt }: + +stdenv.mkDerivation rec { + pname = "telepathy-haze"; + name = "${pname}-0.8.0"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz"; + sha256 = "1jgrp32p6rllj089ynbsk3n9xrvsvzmwzhf0ql05kkgj0nf08xiy"; + }; + + buildInputs = [ glib telepathy-glib dbus-glib pidgin python2 ]; + + nativeBuildInputs = [ pkg-config libxslt ]; + + patches = [ + # Patch from Gentoo that helps telepathy-haze build with more + # recent versions of pidgin. + (fetchpatch { + url = "https://raw.githubusercontent.com/gentoo/gentoo/master/net-voip/telepathy-haze/files/telepathy-haze-0.8.0-pidgin-2.10.12-compat.patch"; + sha256 = "0fa1p4n1559qd096w7ya4kvfnc1c98ykarkxzlpkwvzbczwzng3c"; + }) + ]; + + meta = { + description = "A Telepathy connection manager based on libpurple"; + platforms = lib.platforms.gnu ++ lib.platforms.linux; # Random choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix new file mode 100644 index 000000000000..fe7ef49cd0d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchurl, glib, dconf, pkg-config, dbus-glib, telepathy-glib, python2, libxslt, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "telepathy-idle"; + version = "0.2.0"; + + src = fetchurl { + url = "http://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz"; + sha256 = "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + buildInputs = [ glib telepathy-glib dbus-glib libxslt python2 (lib.getLib dconf) ]; + + preFixup = '' + wrapProgram "$out/libexec/telepathy-idle" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" + ''; + + meta = { + description = "IRC connection manager for the Telepathy framework"; + license = lib.licenses.lgpl21; + platforms = lib.platforms.gnu ++ lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix new file mode 100644 index 000000000000..a6b1a5256f46 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, python2, pkg-config +, dconf, makeWrapper, intltool, libxslt, gobject-introspection, dbus }: + +stdenv.mkDerivation rec { + project = "telepathy-logger"; + name = "${project}-0.8.2"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${project}/${name}.tar.bz2"; + sha256 = "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"; + }; + + nativeBuildInputs = [ + makeWrapper pkg-config intltool libxslt gobject-introspection + ]; + buildInputs = [ + dbus-glib libxml2 sqlite telepathy-glib + dbus python2 + ]; + + configureFlags = [ "--enable-call" ]; + + preFixup = '' + wrapProgram "$out/libexec/telepathy-logger" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with lib; { + description = "Logger service for Telepathy framework"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-logger/"; + license = licenses.lgpl21; + maintainers = with maintainers; [ jtojnar ]; + platforms = platforms.gnu ++ platforms.linux; # Arbitrary choice + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix new file mode 100644 index 000000000000..8464619f1e73 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, dconf +, telepathy-glib +, python3 +, libxslt +, makeWrapper +}: + +stdenv.mkDerivation rec { + pname = "telepathy-mission-control"; + version = "5.16.6"; + + outputs = [ "out" "lib" "dev" ]; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${pname}-${version}.tar.gz"; + sha256 = "0ibs575pfr0wmhfcw6ln6iz7gw2y45l3bah11rksf6g9jlwsxy1d"; + }; + + buildInputs = [ + python3 + ]; # ToDo: optional stuff missing + + nativeBuildInputs = [ + pkg-config + libxslt + makeWrapper + ]; + + propagatedBuildInputs = [ + telepathy-glib + ]; + + doCheck = true; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$lib/libexec/mission-control-5" \ + --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with lib; { + description = "An account manager and channel dispatcher for the Telepathy framework"; + homepage = "https://telepathy.freedesktop.org/components/telepathy-mission-control/"; + license = licenses.lgpl21Only; + maintainers = with maintainers; [ jtojnar ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix new file mode 100644 index 000000000000..38ee5579b5a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchurl, libxslt, glib, libxml2, telepathy-glib, python2, avahi, libsoup +, libuuid, openssl, pcre, sqlite, pkg-config }: + +stdenv.mkDerivation rec { + pname = "telepathy-salut"; + name = "${pname}-0.8.1"; + + src = fetchurl { + url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz"; + sha256 = "13k112vrr3zghzr03pnbqc1id65qvpj0sn0virlbf4dmr2511fbh"; + }; + + # pcre needed because https://github.com/NixOS/nixpkgs/pull/15046 + buildInputs = [ glib libxml2 telepathy-glib avahi libsoup libuuid openssl + sqlite pcre python2 ]; + + nativeBuildInputs = [ libxslt pkg-config ]; + + configureFlags = [ "--disable-avahi-tests" ]; + + meta = with lib; { + description = "Link-local XMPP connection manager for Telepathy"; + platforms = platforms.gnu ++ platforms.linux; # Random choice + maintainers = [ ]; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix new file mode 100644 index 000000000000..3969627a67a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix @@ -0,0 +1,65 @@ +{ mkDerivation, lib, stdenv, fetchgit, qtbase, qtquickcontrols, qmake +, makeDesktopItem }: + +# we now have libqmatrixclient so a future version of tensor that supports it +# should use that + +mkDerivation rec { + pname = "tensor-git"; + version = "2017-02-21"; + + src = fetchgit { + url = "https://github.com/davidar/tensor.git"; + rev = "f3f3056d770d7fb4a21c610cee7936ee900569f5"; + sha256 = "19in8c7a2hxsx2c4lj540w5c3pn1882645m21l91mcriynqr67k9"; + fetchSubmodules = true; + }; + + enableParallelBuilding = true; + + buildInputs = [ qtbase qtquickcontrols ]; + nativeBuildInputs = [ qmake ]; + + desktopItem = makeDesktopItem { + name = "tensor"; + exec = "@bin@"; + icon = "tensor.png"; + comment = meta.description; + desktopName = "Tensor Matrix Client"; + genericName = meta.description; + categories = "Chat;Utility"; + mimeType = "application/x-chat"; + }; + + installPhase = if stdenv.isDarwin then '' + runHook preInstall + + mkdir -p $out/Applications + cp -r tensor.app $out/Applications/tensor.app + wrapQtApp $out/Applications/tensor.app/Contents/MacOS/tensor + + runHook postInstall + '' else '' + runHook preInstall + + install -Dm755 tensor $out/bin/tensor + install -Dm644 client/logo.png \ + $out/share/icons/hicolor/512x512/apps/tensor.png + install -Dm644 ${desktopItem}/share/applications/tensor.desktop \ + $out/share/applications/tensor.desktop + + substituteInPlace $out/share/applications/tensor.desktop \ + --subst-var-by bin $out/bin/tensor + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://matrix.org/docs/projects/client/tensor.html"; + description = "Cross-platform Qt5/QML-based Matrix client"; + license = licenses.gpl3; + maintainers = with maintainers; [ peterhoeg ]; + inherit (qtbase.meta) platforms; + inherit version; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix new file mode 100644 index 000000000000..4a1ffef292f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchFromGitHub, python, unzip, wxPython, wrapPython, 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 = [ python wxPython wrapPython ]; + pythonPath = [ 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 ${python}/bin/python $out/bin/torchat \ + --set PYTHONPATH $out/lib/torchat:$program_PYTHONPATH \ + --run "cd $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 = [ maintainers.phreedom ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix new file mode 100644 index 000000000000..fc6c78a4f673 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, libsodium, ncurses, curl +, libtoxcore, openal, libvpx, freealut, libconfig, pkg-config, libopus +, qrencode, gdk-pixbuf, libnotify }: + +stdenv.mkDerivation rec { + pname = "toxic"; + version = "0.10.1"; + + src = fetchFromGitHub { + owner = "Tox"; + repo = "toxic"; + rev = "v${version}"; + sha256 = "sha256-EElDi/VEYgYPpoDNatxcKQC1pnCU8kOcj0bAFojD9fU="; + }; + + makeFlags = [ "PREFIX=$(out)"]; + installFlags = [ "PREFIX=$(out)"]; + + buildInputs = [ + libtoxcore libsodium ncurses curl gdk-pixbuf libnotify + ] ++ lib.optionals (!stdenv.isAarch32) [ + openal libopus libvpx freealut qrencode + ]; + nativeBuildInputs = [ pkg-config libconfig ]; + + meta = with lib; { + description = "Reference CLI for Tox"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix new file mode 100644 index 000000000000..256e026a060e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix @@ -0,0 +1,54 @@ +{ lib, fetchpatch, python3Packages }: + +with lib; +with python3Packages; + +buildPythonPackage rec { + pname = "turses"; + version = "0.3.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6"; + }; + + checkInputs = [ mock pytest coverage tox ]; + propagatedBuildInputs = [ urwid tweepy future ]; + + LC_ALL = "en_US.UTF-8"; + + patches = [ + (fetchpatch { + url = "https://github.com/louipc/turses/commit/be0961b51f502d49fd9e2e5253ac130e543a31c7.patch"; + sha256 = "17s1n0275mcj03vkf3n39dmc09niwv4y7ssrfk7k3vqx22kppzg3"; + }) + # python 3.7+ support + (fetchpatch { + url = "https://github.com/booxter/turses/commit/e6e285eae50fc3d2042a476185fe60daef1e758e.patch"; + sha256 = "0g2zsrny955viwgs2l6gpiiz8m67b5sgdcxkjmfimfvvih5sg79f"; + }) + ]; + + checkPhase = '' + TMP_TURSES=`echo turses-$RANDOM` + mkdir $TMP_TURSES + PYTHONPATH=tests:$PYTHONPATH HOME=$TMP_TURSES py.test tests/ + rm -rf $TMP_TURSES + ''; + + postPatch = '' + sed -i -e 's|urwid==1.3.0|urwid==${getVersion urwid}|' setup.py + sed -i -e "s|future==0.14.3|future==${getVersion future}|" setup.py + sed -i -e "s|tweepy==3.3.0|tweepy==${getVersion tweepy}|" setup.py + sed -i -e "s|config.generate_config_file.assert_called_once()|assert config.generate_config_file.call_count == 1|" tests/test_config.py + sed -i -e "s|self.observer.update.assert_called_once()|assert self.observer.update.call_count == 1|" tests/test_meta.py + ''; + + meta = with lib; { + homepage = "https://github.com/louipc/turses"; + description = "A Twitter client for the console"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix new file mode 100644 index 000000000000..01c83ba7b1cc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twinkle/default.nix @@ -0,0 +1,84 @@ +{ lib +, fetchFromGitHub +, cmake +, libxml2 +, libsndfile +, file +, readline +, bison +, flex +, ucommon +, ccrtp +, qtbase +, qttools +, qtquickcontrols2 +, alsa-lib +, speex +, ilbc +, fetchurl +, mkDerivation +, bcg729 +}: + +mkDerivation rec { + pname = "twinkle"; + version = "1.10.2"; + + src = fetchFromGitHub { + repo = pname; + owner = "LubosD"; + rev = "v${version}"; + sha256 = "0s0gi03xwvzp02ah4q6j33r9jx9nbayr6dxlg2ck9pwbay1nq1hx"; + }; + + buildInputs = [ + libxml2 + file # libmagic + libsndfile + readline + ucommon + ccrtp + qtbase + qttools + qtquickcontrols2 + alsa-lib + speex + ilbc + ]; + + patches = [ + # patch for bcg729 1.0.2+ + (fetchurl { # https://github.com/LubosD/twinkle/pull/152 + url = "https://github.com/LubosD/twinkle/compare/05082ae12051821b1d969e6672d9e4e5afe1bc07...7a6c533cda387652b5b4cb2a867be1a18585890c.patch"; + sha256 = "39fc6cef3e88cfca8db44612b2d082fb618027b0f99509138d3c0d2777a494c2"; + }) + # patch manual link to not link to old url, which now points to NSFW page + (fetchurl { # https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07 + url = "https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07.diff"; + sha256 = "1iamragr9wp2vczsnp6n261fpr1ai2nc2abp0228jlar9zafksw0"; + }) + ]; + + nativeBuildInputs = [ + cmake + bison + flex + bcg729 + ]; + + cmakeFlags = [ + "-DWITH_G729=On" + "-DWITH_SPEEX=On" + "-DWITH_ILBC=On" + /* "-DWITH_DIAMONDCARD=On" seems ancient and broken */ + ]; + + meta = with lib; { + changelog = "https://github.com/LubosD/twinkle/blob/${version}/NEWS"; + description = "A SIP-based VoIP client"; + homepage = "http://twinkle.dolezel.info/"; + license = licenses.gpl2Plus; + maintainers = [ maintainers.mkg20001 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix new file mode 100644 index 000000000000..e5a2c201d873 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchFromGitHub, check, cmake, pkg-config +, libtoxcore, filter-audio, dbus, libvpx, libX11, openal, freetype, libv4l +, libXrender, fontconfig, libXext, libXft, libsodium, libopus }: + +stdenv.mkDerivation rec { + pname = "utox"; + + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "uTox"; + repo = "uTox"; + rev = "v${version}"; + sha256 = "12wbq883il7ikldayh8hm0cjfrkp45vn05xx9s1jbfz6gmkidyar"; + fetchSubmodules = true; + }; + + buildInputs = [ + libtoxcore dbus libvpx libX11 openal freetype + libv4l libXrender fontconfig libXext libXft filter-audio + libsodium libopus + ]; + + nativeBuildInputs = [ + cmake pkg-config + ]; + + cmakeFlags = [ + "-DENABLE_AUTOUPDATE=OFF" + "-DENABLE_TESTS=${if doCheck then "ON" else "OFF"}" + ]; + + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + checkInputs = [ check ]; + + meta = with lib; { + description = "Lightweight Tox client"; + homepage = "https://github.com/uTox/uTox"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix new file mode 100644 index 000000000000..0fc7e8b6d8ee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub + , qt4, qmake4Hook, openssl + , xorgproto, libX11, libXScrnSaver + , xz, zlib +}: +stdenv.mkDerivation { + pname = "vacuum-im"; + version = "1.3.0.20160104"; + + src = fetchFromGitHub { + owner = "Vacuum-IM"; + repo = "vacuum-im"; + rev = "1.3.0.20160104-Alpha"; + sha256 = "1jcw9c7s75y4c3m4skfc3cc0i519z39b23n997vj5mwcjplxyc76"; + }; + + buildInputs = [ + qt4 openssl xorgproto libX11 libXScrnSaver xz zlib + ]; + + # hack: needed to fix build issues in + # https://hydra.nixos.org/build/38322959/nixlog/1 + # should be an upstream issue but it's easy to fix + NIX_LDFLAGS = "-lz"; + + nativeBuildInputs = [ qmake4Hook ]; + + preConfigure = '' + qmakeFlags="$qmakeFlags INSTALL_PREFIX=$out" + ''; + + hardeningDisable = [ "format" ]; + + meta = with lib; { + description = "An XMPP client fully composed of plugins"; + maintainers = [ maintainers.raskin ]; + platforms = platforms.linux; + license = licenses.gpl3; + homepage = "http://www.vacuum-im.org"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix new file mode 100644 index 000000000000..66d33533a736 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix @@ -0,0 +1,108 @@ +{fetchurl, lib, stdenv, dpkg, makeWrapper, + alsa-lib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, + harfbuzz, libcap, libGL, libGLU, libpulseaudio, libxkbcommon, libxml2, libxslt, + nspr, nss, openssl, systemd, wayland, xorg, zlib, ... +}: + +stdenv.mkDerivation { + pname = "viber"; + version = "13.3.1.22"; + + src = fetchurl { + # Official link: https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb + url = "http://web.archive.org/web/20210602004133/https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb"; + sha256 = "0rs26x0lycavybn6k1hbb5kzms0zzcmxlrmi4g8k7vyafj6s8dqh"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ dpkg ]; + + dontUnpack = true; + + libPath = lib.makeLibraryPath [ + alsa-lib + cups + curl + dbus + expat + fontconfig + freetype + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + harfbuzz + libcap + libGLU libGL + libpulseaudio + libxkbcommon + libxml2 + libxslt + nspr + nss + openssl + stdenv.cc.cc + systemd + wayland + zlib + + xorg.libICE + xorg.libSM + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXScrnSaver + xorg.libXtst + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + ] + ; + + installPhase = '' + dpkg-deb -x $src $out + mkdir -p $out/bin + + # Soothe nix-build "suspicions" + chmod -R g-w $out + + for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true + patchelf --set-rpath $libPath:$out/opt/viber/lib $file || true + done + + # qt.conf is not working, so override everything using environment variables + wrapProgram $out/opt/viber/Viber \ + --set QT_PLUGIN_PATH "$out/opt/viber/plugins" \ + --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \ + --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" + ln -s $out/opt/viber/Viber $out/bin/viber + + mv $out/usr/share $out/share + rm -rf $out/usr + + # Fix the desktop link + substituteInPlace $out/share/applications/viber.desktop \ + --replace /opt/viber/Viber $out/opt/viber/Viber \ + --replace /usr/share/ $out/share/ + ''; + + dontStrip = true; + dontPatchELF = true; + + meta = { + homepage = "http://www.viber.com"; + description = "An instant messaging and Voice over IP (VoIP) app"; + license = lib.licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with lib.maintainers; [ jagajaga ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix new file mode 100644 index 000000000000..51b119aa6de5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix @@ -0,0 +1,73 @@ +{ stdenv, lib, fetchurl, rpmextract, undmg, autoPatchelfHook +, xorg, gtk3, gnome2, nss, alsa-lib, udev, libnotify +, wrapGAppsHook }: + +let + pname = "vk-messenger"; + version = "5.2.3"; + + src = { + i686-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm"; + sha256 = "09zi2rzsank6lhw1z9yar1rp634y6qskvr2i0rvqg2fij7cy6w19"; + }; + x86_64-linux = fetchurl { + url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm"; + sha256 = "1m6saanpv1k5wc5s58jpf0wsgjsj7haabx8nycm1fjyhky1chirb"; + }; + x86_64-darwin = fetchurl { + url = "https://web.archive.org/web/20210310071550/https://desktop.userapi.com/mac/master/vk.dmg"; + sha256 = "0j5qsr0fyl55d0x46xm4h2ykwr4y9z1dsllhqx5lnc15nc051s9b"; + }; + }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); + + meta = with lib; { + description = "Simple and Convenient Messaging App for VK"; + homepage = "https://vk.com/messenger"; + license = licenses.unfree; + maintainers = [ ]; + platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"]; + }; + + linux = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ rpmextract autoPatchelfHook wrapGAppsHook ]; + buildInputs = (with xorg; [ + libXdamage libXtst libXScrnSaver libxkbfile + ]) ++ [ gtk3 nss alsa-lib ]; + + runtimeDependencies = [ (lib.getLib udev) libnotify ]; + + unpackPhase = '' + rpmextract $src + ''; + + buildPhase = '' + substituteInPlace usr/share/applications/vk.desktop \ + --replace /usr/share/pixmaps/vk.png vk + ''; + + installPhase = '' + mkdir $out + cd usr + cp -r --parents bin $out + cp -r --parents share/vk $out + cp -r --parents share/applications $out + cp -r --parents share/pixmaps $out + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications + cp -r *.app $out/Applications + ''; + }; +in if stdenv.isDarwin then darwin else linux diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix new file mode 100644 index 000000000000..371ac91120b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix @@ -0,0 +1,68 @@ +{ alsa-lib, autoPatchelfHook, fetchurl, gtk3, libnotify +, makeDesktopItem, makeWrapper, nss, lib, stdenv, udev, xdg-utils +, xorg +}: + +with lib; + +let + bits = "x86_64"; + + version = "4.11.3"; + + desktopItem = makeDesktopItem rec { + name = "Wavebox"; + exec = "wavebox"; + icon = "wavebox"; + desktopName = name; + genericName = name; + categories = "Network;"; + }; + + tarball = "Wavebox_${replaceStrings ["."] ["_"] (toString version)}_linux_${bits}.tar.gz"; + +in stdenv.mkDerivation { + pname = "wavebox"; + inherit version; + src = fetchurl { + url = "https://github.com/wavebox/waveboxapp/releases/download/v${version}/${tarball}"; + sha256 = "0z04071lq9bfyrlg034fmvd4346swgfhxbmsnl12m7c2m2b9z784"; + }; + + # don't remove runtime deps + dontPatchELF = true; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; + + buildInputs = with xorg; [ + libXdmcp libXScrnSaver libXtst + ] ++ [ + alsa-lib gtk3 nss + ]; + + runtimeDependencies = [ (getLib udev) libnotify ]; + + installPhase = '' + mkdir -p $out/bin $out/opt/wavebox + cp -r * $out/opt/wavebox + + # provide desktop item and icon + mkdir -p $out/share/applications $out/share/pixmaps + ln -s ${desktopItem}/share/applications/* $out/share/applications + ln -s $out/opt/wavebox/Wavebox-linux-x64/wavebox_icon.png $out/share/pixmaps/wavebox.png + ''; + + postFixup = '' + makeWrapper $out/opt/wavebox/Wavebox $out/bin/wavebox \ + --prefix PATH : ${xdg-utils}/bin + ''; + + meta = with lib; { + description = "Wavebox messaging application"; + homepage = "https://wavebox.io"; + license = licenses.mpl20; + maintainers = with maintainers; [ rawkode ]; + platforms = ["x86_64-linux"]; + hydraPlatforms = []; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix new file mode 100644 index 000000000000..46215db3eb56 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix @@ -0,0 +1,38 @@ +{ fetchFromGitHub, lib, stdenv, gnome, cmake, pkg-config, + libappindicator-gtk3, gst_all_1, pcre }: + +stdenv.mkDerivation rec { + pname = "whatsapp-for-linux"; + version = "1.1.5"; + + src = fetchFromGitHub { + owner = "eneshecan"; + repo = pname; + rev = "v${version}"; + sha256 = "1gzahls4givd2kbjdwx6yb3jv7a3r1krw40qihiz7hkamkrpaiaz"; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + gnome.gtkmm + gnome.webkitgtk + libappindicator-gtk3 + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-libav + pcre + ]; + + meta = with lib; { + homepage = "https://github.com/eneshecan/whatsapp-for-linux"; + description = "Whatsapp desktop messaging app"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ bartuka ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix new file mode 100644 index 000000000000..fc8fbdcede3d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix @@ -0,0 +1,175 @@ +{ atomEnv +, autoPatchelfHook +, dpkg +, fetchurl +, makeDesktopItem +, makeWrapper +, stdenv +, lib +, udev +, wrapGAppsHook +, cpio +, xar +, libdbusmenu +}: + +let + + inherit (stdenv.hostPlatform) system; + + throwSystem = throw "Unsupported system: ${system}"; + + pname = "wire-desktop"; + + version = { + x86_64-darwin = "3.26.4145"; + x86_64-linux = "3.26.2941"; + }.${system} or throwSystem; + + sha256 = { + x86_64-darwin = "1ck74a9z2mrwmljrqm347bqhjiaf1v0bf1jfnp58cqngh5ygqnf2"; + x86_64-linux = "01gy84gr0gw5ap7hpy72azaf6hlzac7vxkn5cgad5sfbyzxgjgc9"; + }.${system} or throwSystem; + + meta = with lib; { + description = "A modern, secure messenger for everyone"; + longDescription = '' + Wire Personal is a secure, privacy-friendly messenger. It combines useful + and fun features, audited security, and a beautiful, distinct user + interface. It does not require a phone number to register and chat. + + * End-to-end encrypted chats, calls, and files + * Crystal clear voice and video calling + * File and screen sharing + * Timed messages and chats + * Synced across your phone, desktop and tablet + ''; + homepage = "https://wire.com/"; + downloadPage = "https://wire.com/download/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ + arianvp + kiwi + toonn + ]; + platforms = [ + "x86_64-darwin" + "x86_64-linux" + ]; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version meta; + + src = fetchurl { + url = "https://wire-app.wire.com/linux/debian/pool/main/" + + "Wire-${version}_amd64.deb"; + inherit sha256; + }; + + desktopItem = makeDesktopItem { + categories = "Network;InstantMessaging;Chat;VideoConference"; + comment = "Secure messenger for everyone"; + desktopName = "Wire"; + exec = "wire-desktop %U"; + genericName = "Secure messenger"; + icon = "wire-desktop"; + name = "wire-desktop"; + extraEntries = '' + StartupWMClass=Wire + ''; + }; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + dontWrapGApps = true; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + wrapGAppsHook + ]; + + buildInputs = atomEnv.packages; + + unpackPhase = '' + runHook preUnpack + + dpkg-deb -x $src . + + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" + cp -R "opt" "$out" + cp -R "usr/share" "$out/share" + chmod -R g-w "$out" + + # Desktop file + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* "$out/share/applications" + + runHook postInstall + ''; + + runtimeDependencies = [ + (lib.getLib udev) + libdbusmenu + ]; + + postFixup = '' + makeWrapper $out/opt/Wire/wire-desktop $out/bin/wire-desktop \ + "''${gappsWrapperArgs[@]}" + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version meta; + + src = fetchurl { + url = "https://github.com/wireapp/wire-desktop/releases/download/" + + "macos%2F${version}/Wire.pkg"; + inherit sha256; + }; + + buildInputs = [ + cpio + xar + ]; + + unpackPhase = '' + runHook preUnpack + + xar -xf $src + cd com.wearezeta.zclient.mac.pkg + + runHook postUnpack + ''; + + buildPhase = '' + runHook preBuild + + cat Payload | gunzip -dc | cpio -i + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -r Wire.app $out/Applications + + runHook postInstall + ''; + }; + +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix new file mode 100644 index 000000000000..4367230f7756 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "xmpp-client"; + version = "20160916-${lib.strings.substring 0 7 rev}"; + rev = "abbf9020393e8caae3e8996a16ce48446e31cf0e"; + + goPackagePath = "github.com/agl/xmpp-client"; + + src = fetchFromGitHub { + owner = "agl"; + repo = "xmpp-client"; + inherit rev; + sha256 = "0j9mfr208cachzm39i8b94v5qk9hws278vv2ms9ma4wn16wns81s"; + }; + + goDeps = ./deps.nix; + + meta = with lib; { + description = "An XMPP client with OTR support"; + homepage = "https://github.com/agl/xmpp-client"; + license = licenses.bsd3; + maintainers = with maintainers; [ codsl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix new file mode 100644 index 000000000000..caa41024fc61 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix @@ -0,0 +1,20 @@ +[ + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4"; + sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6"; + sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa"; + }; + } +] diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix new file mode 100644 index 000000000000..1ccc9fbe6f57 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, ncurses }: + +stdenv.mkDerivation rec { + pname = "ytalk"; + version = "3.3.0"; + + src = fetchurl { + url = "ftp://ftp.ourproject.org/pub/ytalk/${pname}-${version}.tar.gz"; + sha256 = "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf"; + }; + + buildInputs = [ ncurses ]; + + meta = { + homepage = "http://ytalk.ourproject.org"; + description = "A terminal based talk client"; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ taeer ]; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix new file mode 100644 index 000000000000..168465807146 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -0,0 +1,128 @@ +{ stdenv +, lib +, fetchurl +, makeWrapper +# Dynamic libraries +, alsa-lib +, atk +, cairo +, dbus +, libGL +, fontconfig +, freetype +, gtk3 +, gdk-pixbuf +, glib +, pango +, wayland +, xorg +, libxkbcommon +, zlib +# Runtime +, coreutils +, pciutils +, procps +, util-linux +, pulseaudioSupport ? true, libpulseaudio ? null +}: + +assert pulseaudioSupport -> libpulseaudio != null; + +let + version = "5.6.22045.0607"; + srcs = { + x86_64-linux = fetchurl { + url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; + sha256 = "0zdk02zq9apxnfbxwnlda9z8nqkqa1h1javbh9wwj8yy3y3a1lb5"; + }; + }; + + libs = lib.makeLibraryPath ([ + # $ LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH:$PWD ldd zoom | grep 'not found' + alsa-lib + atk + cairo + dbus + libGL + fontconfig + freetype + gtk3 + gdk-pixbuf + glib + pango + stdenv.cc.cc + wayland + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXext + libxkbcommon + xorg.libXrender + zlib + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.libXfixes + xorg.libXtst + ] ++ lib.optional (pulseaudioSupport) libpulseaudio); + +in stdenv.mkDerivation rec { + pname = "zoom"; + inherit version; + src = srcs.${stdenv.hostPlatform.system}; + + dontUnpack = true; + + nativeBuildInputs = [ + makeWrapper + ]; + + installPhase = '' + runHook preInstall + mkdir $out + tar -C $out -xf $src + mv $out/usr/* $out/ + runHook postInstall + ''; + + postFixup = '' + # Desktop File + substituteInPlace $out/share/applications/Zoom.desktop \ + --replace "Exec=/usr/bin/zoom" "Exec=$out/bin/zoom" + + for i in zopen zoom ZoomLauncher; do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zoom/$i + done + + # ZoomLauncher sets LD_LIBRARY_PATH before execing zoom + wrapProgram $out/opt/zoom/zoom \ + --prefix LD_LIBRARY_PATH ":" ${libs} + + rm $out/bin/zoom + # Zoom expects "zopen" executable (needed for web login) to be present in CWD. Or does it expect + # everybody runs Zoom only after cd to Zoom package directory? Anyway, :facepalm: + # Also clear Qt environment variables to prevent + # zoom from tripping over "foreign" Qt ressources. + makeWrapper $out/opt/zoom/ZoomLauncher $out/bin/zoom \ + --run "cd $out/opt/zoom" \ + --unset QML2_IMPORT_PATH \ + --unset QT_PLUGIN_PATH \ + --prefix PATH : ${lib.makeBinPath [ coreutils glib.dev pciutils procps util-linux ]} \ + --prefix LD_LIBRARY_PATH ":" ${libs} + + # Backwards compatiblity: we used to call it zoom-us + ln -s $out/bin/{zoom,zoom-us} + ''; + + # already done + dontPatchELF = true; + + passthru.updateScript = ./update.sh; + + meta = { + homepage = "https://zoom.us/"; + description = "zoom.us video conferencing application"; + license = lib.licenses.unfree; + platforms = builtins.attrNames srcs; + maintainers = with lib.maintainers; [ danbst tadfisher doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh new file mode 100755 index 000000000000..6ef9ec32538f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl pup common-updater-scripts + +set -eu -o pipefail + +version="$(curl -Ls https://zoom.us/download\?os\=linux | \ + pup '.linux-ver-text text{}' | \ + awk -F'[ ().]' '{printf $2"."$3"."$6"."$7"\n"}')" + +update-source-version zoom-us "$version" diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix new file mode 100644 index 000000000000..e97ea7bb65f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix @@ -0,0 +1,53 @@ +{ lib +, python3 +, fetchFromGitHub +, glibcLocales +, libnotify +}: + +python3.pkgs.buildPythonApplication rec { + pname = "zulip-term"; + version = "0.6.0"; + + # no tests on PyPI + src = fetchFromGitHub { + owner = "zulip"; + repo = "zulip-terminal"; + rev = version; + sha256 = "sha256-nlvZaGMVRRCu8PZHxPWjNSxkqhZs0T/tE1js/3pDUFk="; + }; + + patches = [ + ./pytest-executable-name.patch + ]; + + propagatedBuildInputs = with python3.pkgs; [ + urwid + zulip + urwid-readline + beautifulsoup4 + lxml + typing-extensions + python-dateutil + tzlocal + ]; + + checkInputs = [ + glibcLocales + ] ++ (with python3.pkgs; [ + pytestCheckHook + pytestcov + pytest-mock + ]); + + makeWrapperArgs = [ + "--prefix" "PATH" ":" (lib.makeBinPath [ libnotify ]) + ]; + + meta = with lib; { + description = "Zulip's official terminal client"; + homepage = "https://github.com/zulip/zulip-terminal"; + license = licenses.asl20; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch new file mode 100644 index 000000000000..4602a254ab88 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch @@ -0,0 +1,13 @@ +diff --git a/tests/cli/test_run.py b/tests/cli/test_run.py +index 459aa82..c6e434e 100644 +--- a/tests/cli/test_run.py ++++ b/tests/cli/test_run.py +@@ -180,7 +180,7 @@ def test_main_multiple_autohide_options(capsys, options): + assert str(e.value) == "2" + captured = capsys.readouterr() + lines = captured.err.strip('\n') +- lines = lines.split("pytest: ", 1)[1] ++ lines = lines.split("__main__.py: ", 1)[1] + expected = ("error: argument {}: not allowed " + "with argument {}".format(options[1], options[0])) + assert lines == expected diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix new file mode 100644 index 000000000000..a4a1b3405b16 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -0,0 +1,40 @@ +{ lib +, fetchurl +, appimageTools +}: + +let + pname = "zulip"; + version = "5.7.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; + sha256 = "0yfr0n84p3jp8mnnqww2dqpcj9gd7rwpygpq4v10rmrnli18qygw"; + name="${pname}-${version}.AppImage"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 { + inherit name src; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/zulip.desktop $out/share/applications/zulip.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/zulip.png \ + $out/share/icons/hicolor/512x512/apps/zulip.png + substituteInPlace $out/share/applications/zulip.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "Desktop client for Zulip Chat"; + homepage = "https://zulip.com"; + license = licenses.asl20; + maintainers = with maintainers; [ andersk jonafato ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/insync/default.nix b/nixpkgs/pkgs/applications/networking/insync/default.nix new file mode 100644 index 000000000000..380aad6c3291 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/insync/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, makeWrapper, autoPatchelfHook }: + +stdenv.mkDerivation rec { + pname = "insync"; + version = "1.5.7.37371"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + fetchurl { + url = "http://s.insynchq.com/builds/insync-portable_${version}_amd64.tar.bz2"; + sha256 = "1cm3q6y2crw6pcsvh21sbkmh1hin7xl4fyslc96nbyql8rxsky5n"; + } + else + throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}"; + + nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; + + postPatch = '' + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable + ''; + + installPhase = '' + mkdir -p $out/bin + cp -a client $out/client + makeWrapper $out/client/insync-portable $out/bin/insync --set LC_TIME C + ''; + + meta = { + platforms = ["x86_64-linux"]; + license = lib.licenses.unfree; + maintainers = [ lib.maintainers.benley ]; + homepage = "https://www.insynchq.com"; + description = "Google Drive sync and backup with multiple account support"; + longDescription = '' + Insync is a commercial application that syncs your Drive files to your + computer. It has more advanced features than Google's official client + such as multiple account support, Google Doc conversion, symlink support, + and built in sharing. + + There is a 15-day free trial, and it is a paid application after that. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/insync/v3.nix b/nixpkgs/pkgs/applications/networking/insync/v3.nix new file mode 100644 index 000000000000..ad202871b991 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/insync/v3.nix @@ -0,0 +1,83 @@ +{ stdenv +, lib +, fetchurl +, makeWrapper +, dpkg +, glibc +, glib +, libxcb +, libGL +, nss +, libthai +, wayland +, alsa-lib +, qtvirtualkeyboard +, qtwebchannel +, qtwebsockets +, qtlocation +, qtwebengine +, autoPatchelfHook +, wrapQtAppsHook +}: + +stdenv.mkDerivation rec { + pname = "insync"; + version = "3.2.4.40856"; + + src = fetchurl { + url = "http://s.insynchq.com/builds/${pname}_${version}-focal_amd64.deb"; + sha256 = "1bvqbbrfn5784nmb2qaflm1rzczqhvghhb6y5zaxrapyhygxbcis"; + }; + + postPatch = '' + substituteInPlace usr/bin/insync --replace /usr/lib/insync $out/usr/lib/insync + ''; + + buildInputs = [ + alsa-lib + libGL + libthai + libxcb + nss + qtlocation + qtvirtualkeyboard + qtwebchannel + qtwebengine + qtwebsockets + wayland + ]; + + nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper wrapQtAppsHook ]; + + unpackPhase = '' + dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner + ''; + + installPhase = '' + mkdir -p $out/bin $out/lib $out/share + cp -R usr/* $out/ + rm $out/lib/insync/libGLX.so.0 + rm $out/lib/insync/libQt5* + sed -i 's|/usr/lib/insync|/lib/insync|' "$out/bin/insync" + wrapQtApp "$out/lib/insync/insync" + ''; + + dontConfigure = true; + dontBuild = true; + + meta = with lib; { + platforms = ["x86_64-linux"]; + license = licenses.unfree; + maintainers = with maintainers; [ benley ]; + homepage = "https://www.insynchq.com"; + description = "Google Drive sync and backup with multiple account support"; + longDescription = '' + Insync is a commercial application that syncs your Drive files to your + computer. It has more advanced features than Google's official client + such as multiple account support, Google Doc conversion, symlink support, + and built in sharing. + + There is a 15-day free trial, and it is a paid application after that. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix new file mode 100644 index 000000000000..67d45c44868d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ipfs-cluster"; + version = "0.13.1"; + + vendorSha256 = "0ls6d5ijl8bbh48w0i30mwd4a4na93iw9xqpbw23lnb8pvskaggh"; + + patches = [ + ./test.patch + ]; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "ipfs-cluster"; + rev = "v${version}"; + sha256 = "0kmsa7cnk88wrplsjysrpg6n0gd0risnhw0kh33jqx0fcg12b7h8"; + }; + + meta = with lib; { + description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons"; + homepage = "https://cluster.ipfs.io/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ jglukasik ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipfs-cluster/test.patch b/nixpkgs/pkgs/applications/networking/ipfs-cluster/test.patch new file mode 100644 index 000000000000..65f10fec8ef1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-cluster/test.patch @@ -0,0 +1,12 @@ +diff --git a/peer_manager_test.go b/peer_manager_test.go +index 521e754..cf0d777 100644 +--- a/peer_manager_test.go ++++ b/peer_manager_test.go +@@ -76,6 +76,7 @@ func clusterAddr(c *Cluster) ma.Multiaddr { + } + + func TestClustersPeerAdd(t *testing.T) { ++ t.Skip("test is disabld by nixos") + ctx := context.Background() + clusters, mocks, boot := peerManagerClusters(t) + defer shutdownClusters(t, clusters, mocks) diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix new file mode 100644 index 000000000000..abc81e213d7d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ipfs-migrator"; + version = "1.7.1"; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "fs-repo-migrations"; + rev = "v${version}"; + sha256 = "sha256-MxEKmoveIpuxBkGGGJHp9T11i3Py8a1fLpF0fWk0ftg="; + }; + + vendorSha256 = null; + + doCheck = false; + + subPackages = [ "." ]; + + meta = with lib; { + description = "Migrations for the filesystem repository of ipfs clients"; + homepage = "https://ipfs.io/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ elitak ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix new file mode 100644 index 000000000000..e96602a54c53 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix @@ -0,0 +1,45 @@ +{ lib, buildGoModule, fetchurl, nixosTests }: + +buildGoModule rec { + pname = "ipfs"; + version = "0.9.0"; + rev = "v${version}"; + + # go-ipfs makes changes to it's source tarball that don't match the git source. + src = fetchurl { + url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz"; + sha256 = "sha256:1fyffnw1d860w7gwm6ijbgrh68297z5bmvww8yqfshm3xgvcs6bf"; + }; + + # tarball contains multiple files/directories + postUnpack = '' + mkdir ipfs-src + shopt -s extglob + mv !(ipfs-src) ipfs-src || true + cd ipfs-src + ''; + + sourceRoot = "."; + + subPackages = [ "cmd/ipfs" ]; + + passthru.tests.ipfs = nixosTests.ipfs; + + vendorSha256 = null; + + postInstall = '' + install --mode=444 -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service + install --mode=444 -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket + install --mode=444 -D misc/systemd/ipfs-gateway.socket $out/etc/systemd/system/ipfs-gateway.socket + substituteInPlace $out/etc/systemd/system/ipfs.service \ + --replace /usr/bin/ipfs $out/bin/ipfs + ''; + + meta = with lib; { + description = "A global, versioned, peer-to-peer filesystem"; + homepage = "https://ipfs.io/"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ fpletz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ipget/default.nix b/nixpkgs/pkgs/applications/networking/ipget/default.nix new file mode 100644 index 000000000000..8817d90dd6ed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ipget/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ipget"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "ipfs"; + repo = "ipget"; + rev = "v${version}"; + sha256 = "14ygij6hj6bd4g4aw6jgfbi1fgpal0jgf1hr22zxm16dpx3vva6b"; + }; + + vendorSha256 = "0vy21pdqk6q5fw7wlcv51myhh9y79n2qhvy61rmblwhxlrkh6sdv"; + + doCheck = false; + + meta = with lib; { + description = "Retrieve files over IPFS and save them locally"; + homepage = "https://ipfs.io/"; + license = licenses.mit; + maintainers = with maintainers; [ Luflosi ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix b/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix new file mode 100644 index 000000000000..c90fd239267e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchFromGitHub, ncurses }: + +stdenv.mkDerivation rec { + version = "1.2.1"; + pname = "iptraf-ng"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "1f91w1bjaayr6ld95z2q55ny983bb0m05k1jrw2bcddvcihaiqb1"; + }; + + buildInputs = [ ncurses ]; + + makeFlags = [ + "DESTDIR=$(out)" + "prefix=/usr" + "sbindir=/bin" + ]; + + hardeningDisable = [ "format" ]; + + meta = with lib; { + description = "A console-based network monitoring utility (fork of iptraf)"; + longDescription = '' + IPTraf-ng is a console-based network monitoring utility. IPTraf-ng + gathers data like TCP connection packet and byte counts, interface + statistics and activity indicators, TCP/UDP traffic breakdowns, and LAN + station packet and byte counts. IPTraf-ng features include an IP traffic + monitor which shows TCP flag information, packet and byte counts, ICMP + details, OSPF packet types, and oversized IP packet warnings; interface + statistics showing IP, TCP, UDP, ICMP, non-IP and other IP packet counts, + IP checksum errors, interface activity and packet size counts; a TCP and + UDP service monitor showing counts of incoming and outgoing packets for + common TCP and UDP application ports, a LAN statistics module that + discovers active hosts and displays statistics about their activity; TCP, + UDP and other protocol display filters so you can view just the traffic + you want; logging; support for Ethernet, FDDI, ISDN, SLIP, PPP, and + loopback interfaces; and utilization of the built-in raw socket interface + of the Linux kernel, so it can be used on a wide variety of supported + network cards. + ''; + homepage = "https://github.com/iptraf-ng/iptraf-ng"; + license = licenses.gpl2Only; + platforms = platforms.linux; + maintainers = with maintainers; [ devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/iptraf/default.nix b/nixpkgs/pkgs/applications/networking/iptraf/default.nix new file mode 100644 index 000000000000..344af6a03120 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/iptraf/default.nix @@ -0,0 +1,33 @@ +{lib, stdenv, fetchurl, ncurses}: + +stdenv.mkDerivation { + name = "iptraf-3.0.1"; + + src = fetchurl { + url = "ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.1.tar.gz"; + sha256 = "12n059j9iihhpf6spmlaspqzxz3wqan6kkpnhmlj08jdijpnk84m"; + }; + + hardeningDisable = [ "format" ]; + + patchPhase = '' + sed -i -e 's,#include <linux/if_tr.h>,#include <netinet/if_tr.h>,' src/* + ''; + + preConfigure = "cd src"; + + installPhase = '' + mkdir -p $out/bin + cp iptraf $out/bin + ''; + + buildInputs = [ncurses]; + + meta = { + homepage = "http://iptraf.seul.org/"; + license = lib.licenses.gpl2Plus; + description = "Console-based network statistics utility for Linux"; + platforms = lib.platforms.linux; + broken = true; # required isdn headers have been removed from the linux kernel + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/bip/default.nix b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix new file mode 100644 index 000000000000..a7b57aa31028 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchurl, fetchpatch, bison, flex, autoconf, automake, openssl }: + +stdenv.mkDerivation rec { + pname = "bip"; + version = "0.8.9"; + + # fetch sources from debian, because the creator's website provides + # the files only via https but with an untrusted certificate. + src = fetchurl { + url = "mirror://debian/pool/main/b/bip/bip_${version}.orig.tar.gz"; + sha256 = "0q942g9lyd8pjvqimv547n6vik5759r9npw3ws3bdj4ixxqhz59w"; + }; + + buildInputs = [ bison flex autoconf automake openssl ]; + + # includes an important security patch + patches = [ + (fetchpatch { + url = "mirror://gentoo/../gentoo-portage/net-irc/bip/files/bip-freenode.patch"; + sha256 = "05qy7a62p16f5knrsdv2lkhc07al18qq32ciq3k4r0lq1wbahj2y"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/revisions/39414f8ff9df63c8bc2e4eee34f09f829a5bf8f5/diff/src/connection.c?format=diff"; + sha256 = "1hvg58vci6invh0z19wf04jjvnm8w6f6v4c4nk1j5hc3ymxdp1rb"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/87192685f55856d2c28021963ab2c308e21faddc/diff?format=diff"; + sha256 = "0rspzp7q1lq8v0cl0c35xxpgisfk264i648vslgsjax2s0g9svx0"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/814d54c676d5827f6ea37c1cd2d6e846d080c13c/diff?format=diff"; + sha256 = "137l77kmm6p9p4c4kvw2zc4xkr10ayyc9z5rlpwn67574h47v55i"; + }) + (fetchpatch { + url = "https://projects.duckcorp.org/projects/bip/repository/bip/revisions/d2dcb0adb1aa8c2c4526aa6ad650483b0e02ab7d/diff?format=diff"; + sha256 = "1pvywaljdkmy4870xs6gvsk4qwg69h47qr0yjywbcdsfycrgp8aq"; + }) + ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=unused-result -Wno-error=duplicate-decl-specifier"; + + meta = { + description = "An IRC proxy (bouncer)"; + homepage = "http://bip.milkypond.org/"; + license = lib.licenses.gpl2; + downloadPage = "https://projects.duckcorp.org/projects/bip/files"; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix b/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix new file mode 100644 index 000000000000..d2e8e93d8534 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/catgirl/default.nix @@ -0,0 +1,23 @@ +{ ctags, fetchurl, lib, libressl, man, ncurses, pkg-config, stdenv }: + +stdenv.mkDerivation rec { + pname = "catgirl"; + version = "1.8"; + + src = fetchurl { + url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz"; + sha256 = "0svpd2nqsr55ac98vczyhihs6pvgw7chspf6bdlwl98gch39dxif"; + }; + + nativeBuildInputs = [ ctags pkg-config ]; + buildInputs = [ libressl man ncurses ]; + strictDeps = true; + + meta = with lib; { + homepage = "https://git.causal.agency/catgirl/about/"; + license = licenses.gpl3Plus; + description = "A TLS-only terminal IRC client"; + platforms = platforms.unix; + maintainers = with maintainers; [ xfnw ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix new file mode 100644 index 000000000000..ab698ea9c560 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix @@ -0,0 +1,61 @@ +{ fetchgit, libcommuni, qtbase, qmake, lib, stdenv, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "communi"; + version = "3.5.0"; + + src = fetchgit { + url = "https://github.com/communi/communi-desktop.git"; + rev = "v${version}"; + sha256 = "10grskhczh8601s90ikdsbjabgr9ypcp2j7vivjkl456rmg6xbji"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ qmake ] + ++ lib.optional stdenv.isDarwin wrapQtAppsHook; + + buildInputs = [ libcommuni qtbase ]; + + enableParallelBuilding = true; + + dontWrapQtApps = true; + + preConfigure = '' + export QMAKEFEATURES=${libcommuni}/features + ''; + + qmakeFlags = [ + "COMMUNI_INSTALL_PREFIX=${placeholder "out"}" + "COMMUNI_INSTALL_PLUGINS=${placeholder "out"}/lib/communi/plugins" + "COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor" + "COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications" + "COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes" + (if stdenv.isDarwin + then [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/Applications" ] + else [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin" ]) + ]; + + postInstall = if stdenv.isDarwin then '' + # Nix qmake does not add the bundle rpath by default. + install_name_tool \ + -add_rpath @executable_path/../Frameworks \ + $out/Applications/Communi.app/Contents/MacOS/Communi + + wrapQtApp $out/Applications/Communi.app/Contents/MacOS/Communi + '' else '' + substituteInPlace "$out/share/applications/communi.desktop" \ + --replace "/usr/bin" "$out/bin" + ''; + + preFixup = '' + rm -rf lib + ''; + + meta = with lib; { + description = "A simple and elegant cross-platform IRC client"; + homepage = "https://github.com/communi/communi-desktop"; + license = licenses.bsd3; + maintainers = with maintainers; [ hrdinka ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix new file mode 100644 index 000000000000..8ff5c50b8a78 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix @@ -0,0 +1,91 @@ +{ lib, stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang, openssl +, nixosTests +}: + +with lib; + +perlPackages.buildPerlPackage rec { + pname = "convos"; + version = "6.24"; + + src = fetchFromGitHub { + owner = "convos-chat"; + repo = pname; + rev = "v${version}"; + sha256 = "0hrz74fybypkjf9hraknylxrhnz7bhk00pk6wla2wfg8s2798zlx"; + }; + + nativeBuildInputs = [ makeWrapper ] + ++ optional stdenv.isDarwin [ shortenPerlShebang ]; + + buildInputs = with perlPackages; [ + CryptEksblowfish FileHomeDir FileReadBackwards HTTPAcceptLanguage + IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall + Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack + ParseIRC TextMarkdown TimePiece UnicodeUTF8 + CpanelJSONXS EV + ]; + + propagatedBuildInputs = [ openssl ]; + + checkInputs = with perlPackages; [ TestDeep ]; + + postPatch = '' + patchShebangs script/convos + ''; + + preCheck = '' + # Remove online test + # + rm t/web-pwa.t + + # A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in + # the sandbox, we replace the this out from a substitution expression + # + substituteInPlace t/web-register-open-to-public.t \ + --replace '!127.0.0.1!' '!localhost!' + + # A webirc test fails to resolve "localhost" likely due to sandboxing, we + # remove this test. + # + rm t/irc-webirc.t + + # A web-user test fails on Darwin, we remove it. + # + rm t/web-user.t + + # Another web test fails, so we also remove this. + rm t/web-login.t + + # Module::Install is a runtime dependency not covered by the tests, so we add + # a test for it. + # + echo "use Test::More tests => 1;require_ok('Module::Install')" \ + > t/00_nixpkgs_module_install.t + ''; + + # Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME + # which is set to $out + # + postInstall = '' + AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos + mkdir -p $AUTO_SHARE_PATH + cp -vR public assets $AUTO_SHARE_PATH/ + ln -s $AUTO_SHARE_PATH/public/asset $out/asset + cp -vR templates $out/templates + cp cpanfile $out/cpanfile + '' + optionalString stdenv.isDarwin '' + shortenPerlShebang $out/bin/convos + '' + '' + wrapProgram $out/bin/convos --set MOJO_HOME $out + ''; + + passthru.tests = nixosTests.convos; + + meta = { + homepage = "https://convos.chat"; + description = "Convos is the simplest way to use IRC in your browser"; + license = lib.licenses.artistic2; + maintainers = with maintainers; [ sgo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix b/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix new file mode 100644 index 000000000000..9b096eb72e9b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, openssl, ncurses, libiconv, tcl, coreutils, fetchpatch }: + +stdenv.mkDerivation rec { + pname = "epic5"; + version = "2.0.1"; + + src = fetchurl { + url = "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/${pname}-${version}.tar.xz"; + sha256 = "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"; + }; + + # Darwin needs libiconv, tcl; while Linux build don't + buildInputs = [ openssl ncurses ] + ++ lib.optionals stdenv.isDarwin [ libiconv tcl ]; + + patches = [ + (fetchpatch { + url = "https://sources.debian.net/data/main/e/epic5/2.0.1-1/debian/patches/openssl-1.1.patch"; + sha256 = "03bpsyv1sr5icajs2qkdvv8nnn6rz6yvvj7pgiq8gz9sbp6siyfv"; + }) + ]; + + configureFlags = [ "--disable-debug" "--with-ipv6" ]; + + postConfigure = '' + substituteInPlace bsdinstall \ + --replace /bin/cp ${coreutils}/bin/cp \ + --replace /bin/rm ${coreutils}/bin/rm \ + --replace /bin/chmod ${coreutils}/bin/chmod \ + ''; + + meta = with lib; { + homepage = "http://epicsol.org"; + description = "A IRC client that offers a great ircII interface"; + license = licenses.bsd3; + maintainers = []; + }; +} + + + diff --git a/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix b/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix new file mode 100644 index 000000000000..9e1e14dcfbe3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/glowing-bear/default.nix @@ -0,0 +1,27 @@ +{ fetchFromGitHub, lib, stdenv }: + +stdenv.mkDerivation rec { + pname = "glowing-bear"; + version = "0.9.0"; + + src = fetchFromGitHub { + rev = version; + owner = "glowing-bear"; + repo = "glowing-bear"; + sha256 = "0lf0j72m6rwlgqssdxf0m9si99lah08lww7q7i08p5i5lpv6zh2s"; + }; + + installPhase = '' + mkdir $out + cp index.html serviceworker.js webapp.manifest.json $out + cp -R 3rdparty assets css directives js $out + ''; + + meta = with lib; { + description = "A web client for Weechat"; + homepage = "https://github.com/glowing-bear/glowing-bear"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ delroth ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix new file mode 100644 index 000000000000..2a91e3ebddcd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, gtk2, lua, perl, python3 +, pciutils, dbus-glib, libcanberra-gtk2, libproxy +, enchant2, libnotify, openssl, isocodes +, desktop-file-utils +, meson, ninja +}: + +stdenv.mkDerivation rec { + pname = "hexchat"; + version = "2.14.3"; + + src = fetchFromGitHub { + owner = "hexchat"; + repo = "hexchat"; + rev = "v${version}"; + sha256 = "08kvp0dcn3bvmlqcfp9312075bwkqkpa8m7zybr88pfp210gfl85"; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + + buildInputs = [ + gtk2 lua perl python3 pciutils dbus-glib libcanberra-gtk2 libproxy + libnotify openssl desktop-file-utils + isocodes + ]; + + #hexchat and hexchat-text loads enchant spell checking library at run time and so it needs to have route to the path + postPatch = '' + sed -i "s,libenchant-2.so.2,${enchant2}/lib/libenchant-2.so.2,g" src/fe-gtk/sexy-spell-entry.c + sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build + chmod +x meson_post_install.py + for f in meson_post_install.py \ + src/common/make-te.py \ + plugins/perl/generate_header.py \ + po/validate-textevent-translations + do + patchShebangs $f + done + ''; + + mesonFlags = [ "-Dwith-lua=lua" "-Dwith-text=true" ]; + + meta = with lib; { + description = "A popular and easy to use graphical IRC (chat) client"; + homepage = "https://hexchat.github.io/"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/ii/default.nix b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix new file mode 100644 index 000000000000..22d03af0fafb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix @@ -0,0 +1,21 @@ +{lib, stdenv, fetchurl}: + +stdenv.mkDerivation rec { + name = "ii-1.8"; + + src = fetchurl { + url = "https://dl.suckless.org/tools/${name}.tar.gz"; + sha256 = "1lk8vjl7i8dcjh4jkg8h8bkapcbs465sy8g9c0chfqsywbmf3ndr"; + }; + + installPhase = '' + make install PREFIX=$out + ''; + + meta = { + homepage = "https://tools.suckless.org/ii/"; + license = lib.licenses.mit; + description = "Irc it, simple FIFO based irc client"; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix b/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix new file mode 100644 index 000000000000..93ab9f828f64 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix @@ -0,0 +1,38 @@ +{ appimageTools, fetchurl, lib }: + +let + pname = "irccloud"; + version = "0.13.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage"; + sha256 = "0ff69m5jav2c90918avsr5wvik2gds3klij3dzhkb352fgrd1s0l"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; + +in appimageTools.wrapType2 { + inherit name src; + + extraPkgs = pkgs: with pkgs; [ at-spi2-core ]; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \ + $out/share/icons/hicolor/512x512/apps/irccloud.png + substituteInPlace $out/share/applications/irccloud.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "A desktop client for IRCCloud"; + homepage = "https://www.irccloud.com"; + license = licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ lightbulbjim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix b/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix new file mode 100644 index 000000000000..5badc69a3a27 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoPackage +, fetchFromGitHub +}: + +buildGoPackage rec { + pname = "ircdog"; + version = "0.2.1"; + + goPackagePath = "github.com/goshuirc/ircdog"; + + src = fetchFromGitHub { + owner = "goshuirc"; + repo = pname; + rev = "v${version}"; + sha256 = "1ppbznlkv7vajfbimxbyiq5y6pkfhm6ylhl408rwq1bawl28hpkl"; + fetchSubmodules = true; + }; + + meta = with lib; { + description = "ircdog is a simple wrapper over the raw IRC protocol that can respond to pings, and interprets formatting codes"; + homepage = "https://github.com/goshuirc/ircdog"; + license = licenses.isc; + maintainers = with maintainers; [ hexa ]; + }; +} + + diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix new file mode 100644 index 000000000000..7a4fc703dd77 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, pkg-config, ncurses, glib, openssl, perl, libintl, libgcrypt, libotr }: + +stdenv.mkDerivation rec { + pname = "irssi"; + version = "1.2.3"; + + src = fetchurl { + url = "https://github.com/irssi/irssi/releases/download/${version}/${pname}-${version}.tar.gz"; + sha256 = "09cwz5ff1i5lp35qhhmw6kbw5dwcn9pl16gpzkc92xg5sx3bgjr9"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ncurses glib openssl perl libintl libgcrypt libotr ]; + + configureFlags = [ + "--with-proxy" + "--with-bot" + "--with-perl=yes" + "--with-otr=yes" + "--enable-true-color" + ]; + + meta = { + homepage = "https://irssi.org"; + description = "A terminal based IRC client"; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ lovek323 ]; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix new file mode 100644 index 000000000000..d3b814fb161c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, irssi, gmp, automake, autoconf, libtool, openssl, glib, pkg-config }: + +stdenv.mkDerivation rec { + name = "fish-irssi-20130413-e98156bebd"; + + src = fetchurl { + url = "https://github.com/falsovsky/FiSH-irssi/tarball/e98156bebd"; + name = "${name}.tar.gz"; + sha256 = "1ndr51qrg66h1mfzacwzl1vd6lj39pdc4p4z5iihrj4r2f6gk11a"; + }; + + preConfigure = '' + tar xf ${irssi.src} + configureFlags="$configureFlags --with-irssi-source=`pwd`/${irssi.name}" + + ./regen.sh + ''; + + installPhase = '' + mkdir -p $out/lib/irssi/modules + cp src/.libs/libfish.so $out/lib/irssi/modules + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gmp automake autoconf libtool openssl glib ]; + + meta = { + homepage = "https://github.com/falsovsky/FiSH-irssi"; + license = lib.licenses.unfree; # I can't find any mention of license + maintainers = with lib.maintainers; [viric]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix b/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix new file mode 100644 index 000000000000..c4f63613fc57 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix @@ -0,0 +1,44 @@ +{ lib +, stdenv +, fetchFromGitHub +}: + +stdenv.mkDerivation rec { + pname = "kirc"; + version = "0.2.7"; + + src = fetchFromGitHub { + owner = "mcpcpc"; + repo = pname; + rev = version; + hash = "sha256-iaqj4xB15DB3w/RaiCOMdAu8eONhTw1Dz0j5kykAHV4="; + }; + + dontConfigure = true; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + meta = with lib; { + homepage = "http://kirc.io/"; + description = "Tiny IRC client written in C99"; + longDescription = '' + kirc is a tiny open-source Internet Relay Chat (IRC) client designed with + usability and cross-platform compatibility in mind. + + It features: + - No dependencies other than a C99 compiler. + - Simple Authentication and Security Layer (SASL) procotol support. + - Client-to-client (CTCP) protocol support. + - Transport Layer Security (TLS) protocol support (via external + utilities). + - Simple chat history logging. + - Asynchronous message handling. + - Multi-channel joining at server connection. + - Full support for all RFC 2812 commands. + - Easy customized color scheme definition. + ''; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix new file mode 100644 index 000000000000..3c80ef09aaf7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix @@ -0,0 +1,77 @@ +{ mkDerivation +, lib +, fetchurl +, fetchpatch +, extra-cmake-modules +, kdoctools +, kbookmarks +, karchive +, kconfig +, kconfigwidgets +, kcoreaddons +, kcrash +, kdbusaddons +, kemoticons +, kglobalaccel +, ki18n +, kiconthemes +, kidletime +, kitemviews +, knotifications +, knotifyconfig +, kwindowsystem +, kio +, kparts +, kwallet +, solid +, sonnet +, phonon +}: + +mkDerivation rec { + pname = "konversation"; + version = "1.7.7"; + + src = fetchurl { + url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz"; + sha256 = "R+wWHBOFmBqLmdKMQZ6Iskgj3AG2j7FiOJSBiXTCGKc="; + }; + + buildInputs = [ + kbookmarks + karchive + kconfig + kconfigwidgets + kcoreaddons + kcrash + kdbusaddons + kdoctools + kemoticons + kglobalaccel + ki18n + kiconthemes + kidletime + kitemviews + knotifications + knotifyconfig + kwindowsystem + kio + kparts + kwallet + solid + sonnet + phonon + ]; + + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + + meta = { + description = "Integrated IRC client for KDE"; + license = with lib.licenses; [ gpl2 ]; + maintainers = with lib.maintainers; [ fridh ]; + homepage = "https://konversation.kde.org"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix b/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix new file mode 100644 index 000000000000..cfc03fe37d3b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/kvirc/default.nix @@ -0,0 +1,32 @@ +{ lib, mkDerivation, fetchFromGitHub +, qtbase, qtmultimedia, qtsvg, qtx11extras +, pkg-config, cmake, gettext +}: + +mkDerivation rec { + pname = "kvirc"; + version = "5.0.0"; + + src = fetchFromGitHub { + owner = "kvirc"; + repo = "KVIrc"; + rev = version; + sha256 = "1dq7v6djw0gz56rvghs4r5gfhzx4sfg60rnv6b9zprw0vlvcxbn4"; + }; + + buildInputs = [ + qtbase qtmultimedia qtsvg qtx11extras + ]; + + nativeBuildInputs = [ + pkg-config cmake gettext + ]; + + meta = with lib; { + description = "Advanced IRC Client"; + homepage = "http://www.kvirc.net/"; + license = licenses.gpl2; + maintainers = [ maintainers.suhr ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch b/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch new file mode 100644 index 000000000000..6c40dc8dd895 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch @@ -0,0 +1,37 @@ +From ac9387271b2420a71f7d172f44354fc35adac504 Mon Sep 17 00:00:00 2001 +From: Manuel Nickschas <sputnick@quassel-irc.org> +Date: Tue, 7 Jan 2020 18:34:54 +0100 +Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14 + +Starting from version 5.14, Qt provides stream operators for enum +types, which collide with the ones we ship in types.h. Disable +Quassel's stream operators when compiling against Qt 5.14 or later. + +(cherry-picked from 579e559a6322209df7cd51c34801fecff5fe734b) +--- + src/common/types.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/common/types.h b/src/common/types.h +index 467d9fb2..c4b9f364 100644 +--- a/src/common/types.h ++++ b/src/common/types.h +@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress) + typedef QList<MsgId> MsgIdList; + typedef QList<BufferId> BufferIdList; + ++#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) + /** + * Catch-all stream serialization operator for enum types. + * +@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) { + value = static_cast<T>(v); + return in; + } ++#endif + + // Exceptions + +-- +2.26.2 + diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix new file mode 100644 index 000000000000..b72e28929e3e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix @@ -0,0 +1,100 @@ +{ monolithic ? true # build monolithic Quassel +, enableDaemon ? false # build Quassel daemon +, client ? false # build Quassel client +, tag ? "-kf5" # tag added to the package name +, static ? false # link statically + +, lib, stdenv, fetchFromGitHub, cmake, makeWrapper, dconf +, mkDerivation, qtbase, qtscript +, phonon, libdbusmenu, qca-qt5 + +, withKDE ? true # enable KDE integration +, extra-cmake-modules +, kconfigwidgets +, kcoreaddons +, knotifications +, knotifyconfig +, ktextwidgets +, kwidgetsaddons +, kxmlgui +}: + +let + buildClient = monolithic || client; + buildCore = monolithic || enableDaemon; +in + +assert monolithic -> !client && !enableDaemon; +assert client || enableDaemon -> !monolithic; +assert !buildClient -> !withKDE; # KDE is used by the client only + +let + edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))]; + +in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec { + name = "quassel${tag}-${version}"; + version = "0.13.1"; + + src = fetchFromGitHub { + owner = "quassel"; + repo = "quassel"; + rev = version; + sha256 = "0z8p7iv90yrrjbh31cyxhpr6hsynfmi23rlayn7p2f6ki5az7yc3"; + }; + + patches = [ + # fixes build with Qt 5.14 + # source: https://github.com/quassel/quassel/pull/518/commits/8a46d983fc99204711cdff1e4c542e272fef45b9 + ./0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch + ]; + + # Prevent ``undefined reference to `qt_version_tag''' in SSL check + NIX_CFLAGS_COMPILE = "-DQT_NO_VERSION_TAGGING=1"; + + nativeBuildInputs = [ cmake makeWrapper ]; + buildInputs = [ qtbase ] + ++ lib.optionals buildCore [qtscript qca-qt5] + ++ lib.optionals buildClient [libdbusmenu phonon] + ++ lib.optionals (buildClient && withKDE) [ + extra-cmake-modules kconfigwidgets kcoreaddons + knotifications knotifyconfig ktextwidgets kwidgetsaddons + kxmlgui + ]; + + cmakeFlags = [ + "-DEMBED_DATA=OFF" + "-DUSE_QT5=ON" + ] + ++ edf static "STATIC" + ++ edf monolithic "WANT_MONO" + ++ edf enableDaemon "WANT_CORE" + ++ edf client "WANT_QTCLIENT" + ++ edf withKDE "WITH_KDE"; + + dontWrapQtApps = true; + + postFixup = + lib.optionalString enableDaemon '' + wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin" + '' + + lib.optionalString buildClient '' + wrapQtApp "$out/bin/quassel${lib.optionalString client "client"}" \ + --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" + ''; + + meta = with lib; { + homepage = "https://quassel-irc.org/"; + description = "Qt/KDE distributed IRC client suppporting a remote daemon"; + longDescription = '' + Quassel IRC is a cross-platform, distributed IRC client, + meaning that one (or multiple) client(s) can attach to + and detach from a central core -- much like the popular + combination of screen and a text-based IRC client such + as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5). + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ phreedom ttuegel ]; + repositories.git = "https://github.com/quassel/quassel.git"; + inherit (qtbase.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix new file mode 100644 index 000000000000..81a984c84cd9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix @@ -0,0 +1,37 @@ +{ lib, buildGoModule, fetchFromSourcehut, installShellFiles, scdoc }: + +buildGoModule rec { + pname = "senpai"; + version = "unstable-2021-05-27"; + + src = fetchFromSourcehut { + owner = "~taiite"; + repo = "senpai"; + rev = "6be718329175c6d11e359f1a366ab6ab22b101d2"; + sha256 = "sha256-hW6DHJlDBYEqK8zj5PvGKU54sbeXjx1tdqwKXPXlKHc="; + }; + + vendorSha256 = "sha256-OLi5y1hrYK6+l5WB1SX85QU4y3KjFyGaEzgbE6lnW2k="; + + subPackages = [ + "cmd/senpai" + ]; + + nativeBuildInputs = [ + scdoc + installShellFiles + ]; + + postInstall = '' + scdoc < doc/senpai.1.scd > doc/senpai.1 + scdoc < doc/senpai.5.scd > doc/senpai.5 + installManPage doc/senpai.* + ''; + + meta = with lib; { + description = "Your everyday IRC student"; + homepage = "https://ellidri.org/senpai"; + license = licenses.isc; + maintainers = with maintainers; [ malvo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/sic/default.nix b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix new file mode 100644 index 000000000000..129b72d847d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix @@ -0,0 +1,19 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "sic"; + version = "1.2"; + + makeFlags = [ "PREFIX=$(out)" ]; + src = fetchurl { + url = "https://dl.suckless.org/tools/sic-${version}.tar.gz"; + sha256 = "ac07f905995e13ba2c43912d7a035fbbe78a628d7ba1c256f4ca1372fb565185"; + }; + + meta = { + description = "Simple IRC client"; + homepage = "https://tools.suckless.org/sic/"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix new file mode 100644 index 000000000000..08e8d6a00bcf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix @@ -0,0 +1,43 @@ +{ stdenv +, lib +, rustPlatform +, fetchpatch +, fetchFromGitHub +, pkg-config +, dbus +, openssl +, Foundation +}: + +rustPlatform.buildRustPackage rec { + pname = "tiny"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "osa1"; + repo = pname; + rev = "v${version}"; + sha256 = "07a50shv6k4fwl2gmv4j0maxaqqkjpwwmqkxkqs0gvx38lc5f7m7"; + }; + + cargoSha256 = "0npkcprcqy2pn7k64jzwg41vk9id6yzw211xw203h80cc5444igr"; + + cargoPatches = [ + # Fix Cargo.lock version. Remove with the next release. + (fetchpatch { + url = "https://github.com/osa1/tiny/commit/b1caf48a6399dad8875de1d965d1ad445e49585d.patch"; + sha256 = "1zkjhx94nwmd69cfwwwzg51ipcwq01wyvgsmn0vq7iaa2h0d286i"; + }) + ]; + + nativeBuildInputs = lib.optional stdenv.isLinux pkg-config; + buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ] ++ lib.optional stdenv.isDarwin Foundation; + + meta = with lib; { + description = "A console IRC client"; + homepage = "https://github.com/osa1/tiny"; + changelog = "https://github.com/osa1/tiny/blob/v${version}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix new file mode 100644 index 000000000000..2724c2bee6dc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix @@ -0,0 +1,103 @@ +{ stdenv, fetchurl, lib +, ncurses, openssl, aspell, gnutls, gettext +, zlib, curl, pkg-config, libgcrypt +, cmake, makeWrapper, libobjc, libresolv, libiconv +, asciidoctor # manpages +, guileSupport ? true, guile +, luaSupport ? true, lua5 +, perlSupport ? true, perl +, pythonSupport ? true, python3Packages +, rubySupport ? true, ruby +, tclSupport ? true, tcl +, extraBuildInputs ? [] +, fetchpatch +}: + +let + inherit (python3Packages) python; + plugins = [ + { name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; } + { name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; } + { name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; } + { name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; } + { name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; } + { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; } + ]; + enabledPlugins = builtins.filter (p: p.enabled) plugins; + + in + assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins; + stdenv.mkDerivation rec { + version = "3.2"; + pname = "weechat"; + + hardeningEnable = [ "pie" ]; + + src = fetchurl { + url = "https://weechat.org/files/src/weechat-${version}.tar.bz2"; + sha256 = "0pck4lczkk52mgwa1n0habp1xqi9xsgsh5q6bbsjmdbandvy5vc8"; + }; + + patches = [ + # weechat 3.2 fails to build on Darwin, but is fixed for the next release: + (fetchpatch { + url = "https://github.com/weechat/weechat/commit/0b7e4977bef763993e361c23db0f52117b799949.patch"; + sha256 = "eVdrhr4mrqv+OkqYOv1E7mUkmzd5NC3LmZhbXJnCpFg="; + excludes = [ "ChangeLog.adoc" ]; + }) + ]; + + outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins; + + cmakeFlags = with lib; [ + "-DENABLE_MAN=ON" + "-DENABLE_DOC=ON" + "-DENABLE_JAVASCRIPT=OFF" # Requires v8 <= 3.24.3, https://github.com/weechat/weechat/issues/360 + "-DENABLE_PHP=OFF" + + # This just means it's okay to use Python 3 if it's in the environment. + "-DENABLE_PYTHON3=ON" + ] + ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib"] + ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins + ; + + nativeBuildInputs = [ cmake pkg-config makeWrapper asciidoctor ]; + buildInputs = with lib; [ + ncurses openssl aspell gnutls gettext zlib curl + libgcrypt ] + ++ optionals stdenv.isDarwin [ libobjc libresolv ] + ++ concatMap (p: p.buildInputs) enabledPlugins + ++ extraBuildInputs; + + NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}" + # Fix '_res_9_init: undefined symbol' error + + (lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT=1 -lresolv"); + + postInstall = with lib; '' + for p in ${concatMapStringsSep " " (p: p.name) enabledPlugins}; do + from=$out/lib/weechat/plugins/$p.so + to=''${!p}/lib/weechat/plugins/$p.so + mkdir -p $(dirname $to) + mv $from $to + done + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/weechat --version + ''; + + meta = { + homepage = "http://www.weechat.org/"; + description = "A fast, light and extensible chat client"; + longDescription = '' + You can find more documentation as to how to customize this package + (eg. adding python modules for scripts that would require them, etc.) + on https://nixos.org/nixpkgs/manual/#sec-weechat . + ''; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ lovek323 lheckemann ]; + platforms = lib.platforms.unix; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix new file mode 100644 index 000000000000..a2e9fc3265a3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, weechat }: + +stdenv.mkDerivation { + pname = "buffer_autoset"; + version = "1.2"; + + src = fetchurl { + url = "https://raw.githubusercontent.com/weechat/scripts/2b308b44df39ba6563d02b2bcd40c384ec2777dc/python/buffer_autoset.py"; + sha256 = "0csl3sfpijdbq1j6wabx347lvn91a24a2jfx5b5pspfxz7gixli1"; + }; + + dontUnpack = true; + + passthru.scripts = [ "buffer_autoset.py" ]; + + installPhase = '' + install -D $src $out/share/buffer_autoset.py + ''; + + meta = with lib; { + inherit (weechat.meta) platforms; + description = "buffer_autoset.py is a weechat script which auto-set buffer properties when a buffer is opened."; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ govanify ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/colorize_nicks/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/colorize_nicks/default.nix new file mode 100644 index 000000000000..0b6d355797f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/colorize_nicks/default.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, fetchurl, weechat }: + +stdenv.mkDerivation { + pname = "weechat-colorize_nicks"; + version = "27"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/bc8a9051800779a036ba11689a277cd5f03657b2/python/colorize_nicks.py"; + sha256 = "0hiay88vvy171jiq6ahflm0ipb7sslfxwhmmm8psv6qk19rv2sxs"; + }; + + dontUnpack = true; + + installPhase = '' + mkdir -p $out/share + cp $src $out/share/colorize_nicks.py + ''; + + passthru = { + scripts = [ "colorize_nicks.py" ]; + }; + + meta = with lib; { + inherit (weechat.meta) platforms; + description = "Use the weechat nick colors in the chat area"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix new file mode 100644 index 000000000000..8bd6f771ed24 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix @@ -0,0 +1,33 @@ +{ callPackage, luaPackages, perlPackages, python3Packages }: + +{ + colorize_nicks = callPackage ./colorize_nicks { }; + + go = callPackage ./go { }; + + multiline = callPackage ./multiline { + inherit (perlPackages) PodParser; + }; + + weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { + inherit (luaPackages) cjson luaffi; + }; + + weechat-matrix = python3Packages.callPackage ./weechat-matrix { }; + + weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { }; + + wee-slack = callPackage ./wee-slack { }; + + weechat-autosort = callPackage ./weechat-autosort { }; + + weechat-otr = callPackage ./weechat-otr { }; + + weechat-go = callPackage ./weechat-go { }; + + buffer_autoset = callPackage ./buffer_autoset { }; + + highmon = callPackage ./highmon { }; + + zncplayback = callPackage ./zncplayback { }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/go/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/go/default.nix new file mode 100644 index 000000000000..5f0afbfdc6d9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/go/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl }: + +stdenv.mkDerivation { + pname = "go.py"; + version = "2.5"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/dc9e69f37fcdc51f0f5a8856ef977ee3d8d8e371/python/go.py"; + sha256 = "0ajfv4sl66jq02zzmdas81rvnv2l6dl3ckb4xzkyb3kdm68w31rf"; + }; + + unpackPhase = '' + : + ''; + + installPhase = '' + mkdir -p $out/share + cp $src $out/share/go.py + ''; + + passthru = { + scripts = [ "go.py" ]; + }; + + meta = with lib; { + description = "Quick jump to buffers"; + licenses = licenses.gpl3; + maintainers = with maintainers; [ qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix new file mode 100644 index 000000000000..f65322465707 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, weechat }: + +stdenv.mkDerivation { + pname = "highmon"; + version = "2.7"; + + src = fetchurl { + url = "https://raw.githubusercontent.com/KenjiE20/highmon/182e67d070c75efc81999e68c2ac7fdfe44d2872/highmon.pl"; + sha256 = "1vvgzscb12l3cp2nq954fx6j3awvpjsb0nqylal51ps9cq9a3wir"; + }; + + dontUnpack = true; + + passthru.scripts = [ "highmon.pl" ]; + + installPhase = '' + runHook preInstall + + install -D $src $out/share/highmon.pl + + runHook postInstall + ''; + + meta = with lib; { + inherit (weechat.meta) platforms; + homepage = "https://github.com/KenjiE20/highmon/"; + description = "highmon.pl is a weechat script that adds 'Highlight Monitor'."; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ govanify ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix new file mode 100644 index 000000000000..447d415c163c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, fetchurl, substituteAll, PodParser }: + +stdenv.mkDerivation { + pname = "multiline"; + version = "0.6.3"; + + src = fetchurl { + url = "https://raw.githubusercontent.com/weechat/scripts/945315bed4bc2beaf1e47f9b946ffe8f638f77fe/perl/multiline.pl"; + sha256 = "1smialb21ny7brhij4sbw46xvsmrdv6ig2da0ip63ga2afngwsy4"; + }; + + dontUnpack = true; + prePatch = '' + cp $src multiline.pl + ''; + + patches = [ + # The script requires a special Perl environment. + (substituteAll { + src = ./libpath.patch; + env = PodParser; + }) + ]; + + passthru.scripts = [ "multiline.pl" ]; + + installPhase = '' + runHook preInstall + + install -D multiline.pl $out/share/multiline.pl + + runHook postInstall + ''; + + meta = with lib; { + description = "Multi-line edit box"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ oxzi ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch new file mode 100644 index 000000000000..34299f20d8c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/multiline/libpath.patch @@ -0,0 +1,9 @@ +diff --git a/multiline.pl b/multiline.pl +index 54474d4..42fbef8 100644 +--- a/multiline.pl ++++ b/multiline.pl +@@ -1,3 +1,4 @@ ++use lib '@env@/lib/perl5/site_perl'; + use strict; use warnings; + $INC{'Encode/ConfigLocal.pm'}=1; + require Encode; diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix new file mode 100644 index 000000000000..aebe906659ef --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }: + +stdenv.mkDerivation rec { + pname = "wee-slack"; + version = "2.8.0"; + + src = fetchFromGitHub { + repo = "wee-slack"; + owner = "wee-slack"; + rev = "v${version}"; + sha256 = "0xfklr0gsc9jgxfyrrb2j756lclz9g8imcb0pk0xgyj8mhsw23zk"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "wee-slack-env"; + paths = with python3Packages; [ + websocket-client + six + ]; + }}/${python3Packages.python.sitePackages}"; + }) + ./load_weemoji_path.patch + ]; + + postPatch = '' + substituteInPlace wee_slack.py --subst-var out + ''; + + passthru.scripts = [ "wee_slack.py" ]; + + installPhase = '' + mkdir -p $out/share + cp wee_slack.py $out/share/wee_slack.py + install -D -m 0444 weemoji.json $out/share/wee-slack/weemoji.json + ''; + + meta = with lib; { + homepage = "https://github.com/wee-slack/wee-slack"; + license = licenses.mit; + maintainers = with maintainers; [ willibutz ]; + description = '' + A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc.. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch new file mode 100644 index 000000000000..a6e38c16fb14 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch @@ -0,0 +1,13 @@ +diff --git a/wee_slack.py b/wee_slack.py +index e4716b4..f673b7c 100644 +--- a/wee_slack.py ++++ b/wee_slack.py +@@ -31,6 +31,8 @@ import string + # See https://github.com/numpy/numpy/issues/11925 + sys.modules["numpy"] = None + ++sys.path.append('@env@') ++ + from websocket import ( # noqa: E402 + ABNF, + create_connection, diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch new file mode 100644 index 000000000000..1e97dc32fa65 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/load_weemoji_path.patch @@ -0,0 +1,25 @@ +diff --git a/wee_slack.py b/wee_slack.py +index e4716b4..ffd122d 100644 +--- a/wee_slack.py ++++ b/wee_slack.py +@@ -6092,19 +6092,7 @@ def create_slack_debug_buffer(): + + def load_emoji(): + try: +- weechat_dir = w.info_get("weechat_data_dir", "") or w.info_get( +- "weechat_dir", "" +- ) +- weechat_sharedir = w.info_get("weechat_sharedir", "") +- local_weemoji, global_weemoji = ( +- "{}/weemoji.json".format(path) for path in (weechat_dir, weechat_sharedir) +- ) +- path = ( +- global_weemoji +- if os.path.exists(global_weemoji) and not os.path.exists(local_weemoji) +- else local_weemoji +- ) +- with open(path, "r") as ef: ++ with open("@out@/share/wee-slack/weemoji.json", "r") as ef: + emojis = json.loads(ef.read()) + if "emoji" in emojis: + print_error( diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix new file mode 100644 index 000000000000..49e74e0203ac --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "weechat-autosort"; + version = "3.8"; + + src = fetchFromGitHub { + owner = "de-vri-es"; + repo = pname; + rev = version; + sha256 = "0a2gc8nhklvlivradhqy2pkymsqyy01pvzrmwg60cln8snmcqpd5"; + }; + + passthru.scripts = [ "autosort.py" ]; + installPhase = '' + install -D autosort.py $out/share/autosort.py + ''; + + meta = with lib; { + description = "Autosort is a weechat script to automatically or manually keep your buffers sorted"; + homepage = "https://github.com/de-vri-es/weechat-autosort"; + license = licenses.gpl3; + maintainers = with maintainers; [ emily ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-go/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-go/default.nix new file mode 100644 index 000000000000..623b2570b475 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-go/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, weechat }: + +stdenv.mkDerivation { + pname = "weechat-go"; + version = "2.7"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/414cff3ee605ba204b607742430a21443c035b08/python/go.py"; + sha256 = "0bnbfpj1qg4yzwbikh1aw5ajc8l44lkb0y0m6mz8grpf5bxk5cwm"; + }; + + dontUnpack = true; + + passthru.scripts = [ "go.py" ]; + + installPhase = '' + install -D $src $out/share/go.py + ''; + + meta = with lib; { + inherit (weechat.meta) platforms; + description = "go.py is a weechat script to quickly jump to different buffers"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ govanify ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix new file mode 100644 index 000000000000..24cf26fbaf55 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }: + +stdenv.mkDerivation { + name = "weechat-matrix-bridge-2018-11-19"; + src = fetchFromGitHub { + owner = "torhve"; + repo = "weechat-matrix-protocol-script"; + rev = "8d32e90d864a8f3f09ecc2857cd5dd6e39a8c3f7"; + sha256 = "0qqd6qmkrdc0r3rnl53c3yp93fbcz7d3mdw3vq5gmdqxyym4s9lj"; + }; + + patches = [ + ./library-path.patch + ]; + + buildInputs = [ curl cjson olm luaffi ]; + + postPatch = '' + substituteInPlace matrix.lua \ + --replace "/usr/bin/curl" "${curl}/bin/curl" \ + --replace "__NIX_LIB_PATH__" "$out/lib/?.so" \ + --replace "__NIX_OLM_PATH__" "$out/share/?.lua" + + substituteInPlace olm.lua \ + --replace "__NIX_LIB_PATH__" "$out/lib/?.so" + ''; + + passthru.scripts = [ "matrix.lua" ]; + + installPhase = '' + mkdir -p $out/{share,lib} + + cp {matrix.lua,olm.lua} $out/share + cp ${cjson}/lib/lua/${cjson.lua.luaversion}/cjson.so $out/lib/cjson.so + cp ${olm}/lib/libolm.so $out/lib/libolm.so + cp ${luaffi}/lib/lua/${luaffi.lua.luaversion}/ffi.so $out/lib/ffi.so + ''; + + meta = with lib; { + description = "A WeeChat script in Lua that implements the matrix.org chat protocol"; + homepage = "https://github.com/torhve/weechat-matrix-protocol-script"; + maintainers = with maintainers; [ ]; + license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53 + platforms = platforms.unix; + + # As of 2019-06-30, all of the dependencies are available on macOS but the + # package itself does not build. + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch new file mode 100644 index 000000000000..d9945c2993b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch @@ -0,0 +1,28 @@ +diff --git a/matrix.lua b/matrix.lua +index b79f500..32b37a2 100644 +--- a/matrix.lua ++++ b/matrix.lua +@@ -43,6 +43,9 @@ This script maps this as follows: + + ]] + ++package.cpath = package.cpath .. ";__NIX_LIB_PATH__" ++package.path = package.path .. ";__NIX_OLM_PATH__" ++ + local json = require 'cjson' -- apt-get install lua-cjson + local olmstatus, olm = pcall(require, 'olm') -- LuaJIT olm FFI binding ln -s ~/olm/olm.lua /usr/local/share/lua/5.1 + local w = weechat +diff --git a/olm.lua b/olm.lua +index 114649c..4828371 100644 +--- a/olm.lua ++++ b/olm.lua +@@ -17,6 +17,9 @@ + * limitations under the License. + */ + --]] ++ ++package.cpath = package.cpath .. ";__NIX_LIB_PATH__" ++ + local ffi = require'ffi' + + ffi.cdef[[ diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix new file mode 100644 index 000000000000..c82fb9ca7395 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix @@ -0,0 +1,86 @@ +{ buildPythonPackage +, lib +, python +, fetchFromGitHub +, pyopenssl +, webcolors +, future +, atomicwrites +, attrs +, Logbook +, pygments +, matrix-nio +, aiohttp +, requests +}: + +let + scriptPython = python.withPackages (ps: with ps; [ + aiohttp + requests + python_magic + ]); + + version = "0.2.0"; +in buildPythonPackage { + pname = "weechat-matrix"; + inherit version; + + src = fetchFromGitHub { + owner = "poljar"; + repo = "weechat-matrix"; + rev = version; + hash = "sha256-qsTdF9mGHac4rPs53mgoOElcujicRNXbJ7GsoptWSGc="; + }; + + propagatedBuildInputs = [ + pyopenssl + webcolors + future + atomicwrites + attrs + Logbook + pygments + matrix-nio + aiohttp + requests + ]; + + passthru.scripts = [ "matrix.py" ]; + + dontBuild = true; + doCheck = false; + + installPhase = '' + mkdir -p $out/share $out/bin + cp main.py $out/share/matrix.py + + cp contrib/matrix_upload.py $out/bin/matrix_upload + cp contrib/matrix_decrypt.py $out/bin/matrix_decrypt + cp contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper + substituteInPlace $out/bin/matrix_upload \ + --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python' + substituteInPlace $out/bin/matrix_sso_helper \ + --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python' + substituteInPlace $out/bin/matrix_decrypt \ + --replace '/usr/bin/env python3' '${scriptPython}/bin/python' + + mkdir -p $out/${python.sitePackages} + cp -r matrix $out/${python.sitePackages}/matrix + ''; + + dontPatchShebangs = true; + postFixup = '' + addToSearchPath program_PYTHONPATH $out/${python.sitePackages} + patchPythonScript $out/share/matrix.py + substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\" + ''; + + meta = with lib; { + description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol"; + homepage = "https://github.com/poljar/weechat-matrix"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ tilpner emily ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix new file mode 100644 index 000000000000..78f9fc082e31 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, libnotify }: + +stdenv.mkDerivation rec { + pname = "weechat-notify-send"; + version = "0.9"; + + src = fetchFromGitHub { + owner = "s3rvac"; + repo = pname; + rev = "v${version}"; + sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a"; + }; + + passthru.scripts = [ "notify_send.py" ]; + + dontBuild = true; + doCheck = false; + + installPhase = '' + install -D notify_send.py $out/share/notify_send.py + substituteInPlace $out/share/notify_send.py \ + --replace "'notify-send'" "'${libnotify}/bin/notify-send'" + ''; + + meta = with lib; { + description = "A WeeChat script that sends highlight and message notifications through notify-send"; + homepage = "https://github.com/s3rvac/weechat-notify-send"; + license = licenses.mit; + maintainers = with maintainers; [ tobim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix new file mode 100644 index 000000000000..987271e4ffa2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix @@ -0,0 +1,70 @@ +{ lib, stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }: + +let + # pure-python-otr (potr) requires an older version of pycrypto, which is + # not compatible with pycryptodome. Therefore, the latest patched version + # of pycrypto will be fetched from the Debian project. + # https://security-tracker.debian.org/tracker/source-package/python-crypto + + pycrypto = python3Packages.buildPythonPackage rec { + pname = "pycrypto"; + version = "2.6.1-13.1"; + + src = fetchgit { + url = "https://salsa.debian.org/sramacher/python-crypto.git"; + rev = "debian/${version}"; + sha256 = "1mahqmlgilgk0rn5hfkhza7kscfm7agdakkb6rqnif9g0qp3s52f"; + }; + + postPatch = '' + for p in debian/patches/*.patch; do + patch -p1 < "$p" + done + ''; + + buildInputs = [ gmp ]; + + preConfigure = '' + sed -i 's,/usr/include,/no-such-dir,' configure + sed -i "s!,'/usr/include/'!!" setup.py + ''; + }; + + potr = python3Packages.potr.overridePythonAttrs (oldAttrs: { + propagatedBuildInputs = [ pycrypto ]; + }); +in stdenv.mkDerivation rec { + pname = "weechat-otr"; + version = "1.9.2"; + + src = fetchFromGitHub { + repo = pname; + owner = "mmb"; + rev = "v${version}"; + sha256 = "1lngv98y6883vk8z2628cl4d5y8jxy39w8245gjdvshl8g18k5s2"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "weechat-otr-env"; + paths = [ potr pycrypto ]; + }}/${python3Packages.python.sitePackages}"; + }) + ]; + + passthru.scripts = [ "weechat_otr.py" ]; + + installPhase = '' + mkdir -p $out/share + cp weechat_otr.py $out/share/weechat_otr.py + ''; + + meta = with lib; { + homepage = "https://github.com/mmb/weechat-otr"; + license = licenses.gpl3; + maintainers = with maintainers; [ oxzi ]; + description = "WeeChat script for Off-the-Record messaging"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch new file mode 100644 index 000000000000..a7b77ed9b602 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch @@ -0,0 +1,13 @@ +diff --git a/weechat_otr.py b/weechat_otr.py +index 0ccfb35..c42bebf 100644 +--- a/weechat_otr.py ++++ b/weechat_otr.py +@@ -41,6 +41,8 @@ import shlex + import shutil + import sys + ++sys.path.append('@env@') ++ + import potr + import weechat + diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix new file mode 100644 index 000000000000..dcd74c0da0e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/zncplayback/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchurl }: + +stdenv.mkDerivation { + pname = "weechat-zncplayback"; + version = "0.1.0"; + + src = fetchurl { + url = "https://github.com/weechat/scripts/raw/643afdd25d29c2614cd67deb2388683cc270d686/python/zncplayback.py"; + sha256 = "1mz9pmnrqv2pjk4wz9yp1bic49m8qbf4nh7pg4j7vghmpq9srkd9"; + }; + + unpackPhase = '' + : + ''; + + installPhase = '' + mkdir -p $out/share + cp $src $out/share/zncplayback.py + ''; + + passthru = { + scripts = [ "zncplayback.py" ]; + }; + + meta = with lib; { + description = "Add support for the ZNC Playback module"; + licenses = licenses.gpl2Plus; + maintainers = with maintainers; [ qyliss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix new file mode 100644 index 000000000000..5c06bb8517a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix @@ -0,0 +1,91 @@ +{ lib, runCommand, writeScriptBin, buildEnv +, python3Packages, perlPackages, runtimeShell +}: + +weechat: + +let + wrapper = { + installManPages ? true + , configure ? { availablePlugins, ... }: { plugins = builtins.attrValues availablePlugins; } + }: + + let + perlInterpreter = perlPackages.perl; + availablePlugins = let + simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";}; + in rec { + python = (simplePlugin "python") // { + extraEnv = '' + export PATH="${python3Packages.python}/bin:$PATH" + ''; + withPackages = pkgsFun: (python // { + extraEnv = '' + export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}" + ''; + }); + }; + perl = (simplePlugin "perl") // { + extraEnv = '' + export PATH="${perlInterpreter}/bin:$PATH" + ''; + withPackages = pkgsFun: (perl // { + extraEnv = '' + ${perl.extraEnv} + export PERL5LIB=${perlPackages.makeFullPerlPath (pkgsFun perlPackages)} + ''; + }); + }; + tcl = simplePlugin "tcl"; + ruby = simplePlugin "ruby"; + guile = simplePlugin "guile"; + lua = simplePlugin "lua"; + }; + + config = configure { inherit availablePlugins; }; + + plugins = config.plugins or (builtins.attrValues availablePlugins); + + pluginsDir = runCommand "weechat-plugins" {} '' + mkdir -p $out/plugins + for plugin in ${lib.concatMapStringsSep " " (p: p.pluginFile) plugins} ; do + ln -s $plugin $out/plugins + done + ''; + + init = let + init = builtins.replaceStrings [ "\n" ] [ ";" ] (config.init or ""); + + mkScript = drv: lib.forEach drv.scripts (script: "/script load ${drv}/share/${script}"); + + scripts = builtins.concatStringsSep ";" (lib.foldl (scripts: drv: scripts ++ mkScript drv) + [ ] (config.scripts or [])); + in "${scripts};${init}"; + + mkWeechat = bin: (writeScriptBin bin '' + #!${runtimeShell} + export WEECHAT_EXTRA_LIBDIR=${pluginsDir} + ${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins} + exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init} + '') // { + inherit (weechat) name man; + unwrapped = weechat; + outputs = [ "out" "man" ]; + }; + in buildEnv { + name = "weechat-bin-env-${weechat.version}"; + extraOutputsToInstall = lib.optionals installManPages [ "man" ]; + paths = [ + (mkWeechat "weechat") + (mkWeechat "weechat-headless") + (runCommand "weechat-out-except-bin" { } '' + mkdir $out + ln -sf ${weechat}/include $out/include + ln -sf ${weechat}/lib $out/lib + ln -sf ${weechat}/share $out/share + '') + ]; + meta = builtins.removeAttrs weechat.meta [ "outputsToInstall" ]; + }; + +in lib.makeOverridable wrapper diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch new file mode 100644 index 000000000000..e5fa2feb2019 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch @@ -0,0 +1,58 @@ +--- a/configure ++++ b/configure +@@ -6029,53 +6029,8 @@ + #AC_CHECK_HEADERS(zlib.h) + #EGG_CHECK_ZLIB + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for path to OpenSSL" >&5 +-$as_echo_n "checking for path to OpenSSL... " >&6; } +- +- +-# Check whether --with-openssl was given. +-if test "${with_openssl+set}" = set; then : +- withval=$with_openssl; with_openssl_path=$withval +-else +- with_openssl_path=auto +-fi +- +- +- +-cf_openssl_basedir="" +-if test "$with_openssl_path" != "auto"; then +- cf_openssl_basedir="`echo ${with_openssl_path} | sed 's/\/$//'`" +-else +- for dirs in /usr/local/ssl /usr/pkg /usr/local /usr/local/openssl; do +- if test -f "${dirs}/include/openssl/opensslv.h" && test -f "${dirs}/lib/libssl.so"; then +- cf_openssl_basedir="${dirs}" +- break +- fi +- done +- unset dirs +-fi +-if test ! -z "$cf_openssl_basedir"; then +- if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then +- SSL_INCLUDES="-I${cf_openssl_basedir}/include" +- SSL_LIBS="-L${cf_openssl_basedir}/lib" +- else +- cf_openssl_basedir="" +- fi +-else +- if test -f "/usr/include/openssl/opensslv.h" ; then +- cf_openssl_basedir="/usr" +- fi +-fi +- +-if test ! -z "$cf_openssl_basedir"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_openssl_basedir" >&5 +-$as_echo "$cf_openssl_basedir" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-$as_echo "not found" >&6; } +- as_fn_error 1 "OpenSSL is required." "$LINENO" 5 +-fi +-unset cf_openssl_basedir ++SSL_INCLUDES="-I@openssl.dev@/include" ++SSL_LIBS="-L@openssl.out@/lib" + + save_CXX="$CXX" + CXX="$CXX $SSL_INCLUDES" diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix new file mode 100644 index 000000000000..3b1fa79aa266 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchurl, openssl }: + +stdenv.mkDerivation rec { + pname = "wraith"; + version = "1.4.7"; + src = fetchurl { + url = "mirror://sourceforge/wraithbotpack/wraith-v${version}.tar.gz"; + sha256 = "0h6liac5y7im0jfm2sj18mibvib7d1l727fjs82irsjj1v9kif3j"; + }; + hardeningDisable = [ "format" ]; + buildInputs = [ openssl ]; + patches = [ ./configure.patch ./dlopen.patch ]; + postPatch = '' + substituteInPlace configure --subst-var-by openssl.dev ${openssl.dev} \ + --subst-var-by openssl.out ${openssl.out} + substituteInPlace src/libssl.cc --subst-var-by openssl ${openssl.out} + substituteInPlace src/libcrypto.cc --subst-var-by openssl ${openssl.out} + ''; + installPhase = '' + mkdir -p $out/bin + cp -a wraith $out/bin/wraith + ln -s wraith $out/bin/hub + ''; + + meta = with lib; { + description = "An IRC channel management bot written purely in C/C++"; + longDescription = '' + Wraith is an IRC channel management bot written purely in C/C++. It has + been in development since late 2003. It is based on Eggdrop 1.6.12 but has + since evolved into something much different at its core. TCL and loadable + modules are currently not supported. + + Maintainer's Notes: + Copy the binary out of the store before running it with the -C option to + configure it. See https://github.com/wraith/wraith/wiki/GettingStarted . + + The binary will not run when moved onto non-NixOS systems; use patchelf + to fix its runtime dependenices. + ''; + homepage = "https://wraith.botpack.net/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ elitak ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch new file mode 100644 index 000000000000..bfc854ef9e9c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch @@ -0,0 +1,48 @@ +diff --git a/src/libcrypto.cc b/src/libcrypto.cc +index 0339258..68746c8 100644 +--- a/src/libcrypto.cc ++++ b/src/libcrypto.cc +@@ -95,17 +95,9 @@ int load_libcrypto() { + } + + sdprintf("Loading libcrypto"); ++ dlerror(); // Clear Errors ++ libcrypto_handle = dlopen("@openssl@/lib/libcrypto.so", RTLD_LAZY|RTLD_GLOBAL); + +- bd::Array<bd::String> libs_list(bd::String("libcrypto.so." SHLIB_VERSION_NUMBER " libcrypto.so libcrypto.so.0.9.8 libcrypto.so.7 libcrypto.so.6").split(' ')); +- +- for (size_t i = 0; i < libs_list.length(); ++i) { +- dlerror(); // Clear Errors +- libcrypto_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY|RTLD_GLOBAL); +- if (libcrypto_handle) { +- sdprintf("Found libcrypto: %s", bd::String(libs_list[i]).c_str()); +- break; +- } +- } + if (!libcrypto_handle) { + fprintf(stderr, STR("Unable to find libcrypto\n")); + return(1); +diff --git a/src/libssl.cc b/src/libssl.cc +index b432c7b..8940998 100644 +--- a/src/libssl.cc ++++ b/src/libssl.cc +@@ -68,17 +68,9 @@ int load_libssl() { + } + + sdprintf("Loading libssl"); ++ dlerror(); // Clear Errors ++ libssl_handle = dlopen("@openssl@/lib/libssl.so", RTLD_LAZY); + +- bd::Array<bd::String> libs_list(bd::String("libssl.so." SHLIB_VERSION_NUMBER " libssl.so libssl.so.0.9.8 libssl.so.7 libssl.so.6").split(' ')); +- +- for (size_t i = 0; i < libs_list.length(); ++i) { +- dlerror(); // Clear Errors +- libssl_handle = dlopen(bd::String(libs_list[i]).c_str(), RTLD_LAZY); +- if (libssl_handle) { +- sdprintf("Found libssl: %s", bd::String(libs_list[i]).c_str()); +- break; +- } +- } + if (!libssl_handle) { + fprintf(stderr, STR("Unable to find libssl\n")); + return(1); diff --git a/nixpkgs/pkgs/applications/networking/jmeter/default.nix b/nixpkgs/pkgs/applications/networking/jmeter/default.nix new file mode 100644 index 000000000000..d52d00f9a056 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/jmeter/default.nix @@ -0,0 +1,60 @@ +{ fetchurl, lib, stdenv, jre, makeWrapper, coreutils }: + +stdenv.mkDerivation rec { + pname = "jmeter"; + version = "5.4.1"; + src = fetchurl { + url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz"; + sha256 = "sha256-TtrpmIHRzbUEiYesy9ArPzza3qShCNFtB/sVJe9hLPM="; + }; + + nativeBuildInputs = [ makeWrapper jre ]; + + installPhase = '' + mkdir $out + + rm bin/*.bat bin/*.cmd + + cp -R * $out/ + + substituteInPlace $out/bin/create-rmi-keystore.sh --replace \ + "keytool -genkey" \ + "${jre}/lib/openjdk/jre/bin/keytool -genkey" + + # Prefix some scripts with jmeter to avoid clobbering the namespace + for i in heapdump.sh mirror-server mirror-server.sh shutdown.sh stoptest.sh create-rmi-keystore.sh; do + mv $out/bin/$i $out/bin/jmeter-$i + wrapProgram $out/bin/jmeter-$i \ + --prefix PATH : "${jre}/bin" + done + + wrapProgram $out/bin/jmeter --set JAVA_HOME "${jre}" + wrapProgram $out/bin/jmeter.sh --set JAVA_HOME "${jre}" + ''; + + doInstallCheck = false; #NoClassDefFoundError: org/apache/logging/log4j/Level for tests + + checkInputs = [ coreutils ]; + + installCheckPhase = '' + $out/bin/jmeter --version 2>&1 | grep -q "${version}" + $out/bin/jmeter-heapdump.sh > /dev/null + $out/bin/jmeter-shutdown.sh > /dev/null + $out/bin/jmeter-stoptest.sh > /dev/null + timeout --kill=1s 1s $out/bin/jmeter-mirror-server.sh || test "$?" = "124" + ''; + + meta = with lib; { + description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance"; + longDescription = '' + The Apache JMeter desktop application is open source software, a 100% + pure Java application designed to load test functional behavior and + measure performance. It was originally designed for testing Web + Applications but has since expanded to other test functions. + ''; + license = licenses.asl20; + maintainers = [ maintainers.bryanasdev000 ]; + priority = 1; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix new file mode 100644 index 000000000000..e6332832e3ec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, jre, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "jnetmap"; + version = "0.5.4"; + + src = fetchurl { + url = "mirror://sourceforge/project/jnetmap/jNetMap%20${version}/jNetMap-${version}.jar"; + sha256 = "0nxsfa600jhazwbabxmr9j37mhwysp0fyrvczhv3f1smiy8rjanl"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jre ]; + + dontUnpack = true; + + installPhase = '' + mkdir -p "$out/bin" + mkdir -p "$out/lib" + + cp "${src}" "$out/lib/jnetmap.jar" + makeWrapper "${jre}/bin/java" "$out/bin/jnetmap" \ + --add-flags "-jar \"$out/lib/jnetmap.jar\"" + ''; + + meta = with lib; { + description = "Graphical network monitoring and documentation tool"; + homepage = "http://www.rakudave.ch/jnetmap/"; + license = licenses.gpl3Plus; + # Upstream supports macOS and Windows too. + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/juju/default.nix b/nixpkgs/pkgs/applications/networking/juju/default.nix new file mode 100644 index 000000000000..b4de49730fe8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/juju/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "juju"; + version = "2.8.7"; + + src = fetchFromGitHub { + owner = "juju"; + repo = "juju"; + rev = "juju-${version}"; + sha256 = "sha256-ZiG+LMeQboFxaLIBSHjRNe5tt8bEguYXQp3nhkoMpek="; + }; + + vendorSha256 = "sha256-5R3TmwOzHgdEQhS4B4Bb0InghaEhUVxDSl7oZl3aNZ4="; + + # Disable tests because it attempts to use a mongodb instance + doCheck = false; + + meta = with lib; { + description = "Open source modelling tool for operating software in the cloud"; + homepage = "https://juju.is"; + license = licenses.mit; + maintainers = with maintainers; [ citadelcore ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/libcoap/default.nix b/nixpkgs/pkgs/applications/networking/libcoap/default.nix new file mode 100644 index 000000000000..643941b5fa89 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/libcoap/default.nix @@ -0,0 +1,31 @@ +{ fetchFromGitHub, automake, autoconf, which, pkg-config, libtool, lib, stdenv }: +stdenv.mkDerivation rec { + pname = "libcoap"; + version = "4.2.1"; + src = fetchFromGitHub { + repo = "libcoap"; + owner = "obgm"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "1jkvha52lic13f13hnppizkl80bb2rciayb5hxici0gj6spphgha"; + }; + nativeBuildInputs = [ + automake + autoconf + which + libtool + pkg-config + ]; + preConfigure = "./autogen.sh"; + configureFlags = [ + "--disable-documentation" + "--disable-shared" + ]; + meta = with lib; { + homepage = "https://github.com/obgm/libcoap"; + description = "A CoAP (RFC 7252) implementation in C"; + platforms = platforms.linux; + license = licenses.bsd2; + maintainers = [ maintainers.kmein ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/lieer/default.nix b/nixpkgs/pkgs/applications/networking/lieer/default.nix new file mode 100644 index 000000000000..420b9b28ccfc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/lieer/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "lieer"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "gauteh"; + repo = "lieer"; + rev = "v${version}"; + sha256 = "12sl7d381l1gjaam419xc8gxmsprxf0hgksz1f974qmmijvr02bh"; + }; + + propagatedBuildInputs = with python3Packages; [ + notmuch + oauth2client + google-api-python-client + tqdm + setuptools + ]; + + # no tests + doCheck = false; + pythonImportsCheck = [ "lieer" ]; + + meta = with lib; { + description = "Fast email-fetching and two-way tag synchronization between notmuch and GMail"; + longDescription = '' + This program can pull email and labels (and changes to labels) + from your GMail account and store them locally in a maildir with + the labels synchronized with a notmuch database. The changes to + tags in the notmuch database may be pushed back remotely to your + GMail account. + ''; + homepage = "https://lieer.gaute.vetsj.com/"; + repositories.git = "https://github.com/gauteh/lieer.git"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ flokli kaiha ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch b/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch new file mode 100644 index 000000000000..46224ede33d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch @@ -0,0 +1,43 @@ +From e57f22a5089f194013534c9a9bbc42ee639297f1 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel <ttuegel@gmail.com> +Date: Sat, 19 Sep 2015 11:10:32 -0500 +Subject: [PATCH] unbundled qwt + +--- + linssid-app/linssid-app.pro | 4 +--- + linssid.pro | 4 +--- + 2 files changed, 2 insertions(+), 6 deletions(-) + +diff --git a/linssid-app/linssid-app.pro b/linssid-app/linssid-app.pro +index 26f61e7..7b80b60 100644 +--- a/linssid-app/linssid-app.pro ++++ b/linssid-app/linssid-app.pro +@@ -19,13 +19,11 @@ QMAKE_CC = gcc + QMAKE_CXX = g++ + DEFINES += + INCLUDEPATH += /usr/include/qt5 +-# /usr/local/qwt-6.1.0/include +-INCLUDEPATH += ../qwt-lib/src + # LIBS += /usr/lib/x86_64-linux-gnu/libboost_regex.a + # LIBS += -lboost_regex + LIBS += -l:libboost_regex.a + # /usr/local/qwt-6.1.0/lib/libqwt.a +-LIBS += ../qwt-lib/lib/libqwt.a ++LIBS += -lqwt + QMAKE_CXXFLAGS += -std=c++11 + # + TARGET = linssid +diff --git a/linssid.pro b/linssid.pro +index 42dc277..26d1a2c 100644 +--- a/linssid.pro ++++ b/linssid.pro +@@ -1,5 +1,3 @@ + TEMPLATE = subdirs + CONFIG += ordered +-SUBDIRS = qwt-lib \ +- linssid-app +-linssid-app.depends = qwt-lib ++SUBDIRS = linssid-app +-- +2.5.2 + diff --git a/nixpkgs/pkgs/applications/networking/linssid/default.nix b/nixpkgs/pkgs/applications/networking/linssid/default.nix new file mode 100644 index 000000000000..090f53cffb62 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/linssid/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchurl, qtbase, qtsvg, qmake, pkg-config, boost, wirelesstools, iw, qwt, wrapQtAppsHook }: + +stdenv.mkDerivation rec { + pname = "linssid"; + version = "2.7"; + + src = fetchurl { + url = "mirror://sourceforge/project/linssid/LinSSID_${version}/linssid_${version}.orig.tar.gz"; + sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl"; + }; + + nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ]; + buildInputs = [ qtbase qtsvg boost qwt ]; + + patches = [ ./0001-unbundled-qwt.patch ]; + + postPatch = '' + sed -e "s|/usr/include/qt5.*$|& ${qwt}/include|" -i linssid-app/linssid-app.pro + sed -e "s|/usr/include/|/nonexistent/|g" -i linssid-app/*.pro + sed -e 's|^LIBS .*= .*libboost_regex.a|LIBS += -lboost_regex|' \ + -e "s|/usr|$out|g" \ + -i linssid-app/linssid-app.pro linssid-app/linssid.desktop + sed -e "s|\.\./\.\./\.\./\.\./usr|$out|g" -i linssid-app/*.ui + + # Remove bundled qwt + rm -fr qwt-lib + ''; + + qtWrapperArgs = + [ ''--prefix PATH : ${lib.makeBinPath [ wirelesstools iw ]}'' ]; + + meta = with lib; { + description = "Graphical wireless scanning for Linux"; + homepage = "https://sourceforge.net/projects/linssid/"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix new file mode 100644 index 000000000000..18189f64a6d6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix @@ -0,0 +1,50 @@ +{ lib +, fetchFromGitHub +, python3 +, wrapQtAppsHook +}: + +python3.pkgs.buildPythonApplication rec { + pname = "maestral-qt"; + version = "1.4.6"; + disabled = python3.pkgs.pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "SamSchott"; + repo = "maestral-qt"; + rev = "v${version}"; + sha256 = "sha256-Y4n67LJyNUsLmGMu7B73n888qmCQ9HjxCSM1MlfTbqQ="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + click + markdown2 + maestral + packaging + pyqt5 + ] ++ lib.optionals (pythonOlder "3.9") [ + importlib-resources + ]; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + makeWrapperArgs = [ + # Firstly, add all necessary QT variables + "\${qtWrapperArgs[@]}" + + # Add the installed directories to the python path so the daemon can find them + "--prefix" "PYTHONPATH" ":" "${lib.concatStringsSep ":" (map (p: p + "/lib/${python3.libPrefix}/site-packages") (python3.pkgs.requiredPythonModules python3.pkgs.maestral.propagatedBuildInputs))}" + "--prefix" "PYTHONPATH" ":" "${python3.pkgs.maestral}/lib/${python3.libPrefix}/site-packages" + ]; + + # no tests + doCheck = false; + + meta = with lib; { + description = "GUI front-end for maestral (an open-source Dropbox client) for Linux"; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.linux; + homepage = "https://maestral.app"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix new file mode 100644 index 000000000000..09ce39027b5a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix @@ -0,0 +1,64 @@ +{ lib, buildGoModule, fetchFromSourcehut +, ncurses, notmuch, scdoc +, python3, w3m, dante +}: + +buildGoModule rec { + pname = "aerc"; + version = "0.5.2"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = pname; + rev = version; + sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils"; + }; + + runVend = true; + vendorSha256 = "9PXdUH0gu8PGaKlRJCUF15W1/LxA+sv3Pwl2UnjYxWY="; + + doCheck = false; + + nativeBuildInputs = [ + scdoc + python3.pkgs.wrapPython + ]; + + patches = [ + ./runtime-sharedir.patch + ]; + + pythonPath = [ + python3.pkgs.colorama + ]; + + buildInputs = [ python3 notmuch ]; + + buildPhase = " + runHook preBuild + # we use make instead of go build + runHook postBuild + "; + + installPhase = '' + runHook preInstall + make PREFIX=$out GOFLAGS="$GOFLAGS -tags=notmuch" install + wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath" + runHook postInstall + ''; + + postFixup = '' + wrapProgram $out/bin/aerc --prefix PATH ":" \ + "$out/share/aerc/filters:${lib.makeBinPath [ ncurses ]}" + wrapProgram $out/share/aerc/filters/html --prefix PATH ":" \ + ${lib.makeBinPath [ w3m dante ]} + ''; + + meta = with lib; { + description = "An email client for your terminal"; + homepage = "https://aerc-mail.org/"; + maintainers = with maintainers; [ tadeokondrak ]; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch new file mode 100644 index 000000000000..e08161e61eb6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch @@ -0,0 +1,60 @@ +From c715a96c693baa0e6c8ab3c96b6c10e0a40bf7af Mon Sep 17 00:00:00 2001 +From: Tadeo Kondrak <me@tadeo.ca> +Date: Thu, 21 Jan 2021 10:40:49 +0100 +Subject: [PATCH] Fix aerc breaking every time the package is rebuilt. + +On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc +fills it in as part of the default config and then installs that config +to the users home folder. Fix this by not substituting @SHAREDIR@ in the +default config until runtime. +--- + Makefile | 2 +- + config/config.go | 13 +++++++++++++ + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 77f5e61..98cbc11 100644 +--- a/Makefile ++++ b/Makefile +@@ -23,7 +23,7 @@ aerc: $(GOSRC) + -o $@ + + aerc.conf: config/aerc.conf.in +- sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in ++ cat config/aerc.conf.in > $@ + + debug: $(GOSRC) + GOFLAGS="-tags=notmuch" \ +diff --git a/config/config.go b/config/config.go +index 87d183a..cb6611a 100644 +--- a/config/config.go ++++ b/config/config.go +@@ -470,6 +470,16 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) { + return nil, err + } + } ++ if sec, err := file.GetSection("templates"); err == nil { ++ if key, err := sec.GetKey("template-dirs"); err == nil { ++ sec.NewKey("template-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir)) ++ } ++ } ++ if sec, err := file.GetSection("ui"); err == nil { ++ if key, err := sec.GetKey("stylesets-dirs"); err == nil { ++ sec.NewKey("stylesets-dirs", strings.ReplaceAll(key.String(), "@SHAREDIR@", sharedir)) ++ } ++ } + file.NameMapper = mapName + config := &AercConfig{ + Bindings: BindingConfig{ +@@ -547,6 +557,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) { + return nil, err + } + ++ for i, filter := range config.Filters { ++ config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir) ++ } + if ui, err := file.GetSection("general"); err == nil { + if err := ui.MapTo(&config.General); err != nil { + return nil, err +-- +2.30.0 diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix new file mode 100644 index 000000000000..2e6c8cf02368 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix @@ -0,0 +1,45 @@ +{ lib, python3Packages, notmuch }: + +python3Packages.buildPythonApplication rec { + pname = "afew"; + version = "3.0.1"; + + src = python3Packages.fetchPypi { + inherit pname version; + sha256 = "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff"; + }; + + nativeBuildInputs = with python3Packages; [ sphinx setuptools-scm ]; + + propagatedBuildInputs = with python3Packages; [ + python3Packages.setuptools python3Packages.notmuch chardet dkimpy + ]; + + checkInputs = with python3Packages; [ + freezegun notmuch + ]; + + makeWrapperArgs = [ + ''--prefix PATH ':' "${notmuch}/bin"'' + ]; + + outputs = [ "out" "doc" ]; + + postBuild = '' + ${python3Packages.python.interpreter} setup.py build_sphinx -b html,man + ''; + + postInstall = '' + install -D -v -t $out/share/man/man1 build/sphinx/man/* + mkdir -p $out/share/doc/afew + cp -R build/sphinx/html/* $out/share/doc/afew + ''; + + + meta = with lib; { + homepage = "https://github.com/afewmail/afew"; + description = "An initial tagging script for notmuch mail"; + license = licenses.isc; + maintainers = with maintainers; [ andir flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix new file mode 100644 index 000000000000..d169e1fdea65 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix @@ -0,0 +1,33 @@ +{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, libkrb5 +, openldap +}: + +stdenv.mkDerivation rec { + pname = "alpine"; + version = "2.24"; + + src = fetchurl { + url = "http://alpine.x10host.com/alpine/release/src/${pname}-${version}.tar.xz"; + sha256 = "1vxw19nx10y7nx01d9i6gah2f3y5r2idbq56l13bdqi91bx9y6k5"; + }; + + buildInputs = [ + ncurses tcl openssl pam libkrb5 openldap + ]; + + hardeningDisable = [ "format" ]; + + configureFlags = [ + "--with-ssl-include-dir=${openssl.dev}/include/openssl" + "--with-passfile=.pine-passfile" + "--with-c-client-target=slx" + ]; + + meta = with lib; { + description = "Console mail reader"; + license = licenses.asl20; + maintainers = with maintainers; [ raskin ]; + platforms = platforms.linux; + homepage = "http://alpine.x10host.com/"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix new file mode 100644 index 000000000000..4401a0a7df80 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix @@ -0,0 +1,56 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gnome, gmime3, webkitgtk, ronn +, libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable +, gtkmm3, libpeas, gsettings-desktop-schemas, gobject-introspection, python3 + +# vim to be used, should support the GUI mode. +, vim ? vim_configurable.override { features = "normal"; gui = "auto"; } + +# additional python3 packages to be available within plugins +, extraPythonPackages ? [] +}: + +stdenv.mkDerivation rec { + pname = "astroid"; + version = "0.15"; + + src = fetchFromGitHub { + owner = "astroidmail"; + repo = "astroid"; + rev = "v${version}"; + sha256 = "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3"; + }; + + nativeBuildInputs = [ + cmake ronn pkg-config wrapGAppsHook gobject-introspection + python3 python3.pkgs.wrapPython + ]; + + buildInputs = [ + gtkmm3 gmime3 webkitgtk libsass libpeas + python3 + notmuch boost gsettings-desktop-schemas gnome.adwaita-icon-theme + glib-networking protobuf + vim + ]; + + postPatch = '' + sed -i "s~gvim ~${vim}/bin/vim -g ~g" src/config.cc + sed -i "s~ -geom 10x10~~g" src/config.cc + ''; + + pythonPath = with python3.pkgs; requiredPythonModules [ pygobject3 ] ++ extraPythonPackages; + preFixup = '' + buildPythonPath "$out $pythonPath" + gappsWrapperArgs+=( + --prefix PYTHONPATH : "$program_PYTHONPATH" + ) + ''; + + meta = with lib; { + homepage = "https://astroidmail.github.io/"; + description = "GTK frontend to the notmuch mail system"; + maintainers = with maintainers; [ bdimcheff SuprDewd ]; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix new file mode 100644 index 000000000000..2f9832d9193d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv +, fetchurl +, glib +, gmime3 +, gnutls +, gobject-introspection +, gpgme +, gtk3 +, gtksourceview +, gtkspell3 +, intltool +, libcanberra-gtk3 +, libesmtp +, libical +, libnotify +, libsecret +, openssl +, pkg-config +, webkitgtk +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "balsa"; + version = "2.6.1"; + + src = fetchurl { + url = "https://pawsa.fedorapeople.org/balsa/${pname}-${version}.tar.bz2"; + sha256 = "1xkxx801p7sbfkn0bh3cz85wra4xf1z1zhjqqc80z1z1nln7fhb4"; + }; + + nativeBuildInputs = [ + pkg-config + intltool + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ + glib + gmime3 + gnutls + gpgme + gtk3 + gtksourceview + gtkspell3 + libcanberra-gtk3 + libesmtp + libical + libnotify + libsecret + openssl + webkitgtk + ]; + + configureFlags = [ + "--with-canberra" + "--with-gtksourceview" + "--with-libsecret" + "--with-ssl" + "--with-unique" + "--without-gnome" + "--with-spell-checker=gtkspell" + ]; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "http://pawsa.fedorapeople.org/balsa/"; + description = "An e-mail client for GNOME"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix new file mode 100644 index 000000000000..d415eb4e51f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/bubblemail/default.nix @@ -0,0 +1,76 @@ +{ lib +, fetchFromGitLab +, gettext +, gtk3 +, python3Packages +, gdk-pixbuf +, libnotify +, gst_all_1 +, libsecret +, wrapGAppsHook +, gsettings-desktop-schemas +, gnome-online-accounts +, glib +, gobject-introspection +, folks +}: + +python3Packages.buildPythonApplication rec { + pname = "bubblemail"; + version = "1.3"; + + src = fetchFromGitLab { + domain = "framagit.org"; + owner = "razer"; + repo = "bubblemail"; + rev = "v${version}"; + sha256 = "FEIdEoZBlM28F5kSMoln7KACwetb8hp+qix1P+DIE8k="; + }; + + buildInputs = [ + gtk3 + gdk-pixbuf + glib + libnotify + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + libsecret + gnome-online-accounts + folks + ]; + + nativeBuildInputs = [ + gettext + wrapGAppsHook + python3Packages.pillow + # For setup-hook + gobject-introspection + ]; + + propagatedBuildInputs = with python3Packages; [ + gsettings-desktop-schemas + pygobject3 + dbus-python + pyxdg + ]; + + # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped + dontWrapGApps = true; + + # https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "An extensible mail notification service."; + homepage = "http://bubblemail.free.fr/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix new file mode 100644 index 000000000000..e28680c245fb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix @@ -0,0 +1,180 @@ +{ stdenv, lib, fetchgit, wrapGAppsHook, autoreconfHook, bison, flex +, curl, gtk2, gtk3, pkg-config, python2, python3, shared-mime-info +, glib-networking, gsettings-desktop-schemas + +# Use the experimental gtk3 branch. +, useGtk3 ? false + +# Package compatibility: old parameters whose name were not directly derived +, enablePgp ? true +, enablePluginNotificationDialogs ? true +, enablePluginNotificationSounds ? true +, enablePluginPdf ? true +, enablePluginRavatar ? true +, enableSpellcheck ? true + +# Arguments to include external libraries +, enableLibSM ? true, libSM +, enableGnuTLS ? true, gnutls +, enableEnchant ? enableSpellcheck, enchant +, enableDbus ? true, dbus, dbus-glib +, enableLdap ? true, openldap +, enableNetworkManager ? true, networkmanager +, enableLibetpan ? true, libetpan +, enableValgrind ? !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind, valgrind +, enableSvg ? true, librsvg + +# Configure claws-mail's plugins +, enablePluginAcpiNotifier ? true +, enablePluginAddressKeeper ? true +, enablePluginArchive ? true, libarchive +, enablePluginAttRemover ? true +, enablePluginAttachWarner ? true +, enablePluginBogofilter ? true +, enablePluginBsfilter ? true +, enablePluginClamd ? true +, enablePluginDillo ? true +, enablePluginFancy ? useGtk3, libsoup, webkitgtk +, enablePluginFetchInfo ? true +, enablePluginLibravatar ? enablePluginRavatar +, enablePluginLitehtmlViewer ? true, gumbo +, enablePluginMailmbox ? true +, enablePluginManageSieve ? true +, enablePluginNewMail ? true +, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk2, libcanberra-gtk3, libnotify +, enablePluginPdfViewer ? enablePluginPdf, poppler +, enablePluginPerl ? true, perl +, enablePluginPython ? true +, enablePluginPgp ? enablePgp, gnupg, gpgme +, enablePluginRssyl ? true, libxml2 +, enablePluginSmime ? true +, enablePluginSpamassassin ? true +, enablePluginSpamReport ? true +, enablePluginTnefParse ? true, libytnef +, enablePluginVcalendar ? true, libical +}: + +with lib; + +let + version = if useGtk3 then "3.99.0" else "3.17.8"; + + # The official release uses gtk2 and contains the version tag. + gtk2src = { + sha256 = "0l4f8q11iyj8pi120lrapgq51k5j64xf0jlczkzbm99rym752ch5"; + }; + + # The corresponding commit in the gtk3 branch. + gtk3src = { + sha256 = "176h1swh1zx6dqyzfz470x4a1xicnv0zhy8ir47k7p23g6y17i2k"; + }; + + python = if useGtk3 then python3 else python2; + pythonPkgs = if useGtk3 + then + with python.pkgs; [ python wrapPython pygobject3 ] + else + with python.pkgs; [ python wrapPython pygtk pygobject2 ]; + + features = [ + { flags = [ "acpi_notifier-plugin" ]; enabled = enablePluginAcpiNotifier; } + { flags = [ "address_keeper-plugin" ]; enabled = enablePluginAddressKeeper; } + { flags = [ "archive-plugin" ]; enabled = enablePluginArchive; deps = [ libarchive ]; } + { flags = [ "att_remover-plugin" ]; enabled = enablePluginAttRemover; } + { flags = [ "attachwarner-plugin" ]; enabled = enablePluginAttachWarner; } + { flags = [ "bogofilter-plugin" ]; enabled = enablePluginBogofilter; } + { flags = [ "bsfilter-plugin" ]; enabled = enablePluginBsfilter; } + { flags = [ "clamd-plugin" ]; enabled = enablePluginClamd; } + { flags = [ "dbus" ]; enabled = enableDbus; deps = [ dbus dbus-glib ]; } + { flags = [ "dillo-plugin" ]; enabled = enablePluginDillo; } + { flags = [ "enchant" ]; enabled = enableEnchant; deps = [ enchant ]; } + { flags = [ "fancy-plugin" ]; enabled = enablePluginFancy; deps = [ libsoup webkitgtk ]; } + { flags = [ "fetchinfo-plugin" ]; enabled = enablePluginFetchInfo; } + { flags = [ "gnutls" ]; enabled = enableGnuTLS; deps = [ gnutls ]; } + { flags = [ "ldap" ]; enabled = enableLdap; deps = [ openldap ]; } + { flags = [ "libetpan" ]; enabled = enableLibetpan; deps = [ libetpan ]; } + { flags = [ "libravatar-plugin" ]; enabled = enablePluginLibravatar; } + { flags = [ "libsm" ]; enabled = enableLibSM; deps = [ libSM ]; } + { flags = [ "litehtml_viewer-plugin" ]; enabled = enablePluginLitehtmlViewer; deps = [ gumbo ]; } + { flags = [ "mailmbox-plugin" ]; enabled = enablePluginMailmbox; } + { flags = [ "managesieve-plugin" ]; enabled = enablePluginManageSieve; } + { flags = [ "networkmanager" ]; enabled = enableNetworkManager; deps = [ networkmanager ]; } + { flags = [ "newmail-plugin" ]; enabled = enablePluginNewMail; } + { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [(if useGtk3 then libcanberra-gtk3 else libcanberra-gtk2)]; } + { flags = [ "pdf_viewer-plugin" ]; enabled = enablePluginPdfViewer; deps = [ poppler ]; } + { flags = [ "perl-plugin" ]; enabled = enablePluginPerl; deps = [ perl ]; } + { flags = [ "pgpcore-plugin" "pgpinline-plugin" "pgpmime-plugin" ]; enabled = enablePluginPgp; deps = [ gnupg gpgme ]; } + { flags = [ "python-plugin" ]; enabled = enablePluginPython; } + { flags = [ "rssyl-plugin" ]; enabled = enablePluginRssyl; deps = [ libxml2 ]; } + { flags = [ "smime-plugin" ]; enabled = enablePluginSmime; } + { flags = [ "spam_report-plugin" ]; enabled = enablePluginSpamReport; } + { flags = [ "spamassassin-plugin" ]; enabled = enablePluginSpamassassin; } + { flags = [ "svg" ]; enabled = enableSvg; deps = [ librsvg ]; } + { flags = [ "tnef_parse-plugin" ]; enabled = enablePluginTnefParse; deps = [ libytnef ]; } + { flags = [ "valgrind" ]; enabled = enableValgrind; deps = [ valgrind ]; } + { flags = [ "vcalendar-plugin" ]; enabled = enablePluginVcalendar; deps = [ libical ]; } + ]; +in stdenv.mkDerivation rec { + pname = "claws-mail"; + inherit version; + + src = fetchgit ({ + rev = version; + url = "git://git.claws-mail.org/claws.git"; + } // (if useGtk3 then gtk3src else gtk2src)); + + outputs = [ "out" "dev" ]; + + patches = [ ./mime.patch ]; + + preConfigure = '' + # autotools check tries to dlopen libpython as a requirement for the python plugin + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib + # generate version without .git + [ -e version ] || echo "echo ${version}" > version + ''; + + postPatch = '' + substituteInPlace src/procmime.c \ + --subst-var-by MIMEROOTDIR ${shared-mime-info}/share + ''; + + nativeBuildInputs = [ autoreconfHook pkg-config bison flex wrapGAppsHook ]; + propagatedBuildInputs = pythonPkgs; + + buildInputs = + [ curl gsettings-desktop-schemas glib-networking ] + ++ [(if useGtk3 then gtk3 else gtk2)] + ++ concatMap (f: optionals f.enabled f.deps) (filter (f: f ? deps) features) + ; + + configureFlags = + [ + "--disable-manual" # Missing docbook-tools, e.g., docbook2html + "--disable-compface" # Missing compface library + "--disable-jpilot" # Missing jpilot library + + "--disable-gdata-plugin" # Complains about missing libgdata, even when provided + ] ++ + (map (feature: map (flag: strings.enableFeature feature.enabled flag) feature.flags) features); + + enableParallelBuilding = true; + + preFixup = '' + buildPythonPath "$out $pythonPkgs" + gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share" --prefix PYTHONPATH : "$program_PYTHONPATH") + ''; + + postInstall = '' + mkdir -p $out/share/applications + cp claws-mail.desktop $out/share/applications + ''; + + meta = { + description = "The user-friendly, lightweight, and fast email client"; + homepage = "https://www.claws-mail.org/"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ fpletz globin orivej oxzi ajs124 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch new file mode 100644 index 000000000000..2ff4269c3329 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch @@ -0,0 +1,28 @@ +diff --git a/src/procmime.c b/src/procmime.c +index bd3239e..06a3b26 100644 +--- a/src/procmime.c ++++ b/src/procmime.c +@@ -1144,20 +1144,16 @@ GList *procmime_get_mime_type_list(void) + MimeType *mime_type; + gboolean fp_is_glob_file = TRUE; + + if (mime_type_list) + return mime_type_list; +- +-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) +- if ((fp = claws_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL) +-#else +- if ((fp = claws_fopen("/usr/share/mime/globs", "rb")) == NULL) +-#endif ++ ++ if ((fp = claws_fopen("@MIMEROOTDIR@/mime/globs", "rb")) == NULL) + { + fp_is_glob_file = FALSE; + if ((fp = claws_fopen("/etc/mime.types", "rb")) == NULL) { + if ((fp = claws_fopen(SYSCONFDIR "/mime.types", "rb")) + == NULL) { + FILE_OP_ERROR(SYSCONFDIR "/mime.types", + "claws_fopen"); + return NULL; + } + diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix new file mode 100644 index 000000000000..1f7d663cf8e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix @@ -0,0 +1,33 @@ +{ appimageTools, lib, fetchurl }: + +let + pname = "electron-mail"; + version = "4.12.2"; + name = "ElectronMail-${version}"; + + src = fetchurl { + url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-linux-x86_64.AppImage"; + sha256 = "D+0qoIb0EwUVbgKOiKQpqoLDgm8l/UKDWm/BjhW4MYU="; + }; + + appimageContents = appimageTools.extract { inherit name src; }; +in appimageTools.wrapType2 { + inherit name src; + + extraInstallCommands = '' + mv $out/bin/${name} $out/bin/${pname} + + install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + cp -r ${appimageContents}/usr/share/icons $out/share + ''; + + meta = with lib; { + description = "ElectronMail is an Electron-based unofficial desktop client for ProtonMail"; + homepage = "https://github.com/vladimiry/ElectronMail"; + license = licenses.mit; + maintainers = [ maintainers.princemachiavelli ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix new file mode 100644 index 000000000000..ad43ed97e09c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, gnome, cmake, gettext, intltool, pkg-config, evolution-data-server, evolution +, sqlite, gtk3, webkitgtk, libgdata, libmspack }: + +stdenv.mkDerivation rec { + pname = "evolution-ews"; + version = "3.40.1"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1kgxdacqqcq8yfkij6vyqlk5r4yqvw7gh7mxqii670hrn1mb2s50"; + }; + + nativeBuildInputs = [ cmake gettext intltool pkg-config ]; + + buildInputs = [ + evolution-data-server evolution + sqlite libgdata + gtk3 webkitgtk + libmspack + ]; + + cmakeFlags = [ + # Building with libmspack as recommended: https://wiki.gnome.org/Apps/Evolution/Building#Build_evolution-ews + "-DWITH_MSPACK=ON" + # don't try to install into ${evolution} + "-DFORCE_INSTALL_PREFIX=ON" + ]; + + passthru = { + updateScript = gnome.updateScript { + packageName = "evolution-ews"; + versionPolicy = "odd-unstable"; + }; + }; + + meta = with lib; { + description = "Evolution connector for Microsoft Exchange Server protocols"; + homepage = "https://gitlab.gnome.org/GNOME/evolution-ews"; + license = "LGPL-2.1-only OR LGPL-3.0-only"; # https://gitlab.gnome.org/GNOME/evolution-ews/issues/111 + maintainers = [ maintainers.dasj19 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix new file mode 100644 index 000000000000..53fe3d6f9496 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix @@ -0,0 +1,133 @@ +{ lib, stdenv +, cmake +, ninja +, intltool +, fetchurl +, libxml2 +, webkitgtk +, highlight +, pkg-config +, gtk3 +, glib +, libnotify +, libpst +, gspell +, evolution-data-server +, libgdata +, libgweather +, glib-networking +, gsettings-desktop-schemas +, wrapGAppsHook +, itstool +, shared-mime-info +, libical +, db +, gcr +, sqlite +, gnome +, librsvg +, gdk-pixbuf +, libsecret +, nss +, nspr +, icu +, libcanberra-gtk3 +, bogofilter +, gst_all_1 +, procps +, p11-kit +, openldap +, spamassassin +}: + +stdenv.mkDerivation rec { + pname = "evolution"; + version = "3.40.1"; + + src = fetchurl { + url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "07n4sbgsh0y9hrn52ymvy45ah65ll55gglgvqqi3h9nhkyy64y9g"; + }; + + nativeBuildInputs = [ + cmake + intltool + itstool + libxml2 + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + gnome.adwaita-icon-theme + bogofilter + db + evolution-data-server + gcr + gdk-pixbuf + glib + glib-networking + gnome.gnome-desktop + gsettings-desktop-schemas + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + gtk3 + gspell + highlight + icu + libcanberra-gtk3 + libgdata + libgweather + libical + libnotify + libpst + librsvg + libsecret + nspr + nss + openldap + p11-kit + procps + shared-mime-info + sqlite + webkitgtk + ]; + + propagatedUserEnvPkgs = [ + evolution-data-server + ]; + + cmakeFlags = [ + "-DENABLE_AUTOAR=OFF" + "-DENABLE_LIBCRYPTUI=OFF" + "-DENABLE_YTNEF=OFF" + "-DWITH_SPAMASSASSIN=${spamassassin}/bin/spamassassin" + "-DWITH_SA_LEARN=${spamassassin}/bin/sa-learn" + "-DWITH_BOGOFILTER=${bogofilter}/bin/bogofilter" + "-DWITH_OPENLDAP=${openldap}" + ]; + + requiredSystemFeatures = [ + "big-parallel" + ]; + + doCheck = true; + + passthru = { + updateScript = gnome.updateScript { + packageName = "evolution"; + versionPolicy = "odd-unstable"; + }; + }; + + PKG_CONFIG_LIBEDATASERVERUI_1_2_UIMODULEDIR = "${placeholder "out"}/lib/evolution-data-server/ui-modules"; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Evolution"; + description = "Personal information management application that provides integrated mail, calendaring and address book functionality"; + maintainers = teams.gnome.members; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix new file mode 100644 index 000000000000..7837393926f6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix @@ -0,0 +1,35 @@ +{ lib, makeWrapper, symlinkJoin, gnome, plugins }: + +symlinkJoin { + name = "evolution-with-plugins"; + paths = [ gnome.evolution-data-server ] ++ plugins; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + for i in $out/bin/* $out/libexec/**; do + if [ ! -d $i ]; then + echo wrapping $i + wrapProgram $i --set EDS_EXTRA_PREFIXES "${lib.concatStringsSep ":" plugins}" + fi + done + + fixSymlink () { + local link=$1 + local target=$(readlink $link); + local newtarget=$(sed "s@/nix/store/[^/]*/@$out/@" <<< "$target") + if [[ $target != $newtarget ]] && [[ -d $newtarget ]]; then + echo fixing link to point to $newtarget instead of $target + rm $link + ln -s $newtarget $link + fi + } + + fixSymlink $out/share/dbus-1/service + fixSymlink $out/lib/systemd/user + for i in $out/share/dbus-1/services/*.service $out/lib/systemd/user/*.service; do + echo fixing service file $i to point to $out + sed -i "s@/nix/store/[^/]*/@$out/@" $i + done + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix new file mode 100644 index 000000000000..b2ec2a743f3d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, pkg-config +, gobject-introspection +, pango +, cairo +, gtk2 +}: + +buildGoModule rec { + pname = "hasmail-unstable"; + version = "2019-08-24"; + + src = fetchFromGitHub { + owner = "jonhoo"; + repo = "hasmail"; + rev = "eb52536d26815383bfe5990cd5ace8bb9d036c8d"; + sha256 = "1p6kwa5xk1mb1fkkxz1b5rcyp5kb4zc8nfif1gk6fab6wbdj9ia1"; + }; + + vendorSha256 = "0sblgjmn3i3k31jfq5zy3bx7bv5z2cg6rjzr7aj87c57yhzzcmk7"; + + doCheck = false; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + pango + cairo + gtk2 + ]; + + meta = with lib; { + description = "Simple tray icon for detecting new email on IMAP servers"; + homepage = "https://github.com/jonhoo/hasmail"; + license = licenses.unlicense; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix new file mode 100644 index 000000000000..b1c709b055b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix @@ -0,0 +1,55 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, openssl +, pkg-config +, installShellFiles +, enableCompletions ? stdenv.hostPlatform == stdenv.buildPlatform +, Security +, libiconv +}: +rustPlatform.buildRustPackage rec { + pname = "himalaya"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "soywod"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-6RgT/SxO4vsk8Yx2AbaNIFvnAvgDmeTXvb/v6nUJxhc="; + }; + + cargoSha256 = "sha256-NEuIh7FwIdAWzlChna3+G0VukfV8nYZfVWa+3LxQCIA="; + + # use --lib flag to avoid test with imap server + # https://github.com/soywod/himalaya/issues/145 + cargoTestFlags = [ "--lib" ]; + + nativeBuildInputs = [ ] + ++ lib.optionals (enableCompletions) [ installShellFiles ] + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ]; + + buildInputs = + if stdenv.hostPlatform.isDarwin then [ + Security + libiconv + ] else [ + openssl + ]; + + postInstall = lib.optionalString enableCompletions '' + # Install shell function + installShellCompletion --cmd himalaya \ + --bash <($out/bin/himalaya completion bash) \ + --fish <($out/bin/himalaya completion fish) \ + --zsh <($out/bin/himalaya completion zsh) + ''; + + meta = with lib; { + description = "CLI email client written in Rust"; + homepage = "https://github.com/soywod/himalaya"; + license = licenses.bsd3; + maintainers = with maintainers; [ yanganto ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix new file mode 100644 index 000000000000..bed71202c4fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchFromGitHub, openssl, lua, pcre2 }: + +stdenv.mkDerivation rec { + pname = "imapfilter"; + version = "2.7.5"; + + src = fetchFromGitHub { + owner = "lefcha"; + repo = "imapfilter"; + rev = "v${version}"; + sha256 = "nbVwbPkNbJz4GHhvOp+QVgiBqKA/HR34p4x3NXJB7ig="; + }; + makeFlags = [ + "SSLCAFILE=/etc/ssl/certs/ca-bundle.crt" + "PREFIX=$(out)" + ]; + + buildInputs = [ openssl pcre2 lua ]; + + meta = { + homepage = "https://github.com/lefcha/imapfilter"; + description = "Mail filtering utility"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix new file mode 100644 index 000000000000..878b778c5a50 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix @@ -0,0 +1,82 @@ +{ lib, stdenv, fetchurl, pkg-config, lua, file, ncurses, gmime, pcre-cpp +, perl, perlPackages, makeWrapper +, debugBuild ? false +, alternativeGlobalConfigFilePath ? null +}: + +let + version = "3.1"; + binaryName = if debugBuild then "lumail2-debug" else "lumail2"; + alternativeConfig = builtins.toFile "lumail2.lua" + (builtins.readFile alternativeGlobalConfigFilePath); + + globalConfig = if alternativeGlobalConfigFilePath == null then '' + mkdir -p $out/etc/lumail2 + cp global.config.lua $out/etc/lumail2.lua + for n in ./lib/*.lua; do + cp "$n" $out/etc/lumail2/ + done + '' else '' + ln -s ${alternativeConfig} $out/etc/lumail2.lua + ''; + + getPath = type : "${lua}/lib/?.${type};"; + luaPath = getPath "lua"; + luaCPath = getPath "so"; +in +stdenv.mkDerivation { + pname = "lumail"; + inherit version; + + src = fetchurl { + url = "https://lumail.org/download/lumail-${version}.tar.gz"; + sha256 = "0vj7p7f02m3w8wb74ilajcwznc4ai4h2ikkz9ildy0c00aqsi5w4"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + buildInputs = [ + lua file ncurses gmime pcre-cpp + perl perlPackages.JSON perlPackages.NetIMAPClient + ]; + + preConfigure = '' + sed -e 's|"/etc/lumail2|LUMAIL_LUAPATH"/..|' -i src/lumail2.cc src/imap_proxy.cc + + perlFlags= + for i in $(IFS=:; echo $PERL5LIB); do + perlFlags="$perlFlags -I$i" + done + + sed -e "s|^#\!\(.*/perl.*\)$|#\!\1$perlFlags|" -i perl.d/imap-proxy + ''; + + buildFlags = lib.optional debugBuild "lumail2-debug"; + + installPhase = '' + mkdir -p $out/bin || true + install -m755 ${binaryName} $out/bin/ + '' + + globalConfig + + '' + wrapProgram $out/bin/${binaryName} \ + --prefix LUA_PATH : "${luaPath}" \ + --prefix LUA_CPATH : "${luaCPath}" + ''; + + makeFlags = [ + "LVER=lua" + "PREFIX=$(out)" + "SYSCONFDIR=$(out)/etc" + "LUMAIL_LIBS=$(out)/etc/lumail2" + ]; + + meta = with lib; { + description = "Console-based email client"; + homepage = "https://lumail.org/"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [orivej]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix new file mode 100644 index 000000000000..d66dcbf47c16 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "mailcheck"; + version = "1.91.2"; + + patches = [ ./mailcheck-Makefile.patch ]; + + src = fetchurl { + url = "mirror://sourceforge/mailcheck/mailcheck_${version}.tar.gz"; + sha256 = "0p0azaxsnjvjbg41ycicc1i0kzw6jiynq8k49cfkdhlckxfdm9kc"; + }; + + meta = { + description = "Simple command line tool to check for new messages"; + homepage = "http://mailcheck.sourceforge.net/"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ kovirobi ]; + platforms = lib.platforms.linux; + inherit version; + + longDescription = '' + A simple command line tool to check for new mail in local mbox and + maildir and remote POP3 and IMAP mailboxes. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch new file mode 100644 index 000000000000..46b3bff4f7a9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch @@ -0,0 +1,22 @@ +diff -u a/Makefile b/Makefile +--- a/Makefile 2015-04-05 19:31:41.871227295 +0100 ++++ b/Makefile 2015-04-05 19:42:49.743517508 +0100 +@@ -1,3 +1,5 @@ ++prefix=$(out) ++ + all: mailcheck + + debug: mailcheck.c netrc.c netrc.h socket.c +@@ -7,8 +9,10 @@ + $(CC) -Wall -O2 mailcheck.c netrc.c socket.c -s -o mailcheck + + install: mailcheck +- install mailcheck $(prefix)/usr/bin +- install -m 644 mailcheckrc $(prefix)/etc ++ [ -d $(prefix)/bin ] || mkdir $(prefix)/bin ++ [ -d $(prefix)/etc ] || mkdir $(prefix)/etc ++ install mailcheck $(prefix)/bin/ ++ install -m 644 mailcheckrc $(prefix)/etc/ + + distclean: clean + diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix new file mode 100644 index 000000000000..9a2bd563fc8d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix @@ -0,0 +1,107 @@ +{ lib +, fetchFromGitHub +, gettext +, xorg # for lndir +, gtk3 +, python3Packages +, gdk-pixbuf +, libnotify +, gst_all_1 +, libsecret +, wrapGAppsHook +, gsettings-desktop-schemas +, glib +, gobject-introspection +# Available plugins (can be overriden) +, availablePlugins +# Used in the withPlugins interface at passthru, can be overrided directly, or +# prefarably via e.g: `mailnag.withPlugins([mailnag.availablePlugins.goa])` +, mailnag +, userPlugins ? [ ] +, pluginsDeps ? [ ] +}: + +python3Packages.buildPythonApplication rec { + pname = "mailnag"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "pulb"; + repo = "mailnag"; + rev = "v${version}"; + sha256 = "0m1cyzwzm7z4p2v31dx098a1iar7dbilwyjcxiqnjx05nlmiqvgf"; + }; + + buildInputs = [ + gtk3 + gdk-pixbuf + glib + libnotify + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gobject-introspection + libsecret + ] ++ pluginsDeps; + + nativeBuildInputs = [ + gettext + wrapGAppsHook + # To later add plugins to + xorg.lndir + ]; + + propagatedBuildInputs = with python3Packages; [ + gsettings-desktop-schemas + pygobject3 + dbus-python + pyxdg + ]; + + passthru = { + inherit availablePlugins; + withPlugins = + plugs: + let + # goa plugin requires gio's gnome-online-accounts which requires making sure + # mailnag runs with GI_TYPELIB_PATH containing the path to Goa-1.0.typelib. + # This is handled best by adding the plugins' deps to buildInputs and let + # wrapGAppsHook handle that. + pluginsDeps = lib.flatten (lib.catAttrs "buildInputs" plugs); + self = mailnag; + in + self.override { + userPlugins = plugs; + inherit pluginsDeps; + }; + }; + + # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped + dontWrapGApps = true; + + preFixup = '' + substituteInPlace $out/${python3Packages.python.sitePackages}/Mailnag/common/dist_cfg.py \ + --replace "/usr/" $out/ + for desktop_file in $out/share/applications/*.desktop; do + substituteInPlace "$desktop_file" \ + --replace "/usr/bin" $out/bin + done + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + # Actually install plugins + postInstall = '' + for plug in ${builtins.toString userPlugins}; do + lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages} + done + ''; + + meta = with lib; { + description = "An extensible mail notification daemon"; + homepage = "https://github.com/pulb/mailnag"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix new file mode 100644 index 000000000000..1def97bd62d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix @@ -0,0 +1,31 @@ +{ lib +, fetchFromGitHub +, python3Packages +, gobject-introspection +, gnome-online-accounts +}: + +python3Packages.buildPythonPackage rec { + pname = "mailnag-goa-plugin"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "pulb"; + repo = "mailnag-goa-plugin"; + rev = "v${version}"; + sha256 = "0bij6cy96nhq7xzslx0fnhmiac629h0x4wgy67k4i4npwqw10680"; + }; + + buildInputs = [ + gobject-introspection + gnome-online-accounts + ]; + + meta = with lib; { + description = "Mailnag GNOME Online Accounts plugin."; + homepage = "https://github.com/pulb/mailnag-goa-plugin"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix new file mode 100644 index 000000000000..cab43750a56e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix @@ -0,0 +1,52 @@ +{ lib, fetchFromGitHub, python2Packages, gnupg1orig, openssl, git }: + +python2Packages.buildPythonApplication rec { + pname = "mailpile"; + version = "1.0.0rc2"; + + src = fetchFromGitHub { + owner = "mailpile"; + repo = "Mailpile"; + rev = version; + sha256 = "1z5psh00fjr8gnl4yjcl4m9ywfj24y1ffa2rfb5q8hq4ksjblbdj"; + }; + + postPatch = '' + patchShebangs scripts + ''; + + nativeBuildInputs = with python2Packages; [ pbr git ]; + PBR_VERSION=version; + + propagatedBuildInputs = with python2Packages; [ + appdirs + cryptography + fasteners + gnupg1orig + jinja2 + pgpdump + pillow + python2Packages.lxml + spambayes + ]; + + postInstall = '' + wrapProgram $out/bin/mailpile \ + --prefix PATH ":" "${lib.makeBinPath [ gnupg1orig openssl ]}" \ + --set-default MAILPILE_SHARED "$out/share/mailpile" + ''; + + # No tests were found + doCheck = false; + + meta = with lib; { + description = "A modern, fast web-mail client with user-friendly encryption and privacy features"; + homepage = "https://www.mailpile.is/"; + license = [ licenses.asl20 licenses.agpl3 ]; + platforms = platforms.linux; + maintainers = [ ]; + knownVulnerabilities = [ + "Numerous and uncounted, upstream has requested we not package it. See more: https://github.com/NixOS/nixpkgs/pull/23058#issuecomment-283515104" + ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix new file mode 100644 index 000000000000..8fe93fb1a44a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix @@ -0,0 +1,95 @@ +{ stdenv +, lib +, fetchurl +, autoPatchelfHook +, alsa-lib +, coreutils +, db +, dpkg +, glib +, gtk3 +, wrapGAppsHook +, libkrb5 +, libsecret +, nss +, openssl +, udev +, xorg +}: + +stdenv.mkDerivation rec { + pname = "mailspring"; + version = "1.9.1"; + + src = fetchurl { + url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb"; + sha256 = "mfpwDYRpFULD9Th8tI5yqb5RYWZJHarbWYpfKS3Q6mE="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + db + glib + gtk3 + libkrb5 + libsecret + nss + xorg.libxkbfile + xorg.libXdamage + xorg.libXScrnSaver + xorg.libXtst + ]; + + runtimeDependencies = [ + coreutils + openssl + (lib.getLib udev) + ]; + + unpackPhase = '' + runHook preUnpack + + dpkg -x $src . + + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,lib} + cp -ar ./usr/share $out + + substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \ + --replace dirname ${coreutils}/bin/dirname + + ln -s $out/share/mailspring/mailspring $out/bin/mailspring + ln -s ${openssl.out}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0 + + runHook postInstall + ''; + + postFixup = /* sh */ '' + substituteInPlace $out/share/applications/Mailspring.desktop \ + --replace Exec=mailspring Exec=$out/bin/mailspring + ''; + + meta = with lib; { + description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors"; + longDescription = '' + Mailspring is an open-source mail client forked from Nylas Mail and built with Electron. + Mailspring's sync engine runs locally, but its source is not open. + ''; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ toschmidt doronbehar ]; + homepage = "https://getmailspring.com"; + downloadPage = "https://github.com/Foundry376/Mailspring"; + platforms = platforms.x86_64; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix new file mode 100644 index 000000000000..f24ed3a51df6 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix @@ -0,0 +1,54 @@ +{ coreutils, fetchFromGitHub, fetchpatch, file, gawk, gnugrep, gnused +, installShellFiles, less, lib, libiconv, makeWrapper, nano, stdenv, ruby +}: + +stdenv.mkDerivation rec { + pname = "mblaze"; + version = "1.1"; + + nativeBuildInputs = [ installShellFiles makeWrapper ]; + buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; + + src = fetchFromGitHub { + owner = "leahneukirchen"; + repo = "mblaze"; + rev = "v${version}"; + sha256 = "sha256-Ho2Qoxs93ig4yYUOaoqdYnLA8Y4+7CfRM0dju89JOa4="; + }; + + makeFlags = [ "PREFIX=$(out)" ]; + + enableParallelBuilding = true; + + postInstall = '' + installShellCompletion contrib/_mblaze + '' + lib.optionalString (ruby != null) '' + install -Dt $out/bin contrib/msuck contrib/mblow + + # The following wrappings are used to preserve the executable + # names (the value of $0 in a script). The script mcom is + # designed to be run directly or via symlinks such as mrep. Using + # symlinks changes the value of $0 in the script, and makes it + # behave differently. When using the wrapProgram tool, the resulting + # wrapper breaks this behaviour. The following wrappers preserve it. + + mkdir -p $out/wrapped + for x in mcom mbnc mfwd mrep; do + mv $out/bin/$x $out/wrapped + makeWrapper $out/wrapped/$x $out/bin/$x \ + --argv0 $out/bin/$x \ + --prefix PATH : $out/bin \ + --prefix PATH : ${lib.makeBinPath [ + coreutils file gawk gnugrep gnused + ]} + done + ''; + + meta = with lib; { + homepage = "https://github.com/leahneukirchen/mblaze"; + description = "Unix utilities for processing and interacting with mail messages which are stored in maildir folders"; + license = licenses.cc0; + platforms = platforms.all; + maintainers = [ maintainers.ajgrf ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix new file mode 100644 index 000000000000..ec50e913176e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix @@ -0,0 +1,58 @@ +{ lib +, fetchgit +, rustPlatform +, pkg-config +, openssl +, dbus +, sqlite +, file +, gzip +, makeWrapper +, notmuch + # Build with support for notmuch backend +, withNotmuch ? true +}: + +rustPlatform.buildRustPackage rec { + pname = "meli"; + version = "alpha-0.6.2"; + + src = fetchgit { + url = "https://git.meli.delivery/meli/meli.git"; + rev = version; + sha256 = "0ycyksrrp4llwklzx3ipac8hmpfxa1pa7dqsm82wic0f6p5d1dp6"; + }; + + cargoSha256 = "sha256:0lxwhb2c16w5z7rqzch0ij8n8hxb5xcin31w9i28mzv1xm7sg8ks"; + + cargoBuildFlags = lib.optional withNotmuch "--features=notmuch"; + + nativeBuildInputs = [ pkg-config gzip makeWrapper ]; + + buildInputs = [ openssl dbus sqlite ] ++ lib.optional withNotmuch notmuch; + + checkInputs = [ file ]; + + postInstall = '' + mkdir -p $out/share/man/man1 + gzip < docs/meli.1 > $out/share/man/man1/meli.1.gz + mkdir -p $out/share/man/man5 + gzip < docs/meli.conf.5 > $out/share/man/man5/meli.conf.5.gz + gzip < docs/meli-themes.5 > $out/share/man/man5/meli-themes.5.gz + '' + lib.optionalString withNotmuch '' + # Fixes this runtime error when meli is started with notmuch configured: + # $ meli + # libnotmuch5 was not found in your system. Make sure it is installed and + # in the library paths. + # notmuch is not a valid mail backend + wrapProgram $out/bin/meli --set LD_LIBRARY_PATH ${notmuch}/lib + ''; + + meta = with lib; { + description = "Experimental terminal mail client aiming for configurability and extensibility with sane defaults"; + homepage = "https://meli.delivery"; + license = licenses.gpl3; + maintainers = with maintainers; [ _0x4A6F matthiasbeyer erictapen ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix new file mode 100644 index 000000000000..a3a6051ef0c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix @@ -0,0 +1,28 @@ +{ lib, python3, notmuch }: + +python3.pkgs.buildPythonApplication rec { + pname = "mlarchive2maildir"; + version = "0.0.9"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + sha256 = "02zjwa7zbcbqj76l0qmg7bbf3fqli60pl2apby3j4zwzcrrryczs"; + }; + + nativeBuildInputs = with python3.pkgs; [ setuptools-scm ]; + + propagatedBuildInputs = with python3.pkgs; [ + beautifulsoup4 + click + click-log + requests + six + ]; + + meta = with lib; { + homepage = "https://github.com/flokli/mlarchive2maildir"; + description = "Imports mail from (pipermail) archives into a maildir"; + license = licenses.mit; + maintainers = with maintainers; [ andir flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix new file mode 100644 index 000000000000..5fcc060ffbfd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mmh/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchurl, ncurses, autoreconfHook, flex }: +let rev = "431604647f89d5aac7b199a7883e98e56e4ccf9e"; +in stdenv.mkDerivation rec { + pname = "mmh-unstable"; + version = "2019-09-08"; + + src = fetchurl { + url = "http://git.marmaro.de/?p=mmh;a=snapshot;h=${rev};sf=tgz"; + name = "mmh-${rev}.tgz"; + sha256 = "1q97p4g3f1q2m567i2dbx7mm7ixw3g91ww2rymwj42cxk9iyizhv"; + }; + + postPatch = '' + substituteInPlace sbr/Makefile.in \ + --replace "ar " "${stdenv.cc.targetPrefix}ar " + ''; + + buildInputs = [ ncurses ]; + nativeBuildInputs = [ autoreconfHook flex ]; + + meta = with lib; { + description = "Set of electronic mail handling programs"; + homepage = "http://marmaro.de/prog/mmh"; + license = licenses.bsd3; + platforms = platforms.unix; + broken = stdenv.isDarwin; + maintainers = with maintainers; [ kaction ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix new file mode 100644 index 000000000000..646fa4e2050a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchurl, makeWrapper, unzip, jre, runtimeShell }: + +let + version = "1.9"; + name = "msgviewer-${version}"; + uname = "MSGViewer-${version}"; + +in stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "mirror://sourceforge/msgviewer/${uname}/${uname}.zip"; + sha256 = "0igmr8c0757xsc94xlv2470zv2mz57zaj52dwr9wj8agmj23jbjz"; + }; + + buildCommand = '' + dir=$out/lib/msgviewer + mkdir -p $out/bin $dir + unzip $src -d $dir + mv $dir/${uname}/* $dir + rmdir $dir/${uname} + cat <<_EOF > $out/bin/msgviewer + #!${runtimeShell} -eu + exec ${lib.getBin jre}/bin/java -jar $dir/MSGViewer.jar "\$@" + _EOF + chmod 755 $out/bin/msgviewer + ''; + + nativeBuildInputs = [ makeWrapper unzip ]; + + meta = with lib; { + description = "Viewer for .msg files (MS Outlook)"; + homepage = "https://www.washington.edu/alpine/"; + license = licenses.asl20; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix new file mode 100644 index 000000000000..1428fa6a4287 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix @@ -0,0 +1,96 @@ +{ lib, stdenv, fetchurl, fetchpatch, ncurses, which, perl +, gdbm ? null +, openssl ? null +, cyrus_sasl ? null +, gnupg ? null +, gpgme ? null +, libkrb5 ? null +, headerCache ? true +, sslSupport ? true +, saslSupport ? true +, smimeSupport ? false +, gpgSupport ? false +, gpgmeSupport ? true +, imapSupport ? true +, withSidebar ? true +, gssSupport ? true +}: + +assert headerCache -> gdbm != null; +assert sslSupport -> openssl != null; +assert saslSupport -> cyrus_sasl != null; +assert smimeSupport -> openssl != null; +assert gpgSupport -> gnupg != null; +assert gpgmeSupport -> gpgme != null && openssl != null; + +with lib; + +stdenv.mkDerivation rec { + pname = "mutt"; + version = "2.1.0"; + + src = fetchurl { + url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz"; + sha256 = "0dqd6gg1wwhxjgdfl8j0kf93mw43kvd6wrwrzkscq2wjrsy5p0w0"; + }; + + patches = optional smimeSupport (fetchpatch { + url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.10.1-2/debian/patches/misc/smime.rc.patch"; + sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi"; + }); + + buildInputs = + [ ncurses which perl ] + ++ optional headerCache gdbm + ++ optional sslSupport openssl + ++ optional gssSupport libkrb5 + ++ optional saslSupport cyrus_sasl + ++ optional gpgmeSupport gpgme; + + configureFlags = [ + (enableFeature headerCache "hcache") + (enableFeature gpgmeSupport "gpgme") + (enableFeature imapSupport "imap") + (enableFeature withSidebar "sidebar") + "--enable-smtp" + "--enable-pop" + "--with-mailpath=" + + # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail + "ac_cv_path_SENDMAIL=sendmail" + + # This allows calls with "-d N", that output debug info into ~/.muttdebug* + "--enable-debug" + + # The next allows building mutt without having anything setgid + # set by the installer, and removing the need for the group 'mail' + # I set the value 'mailbox' because it is a default in the configure script + "--with-homespool=mailbox" + ] ++ optional sslSupport "--with-ssl" + ++ optional gssSupport "--with-gss" + ++ optional saslSupport "--with-sasl"; + + postPatch = optionalString (smimeSupport || gpgmeSupport) '' + sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl + ''; + + postInstall = optionalString smimeSupport '' + # S/MIME setup + cp contrib/smime.rc $out/etc/smime.rc + sed -i 's#openssl#${openssl}/bin/openssl#' $out/etc/smime.rc + echo "source $out/etc/smime.rc" >> $out/etc/Muttrc + '' + optionalString gpgSupport '' + # GnuPG setup + cp contrib/gpg.rc $out/etc/gpg.rc + sed -i 's#\(command="\)gpg #\1${gnupg}/bin/gpg #' $out/etc/gpg.rc + echo "source $out/etc/gpg.rc" >> $out/etc/Muttrc + ''; + + meta = { + description = "A small but very powerful text-based mail client"; + homepage = "http://www.mutt.org"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix new file mode 100644 index 000000000000..50b3b66f15dc --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix @@ -0,0 +1,110 @@ +{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, fetchpatch +, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl +, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib +}: + +stdenv.mkDerivation rec { + version = "20210205"; + pname = "neomutt"; + + src = fetchFromGitHub { + owner = "neomutt"; + repo = "neomutt"; + rev = version; + sha256 = "sha256-ADg/+gmndOiuQHsncOzS5K4chthXeUFz6RRJsrZNeZY="; + }; + + patches = [ + (fetchpatch { + name = "CVE-2021-32055.patch"; + url = "https://github.com/neomutt/neomutt/commit/fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc.patch"; + sha256 = "0bb7gisjynq3w7hhl6vxa469h609bcz6fkdi8vf740pqrwhk68yn"; + }) + ]; + + buildInputs = [ + cyrus_sasl gss gpgme libkrb5 libidn ncurses + notmuch openssl perl lmdb + mailcap sqlite + ]; + + nativeBuildInputs = [ + docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib w3m + ]; + + enableParallelBuilding = true; + + postPatch = '' + substituteInPlace contrib/smime_keys \ + --replace /usr/bin/openssl ${openssl}/bin/openssl + + for f in doc/*.{xml,xsl}* ; do + substituteInPlace $f \ + --replace http://docbook.sourceforge.net/release/xsl/current ${docbook_xsl}/share/xml/docbook-xsl \ + --replace http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd + done + + + # allow neomutt to map attachments to their proper mime.types if specified wrongly + # and use a far more comprehensive list than the one shipped with neomutt + substituteInPlace send/sendlib.c \ + --replace /etc/mime.types ${mailcap}/etc/mime.types + ''; + + preBuild = '' + export HOME=$(mktemp -d) + ''; + + configureFlags = [ + "--enable-autocrypt" + "--gpgme" + "--gss" + "--lmdb" + "--notmuch" + "--ssl" + "--sasl" + "--with-homespool=mailbox" + "--with-mailpath=" + # To make it not reference .dev outputs. See: + # https://github.com/neomutt/neomutt/pull/2367 + "--disable-include-path-in-cflags" + # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail + "ac_cv_path_SENDMAIL=sendmail" + "--zlib" + ]; + + # Fix missing libidn in mutt; + # this fix is ugly since it links all binaries in mutt against libidn + # like pgpring, pgpewrap, ... + NIX_LDFLAGS = "-lidn"; + + postInstall = '' + wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt" + ''; + + doCheck = true; + + preCheck = '' + cp -r ${fetchFromGitHub { + owner = "neomutt"; + repo = "neomutt-test-files"; + rev = "8629adab700a75c54e8e28bf05ad092503a98f75"; + sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr"; + }} $(pwd)/test-files + chmod -R +w test-files + (cd test-files && ./setup.sh) + + export NEOMUTT_TEST_DIR=$(pwd)/test-files + ''; + + checkTarget = "test"; + postCheck = "unset NEOMUTT_TEST_DIR"; + + meta = with lib; { + description = "A small but very powerful text-based mail client"; + homepage = "http://www.neomutt.org"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ cstrahan erikryb jfrankenau vrthra ma27 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix new file mode 100644 index 000000000000..5c979bde6040 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, + gettext, openssl +}: + +with lib; + +stdenv.mkDerivation { + pname = "notbit"; + version = "2018-01-09"; + + src = fetchFromGitHub { + owner = "bpeel"; + repo = "notbit"; + rev = "8b5d3d2da8ce54abae2536b4d97641d2c798cff3"; + sha256 = "1623n0lvx42mamvb2vwin5i38hh0nxpxzmkr5188ss2x7m20lmii"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + buildInputs = [ openssl gettext ]; + + meta = { + description = "A minimal Bitmessage client"; + homepage = "https://github.com/bpeel/notbit"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ mog ]; + broken = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix new file mode 100644 index 000000000000..64ebb78a12d0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, glib, notmuch }: + +let + version = "9"; +in +stdenv.mkDerivation { + pname = "notmuch-addrlookup"; + inherit version; + + src = fetchFromGitHub { + owner = "aperezdc"; + repo = "notmuch-addrlookup-c"; + rev ="v${version}"; + sha256 = "1j3zdx161i1x4w0nic14ix5i8hd501rb31daf8api0k8855sx4rc"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ glib notmuch ]; + + installPhase = "install -D notmuch-addrlookup $out/bin/notmuch-addrlookup"; + + meta = with lib; { + description = "Address lookup tool for Notmuch in C"; + homepage = "https://github.com/aperezdc/notmuch-addrlookup-c"; + maintainers = with maintainers; [ mog ]; + platforms = platforms.unix; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix new file mode 100644 index 000000000000..2e2b7da9a4ca --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub, gawk, mercury, pandoc, ncurses, gpgme }: + +stdenv.mkDerivation rec { + pname = "notmuch-bower"; + version = "0.12"; + + src = fetchFromGitHub { + owner = "wangp"; + repo = "bower"; + rev = version; + sha256 = "0hvvlbvad6h73iiyn9xshlj073p2ddchgh0pyizh9gi8niir4fn5"; + }; + + nativeBuildInputs = [ gawk mercury pandoc ]; + + buildInputs = [ ncurses gpgme ]; + + makeFlags = [ "PARALLEL=-j$(NIX_BUILD_CORES)" "bower" "man" ]; + + installPhase = '' + mkdir -p $out/bin + mv bower $out/bin/ + mkdir -p $out/share/man/man1 + mv bower.1 $out/share/man/man1/ + ''; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://github.com/wangp/bower"; + description = "A curses terminal client for the Notmuch email system"; + maintainers = with maintainers; [ erictapen ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix new file mode 100644 index 000000000000..dceb9c92deb8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix @@ -0,0 +1,110 @@ +{ fetchurl, fetchgit, lib, stdenv +, pkg-config, gnupg +, xapian, gmime, talloc, zlib +, doxygen, perl, texinfo +, pythonPackages +, emacs +, ruby +, which, dtach, openssl, bash, gdb, man +, withEmacs ? true +}: + +with lib; + +stdenv.mkDerivation rec { + version = "0.32.1"; + pname = "notmuch"; + + passthru = { + pythonSourceRoot = "${src.name}/bindings/python"; + inherit version; + }; + + src = fetchgit { + url = "https://git.notmuchmail.org/git/notmuch"; + sha256 = "sha256:06r0hdz8mxnzag74md62a9m6c2zm0fxn45n4n1c26j5cmrys7j16"; + rev = version; + }; + + nativeBuildInputs = [ + pkg-config + doxygen # (optional) api docs + pythonPackages.sphinx # (optional) documentation -> doc/INSTALL + texinfo # (optional) documentation -> doc/INSTALL + ] ++ optional withEmacs [ emacs ]; + + buildInputs = [ + gnupg # undefined dependencies + xapian gmime talloc zlib # dependencies described in INSTALL + perl + pythonPackages.python + ruby + ]; + + postPatch = '' + patchShebangs configure + patchShebangs test/ + + substituteInPlace lib/Makefile.local \ + --replace '-install_name $(libdir)' "-install_name $out/lib" + '' + optionalString withEmacs '' + substituteInPlace emacs/notmuch-emacs-mua \ + --replace 'EMACS:-emacs' 'EMACS:-${emacs}/bin/emacs' \ + --replace 'EMACSCLIENT:-emacsclient' 'EMACSCLIENT:-${emacs}/bin/emacsclient' + ''; + + configureFlags = [ + "--zshcompletiondir=${placeholder "out"}/share/zsh/site-functions" + "--bashcompletiondir=${placeholder "out"}/share/bash-completion/completions" + "--infodir=${placeholder "info"}/share/info" + ] ++ optional (!withEmacs) "--without-emacs" + ++ optional (withEmacs) "--emacslispdir=${placeholder "emacs"}/share/emacs/site-lisp" + ++ optional (isNull ruby) "--without-ruby"; + + # Notmuch doesn't use autoconf and consequently doesn't tag --bindir and + # friends + setOutputFlags = false; + enableParallelBuilding = true; + makeFlags = [ "V=1" ]; + + + outputs = [ "out" "man" "info" ] ++ lib.optional withEmacs "emacs"; + + preCheck = let + test-database = fetchurl { + url = "https://notmuchmail.org/releases/test-databases/database-v1.tar.xz"; + sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2"; + }; + in '' + mkdir -p test/test-databases + ln -s ${test-database} test/test-databases/database-v1.tar.xz + ''; + doCheck = !stdenv.hostPlatform.isDarwin && (versionAtLeast gmime.version "3.0.3"); + checkTarget = "test"; + checkInputs = [ + which dtach openssl bash + gdb man emacs + ]; + + # Expects there to always be a thread with ID + # thread:0000000000000009, but notmuch new is non-deterministic so + # this isn't always the case. Upstream bug report: + # https://nmbug.notmuchmail.org/nmweb/show/871reno6g7.fsf%40alyssa.is + NOTMUCH_SKIP_TESTS = "lib-thread"; + + installTargets = [ "install" "install-man" "install-info" ]; + + postInstall = lib.optionalString withEmacs '' + moveToOutput bin/notmuch-emacs-mua $emacs + ''; + + dontGzipMan = true; # already compressed + + meta = { + description = "Mail indexer"; + homepage = "https://notmuchmail.org/"; + license = licenses.gpl3; + maintainers = with maintainers; [ flokli puckipedia ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix new file mode 100644 index 000000000000..fc8c83f216cb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix @@ -0,0 +1,23 @@ +{ lib, stdenv, fetchurl +, notmuch, openssl, pkg-config, sqlite, xapian, zlib +}: +stdenv.mkDerivation rec { + version = "5"; + pname = "muchsync"; + passthru = { + inherit version; + }; + src = fetchurl { + url = "http://www.muchsync.org/src/${pname}-${version}.tar.gz"; + sha256 = "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb"; + }; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ notmuch openssl sqlite xapian zlib ]; + meta = { + description = "Synchronize maildirs and notmuch databases"; + homepage = "http://www.muchsync.org/"; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; []; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix new file mode 100644 index 000000000000..18264c5c6af4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix @@ -0,0 +1,46 @@ +{ stdenv, lib, perl, perlPackages, makeWrapper, coreutils, notmuch }: + +stdenv.mkDerivation rec { + pname = "notmuch-mutt"; + version = notmuch.version; + + outputs = [ "out" ]; + + dontStrip = true; + + buildInputs = [ + perl + makeWrapper + ] ++ (with perlPackages; [ + FileRemove + DigestSHA1 + Later + MailBox + MailMaildir + MailTools + StringShellQuote + TermReadLineGnu + ]); + + src = notmuch.src; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + installPhase = '' + ${coreutils}/bin/install -Dm755 \ + ./contrib/notmuch-mutt/notmuch-mutt \ + $out/bin/notmuch-mutt + + wrapProgram $out/bin/notmuch-mutt \ + --prefix PERL5LIB : $PERL5LIB + ''; + + meta = with lib; { + inherit version; + description = "Mutt support for notmuch"; + homepage = "https://notmuchmail.org/"; + license = with licenses; gpl3; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix new file mode 100644 index 000000000000..9a65bec21c20 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchurl, pkg-config, gtk2, openssl ? null, gpgme ? null +, gpgSupport ? true, sslSupport ? true, fetchpatch }: + +assert gpgSupport -> gpgme != null; +assert sslSupport -> openssl != null; + +with lib; + +stdenv.mkDerivation rec { + pname = "sylpheed"; + version = "3.7.0"; + + src = fetchurl { + url = "https://sylpheed.sraoss.jp/sylpheed/v3.7/${pname}-${version}.tar.xz"; + sha256 = "0j9y5vdzch251s264diw9clrn88dn20bqqkwfmis9l7m8vmwasqd"; + }; + + patches = [ + (fetchpatch { + # patch upstream bug https://sylpheed.sraoss.jp/redmine/issues/306 + name = "patch-libsylph_ssl_c.patch"; + url = "https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/mail/sylpheed/patches/patch-libsylph_ssl_c?rev=1.4&content-type=text/plain"; + sha256 = "sha256-k9OwPtHrEjaxXdH0trNqXgJMhR8kjgtei9pi6OFvILk="; + }) + ]; + + patchFlags = [ "-p0" ]; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ gtk2 ] + ++ optionals gpgSupport [ gpgme ] + ++ optionals sslSupport [ openssl ]; + + configureFlags = optional gpgSupport "--enable-gpgme" + ++ optional sslSupport "--enable-ssl"; + + meta = { + homepage = "https://sylpheed.sraoss.jp/en/"; + description = "Lightweight and user-friendly e-mail client"; + maintainers = with maintainers; [ eelco ]; + platforms = platforms.linux ++ platforms.darwin; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix new file mode 100644 index 000000000000..f3634b744aa4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix @@ -0,0 +1,188 @@ +{ stdenv, lib, fetchurl, config, makeWrapper +, alsa-lib +, at-spi2-atk +, atk +, cairo +, coreutils +, cups +, curl +, dbus +, dbus-glib +, fontconfig +, freetype +, gdk-pixbuf +, glib +, glibc +, gnome +, gnugrep +, gnupg +, gnused +, gpgme +, gtk2 +, gtk3 +, libkrb5 +, libcanberra +, libGL +, libGLU +, libX11 +, libxcb +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXfixes +, libXi +, libXinerama +, libXrender +, libXScrnSaver +, libXt +, nspr +, nss +, pango +, runtimeShell +, writeScript +, xidel +}: + +# imports `version` and `sources` +with (import ./release_sources.nix); + +let + arch = if stdenv.hostPlatform.system == "i686-linux" + then "linux-i686" + else "linux-x86_64"; + + isPrefixOf = prefix: string: + builtins.substring 0 (builtins.stringLength prefix) string == prefix; + + sourceMatches = locale: source: + (isPrefixOf source.locale locale) && source.arch == arch; + + systemLocale = config.i18n.defaultLocale or "en-US"; + + defaultSource = lib.findFirst (sourceMatches "en-US") {} sources; + + source = lib.findFirst (sourceMatches systemLocale) defaultSource sources; +in + +stdenv.mkDerivation { + pname = "thunderbird-bin"; + inherit version; + + src = fetchurl { + url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2"; + inherit (source) sha256; + }; + + phases = "unpackPhase installPhase"; + + libPath = lib.makeLibraryPath + [ stdenv.cc.cc + alsa-lib + at-spi2-atk + atk + cairo + cups + curl + dbus-glib + dbus + fontconfig + freetype + gdk-pixbuf + glib + glibc + gtk2 + gtk3 + libkrb5 + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXinerama + libXrender + libXt + libxcb + libcanberra + libGLU libGL + nspr + nss + pango + ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ + stdenv.cc.cc + ]; + + buildInputs = [ gtk3 gnome.adwaita-icon-theme ]; + + nativeBuildInputs = [ makeWrapper ]; + + # See "Note on GPG support" in `../thunderbird/default.nix` for explanations + # on adding `gnupg` and `gpgme` into PATH/LD_LIBRARY_PATH. + + installPhase = + '' + mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}" + cp -r * "$prefix/usr/lib/thunderbird-bin-${version}" + + mkdir -p "$out/bin" + ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/" + + for executable in \ + thunderbird crashreporter thunderbird-bin plugin-container updater + do + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + "$out/usr/lib/thunderbird-bin-${version}/$executable" + done + + find . -executable -type f -exec \ + patchelf --set-rpath "$libPath" \ + "$out/usr/lib/thunderbird-bin-${version}/{}" \; + + # Create a desktop item. + mkdir -p $out/share/applications + cat > $out/share/applications/thunderbird.desktop <<EOF + [Desktop Entry] + Type=Application + Exec=$out/bin/thunderbird + Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png + Name=Thunderbird + GenericName=Mail Reader + Categories=Application;Network; + EOF + + # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980 + # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE: + # commit 87e261843c4236c541ee0113988286f77d2fa1ee + wrapProgram "$out/bin/thunderbird" \ + --argv0 "$out/bin/.thunderbird-wrapped" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \ + --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \ + --set SNAP_NAME "thunderbird" \ + --set MOZ_LEGACY_PROFILES 1 \ + --set MOZ_ALLOW_DOWNGRADE 1 \ + --prefix PATH : "${lib.getBin gnupg}/bin" \ + --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib" + ''; + + passthru.updateScript = import ./../../browsers/firefox-bin/update.nix { + inherit writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell; + name = "thunderbird-bin-${version}"; + baseName = "thunderbird"; + channel = "release"; + basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin"; + baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/"; + }; + meta = with lib; { + description = "Mozilla Thunderbird, a full-featured email client (binary package)"; + homepage = "http://www.mozilla.org/thunderbird/"; + license = { + free = false; + url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/"; + }; + maintainers = with lib.maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix new file mode 100644 index 000000000000..82bf1800bb05 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix @@ -0,0 +1,665 @@ +{ + version = "78.11.0"; + sources = [ + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/af/thunderbird-78.11.0.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha256 = "061da958c7e0b52c76cc3152cf541eabd855e7189f976b9743792e52ab733ea8"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ar/thunderbird-78.11.0.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha256 = "915ca02f6e7639adef01d8e332133762bd3f88df6a1c12e86a86c04010efcd69"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ast/thunderbird-78.11.0.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha256 = "6a1995efbca69e251ca70af570b02d94a99f83ef7927d667f9f856febc53ff40"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/be/thunderbird-78.11.0.tar.bz2"; + locale = "be"; + arch = "linux-x86_64"; + sha256 = "28c87eb1651bb4fd00d8b52b3f0a4e0520ceeed76305ea124915c238562f28a2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/bg/thunderbird-78.11.0.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha256 = "24bb2cd51bdf4e99fe88a13c70289f3896cb17c911d556150f1c6e216f3ef5ce"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/br/thunderbird-78.11.0.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha256 = "473fe2acadfa6e4f6ba8eddcfd4377c3eeb583f6510461e6f51b9dcd89d36ace"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ca/thunderbird-78.11.0.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha256 = "d128adb596f6be2a940a2544ad653c812c177b3d08ddac7de716fc3ce603b71c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/cak/thunderbird-78.11.0.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha256 = "cff975db463997677d392264e55bd73a3c1a36e34991f8bcbb0673980f428589"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/cs/thunderbird-78.11.0.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha256 = "90836d8c099594ca0e459d7d07232ab47d811cafc79ca5ad2999186f242fa8c2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/cy/thunderbird-78.11.0.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha256 = "2a844b7afe834dc6e0ad291a6d5cb9ca0389d703f9a8ca385aabf5e5f012c4c5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/da/thunderbird-78.11.0.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha256 = "a37075627a6955abfc15508d2bb4a16ba330a4c64c89f95084635319ad5106e6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/de/thunderbird-78.11.0.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha256 = "6e03c8b0f791cc09b04b3114e8b44950de974beabf0563705af625ac1226dbb2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/dsb/thunderbird-78.11.0.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha256 = "546f10d4653940798540797deeec54287cd1275b5ebf350661d49cd313228ddb"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/el/thunderbird-78.11.0.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha256 = "b6fa7ae657a03c4f91905e95931af05b9af588a067a03a3a8a0d9faa8d40b59d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/en-CA/thunderbird-78.11.0.tar.bz2"; + locale = "en-CA"; + arch = "linux-x86_64"; + sha256 = "5507e9b74cea95681a2c7c21cb5127a7369366bbdaa6a24dbafc7a4fbe11b924"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/en-GB/thunderbird-78.11.0.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha256 = "fcaa2b652b43367fcb720e8386cdc92346318bab67fd720c5958e7ec236c0844"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/en-US/thunderbird-78.11.0.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha256 = "688a2f7274581fa4735a6d2f8166ba262999694889635bf3bc30ac77ad746fb3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/es-AR/thunderbird-78.11.0.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha256 = "506a63de366968c6a3e66503def57e621cc2458ccf07ccc53ffdad72fdab8914"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/es-ES/thunderbird-78.11.0.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha256 = "974acf65d509929d6b8175ac99a2886f17d4dbc4a6b8d4ef50e82585e1ea9fe6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/et/thunderbird-78.11.0.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha256 = "504c97962170388d6fe249c24b6f5a62025ebf9bf4b30b65fbfd3baf12756809"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/eu/thunderbird-78.11.0.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha256 = "b4c4bd5b228f2b945dc8f280b12a72dd68dff10562c4f19b5a27fa94a95d9128"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fa/thunderbird-78.11.0.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha256 = "4384d9579304ec344f616e00a51bebbf5038e212cc54d07586182fce9558af91"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fi/thunderbird-78.11.0.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha256 = "89bba8ff928caa79b8b1947be761388e441f01655f200f4a7fb9d9894b3ea4e6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fr/thunderbird-78.11.0.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha256 = "c2953ff1879ed8f80f6b9f1a26c08ba1f5969e8b47b81a3eb3ab690698142bbb"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/fy-NL/thunderbird-78.11.0.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha256 = "58057f7bb143512c1171296413050178f0a7a0651513e7c67d153af5874aa382"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ga-IE/thunderbird-78.11.0.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha256 = "94c070e79bba7a43f3fcc8b0b1759e424366f3ced72e2e53c5fe75689602a0ed"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/gd/thunderbird-78.11.0.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha256 = "a655074ab7d0f86318199ab32b77c889ccfd366f6a0d9d43b4bbeba54ae2ee1a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/gl/thunderbird-78.11.0.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha256 = "2835735ebf7f518aaf8d16ca3cedd3e7f7414e0cc1177a185b6e896da7e2c87f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/he/thunderbird-78.11.0.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha256 = "804c359b76026631e5a0ecf40258782f24f0be4d34b700b2aa0532607e4c5651"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hr/thunderbird-78.11.0.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha256 = "d7278bc20c7eb6c071648b639064338ae8cf7535476c0493b642d45c0ae9804d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hsb/thunderbird-78.11.0.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha256 = "fb520d80d1505b50b8d9e2a43c10512e001b120790c823eb41dcc076e68eca51"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hu/thunderbird-78.11.0.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha256 = "20639f623995f76b2f7d5f8d81e08145767d2a67d97fbd31542599abd4c80a57"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/hy-AM/thunderbird-78.11.0.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha256 = "bf4c1fcaa9bf928607dade6d8fd16b47fff6c248c07ef86fcb20c0b3a6841ba1"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/id/thunderbird-78.11.0.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha256 = "03665c9cfdd39e8ebb568151a28ecf02e425bae4241de74bdb47a0f9f38e26ba"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/is/thunderbird-78.11.0.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha256 = "1efb313ae0fc03d402f306ca0258ea4c784a762a642f947065e154c382e9135b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/it/thunderbird-78.11.0.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha256 = "95e1c07248c8ef1ab36b8a57729615a4f2ab9a4cb6148f1b0bca20554901ffca"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ja/thunderbird-78.11.0.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha256 = "95c592c41b1199bc280c219a8b4873e2bdb18171c4cccff4809a5a87ccb52d0f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ka/thunderbird-78.11.0.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha256 = "85566d54dd72a9ae9d6e3e5b85ed2ad01fe7d6e08e33b02985bc4e78e55dc5e9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/kab/thunderbird-78.11.0.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha256 = "cf7f8a9975f9ce163bba8438121cd8090a498877d65d91694aac198f4307bc90"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/kk/thunderbird-78.11.0.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha256 = "9ef1e12e02ed3e8a05f58da73e0221ac6545c515eb2e236b4a99b4594afc10af"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ko/thunderbird-78.11.0.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha256 = "6d028659f0b239b81dae7dfe44b96015ef1a217cddb135fee3bd8884e7b442c5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/lt/thunderbird-78.11.0.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha256 = "90f11349d4f5a674457f541b4edadd83b6a8f32f56eaa0a4d49e9b2c26dbbe47"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ms/thunderbird-78.11.0.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha256 = "f235748f67ad749d8b020288df8c7251bcbd9d1bc4bb979554928f54270c1f88"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/nb-NO/thunderbird-78.11.0.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha256 = "de2bfc3bfc2f285a42cbcc800867395d132a56f3aaed8ff687c9e95706164ad0"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/nl/thunderbird-78.11.0.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha256 = "4b7be1a4717a4b42bdf3b7583b2a1fa6cc9cfcad52ac7fafa4435230dec70048"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/nn-NO/thunderbird-78.11.0.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha256 = "0ba39f2e8b6895216d97e13809749fb6a1237c5bfd0c1f8ef9e365218d1422e4"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pa-IN/thunderbird-78.11.0.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha256 = "2bf07cc1f213c20b2f181cd104eb6cdd6b5f885ccff2774817ad95840addf3ef"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pl/thunderbird-78.11.0.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha256 = "9d2607c5d61ef121a383eb71d5bb650ba0ccb6b441666bbac5a9f3b91377f574"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pt-BR/thunderbird-78.11.0.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha256 = "cab1a3fabb975895b0c57bb4cb3b90f9386d0c33228b24edc13095d7d644d727"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/pt-PT/thunderbird-78.11.0.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha256 = "53b44f8caae2a2ca878435d988dbaec7c188c2fe236efcda8b92b4310aa3119f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/rm/thunderbird-78.11.0.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha256 = "f170779793afc440c273b8826cc456af903a98ac9694b1aae6ee50a5bec2be26"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ro/thunderbird-78.11.0.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha256 = "d0628abef66e2585db898834ddbd3ad9e97edea7269538dbd4b4520f22969b4a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/ru/thunderbird-78.11.0.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha256 = "077b682cc7365aab8fb3100d5f487fc873a16a4fcf71dc25e63a2604b57ccc00"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/si/thunderbird-78.11.0.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha256 = "7fc582c2f23b197da426ff0150941ea59fe1da26c84df41bff88039ff3fdf4fb"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sk/thunderbird-78.11.0.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha256 = "cde3c240b1718085b36e9479eb9717202c1a179d9cd2cd094901074d666fb763"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sl/thunderbird-78.11.0.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha256 = "54ee18a338c727838db7cdca4c458d4b9248c626a3338ec83c41001d124d2917"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sq/thunderbird-78.11.0.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha256 = "511209ca3eb810250fef3b0b01f71941bc0436410716974244aa9b5b1193582b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sr/thunderbird-78.11.0.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha256 = "d22da1e4ab790ffb3e8a8c3928adfe8c1b7b65c08a5dbaf2bb63473b08fb5207"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/sv-SE/thunderbird-78.11.0.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha256 = "c7826bfef5b705fb5d00b6ade07d092bfed25d74b6992308027e8ea99f2ed16b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/th/thunderbird-78.11.0.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha256 = "cba4789bcd072a21d5e131f0aed7aed1775f6122776f873b54fd9832bc5b621b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/tr/thunderbird-78.11.0.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha256 = "8f8345e6722931b495755ccf67b0546443e11d435cfe809edd00f6e3565a17bc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/uk/thunderbird-78.11.0.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha256 = "cce394a934ab0352cbd980d29a61fc1be4e66636ab5e31d358fa2efc82e17c19"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/uz/thunderbird-78.11.0.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha256 = "4a94d98472bcbb34a19b58c8e4caeb2e29c58d4d7496ba0d4af02a8aa0fe3802"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/vi/thunderbird-78.11.0.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha256 = "a48de334712d154917d6285a84ab115f48e672fdbcd9a7469013d3b07524562e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/zh-CN/thunderbird-78.11.0.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha256 = "6892a5236ac0abecaa657b98929fd9feeaa0ac9d4d64e000ced26687c4fa96a3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-x86_64/zh-TW/thunderbird-78.11.0.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha256 = "292ae08c031cd40a493348dcf39adfecbb9372288cd2cc4bb5ada9eaee5a7649"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/af/thunderbird-78.11.0.tar.bz2"; + locale = "af"; + arch = "linux-i686"; + sha256 = "26a1e66facb1839a8a2dcb2fffe3677a5d6f9c68343293625b22faf553ff1244"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ar/thunderbird-78.11.0.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha256 = "6625bb6b5374ae174b21d53735c4d51d3d8464556ff42ac9b270908991837989"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ast/thunderbird-78.11.0.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha256 = "57e8de5bbace8def637356ac7b519155411f8b5b2dd6496ebbdde102fea490fc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/be/thunderbird-78.11.0.tar.bz2"; + locale = "be"; + arch = "linux-i686"; + sha256 = "c045e2b129cd373ed1b2a6ce4d12d4dd3dbcf92c380a1dd8fa237f001f7c5bda"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/bg/thunderbird-78.11.0.tar.bz2"; + locale = "bg"; + arch = "linux-i686"; + sha256 = "5bd9ded232f60b88be72a5cd301b02c6bc6a6651be48e08ebe5358aaa801dd6e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/br/thunderbird-78.11.0.tar.bz2"; + locale = "br"; + arch = "linux-i686"; + sha256 = "1dc7583fe66a26b040e1a46281964898c5a79ead6516e02a0c1ec7a175962621"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ca/thunderbird-78.11.0.tar.bz2"; + locale = "ca"; + arch = "linux-i686"; + sha256 = "68cc1ba9382be6d5b90e94fdc6fd1403b2b07c67759be80d2623fcd41b16f51f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/cak/thunderbird-78.11.0.tar.bz2"; + locale = "cak"; + arch = "linux-i686"; + sha256 = "006d1806c7ce336fb51bcc74d4907a6aacb43c0902e0b323b638f9a9d2664ed1"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/cs/thunderbird-78.11.0.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha256 = "5b342803243a51a9e521705c1082c87cc528ac59475d6b893ca475ecb10ee02c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/cy/thunderbird-78.11.0.tar.bz2"; + locale = "cy"; + arch = "linux-i686"; + sha256 = "55bf6bc1aa371ad52097e89dc26af4fd11a2afc73b4ece79ae3c3bf0294fe5fc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/da/thunderbird-78.11.0.tar.bz2"; + locale = "da"; + arch = "linux-i686"; + sha256 = "41d21b7065bb4a11b80990daf550a29e5d588965c83cb48a762bba7bcbbec502"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/de/thunderbird-78.11.0.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha256 = "190339793ab6b5bcbbea2e81a1c783fa91dc18ac702870bd045ba597d0c826d0"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/dsb/thunderbird-78.11.0.tar.bz2"; + locale = "dsb"; + arch = "linux-i686"; + sha256 = "068243c6d19d9c5ba9ff4ce9793db643555657593659176fb543eba5cbde7c44"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/el/thunderbird-78.11.0.tar.bz2"; + locale = "el"; + arch = "linux-i686"; + sha256 = "ab93bb707a7bf50813b067c7d2f5f72e858073080e28094a917a4e5715612053"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/en-CA/thunderbird-78.11.0.tar.bz2"; + locale = "en-CA"; + arch = "linux-i686"; + sha256 = "2bbc9fe5efb8905d069174d939933b64dfeba6716f81487b4aedcea7e00fb48a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/en-GB/thunderbird-78.11.0.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha256 = "6ac3648deccc9b3b01575791fadec6bb9210aeae4d32934f7ae7ddee7d857b93"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/en-US/thunderbird-78.11.0.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha256 = "e423d465824e4b56f3899fb15dbac1b016832446ded5c46b8bde0c279ddd3df2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/es-AR/thunderbird-78.11.0.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha256 = "925c762d84e4620b96b8feb73a4b5506fe3dc339c0ef316e23ef7ea636ad8da6"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/es-ES/thunderbird-78.11.0.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha256 = "d75ea97c5cfa524c93055af618cbbd27a6ef8c2125ebe963467f0e93f9f80ea3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/et/thunderbird-78.11.0.tar.bz2"; + locale = "et"; + arch = "linux-i686"; + sha256 = "f925832734574c0056ce60edc9630db70d262b993c913da167f01b51f9ec14b1"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/eu/thunderbird-78.11.0.tar.bz2"; + locale = "eu"; + arch = "linux-i686"; + sha256 = "60f27f7d725bb90ec93ab247c708442506e9532c050bc7a66b5d23db2dcab91a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fa/thunderbird-78.11.0.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha256 = "505373b341db6e20b90d555815974a232b6ec685b4301e9b81305092806d721e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fi/thunderbird-78.11.0.tar.bz2"; + locale = "fi"; + arch = "linux-i686"; + sha256 = "6f9c715ae0d7db81db3ee72d822ea1d9395b30d0a4a2f46c50f77e4a156df27f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fr/thunderbird-78.11.0.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha256 = "5600b094c00d9607e91f2c28aa99de75c87999a1d16739f926812a0e9bdcda53"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/fy-NL/thunderbird-78.11.0.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha256 = "3fd24a4704df03e83bdebdf9a98a085849a72de939aa21c8fb93051ca9ddab85"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ga-IE/thunderbird-78.11.0.tar.bz2"; + locale = "ga-IE"; + arch = "linux-i686"; + sha256 = "1f69cea70de04de5458a877b9ac3c2cb9cb04a60f888cdb19118bb04156540e2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/gd/thunderbird-78.11.0.tar.bz2"; + locale = "gd"; + arch = "linux-i686"; + sha256 = "d33666cb1812541a81f91b457a7d9d3dba3ede5b90f0e56d31d90dd8359e077b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/gl/thunderbird-78.11.0.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha256 = "5694106a7bccd7dacc35d89f4c2dc3080be40f937d5b3a18e6797a2dad1dfdc4"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/he/thunderbird-78.11.0.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha256 = "77e2e3e1872c67de101d3fca87a3c308b26eb47f06222f0504a95e42f9248d39"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hr/thunderbird-78.11.0.tar.bz2"; + locale = "hr"; + arch = "linux-i686"; + sha256 = "513c4d88387c7ac3463047b4e84c2f049dcb0dcc205bcf0d1b6935f94db16a88"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hsb/thunderbird-78.11.0.tar.bz2"; + locale = "hsb"; + arch = "linux-i686"; + sha256 = "f2731aff055f734befefbd17778ccf8962c882266443b9ff5e6e6babcc09c0c4"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hu/thunderbird-78.11.0.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha256 = "c29018382b2d0d45727e23bbaf3a37661ccb7908912a24ed5ff3042766ecdec9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/hy-AM/thunderbird-78.11.0.tar.bz2"; + locale = "hy-AM"; + arch = "linux-i686"; + sha256 = "f9152a462ac758fe21c46e734bc8d8e727479f4cc8c7c26cda43bfc896244596"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/id/thunderbird-78.11.0.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha256 = "e336ee15d25b0edca6492a765af7a6b0eed3ef30155c908e4940985e373304b5"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/is/thunderbird-78.11.0.tar.bz2"; + locale = "is"; + arch = "linux-i686"; + sha256 = "6495cec1de969c1f30ef042fe604027014161497ed77eb327451eb4a70f7b1a2"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/it/thunderbird-78.11.0.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha256 = "7bb395c5b3cda42c41196f06be6ed2f35eff958c3a9325807c42616b971087c3"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ja/thunderbird-78.11.0.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha256 = "ec313b0754cffa5ed388e983faa394b146cb5227c99e74ee681ab833540b1cf4"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ka/thunderbird-78.11.0.tar.bz2"; + locale = "ka"; + arch = "linux-i686"; + sha256 = "13b8d137d2b1da647ed603208a4cd275e5cc11d3395a5709629ed8965c5c355d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/kab/thunderbird-78.11.0.tar.bz2"; + locale = "kab"; + arch = "linux-i686"; + sha256 = "a8780a5af7cd112d05a2b13469ff40d09c1909b2a09012a4ac7883b8555c3b71"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/kk/thunderbird-78.11.0.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha256 = "1a1b0ac46b10eda11ffa4a53dcf53c1dce2a2a52355e08e44960d135a8feea91"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ko/thunderbird-78.11.0.tar.bz2"; + locale = "ko"; + arch = "linux-i686"; + sha256 = "312c211b3079191b5d53cf5052e0225fee2b4e699a848b3d29a8efdf3192185b"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/lt/thunderbird-78.11.0.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha256 = "817b079ecff259043a0bf3abece031c15e04a2a615b49314d8377da6ee8feebc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ms/thunderbird-78.11.0.tar.bz2"; + locale = "ms"; + arch = "linux-i686"; + sha256 = "737b88b2fd394851143a798508b537b921fde8c0648856e09426102e7962ef7d"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/nb-NO/thunderbird-78.11.0.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha256 = "9754dd9cc6ca38970a50b3f26d0d2fe1cb1c3a66a77829489cf6f2098f7f244f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/nl/thunderbird-78.11.0.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha256 = "b43da367f973e7b2899967c777514262f4503778d550bee27c5b11651555cc17"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/nn-NO/thunderbird-78.11.0.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha256 = "cb0bae6a905c2ffc39f173519ab9dcdd7835c1b9c169f778727b55eeb8c67cfa"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pa-IN/thunderbird-78.11.0.tar.bz2"; + locale = "pa-IN"; + arch = "linux-i686"; + sha256 = "d9d7c15ca519636ff93e0f1ec956e131b5bc92bb18a67c7958140ebd75ca84c0"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pl/thunderbird-78.11.0.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha256 = "7cbe410b721565b676d6a9c0d09e163a7452b0a9137672f654f8fdeca6212a27"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pt-BR/thunderbird-78.11.0.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha256 = "aa4fbe2a656d937559c8556549f0cc2d9f8fa0c75ad1ede55c9e8877a63538cd"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/pt-PT/thunderbird-78.11.0.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha256 = "63a2c44c1ec1486574c8addf920e8561f792d01fb8179239fb268e5277e68782"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/rm/thunderbird-78.11.0.tar.bz2"; + locale = "rm"; + arch = "linux-i686"; + sha256 = "8610c130d68a8d5f38ea179b13bdd17ab349cca8647470b4e2987937676f3c5e"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ro/thunderbird-78.11.0.tar.bz2"; + locale = "ro"; + arch = "linux-i686"; + sha256 = "d809cc26b134f707579e78e624f654b569d33d2282391943eeabfd494388f4f9"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/ru/thunderbird-78.11.0.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha256 = "1d73258212131087d878fac0087f758cd11209aeeaff075b0352f8414769d3d7"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/si/thunderbird-78.11.0.tar.bz2"; + locale = "si"; + arch = "linux-i686"; + sha256 = "342ddb753fc1870321613e7668a741269bfff786f21ff22f4f8f84f5e1df9c2a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sk/thunderbird-78.11.0.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha256 = "241cae2dbe7130a3df8d64e99fce375c0966df0cf4dbd6cbddfb069f736c3450"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sl/thunderbird-78.11.0.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha256 = "d09d44f1fd9e90e71e67334eed2df3eacdbc2509782e625e25aea3b993b1f28a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sq/thunderbird-78.11.0.tar.bz2"; + locale = "sq"; + arch = "linux-i686"; + sha256 = "afa21cf461d53c2a3e781e45b7802a0b5ffcb0ca4c4452865bdbf2bceeb13776"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sr/thunderbird-78.11.0.tar.bz2"; + locale = "sr"; + arch = "linux-i686"; + sha256 = "15b3faf5cef87e1101629410cdb169f81da94b5e1b0902d02b161ef67df15e8f"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/sv-SE/thunderbird-78.11.0.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha256 = "b42f3e8aefc4ebfc718ace6eda4d9416752dbec346f1a212fa637edfe08277dc"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/th/thunderbird-78.11.0.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha256 = "0972ee48e0f8f0e6f81831a5c8b3d832c7af05477a3f824afb252c1f32d6843a"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/tr/thunderbird-78.11.0.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha256 = "5dccdb0c97511aab0926caf679dced22609fb0e702b87078ac9379c94b3aed37"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/uk/thunderbird-78.11.0.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha256 = "526e1cdadbf15a0aee1b31607f39710f90fdd6ea23623c74fbc87928b0b2056c"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/uz/thunderbird-78.11.0.tar.bz2"; + locale = "uz"; + arch = "linux-i686"; + sha256 = "46454f21518cdeee20dcd0ed3f57a45cf8ab3a240d55cf2df36aed253307fb99"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/vi/thunderbird-78.11.0.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha256 = "d624ec4f25277ae1b4b463e0c8381371562cf4185aab3ed67b9463b3dadde5dd"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/zh-CN/thunderbird-78.11.0.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha256 = "3699eefc2f941a4b32305a934a02bb94b5213c4584bfeb816859de471e2d2f08"; + } + { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.11.0/linux-i686/zh-TW/thunderbird-78.11.0.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha256 = "9d6878ab69fcf266f1b226100a5b26d78d8d604f741827ae8f62fca665adf557"; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix new file mode 100644 index 000000000000..e042f39fd9c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix @@ -0,0 +1,356 @@ +{ autoconf213 +, bzip2 +, cargo +, common-updater-scripts +, copyDesktopItems +, coreutils +, curl +, dbus +, dbus-glib +, fetchpatch +, fetchurl +, file +, fontconfig +, freetype +, glib +, gnugrep +, gnupg +, gnused +, gpgme +, icu +, jemalloc +, lib +, libevent +, libGL +, libGLU +, libjpeg +, libnotify +, libpng +, libstartup_notification +, libvpx +, libwebp +, llvmPackages +, m4 +, makeDesktopItem +, nasm +, nodejs +, nspr +, nss_3_53 +, pango +, perl +, pkg-config +, python2 +, python3 +, runtimeShell +, rust-cbindgen +, rustc +, sqlite +, stdenv +, systemd +, unzip +, which +, writeScript +, xidel +, xorg +, yasm +, zip +, zlib + +, debugBuild ? false + +, alsaSupport ? stdenv.isLinux, alsa-lib +, pulseaudioSupport ? stdenv.isLinux, libpulseaudio +, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook +, waylandSupport ? true, libdrm +, libxkbcommon, calendarSupport ? true + +# Use official trademarked branding. Permission obtained at: +# https://github.com/NixOS/nixpkgs/pull/94880#issuecomment-675907971 +, enableOfficialBranding ? true +}: + +assert waylandSupport -> gtk3Support == true; + +stdenv.mkDerivation rec { + pname = "thunderbird"; + version = "78.11.0"; + + src = fetchurl { + url = + "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"; + sha512 = + "1m12kx830pfzvby8j9i5nb9c5v71vlg4wr0qrjgg3pw5ml9j5x7myrqyfd49l2qppm3xjn08srvmf45avnwq0lrys4sb83iwsd46sf6"; + }; + + nativeBuildInputs = [ + autoconf213 + cargo + copyDesktopItems + gnused + llvmPackages.llvm + m4 + nasm + nodejs + perl + pkg-config + python2 + python3 + rust-cbindgen + rustc + which + yasm + unzip + ] ++ lib.optional gtk3Support wrapGAppsHook; + + buildInputs = [ + bzip2 + dbus + dbus-glib + file + fontconfig + freetype + glib + gtk2 + icu + jemalloc + libGL + libGLU + libevent + libjpeg + libnotify + libpng + libstartup_notification + libvpx + libwebp + nspr + nss_3_53 + pango + perl + sqlite + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcursor + xorg.libXext + xorg.libXft + xorg.libXi + xorg.libXrender + xorg.libXt + xorg.pixman + xorg.xorgproto + xorg.libXdamage + zip + zlib + ] ++ lib.optional alsaSupport alsa-lib + ++ lib.optional gtk3Support gtk3 + ++ lib.optional pulseaudioSupport libpulseaudio + ++ lib.optionals waylandSupport [ libxkbcommon libdrm ]; + + NIX_CFLAGS_COMPILE =[ + "-I${glib.dev}/include/gio-unix-2.0" + "-I${nss_3_53.dev}/include/nss" + ]; + + patches = [ + ./no-buildconfig.patch + ]; + + postPatch = '' + rm -rf obj-x86_64-pc-linux-gnu + ''; + + hardeningDisable = [ "format" ]; + + preConfigure = '' + # remove distributed configuration files + rm -f configure + rm -f js/src/configure + rm -f .mozconfig* + + configureScript="$(realpath ./mach) configure" + # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286 + unset AS + + export MOZCONFIG=$(pwd)/mozconfig + + # Set C flags for Rust's bindgen program. Unlike ordinary C + # compilation, bindgen does not invoke $CC directly. Instead it + # uses LLVM's libclang. To make sure all necessary flags are + # included we need to look in a few places. + # TODO: generalize this process for other use-cases. + + BINDGEN_CFLAGS="$(< ${stdenv.cc}/nix-support/libc-crt1-cflags) \ + $(< ${stdenv.cc}/nix-support/libc-cflags) \ + $(< ${stdenv.cc}/nix-support/cc-cflags) \ + $(< ${stdenv.cc}/nix-support/libcxx-cxxflags) \ + ${ + lib.optionalString stdenv.cc.isClang + "-idirafter ${stdenv.cc.cc}/lib/clang/${ + lib.getVersion stdenv.cc.cc + }/include" + } \ + ${ + lib.optionalString stdenv.cc.isGNU + "-isystem ${stdenv.cc.cc}/include/c++/${ + lib.getVersion stdenv.cc.cc + } -isystem ${stdenv.cc.cc}/include/c++/${ + lib.getVersion stdenv.cc.cc + }/${stdenv.hostPlatform.config}" + } \ + $NIX_CFLAGS_COMPILE" + + echo "ac_add_options BINDGEN_CFLAGS='$BINDGEN_CFLAGS'" >> $MOZCONFIG + ''; + + configureFlags = let + toolkitSlug = if gtk3Support then + "3${lib.optionalString waylandSupport "-wayland"}" + else + "2"; + toolkitValue = "cairo-gtk${toolkitSlug}"; + in [ + "--enable-application=comm/mail" + + "--with-system-icu" + "--with-system-jpeg" + "--with-system-libevent" + "--with-system-nspr" + "--with-system-nss" + "--with-system-png" # needs APNG support + "--with-system-zlib" + "--with-system-webp" + "--with-system-libvpx" + + "--enable-rust-simd" + "--enable-crashreporter" + "--enable-default-toolkit=${toolkitValue}" + "--enable-js-shell" + "--enable-necko-wifi" + "--enable-system-ffi" + "--enable-system-pixman" + + "--disable-tests" + "--disable-updater" + "--enable-jemalloc" + ] ++ (if debugBuild then [ + "--enable-debug" + "--enable-profiling" + ] else [ + "--disable-debug" + "--enable-release" + "--disable-debug-symbols" + "--enable-optimize" + "--enable-strip" + ]) ++ lib.optionals (!stdenv.hostPlatform.isi686) [ + # on i686-linux: --with-libclang-path is not available in this configuration + "--with-libclang-path=${llvmPackages.libclang}/lib" + ] ++ lib.optionals (!stdenv.hostPlatform.isi686 && !stdenv.cc.isClang) [ + "--with-clang-path=${llvmPackages.clang}/bin/clang" + ] ++ lib.optional alsaSupport "--enable-alsa" + ++ lib.optional calendarSupport "--enable-calendar" + ++ lib.optional enableOfficialBranding "--enable-official-branding" + ++ lib.optional pulseaudioSupport "--enable-pulseaudio"; + + enableParallelBuilding = true; + + postConfigure = '' + cd obj-* + ''; + + makeFlags = lib.optionals enableOfficialBranding [ + "MOZILLA_OFFICIAL=1" + "BUILD_OFFICIAL=1" + ]; + + doCheck = false; + + desktopItems = [ + (makeDesktopItem { + categories = lib.concatStringsSep ";" [ "Application" "Network" ]; + desktopName = "Thunderbird"; + genericName = "Mail Reader"; + name = "thunderbird"; + exec = "thunderbird %U"; + icon = "thunderbird"; + mimeType = lib.concatStringsSep ";" [ + # Email + "x-scheme-handler/mailto" + "message/rfc822" + # Feeds + "x-scheme-handler/feed" + "application/rss+xml" + "application/x-extension-rss" + # Newsgroups + "x-scheme-handler/news" + "x-scheme-handler/snews" + "x-scheme-handler/nntp" + ]; + }) + ]; + + postInstall = '' + # TODO: Move to a dev output? + rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl + install -Dm 444 $out/lib/thunderbird/chrome/icons/default/default256.png $out/share/icons/hicolor/256x256/apps/thunderbird.png + ''; + + # Note on GPG support: + # Thunderbird's native GPG support does not yet support smartcards. + # The official upstream recommendation is to configure fall back to gnupg + # using the Thunderbird config `mail.openpgp.allow_external_gnupg` + # and GPG keys set up; instructions with pictures at: + # https://anweshadas.in/how-to-use-yubikey-or-any-gpg-smartcard-in-thunderbird-78/ + # For that to work out of the box, it requires `gnupg` on PATH and + # `gpgme` in `LD_LIBRARY_PATH`; we do this below. + + preFixup = '' + # Needed to find Mozilla runtime + gappsWrapperArgs+=( + --argv0 "$out/bin/thunderbird" + --set MOZ_APP_LAUNCHER thunderbird + # https://github.com/NixOS/nixpkgs/pull/61980 + --set SNAP_NAME "thunderbird" + --set MOZ_LEGACY_PROFILES 1 + --set MOZ_ALLOW_DOWNGRADE 1 + --prefix PATH : "${lib.getBin gnupg}/bin" + --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib" + ) + ''; + + # FIXME: The XUL portion of this can probably be removed as soon as we + # package a Thunderbird >=71.0 since XUL shouldn't be anymore (in use)? + postFixup = '' + local xul="$out/lib/thunderbird/libxul.so" + patchelf --set-rpath "${libnotify}/lib:${lib.getLib systemd}/lib:$(patchelf --print-rpath $xul)" $xul + ''; + + doInstallCheck = true; + installCheckPhase = '' + "$out/bin/thunderbird" --version + ''; + + disallowedRequisites = [ + stdenv.cc + ]; + + passthru.updateScript = import ./../../browsers/firefox/update.nix { + attrPath = "thunderbird-78"; + baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/"; + inherit writeScript lib common-updater-scripts xidel coreutils gnused + gnugrep gnupg curl runtimeShell; + }; + + requiredSystemFeatures = [ "big-parallel" ]; + + meta = with lib; { + description = "A full-featured e-mail client"; + homepage = "https://www.thunderbird.net"; + maintainers = with maintainers; [ + eelco + lovesegfault + pierron + vcunat + ]; + platforms = platforms.linux; + license = licenses.mpl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch new file mode 100644 index 000000000000..d413a06475d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch @@ -0,0 +1,37 @@ +Remove about:buildconfig. If used as-is, it would add unnecessary runtime dependencies. +diff -ru -x '*~' a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp +--- a/docshell/base/nsAboutRedirector.cpp ++++ b/docshell/base/nsAboutRedirector.cpp +@@ -63,8 +63,6 @@ + {"about", "chrome://global/content/aboutAbout.html", 0}, + {"addons", "chrome://mozapps/content/extensions/extensions.xhtml", + nsIAboutModule::ALLOW_SCRIPT}, +- {"buildconfig", "chrome://global/content/buildconfig.html", +- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT}, + {"checkerboard", "chrome://global/content/aboutCheckerboard.html", + nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT | + nsIAboutModule::ALLOW_SCRIPT}, +diff -ru -x '*~' a/toolkit/content/jar.mn b/toolkit/content/jar.mn +--- a/toolkit/content/jar.mn ++++ b/toolkit/content/jar.mn +@@ -35,7 +35,6 @@ + content/global/plugins.js + content/global/browser-child.js + content/global/browser-content.js +-* content/global/buildconfig.html + content/global/buildconfig.css + content/global/contentAreaUtils.js + content/global/datepicker.xhtml +diff -ru -x '*~' a/comm/mail/base/jar.mn b/comm/mail/base/jar.mn +--- a/comm/mail/base/jar.mn ++++ b/comm/mail/base/jar.mn +@@ -119,9 +119,7 @@ + % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js + % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml + +-* content/messenger/buildconfig.html (content/buildconfig.html) + content/messenger/buildconfig.css (content/buildconfig.css) +-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html + % override chrome://global/content/buildconfig.css chrome://messenger/content/buildconfig.css + + # L10n resources and overrides. diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix new file mode 100644 index 000000000000..d7c7320b9e4f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix @@ -0,0 +1,83 @@ +{ akonadi-contacts +, cmake +, fetchgit +, fetchsvn +, gnupg +, gpgme +, kcontacts +, kf5gpgmepp +, lib +, libsecret +, mimetic +, mkDerivation +, pkg-config +, qgpgme +, qtbase +, qtkeychain +, qttools +, qtwebkit +, qttranslations +, substituteAll +, withI18n ? false +}: + +let + l10n = fetchsvn { + url = "svn://anonsvn.kde.org/home/kde/trunk/l10n-kf5"; + rev = "1566642"; + sha256 = "0y45fjib153za085la3hqpryycx33dkj3cz8kwzn2w31kvldfl1q"; + }; +in mkDerivation rec { + pname = "trojita"; + version = "unstable-2020-07-06"; + + src = fetchgit { + url = "https://anongit.kde.org/trojita.git"; + rev = "e973a5169f18ca862ceb8ad749c93cd621d86e14"; + sha256 = "0r8nmlqwgsqkk0k8xh32fkwvv6iylj35xq2h8b7l3g03yc342kbn"; + }; + + patches = (substituteAll { + # See https://github.com/NixOS/nixpkgs/issues/86054 + src = ./fix-qttranslations-path.patch; + inherit qttranslations; + }); + + buildInputs = [ + akonadi-contacts + gpgme + kcontacts + libsecret + mimetic + qgpgme + qtbase + qtkeychain + qtwebkit + mimetic + kf5gpgmepp + ]; + + nativeBuildInputs = [ + cmake + pkg-config + qttools + gnupg + ]; + + postPatch = "echo ${version} > src/trojita-version" + + lib.optionalString withI18n '' + mkdir -p po + for f in `find ${l10n} -name "trojita_common.po"`; do + cp $f po/trojita_common_$(echo $f | cut -d/ -f5).po + done + ''; + + meta = with lib; { + description = "A Qt IMAP e-mail client"; + homepage = "http://trojita.flaska.net/"; + license = with licenses; [ gpl2 gpl3 ]; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.linux; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch new file mode 100644 index 000000000000..c4eac3956508 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch @@ -0,0 +1,13 @@ +diff --git i/src/Gui/main.cpp w/src/Gui/main.cpp +index 851db4f1..e997f46e 100644 +--- i/src/Gui/main.cpp ++++ w/src/Gui/main.cpp +@@ -52,7 +52,7 @@ int main(int argc, char **argv) + + QTranslator qtTranslator; + qtTranslator.load(QLatin1String("qt_") + QLocale::system().name(), +- QLibraryInfo::location(QLibraryInfo::TranslationsPath)); ++ QLatin1String("@qttranslations@/translations")); + app.installTranslator(&qtTranslator); + + QLatin1String localeSuffix("/locale"); diff --git a/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix b/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix new file mode 100644 index 000000000000..ec2857753d7e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mkchromecast/default.nix @@ -0,0 +1,84 @@ +{ lib, stdenv +, fetchFromGitHub +, python3Packages +, sox +, flac +, lame +, wrapQtAppsHook +, ffmpeg +, vorbis-tools +, pulseaudio +, nodejs +, youtube-dl +, opusTools +, gst_all_1 +}: +let packages = [ + vorbis-tools + sox + flac + lame + opusTools + gst_all_1.gstreamer + nodejs + ffmpeg + youtube-dl +] ++ lib.optionals stdenv.isLinux [ pulseaudio ]; + +in +python3Packages.buildPythonApplication rec { + pname = "mkchromecast-unstable"; + version = "2020-10-17"; + + src = fetchFromGitHub rec { + owner = "muammar"; + repo = "mkchromecast"; + rev = "eb9da74d887acd70ed179e6e4c0cbed4ff83de04"; + sha256 = "1l565n3rmyghc4vzh80gazvdks1i97j1h94x33pkmxxlf9a9rncj"; + }; + + propagatedBuildInputs = with python3Packages; [ + PyChromecast + psutil + mutagen + flask + netifaces + requests + pyqt5 + ]; + + postPatch = '' + substituteInPlace setup.py \ + --replace 'platform.system() == "Darwin"' 'False' \ + --replace 'platform.system() == "Linux"' 'True' + ''; + + nativeBuildInputs = [ wrapQtAppsHook ]; + + # Relies on an old version (0.7.7) of PyChromecast unavailable in Nixpkgs. + # Is also I/O bound and impure, testing an actual device, so we disable. + doCheck = false; + + dontWrapQtApps = true; + + makeWrapperArgs = [ + "\${qtWrapperArgs[@]}" + "--prefix PATH : ${lib.makeBinPath packages}" + ]; + + postInstall = '' + substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/video.py \ + --replace '/usr/share/mkchromecast/nodejs/' '${placeholder "out"}/share/mkchromecast/nodejs/' + '' + lib.optionalString stdenv.isDarwin '' + install -Dm 755 -t $out/bin bin/audiodevice + substituteInPlace $out/lib/${python3Packages.python.libPrefix}/site-packages/mkchromecast/audio_devices.py \ + --replace './bin/audiodevice' '${placeholder "out"}/bin/audiodevice' + ''; + + meta = with lib; { + homepage = "https://mkchromecast.com/"; + description = "Cast macOS and Linux Audio/Video to your Google Cast and Sonos Devices"; + license = licenses.mit; + maintainers = with maintainers; [ shou ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix new file mode 100644 index 000000000000..2723f3420436 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix @@ -0,0 +1,64 @@ +{ lib, stdenv +, pkg-config +, python3 +, fetchFromGitLab +, gtk3 +, glib +, gdbm +, gtkspell3 +, ofono +, itstool +, libayatana-appindicator-gtk3 +, perlPackages +, meson +, ninja +}: + +stdenv.mkDerivation rec { + pname = "modem-manager-gui"; + version = "0.0.20"; + + src = fetchFromGitLab { + domain = "salsa.debian.org"; + owner = "debian"; + repo = "modem-manager-gui"; + rev = "upstream%2F${version}"; + sha256 = "1pjx4rbsxa7gcs628yjkwb0zqrm5xq8pkmp0cfk4flfk1ryflmgr"; + }; + + nativeBuildInputs = [ + pkg-config + python3 + perlPackages.Po4a + itstool + meson + ninja + ]; + + buildInputs = [ + gtk3 + glib + gdbm + gtkspell3 + ofono + libayatana-appindicator-gtk3 + ]; + + postPatch = '' + patchShebangs man/manhelper.py + ''; + + meta = with lib; { + description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more"; + longDescription = '' + A simple GTK based GUI compatible with Modem manager, Wader and oFono + system services able to control EDGE/3G/4G broadband modem specific + functions. You can check balance of your SIM card, send or receive SMS + messages, control mobile traffic consumption and more. + ''; + homepage = "https://linuxonly.ru/page/modem-manager-gui"; + license = licenses.gpl3; + maintainers = with maintainers; [ ahuzik galagora ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mpop/default.nix b/nixpkgs/pkgs/applications/networking/mpop/default.nix new file mode 100644 index 000000000000..613226a2dc18 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mpop/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchurl, pkg-config, gnutls, gsasl, libidn, Security }: + +with lib; + +stdenv.mkDerivation rec { + pname = "mpop"; + version = "1.4.13"; + + src = fetchurl { + url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; + sha256 = "sha256-s0mEZsZbZQrdGm55IJsnuoY3VnOkXJalknvtaFoyfcE="; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gnutls gsasl libidn ] + ++ optional stdenv.isDarwin Security; + + configureFlags = optional stdenv.isDarwin [ "--with-macosx-keyring" ]; + + meta = { + description = "POP3 mail retrieval agent"; + homepage = "https://marlam.de/mpop"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/nixpkgs/pkgs/applications/networking/msmtp/default.nix new file mode 100644 index 000000000000..d8f53f4b2566 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchurl, autoreconfHook, pkg-config, texinfo +, netcat-gnu, gnutls, gsasl, libidn2, Security +, withKeyring ? true, libsecret ? null +, systemd ? null }: + +let + tester = "n"; # {x| |p|P|n|s} + journal = if stdenv.isLinux then "y" else "n"; + +in stdenv.mkDerivation rec { + pname = "msmtp"; + version = "1.8.15"; + + src = fetchurl { + url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; + sha256 = "sha256-ImXcY56/Lt8waf/+CjvXZ0n4tY9AAdXN6uGYc5SQmc4="; + }; + + patches = [ + ./paths.patch + ]; + + buildInputs = [ gnutls gsasl libidn2 ] + ++ lib.optional stdenv.isDarwin Security + ++ lib.optional withKeyring libsecret; + + nativeBuildInputs = [ autoreconfHook pkg-config texinfo ]; + + configureFlags = + [ "--sysconfdir=/etc" ] ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ]; + + postInstall = '' + install -d $out/share/doc/${pname}/scripts + cp -r scripts/{find_alias,msmtpqueue,msmtpq,set_sendmail} $out/share/doc/${pname}/scripts + install -Dm644 doc/*.example $out/share/doc/${pname} + + substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \ + --replace @msmtp@ $out/bin/msmtp \ + --replace @nc@ ${netcat-gnu}/bin/nc \ + --replace @journal@ ${journal} \ + ${lib.optionalString (journal == "y") "--replace @systemdcat@ ${systemd}/bin/systemd-cat" } \ + --replace @test@ ${tester} + + substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \ + --replace @msmtpq@ $out/bin/msmtpq + + ln -s msmtp $out/bin/sendmail + + chmod +x $out/bin/* + ''; + + meta = with lib; { + description = "Simple and easy to use SMTP client with excellent sendmail compatibility"; + homepage = "https://marlam.de/msmtp/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/msmtp/paths.patch b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch new file mode 100644 index 000000000000..707163bff0c9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch @@ -0,0 +1,97 @@ +diff --git a/scripts/msmtpq/msmtp-queue b/scripts/msmtpq/msmtp-queue +index 1dc220d..d834241 100755 +--- a/scripts/msmtpq/msmtp-queue ++++ b/scripts/msmtpq/msmtp-queue +@@ -27,4 +27,4 @@ + ## change the below line to be + ## exec /path/to/msmtpq --q-mgmt + +-exec msmtpq --q-mgmt "$1" ++exec @msmtpq@ --q-mgmt "$1" +diff --git a/scripts/msmtpq/msmtpq b/scripts/msmtpq/msmtpq +index bdb4fb8..1363a67 100755 +--- a/scripts/msmtpq/msmtpq ++++ b/scripts/msmtpq/msmtpq +@@ -59,7 +59,7 @@ err() { dsp '' "$@" '' ; exit 1 ; } + ## enter the location of the msmtp executable (no quotes !!) + ## e.g. ( MSMTP=/path/to/msmtp ) + ## and uncomment the test for its existence +-MSMTP=msmtp ++MSMTP=@msmtp@ + #[ -x "$MSMTP" ] || \ + # log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]" # if not found - complain ; quit + ## +@@ -70,9 +70,8 @@ MSMTP=msmtp + ## ( chmod 0700 msmtp.queue ) + ## + ## the queue dir - modify this to reflect where you'd like it to be (no quotes !!) +-Q=~/.msmtp.queue +-[ -d "$Q" ] || \ +- err '' "msmtpq : can't find msmtp queue directory [ $Q ]" '' # if not present - complain ; quit ++Q=${MSMTP_QUEUE:-~/.msmtp.queue} ++test -d "$Q" || mkdir -p "$Q" + ## + ## set the queue log file var to the location of the msmtp queue log file + ## where it is or where you'd like it to be +@@ -84,7 +83,10 @@ Q=~/.msmtp.queue + ## (doing so would be inadvisable under most conditions, however) + ## + ## the queue log file - modify (or comment out) to taste (but no quotes !!) +-LOG=~/log/msmtp.queue.log ++LOG=${MSMTP_LOG:-~/log/msmtp.queue.log} ++test -d "$(dirname $LOG)" || mkdir -p "$(dirname $LOG)" ++ ++JOURNAL=@journal@ + ## ====================================================================================== + + ## msmtpq can use the following environment variables : +@@ -108,7 +110,7 @@ LOG=~/log/msmtp.queue.log + ## + #EMAIL_CONN_NOTEST=y # deprecated ; use below var + #EMAIL_CONN_TEST={x| |p|P|n|s} # see settings above for EMAIL_CONN_TEST +-EMAIL_CONN_TEST=n ++EMAIL_CONN_TEST=@test@ + #EMAIL_QUEUE_QUIET=t + ## ====================================================================================== + +@@ -138,6 +140,7 @@ on_exit() { # unlock the queue on exit if the lock was + ## display msg to user, as well + ## + log() { ++ local NAME=msmtpq + local ARG RC PFX + PFX="$('date' +'%Y %d %b %H:%M:%S')" + # time stamp prefix - "2008 13 Mar 03:59:45 " + if [ "$1" = '-e' ] ; then # there's an error exit code +@@ -154,10 +157,19 @@ log() { + done + fi + ++ if [ "$JOURNAL" == "y" ] ; then ++ for ARG ; do ++ [ -n "$ARG" ] && \ ++ echo "$PFX : $ARG" | @systemdcat@ -t $NAME -p info ++ done ++ fi ++ + if [ -n "$RC" ] ; then # an error ; leave w/error return + [ -n "$LKD" ] && lock_queue -u # unlock here (if locked) + [ -n "$LOG" ] && \ + echo " exit code = $RC" >> "$LOG" # logging ok ; send exit code to log ++ [ "$JOURNAL" == "y" ] && \ ++ echo "exit code= $RC" | @systemdcat@ -t $NAME -p emerg + exit $RC # exit w/return code + fi + } +@@ -207,10 +219,7 @@ connect_test() { + ping -qnc1 -w4 8.8.8.8 >/dev/null 2>&1 || return 1 + + elif [ "$EMAIL_CONN_TEST" = 'n' ] ; then # use netcat (nc) test +- # must, of course, have netcat (nc) installed +- which nc >/dev/null 2>&1 || \ +- log -e 1 "msmtpq : can't find netcat executable [ nc ]" # if not found - complain ; quit +- 'nc' -vz www.debian.org 80 >/dev/null 2>&1 || return 1 ++ @nc@ -vz www.debian.org 80 >/dev/null 2>&1 || return 1 + + elif [ "$EMAIL_CONN_TEST" = 's' ] ; then # use sh sockets test + # note that this does not work on debian systems diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix new file mode 100644 index 000000000000..33030e0c7eec --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix @@ -0,0 +1,93 @@ +{ stdenv, lib, fetchurl, dpkg +, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig, freetype +, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3, mesa +, xorg, autoPatchelfHook, systemd, libnotify, libappindicator +}: + +let deps = [ + alsa-lib + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gnome2.GConf + pango + gtk3 + libappindicator + libnotify + mesa + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + nspr + nss + systemd + ]; + +in + +stdenv.mkDerivation rec { + pname = "mullvad-vpn"; + version = "2021.3"; + + src = fetchurl { + url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb"; + sha256 = "sha256-f7ZCDZ/RN+Z0Szmnx8mbzhKZiRPjqXTsgClfWViFYzo="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + ]; + + buildInputs = deps; + + dontBuild = true; + dontConfigure = true; + + unpackPhase = "dpkg-deb -x $src ."; + + runtimeDependencies = [ (lib.getLib systemd) libnotify libappindicator ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/mullvad $out/bin + + mv usr/share/* $out/share + mv usr/bin/* $out/bin + mv opt/Mullvad\ VPN/* $out/share/mullvad + + sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop + + ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/ + ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon + ln -sf $out/share/mullvad/resources/mullvad-problem-report $out/bin/mullvad-problem-report + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/mullvad/mullvadvpn-app"; + description = "Client for Mullvad VPN"; + changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md"; + license = licenses.gpl3Only; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ Br1ght0ne ymarkus ]; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix new file mode 100644 index 000000000000..d93fea1f702a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix @@ -0,0 +1,141 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, qt5 +, avahi, boost, libopus, libsndfile, protobuf, speex, libcap +, alsa-lib, python3 +, rnnoise +, jackSupport ? false, libjack2 +, speechdSupport ? false, speechd +, pulseSupport ? false, libpulseaudio +, iceSupport ? false, zeroc-ice +, grpcSupport ? false, grpc, which +, nixosTests +}: + +let + generic = overrides: source: qt5.mkDerivation (source // overrides // { + pname = overrides.type; + version = source.version; + + patches = (source.patches or []) + ++ [ ./fix-rnnoise-argument.patch ]; + + nativeBuildInputs = [ pkg-config python3 qt5.qmake ] + ++ (overrides.nativeBuildInputs or [ ]); + + buildInputs = [ boost protobuf avahi ] + ++ (overrides.buildInputs or [ ]); + + qmakeFlags = [ + "CONFIG+=c++11" + "CONFIG+=shared" + "CONFIG+=no-g15" + "CONFIG+=packaged" + "CONFIG+=no-update" + "CONFIG+=no-embed-qt-translations" + "CONFIG+=bundled-celt" + "CONFIG+=no-bundled-opus" + "CONFIG+=no-bundled-speex" + "DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble" + ] ++ lib.optional (!speechdSupport) "CONFIG+=no-speechd" + ++ lib.optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio" + ++ (overrides.configureFlags or [ ]); + + preConfigure = '' + patchShebangs scripts + ''; + + makeFlags = [ "release" ]; + + installPhase = '' + runHook preInstall + + ${overrides.installPhase} + + # doc stuff + mkdir -p $out/share/man/man1 + install -Dm644 man/mum* $out/share/man/man1/ + + runHook postInstall + ''; + + passthru.tests.connectivity = nixosTests.mumble; + + meta = with lib; { + description = "Low-latency, high quality voice chat software"; + homepage = "https://mumble.info"; + license = licenses.bsd3; + maintainers = with maintainers; [ petabyteboy infinisil felixsinger ]; + platforms = platforms.linux; + }; + }); + + client = source: generic { + type = "mumble"; + + nativeBuildInputs = [ qt5.qttools ]; + buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ] + ++ lib.optional stdenv.isLinux alsa-lib + ++ lib.optional jackSupport libjack2 + ++ lib.optional speechdSupport speechd + ++ lib.optional pulseSupport libpulseaudio; + + configureFlags = [ + "CONFIG+=no-server" + ]; + + NIX_CFLAGS_COMPILE = lib.optional speechdSupport "-I${speechd}/include/speech-dispatcher"; + + installPhase = '' + # bin stuff + install -Dm755 release/mumble $out/bin/mumble + install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay + + # lib stuff + mkdir -p $out/lib/mumble + cp -P release/libmumble.so* $out/lib + cp -P release/libcelt* $out/lib/mumble + cp -P release/plugins/* $out/lib/mumble + + # icons + install -Dm644 scripts/mumble.desktop $out/share/applications/mumble.desktop + install -Dm644 icons/mumble.svg $out/share/icons/hicolor/scalable/apps/mumble.svg + ''; + } source; + + server = source: generic { + type = "murmur"; + + postPatch = lib.optional iceSupport '' + grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g' + ''; + + configureFlags = [ + "CONFIG+=no-client" + ] ++ lib.optional (!iceSupport) "CONFIG+=no-ice" + ++ lib.optional grpcSupport "CONFIG+=grpc"; + + buildInputs = [ libcap ] + ++ lib.optional iceSupport zeroc-ice + ++ lib.optionals grpcSupport [ grpc which ]; + + installPhase = '' + # bin stuff + install -Dm755 release/murmurd $out/bin/murmurd + ''; + } source; + + source = rec { + version = "1.3.4"; + + # Needs submodules + src = fetchFromGitHub { + owner = "mumble-voip"; + repo = "mumble"; + rev = version; + sha256 = "sha256-njovShQpW0JNeeE8VugdmGzDk3fKG8/fcJoBgdyTZug="; + fetchSubmodules = true; + }; + }; +in { + mumble = client source; + murmur = server source; +} diff --git a/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch b/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch new file mode 100644 index 000000000000..78e8ed24d58f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/fix-rnnoise-argument.patch @@ -0,0 +1,16 @@ +nixpkgs has a more recent rnnoise than the one used by mumble, and rnnoise +changed the argument rnnoise_create[1], + +[1] https://github.com/xiph/rnnoise/commit/231b9c02d14a74cb449a98004cb7a2cf1bdeca2f + +--- old/src/mumble/AudioInput.cpp 2020-02-18 22:55:32.000000000 -0500 ++++ new/src/mumble/AudioInput.cpp 2020-02-18 22:58:08.000000000 -0500 +@@ -106,7 +106,7 @@ + #endif + + #ifdef USE_RNNOISE +- denoiseState = rnnoise_create(); ++ denoiseState = rnnoise_create(NULL); + #endif + + qWarning("AudioInput: %d bits/s, %d hz, %d sample", iAudioQuality, iSampleRate, iFrameSize); diff --git a/nixpkgs/pkgs/applications/networking/mumble/overlay.nix b/nixpkgs/pkgs/applications/networking/mumble/overlay.nix new file mode 100644 index 000000000000..bc960ac12d4b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mumble/overlay.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, which, file, mumble, mumble_i686 +}: + +let + binPath = lib.makeBinPath [ which file ]; +in stdenv.mkDerivation { + name = "mumble-overlay-${mumble.version}"; + + inherit (mumble) src; + + phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; + + installPhase = '' + mkdir -p $out/lib + ln -s ${mumble}/lib/libmumble.so.1 $out/lib/ + + ${lib.optionalString (mumble_i686 != null) '' + mkdir -p $out/lib32 + ln -s ${mumble_i686}/lib/libmumble.so.1 $out/lib32/ + ''} + + install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay + sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay + sed -i '2iPATH="${binPath}:$PATH"' $out/bin/mumble-overlay + ''; + + meta = { + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/n8n/default.nix b/nixpkgs/pkgs/applications/networking/n8n/default.nix new file mode 100644 index 000000000000..94305a8cfeea --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/n8n/default.nix @@ -0,0 +1,18 @@ +{ pkgs, nodejs, stdenv, lib, ... }: + +let + nodePackages = import ./node-composition.nix { + inherit pkgs nodejs; + inherit (stdenv.hostPlatform) system; + }; +in +nodePackages.n8n.override { + nativeBuildInputs = with pkgs.nodePackages; [ + node-pre-gyp + ]; + meta = with lib; { + description = "Free and open fair-code licensed node based Workflow Automation Tool"; + maintainers = with maintainers; [ freezeboy ]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh b/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh new file mode 100755 index 000000000000..292811669184 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/n8n/generate-dependencies.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +node2nix \ + --node-env node-env.nix \ + --input package.json \ + --output node-packages.nix \ + --composition node-composition.nix diff --git a/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix b/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix new file mode 100644 index 000000000000..64326c6b2160 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/n8n/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{pkgs ? import <nixpkgs> { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + +let + nodeEnv = import ./node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/nixpkgs/pkgs/applications/networking/n8n/node-env.nix b/nixpkgs/pkgs/applications/networking/n8n/node-env.nix new file mode 100644 index 000000000000..c2b723195b77 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/n8n/node-env.nix @@ -0,0 +1,567 @@ +# This file originates from node2nix + +{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}: + +let + # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master + utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux; + + python = if nodejs ? python then nodejs.python else python2; + + # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise + tarWrapper = runCommand "tarWrapper" {} '' + mkdir -p $out/bin + + cat > $out/bin/tar <<EOF + #! ${stdenv.shell} -e + $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore + EOF + + chmod +x $out/bin/tar + ''; + + # Function that generates a TGZ file from a NPM project + buildNodeSourceDist = + { name, version, src, ... }: + + stdenv.mkDerivation { + name = "node-tarball-${name}-${version}"; + inherit src; + buildInputs = [ nodejs ]; + buildPhase = '' + export HOME=$TMPDIR + tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts) + ''; + installPhase = '' + mkdir -p $out/tarballs + mv $tgzFile $out/tarballs + mkdir -p $out/nix-support + echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products + ''; + }; + + includeDependencies = {dependencies}: + lib.optionalString (dependencies != []) + (lib.concatMapStrings (dependency: + '' + # Bundle the dependencies of the package + mkdir -p node_modules + cd node_modules + + # Only include dependencies if they don't exist. They may also be bundled in the package. + if [ ! -e "${dependency.name}" ] + then + ${composePackage dependency} + fi + + cd .. + '' + ) dependencies); + + # Recursively composes the dependencies of a package + composePackage = { name, packageName, src, dependencies ? [], ... }@args: + builtins.addErrorContext "while evaluating node package '${packageName}'" '' + DIR=$(pwd) + cd $TMPDIR + + unpackFile ${src} + + # Make the base dir in which the target dependency resides first + mkdir -p "$(dirname "$DIR/${packageName}")" + + if [ -f "${src}" ] + then + # Figure out what directory has been unpacked + packageDir="$(find . -maxdepth 1 -type d | tail -1)" + + # Restore write permissions to make building work + find "$packageDir" -type d -exec chmod u+x {} \; + chmod -R u+w "$packageDir" + + # Move the extracted tarball into the output folder + mv "$packageDir" "$DIR/${packageName}" + elif [ -d "${src}" ] + then + # Get a stripped name (without hash) of the source directory. + # On old nixpkgs it's already set internally. + if [ -z "$strippedName" ] + then + strippedName="$(stripHash ${src})" + fi + + # Restore write permissions to make building work + chmod -R u+w "$strippedName" + + # Move the extracted directory into the output folder + mv "$strippedName" "$DIR/${packageName}" + fi + + # Unset the stripped name to not confuse the next unpack step + unset strippedName + + # Include the dependencies of the package + cd "$DIR/${packageName}" + ${includeDependencies { inherit dependencies; }} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + ''; + + pinpointDependencies = {dependencies, production}: + let + pinpointDependenciesFromPackageJSON = writeTextFile { + name = "pinpointDependencies.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function resolveDependencyVersion(location, name) { + if(location == process.env['NIX_STORE']) { + return null; + } else { + var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); + + if(fs.existsSync(dependencyPackageJSON)) { + var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); + + if(dependencyPackageObj.name == name) { + return dependencyPackageObj.version; + } + } else { + return resolveDependencyVersion(path.resolve(location, ".."), name); + } + } + } + + function replaceDependencies(dependencies) { + if(typeof dependencies == "object" && dependencies !== null) { + for(var dependency in dependencies) { + var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); + + if(resolvedVersion === null) { + process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); + } else { + dependencies[dependency] = resolvedVersion; + } + } + } + } + + /* Read the package.json configuration */ + var packageObj = JSON.parse(fs.readFileSync('./package.json')); + + /* Pinpoint all dependencies */ + replaceDependencies(packageObj.dependencies); + if(process.argv[2] == "development") { + replaceDependencies(packageObj.devDependencies); + } + replaceDependencies(packageObj.optionalDependencies); + + /* Write the fixed package.json file */ + fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); + ''; + }; + in + '' + node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} + + ${lib.optionalString (dependencies != []) + '' + if [ -d node_modules ] + then + cd node_modules + ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} + cd .. + fi + ''} + ''; + + # Recursively traverses all dependencies of a package and pinpoints all + # dependencies in the package.json file to the versions that are actually + # being used. + + pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: + '' + if [ -d "${packageName}" ] + then + cd "${packageName}" + ${pinpointDependencies { inherit dependencies production; }} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + fi + ''; + + # Extract the Node.js source code which is used to compile packages with + # native bindings + nodeSources = runCommand "node-sources" {} '' + tar --no-same-owner --no-same-permissions -xf ${nodejs.src} + mv node-* $out + ''; + + # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) + addIntegrityFieldsScript = writeTextFile { + name = "addintegrityfields.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function augmentDependencies(baseDir, dependencies) { + for(var dependencyName in dependencies) { + var dependency = dependencies[dependencyName]; + + // Open package.json and augment metadata fields + var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); + var packageJSONPath = path.join(packageJSONDir, "package.json"); + + if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored + console.log("Adding metadata fields to: "+packageJSONPath); + var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); + + if(dependency.integrity) { + packageObj["_integrity"] = dependency.integrity; + } else { + packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads. + } + + if(dependency.resolved) { + packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided + } else { + packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. + } + + if(dependency.from !== undefined) { // Adopt from property if one has been provided + packageObj["_from"] = dependency.from; + } + + fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); + } + + // Augment transitive dependencies + if(dependency.dependencies !== undefined) { + augmentDependencies(packageJSONDir, dependency.dependencies); + } + } + } + + if(fs.existsSync("./package-lock.json")) { + var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); + + if(![1, 2].includes(packageLock.lockfileVersion)) { + process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); + process.exit(1); + } + + if(packageLock.dependencies !== undefined) { + augmentDependencies(".", packageLock.dependencies); + } + } + ''; + }; + + # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes + reconstructPackageLock = writeTextFile { + name = "addintegrityfields.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + var packageObj = JSON.parse(fs.readFileSync("package.json")); + + var lockObj = { + name: packageObj.name, + version: packageObj.version, + lockfileVersion: 1, + requires: true, + dependencies: {} + }; + + function augmentPackageJSON(filePath, dependencies) { + var packageJSON = path.join(filePath, "package.json"); + if(fs.existsSync(packageJSON)) { + var packageObj = JSON.parse(fs.readFileSync(packageJSON)); + dependencies[packageObj.name] = { + version: packageObj.version, + integrity: "sha1-000000000000000000000000000=", + dependencies: {} + }; + processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies); + } + } + + function processDependencies(dir, dependencies) { + if(fs.existsSync(dir)) { + var files = fs.readdirSync(dir); + + files.forEach(function(entry) { + var filePath = path.join(dir, entry); + var stats = fs.statSync(filePath); + + if(stats.isDirectory()) { + if(entry.substr(0, 1) == "@") { + // When we encounter a namespace folder, augment all packages belonging to the scope + var pkgFiles = fs.readdirSync(filePath); + + pkgFiles.forEach(function(entry) { + if(stats.isDirectory()) { + var pkgFilePath = path.join(filePath, entry); + augmentPackageJSON(pkgFilePath, dependencies); + } + }); + } else { + augmentPackageJSON(filePath, dependencies); + } + } + }); + } + } + + processDependencies("node_modules", lockObj.dependencies); + + fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); + ''; + }; + + prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: + let + forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; + in + '' + # Pinpoint the versions of all dependencies to the ones that are actually being used + echo "pinpointing versions of dependencies..." + source $pinpointDependenciesScriptPath + + # Patch the shebangs of the bundled modules to prevent them from + # calling executables outside the Nix store as much as possible + patchShebangs . + + # Deploy the Node.js package by running npm install. Since the + # dependencies have been provided already by ourselves, it should not + # attempt to install them again, which is good, because we want to make + # it Nix's responsibility. If it needs to install any dependencies + # anyway (e.g. because the dependency parameters are + # incomplete/incorrect), it fails. + # + # The other responsibilities of NPM are kept -- version checks, build + # steps, postprocessing etc. + + export HOME=$TMPDIR + cd "${packageName}" + runHook preRebuild + + ${lib.optionalString bypassCache '' + ${lib.optionalString reconstructLock '' + if [ -f package-lock.json ] + then + echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" + echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" + rm package-lock.json + else + echo "No package-lock.json file found, reconstructing..." + fi + + node ${reconstructPackageLock} + ''} + + node ${addIntegrityFieldsScript} + ''} + + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild + + if [ "''${dontNpmInstall-}" != "1" ] + then + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. + rm -f npm-shrinkwrap.json + + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install + fi + ''; + + # Builds and composes an NPM package including all its dependencies + buildNodePackage = + { name + , packageName + , version + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , preRebuild ? "" + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ]; + in + stdenv.mkDerivation ({ + name = "node_${name}-${version}"; + buildInputs = [ tarWrapper python nodejs ] + ++ lib.optional (stdenv.isLinux) utillinux + ++ lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + inherit nodejs; + + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall preRebuild unpackPhase buildPhase; + + compositionScript = composePackage args; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; + + passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; + + installPhase = '' + # Create and enter a root node_modules/ folder + mkdir -p $out/lib/node_modules + cd $out/lib/node_modules + + # Compose the package and all its dependencies + source $compositionScriptPath + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Create symlink to the deployed executable folder, if applicable + if [ -d "$out/lib/node_modules/.bin" ] + then + ln -s $out/lib/node_modules/.bin $out/bin + fi + + # Create symlinks to the deployed manual page folders, if applicable + if [ -d "$out/lib/node_modules/${packageName}/man" ] + then + mkdir -p $out/share + for dir in "$out/lib/node_modules/${packageName}/man/"* + do + mkdir -p $out/share/man/$(basename "$dir") + for page in "$dir"/* + do + ln -s $page $out/share/man/$(basename "$dir") + done + done + fi + + # Run post install hook, if provided + runHook postInstall + ''; + } // extraArgs); + + # Builds a node environment (a node_modules folder and a set of binaries) + buildNodeDependencies = + { name + , packageName + , version + , src + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; + in + stdenv.mkDerivation ({ + name = "node-dependencies-${name}-${version}"; + + buildInputs = [ tarWrapper python nodejs ] + ++ lib.optional (stdenv.isLinux) utillinux + ++ lib.optional (stdenv.isDarwin) libtool + ++ buildInputs; + + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall unpackPhase buildPhase; + + includeScript = includeDependencies { inherit dependencies; }; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; + + passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; + + installPhase = '' + mkdir -p $out/${packageName} + cd $out/${packageName} + + source $includeScriptPath + + # Create fake package.json to make the npm commands work properly + cp ${src}/package.json . + chmod 644 package.json + ${lib.optionalString bypassCache '' + if [ -f ${src}/package-lock.json ] + then + cp ${src}/package-lock.json . + fi + ''} + + # Go to the parent folder to make sure that all packages are pinpointed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} + + # Expose the executables that were installed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + + mv ${packageName} lib + ln -s $out/lib/node_modules/.bin $out/bin + ''; + } // extraArgs); + + # Builds a development shell + buildNodeShell = + { name + , packageName + , version + , src + , dependencies ? [] + , buildInputs ? [] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... }@args: + + let + nodeDependencies = buildNodeDependencies args; + in + stdenv.mkDerivation { + name = "node-shell-${name}-${version}"; + + buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; + buildCommand = '' + mkdir -p $out/bin + cat > $out/bin/shell <<EOF + #! ${stdenv.shell} -e + $shellHook + exec ${stdenv.shell} + EOF + chmod +x $out/bin/shell + ''; + + # Provide the dependencies in a development shell through the NODE_PATH environment variable + inherit nodeDependencies; + shellHook = lib.optionalString (dependencies != []) '' + export NODE_PATH=${nodeDependencies}/lib/node_modules + export PATH="${nodeDependencies}/bin:$PATH" + ''; + }; +in +{ + buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; + buildNodePackage = lib.makeOverridable buildNodePackage; + buildNodeDependencies = lib.makeOverridable buildNodeDependencies; + buildNodeShell = lib.makeOverridable buildNodeShell; +} diff --git a/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix b/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix new file mode 100644 index 000000000000..b497190b1887 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/n8n/node-packages.nix @@ -0,0 +1,7269 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: + +let + sources = { + "@azure/ms-rest-azure-env-1.1.2" = { + name = "_at_azure_slash_ms-rest-azure-env"; + packageName = "@azure/ms-rest-azure-env"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@azure/ms-rest-azure-env/-/ms-rest-azure-env-1.1.2.tgz"; + sha512 = "l7z0DPCi2Hp88w12JhDTtx5d0Y3+vhfE7JKJb9O7sEz71Cwp053N8piTtTnnk/tUor9oZHgEKi/p3tQQmLPjvA=="; + }; + }; + "@azure/ms-rest-js-1.9.1" = { + name = "_at_azure_slash_ms-rest-js"; + packageName = "@azure/ms-rest-js"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-1.9.1.tgz"; + sha512 = "F1crHKhmsvFLM9fsnDyCGFd2E2KR9GEZm5oBVV5D5k2EBQ7u7idtSJlSF6RDLDIrGWtc4NnFdYwsoiW8NLlBQg=="; + }; + }; + "@azure/ms-rest-nodeauth-2.0.2" = { + name = "_at_azure_slash_ms-rest-nodeauth"; + packageName = "@azure/ms-rest-nodeauth"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@azure/ms-rest-nodeauth/-/ms-rest-nodeauth-2.0.2.tgz"; + sha512 = "KmNNICOxt3EwViAJI3iu2VH8t8BQg5J2rSAyO4IUYLF9ZwlyYsP419pdvl4NBUhluAP2cgN7dfD2V6E6NOMZlQ=="; + }; + }; + "@dabh/diagnostics-2.0.2" = { + name = "_at_dabh_slash_diagnostics"; + packageName = "@dabh/diagnostics"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz"; + sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q=="; + }; + }; + "@icetee/ftp-0.3.15" = { + name = "_at_icetee_slash_ftp"; + packageName = "@icetee/ftp"; + version = "0.3.15"; + src = fetchurl { + url = "https://registry.npmjs.org/@icetee/ftp/-/ftp-0.3.15.tgz"; + sha512 = "RxSa9VjcDWgWCYsaLdZItdCnJj7p4LxggaEk+Y3MP0dHKoxez8ioG07DVekVbZZqccsrL+oPB/N9AzVPxj4blg=="; + }; + }; + "@nodelib/fs.scandir-2.1.4" = { + name = "_at_nodelib_slash_fs.scandir"; + packageName = "@nodelib/fs.scandir"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz"; + sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA=="; + }; + }; + "@nodelib/fs.stat-2.0.4" = { + name = "_at_nodelib_slash_fs.stat"; + packageName = "@nodelib/fs.stat"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz"; + sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q=="; + }; + }; + "@nodelib/fs.walk-1.2.6" = { + name = "_at_nodelib_slash_fs.walk"; + packageName = "@nodelib/fs.walk"; + version = "1.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz"; + sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow=="; + }; + }; + "@oclif/command-1.8.0" = { + name = "_at_oclif_slash_command"; + packageName = "@oclif/command"; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz"; + sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw=="; + }; + }; + "@oclif/config-1.17.0" = { + name = "_at_oclif_slash_config"; + packageName = "@oclif/config"; + version = "1.17.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz"; + sha512 = "Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA=="; + }; + }; + "@oclif/errors-1.3.4" = { + name = "_at_oclif_slash_errors"; + packageName = "@oclif/errors"; + version = "1.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.4.tgz"; + sha512 = "pJKXyEqwdfRTUdM8n5FIHiQQHg5ETM0Wlso8bF9GodczO40mF5Z3HufnYWJE7z8sGKxOeJCdbAVZbS8Y+d5GCw=="; + }; + }; + "@oclif/linewrap-1.0.0" = { + name = "_at_oclif_slash_linewrap"; + packageName = "@oclif/linewrap"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz"; + sha512 = "Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw=="; + }; + }; + "@oclif/parser-3.8.5" = { + name = "_at_oclif_slash_parser"; + packageName = "@oclif/parser"; + version = "3.8.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz"; + sha512 = "yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg=="; + }; + }; + "@oclif/plugin-help-3.2.1" = { + name = "_at_oclif_slash_plugin-help"; + packageName = "@oclif/plugin-help"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.1.tgz"; + sha512 = "vq7rn16TrQmjX3Al/k1Z5iBZWZ3HE8fDXs52OmDJmmTqryPSNvURH9WCAsqr0PODYCSR17Hy1VTzS0x7vVVLEQ=="; + }; + }; + "@servie/events-1.0.0" = { + name = "_at_servie_slash_events"; + packageName = "@servie/events"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@servie/events/-/events-1.0.0.tgz"; + sha512 = "sBSO19KzdrJCM3gdx6eIxV8M9Gxfgg6iDQmH5TIAGaUu+X9VDdsINXJOnoiZ1Kx3TrHdH4bt5UVglkjsEGBcvw=="; + }; + }; + "@sqltools/formatter-1.2.2" = { + name = "_at_sqltools_slash_formatter"; + packageName = "@sqltools/formatter"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.2.tgz"; + sha512 = "/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q=="; + }; + }; + "@tokenizer/token-0.1.1" = { + name = "_at_tokenizer_slash_token"; + packageName = "@tokenizer/token"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz"; + sha512 = "XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w=="; + }; + }; + "@types/bluebird-3.5.33" = { + name = "_at_types_slash_bluebird"; + packageName = "@types/bluebird"; + version = "3.5.33"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.33.tgz"; + sha512 = "ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ=="; + }; + }; + "@types/body-parser-1.19.0" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; + }; + }; + "@types/connect-3.4.34" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.34"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz"; + sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ=="; + }; + }; + "@types/debug-4.1.5" = { + name = "_at_types_slash_debug"; + packageName = "@types/debug"; + version = "4.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz"; + sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ=="; + }; + }; + "@types/express-4.17.11" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.11"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz"; + sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg=="; + }; + }; + "@types/express-jwt-0.0.42" = { + name = "_at_types_slash_express-jwt"; + packageName = "@types/express-jwt"; + version = "0.0.42"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz"; + sha512 = "WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag=="; + }; + }; + "@types/express-serve-static-core-4.17.18" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.17.18"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz"; + sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA=="; + }; + }; + "@types/express-unless-0.5.1" = { + name = "_at_types_slash_express-unless"; + packageName = "@types/express-unless"; + version = "0.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz"; + sha512 = "5fuvg7C69lemNgl0+v+CUxDYWVPSfXHhJPst4yTLcqi4zKJpORCxnDrnnilk3k0DTq/WrAUdvXFs01+vUqUZHw=="; + }; + }; + "@types/ftp-0.3.31" = { + name = "_at_types_slash_ftp"; + packageName = "@types/ftp"; + version = "0.3.31"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/ftp/-/ftp-0.3.31.tgz"; + sha512 = "J30a1yD9avBsFahvmGoeumWUZ5YnGRj/7u0aKSa3dGxyaguU+14WkHmVzZYToK7vX0ADfyAXBUQlaQ20PTHhAA=="; + }; + }; + "@types/glob-7.1.3" = { + name = "_at_types_slash_glob"; + packageName = "@types/glob"; + version = "7.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz"; + sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w=="; + }; + }; + "@types/jsonwebtoken-8.5.0" = { + name = "_at_types_slash_jsonwebtoken"; + packageName = "@types/jsonwebtoken"; + version = "8.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz"; + sha512 = "9bVao7LvyorRGZCw0VmH/dr7Og+NdjYSsKAxB43OQoComFbBgsEpoR9JW6+qSq/ogwVBg8GI2MfAlk4SYI4OLg=="; + }; + }; + "@types/mime-1.3.2" = { + name = "_at_types_slash_mime"; + packageName = "@types/mime"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"; + sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="; + }; + }; + "@types/minimatch-3.0.3" = { + name = "_at_types_slash_minimatch"; + packageName = "@types/minimatch"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz"; + sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="; + }; + }; + "@types/node-12.19.15" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "12.19.15"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz"; + sha512 = "lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw=="; + }; + }; + "@types/node-14.14.22" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "14.14.22"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz"; + sha512 = "g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw=="; + }; + }; + "@types/node-8.10.66" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "8.10.66"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz"; + sha512 = "tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw=="; + }; + }; + "@types/promise-ftp-1.3.4" = { + name = "_at_types_slash_promise-ftp"; + packageName = "@types/promise-ftp"; + version = "1.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/promise-ftp/-/promise-ftp-1.3.4.tgz"; + sha512 = "fCIX7I84e25RX6bZ+qiIv0Puu5axWhCj9+El+4Kz1gZZyO/NvwdGTNQ33y6jdrPuTn3Df3kg7nMi1HohjNQLog=="; + }; + }; + "@types/promise-ftp-common-1.1.0" = { + name = "_at_types_slash_promise-ftp-common"; + packageName = "@types/promise-ftp-common"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/promise-ftp-common/-/promise-ftp-common-1.1.0.tgz"; + sha512 = "mqo6D4qdiJdzeqlzFwEIchQQZk2hZacjssmjoAX7nClcREmRUUsnmgbWXEfA2qK986rwOPqepfRoSu7rsjAKag=="; + }; + }; + "@types/qs-6.9.5" = { + name = "_at_types_slash_qs"; + packageName = "@types/qs"; + version = "6.9.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz"; + sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="; + }; + }; + "@types/range-parser-1.2.3" = { + name = "_at_types_slash_range-parser"; + packageName = "@types/range-parser"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; + }; + }; + "@types/readable-stream-2.3.9" = { + name = "_at_types_slash_readable-stream"; + packageName = "@types/readable-stream"; + version = "2.3.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz"; + sha512 = "sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw=="; + }; + }; + "@types/serve-static-1.13.9" = { + name = "_at_types_slash_serve-static"; + packageName = "@types/serve-static"; + version = "1.13.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz"; + sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA=="; + }; + }; + "@types/snowflake-sdk-1.5.1" = { + name = "_at_types_slash_snowflake-sdk"; + packageName = "@types/snowflake-sdk"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/snowflake-sdk/-/snowflake-sdk-1.5.1.tgz"; + sha512 = "0RPrY9NZZn3botFzmW+Yo7Qx8J0KbIRfrWOzVFqG9iN6qo9WfpZwoqApC8Y6y9htZBdpfAweeVQdyMOm6B8Z9w=="; + }; + }; + "@types/tough-cookie-2.3.7" = { + name = "_at_types_slash_tough-cookie"; + packageName = "@types/tough-cookie"; + version = "2.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.7.tgz"; + sha512 = "rMQbgMGxnLsdn8e9aPVyuN+zMQLrZ2QW8xlv7eWS1mydfGXN+tsTKffcIzd8rGCcLdmi3xvQw2MDaZI1bBNTaw=="; + }; + }; + "@types/tunnel-0.0.0" = { + name = "_at_types_slash_tunnel"; + packageName = "@types/tunnel"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.0.tgz"; + sha512 = "FGDp0iBRiBdPjOgjJmn1NH0KDLN+Z8fRmo+9J7XGBhubq1DPrGrbmG4UTlGzrpbCpesMqD0sWkzi27EYkOMHyg=="; + }; + }; + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "accepts-1.3.7" = { + name = "accepts"; + packageName = "accepts"; + version = "1.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"; + sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="; + }; + }; + "access-control-1.0.1" = { + name = "access-control"; + packageName = "access-control"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/access-control/-/access-control-1.0.1.tgz"; + sha512 = "H5aqjkogmFxfaOrfn/e42vyspHVXuJ8er63KuljJXpOyJ1ZO/U5CrHfO8BLKIy2w7mBM02L5quL0vbfQqrGQbA=="; + }; + }; + "adal-node-0.1.28" = { + name = "adal-node"; + packageName = "adal-node"; + version = "0.1.28"; + src = fetchurl { + url = "https://registry.npmjs.org/adal-node/-/adal-node-0.1.28.tgz"; + sha1 = "468c4bb3ebbd96b1270669f4b9cba4e0065ea485"; + }; + }; + "adler-32-1.2.0" = { + name = "adler-32"; + packageName = "adler-32"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz"; + sha1 = "6a3e6bf0a63900ba15652808cb15c6813d1a5f25"; + }; + }; + "agent-base-2.1.1" = { + name = "agent-base"; + packageName = "agent-base"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz"; + sha1 = "d6de10d5af6132d5bd692427d46fc538539094c7"; + }; + }; + "agent-base-4.3.0" = { + name = "agent-base"; + packageName = "agent-base"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz"; + sha512 = "salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg=="; + }; + }; + "ajv-6.12.6" = { + name = "ajv"; + packageName = "ajv"; + version = "6.12.6"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"; + sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="; + }; + }; + "amqplib-0.6.0" = { + name = "amqplib"; + packageName = "amqplib"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/amqplib/-/amqplib-0.6.0.tgz"; + sha512 = "zXCh4jQ77TBZe1YtvZ1n7sUxnTjnNagpy8MVi2yc1ive239pS3iLwm4e4d5o4XZGx1BdTKQ/U0ZmaDU3c8MxYQ=="; + }; + }; + "ansi-escapes-4.3.1" = { + name = "ansi-escapes"; + packageName = "ansi-escapes"; + version = "4.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz"; + sha512 = "JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA=="; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "ansi-regex-3.0.0" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; + }; + }; + "ansi-regex-5.0.0" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"; + sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="; + }; + }; + "ansi-styles-2.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; + }; + }; + "ansi-styles-3.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; + }; + }; + "ansi-styles-4.3.0" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; + sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; + }; + }; + "ansicolors-0.3.2" = { + name = "ansicolors"; + packageName = "ansicolors"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz"; + sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"; + }; + }; + "any-promise-1.3.0" = { + name = "any-promise"; + packageName = "any-promise"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"; + sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f"; + }; + }; + "app-root-path-3.0.0" = { + name = "app-root-path"; + packageName = "app-root-path"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz"; + sha512 = "qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw=="; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "are-we-there-yet-1.1.5" = { + name = "are-we-there-yet"; + packageName = "are-we-there-yet"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w=="; + }; + }; + "argparse-1.0.10" = { + name = "argparse"; + packageName = "argparse"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; + }; + }; + "array-flatten-1.1.1" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"; + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; + }; + }; + "array-parallel-0.1.3" = { + name = "array-parallel"; + packageName = "array-parallel"; + version = "0.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz"; + sha1 = "8f785308926ed5aa478c47e64d1b334b6c0c947d"; + }; + }; + "array-series-0.1.5" = { + name = "array-series"; + packageName = "array-series"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz"; + sha1 = "df5d37bfc5c2ef0755e2aa4f92feae7d4b5a972f"; + }; + }; + "array-union-2.1.0" = { + name = "array-union"; + packageName = "array-union"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"; + sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="; + }; + }; + "asn1-0.2.4" = { + name = "asn1"; + packageName = "asn1"; + version = "0.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; + sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; + }; + }; + "asn1.js-4.10.1" = { + name = "asn1.js"; + packageName = "asn1.js"; + version = "4.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz"; + sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw=="; + }; + }; + "asn1.js-5.4.1" = { + name = "asn1.js"; + packageName = "asn1.js"; + version = "5.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz"; + sha512 = "+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA=="; + }; + }; + "asn1.js-rfc2560-4.0.6" = { + name = "asn1.js-rfc2560"; + packageName = "asn1.js-rfc2560"; + version = "4.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-4.0.6.tgz"; + sha512 = "ysf48ni+f/efNPilq4+ApbifUPcSW/xbDeQAh055I+grr2gXgNRQqHew7kkO70WSMQ2tEOURVwsK+dJqUNjIIg=="; + }; + }; + "asn1.js-rfc2560-5.0.1" = { + name = "asn1.js-rfc2560"; + packageName = "asn1.js-rfc2560"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js-rfc2560/-/asn1.js-rfc2560-5.0.1.tgz"; + sha512 = "1PrVg6kuBziDN3PGFmRk3QrjpKvP9h/Hv5yMrFZvC1kpzP6dQRzf5BpKstANqHBkaOUmTpakJWhicTATOA/SbA=="; + }; + }; + "asn1.js-rfc5280-2.0.1" = { + name = "asn1.js-rfc5280"; + packageName = "asn1.js-rfc5280"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-2.0.1.tgz"; + sha512 = "1e2ypnvTbYD/GdxWK77tdLBahvo1fZUHlQJqAVUuZWdYj0rdjGcf2CWYUtbsyRYpYUMwMWLZFUtLxog8ZXTrcg=="; + }; + }; + "asn1.js-rfc5280-3.0.0" = { + name = "asn1.js-rfc5280"; + packageName = "asn1.js-rfc5280"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asn1.js-rfc5280/-/asn1.js-rfc5280-3.0.0.tgz"; + sha512 = "Y2LZPOWeZ6qehv698ZgOGGCZXBQShObWnGthTrIFlIQjuV1gg2B8QOhWFRExq/MR1VnPpIIe7P9vX2vElxv+Pg=="; + }; + }; + "assert-options-0.7.0" = { + name = "assert-options"; + packageName = "assert-options"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz"; + sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ=="; + }; + }; + "assert-plus-1.0.0" = { + name = "assert-plus"; + packageName = "assert-plus"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + }; + "async-1.5.2" = { + name = "async"; + packageName = "async"; + version = "1.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz"; + sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a"; + }; + }; + "async-3.2.0" = { + name = "async"; + packageName = "async"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz"; + sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "aws-sign2-0.7.0" = { + name = "aws-sign2"; + packageName = "aws-sign2"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; + }; + }; + "aws4-1.11.0" = { + name = "aws4"; + packageName = "aws4"; + version = "1.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"; + sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="; + }; + }; + "axios-0.19.2" = { + name = "axios"; + packageName = "axios"; + version = "0.19.2"; + src = fetchurl { + url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz"; + sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA=="; + }; + }; + "axios-0.21.1" = { + name = "axios"; + packageName = "axios"; + version = "0.21.1"; + src = fetchurl { + url = "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz"; + sha512 = "dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA=="; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "base64-js-1.5.1" = { + name = "base64-js"; + packageName = "base64-js"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"; + sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="; + }; + }; + "basic-auth-2.0.1" = { + name = "basic-auth"; + packageName = "basic-auth"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"; + sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="; + }; + }; + "bcrypt-pbkdf-1.0.2" = { + name = "bcrypt-pbkdf"; + packageName = "bcrypt-pbkdf"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; + }; + }; + "bcryptjs-2.4.3" = { + name = "bcryptjs"; + packageName = "bcryptjs"; + version = "2.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz"; + sha1 = "9ab5627b93e60621ff7cdac5da9733027df1d0cb"; + }; + }; + "big-integer-1.6.48" = { + name = "big-integer"; + packageName = "big-integer"; + version = "1.6.48"; + src = fetchurl { + url = "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz"; + sha512 = "j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="; + }; + }; + "bignumber.js-2.4.0" = { + name = "bignumber.js"; + packageName = "bignumber.js"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz"; + sha1 = "838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"; + }; + }; + "bitsyntax-0.1.0" = { + name = "bitsyntax"; + packageName = "bitsyntax"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz"; + sha512 = "ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q=="; + }; + }; + "bl-2.2.1" = { + name = "bl"; + packageName = "bl"; + version = "2.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz"; + sha512 = "6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g=="; + }; + }; + "bl-3.0.1" = { + name = "bl"; + packageName = "bl"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz"; + sha512 = "jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ=="; + }; + }; + "bl-4.0.3" = { + name = "bl"; + packageName = "bl"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz"; + sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg=="; + }; + }; + "bluebird-2.11.0" = { + name = "bluebird"; + packageName = "bluebird"; + version = "2.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz"; + sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1"; + }; + }; + "bluebird-3.7.2" = { + name = "bluebird"; + packageName = "bluebird"; + version = "3.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"; + sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="; + }; + }; + "bn.js-4.11.9" = { + name = "bn.js"; + packageName = "bn.js"; + version = "4.11.9"; + src = fetchurl { + url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz"; + sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw=="; + }; + }; + "body-parser-1.19.0" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; + }; + }; + "body-parser-xml-1.1.0" = { + name = "body-parser-xml"; + packageName = "body-parser-xml"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser-xml/-/body-parser-xml-1.1.0.tgz"; + sha1 = "7b56bef1cd7d266c13602b4c1daf4f511d26447c"; + }; + }; + "boolbase-1.0.0" = { + name = "boolbase"; + packageName = "boolbase"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"; + sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "braces-3.0.2" = { + name = "braces"; + packageName = "braces"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"; + sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="; + }; + }; + "browser-request-0.3.3" = { + name = "browser-request"; + packageName = "browser-request"; + version = "0.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz"; + sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17"; + }; + }; + "bson-1.1.5" = { + name = "bson"; + packageName = "bson"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz"; + sha512 = "kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg=="; + }; + }; + "buffer-5.7.1" = { + name = "buffer"; + packageName = "buffer"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"; + sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="; + }; + }; + "buffer-equal-constant-time-1.0.1" = { + name = "buffer-equal-constant-time"; + packageName = "buffer-equal-constant-time"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"; + sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"; + }; + }; + "buffer-from-1.1.1" = { + name = "buffer-from"; + packageName = "buffer-from"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"; + sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="; + }; + }; + "buffer-more-ints-1.0.0" = { + name = "buffer-more-ints"; + packageName = "buffer-more-ints"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz"; + sha512 = "EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg=="; + }; + }; + "buffer-writer-2.0.0" = { + name = "buffer-writer"; + packageName = "buffer-writer"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; + sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; + }; + }; + "byte-length-1.0.2" = { + name = "byte-length"; + packageName = "byte-length"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/byte-length/-/byte-length-1.0.2.tgz"; + sha512 = "ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q=="; + }; + }; + "bytes-3.0.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"; + sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048"; + }; + }; + "bytes-3.1.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; + }; + }; + "cacheable-lookup-5.0.4" = { + name = "cacheable-lookup"; + packageName = "cacheable-lookup"; + version = "5.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz"; + sha512 = "2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA=="; + }; + }; + "callback-stream-1.1.0" = { + name = "callback-stream"; + packageName = "callback-stream"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz"; + sha1 = "4701a51266f06e06eaa71fc17233822d875f4908"; + }; + }; + "camel-case-4.1.2" = { + name = "camel-case"; + packageName = "camel-case"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz"; + sha512 = "gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw=="; + }; + }; + "camelcase-5.3.1" = { + name = "camelcase"; + packageName = "camelcase"; + version = "5.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"; + sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="; + }; + }; + "capital-case-1.0.4" = { + name = "capital-case"; + packageName = "capital-case"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz"; + sha512 = "ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A=="; + }; + }; + "cardinal-2.1.1" = { + name = "cardinal"; + packageName = "cardinal"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz"; + sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505"; + }; + }; + "caseless-0.12.0" = { + name = "caseless"; + packageName = "caseless"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + }; + "cfb-1.2.0" = { + name = "cfb"; + packageName = "cfb"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz"; + sha512 = "sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ=="; + }; + }; + "chalk-1.1.3" = { + name = "chalk"; + packageName = "chalk"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; + }; + }; + "chalk-2.4.2" = { + name = "chalk"; + packageName = "chalk"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; + }; + }; + "chalk-4.1.0" = { + name = "chalk"; + packageName = "chalk"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"; + sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A=="; + }; + }; + "change-case-4.1.2" = { + name = "change-case"; + packageName = "change-case"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz"; + sha512 = "bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="; + }; + }; + "chardet-0.7.0" = { + name = "chardet"; + packageName = "chardet"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz"; + sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="; + }; + }; + "cheerio-1.0.0-rc.5" = { + name = "cheerio"; + packageName = "cheerio"; + version = "1.0.0-rc.5"; + src = fetchurl { + url = "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz"; + sha512 = "yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw=="; + }; + }; + "cheerio-select-tmp-0.1.1" = { + name = "cheerio-select-tmp"; + packageName = "cheerio-select-tmp"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz"; + sha512 = "YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ=="; + }; + }; + "chownr-1.1.4" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; + sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; + }; + }; + "clean-stack-3.0.1" = { + name = "clean-stack"; + packageName = "clean-stack"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz"; + sha512 = "lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg=="; + }; + }; + "cli-cursor-3.1.0" = { + name = "cli-cursor"; + packageName = "cli-cursor"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz"; + sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="; + }; + }; + "cli-highlight-2.1.10" = { + name = "cli-highlight"; + packageName = "cli-highlight"; + version = "2.1.10"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.10.tgz"; + sha512 = "CcPFD3JwdQ2oSzy+AMG6j3LRTkNjM82kzcSKzoVw6cLanDCJNlsLjeqVTOTfOfucnWv5F0rmBemVf1m9JiIasw=="; + }; + }; + "cli-width-3.0.0" = { + name = "cli-width"; + packageName = "cli-width"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz"; + sha512 = "FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="; + }; + }; + "client-oauth2-4.3.3" = { + name = "client-oauth2"; + packageName = "client-oauth2"; + version = "4.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/client-oauth2/-/client-oauth2-4.3.3.tgz"; + sha512 = "k8AvUYJon0vv75ufoVo4nALYb/qwFFicO3I0+39C6xEdflqVtr+f9cy+0ZxAduoVSTfhP5DX2tY2XICAd5hy6Q=="; + }; + }; + "cliui-7.0.4" = { + name = "cliui"; + packageName = "cliui"; + version = "7.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"; + sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "codepage-1.14.0" = { + name = "codepage"; + packageName = "codepage"; + version = "1.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz"; + sha1 = "8cbe25481323559d7d307571b0fff91e7a1d2f99"; + }; + }; + "color-3.0.0" = { + name = "color"; + packageName = "color"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz"; + sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w=="; + }; + }; + "color-convert-1.9.3" = { + name = "color-convert"; + packageName = "color-convert"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; + }; + }; + "color-convert-2.0.1" = { + name = "color-convert"; + packageName = "color-convert"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; + sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; + }; + }; + "color-name-1.1.3" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + }; + "color-name-1.1.4" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; + sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; + }; + }; + "color-string-1.5.4" = { + name = "color-string"; + packageName = "color-string"; + version = "1.5.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz"; + sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw=="; + }; + }; + "colornames-1.1.1" = { + name = "colornames"; + packageName = "colornames"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz"; + sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96"; + }; + }; + "colors-1.4.0" = { + name = "colors"; + packageName = "colors"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"; + sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="; + }; + }; + "colorspace-1.1.2" = { + name = "colorspace"; + packageName = "colorspace"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz"; + sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ=="; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "commander-2.14.1" = { + name = "commander"; + packageName = "commander"; + version = "2.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz"; + sha512 = "+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="; + }; + }; + "commander-2.17.1" = { + name = "commander"; + packageName = "commander"; + version = "2.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz"; + sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="; + }; + }; + "commist-1.1.0" = { + name = "commist"; + packageName = "commist"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz"; + sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg=="; + }; + }; + "compressible-2.0.18" = { + name = "compressible"; + packageName = "compressible"; + version = "2.0.18"; + src = fetchurl { + url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz"; + sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="; + }; + }; + "compression-1.7.4" = { + name = "compression"; + packageName = "compression"; + version = "1.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz"; + sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "concat-stream-1.6.2" = { + name = "concat-stream"; + packageName = "concat-stream"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"; + sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw=="; + }; + }; + "concat-stream-2.0.0" = { + name = "concat-stream"; + packageName = "concat-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz"; + sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A=="; + }; + }; + "connect-history-api-fallback-1.6.0" = { + name = "connect-history-api-fallback"; + packageName = "connect-history-api-fallback"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz"; + sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="; + }; + }; + "console-control-strings-1.1.0" = { + name = "console-control-strings"; + packageName = "console-control-strings"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + }; + "constant-case-3.0.4" = { + name = "constant-case"; + packageName = "constant-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz"; + sha512 = "I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ=="; + }; + }; + "content-disposition-0.5.3" = { + name = "content-disposition"; + packageName = "content-disposition"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; + }; + }; + "content-type-1.0.4" = { + name = "content-type"; + packageName = "content-type"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; + sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; + }; + }; + "convict-5.2.0" = { + name = "convict"; + packageName = "convict"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/convict/-/convict-5.2.0.tgz"; + sha512 = "C3cdUwo47cCikZNzu5Vv8AL0MuXVVeg9t/Gyr9qyK5ZpCjOkMPmJ85KUF3CowNeSfj4UtztHxS+hoO9wGRh6kg=="; + }; + }; + "cookie-0.4.0" = { + name = "cookie"; + packageName = "cookie"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; + }; + }; + "cookie-signature-1.0.6" = { + name = "cookie-signature"; + packageName = "cookie-signature"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "crc-32-1.2.0" = { + name = "crc-32"; + packageName = "crc-32"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz"; + sha512 = "1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA=="; + }; + }; + "cron-1.8.2" = { + name = "cron"; + packageName = "cron"; + version = "1.8.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz"; + sha512 = "Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg=="; + }; + }; + "cross-spawn-4.0.2" = { + name = "cross-spawn"; + packageName = "cross-spawn"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz"; + sha1 = "7b9247621c23adfdd3856004a823cbe397424d41"; + }; + }; + "crypto-js-4.0.0" = { + name = "crypto-js"; + packageName = "crypto-js"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz"; + sha512 = "bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg=="; + }; + }; + "csrf-3.1.0" = { + name = "csrf"; + packageName = "csrf"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz"; + sha512 = "uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w=="; + }; + }; + "css-select-3.1.2" = { + name = "css-select"; + packageName = "css-select"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz"; + sha512 = "qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA=="; + }; + }; + "css-what-4.0.0" = { + name = "css-what"; + packageName = "css-what"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz"; + sha512 = "teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A=="; + }; + }; + "d-1.0.1" = { + name = "d"; + packageName = "d"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz"; + sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA=="; + }; + }; + "dashdash-1.14.1" = { + name = "dashdash"; + packageName = "dashdash"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + }; + "date-utils-1.2.21" = { + name = "date-utils"; + packageName = "date-utils"; + version = "1.2.21"; + src = fetchurl { + url = "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz"; + sha1 = "61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"; + }; + }; + "debug-2.6.9" = { + name = "debug"; + packageName = "debug"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; + sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; + }; + }; + "debug-3.1.0" = { + name = "debug"; + packageName = "debug"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"; + sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g=="; + }; + }; + "debug-3.2.7" = { + name = "debug"; + packageName = "debug"; + version = "3.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"; + sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="; + }; + }; + "debug-4.3.1" = { + name = "debug"; + packageName = "debug"; + version = "4.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz"; + sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ=="; + }; + }; + "debug-4.3.2" = { + name = "debug"; + packageName = "debug"; + version = "4.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz"; + sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw=="; + }; + }; + "decamelize-1.2.0" = { + name = "decamelize"; + packageName = "decamelize"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"; + sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; + }; + }; + "deep-extend-0.6.0" = { + name = "deep-extend"; + packageName = "deep-extend"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; + sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "denque-1.5.0" = { + name = "denque"; + packageName = "denque"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz"; + sha512 = "CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="; + }; + }; + "depd-1.1.2" = { + name = "depd"; + packageName = "depd"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; + }; + }; + "depd-2.0.0" = { + name = "depd"; + packageName = "depd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; + }; + }; + "destroy-1.0.4" = { + name = "destroy"; + packageName = "destroy"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; + sha1 = "978857442c44749e4206613e37946205826abd80"; + }; + }; + "detect-libc-1.0.3" = { + name = "detect-libc"; + packageName = "detect-libc"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + }; + "diagnostics-1.1.1" = { + name = "diagnostics"; + packageName = "diagnostics"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz"; + sha512 = "8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ=="; + }; + }; + "dir-glob-3.0.1" = { + name = "dir-glob"; + packageName = "dir-glob"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"; + sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="; + }; + }; + "dom-serializer-0.2.2" = { + name = "dom-serializer"; + packageName = "dom-serializer"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz"; + sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g=="; + }; + }; + "dom-serializer-1.2.0" = { + name = "dom-serializer"; + packageName = "dom-serializer"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz"; + sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA=="; + }; + }; + "domelementtype-1.3.1" = { + name = "domelementtype"; + packageName = "domelementtype"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz"; + sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="; + }; + }; + "domelementtype-2.1.0" = { + name = "domelementtype"; + packageName = "domelementtype"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz"; + sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="; + }; + }; + "domhandler-2.4.2" = { + name = "domhandler"; + packageName = "domhandler"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz"; + sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA=="; + }; + }; + "domhandler-4.0.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz"; + sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA=="; + }; + }; + "domutils-1.7.0" = { + name = "domutils"; + packageName = "domutils"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz"; + sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg=="; + }; + }; + "domutils-2.4.4" = { + name = "domutils"; + packageName = "domutils"; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz"; + sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA=="; + }; + }; + "dot-case-3.0.4" = { + name = "dot-case"; + packageName = "dot-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz"; + sha512 = "Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="; + }; + }; + "dotenv-8.2.0" = { + name = "dotenv"; + packageName = "dotenv"; + version = "8.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz"; + sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="; + }; + }; + "double-ended-queue-2.1.0-0" = { + name = "double-ended-queue"; + packageName = "double-ended-queue"; + version = "2.1.0-0"; + src = fetchurl { + url = "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz"; + sha1 = "103d3527fd31528f40188130c841efdd78264e5c"; + }; + }; + "duplexify-3.7.1" = { + name = "duplexify"; + packageName = "duplexify"; + version = "3.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz"; + sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g=="; + }; + }; + "ecc-jsbn-0.1.2" = { + name = "ecc-jsbn"; + packageName = "ecc-jsbn"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; + }; + }; + "ecdsa-sig-formatter-1.0.11" = { + name = "ecdsa-sig-formatter"; + packageName = "ecdsa-sig-formatter"; + version = "1.0.11"; + src = fetchurl { + url = "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz"; + sha512 = "nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="; + }; + }; + "ee-first-1.1.1" = { + name = "ee-first"; + packageName = "ee-first"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; + }; + }; + "emoji-regex-8.0.0" = { + name = "emoji-regex"; + packageName = "emoji-regex"; + version = "8.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"; + sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="; + }; + }; + "enabled-1.0.2" = { + name = "enabled"; + packageName = "enabled"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz"; + sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93"; + }; + }; + "enabled-2.0.0" = { + name = "enabled"; + packageName = "enabled"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"; + sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="; + }; + }; + "encodeurl-1.0.2" = { + name = "encodeurl"; + packageName = "encodeurl"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + }; + "encoding-japanese-1.0.30" = { + name = "encoding-japanese"; + packageName = "encoding-japanese"; + version = "1.0.30"; + src = fetchurl { + url = "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-1.0.30.tgz"; + sha512 = "bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg=="; + }; + }; + "end-of-stream-1.4.4" = { + name = "end-of-stream"; + packageName = "end-of-stream"; + version = "1.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; + }; + }; + "entities-1.1.2" = { + name = "entities"; + packageName = "entities"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz"; + sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="; + }; + }; + "entities-2.1.0" = { + name = "entities"; + packageName = "entities"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz"; + sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="; + }; + }; + "entities-2.2.0" = { + name = "entities"; + packageName = "entities"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"; + sha512 = "p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="; + }; + }; + "env-variable-0.0.6" = { + name = "env-variable"; + packageName = "env-variable"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz"; + sha512 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="; + }; + }; + "es5-ext-0.10.53" = { + name = "es5-ext"; + packageName = "es5-ext"; + version = "0.10.53"; + src = fetchurl { + url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz"; + sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q=="; + }; + }; + "es6-iterator-2.0.3" = { + name = "es6-iterator"; + packageName = "es6-iterator"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz"; + sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7"; + }; + }; + "es6-map-0.1.5" = { + name = "es6-map"; + packageName = "es6-map"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz"; + sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0"; + }; + }; + "es6-promise-4.2.8" = { + name = "es6-promise"; + packageName = "es6-promise"; + version = "4.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"; + sha512 = "HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="; + }; + }; + "es6-promisify-5.0.0" = { + name = "es6-promisify"; + packageName = "es6-promisify"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz"; + sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203"; + }; + }; + "es6-set-0.1.5" = { + name = "es6-set"; + packageName = "es6-set"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz"; + sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1"; + }; + }; + "es6-symbol-3.1.1" = { + name = "es6-symbol"; + packageName = "es6-symbol"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"; + sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"; + }; + }; + "es6-symbol-3.1.3" = { + name = "es6-symbol"; + packageName = "es6-symbol"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz"; + sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA=="; + }; + }; + "escalade-3.1.1" = { + name = "escalade"; + packageName = "escalade"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"; + sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="; + }; + }; + "escape-html-1.0.3" = { + name = "escape-html"; + packageName = "escape-html"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; + sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; + }; + }; + "escape-string-regexp-1.0.5" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + }; + "escape-string-regexp-4.0.0" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"; + sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="; + }; + }; + "eslint-config-riot-1.0.0" = { + name = "eslint-config-riot"; + packageName = "eslint-config-riot"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-config-riot/-/eslint-config-riot-1.0.0.tgz"; + sha1 = "fbd65386980b30fbcd0e1305d4c3fb8614ef2119"; + }; + }; + "esprima-4.0.1" = { + name = "esprima"; + packageName = "esprima"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; + }; + }; + "etag-1.8.1" = { + name = "etag"; + packageName = "etag"; + version = "1.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; + }; + }; + "event-emitter-0.3.5" = { + name = "event-emitter"; + packageName = "event-emitter"; + version = "0.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"; + sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39"; + }; + }; + "eventsource-1.0.7" = { + name = "eventsource"; + packageName = "eventsource"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz"; + sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ=="; + }; + }; + "exit-on-epipe-1.0.1" = { + name = "exit-on-epipe"; + packageName = "exit-on-epipe"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz"; + sha512 = "h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="; + }; + }; + "express-4.17.1" = { + name = "express"; + packageName = "express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; + }; + }; + "ext-1.4.0" = { + name = "ext"; + packageName = "ext"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz"; + sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A=="; + }; + }; + "extend-3.0.2" = { + name = "extend"; + packageName = "extend"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; + sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; + }; + }; + "external-editor-3.1.0" = { + name = "external-editor"; + packageName = "external-editor"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz"; + sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew=="; + }; + }; + "extsprintf-1.3.0" = { + name = "extsprintf"; + packageName = "extsprintf"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + }; + "fast-deep-equal-3.1.3" = { + name = "fast-deep-equal"; + packageName = "fast-deep-equal"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"; + sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="; + }; + }; + "fast-glob-3.2.5" = { + name = "fast-glob"; + packageName = "fast-glob"; + version = "3.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz"; + sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg=="; + }; + }; + "fast-json-stable-stringify-2.1.0" = { + name = "fast-json-stable-stringify"; + packageName = "fast-json-stable-stringify"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; + sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; + }; + }; + "fast-safe-stringify-2.0.7" = { + name = "fast-safe-stringify"; + packageName = "fast-safe-stringify"; + version = "2.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz"; + sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="; + }; + }; + "fastq-1.10.1" = { + name = "fastq"; + packageName = "fastq"; + version = "1.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz"; + sha512 = "AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA=="; + }; + }; + "fecha-4.2.0" = { + name = "fecha"; + packageName = "fecha"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz"; + sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="; + }; + }; + "fflate-0.3.11" = { + name = "fflate"; + packageName = "fflate"; + version = "0.3.11"; + src = fetchurl { + url = "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz"; + sha512 = "Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A=="; + }; + }; + "fflate-0.4.8" = { + name = "fflate"; + packageName = "fflate"; + version = "0.4.8"; + src = fetchurl { + url = "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz"; + sha512 = "FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA=="; + }; + }; + "figlet-1.5.0" = { + name = "figlet"; + packageName = "figlet"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz"; + sha512 = "ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww=="; + }; + }; + "figures-3.2.0" = { + name = "figures"; + packageName = "figures"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz"; + sha512 = "yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="; + }; + }; + "file-type-14.7.1" = { + name = "file-type"; + packageName = "file-type"; + version = "14.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/file-type/-/file-type-14.7.1.tgz"; + sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA=="; + }; + }; + "fill-range-7.0.1" = { + name = "fill-range"; + packageName = "fill-range"; + version = "7.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"; + sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="; + }; + }; + "finalhandler-1.1.2" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; + }; + }; + "flatted-2.0.2" = { + name = "flatted"; + packageName = "flatted"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz"; + sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="; + }; + }; + "fn.name-1.1.0" = { + name = "fn.name"; + packageName = "fn.name"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"; + sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="; + }; + }; + "follow-redirects-1.13.2" = { + name = "follow-redirects"; + packageName = "follow-redirects"; + version = "1.13.2"; + src = fetchurl { + url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz"; + sha512 = "6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA=="; + }; + }; + "follow-redirects-1.5.10" = { + name = "follow-redirects"; + packageName = "follow-redirects"; + version = "1.5.10"; + src = fetchurl { + url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz"; + sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ=="; + }; + }; + "forever-agent-0.6.1" = { + name = "forever-agent"; + packageName = "forever-agent"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + }; + "form-data-2.3.3" = { + name = "form-data"; + packageName = "form-data"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; + sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; + }; + }; + "formidable-1.2.2" = { + name = "formidable"; + packageName = "formidable"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"; + sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="; + }; + }; + "forwarded-0.1.2" = { + name = "forwarded"; + packageName = "forwarded"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"; + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; + }; + }; + "frac-1.1.2" = { + name = "frac"; + packageName = "frac"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz"; + sha512 = "w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="; + }; + }; + "fresh-0.5.2" = { + name = "fresh"; + packageName = "fresh"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; + }; + }; + "fs-extra-8.1.0" = { + name = "fs-extra"; + packageName = "fs-extra"; + version = "8.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz"; + sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="; + }; + }; + "fs-minipass-1.2.7" = { + name = "fs-minipass"; + packageName = "fs-minipass"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA=="; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "gauge-2.7.4" = { + name = "gauge"; + packageName = "gauge"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + }; + "generate-function-2.3.1" = { + name = "generate-function"; + packageName = "generate-function"; + version = "2.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz"; + sha512 = "eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ=="; + }; + }; + "get-caller-file-2.0.5" = { + name = "get-caller-file"; + packageName = "get-caller-file"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; + sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; + }; + }; + "get-system-fonts-2.0.2" = { + name = "get-system-fonts"; + packageName = "get-system-fonts"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/get-system-fonts/-/get-system-fonts-2.0.2.tgz"; + sha512 = "zzlgaYnHMIEgHRrfC7x0Qp0Ylhw/sHpM6MHXeVBTYIsvGf5GpbnClB+Q6rAPdn+0gd2oZZIo6Tj3EaWrt4VhDQ=="; + }; + }; + "getpass-0.1.7" = { + name = "getpass"; + packageName = "getpass"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + }; + "glob-7.1.6" = { + name = "glob"; + packageName = "glob"; + version = "7.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"; + sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA=="; + }; + }; + "glob-parent-3.1.0" = { + name = "glob-parent"; + packageName = "glob-parent"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"; + sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; + }; + }; + "glob-parent-5.1.1" = { + name = "glob-parent"; + packageName = "glob-parent"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz"; + sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ=="; + }; + }; + "glob-promise-3.4.0" = { + name = "glob-promise"; + packageName = "glob-promise"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz"; + sha512 = "q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw=="; + }; + }; + "glob-stream-6.1.0" = { + name = "glob-stream"; + packageName = "glob-stream"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz"; + sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4"; + }; + }; + "globby-11.0.2" = { + name = "globby"; + packageName = "globby"; + version = "11.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz"; + sha512 = "2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og=="; + }; + }; + "gm-1.23.1" = { + name = "gm"; + packageName = "gm"; + version = "1.23.1"; + src = fetchurl { + url = "https://registry.npmjs.org/gm/-/gm-1.23.1.tgz"; + sha1 = "2edeeb958084d0f8ea7988e5d995b1c7dfc14777"; + }; + }; + "google-timezones-json-1.0.2" = { + name = "google-timezones-json"; + packageName = "google-timezones-json"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/google-timezones-json/-/google-timezones-json-1.0.2.tgz"; + sha512 = "UWXQ7BpSCW8erDespU2I4cri22xsKgwOCyhsJal0OJhi2tFpwJpsYNJt4vCiFPL1p2HzCGiS713LKpNR25n9Kg=="; + }; + }; + "graceful-fs-4.2.4" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz"; + sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="; + }; + }; + "har-schema-2.0.0" = { + name = "har-schema"; + packageName = "har-schema"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; + }; + }; + "har-validator-5.1.5" = { + name = "har-validator"; + packageName = "har-validator"; + version = "5.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"; + sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="; + }; + }; + "has-ansi-2.0.0" = { + name = "has-ansi"; + packageName = "has-ansi"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; + }; + }; + "has-flag-3.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + }; + "has-flag-4.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; + sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; + }; + }; + "has-unicode-2.0.1" = { + name = "has-unicode"; + packageName = "has-unicode"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + }; + "he-1.2.0" = { + name = "he"; + packageName = "he"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; + sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; + }; + }; + "header-case-2.0.4" = { + name = "header-case"; + packageName = "header-case"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz"; + sha512 = "H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q=="; + }; + }; + "help-me-1.1.0" = { + name = "help-me"; + packageName = "help-me"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz"; + sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6"; + }; + }; + "highlight.js-10.5.0" = { + name = "highlight.js"; + packageName = "highlight.js"; + version = "10.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz"; + sha512 = "xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw=="; + }; + }; + "html-to-text-5.1.1" = { + name = "html-to-text"; + packageName = "html-to-text"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/html-to-text/-/html-to-text-5.1.1.tgz"; + sha512 = "Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA=="; + }; + }; + "htmlparser2-3.10.1" = { + name = "htmlparser2"; + packageName = "htmlparser2"; + version = "3.10.1"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz"; + sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ=="; + }; + }; + "htmlparser2-6.0.0" = { + name = "htmlparser2"; + packageName = "htmlparser2"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz"; + sha512 = "numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw=="; + }; + }; + "http-errors-1.7.2" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; + }; + }; + "http-signature-1.2.0" = { + name = "http-signature"; + packageName = "http-signature"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; + }; + }; + "https-proxy-agent-3.0.1" = { + name = "https-proxy-agent"; + packageName = "https-proxy-agent"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz"; + sha512 = "+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg=="; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "iconv-lite-0.5.0" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz"; + sha512 = "NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw=="; + }; + }; + "iconv-lite-0.5.2" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz"; + sha512 = "kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag=="; + }; + }; + "iconv-lite-0.6.2" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz"; + sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ=="; + }; + }; + "ieee754-1.2.1" = { + name = "ieee754"; + packageName = "ieee754"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"; + sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; + }; + }; + "ignore-5.1.8" = { + name = "ignore"; + packageName = "ignore"; + version = "5.1.8"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz"; + sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="; + }; + }; + "ignore-walk-3.0.3" = { + name = "ignore-walk"; + packageName = "ignore-walk"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw=="; + }; + }; + "imap-0.8.19" = { + name = "imap"; + packageName = "imap"; + version = "0.8.19"; + src = fetchurl { + url = "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz"; + sha1 = "3678873934ab09cea6ba48741f284da2af59d8d5"; + }; + }; + "imap-simple-4.3.0" = { + name = "imap-simple"; + packageName = "imap-simple"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/imap-simple/-/imap-simple-4.3.0.tgz"; + sha512 = "SW3LtfEJFjlJKS/h2CmpX2IKpya2RXobR3ENJJW4iMQ3QYPxWxf5oeaz1K3P4eGUwfGEndkqt7uVDKnEyG9zeQ=="; + }; + }; + "indent-string-4.0.0" = { + name = "indent-string"; + packageName = "indent-string"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"; + sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ini-1.3.8" = { + name = "ini"; + packageName = "ini"; + version = "1.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"; + sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="; + }; + }; + "inquirer-7.3.3" = { + name = "inquirer"; + packageName = "inquirer"; + version = "7.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz"; + sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA=="; + }; + }; + "ip-regex-2.1.0" = { + name = "ip-regex"; + packageName = "ip-regex"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz"; + sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"; + }; + }; + "ipaddr.js-1.9.1" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; + }; + }; + "is-absolute-1.0.0" = { + name = "is-absolute"; + packageName = "is-absolute"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz"; + sha512 = "dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA=="; + }; + }; + "is-arrayish-0.3.2" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"; + sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="; + }; + }; + "is-docker-2.1.1" = { + name = "is-docker"; + packageName = "is-docker"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz"; + sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw=="; + }; + }; + "is-extglob-2.1.1" = { + name = "is-extglob"; + packageName = "is-extglob"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-fullwidth-code-point-2.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; + }; + }; + "is-fullwidth-code-point-3.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; + sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="; + }; + }; + "is-glob-3.1.0" = { + name = "is-glob"; + packageName = "is-glob"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"; + sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; + }; + }; + "is-glob-4.0.1" = { + name = "is-glob"; + packageName = "is-glob"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"; + sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg=="; + }; + }; + "is-negated-glob-1.0.0" = { + name = "is-negated-glob"; + packageName = "is-negated-glob"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz"; + sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2"; + }; + }; + "is-number-7.0.0" = { + name = "is-number"; + packageName = "is-number"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"; + sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="; + }; + }; + "is-promise-1.0.1" = { + name = "is-promise"; + packageName = "is-promise"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz"; + sha1 = "31573761c057e33c2e91aab9e96da08cefbe76e5"; + }; + }; + "is-property-1.0.2" = { + name = "is-property"; + packageName = "is-property"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"; + sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84"; + }; + }; + "is-relative-1.0.0" = { + name = "is-relative"; + packageName = "is-relative"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz"; + sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA=="; + }; + }; + "is-stream-2.0.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"; + sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="; + }; + }; + "is-typedarray-1.0.0" = { + name = "is-typedarray"; + packageName = "is-typedarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + }; + "is-unc-path-1.0.0" = { + name = "is-unc-path"; + packageName = "is-unc-path"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz"; + sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ=="; + }; + }; + "is-windows-1.0.2" = { + name = "is-windows"; + packageName = "is-windows"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"; + sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="; + }; + }; + "is-wsl-2.2.0" = { + name = "is-wsl"; + packageName = "is-wsl"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"; + sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="; + }; + }; + "isarray-0.0.1" = { + name = "isarray"; + packageName = "isarray"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"; + sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "isexe-2.0.0" = { + name = "isexe"; + packageName = "isexe"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + }; + "iso-639-1-2.1.7" = { + name = "iso-639-1"; + packageName = "iso-639-1"; + version = "2.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.7.tgz"; + sha512 = "vPBh9Exxv0c430dRYiKtRt6TgErlsKy22Nkz473HFkzRkWTZeM7RLfX2raDoD7g74kA7HB4S2giwu6ZwiisQtg=="; + }; + }; + "isstream-0.1.2" = { + name = "isstream"; + packageName = "isstream"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + }; + "js-yaml-3.14.1" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"; + sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="; + }; + }; + "jsbi-3.1.4" = { + name = "jsbi"; + packageName = "jsbi"; + version = "3.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz"; + sha512 = "52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg=="; + }; + }; + "jsbn-0.1.1" = { + name = "jsbn"; + packageName = "jsbn"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + }; + "json-schema-0.2.3" = { + name = "json-schema"; + packageName = "json-schema"; + version = "0.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; + }; + }; + "json-schema-traverse-0.4.1" = { + name = "json-schema-traverse"; + packageName = "json-schema-traverse"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; + sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; + }; + }; + "json-stable-stringify-without-jsonify-1.0.1" = { + name = "json-stable-stringify-without-jsonify"; + packageName = "json-stable-stringify-without-jsonify"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"; + sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651"; + }; + }; + "json-stringify-safe-5.0.1" = { + name = "json-stringify-safe"; + packageName = "json-stringify-safe"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; + }; + }; + "json5-2.1.0" = { + name = "json5"; + packageName = "json5"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz"; + sha512 = "8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ=="; + }; + }; + "jsonfile-4.0.0" = { + name = "jsonfile"; + packageName = "jsonfile"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz"; + sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb"; + }; + }; + "jsonwebtoken-8.5.1" = { + name = "jsonwebtoken"; + packageName = "jsonwebtoken"; + version = "8.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz"; + sha512 = "XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w=="; + }; + }; + "jsprim-1.4.1" = { + name = "jsprim"; + packageName = "jsprim"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + }; + "jwa-1.4.1" = { + name = "jwa"; + packageName = "jwa"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz"; + sha512 = "qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA=="; + }; + }; + "jwks-rsa-1.9.0" = { + name = "jwks-rsa"; + packageName = "jwks-rsa"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-1.9.0.tgz"; + sha512 = "UPCfQQg0s2kF2Ju6UFJrQH73f7MaVN/hKBnYBYOp+X9KN4y6TLChhLtaXS5nRKbZqshwVdrZ9OY63m/Q9CLqcg=="; + }; + }; + "jws-3.2.2" = { + name = "jws"; + packageName = "jws"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz"; + sha512 = "YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="; + }; + }; + "kafkajs-1.15.0" = { + name = "kafkajs"; + packageName = "kafkajs"; + version = "1.15.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kafkajs/-/kafkajs-1.15.0.tgz"; + sha512 = "yjPyEnQCkPxAuQLIJnY5dI+xnmmgXmhuOQ1GVxClG5KTOV/rJcW1qA3UfvyEJKTp/RTSqQnUR3HJsKFvHyTpNg=="; + }; + }; + "kuler-1.0.1" = { + name = "kuler"; + packageName = "kuler"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz"; + sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ=="; + }; + }; + "kuler-2.0.0" = { + name = "kuler"; + packageName = "kuler"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"; + sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="; + }; + }; + "leven-2.1.0" = { + name = "leven"; + packageName = "leven"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz"; + sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580"; + }; + }; + "libbase64-1.2.1" = { + name = "libbase64"; + packageName = "libbase64"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz"; + sha512 = "l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew=="; + }; + }; + "libmime-4.2.1" = { + name = "libmime"; + packageName = "libmime"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/libmime/-/libmime-4.2.1.tgz"; + sha512 = "09y7zjSc5im1aNsq815zgo4/G3DnIzym3aDOHsGq4Ee5vrX4PdgQRybAsztz9Rv0NhO+J5C0llEUloa3sUmjmA=="; + }; + }; + "libmime-5.0.0" = { + name = "libmime"; + packageName = "libmime"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/libmime/-/libmime-5.0.0.tgz"; + sha512 = "2Bm96d5ktnE217Ib1FldvUaPAaOst6GtZrsxJCwnJgi9lnsoAKIHyU0sae8rNx6DNYbjdqqh8lv5/b9poD8qOg=="; + }; + }; + "libqp-1.1.0" = { + name = "libqp"; + packageName = "libqp"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz"; + sha1 = "f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8"; + }; + }; + "limiter-1.1.5" = { + name = "limiter"; + packageName = "limiter"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz"; + sha512 = "FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="; + }; + }; + "linkify-it-3.0.2" = { + name = "linkify-it"; + packageName = "linkify-it"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz"; + sha512 = "gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ=="; + }; + }; + "localtunnel-2.0.1" = { + name = "localtunnel"; + packageName = "localtunnel"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.1.tgz"; + sha512 = "LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA=="; + }; + }; + "lodash-4.17.20" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.20"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz"; + sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="; + }; + }; + "lodash._reinterpolate-3.0.0" = { + name = "lodash._reinterpolate"; + packageName = "lodash._reinterpolate"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz"; + sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d"; + }; + }; + "lodash.clonedeep-4.5.0" = { + name = "lodash.clonedeep"; + packageName = "lodash.clonedeep"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"; + sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef"; + }; + }; + "lodash.get-4.4.2" = { + name = "lodash.get"; + packageName = "lodash.get"; + version = "4.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz"; + sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99"; + }; + }; + "lodash.includes-4.3.0" = { + name = "lodash.includes"; + packageName = "lodash.includes"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz"; + sha1 = "60bb98a87cb923c68ca1e51325483314849f553f"; + }; + }; + "lodash.isboolean-3.0.3" = { + name = "lodash.isboolean"; + packageName = "lodash.isboolean"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz"; + sha1 = "6c2e171db2a257cd96802fd43b01b20d5f5870f6"; + }; + }; + "lodash.isinteger-4.0.4" = { + name = "lodash.isinteger"; + packageName = "lodash.isinteger"; + version = "4.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz"; + sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343"; + }; + }; + "lodash.isnumber-3.0.3" = { + name = "lodash.isnumber"; + packageName = "lodash.isnumber"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz"; + sha1 = "3ce76810c5928d03352301ac287317f11c0b1ffc"; + }; + }; + "lodash.isplainobject-4.0.6" = { + name = "lodash.isplainobject"; + packageName = "lodash.isplainobject"; + version = "4.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz"; + sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb"; + }; + }; + "lodash.isstring-4.0.1" = { + name = "lodash.isstring"; + packageName = "lodash.isstring"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz"; + sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"; + }; + }; + "lodash.once-4.1.1" = { + name = "lodash.once"; + packageName = "lodash.once"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz"; + sha1 = "0dd3971213c7c56df880977d504c88fb471a97ac"; + }; + }; + "lodash.set-4.3.2" = { + name = "lodash.set"; + packageName = "lodash.set"; + version = "4.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz"; + sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23"; + }; + }; + "lodash.template-4.5.0" = { + name = "lodash.template"; + packageName = "lodash.template"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz"; + sha512 = "84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A=="; + }; + }; + "lodash.templatesettings-4.2.0" = { + name = "lodash.templatesettings"; + packageName = "lodash.templatesettings"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz"; + sha512 = "stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ=="; + }; + }; + "lodash.unset-4.5.2" = { + name = "lodash.unset"; + packageName = "lodash.unset"; + version = "4.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz"; + sha1 = "370d1d3e85b72a7e1b0cdf2d272121306f23e4ed"; + }; + }; + "logform-2.2.0" = { + name = "logform"; + packageName = "logform"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz"; + sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg=="; + }; + }; + "long-4.0.0" = { + name = "long"; + packageName = "long"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/long/-/long-4.0.0.tgz"; + sha512 = "XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="; + }; + }; + "lower-case-2.0.2" = { + name = "lower-case"; + packageName = "lower-case"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz"; + sha512 = "7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="; + }; + }; + "lru-cache-4.0.2" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz"; + sha1 = "1d17679c069cda5d040991a09dbc2c0db377e55e"; + }; + }; + "lru-cache-4.1.5" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "4.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; + sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; + }; + }; + "lru-cache-5.1.1" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"; + sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="; + }; + }; + "lru-cache-6.0.0" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"; + sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="; + }; + }; + "lru-memoizer-2.1.4" = { + name = "lru-memoizer"; + packageName = "lru-memoizer"; + version = "2.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.4.tgz"; + sha512 = "IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ=="; + }; + }; + "mailparser-2.8.1" = { + name = "mailparser"; + packageName = "mailparser"; + version = "2.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mailparser/-/mailparser-2.8.1.tgz"; + sha512 = "H/CYAO9dsw6SFNbEGGpZsejVSWDcFlyHjb1OkHUWg0wggUekva1tNc28trB155nSqM8rhtbwTKt//orX0AmJxQ=="; + }; + }; + "mailsplit-5.0.0" = { + name = "mailsplit"; + packageName = "mailsplit"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mailsplit/-/mailsplit-5.0.0.tgz"; + sha512 = "HeXA0eyCKBtZqbr7uoeb3Nn2L7VV8Vm27x6/YBb0ZiNzRzLoNS2PqRgGYADwh0cBzLYtqddq40bSSirqLO2LGw=="; + }; + }; + "make-error-1.3.6" = { + name = "make-error"; + packageName = "make-error"; + version = "1.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"; + sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="; + }; + }; + "make-error-cause-2.3.0" = { + name = "make-error-cause"; + packageName = "make-error-cause"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/make-error-cause/-/make-error-cause-2.3.0.tgz"; + sha512 = "etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg=="; + }; + }; + "media-typer-0.3.0" = { + name = "media-typer"; + packageName = "media-typer"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; + }; + }; + "memory-pager-1.5.0" = { + name = "memory-pager"; + packageName = "memory-pager"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"; + sha512 = "ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="; + }; + }; + "merge-descriptors-1.0.1" = { + name = "merge-descriptors"; + packageName = "merge-descriptors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; + }; + }; + "merge2-1.4.1" = { + name = "merge2"; + packageName = "merge2"; + version = "1.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"; + sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="; + }; + }; + "methods-1.1.2" = { + name = "methods"; + packageName = "methods"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"; + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; + }; + }; + "micromatch-4.0.2" = { + name = "micromatch"; + packageName = "micromatch"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz"; + sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q=="; + }; + }; + "millisecond-0.1.2" = { + name = "millisecond"; + packageName = "millisecond"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/millisecond/-/millisecond-0.1.2.tgz"; + sha1 = "6cc5ad386241cab8e78aff964f87028eec92dac5"; + }; + }; + "mime-1.6.0" = { + name = "mime"; + packageName = "mime"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; + }; + }; + "mime-db-1.45.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.45.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz"; + sha512 = "CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="; + }; + }; + "mime-types-2.1.28" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.28"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz"; + sha512 = "0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ=="; + }; + }; + "mimic-fn-2.1.0" = { + name = "mimic-fn"; + packageName = "mimic-fn"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"; + sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="; + }; + }; + "minimalistic-assert-1.0.1" = { + name = "minimalistic-assert"; + packageName = "minimalistic-assert"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-1.2.5" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; + }; + }; + "minipass-2.9.0" = { + name = "minipass"; + packageName = "minipass"; + version = "2.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; + sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; + }; + }; + "minizlib-1.3.3" = { + name = "minizlib"; + packageName = "minizlib"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; + sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q=="; + }; + }; + "mkdirp-0.5.5" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; + sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; + }; + }; + "mkdirp-1.0.4" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; + sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; + }; + }; + "moment-2.24.0" = { + name = "moment"; + packageName = "moment"; + version = "2.24.0"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz"; + sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="; + }; + }; + "moment-2.28.0" = { + name = "moment"; + packageName = "moment"; + version = "2.28.0"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.28.0.tgz"; + sha512 = "Z5KOjYmnHyd/ukynmFd/WwyXHd7L4J9vTI/nn5Ap9AVUgaAE15VvQ9MOGmJJygEUklupqIrFnor/tjTwRU+tQw=="; + }; + }; + "moment-timezone-0.5.32" = { + name = "moment-timezone"; + packageName = "moment-timezone"; + version = "0.5.32"; + src = fetchurl { + url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.32.tgz"; + sha512 = "Z8QNyuQHQAmWucp8Knmgei8YNo28aLjJq6Ma+jy1ZSpSk5nyfRT8xgUbSQvD2+2UajISfenndwvFuH3NGS+nvA=="; + }; + }; + "mongodb-3.6.3" = { + name = "mongodb"; + packageName = "mongodb"; + version = "3.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz"; + sha512 = "rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w=="; + }; + }; + "mqtt-4.2.1" = { + name = "mqtt"; + packageName = "mqtt"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mqtt/-/mqtt-4.2.1.tgz"; + sha512 = "Iv893r+jWlo5GkNcPOfCGwW8M49IixwHiKLFFYTociEymSibUVCORVEjPXWPGzSxhn7BdlUeHicbRmWiv0Crkg=="; + }; + }; + "mqtt-packet-6.7.0" = { + name = "mqtt-packet"; + packageName = "mqtt-packet"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.7.0.tgz"; + sha512 = "GzgeeCirQpB59FyhHvf8BLiIYgxctPSxuSyaF2vWnkt7paX7jtuQ8Gpl+DkHCxZmYuv7GQE6zcUAegpafd0MqQ=="; + }; + }; + "ms-2.0.0" = { + name = "ms"; + packageName = "ms"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + }; + "ms-2.1.1" = { + name = "ms"; + packageName = "ms"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; + }; + }; + "ms-2.1.2" = { + name = "ms"; + packageName = "ms"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; + sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; + }; + }; + "mssql-6.3.1" = { + name = "mssql"; + packageName = "mssql"; + version = "6.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mssql/-/mssql-6.3.1.tgz"; + sha512 = "ammxrhbdDpcBWhiZLiy6miiU7ELt9qFbGvwmPbiufn+tBHAYUFR/AgwE4/v4jzPzbatowscmhFx1U61L91uVzQ=="; + }; + }; + "mute-stream-0.0.8" = { + name = "mute-stream"; + packageName = "mute-stream"; + version = "0.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz"; + sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="; + }; + }; + "mysql2-2.1.0" = { + name = "mysql2"; + packageName = "mysql2"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mysql2/-/mysql2-2.1.0.tgz"; + sha512 = "9kGVyi930rG2KaHrz3sHwtc6K+GY9d8wWk1XRSYxQiunvGcn4DwuZxOwmK11ftuhhwrYDwGx9Ta4VBwznJn36A=="; + }; + }; + "mz-2.7.0" = { + name = "mz"; + packageName = "mz"; + version = "2.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"; + sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="; + }; + }; + "n8n-core-0.62.0" = { + name = "n8n-core"; + packageName = "n8n-core"; + version = "0.62.0"; + src = fetchurl { + url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.62.0.tgz"; + sha512 = "07RkPn6V5dCov3yt5zu5ASq2ibflji+dSGrSk7wnVrklGPBieuUjpZQuA7QrfQyjy5JUNDDp/Js+XGO8Vx3tew=="; + }; + }; + "n8n-editor-ui-0.75.0" = { + name = "n8n-editor-ui"; + packageName = "n8n-editor-ui"; + version = "0.75.0"; + src = fetchurl { + url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.75.0.tgz"; + sha512 = "YWwiqGwTXxpuXjVB5d9qnjxoz55um27zwEfoXS63mNTDfDdIeuxHKQCY2pMWIjwXeYnx0x31NDhoSfjb8YRffA=="; + }; + }; + "n8n-nodes-base-0.102.0" = { + name = "n8n-nodes-base"; + packageName = "n8n-nodes-base"; + version = "0.102.0"; + src = fetchurl { + url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.102.0.tgz"; + sha512 = "WDUh2c0qCNDf2c8ZwkA/9RrkU/64A364P2t3wE1c66a8E/n/QJyiLnd4BJAu96cdcm+n2A0DwO9+gX1F50EU5A=="; + }; + }; + "n8n-workflow-0.51.0" = { + name = "n8n-workflow"; + packageName = "n8n-workflow"; + version = "0.51.0"; + src = fetchurl { + url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.51.0.tgz"; + sha512 = "KLjbJ10QhXc7clzmVRO60mftzZTeYR/MSC/RSobJBCzYGbAtnEp38YDg6a3ekznlwd6eIyTcD68xmv4EbSb2dQ=="; + }; + }; + "named-placeholders-1.1.2" = { + name = "named-placeholders"; + packageName = "named-placeholders"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz"; + sha512 = "wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA=="; + }; + }; + "nan-2.14.2" = { + name = "nan"; + packageName = "nan"; + version = "2.14.2"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz"; + sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="; + }; + }; + "native-duplexpair-1.0.0" = { + name = "native-duplexpair"; + packageName = "native-duplexpair"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz"; + sha1 = "7899078e64bf3c8a3d732601b3d40ff05db58fa0"; + }; + }; + "needle-2.6.0" = { + name = "needle"; + packageName = "needle"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz"; + sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg=="; + }; + }; + "negotiator-0.6.2" = { + name = "negotiator"; + packageName = "negotiator"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"; + sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="; + }; + }; + "next-tick-1.0.0" = { + name = "next-tick"; + packageName = "next-tick"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz"; + sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c"; + }; + }; + "no-case-3.0.4" = { + name = "no-case"; + packageName = "no-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz"; + sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="; + }; + }; + "node-ensure-0.0.0" = { + name = "node-ensure"; + packageName = "node-ensure"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz"; + sha1 = "ecae764150de99861ec5c810fd5d096b183932a7"; + }; + }; + "node-pre-gyp-0.11.0" = { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; + sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q=="; + }; + }; + "nodeify-1.0.1" = { + name = "nodeify"; + packageName = "nodeify"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz"; + sha1 = "64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d"; + }; + }; + "nodemailer-6.4.11" = { + name = "nodemailer"; + packageName = "nodemailer"; + version = "6.4.11"; + src = fetchurl { + url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.11.tgz"; + sha512 = "BVZBDi+aJV4O38rxsUh164Dk1NCqgh6Cm0rQSb9SK/DHGll/DrCMnycVDD7msJgZCnmVa8ASo8EZzR7jsgTukQ=="; + }; + }; + "nodemailer-6.4.17" = { + name = "nodemailer"; + packageName = "nodemailer"; + version = "6.4.17"; + src = fetchurl { + url = "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.17.tgz"; + sha512 = "89ps+SBGpo0D4Bi5ZrxcrCiRFaMmkCt+gItMXQGzEtZVR3uAD3QAQIDoxTWnx3ky0Dwwy/dhFrQ+6NNGXpw/qQ=="; + }; + }; + "nopt-4.0.3" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; + sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; + }; + }; + "npm-bundled-1.1.1" = { + name = "npm-bundled"; + packageName = "npm-bundled"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz"; + sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA=="; + }; + }; + "npm-normalize-package-bin-1.0.1" = { + name = "npm-normalize-package-bin"; + packageName = "npm-normalize-package-bin"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"; + sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="; + }; + }; + "npm-packlist-1.4.8" = { + name = "npm-packlist"; + packageName = "npm-packlist"; + version = "1.4.8"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz"; + sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A=="; + }; + }; + "npmlog-4.1.2" = { + name = "npmlog"; + packageName = "npmlog"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; + sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="; + }; + }; + "nth-check-2.0.0" = { + name = "nth-check"; + packageName = "nth-check"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz"; + sha512 = "i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q=="; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "oauth-1.0a-2.2.6" = { + name = "oauth-1.0a"; + packageName = "oauth-1.0a"; + version = "2.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.6.tgz"; + sha512 = "6bkxv3N4Gu5lty4viIcIAnq5GbxECviMBeKR3WX/q87SPQ8E8aursPZUtsXDnxCs787af09WPRBLqYrf/lwoYQ=="; + }; + }; + "oauth-sign-0.9.0" = { + name = "oauth-sign"; + packageName = "oauth-sign"; + version = "0.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; + sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "ocsp-1.2.0" = { + name = "ocsp"; + packageName = "ocsp"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ocsp/-/ocsp-1.2.0.tgz"; + sha1 = "469a1776b457dee67eb0201408c1946bac4076cc"; + }; + }; + "on-finished-2.3.0" = { + name = "on-finished"; + packageName = "on-finished"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "one-time-1.0.0" = { + name = "one-time"; + packageName = "one-time"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"; + sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="; + }; + }; + "onetime-5.1.2" = { + name = "onetime"; + packageName = "onetime"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"; + sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="; + }; + }; + "open-7.4.0" = { + name = "open"; + packageName = "open"; + version = "7.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/open/-/open-7.4.0.tgz"; + sha512 = "PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA=="; + }; + }; + "openurl-1.1.1" = { + name = "openurl"; + packageName = "openurl"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz"; + sha1 = "3875b4b0ef7a52c156f0db41d4609dbb0f94b387"; + }; + }; + "ordered-read-streams-1.0.1" = { + name = "ordered-read-streams"; + packageName = "ordered-read-streams"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz"; + sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e"; + }; + }; + "original-1.0.2" = { + name = "original"; + packageName = "original"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz"; + sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg=="; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "p-cancelable-2.0.0" = { + name = "p-cancelable"; + packageName = "p-cancelable"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz"; + sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg=="; + }; + }; + "packet-reader-1.0.0" = { + name = "packet-reader"; + packageName = "packet-reader"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; + sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; + }; + }; + "param-case-3.0.4" = { + name = "param-case"; + packageName = "param-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz"; + sha512 = "RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="; + }; + }; + "parent-require-1.0.0" = { + name = "parent-require"; + packageName = "parent-require"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz"; + sha1 = "746a167638083a860b0eef6732cb27ed46c32977"; + }; + }; + "parse5-5.1.1" = { + name = "parse5"; + packageName = "parse5"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz"; + sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="; + }; + }; + "parse5-6.0.1" = { + name = "parse5"; + packageName = "parse5"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz"; + sha512 = "Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="; + }; + }; + "parse5-htmlparser2-tree-adapter-6.0.1" = { + name = "parse5-htmlparser2-tree-adapter"; + packageName = "parse5-htmlparser2-tree-adapter"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz"; + sha512 = "qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA=="; + }; + }; + "parseurl-1.3.3" = { + name = "parseurl"; + packageName = "parseurl"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; + }; + }; + "pascal-case-3.1.2" = { + name = "pascal-case"; + packageName = "pascal-case"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz"; + sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="; + }; + }; + "path-case-3.0.4" = { + name = "path-case"; + packageName = "path-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz"; + sha512 = "qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg=="; + }; + }; + "path-dirname-1.0.2" = { + name = "path-dirname"; + packageName = "path-dirname"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"; + sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "path-to-regexp-0.1.7" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; + sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; + }; + }; + "path-type-4.0.0" = { + name = "path-type"; + packageName = "path-type"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"; + sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="; + }; + }; + "pdf-parse-1.1.1" = { + name = "pdf-parse"; + packageName = "pdf-parse"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pdf-parse/-/pdf-parse-1.1.1.tgz"; + sha512 = "v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A=="; + }; + }; + "peek-readable-3.1.3" = { + name = "peek-readable"; + packageName = "peek-readable"; + version = "3.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.3.tgz"; + sha512 = "mpAcysyRJxmICBcBa5IXH7SZPvWkcghm6Fk8RekoS3v+BpbSzlZzuWbMx+GXrlUwESi9qHar4nVEZNMKylIHvg=="; + }; + }; + "performance-now-2.1.0" = { + name = "performance-now"; + packageName = "performance-now"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; + }; + }; + "pg-8.5.1" = { + name = "pg"; + packageName = "pg"; + version = "8.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz"; + sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw=="; + }; + }; + "pg-connection-string-2.4.0" = { + name = "pg-connection-string"; + packageName = "pg-connection-string"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz"; + sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ=="; + }; + }; + "pg-int8-1.0.1" = { + name = "pg-int8"; + packageName = "pg-int8"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; + sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; + }; + }; + "pg-minify-1.6.2" = { + name = "pg-minify"; + packageName = "pg-minify"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz"; + sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg=="; + }; + }; + "pg-pool-3.2.2" = { + name = "pg-pool"; + packageName = "pg-pool"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz"; + sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA=="; + }; + }; + "pg-promise-10.9.2" = { + name = "pg-promise"; + packageName = "pg-promise"; + version = "10.9.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.2.tgz"; + sha512 = "ewelfzZeSPe5sbgd5ylB6edVXqoD8AH/fqZj4wPLL0242vXtkFY3JuUqt3mfvTruOqZHhoINpoXTfmC9UXbZ7A=="; + }; + }; + "pg-protocol-1.4.0" = { + name = "pg-protocol"; + packageName = "pg-protocol"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz"; + sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA=="; + }; + }; + "pg-types-2.2.0" = { + name = "pg-types"; + packageName = "pg-types"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; + sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; + }; + }; + "pgpass-1.0.4" = { + name = "pgpass"; + packageName = "pgpass"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz"; + sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w=="; + }; + }; + "picomatch-2.2.2" = { + name = "picomatch"; + packageName = "picomatch"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz"; + sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="; + }; + }; + "popsicle-12.1.0" = { + name = "popsicle"; + packageName = "popsicle"; + version = "12.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle/-/popsicle-12.1.0.tgz"; + sha512 = "muNC/cIrWhfR6HqqhHazkxjob3eyECBe8uZYSQ/N5vixNAgssacVleerXnE8Are5fspR0a+d2qWaBR1g7RYlmw=="; + }; + }; + "popsicle-content-encoding-1.0.0" = { + name = "popsicle-content-encoding"; + packageName = "popsicle-content-encoding"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle-content-encoding/-/popsicle-content-encoding-1.0.0.tgz"; + sha512 = "4Df+vTfM8wCCJVTzPujiI6eOl3SiWQkcZg0AMrOkD1enMXsF3glIkFUZGvour1Sj7jOWCsNSEhBxpbbhclHhzw=="; + }; + }; + "popsicle-cookie-jar-1.0.0" = { + name = "popsicle-cookie-jar"; + packageName = "popsicle-cookie-jar"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle-cookie-jar/-/popsicle-cookie-jar-1.0.0.tgz"; + sha512 = "vrlOGvNVELko0+J8NpGC5lHWDGrk8LQJq9nwAMIVEVBfN1Lib3BLxAaLRGDTuUnvl45j5N9dT2H85PULz6IjjQ=="; + }; + }; + "popsicle-redirects-1.1.0" = { + name = "popsicle-redirects"; + packageName = "popsicle-redirects"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle-redirects/-/popsicle-redirects-1.1.0.tgz"; + sha512 = "XCpzVjVk7tty+IJnSdqWevmOr1n8HNDhL86v7mZ6T1JIIf2KGybxUk9mm7ZFOhWMkGB0e8XkacHip7BV8AQWQA=="; + }; + }; + "popsicle-transport-http-1.1.1" = { + name = "popsicle-transport-http"; + packageName = "popsicle-transport-http"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle-transport-http/-/popsicle-transport-http-1.1.1.tgz"; + sha512 = "RNbifrl5ckXLk1X6YGhjDb0gL5yAH1nvultmboiVGLTnWDbwaoxhEP8He9epMFOPuSDuNJ//TMRoN+XfpN0KCw=="; + }; + }; + "popsicle-transport-xhr-2.0.0" = { + name = "popsicle-transport-xhr"; + packageName = "popsicle-transport-xhr"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle-transport-xhr/-/popsicle-transport-xhr-2.0.0.tgz"; + sha512 = "5Sbud4Widngf1dodJE5cjEYXkzEUIl8CzyYRYR57t6vpy9a9KPGQX6KBKdPjmBZlR5A06pOBXuJnVr23l27rtA=="; + }; + }; + "popsicle-user-agent-1.0.0" = { + name = "popsicle-user-agent"; + packageName = "popsicle-user-agent"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/popsicle-user-agent/-/popsicle-user-agent-1.0.0.tgz"; + sha512 = "epKaq3TTfTzXcxBxjpoKYMcTTcAX8Rykus6QZu77XNhJuRHSRxMd+JJrbX/3PFI0opFGSN0BabbAYCbGxbu0mA=="; + }; + }; + "postgres-array-2.0.0" = { + name = "postgres-array"; + packageName = "postgres-array"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; + sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; + }; + }; + "postgres-bytea-1.0.0" = { + name = "postgres-bytea"; + packageName = "postgres-bytea"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; + sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35"; + }; + }; + "postgres-date-1.0.7" = { + name = "postgres-date"; + packageName = "postgres-date"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; + sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; + }; + }; + "postgres-interval-1.2.0" = { + name = "postgres-interval"; + packageName = "postgres-interval"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; + sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; + }; + }; + "printj-1.1.2" = { + name = "printj"; + packageName = "printj"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz"; + sha512 = "zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "promise-1.3.0" = { + name = "promise"; + packageName = "promise"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz"; + sha1 = "e5cc9a4c8278e4664ffedc01c7da84842b040175"; + }; + }; + "promise-ftp-1.3.5" = { + name = "promise-ftp"; + packageName = "promise-ftp"; + version = "1.3.5"; + src = fetchurl { + url = "https://registry.npmjs.org/promise-ftp/-/promise-ftp-1.3.5.tgz"; + sha512 = "v368jPSqzmjjKDIyggulC+dRFcpAOEX7aFdEWkFYQp8Ao3P2N4Y6XnFFdKgK7PtkylwvGQkZR/65HZuzmq0V7A=="; + }; + }; + "promise-ftp-common-1.1.5" = { + name = "promise-ftp-common"; + packageName = "promise-ftp-common"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/promise-ftp-common/-/promise-ftp-common-1.1.5.tgz"; + sha1 = "b4f8082a74035647703506763edb14230d9865da"; + }; + }; + "proxy-addr-2.0.6" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; + }; + }; + "pseudomap-1.0.2" = { + name = "pseudomap"; + packageName = "pseudomap"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; + sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; + }; + }; + "psl-1.8.0" = { + name = "psl"; + packageName = "psl"; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"; + sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="; + }; + }; + "pump-2.0.1" = { + name = "pump"; + packageName = "pump"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz"; + sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA=="; + }; + }; + "pump-3.0.0" = { + name = "pump"; + packageName = "pump"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"; + sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="; + }; + }; + "pumpify-1.5.1" = { + name = "pumpify"; + packageName = "pumpify"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz"; + sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ=="; + }; + }; + "punycode-2.1.1" = { + name = "punycode"; + packageName = "punycode"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; + sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; + }; + }; + "qs-6.5.2" = { + name = "qs"; + packageName = "qs"; + version = "6.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; + sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="; + }; + }; + "qs-6.7.0" = { + name = "qs"; + packageName = "qs"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; + }; + }; + "querystringify-2.2.0" = { + name = "querystringify"; + packageName = "querystringify"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"; + sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="; + }; + }; + "quoted-printable-1.0.1" = { + name = "quoted-printable"; + packageName = "quoted-printable"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/quoted-printable/-/quoted-printable-1.0.1.tgz"; + sha1 = "9eebf5eb3d11eef022b264fd2d2b6b2bb3b84cc3"; + }; + }; + "random-bytes-1.0.0" = { + name = "random-bytes"; + packageName = "random-bytes"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"; + sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b"; + }; + }; + "range-parser-1.2.1" = { + name = "range-parser"; + packageName = "range-parser"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; + sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; + }; + }; + "raw-body-2.4.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; + }; + }; + "rc-1.2.8" = { + name = "rc"; + packageName = "rc"; + version = "1.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; + sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; + }; + }; + "readable-stream-1.1.14" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "1.1.14"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"; + sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9"; + }; + }; + "readable-stream-2.3.7" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; + sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; + }; + }; + "readable-stream-3.6.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + }; + }; + "readable-web-to-node-stream-2.0.0" = { + name = "readable-web-to-node-stream"; + packageName = "readable-web-to-node-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz"; + sha512 = "+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA=="; + }; + }; + "redeyed-2.1.1" = { + name = "redeyed"; + packageName = "redeyed"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz"; + sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b"; + }; + }; + "redis-2.8.0" = { + name = "redis"; + packageName = "redis"; + version = "2.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz"; + sha512 = "M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A=="; + }; + }; + "redis-commands-1.6.0" = { + name = "redis-commands"; + packageName = "redis-commands"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.6.0.tgz"; + sha512 = "2jnZ0IkjZxvguITjFTrGiLyzQZcTvaw8DAaCXxZq/dsHXz7KfMQ3OUJy7Tz9vnRtZRVz6VRCPDvruvU8Ts44wQ=="; + }; + }; + "redis-parser-2.6.0" = { + name = "redis-parser"; + packageName = "redis-parser"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz"; + sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b"; + }; + }; + "reflect-metadata-0.1.13" = { + name = "reflect-metadata"; + packageName = "reflect-metadata"; + version = "0.1.13"; + src = fetchurl { + url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz"; + sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="; + }; + }; + "reinterval-1.1.0" = { + name = "reinterval"; + packageName = "reinterval"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz"; + sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7"; + }; + }; + "remove-trailing-separator-1.1.0" = { + name = "remove-trailing-separator"; + packageName = "remove-trailing-separator"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"; + sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef"; + }; + }; + "request-2.88.2" = { + name = "request"; + packageName = "request"; + version = "2.88.2"; + src = fetchurl { + url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz"; + sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="; + }; + }; + "request-promise-core-1.1.4" = { + name = "request-promise-core"; + packageName = "request-promise-core"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz"; + sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw=="; + }; + }; + "request-promise-native-1.0.9" = { + name = "request-promise-native"; + packageName = "request-promise-native"; + version = "1.0.9"; + src = fetchurl { + url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz"; + sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g=="; + }; + }; + "requestretry-4.1.2" = { + name = "requestretry"; + packageName = "requestretry"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/requestretry/-/requestretry-4.1.2.tgz"; + sha512 = "N1WAp+8eOy8NfsVBChcSxNCKvPY1azOpliQ4Sby4WDe0HFEhdKywlNZeROMBQ+BI3Jpc0eNOT1KVFGREawtahA=="; + }; + }; + "require-directory-2.1.1" = { + name = "require-directory"; + packageName = "require-directory"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; + sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; + }; + }; + "require_optional-1.0.1" = { + name = "require_optional"; + packageName = "require_optional"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz"; + sha512 = "qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g=="; + }; + }; + "requires-port-1.0.0" = { + name = "requires-port"; + packageName = "requires-port"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"; + sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; + }; + }; + "resolve-from-2.0.0" = { + name = "resolve-from"; + packageName = "resolve-from"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"; + sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57"; + }; + }; + "restore-cursor-3.1.0" = { + name = "restore-cursor"; + packageName = "restore-cursor"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz"; + sha512 = "l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="; + }; + }; + "retry-0.12.0" = { + name = "retry"; + packageName = "retry"; + version = "0.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz"; + sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b"; + }; + }; + "reusify-1.0.4" = { + name = "reusify"; + packageName = "reusify"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"; + sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="; + }; + }; + "rhea-1.0.24" = { + name = "rhea"; + packageName = "rhea"; + version = "1.0.24"; + src = fetchurl { + url = "https://registry.npmjs.org/rhea/-/rhea-1.0.24.tgz"; + sha512 = "PEl62U2EhxCO5wMUZ2/bCBcXAVKN9AdMSNQOrp3+R5b77TEaOSiy16MQ0sIOmzj/iqsgIAgPs1mt3FYfu1vIXA=="; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "rimraf-3.0.2" = { + name = "rimraf"; + packageName = "rimraf"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"; + sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="; + }; + }; + "riot-tmpl-3.0.8" = { + name = "riot-tmpl"; + packageName = "riot-tmpl"; + version = "3.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/riot-tmpl/-/riot-tmpl-3.0.8.tgz"; + sha1 = "dd654e72a3a1520cb009cbef70c73856ded584a6"; + }; + }; + "rndm-1.2.0" = { + name = "rndm"; + packageName = "rndm"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz"; + sha1 = "f33fe9cfb52bbfd520aa18323bc65db110a1b76c"; + }; + }; + "rss-parser-3.10.0" = { + name = "rss-parser"; + packageName = "rss-parser"; + version = "3.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.10.0.tgz"; + sha512 = "TC6FNvEmdFeaW6r/60MSJT7cp4d95X4M9As+mvNtxRx7YXHxpV95syMnWZthZSeD1BRN7SEKdq6c3nxMLQRopw=="; + }; + }; + "run-async-2.4.1" = { + name = "run-async"; + packageName = "run-async"; + version = "2.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz"; + sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="; + }; + }; + "run-parallel-1.1.10" = { + name = "run-parallel"; + packageName = "run-parallel"; + version = "1.1.10"; + src = fetchurl { + url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz"; + sha512 = "zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw=="; + }; + }; + "rxjs-6.6.3" = { + name = "rxjs"; + packageName = "rxjs"; + version = "6.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz"; + sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ=="; + }; + }; + "safe-buffer-5.1.2" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; + }; + }; + "safe-buffer-5.2.1" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"; + sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; + }; + }; + "saslprep-1.0.3" = { + name = "saslprep"; + packageName = "saslprep"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz"; + sha512 = "/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "semver-5.0.3" = { + name = "semver"; + packageName = "semver"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz"; + sha1 = "77466de589cd5d3c95f138aa78bc569a3cb5d27a"; + }; + }; + "semver-5.3.0" = { + name = "semver"; + packageName = "semver"; + version = "5.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"; + sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"; + }; + }; + "semver-5.7.1" = { + name = "semver"; + packageName = "semver"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; + sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="; + }; + }; + "semver-7.3.4" = { + name = "semver"; + packageName = "semver"; + version = "7.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz"; + sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw=="; + }; + }; + "send-0.17.1" = { + name = "send"; + packageName = "send"; + version = "0.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; + }; + }; + "sentence-case-3.0.4" = { + name = "sentence-case"; + packageName = "sentence-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz"; + sha512 = "8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg=="; + }; + }; + "seq-queue-0.0.5" = { + name = "seq-queue"; + packageName = "seq-queue"; + version = "0.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz"; + sha1 = "d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"; + }; + }; + "serve-static-1.14.1" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; + }; + }; + "servie-4.3.3" = { + name = "servie"; + packageName = "servie"; + version = "4.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/servie/-/servie-4.3.3.tgz"; + sha512 = "b0IrY3b1gVMsWvJppCf19g1p3JSnS0hQi6xu4Hi40CIhf0Lx8pQHcvBL+xunShpmOiQzg1NOia812NAWdSaShw=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "setheader-1.0.2" = { + name = "setheader"; + packageName = "setheader"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/setheader/-/setheader-1.0.2.tgz"; + sha512 = "A704nIwzqGed0CnJZIqDE+0udMPS839ocgf1R9OJ8aq8vw4U980HWeNaD9ec8VnmBni9lyGEWDedOWXT/C5kxA=="; + }; + }; + "setprototypeof-1.1.1" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; + }; + }; + "sha.js-2.4.11" = { + name = "sha.js"; + packageName = "sha.js"; + version = "2.4.11"; + src = fetchurl { + url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz"; + sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ=="; + }; + }; + "signal-exit-3.0.3" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"; + sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="; + }; + }; + "simple-lru-cache-0.0.2" = { + name = "simple-lru-cache"; + packageName = "simple-lru-cache"; + version = "0.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz"; + sha1 = "d59cc3a193c1a5d0320f84ee732f6e4713e511dd"; + }; + }; + "simple-swizzle-0.2.2" = { + name = "simple-swizzle"; + packageName = "simple-swizzle"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; + sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a"; + }; + }; + "slash-3.0.0" = { + name = "slash"; + packageName = "slash"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"; + sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="; + }; + }; + "snake-case-3.0.4" = { + name = "snake-case"; + packageName = "snake-case"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz"; + sha512 = "LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg=="; + }; + }; + "snowflake-sdk-1.5.3" = { + name = "snowflake-sdk"; + packageName = "snowflake-sdk"; + version = "1.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/snowflake-sdk/-/snowflake-sdk-1.5.3.tgz"; + sha512 = "Env7ebuWyaPWLIsGbFf/AH8IdeSCshAfHg9cH6F9AHAG0uwtJEO4XPdNeOkxyV/xjykx69s1L4mHWwPksgj8VA=="; + }; + }; + "sparse-bitfield-3.0.3" = { + name = "sparse-bitfield"; + packageName = "sparse-bitfield"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"; + sha1 = "ff4ae6e68656056ba4b3e792ab3334d38273ca11"; + }; + }; + "spex-3.2.0" = { + name = "spex"; + packageName = "spex"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz"; + sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg=="; + }; + }; + "split2-3.2.2" = { + name = "split2"; + packageName = "split2"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz"; + sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="; + }; + }; + "sprintf-js-1.0.3" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + }; + "sprintf-js-1.1.2" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz"; + sha512 = "VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="; + }; + }; + "sqlite3-4.2.0" = { + name = "sqlite3"; + packageName = "sqlite3"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz"; + sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg=="; + }; + }; + "sqlstring-2.3.2" = { + name = "sqlstring"; + packageName = "sqlstring"; + version = "2.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz"; + sha512 = "vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg=="; + }; + }; + "sse-channel-3.1.1" = { + name = "sse-channel"; + packageName = "sse-channel"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sse-channel/-/sse-channel-3.1.1.tgz"; + sha512 = "vgf4QFh60vlAMX0vGJpn6S+7gTO3ckRn7xq4DOgQGcgDs7ULBkaQFQxy4b3vj/umyk0ydhGu7i4A1nHQc5HcYw=="; + }; + }; + "ssf-0.11.2" = { + name = "ssf"; + packageName = "ssf"; + version = "0.11.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz"; + sha512 = "+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g=="; + }; + }; + "ssh2-0.8.9" = { + name = "ssh2"; + packageName = "ssh2"; + version = "0.8.9"; + src = fetchurl { + url = "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz"; + sha512 = "GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw=="; + }; + }; + "ssh2-sftp-client-5.3.2" = { + name = "ssh2-sftp-client"; + packageName = "ssh2-sftp-client"; + version = "5.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ssh2-sftp-client/-/ssh2-sftp-client-5.3.2.tgz"; + sha512 = "YD38WQKleuapAZyvqRJq7PN8pC6GnzWdWcnZN4vsPXMHtZpjcg/ipBcFGtDsC5rkHp5qXgRu56WPcDUkM87FiA=="; + }; + }; + "ssh2-streams-0.4.10" = { + name = "ssh2-streams"; + packageName = "ssh2-streams"; + version = "0.4.10"; + src = fetchurl { + url = "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz"; + sha512 = "8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ=="; + }; + }; + "sshpk-1.16.1" = { + name = "sshpk"; + packageName = "sshpk"; + version = "1.16.1"; + src = fetchurl { + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; + sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; + }; + }; + "stack-trace-0.0.10" = { + name = "stack-trace"; + packageName = "stack-trace"; + version = "0.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"; + sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0"; + }; + }; + "statuses-1.5.0" = { + name = "statuses"; + packageName = "statuses"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; + }; + }; + "stealthy-require-1.1.1" = { + name = "stealthy-require"; + packageName = "stealthy-require"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"; + sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b"; + }; + }; + "stream-shift-1.0.1" = { + name = "stream-shift"; + packageName = "stream-shift"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz"; + sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="; + }; + }; + "streamsearch-0.1.2" = { + name = "streamsearch"; + packageName = "streamsearch"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz"; + sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string-width-2.1.1" = { + name = "string-width"; + packageName = "string-width"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; + sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; + }; + }; + "string-width-4.2.0" = { + name = "string-width"; + packageName = "string-width"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz"; + sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg=="; + }; + }; + "string_decoder-0.10.31" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "0.10.31"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; + sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "string_decoder-1.3.0" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"; + sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-ansi-4.0.0" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; + }; + }; + "strip-ansi-6.0.0" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz"; + sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w=="; + }; + }; + "strip-json-comments-2.0.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + }; + "strtok3-6.0.8" = { + name = "strtok3"; + packageName = "strtok3"; + version = "6.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.8.tgz"; + sha512 = "QLgv+oiXwXgCgp2PdPPa+Jpp4D9imK9e/0BsyfeFMr6QL6wMVqoVn9+OXQ9I7MZbmUzN6lmitTJ09uwS2OmGcw=="; + }; + }; + "supports-color-2.0.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; + }; + }; + "supports-color-5.5.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; + }; + }; + "supports-color-7.2.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "7.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; + sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; + }; + }; + "tar-4.4.13" = { + name = "tar"; + packageName = "tar"; + version = "4.4.13"; + src = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz"; + sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA=="; + }; + }; + "tarn-1.1.5" = { + name = "tarn"; + packageName = "tarn"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tarn/-/tarn-1.1.5.tgz"; + sha512 = "PMtJ3HCLAZeedWjJPgGnCvcphbCOMbtZpjKgLq3qM5Qq9aQud+XHrL0WlrlgnTyS8U+jrjGbEXprFcQrxPy52g=="; + }; + }; + "tedious-6.7.0" = { + name = "tedious"; + packageName = "tedious"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tedious/-/tedious-6.7.0.tgz"; + sha512 = "8qr7+sB0h4SZVQBRWUgHmYuOEflAOl2eihvxk0fVNvpvGJV4V5UC/YmSvebyfgyfwWcPO22/AnSbYVZZqf9wuQ=="; + }; + }; + "text-hex-1.0.0" = { + name = "text-hex"; + packageName = "text-hex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"; + sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="; + }; + }; + "thenify-3.3.1" = { + name = "thenify"; + packageName = "thenify"; + version = "3.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"; + sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="; + }; + }; + "thenify-all-1.6.0" = { + name = "thenify-all"; + packageName = "thenify-all"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"; + sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"; + }; + }; + "through-2.3.8" = { + name = "through"; + packageName = "through"; + version = "2.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz"; + sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; + }; + }; + "through2-2.0.5" = { + name = "through2"; + packageName = "through2"; + version = "2.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz"; + sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="; + }; + }; + "through2-filter-3.0.0" = { + name = "through2-filter"; + packageName = "through2-filter"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz"; + sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA=="; + }; + }; + "throwback-4.1.0" = { + name = "throwback"; + packageName = "throwback"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/throwback/-/throwback-4.1.0.tgz"; + sha512 = "dLFe8bU8SeH0xeqeKL7BNo8XoPC/o91nz9/ooeplZPiso+DZukhoyZcSz9TFnUNScm+cA9qjU1m1853M6sPOng=="; + }; + }; + "tlds-1.208.0" = { + name = "tlds"; + packageName = "tlds"; + version = "1.208.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tlds/-/tlds-1.208.0.tgz"; + sha512 = "6kbY7GJpRQXwBddSOAbVUZXjObbCGFXliWWN+kOSEoRWIOyRWLB6zdeKC/Tguwwenl/KsUx016XR50EdHYsxZw=="; + }; + }; + "tmp-0.0.33" = { + name = "tmp"; + packageName = "tmp"; + version = "0.0.33"; + src = fetchurl { + url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz"; + sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="; + }; + }; + "tmp-0.2.1" = { + name = "tmp"; + packageName = "tmp"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"; + sha512 = "76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ=="; + }; + }; + "tmp-promise-3.0.2" = { + name = "tmp-promise"; + packageName = "tmp-promise"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.2.tgz"; + sha512 = "OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA=="; + }; + }; + "to-absolute-glob-2.0.2" = { + name = "to-absolute-glob"; + packageName = "to-absolute-glob"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz"; + sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b"; + }; + }; + "to-regex-range-5.0.1" = { + name = "to-regex-range"; + packageName = "to-regex-range"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"; + sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="; + }; + }; + "toidentifier-1.0.0" = { + name = "toidentifier"; + packageName = "toidentifier"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; + }; + }; + "token-types-2.1.1" = { + name = "token-types"; + packageName = "token-types"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/token-types/-/token-types-2.1.1.tgz"; + sha512 = "wnQcqlreS6VjthyHO3Y/kpK/emflxDBNhlNUPfh7wE39KnuDdOituXomIbyI79vBtF0Ninpkh72mcuRHo+RG3Q=="; + }; + }; + "tough-cookie-2.5.0" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; + sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; + }; + }; + "tough-cookie-3.0.1" = { + name = "tough-cookie"; + packageName = "tough-cookie"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz"; + sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg=="; + }; + }; + "triple-beam-1.3.0" = { + name = "triple-beam"; + packageName = "triple-beam"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz"; + sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="; + }; + }; + "ts-expect-1.1.0" = { + name = "ts-expect"; + packageName = "ts-expect"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ts-expect/-/ts-expect-1.1.0.tgz"; + sha512 = "cKoBZ47X85x/Qh7taf30m3BhOJOhtNbb7KFHz9CCuWeRSAh0wzprnmiN9TSOQ0FWp3+qDWS5f2FDnxkY93Kdfw=="; + }; + }; + "tslib-1.11.2" = { + name = "tslib"; + packageName = "tslib"; + version = "1.11.2"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz"; + sha512 = "tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg=="; + }; + }; + "tslib-1.14.1" = { + name = "tslib"; + packageName = "tslib"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"; + sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="; + }; + }; + "tslib-2.1.0" = { + name = "tslib"; + packageName = "tslib"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz"; + sha512 = "hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="; + }; + }; + "tsscmp-1.0.6" = { + name = "tsscmp"; + packageName = "tsscmp"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz"; + sha512 = "LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="; + }; + }; + "tunnel-0.0.6" = { + name = "tunnel"; + packageName = "tunnel"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz"; + sha512 = "1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-0.14.5" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + }; + "type-1.2.0" = { + name = "type"; + packageName = "type"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz"; + sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="; + }; + }; + "type-2.1.0" = { + name = "type"; + packageName = "type"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz"; + sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA=="; + }; + }; + "type-fest-0.11.0" = { + name = "type-fest"; + packageName = "type-fest"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz"; + sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="; + }; + }; + "type-is-1.6.18" = { + name = "type-is"; + packageName = "type-is"; + version = "1.6.18"; + src = fetchurl { + url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"; + sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; + }; + }; + "typedarray-0.0.6" = { + name = "typedarray"; + packageName = "typedarray"; + version = "0.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + }; + "typedarray-to-buffer-3.1.5" = { + name = "typedarray-to-buffer"; + packageName = "typedarray-to-buffer"; + version = "3.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"; + sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="; + }; + }; + "typeorm-0.2.30" = { + name = "typeorm"; + packageName = "typeorm"; + version = "0.2.30"; + src = fetchurl { + url = "https://registry.npmjs.org/typeorm/-/typeorm-0.2.30.tgz"; + sha512 = "qpr8AO3Phi6ZF7qMHOrRdNisVt8jE1KfmW0ooLFcXscA87aJ12aBPyB9cJfxGNjNwd7B3WIK9ZlBveWiqd74QA=="; + }; + }; + "uc.micro-1.0.6" = { + name = "uc.micro"; + packageName = "uc.micro"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz"; + sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="; + }; + }; + "uid-safe-2.1.5" = { + name = "uid-safe"; + packageName = "uid-safe"; + version = "2.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz"; + sha512 = "KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA=="; + }; + }; + "unc-path-regex-0.1.2" = { + name = "unc-path-regex"; + packageName = "unc-path-regex"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz"; + sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"; + }; + }; + "underscore-1.12.0" = { + name = "underscore"; + packageName = "underscore"; + version = "1.12.0"; + src = fetchurl { + url = "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz"; + sha512 = "21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ=="; + }; + }; + "unique-stream-2.3.1" = { + name = "unique-stream"; + packageName = "unique-stream"; + version = "2.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz"; + sha512 = "2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A=="; + }; + }; + "universalify-0.1.2" = { + name = "universalify"; + packageName = "universalify"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz"; + sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="; + }; + }; + "unpipe-1.0.0" = { + name = "unpipe"; + packageName = "unpipe"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + }; + "upper-case-2.0.2" = { + name = "upper-case"; + packageName = "upper-case"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz"; + sha512 = "KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg=="; + }; + }; + "upper-case-first-2.0.2" = { + name = "upper-case-first"; + packageName = "upper-case-first"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz"; + sha512 = "514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg=="; + }; + }; + "uri-js-4.4.1" = { + name = "uri-js"; + packageName = "uri-js"; + version = "4.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"; + sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="; + }; + }; + "url-parse-1.4.7" = { + name = "url-parse"; + packageName = "url-parse"; + version = "1.4.7"; + src = fetchurl { + url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz"; + sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg=="; + }; + }; + "utf7-1.0.2" = { + name = "utf7"; + packageName = "utf7"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz"; + sha1 = "955f490aae653ba220b9456a0a8776c199360991"; + }; + }; + "utf8-2.1.2" = { + name = "utf8"; + packageName = "utf8"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz"; + sha1 = "1fa0d9270e9be850d9b05027f63519bf46457d96"; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "utils-merge-1.0.1" = { + name = "utils-merge"; + packageName = "utils-merge"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; + }; + }; + "uuencode-0.0.4" = { + name = "uuencode"; + packageName = "uuencode"; + version = "0.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/uuencode/-/uuencode-0.0.4.tgz"; + sha1 = "c8d50370885663879385ab37e333c7e8e3b0218c"; + }; + }; + "uuid-3.4.0" = { + name = "uuid"; + packageName = "uuid"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; + }; + }; + "validator-11.1.0" = { + name = "validator"; + packageName = "validator"; + version = "11.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz"; + sha512 = "qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg=="; + }; + }; + "vary-1.1.2" = { + name = "vary"; + packageName = "vary"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + }; + "verror-1.10.0" = { + name = "verror"; + packageName = "verror"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + }; + "vm2-3.9.2" = { + name = "vm2"; + packageName = "vm2"; + version = "3.9.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vm2/-/vm2-3.9.2.tgz"; + sha512 = "nzyFmHdy2FMg7mYraRytc2jr4QBaUY3TEGe3q3bK8EgS9WC98wxn2jrPxS/ruWm+JGzrEIIeufKweQzVoQEd+Q=="; + }; + }; + "when-3.7.8" = { + name = "when"; + packageName = "when"; + version = "3.7.8"; + src = fetchurl { + url = "https://registry.npmjs.org/when/-/when-3.7.8.tgz"; + sha1 = "c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82"; + }; + }; + "which-1.3.1" = { + name = "which"; + packageName = "which"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz"; + sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="; + }; + }; + "wide-align-1.1.3" = { + name = "wide-align"; + packageName = "wide-align"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; + sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; + }; + }; + "widest-line-3.1.0" = { + name = "widest-line"; + packageName = "widest-line"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz"; + sha512 = "NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg=="; + }; + }; + "winston-3.3.3" = { + name = "winston"; + packageName = "winston"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz"; + sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw=="; + }; + }; + "winston-transport-4.4.0" = { + name = "winston-transport"; + packageName = "winston-transport"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz"; + sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw=="; + }; + }; + "wmf-1.0.2" = { + name = "wmf"; + packageName = "wmf"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz"; + sha512 = "/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="; + }; + }; + "word-0.3.0" = { + name = "word"; + packageName = "word"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/word/-/word-0.3.0.tgz"; + sha512 = "OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="; + }; + }; + "wrap-ansi-4.0.0" = { + name = "wrap-ansi"; + packageName = "wrap-ansi"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz"; + sha512 = "uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg=="; + }; + }; + "wrap-ansi-7.0.0" = { + name = "wrap-ansi"; + packageName = "wrap-ansi"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"; + sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "ws-7.4.2" = { + name = "ws"; + packageName = "ws"; + version = "7.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz"; + sha512 = "T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA=="; + }; + }; + "xlsx-0.16.9" = { + name = "xlsx"; + packageName = "xlsx"; + version = "0.16.9"; + src = fetchurl { + url = "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz"; + sha512 = "gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw=="; + }; + }; + "xml2js-0.4.23" = { + name = "xml2js"; + packageName = "xml2js"; + version = "0.4.23"; + src = fetchurl { + url = "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz"; + sha512 = "ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug=="; + }; + }; + "xmlbuilder-11.0.1" = { + name = "xmlbuilder"; + packageName = "xmlbuilder"; + version = "11.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz"; + sha512 = "fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="; + }; + }; + "xmldom-0.4.0" = { + name = "xmldom"; + packageName = "xmldom"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/xmldom/-/xmldom-0.4.0.tgz"; + sha512 = "2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA=="; + }; + }; + "xpath.js-1.1.0" = { + name = "xpath.js"; + packageName = "xpath.js"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/xpath.js/-/xpath.js-1.1.0.tgz"; + sha512 = "jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ=="; + }; + }; + "xregexp-2.0.0" = { + name = "xregexp"; + packageName = "xregexp"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz"; + sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"; + }; + }; + "xtend-4.0.2" = { + name = "xtend"; + packageName = "xtend"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; + sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; + }; + }; + "y18n-5.0.5" = { + name = "y18n"; + packageName = "y18n"; + version = "5.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz"; + sha512 = "hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg=="; + }; + }; + "yallist-2.1.2" = { + name = "yallist"; + packageName = "yallist"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; + sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; + }; + }; + "yallist-4.0.0" = { + name = "yallist"; + packageName = "yallist"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"; + sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="; + }; + }; + "yargonaut-1.1.4" = { + name = "yargonaut"; + packageName = "yargonaut"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz"; + sha512 = "rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA=="; + }; + }; + "yargs-16.2.0" = { + name = "yargs"; + packageName = "yargs"; + version = "16.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"; + sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="; + }; + }; + "yargs-parser-13.0.0" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "13.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz"; + sha512 = "w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw=="; + }; + }; + "yargs-parser-20.2.4" = { + name = "yargs-parser"; + packageName = "yargs-parser"; + version = "20.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz"; + sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="; + }; + }; + }; +in +{ + n8n = nodeEnv.buildNodePackage { + name = "n8n"; + packageName = "n8n"; + version = "0.105.0"; + src = fetchurl { + url = "https://registry.npmjs.org/n8n/-/n8n-0.105.0.tgz"; + sha512 = "Ry4JODQbj5vLsen5RTAyQdwstYFZ6KaMZhNzsnSQIm2qwzW+HS7hOm8r44WHzNrc5sMFHCPful2waMis8g81pA=="; + }; + dependencies = [ + sources."@azure/ms-rest-azure-env-1.1.2" + (sources."@azure/ms-rest-js-1.9.1" // { + dependencies = [ + sources."axios-0.21.1" + sources."follow-redirects-1.13.2" + sources."tough-cookie-2.5.0" + ]; + }) + sources."@azure/ms-rest-nodeauth-2.0.2" + sources."@dabh/diagnostics-2.0.2" + sources."@icetee/ftp-0.3.15" + sources."@nodelib/fs.scandir-2.1.4" + sources."@nodelib/fs.stat-2.0.4" + sources."@nodelib/fs.walk-1.2.6" + sources."@oclif/command-1.8.0" + (sources."@oclif/config-1.17.0" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + (sources."@oclif/errors-1.3.4" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."wrap-ansi-7.0.0" + ]; + }) + sources."@oclif/linewrap-1.0.0" + sources."@oclif/parser-3.8.5" + sources."@oclif/plugin-help-3.2.1" + sources."@servie/events-1.0.0" + sources."@sqltools/formatter-1.2.2" + sources."@tokenizer/token-0.1.1" + sources."@types/bluebird-3.5.33" + sources."@types/body-parser-1.19.0" + sources."@types/connect-3.4.34" + sources."@types/debug-4.1.5" + sources."@types/express-4.17.11" + sources."@types/express-jwt-0.0.42" + sources."@types/express-serve-static-core-4.17.18" + sources."@types/express-unless-0.5.1" + sources."@types/ftp-0.3.31" + sources."@types/glob-7.1.3" + sources."@types/jsonwebtoken-8.5.0" + sources."@types/mime-1.3.2" + sources."@types/minimatch-3.0.3" + sources."@types/node-14.14.22" + sources."@types/promise-ftp-1.3.4" + sources."@types/promise-ftp-common-1.1.0" + sources."@types/qs-6.9.5" + sources."@types/range-parser-1.2.3" + sources."@types/readable-stream-2.3.9" + sources."@types/serve-static-1.13.9" + sources."@types/snowflake-sdk-1.5.1" + sources."@types/tough-cookie-2.3.7" + sources."@types/tunnel-0.0.0" + sources."abbrev-1.1.1" + sources."accepts-1.3.7" + sources."access-control-1.0.1" + (sources."adal-node-0.1.28" // { + dependencies = [ + sources."@types/node-8.10.66" + ]; + }) + sources."adler-32-1.2.0" + (sources."agent-base-2.1.1" // { + dependencies = [ + sources."semver-5.0.3" + ]; + }) + sources."ajv-6.12.6" + sources."amqplib-0.6.0" + sources."ansi-escapes-4.3.1" + sources."ansi-regex-5.0.0" + sources."ansi-styles-3.2.1" + sources."ansicolors-0.3.2" + sources."any-promise-1.3.0" + sources."app-root-path-3.0.0" + sources."aproba-1.2.0" + (sources."are-we-there-yet-1.1.5" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + (sources."argparse-1.0.10" // { + dependencies = [ + sources."sprintf-js-1.0.3" + ]; + }) + sources."array-flatten-1.1.1" + sources."array-parallel-0.1.3" + sources."array-series-0.1.5" + sources."array-union-2.1.0" + sources."asn1-0.2.4" + sources."asn1.js-5.4.1" + sources."asn1.js-rfc2560-5.0.1" + sources."asn1.js-rfc5280-3.0.0" + sources."assert-options-0.7.0" + sources."assert-plus-1.0.0" + sources."async-3.2.0" + sources."asynckit-0.4.0" + sources."aws-sign2-0.7.0" + sources."aws4-1.11.0" + sources."axios-0.19.2" + sources."balanced-match-1.0.0" + sources."base64-js-1.5.1" + sources."basic-auth-2.0.1" + sources."bcrypt-pbkdf-1.0.2" + sources."bcryptjs-2.4.3" + sources."big-integer-1.6.48" + sources."bignumber.js-2.4.0" + (sources."bitsyntax-0.1.0" // { + dependencies = [ + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + (sources."bl-2.2.1" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."bluebird-3.7.2" + sources."bn.js-4.11.9" + (sources."body-parser-1.19.0" // { + dependencies = [ + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + sources."body-parser-xml-1.1.0" + sources."boolbase-1.0.0" + sources."brace-expansion-1.1.11" + sources."braces-3.0.2" + sources."browser-request-0.3.3" + sources."bson-1.1.5" + sources."buffer-5.7.1" + sources."buffer-equal-constant-time-1.0.1" + sources."buffer-from-1.1.1" + sources."buffer-more-ints-1.0.0" + sources."buffer-writer-2.0.0" + sources."byte-length-1.0.2" + sources."bytes-3.1.0" + sources."cacheable-lookup-5.0.4" + sources."callback-stream-1.1.0" + (sources."camel-case-4.1.2" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."camelcase-5.3.1" + (sources."capital-case-1.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."cardinal-2.1.1" + sources."caseless-0.12.0" + sources."cfb-1.2.0" + sources."chalk-2.4.2" + (sources."change-case-4.1.2" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."chardet-0.7.0" + sources."cheerio-1.0.0-rc.5" + sources."cheerio-select-tmp-0.1.1" + sources."chownr-1.1.4" + (sources."clean-stack-3.0.1" // { + dependencies = [ + sources."escape-string-regexp-4.0.0" + ]; + }) + sources."cli-cursor-3.1.0" + (sources."cli-highlight-2.1.10" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."chalk-4.1.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."has-flag-4.0.0" + sources."parse5-5.1.1" + sources."supports-color-7.2.0" + ]; + }) + sources."cli-width-3.0.0" + (sources."client-oauth2-4.3.3" // { + dependencies = [ + sources."safe-buffer-5.2.1" + ]; + }) + (sources."cliui-7.0.4" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."wrap-ansi-7.0.0" + ]; + }) + sources."code-point-at-1.1.0" + (sources."codepage-1.14.0" // { + dependencies = [ + sources."commander-2.14.1" + ]; + }) + sources."color-3.0.0" + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."color-string-1.5.4" + sources."colornames-1.1.1" + sources."colors-1.4.0" + sources."colorspace-1.1.2" + sources."combined-stream-1.0.8" + sources."commander-2.17.1" + sources."commist-1.1.0" + sources."compressible-2.0.18" + (sources."compression-1.7.4" // { + dependencies = [ + sources."bytes-3.0.0" + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + sources."concat-map-0.0.1" + (sources."concat-stream-1.6.2" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."connect-history-api-fallback-1.6.0" + sources."console-control-strings-1.1.0" + (sources."constant-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."content-disposition-0.5.3" + sources."content-type-1.0.4" + sources."convict-5.2.0" + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + sources."core-util-is-1.0.2" + sources."crc-32-1.2.0" + sources."cron-1.8.2" + (sources."cross-spawn-4.0.2" // { + dependencies = [ + sources."lru-cache-4.1.5" + sources."yallist-2.1.2" + ]; + }) + sources."crypto-js-4.0.0" + sources."csrf-3.1.0" + sources."css-select-3.1.2" + sources."css-what-4.0.0" + sources."d-1.0.1" + sources."dashdash-1.14.1" + sources."date-utils-1.2.21" + sources."debug-4.3.2" + sources."decamelize-1.2.0" + sources."deep-extend-0.6.0" + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."denque-1.5.0" + sources."depd-1.1.2" + sources."destroy-1.0.4" + sources."detect-libc-1.0.3" + (sources."diagnostics-1.1.1" // { + dependencies = [ + sources."enabled-1.0.2" + sources."kuler-1.0.1" + ]; + }) + sources."dir-glob-3.0.1" + sources."dom-serializer-1.2.0" + sources."domelementtype-2.1.0" + sources."domhandler-4.0.0" + sources."domutils-2.4.4" + (sources."dot-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."dotenv-8.2.0" + sources."double-ended-queue-2.1.0-0" + (sources."duplexify-3.7.1" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."ecc-jsbn-0.1.2" + sources."ecdsa-sig-formatter-1.0.11" + sources."ee-first-1.1.1" + sources."emoji-regex-8.0.0" + sources."enabled-2.0.0" + sources."encodeurl-1.0.2" + sources."encoding-japanese-1.0.30" + sources."end-of-stream-1.4.4" + sources."entities-2.1.0" + sources."env-variable-0.0.6" + sources."es5-ext-0.10.53" + sources."es6-iterator-2.0.3" + sources."es6-map-0.1.5" + sources."es6-promise-4.2.8" + sources."es6-promisify-5.0.0" + (sources."es6-set-0.1.5" // { + dependencies = [ + sources."es6-symbol-3.1.1" + ]; + }) + sources."es6-symbol-3.1.3" + sources."escalade-3.1.1" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + sources."eslint-config-riot-1.0.0" + sources."esprima-4.0.1" + sources."etag-1.8.1" + sources."event-emitter-0.3.5" + sources."eventsource-1.0.7" + sources."exit-on-epipe-1.0.1" + (sources."express-4.17.1" // { + dependencies = [ + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + (sources."ext-1.4.0" // { + dependencies = [ + sources."type-2.1.0" + ]; + }) + sources."extend-3.0.2" + sources."external-editor-3.1.0" + sources."extsprintf-1.3.0" + sources."fast-deep-equal-3.1.3" + sources."fast-glob-3.2.5" + sources."fast-json-stable-stringify-2.1.0" + sources."fast-safe-stringify-2.0.7" + sources."fastq-1.10.1" + sources."fecha-4.2.0" + sources."fflate-0.4.8" + sources."figlet-1.5.0" + sources."figures-3.2.0" + sources."file-type-14.7.1" + sources."fill-range-7.0.1" + (sources."finalhandler-1.1.2" // { + dependencies = [ + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + sources."flatted-2.0.2" + sources."fn.name-1.1.0" + (sources."follow-redirects-1.5.10" // { + dependencies = [ + sources."debug-3.1.0" + sources."ms-2.0.0" + ]; + }) + sources."forever-agent-0.6.1" + sources."form-data-2.3.3" + sources."formidable-1.2.2" + sources."forwarded-0.1.2" + sources."frac-1.1.2" + sources."fresh-0.5.2" + sources."fs-extra-8.1.0" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + (sources."gauge-2.7.4" // { + dependencies = [ + sources."ansi-regex-2.1.1" + sources."is-fullwidth-code-point-1.0.0" + sources."string-width-1.0.2" + sources."strip-ansi-3.0.1" + ]; + }) + sources."generate-function-2.3.1" + sources."get-caller-file-2.0.5" + sources."get-system-fonts-2.0.2" + sources."getpass-0.1.7" + sources."glob-7.1.6" + sources."glob-parent-5.1.1" + sources."glob-promise-3.4.0" + (sources."glob-stream-6.1.0" // { + dependencies = [ + sources."glob-parent-3.1.0" + sources."is-glob-3.1.0" + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."globby-11.0.2" + (sources."gm-1.23.1" // { + dependencies = [ + sources."debug-3.2.7" + ]; + }) + sources."google-timezones-json-1.0.2" + sources."graceful-fs-4.2.4" + sources."har-schema-2.0.0" + sources."har-validator-5.1.5" + (sources."has-ansi-2.0.0" // { + dependencies = [ + sources."ansi-regex-2.1.1" + ]; + }) + sources."has-flag-3.0.0" + sources."has-unicode-2.0.1" + sources."he-1.2.0" + (sources."header-case-2.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."help-me-1.1.0" + sources."highlight.js-10.5.0" + (sources."html-to-text-5.1.1" // { + dependencies = [ + (sources."dom-serializer-0.2.2" // { + dependencies = [ + sources."domelementtype-2.1.0" + sources."entities-2.2.0" + ]; + }) + sources."domelementtype-1.3.1" + sources."domhandler-2.4.2" + sources."domutils-1.7.0" + sources."entities-1.1.2" + sources."htmlparser2-3.10.1" + sources."readable-stream-3.6.0" + sources."safe-buffer-5.2.1" + sources."string_decoder-1.3.0" + ]; + }) + sources."htmlparser2-6.0.0" + sources."http-errors-1.7.2" + sources."http-signature-1.2.0" + (sources."https-proxy-agent-3.0.1" // { + dependencies = [ + sources."agent-base-4.3.0" + sources."debug-3.2.7" + ]; + }) + sources."iconv-lite-0.4.24" + sources."ieee754-1.2.1" + sources."ignore-5.1.8" + sources."ignore-walk-3.0.3" + sources."imap-0.8.19" + sources."imap-simple-4.3.0" + sources."indent-string-4.0.0" + sources."inflight-1.0.6" + sources."inherits-2.0.3" + sources."ini-1.3.8" + (sources."inquirer-7.3.3" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."chalk-4.1.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."has-flag-4.0.0" + sources."supports-color-7.2.0" + ]; + }) + sources."ip-regex-2.1.0" + sources."ipaddr.js-1.9.1" + sources."is-absolute-1.0.0" + sources."is-arrayish-0.3.2" + sources."is-docker-2.1.1" + sources."is-extglob-2.1.1" + sources."is-fullwidth-code-point-3.0.0" + sources."is-glob-4.0.1" + sources."is-negated-glob-1.0.0" + sources."is-number-7.0.0" + sources."is-promise-1.0.1" + sources."is-property-1.0.2" + sources."is-relative-1.0.0" + sources."is-stream-2.0.0" + sources."is-typedarray-1.0.0" + sources."is-unc-path-1.0.0" + sources."is-windows-1.0.2" + sources."is-wsl-2.2.0" + sources."isarray-0.0.1" + sources."isexe-2.0.0" + sources."iso-639-1-2.1.7" + sources."isstream-0.1.2" + sources."js-yaml-3.14.1" + sources."jsbi-3.1.4" + sources."jsbn-0.1.1" + sources."json-schema-0.2.3" + sources."json-schema-traverse-0.4.1" + sources."json-stable-stringify-without-jsonify-1.0.1" + sources."json-stringify-safe-5.0.1" + sources."json5-2.1.0" + sources."jsonfile-4.0.0" + (sources."jsonwebtoken-8.5.1" // { + dependencies = [ + sources."semver-5.7.1" + ]; + }) + sources."jsprim-1.4.1" + sources."jwa-1.4.1" + sources."jwks-rsa-1.9.0" + sources."jws-3.2.2" + sources."kafkajs-1.15.0" + sources."kuler-2.0.0" + sources."leven-2.1.0" + sources."libbase64-1.2.1" + (sources."libmime-5.0.0" // { + dependencies = [ + sources."iconv-lite-0.6.2" + ]; + }) + sources."libqp-1.1.0" + sources."limiter-1.1.5" + sources."linkify-it-3.0.2" + (sources."localtunnel-2.0.1" // { + dependencies = [ + sources."axios-0.21.1" + sources."debug-4.3.1" + sources."follow-redirects-1.13.2" + ]; + }) + sources."lodash-4.17.20" + sources."lodash._reinterpolate-3.0.0" + sources."lodash.clonedeep-4.5.0" + sources."lodash.get-4.4.2" + sources."lodash.includes-4.3.0" + sources."lodash.isboolean-3.0.3" + sources."lodash.isinteger-4.0.4" + sources."lodash.isnumber-3.0.3" + sources."lodash.isplainobject-4.0.6" + sources."lodash.isstring-4.0.1" + sources."lodash.once-4.1.1" + sources."lodash.set-4.3.2" + sources."lodash.template-4.5.0" + sources."lodash.templatesettings-4.2.0" + sources."lodash.unset-4.5.2" + sources."logform-2.2.0" + sources."long-4.0.0" + (sources."lower-case-2.0.2" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."lru-cache-6.0.0" + (sources."lru-memoizer-2.1.4" // { + dependencies = [ + sources."lru-cache-4.0.2" + sources."yallist-2.1.2" + ]; + }) + (sources."mailparser-2.8.1" // { + dependencies = [ + sources."iconv-lite-0.6.2" + sources."nodemailer-6.4.11" + ]; + }) + (sources."mailsplit-5.0.0" // { + dependencies = [ + sources."iconv-lite-0.5.0" + sources."libmime-4.2.1" + ]; + }) + sources."make-error-1.3.6" + sources."make-error-cause-2.3.0" + sources."media-typer-0.3.0" + sources."memory-pager-1.5.0" + sources."merge-descriptors-1.0.1" + sources."merge2-1.4.1" + sources."methods-1.1.2" + sources."micromatch-4.0.2" + sources."millisecond-0.1.2" + sources."mime-1.6.0" + sources."mime-db-1.45.0" + sources."mime-types-2.1.28" + sources."mimic-fn-2.1.0" + sources."minimalistic-assert-1.0.1" + sources."minimatch-3.0.4" + sources."minimist-1.2.5" + (sources."minipass-2.9.0" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."minizlib-1.3.3" + sources."mkdirp-1.0.4" + sources."moment-2.24.0" + sources."moment-timezone-0.5.32" + sources."mongodb-3.6.3" + (sources."mqtt-4.2.1" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + (sources."mqtt-packet-6.7.0" // { + dependencies = [ + sources."bl-4.0.3" + sources."inherits-2.0.4" + sources."readable-stream-3.6.0" + sources."safe-buffer-5.2.1" + sources."string_decoder-1.3.0" + ]; + }) + sources."ms-2.1.2" + sources."mssql-6.3.1" + sources."mute-stream-0.0.8" + (sources."mysql2-2.1.0" // { + dependencies = [ + sources."iconv-lite-0.5.2" + sources."lru-cache-5.1.1" + sources."yallist-3.1.1" + ]; + }) + sources."mz-2.7.0" + sources."n8n-core-0.62.0" + sources."n8n-editor-ui-0.75.0" + (sources."n8n-nodes-base-0.102.0" // { + dependencies = [ + sources."moment-2.28.0" + ]; + }) + sources."n8n-workflow-0.51.0" + (sources."named-placeholders-1.1.2" // { + dependencies = [ + sources."lru-cache-4.1.5" + sources."yallist-2.1.2" + ]; + }) + sources."nan-2.14.2" + sources."native-duplexpair-1.0.0" + (sources."needle-2.6.0" // { + dependencies = [ + sources."debug-3.2.7" + ]; + }) + sources."negotiator-0.6.2" + sources."next-tick-1.0.0" + (sources."no-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."node-ensure-0.0.0" + (sources."node-pre-gyp-0.11.0" // { + dependencies = [ + sources."mkdirp-0.5.5" + sources."rimraf-2.7.1" + sources."semver-5.7.1" + ]; + }) + sources."nodeify-1.0.1" + sources."nodemailer-6.4.17" + sources."nopt-4.0.3" + sources."npm-bundled-1.1.1" + sources."npm-normalize-package-bin-1.0.1" + sources."npm-packlist-1.4.8" + sources."npmlog-4.1.2" + sources."nth-check-2.0.0" + sources."number-is-nan-1.0.1" + sources."oauth-1.0a-2.2.6" + sources."oauth-sign-0.9.0" + sources."object-assign-4.1.1" + (sources."ocsp-1.2.0" // { + dependencies = [ + sources."asn1.js-4.10.1" + sources."asn1.js-rfc2560-4.0.6" + sources."asn1.js-rfc5280-2.0.1" + sources."async-1.5.2" + ]; + }) + sources."on-finished-2.3.0" + sources."on-headers-1.0.2" + sources."once-1.4.0" + sources."one-time-1.0.0" + sources."onetime-5.1.2" + sources."open-7.4.0" + sources."openurl-1.1.1" + (sources."ordered-read-streams-1.0.1" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."original-1.0.2" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."p-cancelable-2.0.0" + sources."packet-reader-1.0.0" + (sources."param-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."parent-require-1.0.0" + sources."parse5-6.0.1" + sources."parse5-htmlparser2-tree-adapter-6.0.1" + sources."parseurl-1.3.3" + (sources."pascal-case-3.1.2" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + (sources."path-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."path-dirname-1.0.2" + sources."path-is-absolute-1.0.1" + sources."path-to-regexp-0.1.7" + sources."path-type-4.0.0" + (sources."pdf-parse-1.1.1" // { + dependencies = [ + sources."debug-3.2.7" + ]; + }) + sources."peek-readable-3.1.3" + sources."performance-now-2.1.0" + sources."pg-8.5.1" + sources."pg-connection-string-2.4.0" + sources."pg-int8-1.0.1" + sources."pg-minify-1.6.2" + sources."pg-pool-3.2.2" + sources."pg-promise-10.9.2" + sources."pg-protocol-1.4.0" + sources."pg-types-2.2.0" + sources."pgpass-1.0.4" + sources."picomatch-2.2.2" + sources."popsicle-12.1.0" + sources."popsicle-content-encoding-1.0.0" + sources."popsicle-cookie-jar-1.0.0" + sources."popsicle-redirects-1.1.0" + sources."popsicle-transport-http-1.1.1" + sources."popsicle-transport-xhr-2.0.0" + sources."popsicle-user-agent-1.0.0" + sources."postgres-array-2.0.0" + sources."postgres-bytea-1.0.0" + sources."postgres-date-1.0.7" + sources."postgres-interval-1.2.0" + sources."printj-1.1.2" + sources."process-nextick-args-2.0.1" + sources."promise-1.3.0" + (sources."promise-ftp-1.3.5" // { + dependencies = [ + sources."bluebird-2.11.0" + ]; + }) + sources."promise-ftp-common-1.1.5" + sources."proxy-addr-2.0.6" + sources."pseudomap-1.0.2" + sources."psl-1.8.0" + sources."pump-3.0.0" + (sources."pumpify-1.5.1" // { + dependencies = [ + sources."pump-2.0.1" + ]; + }) + sources."punycode-2.1.1" + sources."qs-6.7.0" + sources."querystringify-2.2.0" + sources."quoted-printable-1.0.1" + sources."random-bytes-1.0.0" + sources."range-parser-1.2.1" + sources."raw-body-2.4.0" + sources."rc-1.2.8" + sources."readable-stream-1.1.14" + sources."readable-web-to-node-stream-2.0.0" + sources."redeyed-2.1.1" + sources."redis-2.8.0" + sources."redis-commands-1.6.0" + sources."redis-parser-2.6.0" + sources."reflect-metadata-0.1.13" + sources."reinterval-1.1.0" + sources."remove-trailing-separator-1.1.0" + (sources."request-2.88.2" // { + dependencies = [ + sources."qs-6.5.2" + sources."tough-cookie-2.5.0" + ]; + }) + sources."request-promise-core-1.1.4" + (sources."request-promise-native-1.0.9" // { + dependencies = [ + sources."tough-cookie-2.5.0" + ]; + }) + sources."requestretry-4.1.2" + sources."require-directory-2.1.1" + (sources."require_optional-1.0.1" // { + dependencies = [ + sources."semver-5.7.1" + ]; + }) + sources."requires-port-1.0.0" + sources."resolve-from-2.0.0" + sources."restore-cursor-3.1.0" + sources."retry-0.12.0" + sources."reusify-1.0.4" + (sources."rhea-1.0.24" // { + dependencies = [ + sources."debug-3.2.7" + ]; + }) + sources."rimraf-3.0.2" + sources."riot-tmpl-3.0.8" + sources."rndm-1.2.0" + sources."rss-parser-3.10.0" + sources."run-async-2.4.1" + sources."run-parallel-1.1.10" + sources."rxjs-6.6.3" + sources."safe-buffer-5.1.2" + sources."safer-buffer-2.1.2" + sources."saslprep-1.0.3" + sources."sax-1.2.4" + sources."semver-7.3.4" + (sources."send-0.17.1" // { + dependencies = [ + (sources."debug-2.6.9" // { + dependencies = [ + sources."ms-2.0.0" + ]; + }) + sources."ms-2.1.1" + ]; + }) + (sources."sentence-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."seq-queue-0.0.5" + sources."serve-static-1.14.1" + sources."servie-4.3.3" + sources."set-blocking-2.0.0" + sources."setheader-1.0.2" + sources."setprototypeof-1.1.1" + sources."sha.js-2.4.11" + sources."signal-exit-3.0.3" + sources."simple-lru-cache-0.0.2" + sources."simple-swizzle-0.2.2" + sources."slash-3.0.0" + (sources."snake-case-3.0.4" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + (sources."snowflake-sdk-1.5.3" // { + dependencies = [ + sources."debug-3.2.7" + ]; + }) + sources."sparse-bitfield-3.0.3" + sources."spex-3.2.0" + (sources."split2-3.2.2" // { + dependencies = [ + sources."readable-stream-3.6.0" + sources."safe-buffer-5.2.1" + sources."string_decoder-1.3.0" + ]; + }) + sources."sprintf-js-1.1.2" + sources."sqlite3-4.2.0" + sources."sqlstring-2.3.2" + sources."sse-channel-3.1.1" + sources."ssf-0.11.2" + sources."ssh2-0.8.9" + (sources."ssh2-sftp-client-5.3.2" // { + dependencies = [ + sources."concat-stream-2.0.0" + sources."readable-stream-3.6.0" + sources."safe-buffer-5.2.1" + sources."string_decoder-1.3.0" + ]; + }) + sources."ssh2-streams-0.4.10" + sources."sshpk-1.16.1" + sources."stack-trace-0.0.10" + sources."statuses-1.5.0" + sources."stealthy-require-1.1.1" + sources."stream-shift-1.0.1" + sources."streamsearch-0.1.2" + sources."string-width-4.2.0" + sources."string_decoder-0.10.31" + sources."strip-ansi-6.0.0" + sources."strip-json-comments-2.0.1" + sources."strtok3-6.0.8" + sources."supports-color-5.5.0" + (sources."tar-4.4.13" // { + dependencies = [ + sources."mkdirp-0.5.5" + sources."yallist-3.1.1" + ]; + }) + sources."tarn-1.1.5" + (sources."tedious-6.7.0" // { + dependencies = [ + sources."@types/node-12.19.15" + sources."bl-3.0.1" + sources."depd-2.0.0" + sources."iconv-lite-0.5.2" + sources."readable-stream-3.6.0" + sources."safe-buffer-5.2.1" + sources."string_decoder-1.3.0" + ]; + }) + sources."text-hex-1.0.0" + sources."thenify-3.3.1" + sources."thenify-all-1.6.0" + sources."through-2.3.8" + (sources."through2-2.0.5" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."through2-filter-3.0.0" + sources."throwback-4.1.0" + sources."tlds-1.208.0" + sources."tmp-0.0.33" + (sources."tmp-promise-3.0.2" // { + dependencies = [ + sources."tmp-0.2.1" + ]; + }) + sources."to-absolute-glob-2.0.2" + sources."to-regex-range-5.0.1" + sources."toidentifier-1.0.0" + sources."token-types-2.1.1" + sources."tough-cookie-3.0.1" + sources."triple-beam-1.3.0" + sources."ts-expect-1.1.0" + sources."tslib-1.11.2" + sources."tsscmp-1.0.6" + sources."tunnel-0.0.6" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-0.14.5" + sources."type-1.2.0" + sources."type-fest-0.11.0" + sources."type-is-1.6.18" + sources."typedarray-0.0.6" + sources."typedarray-to-buffer-3.1.5" + (sources."typeorm-0.2.30" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."chalk-4.1.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."has-flag-4.0.0" + sources."supports-color-7.2.0" + sources."tslib-1.14.1" + ]; + }) + sources."uc.micro-1.0.6" + sources."uid-safe-2.1.5" + sources."unc-path-regex-0.1.2" + sources."underscore-1.12.0" + sources."unique-stream-2.3.1" + sources."universalify-0.1.2" + sources."unpipe-1.0.0" + (sources."upper-case-2.0.2" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + (sources."upper-case-first-2.0.2" // { + dependencies = [ + sources."tslib-2.1.0" + ]; + }) + sources."uri-js-4.4.1" + sources."url-parse-1.4.7" + (sources."utf7-1.0.2" // { + dependencies = [ + sources."semver-5.3.0" + ]; + }) + sources."utf8-2.1.2" + sources."util-deprecate-1.0.2" + sources."utils-merge-1.0.1" + sources."uuencode-0.0.4" + sources."uuid-3.4.0" + sources."validator-11.1.0" + sources."vary-1.1.2" + sources."verror-1.10.0" + sources."vm2-3.9.2" + sources."when-3.7.8" + sources."which-1.3.1" + (sources."wide-align-1.1.3" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."is-fullwidth-code-point-2.0.0" + sources."string-width-2.1.1" + sources."strip-ansi-4.0.0" + ]; + }) + sources."widest-line-3.1.0" + (sources."winston-3.3.3" // { + dependencies = [ + sources."readable-stream-3.6.0" + sources."safe-buffer-5.2.1" + sources."string_decoder-1.3.0" + ]; + }) + (sources."winston-transport-4.4.0" // { + dependencies = [ + sources."isarray-1.0.0" + sources."readable-stream-2.3.7" + sources."string_decoder-1.1.1" + ]; + }) + sources."wmf-1.0.2" + sources."word-0.3.0" + (sources."wrap-ansi-4.0.0" // { + dependencies = [ + sources."ansi-regex-3.0.0" + sources."is-fullwidth-code-point-2.0.0" + sources."string-width-2.1.1" + sources."strip-ansi-4.0.0" + ]; + }) + sources."wrappy-1.0.2" + sources."ws-7.4.2" + (sources."xlsx-0.16.9" // { + dependencies = [ + sources."fflate-0.3.11" + ]; + }) + sources."xml2js-0.4.23" + sources."xmlbuilder-11.0.1" + sources."xmldom-0.4.0" + sources."xpath.js-1.1.0" + sources."xregexp-2.0.0" + sources."xtend-4.0.2" + sources."y18n-5.0.5" + sources."yallist-4.0.0" + (sources."yargonaut-1.1.4" // { + dependencies = [ + sources."ansi-regex-2.1.1" + sources."ansi-styles-2.2.1" + sources."chalk-1.1.3" + sources."strip-ansi-3.0.1" + sources."supports-color-2.0.0" + ]; + }) + (sources."yargs-16.2.0" // { + dependencies = [ + sources."yargs-parser-20.2.4" + ]; + }) + sources."yargs-parser-13.0.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "n8n Workflow Automation Tool"; + homepage = "https://n8n.io"; + license = "SEE LICENSE IN LICENSE.md"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/n8n/package.json b/nixpkgs/pkgs/applications/networking/n8n/package.json new file mode 100644 index 000000000000..ac8d49dfaa41 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/n8n/package.json @@ -0,0 +1,3 @@ +[ + "n8n" +] diff --git a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix new file mode 100644 index 000000000000..d96caf372efa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix @@ -0,0 +1,37 @@ +{ lib +, fetchFromGitHub +, rustPlatform +, pkg-config +, ncurses6 +, openssl +, sqlite +}: + +rustPlatform.buildRustPackage rec { + pname = "ncgopher"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "jansc"; + repo = "ncgopher"; + rev = "v${version}"; + sha256 = "sha256-Yny5zZe5x7/pWda839HcFkHFuL/jl1Q7ykTZzKy871I="; + }; + + cargoSha256 = "sha256-C4V1WsAUFtr+N64zyBk1V0E8gTM/U54q03J6Nj8ReLk="; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + ncurses6 + openssl + sqlite + ]; + + meta = with lib; { + description = "A gopher and gemini client for the modern internet"; + homepage = "https://github.com/jansc/ncgopher"; + license = licenses.bsd2; + maintainers = with maintainers; [ shamilton ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ndppd/default.nix b/nixpkgs/pkgs/applications/networking/ndppd/default.nix new file mode 100644 index 000000000000..ccaf3e0bbbb8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ndppd/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, gzip }: + +stdenv.mkDerivation rec { + pname = "ndppd"; + version = "0.2.5"; + + src = fetchFromGitHub { + owner = "DanielAdolfsson"; + repo = "ndppd"; + rev = version; + sha256 = "0niri5q9qyyyw5lmjpxk19pv3v4srjvmvyd5k6ks99mvqczjx9c0"; + }; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + preConfigure = '' + substituteInPlace Makefile --replace /bin/gzip ${gzip}/bin/gzip + ''; + + postInstall = '' + mkdir -p $out/etc + cp ndppd.conf-dist $out/etc/ndppd.conf + ''; + + meta = with lib; { + description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces"; + homepage = "https://github.com/DanielAdolfsson/ndppd"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ fadenb globin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/netperf/default.nix b/nixpkgs/pkgs/applications/networking/netperf/default.nix new file mode 100644 index 000000000000..fe5588d81f88 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/netperf/default.nix @@ -0,0 +1,30 @@ +{ libsmbios, lib, stdenv, autoreconfHook, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "netperf"; + version = "20180613"; + + src = fetchFromGitHub { + owner = "HewlettPackard"; + repo = "netperf"; + rev = "bcb868bde7f0203bbab69609f65d4088ba7398db"; + sha256 = "1wbbgdvhadd3qs3afv6i777argdpcyxkwz4yv6aqp223n8ki6dm8"; + }; + + buildInputs = lib.optional (with stdenv.hostPlatform; isx86 && isLinux) libsmbios; + nativeBuildInputs = [ autoreconfHook ]; + autoreconfPhase = '' + autoreconf -i -I src/missing/m4 + ''; + configureFlags = [ "--enable-demo" ]; + enableParallelBuilding = true; + + meta = { + description = "Benchmark to measure the performance of many different types of networking"; + homepage = "http://www.netperf.org/netperf/"; + license = "Hewlett-Packard BSD-like license"; + + platforms = lib.platforms.unix; + maintainers = [ lib.maintainers.mmlb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix new file mode 100644 index 000000000000..f4e4c8279de8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix @@ -0,0 +1,86 @@ +{ lib, stdenv +, fetchurl +, pkg-config +, intltool +, python3Packages +, wrapGAppsHook +, glib +, libxml2 +, libxslt +, sqlite +, libsoup +, webkitgtk +, json-glib +, gst_all_1 +, libnotify +, gtk3 +, gsettings-desktop-schemas +, libpeas +, libsecret +, gobject-introspection +, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "liferea"; + version = "1.12.9"; + + src = fetchurl { + url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2"; + sha256 = "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + python3Packages.wrapPython + intltool + pkg-config + ]; + + buildInputs = [ + glib + gtk3 + webkitgtk + libxml2 + libxslt + sqlite + libsoup + libpeas + gsettings-desktop-schemas + json-glib + gobject-introspection + libsecret + glib-networking + libnotify + ] ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); + + pythonPath = with python3Packages; [ + pygobject3 + pycairo + ]; + + preFixup = '' + buildPythonPath "$out $pythonPath" + gappsWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH") + ''; + + meta = with lib; { + description = "A GTK-based news feed aggregator"; + homepage = "http://lzone.de/liferea/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ romildo ]; + platforms = platforms.linux; + + longDescription = '' + Liferea (Linux Feed Reader) is an RSS/RDF feed reader. + It's intended to be a clone of the Windows-only FeedReader. + It can be used to maintain a list of subscribed feeds, + browse through their items, and show their contents. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix new file mode 100644 index 000000000000..b6afe0aa44e0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix @@ -0,0 +1,63 @@ +{ spellChecking ? true +, lib +, stdenv +, fetchurl +, pkg-config +, gtk3 +, gtkspell3 +, gmime2 +, gettext +, intltool +, itstool +, libxml2 +, libnotify +, gnutls +, makeWrapper +, gnupg +, gnomeSupport ? true +, libsecret +, gcr +}: + +stdenv.mkDerivation rec { + pname = "pan"; + version = "0.146"; + + src = fetchurl { + url = "https://pan.rebelbase.com/download/releases/${version}/source/pan-${version}.tar.bz2"; + sha256 = "17agd27sn4a7nahvkpg0w39kv74njgdrrygs74bbvpaj8rk2hb55"; + }; + + patches = [ + # Take <glib.h>, <gmime.h>, "gtk-compat.h" out of extern "C" + ./move-out-of-extern-c.diff + ]; + + nativeBuildInputs = [ pkg-config gettext intltool itstool libxml2 makeWrapper ]; + + buildInputs = [ gtk3 gmime2 libnotify gnutls ] + ++ lib.optional spellChecking gtkspell3 + ++ lib.optionals gnomeSupport [ libsecret gcr ]; + + configureFlags = [ + "--with-dbus" + "--with-gtk3" + "--with-gnutls" + "--enable-libnotify" + ] ++ lib.optional spellChecking "--with-gtkspell" + ++ lib.optional gnomeSupport "--enable-gkr"; + + postInstall = '' + wrapProgram $out/bin/pan --suffix PATH : ${gnupg}/bin + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "A GTK-based Usenet newsreader good at both text and binaries"; + homepage = "http://pan.rebelbase.com/"; + maintainers = [ maintainers.eelco ]; + platforms = platforms.linux; + license = with licenses; [ gpl2Only fdl11 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/pan/move-out-of-extern-c.diff b/nixpkgs/pkgs/applications/networking/newsreaders/pan/move-out-of-extern-c.diff new file mode 100644 index 000000000000..02b19b58ee56 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/pan/move-out-of-extern-c.diff @@ -0,0 +1,1113 @@ +diff --git a/pan/data-impl/article-filter.cc b/pan/data-impl/article-filter.cc +index b06d0c2..f424738 100644 +--- a/pan/data-impl/article-filter.cc ++++ b/pan/data-impl/article-filter.cc +@@ -25,10 +25,7 @@ + #include <gmime/gmime.h> + + //#include <glib/gprintf.h> +-extern "C" +-{ +- #include <glib.h> +-} ++#include <glib.h> + + #include "article-filter.h" + +diff --git a/pan/data-impl/data-impl.cc b/pan/data-impl/data-impl.cc +index 88012cc..4465966 100644 +--- a/pan/data-impl/data-impl.cc ++++ b/pan/data-impl/data-impl.cc +@@ -22,10 +22,8 @@ + **************/ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include <glib.h> // for g_build_filename +-} ++#include <glib/gi18n.h> ++#include <glib.h> // for g_build_filename + #include <pan/general/debug.h> + #include <pan/general/file-util.h> + #include <pan/general/log.h> +diff --git a/pan/data-impl/data-io.cc b/pan/data-impl/data-io.cc +index bea1a90..d938634 100644 +--- a/pan/data-impl/data-io.cc ++++ b/pan/data-impl/data-io.cc +@@ -27,9 +27,9 @@ extern "C" { + #include <sys/types.h> // for chmod + #include <sys/stat.h> // for chmod + #include <unistd.h> +- #include <glib.h> +- #include <glib/gi18n.h> + } ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> + #include <pan/general/line-reader.h> +diff --git a/pan/data-impl/groups.cc b/pan/data-impl/groups.cc +index 244feb9..da0183a 100644 +--- a/pan/data-impl/groups.cc ++++ b/pan/data-impl/groups.cc +@@ -29,9 +29,9 @@ + #include <vector> + + #include <glib.h> ++#include <glib/gi18n.h> + extern "C" { + #include <unistd.h> +- #include <glib/gi18n.h> + } + + #include <pan/general/debug.h> +diff --git a/pan/data-impl/headers.cc b/pan/data-impl/headers.cc +index f8c4466..16d5672 100644 +--- a/pan/data-impl/headers.cc ++++ b/pan/data-impl/headers.cc +@@ -25,10 +25,10 @@ + #include <string> + #include <cmath> + #include <glib.h> ++#include <glib/gi18n.h> + extern "C" { + #include <sys/types.h> // for chmod + #include <sys/stat.h> // for chmod +- #include <glib/gi18n.h> + } + #include <pan/general/debug.h> + #include <pan/general/log.h> +diff --git a/pan/data-impl/profiles.cc b/pan/data-impl/profiles.cc +index e999fda..a6e6bb5 100644 +--- a/pan/data-impl/profiles.cc ++++ b/pan/data-impl/profiles.cc +@@ -26,9 +26,9 @@ + extern "C" { + #include <sys/types.h> // for chmod + #include <sys/stat.h> // for chmod +- #include <glib.h> +- #include <glib/gi18n.h> + } ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/string-view.h> + #include <pan/general/file-util.h> +diff --git a/pan/data-impl/server.cc b/pan/data-impl/server.cc +index 9ea55d4..b23782f 100644 +--- a/pan/data-impl/server.cc ++++ b/pan/data-impl/server.cc +@@ -25,10 +25,8 @@ + #include <map> + #include <set> + #include <vector> +-extern "C" { +- #include <glib.h> // for GMarkup +- #include <glib/gi18n.h> +-} ++#include <glib.h> // for GMarkup ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> + #include <pan/general/log.h> +diff --git a/pan/data-impl/xover.cc b/pan/data-impl/xover.cc +index ff8644f..a199556 100644 +--- a/pan/data-impl/xover.cc ++++ b/pan/data-impl/xover.cc +@@ -20,10 +20,8 @@ + #include <config.h> + #include <cmath> + #include <fstream> +-extern "C" { +- #include <glib/gi18n.h> +- #include <gmime/gmime.h> +-} ++#include <glib/gi18n.h> ++#include <gmime/gmime.h> + #include <pan/general/debug.h> + #include <pan/general/log.h> + #include <pan/general/macros.h> +diff --git a/pan/data/article-cache.cc b/pan/data/article-cache.cc +index 1855153..30fa0f9 100644 +--- a/pan/data/article-cache.cc ++++ b/pan/data/article-cache.cc +@@ -26,11 +26,10 @@ extern "C" + #include <sys/stat.h> + #include <unistd.h> + #include <dirent.h> +- +- #include <glib.h> +- #include <glib/gi18n.h> +- #include <gmime/gmime.h> + } ++#include <glib.h> ++#include <gmime/gmime.h> ++#include <glib/gi18n.h> + + #include <pan/general/debug.h> + #include <pan/general/file-util.h> +diff --git a/pan/data/article-cache.h b/pan/data/article-cache.h +index 2ac722b..1304bfe 100644 +--- a/pan/data/article-cache.h ++++ b/pan/data/article-cache.h +@@ -22,9 +22,7 @@ + + #include <map> + #include <vector> +-extern "C" { +- #include <glib.h> // for guint64 +-} ++#include <glib.h> // for guint64 + #include <pan/general/string-view.h> + #include <pan/general/quark.h> + +diff --git a/pan/data/cert-store.cc b/pan/data/cert-store.cc +index 340fc8b..f6cd46e 100644 +--- a/pan/data/cert-store.cc ++++ b/pan/data/cert-store.cc +@@ -34,10 +34,8 @@ + #include <iostream> + #include <string> + +-extern "C" { + #include <glib/gi18n.h> + #include <glib.h> +-} + + #include <pan/general/debug.h> + #include <pan/general/e-util.h> +diff --git a/pan/data/encode-cache.cc b/pan/data/encode-cache.cc +index 3a82ea9..61c67a2 100644 +--- a/pan/data/encode-cache.cc ++++ b/pan/data/encode-cache.cc +@@ -28,11 +28,10 @@ extern "C" + #include <sys/stat.h> + #include <unistd.h> + #include <dirent.h> +- +- #include <glib.h> +- #include <glib/gi18n.h> +- #include <gmime/gmime.h> + } ++#include <gmime/gmime.h> ++#include <glib.h> ++#include <glib/gi18n.h> + + #include <pan/general/debug.h> + #include <pan/general/file-util.h> +diff --git a/pan/data/encode-cache.h b/pan/data/encode-cache.h +index 8bbd530..1affc0c 100644 +--- a/pan/data/encode-cache.h ++++ b/pan/data/encode-cache.h +@@ -22,9 +22,7 @@ + + #include <map> + #include <vector> +-extern "C" { +- #include <glib.h> // for guint64 +-} ++#include <glib.h> // for guint64 + #include <pan/general/string-view.h> + #include <pan/general/quark.h> + +diff --git a/pan/general/e-util.cc b/pan/general/e-util.cc +index af5ccd0..62879ee 100644 +--- a/pan/general/e-util.cc ++++ b/pan/general/e-util.cc +@@ -26,9 +26,9 @@ + #include <ctime> + extern "C" { + #include <ctype.h> +- #include <glib.h> +- #include <glib/gi18n.h> + } ++#include <glib.h> ++#include <glib/gi18n.h> + #include "debug.h" + #include "e-util.h" + +diff --git a/pan/general/file-util.cc b/pan/general/file-util.cc +index 02e9ed1..9efa269 100644 +--- a/pan/general/file-util.cc ++++ b/pan/general/file-util.cc +@@ -27,12 +27,12 @@ extern "C" + #include <unistd.h> + #include <sys/stat.h> + #include <sys/types.h> +- #include <glib.h> +- #include <glib/gi18n.h> + #ifndef G_OS_WIN32 + #include <pwd.h> + #endif + } ++#include <glib.h> ++#include <glib/gi18n.h> + + #include "debug.h" + #include "log.h" +diff --git a/pan/general/file-util.h b/pan/general/file-util.h +index c125c8d..8c67639 100644 +--- a/pan/general/file-util.h ++++ b/pan/general/file-util.h +@@ -25,9 +25,9 @@ + extern "C" { + #include <stddef.h> + #include <stdio.h> +- #include <glib.h> +- #include <glib/gstdio.h> + } ++#include <glib.h> ++#include <glib/gstdio.h> + #include <pan/general/string-view.h> + + #define g_freopen freopen +diff --git a/pan/general/line-reader.cc b/pan/general/line-reader.cc +index afb9be8..6b80fc4 100644 +--- a/pan/general/line-reader.cc ++++ b/pan/general/line-reader.cc +@@ -1,9 +1,7 @@ + #include <config.h> + #include <cstdio> + #include <cstdlib> +-extern "C"{ +- #include <glib/gi18n.h> +-} ++#include <glib/gi18n.h> + #include <cerrno> + #include "file-util.h" + #include "line-reader.h" +diff --git a/pan/general/macros.h b/pan/general/macros.h +index 6dcf908..b16230f 100644 +--- a/pan/general/macros.h ++++ b/pan/general/macros.h +@@ -63,9 +63,6 @@ + *** g_assert + **/ + +-extern "C" +-{ +- #include <glib.h> +-} ++#include <glib.h> + + #endif +diff --git a/pan/general/text-match.cc b/pan/general/text-match.cc +index fcacbe2..d390de0 100644 +--- a/pan/general/text-match.cc ++++ b/pan/general/text-match.cc +@@ -20,9 +20,9 @@ + #include <config.h> + extern "C" { + #include <ctype.h> +- #include <glib.h> +- #include <glib/gi18n.h> + } ++#include <glib.h> ++#include <glib/gi18n.h> + #include "debug.h" + #include "log.h" + #include "text-match.h" +diff --git a/pan/general/utf8-utils.cc b/pan/general/utf8-utils.cc +index be79a13..fea6100 100644 +--- a/pan/general/utf8-utils.cc ++++ b/pan/general/utf8-utils.cc +@@ -21,9 +21,7 @@ + #include <string> + #include <vector> + #include <string.h> +-extern "C" { + #include <glib/gi18n.h> +-} + #include <locale.h> + #include <gmime/gmime.h> + #include <pan/general/debug.h> +diff --git a/pan/gui/actions.cc b/pan/gui/actions.cc +index 520c08b..5ec397c 100644 +--- a/pan/gui/actions.cc ++++ b/pan/gui/actions.cc +@@ -18,11 +18,9 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" + ++#include <glib/gi18n.h> + #include <pan/general/macros.h> + #include <pan/general/debug.h> + #include <pan/data-impl/data-impl.h> +diff --git a/pan/gui/body-pane.cc b/pan/gui/body-pane.cc +index 53e9124..e9841e2 100644 +--- a/pan/gui/body-pane.cc ++++ b/pan/gui/body-pane.cc +@@ -22,11 +22,9 @@ + #include <cmath> + #include <iostream> + #include <sstream> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +- #include <gmime/gmime.h> +-} ++#include "gtk-compat.h" ++#include <gmime/gmime.h> ++#include <glib/gi18n.h> + #include <gdk-pixbuf/gdk-pixbuf.h> + #include <pan/general/debug.h> + #include <pan/general/log.h> +diff --git a/pan/gui/dl-headers-ui.cc b/pan/gui/dl-headers-ui.cc +index 5841651..e9f4b2d 100644 +--- a/pan/gui/dl-headers-ui.cc ++++ b/pan/gui/dl-headers-ui.cc +@@ -18,11 +18,9 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include <glib.h> ++#include <glib/gi18n.h> ++#include "gtk-compat.h" + #include <pan/general/macros.h> + #include <pan/tasks/queue.h> + #include <pan/tasks/task-xover.h> +diff --git a/pan/gui/group-pane.cc b/pan/gui/group-pane.cc +index 28ad581..3ff103e 100644 +--- a/pan/gui/group-pane.cc ++++ b/pan/gui/group-pane.cc +@@ -20,10 +20,8 @@ + #include <config.h> + #include <cassert> + #include <deque> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + //#include <pan/general/gdk-threads.h> + #include <pan/general/log.h> +diff --git a/pan/gui/group-prefs-dialog.cc b/pan/gui/group-prefs-dialog.cc +index 677b07a..0d7df8b 100644 +--- a/pan/gui/group-prefs-dialog.cc ++++ b/pan/gui/group-prefs-dialog.cc +@@ -18,14 +18,14 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include <glib.h> +- #include "gtk-compat.h" ++#include <glib/gi18n.h> ++#include <glib.h> + #ifdef HAVE_GTKSPELL ++extern "C" { + #include <enchant/enchant.h> +-#endif + } ++#endif ++#include "gtk-compat.h" + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/data/data.h> +diff --git a/pan/gui/group-prefs.cc b/pan/gui/group-prefs.cc +index 3e9851b..b06a949 100644 +--- a/pan/gui/group-prefs.cc ++++ b/pan/gui/group-prefs.cc +@@ -21,8 +21,8 @@ extern "C" { + #include <config.h> + #include <sys/types.h> // chmod + #include <sys/stat.h> // chmod +- #include <glib.h> + } ++#include <glib.h> + #include <iostream> + #include <fstream> + #include <pan/general/file-util.h> +diff --git a/pan/gui/gui.cc b/pan/gui/gui.cc +index f79aa1e..9f8787e 100644 +--- a/pan/gui/gui.cc ++++ b/pan/gui/gui.cc +@@ -25,9 +25,9 @@ + extern "C" { + #include <sys/types.h> // for chmod + #include <sys/stat.h> // for chmod +- #include <glib/gi18n.h> + #include <dirent.h> + } ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/e-util.h> + #include <pan/general/file-util.h> +diff --git a/pan/gui/header-pane.cc b/pan/gui/header-pane.cc +index dc65a77..a4a9952 100644 +--- a/pan/gui/header-pane.cc ++++ b/pan/gui/header-pane.cc +@@ -19,10 +19,9 @@ + + extern "C" { + #include <config.h> +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +- #include "gtk-compat.h" + } ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <cctype> + #include <cmath> + #include <algorithm> +diff --git a/pan/gui/log-ui.cc b/pan/gui/log-ui.cc +index 7b11493..b204298 100644 +--- a/pan/gui/log-ui.cc ++++ b/pan/gui/log-ui.cc +@@ -21,10 +21,8 @@ + #include <ostream> + #include <fstream> + #include <iostream> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/log.h> + #include <pan/general/macros.h> + #include <pan/general/string-view.h> +diff --git a/pan/gui/pan-file-entry.cc b/pan/gui/pan-file-entry.cc +index 705fc91..c67acf8 100644 +--- a/pan/gui/pan-file-entry.cc ++++ b/pan/gui/pan-file-entry.cc +@@ -19,10 +19,8 @@ + + #include <config.h> + #include <string> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/file-util.h> + #include "pad.h" + #include "pan-file-entry.h" +diff --git a/pan/gui/pan.cc b/pan/gui/pan.cc +index fb3a696..46c1a5d 100644 +--- a/pan/gui/pan.cc ++++ b/pan/gui/pan.cc +@@ -24,9 +24,6 @@ + #include <signal.h> + + extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +- #include <gmime/gmime.h> + #include <gio/gio.h> + #include <sys/types.h> + #include <sys/stat.h> +@@ -34,6 +31,9 @@ extern "C" { + #include <uulib/crc32.h> + } + ++#include "gtk-compat.h" ++#include <glib/gi18n.h> ++#include <gmime/gmime.h> + #ifdef G_OS_WIN32 + #undef _WIN32_WINNT + #define _WIN32_WINNT 0x0501 +diff --git a/pan/gui/post-ui.cc b/pan/gui/post-ui.cc +index 8769ec5..92c757d 100644 +--- a/pan/gui/post-ui.cc ++++ b/pan/gui/post-ui.cc +@@ -23,14 +23,14 @@ + #include <sstream> + #include <unistd.h> + extern "C" { +- #include <gmime/gmime.h> +- #include <glib/gi18n.h> +- #include "gtk-compat.h" + #include <sys/time.h> + #ifdef HAVE_GTKSPELL + #include <gtkspell/gtkspell.h> + #endif + } ++#include "gtk-compat.h" ++#include <gmime/gmime.h> ++#include <glib/gi18n.h> + #include <pan/data/data.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> +diff --git a/pan/gui/prefs-file.cc b/pan/gui/prefs-file.cc +index bde7ef3..64c540f 100644 +--- a/pan/gui/prefs-file.cc ++++ b/pan/gui/prefs-file.cc +@@ -24,8 +24,8 @@ + extern "C" { + #include <sys/types.h> // for chmod + #include <sys/stat.h> // for chmod +- #include <glib.h> + } ++#include <glib.h> + #include <pan/general/file-util.h> + #include "prefs-file.h" + +diff --git a/pan/gui/prefs-ui.cc b/pan/gui/prefs-ui.cc +index f7dc0f0..aac9ec1 100644 +--- a/pan/gui/prefs-ui.cc ++++ b/pan/gui/prefs-ui.cc +@@ -18,10 +18,8 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/general/file-util.h> +diff --git a/pan/gui/prefs.cc b/pan/gui/prefs.cc +index fdbd908..64dd8da 100644 +--- a/pan/gui/prefs.cc ++++ b/pan/gui/prefs.cc +@@ -23,10 +23,8 @@ + #include <iostream> + #include <sstream> + #include <string> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +-} ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/log.h> + #include <pan/general/macros.h> +diff --git a/pan/gui/profiles-dialog.cc b/pan/gui/profiles-dialog.cc +index 26ff029..cf8bd44 100644 +--- a/pan/gui/profiles-dialog.cc ++++ b/pan/gui/profiles-dialog.cc +@@ -23,10 +23,8 @@ + + #include <config.h> + #include <iostream> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/usenet-utils/gnksa.h> +diff --git a/pan/gui/progress-view.cc b/pan/gui/progress-view.cc +index 241ad1c..43ef4f2 100644 +--- a/pan/gui/progress-view.cc ++++ b/pan/gui/progress-view.cc +@@ -18,9 +18,7 @@ + */ + + #include <config.h> +-extern "C" { +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" + #include <pan/general/string-view.h> + #include <pan/usenet-utils/mime-utils.h> + #include "progress-view.h" +diff --git a/pan/gui/save-attach-ui.cc b/pan/gui/save-attach-ui.cc +index 0b08b6f..0e86a1b 100644 +--- a/pan/gui/save-attach-ui.cc ++++ b/pan/gui/save-attach-ui.cc +@@ -18,10 +18,8 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/icons/pan-pixbufs.h> +diff --git a/pan/gui/save-ui.cc b/pan/gui/save-ui.cc +index 0f034e5..1df0cfb 100644 +--- a/pan/gui/save-ui.cc ++++ b/pan/gui/save-ui.cc +@@ -18,10 +18,8 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/icons/pan-pixbufs.h> +diff --git a/pan/gui/score-add-ui.cc b/pan/gui/score-add-ui.cc +index e72bdb5..3b81167 100644 +--- a/pan/gui/score-add-ui.cc ++++ b/pan/gui/score-add-ui.cc +@@ -20,9 +20,7 @@ + #include <config.h> + #include <cassert> + #include <climits> +-extern "C" { +- #include <glib/gi18n.h> +-} ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/text-match.h> + #include "hig.h" +diff --git a/pan/gui/score-view-ui.cc b/pan/gui/score-view-ui.cc +index d6c81c1..1327426 100644 +--- a/pan/gui/score-view-ui.cc ++++ b/pan/gui/score-view-ui.cc +@@ -18,10 +18,8 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include "gtk-compat.h" ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include "pad.h" + #include "score-add-ui.h" +diff --git a/pan/gui/server-ui.cc b/pan/gui/server-ui.cc +index b42bc18..268114b 100644 +--- a/pan/gui/server-ui.cc ++++ b/pan/gui/server-ui.cc +@@ -21,11 +21,9 @@ + #include <cstdlib> + #include <cstring> + #include <climits> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include <glib.h> ++#include <glib/gi18n.h> ++#include "gtk-compat.h" + + #include <pan/icons/pan-pixbufs.h> + #include <pan/general/file-util.h> +diff --git a/pan/gui/task-pane.cc b/pan/gui/task-pane.cc +index 4f77922..18a8f74 100644 +--- a/pan/gui/task-pane.cc ++++ b/pan/gui/task-pane.cc +@@ -18,11 +18,9 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +- #include "gtk-compat.h" +-} ++#include <glib.h> ++#include <glib/gi18n.h> ++#include "gtk-compat.h" + #include <pan/general/e-util.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> +diff --git a/pan/gui/url.cc b/pan/gui/url.cc +index e1173ae..94ffb52 100644 +--- a/pan/gui/url.cc ++++ b/pan/gui/url.cc +@@ -20,10 +20,8 @@ + #include <config.h> + #include <iostream> + #include <string> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +-}; ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/log.h> + #include "url.h" + +diff --git a/pan/tasks/decoder.cc b/pan/tasks/decoder.cc +index b4c21ae..f8cb6db 100644 +--- a/pan/tasks/decoder.cc ++++ b/pan/tasks/decoder.cc +@@ -28,8 +28,8 @@ + extern "C" { + # define PROTOTYPES + # include <uulib/uudeview.h> +-# include <glib/gi18n.h> + }; ++#include <glib/gi18n.h> + #include <pan/general/worker-pool.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> +diff --git a/pan/tasks/encoder.cc b/pan/tasks/encoder.cc +index 7960b84..5989059 100644 +--- a/pan/tasks/encoder.cc ++++ b/pan/tasks/encoder.cc +@@ -31,10 +31,10 @@ + extern "C" { + #define PROTOTYPES + #include <uulib/uudeview.h> +-#include <glib/gi18n.h> + #include <sys/time.h> + }; + ++#include <glib/gi18n.h> + #include <pan/general/worker-pool.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> +diff --git a/pan/tasks/nntp.cc b/pan/tasks/nntp.cc +index ceb1574..71c5cf1 100644 +--- a/pan/tasks/nntp.cc ++++ b/pan/tasks/nntp.cc +@@ -22,10 +22,8 @@ + #include <cstdarg> + #include <cstdlib> // abort, atoi, strtoul + #include <cstdio> // snprintf +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +-} ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/log.h> + #include <pan/general/messages.h> +diff --git a/pan/tasks/nzb.cc b/pan/tasks/nzb.cc +index af890e5..14df6f6 100644 +--- a/pan/tasks/nzb.cc ++++ b/pan/tasks/nzb.cc +@@ -24,9 +24,7 @@ + #include <sstream> + #include <string> + #include <map> +-extern "C" { +- #include <glib.h> +-} ++#include <glib.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> + #include <pan/general/log.h> +diff --git a/pan/tasks/socket-impl-gio.cc b/pan/tasks/socket-impl-gio.cc +index d3339dd..7dc2ec1 100644 +--- a/pan/tasks/socket-impl-gio.cc ++++ b/pan/tasks/socket-impl-gio.cc +@@ -31,9 +31,9 @@ + + extern "C" { + #include <unistd.h> +- #include <glib/gi18n.h> + } + ++#include <glib/gi18n.h> + #include <pan/general/file-util.h> + #include <pan/general/log.h> + #include <pan/general/macros.h> +diff --git a/pan/tasks/socket-impl-main.cc b/pan/tasks/socket-impl-main.cc +index c33edfd..688183c 100644 +--- a/pan/tasks/socket-impl-main.cc ++++ b/pan/tasks/socket-impl-main.cc +@@ -30,10 +30,7 @@ + //#include <glib/giochannel.h> + //#include <glib/gstring.h> + +-extern "C" +-{ +- #include <glib.h> +-} ++#include <glib.h> + + #include <pan/tasks/socket.h> + +diff --git a/pan/tasks/socket-impl-openssl.cc b/pan/tasks/socket-impl-openssl.cc +index b58e074..5b1b0b0 100644 +--- a/pan/tasks/socket-impl-openssl.cc ++++ b/pan/tasks/socket-impl-openssl.cc +@@ -34,13 +34,14 @@ + + extern "C" { + #include <unistd.h> +- #include <glib/gi18n.h> + #include <errno.h> + #include <fcntl.h> + #include <sys/time.h> + #include <sys/types.h> + } + ++#include <glib/gi18n.h> ++ + #include <pan/usenet-utils/ssl-utils.h> + #include <pan/general/file-util.h> + #include <pan/general/log.h> +diff --git a/pan/tasks/socket-impl-openssl.h b/pan/tasks/socket-impl-openssl.h +index e48cbae..eea41d4 100644 +--- a/pan/tasks/socket-impl-openssl.h ++++ b/pan/tasks/socket-impl-openssl.h +@@ -27,10 +27,7 @@ + #include <string> + //#include <glib/giochannel.h> + //#include <glib/gstring.h> +-extern "C" +-{ +- #include <glib.h> +-} ++#include <glib.h> + + #include <pan/general/debug.h> + #include <pan/general/quark.h> +diff --git a/pan/tasks/socket.cc b/pan/tasks/socket.cc +index 78d53fb..2c7a28d 100644 +--- a/pan/tasks/socket.cc ++++ b/pan/tasks/socket.cc +@@ -21,9 +21,7 @@ + #include <cstdarg> + #include <ctime> + #include <cmath> +-extern "C" { +- #include <glib.h> +-} ++#include <glib.h> + #include <pan/general/debug.h> + #include <pan/general/string-view.h> + #include "socket.h" +diff --git a/pan/tasks/task-article.cc b/pan/tasks/task-article.cc +index 9c96b7d..1dc17ba 100644 +--- a/pan/tasks/task-article.cc ++++ b/pan/tasks/task-article.cc +@@ -24,10 +24,7 @@ + #include <config.h> + #include <algorithm> + #include <cassert> +-extern "C" +-{ +- #include <glib/gi18n.h> +-} ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/file-util.h> + #include <pan/general/utf8-utils.h> +diff --git a/pan/tasks/task-groups.cc b/pan/tasks/task-groups.cc +index b8618d6..9b72369 100644 +--- a/pan/tasks/task-groups.cc ++++ b/pan/tasks/task-groups.cc +@@ -20,9 +20,9 @@ + #include <config.h> + #include <cassert> + extern "C" { +- #include <glib/gi18n.h> + #include <stdlib.h> + } ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/general/messages.h> +diff --git a/pan/tasks/task-post.cc b/pan/tasks/task-post.cc +index bb80fb9..4ab9c2f 100644 +--- a/pan/tasks/task-post.cc ++++ b/pan/tasks/task-post.cc +@@ -18,9 +18,7 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib/gi18n.h> +-} ++#include <glib/gi18n.h> + #include "task-post.h" + #include <pan/general/debug.h> + #include <pan/general/log.h> +diff --git a/pan/tasks/task-upload.h b/pan/tasks/task-upload.h +index 7bd4fe0..e5377c6 100644 +--- a/pan/tasks/task-upload.h ++++ b/pan/tasks/task-upload.h +@@ -37,10 +37,10 @@ + extern "C" { + #define PROTOTYPES + #include <uulib/uudeview.h> +- #include <gmime/gmime.h> +- #include <glib/gi18n.h> + }; + ++#include <gmime/gmime.h> ++#include <glib/gi18n.h> + #include <set> + + namespace pan +diff --git a/pan/tasks/task-xover.cc b/pan/tasks/task-xover.cc +index c3c8260..64b41a4 100644 +--- a/pan/tasks/task-xover.cc ++++ b/pan/tasks/task-xover.cc +@@ -26,10 +26,10 @@ extern "C" + #define PROTOTYPES + #include <stdio.h> + #include <uulib/uudeview.h> +-#include <glib/gi18n.h> +-#include <gmime/gmime-utils.h> + } + ++#include <gmime/gmime-utils.h> ++#include <glib/gi18n.h> + #include <fstream> + #include <iostream> + #include <pan/general/debug.h> +diff --git a/pan/tasks/task-xoverinfo.cc b/pan/tasks/task-xoverinfo.cc +index c598bf8..9a9e488 100644 +--- a/pan/tasks/task-xoverinfo.cc ++++ b/pan/tasks/task-xoverinfo.cc +@@ -24,10 +24,10 @@ extern "C" { + #define PROTOTYPES + #include <stdio.h> + #include <uulib/uudeview.h> +- #include <glib/gi18n.h> +- #include <gmime/gmime-utils.h> + #include <zlib.h> + } ++#include <glib/gi18n.h> ++#include <gmime/gmime-utils.h> + #include <fstream> + #include <iostream> + #include <pan/general/debug.h> +diff --git a/pan/usenet-utils/filter-info.cc b/pan/usenet-utils/filter-info.cc +index f464428..6b1a5c9 100644 +--- a/pan/usenet-utils/filter-info.cc ++++ b/pan/usenet-utils/filter-info.cc +@@ -18,10 +18,8 @@ + */ + + #include <config.h> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +-} ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/macros.h> + #include "filter-info.h" + +diff --git a/pan/usenet-utils/gnksa.cc b/pan/usenet-utils/gnksa.cc +index db1f2c4..fb888d5 100644 +--- a/pan/usenet-utils/gnksa.cc ++++ b/pan/usenet-utils/gnksa.cc +@@ -37,10 +37,10 @@ extern "C" + { + #include <ctype.h> + #include <unistd.h> +- #include <glib/gi18n.h> + #include <sys/time.h> + } + ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/general/log.h> +diff --git a/pan/usenet-utils/gpg.cc b/pan/usenet-utils/gpg.cc +index 4df4525..8755777 100644 +--- a/pan/usenet-utils/gpg.cc ++++ b/pan/usenet-utils/gpg.cc +@@ -28,9 +28,9 @@ extern "C" { + #include <stdlib.h> + #include <unistd.h> + #include <string.h> +- #include <glib/gi18n.h> +- #include <gmime/gmime.h> + } ++#include <glib/gi18n.h> ++#include <gmime/gmime.h> + + #ifdef HAVE_GMIME_CRYPTO + +diff --git a/pan/usenet-utils/message-check.cc b/pan/usenet-utils/message-check.cc +index a511556..461ce86 100644 +--- a/pan/usenet-utils/message-check.cc ++++ b/pan/usenet-utils/message-check.cc +@@ -21,9 +21,7 @@ + #include <ctype.h> + #include <string.h> + #include <glib.h> +-extern "C" { + #include <glib/gi18n.h> +-} + #include <pan/general/debug.h> + #include <pan/general/macros.h> + #include <pan/general/string-view.h> +diff --git a/pan/usenet-utils/rules-info.cc b/pan/usenet-utils/rules-info.cc +index 1c03adc..91e78be 100644 +--- a/pan/usenet-utils/rules-info.cc ++++ b/pan/usenet-utils/rules-info.cc +@@ -22,10 +22,8 @@ + + + #include <config.h> +-extern "C" { +- #include <glib.h> +- #include <glib/gi18n.h> +-} ++#include <glib.h> ++#include <glib/gi18n.h> + #include <pan/general/macros.h> + #include "rules-info.h" + +diff --git a/pan/usenet-utils/scorefile.cc b/pan/usenet-utils/scorefile.cc +index 8b56a2a..4b151f0 100644 +--- a/pan/usenet-utils/scorefile.cc ++++ b/pan/usenet-utils/scorefile.cc +@@ -23,9 +23,7 @@ + #include <iostream> + #include <sstream> + #include <string> +-extern "C" { +- #include <glib/gi18n.h> +-} ++#include <glib/gi18n.h> + #include <pan/general/debug.h> + #include <pan/general/log.h> + #include <pan/general/macros.h> +diff --git a/pan/usenet-utils/ssl-utils.h b/pan/usenet-utils/ssl-utils.h +index 2286250..0beb32f 100644 +--- a/pan/usenet-utils/ssl-utils.h ++++ b/pan/usenet-utils/ssl-utils.h +@@ -43,9 +43,7 @@ + #include <map> + #include <sstream> + #include <iostream> +-extern "C" { +- #include <glib/gi18n.h> +-} ++#include <glib/gi18n.h> + + namespace pan + { +diff --git a/pan/usenet-utils/text-massager.cc b/pan/usenet-utils/text-massager.cc +index 4fcd8d5..15a818b 100644 +--- a/pan/usenet-utils/text-massager.cc ++++ b/pan/usenet-utils/text-massager.cc +@@ -22,9 +22,7 @@ + #include <map> + #include <cstring> + #include <glib.h> +-extern "C" { + #include <glib/gi18n.h> +-} + #include "text-massager.h" + #include <pan/general/log.h> + #include <pan/general/e-util.h> diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix new file mode 100644 index 000000000000..176ce43af5f7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, qmake, pkg-config, wrapQtAppsHook +, qtbase, qttools, qtwebkit, sqlite +}: + +stdenv.mkDerivation rec { + pname = "quiterss"; + version = "0.19.4"; + + src = fetchFromGitHub { + owner = "QuiteRSS"; + repo = "quiterss"; + rev = version; + sha256 = "1cgvl67vhn5y7bj5gbjbgk26bhb0196bgrgsp3r5fmrislarj8s6"; + }; + + nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ]; + buildInputs = [ qtbase qttools qtwebkit sqlite.dev ]; + + meta = with lib; { + description = "A Qt-based RSS/Atom news feed reader"; + longDescription = '' + QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader + written on Qt/C++ + ''; + homepage = "https://quiterss.org"; + changelog = "https://github.com/QuiteRSS/quiterss/blob/${version}/CHANGELOG"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix new file mode 100644 index 000000000000..e49ffe15ee28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl +, slang, ncurses, openssl }: + +stdenv.mkDerivation rec { + pname = "slrn"; + version = "1.0.3a"; + + src = fetchurl { + url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2"; + sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v"; + }; + + preConfigure = '' + sed -i -e "s|-ltermcap|-lncurses|" configure + sed -i autoconf/Makefile.in src/Makefile.in \ + -e "s|/bin/cp|cp|" \ + -e "s|/bin/rm|rm|" + ''; + + configureFlags = [ + "--with-slang=${slang.dev}" + "--with-ssl=${openssl.dev}" + ]; + + buildInputs = [ slang ncurses openssl ]; + + meta = with lib; { + description = "The slrn (S-Lang read news) newsreader"; + homepage = "http://slrn.sourceforge.net/index.html"; + maintainers = with maintainers; [ ehmry ]; + license = licenses.gpl2; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch b/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch new file mode 100644 index 000000000000..ab7cb9bffa45 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/0001-Explicitly-copy-dbus-files-into-the-store-dir.patch @@ -0,0 +1,25 @@ +From bbd366348d1f0e334d4604d04e293a046070e666 Mon Sep 17 00:00:00 2001 +From: Maximilian Bosch <maximilian@mbosch.me> +Date: Fri, 23 Aug 2019 00:19:20 +0200 +Subject: [PATCH] Explicitly copy dbus files into the store dir + +--- + shell_integration/libcloudproviders/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/shell_integration/libcloudproviders/CMakeLists.txt b/shell_integration/libcloudproviders/CMakeLists.txt +index 1f35335..7f76951 100644 +--- a/shell_integration/libcloudproviders/CMakeLists.txt ++++ b/shell_integration/libcloudproviders/CMakeLists.txt +@@ -19,7 +19,7 @@ MACRO(PKGCONFIG_GETVAR _package _var _output_variable) + ENDMACRO(PKGCONFIG_GETVAR _package _var _output_variable) + + macro(dbus_add_activation_service _sources) +- PKGCONFIG_GETVAR(dbus-1 session_bus_services_dir _install_dir) ++ set(_install_dir "${CMAKE_INSTALL_DATADIR}/dbus-1/service") + foreach (_i ${_sources}) + get_filename_component(_service_file ${_i} ABSOLUTE) + string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i}) +-- +2.19.2 + diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix new file mode 100644 index 000000000000..8635b882fc95 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix @@ -0,0 +1,76 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, inotify-tools +, libcloudproviders +, libsecret +, openssl +, pcre +, pkg-config +, qtbase +, qtkeychain +, qttools +, qtwebengine +, qtwebsockets +, qtquickcontrols2 +, qtgraphicaleffects +, sqlite +, inkscape +}: + +mkDerivation rec { + pname = "nextcloud-client"; + version = "3.2.3"; + + src = fetchFromGitHub { + owner = "nextcloud"; + repo = "desktop"; + rev = "v${version}"; + sha256 = "sha256-NE0P6bG/msoP29c/1r/fTC5vDcqgkQuqfRK+IDftMqY="; + }; + + patches = [ + # Explicitly move dbus configuration files to the store path rather than `/etc/dbus-1/services`. + ./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch + ]; + + nativeBuildInputs = [ + pkg-config + cmake + inkscape + ]; + + buildInputs = [ + inotify-tools + libcloudproviders + libsecret + openssl + pcre + qtbase + qtkeychain + qttools + qtwebengine + qtquickcontrols2 + qtgraphicaleffects + qtwebsockets + sqlite + ]; + + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}" + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH + "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit + ]; + + meta = with lib; { + description = "Nextcloud themed desktop client"; + homepage = "https://nextcloud.com"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ caugner ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nextdns/default.nix b/nixpkgs/pkgs/applications/networking/nextdns/default.nix new file mode 100644 index 000000000000..a27f1fdad257 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nextdns/default.nix @@ -0,0 +1,26 @@ +{ buildGoModule, fetchFromGitHub, lib }: + +buildGoModule rec { + pname = "nextdns"; + version = "1.11.0"; + + src = fetchFromGitHub { + owner = "nextdns"; + repo = "nextdns"; + rev = "v${version}"; + sha256 = "sha256-gnWFgzfMMnn8O7zDN5LW3cMIz5/wmgEW9fI9aJBEah8="; + }; + + vendorSha256 = "sha256-kmszMqkDMaL+Z6GcZmQyeRShKKS/VGdn9vabYPW/kCc="; + + doCheck = false; + + buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; + + meta = with lib; { + description = "NextDNS DNS/53 to DoH Proxy"; + homepage = "https://nextdns.io"; + license = licenses.mit; + maintainers = with maintainers; [ pnelson ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ngadmin/default.nix b/nixpkgs/pkgs/applications/networking/ngadmin/default.nix new file mode 100644 index 000000000000..8392e0583454 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ngadmin/default.nix @@ -0,0 +1,33 @@ +{ stdenv, lib, fetchFromGitHub, autoreconfHook, readline +, withReadline ? true +, enableEmu ? true +, enableSpy ? true +}: + +stdenv.mkDerivation { + pname = "ngadmin"; + version = "unstable-2020-10-05"; + + src = fetchFromGitHub { + owner = "Alkorin"; + repo = "ngadmin"; + rev = "5bf8650ce6d465b8cb1e570548819f0cefe9a87d"; + sha256 = "15vixhwqcpbjdxlaznans9w63kwl29mdkds6spvbv2i7l33qnhq4"; + }; + + nativeBuildInputs = + [ autoreconfHook ] + ++ lib.optional withReadline readline; + enableParallelBuild = true; + configureFlags = with lib; + optional (!withReadline) "--without-readline" + ++ optional enableEmu "--enable-emu" + ++ optional enableSpy "--enable-spy"; + + meta = with lib; { + description = "Netgear switch (NSDP) administration tool"; + homepage = "https://www.netgeek.ovh/wiki/projets:ngadmin"; + license = licenses.gpl2Only; + maintainers = [ maintainers.astro ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nload/default.nix b/nixpkgs/pkgs/applications/networking/nload/default.nix new file mode 100644 index 000000000000..8b97bbf4635a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nload/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchurl, fetchpatch, ncurses }: + +stdenv.mkDerivation rec { + version = "0.7.4"; + pname = "nload"; + + src = fetchurl { + url = "http://www.roland-riegel.de/nload/${pname}-${version}.tar.gz"; + sha256 = "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"; + }; + + patches = [ + # Fixes an ugly bug of graphs scrolling to the side, corrupting the view. + # There is an upstream fix, but not a new upstream release that includes it. + # Other distributions like Gentoo also patch this as a result; see: + # https://github.com/rolandriegel/nload/issues/3#issuecomment-427579143 + # TODO Remove when https://github.com/rolandriegel/nload/issues/3 is merged and available + (fetchpatch { + url = "https://github.com/rolandriegel/nload/commit/8a93886e0fb33a81b8fe32e88ee106a581fedd34.patch"; + name = "nload-0.7.4-Eliminate-flicker-on-some-terminals.patch"; + sha256 = "10yppy5l50wzpcvagsqkbyf1rcan6aj30am4rw8hmkgnbidf4zbq"; + }) + ]; + + buildInputs = [ ncurses ]; + + meta = { + description = "Monitors network traffic and bandwidth usage with ncurses graphs"; + longDescription = '' + nload is a console application which monitors network traffic and + bandwidth usage in real time. It visualizes the in- and outgoing traffic + using two graphs and provides additional info like total amount of + transfered data and min/max network usage. + ''; + homepage = "http://www.roland-riegel.de/nload/index.html"; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.devhell ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix b/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix new file mode 100644 index 000000000000..626913cd60a4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, libconfig, pkg-config, libevent, openssl }: + +stdenv.mkDerivation { + pname = "nntp-proxy"; + version = "2014-01-06"; + + src = fetchFromGitHub { + owner = "nieluj"; + repo = "nntp-proxy"; + rev = "0358e7ad6c4676f90ac5074320b16e1461b0011a"; + sha256 = "0jwxh71am83fbnq9mn06jl06rq8qybm506js79xmmc3xbk5pqvy4"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libconfig libevent openssl ]; + + installFlags = [ "INSTALL_DIR=$(out)/bin/" ]; + + prePatch = '' + mkdir -p $out/bin + substituteInPlace Makefile \ + --replace /usr/bin/install $(type -P install) \ + --replace gcc cc + ''; + + meta = { + description = "Simple NNTP proxy with SSL support"; + homepage = "https://github.com/nieluj/nntp-proxy"; + license = lib.licenses.gpl2Plus; + maintainers = [ lib.maintainers.fadenb ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nym/default.nix b/nixpkgs/pkgs/applications/networking/nym/default.nix new file mode 100644 index 000000000000..b7bffcd694e1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nym/default.nix @@ -0,0 +1,44 @@ +{ stdenv +, lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, openssl +, Security +, libiconv +}: + +rustPlatform.buildRustPackage rec { + pname = "nym"; + version = "0.10.0"; + + src = fetchFromGitHub { + owner = "nymtech"; + repo = "nym"; + rev = "v${version}"; + sha256 = "sha256-7x+B+6T0cnEOjXevA5n1k/SY1Q2tcu0bbZ9gIGoljw0="; + }; + + cargoSha256 = "0a7yja0ihjc66fqlshlaxpnpcpdy7h7gbv6120w2cr605qdnqvkx"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ]; + + patches = [ ./ignore-networking-tests.patch ]; + checkType = "debug"; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "A mixnet providing IP-level privacy"; + longDescription = '' + Nym routes IP packets through other participating nodes to hide their source and destination. + In contrast with Tor, it prevents timing attacks at the cost of latency. + ''; + homepage = "https://nymtech.net"; + license = licenses.asl20; + maintainers = [ maintainers.ehmry ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch b/nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch new file mode 100644 index 000000000000..e971557e7ce0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nym/ignore-networking-tests.patch @@ -0,0 +1,123 @@ +diff --git a/service-providers/network-requester/src/allowed_hosts.rs b/service-providers/network-requester/src/allowed_hosts.rs +index 3026b4ee..fd156682 100644 +--- a/service-providers/network-requester/src/allowed_hosts.rs ++++ b/service-providers/network-requester/src/allowed_hosts.rs +@@ -306,6 +306,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn leaves_a_com_alone() { + let filter = setup(); + assert_eq!( +@@ -315,6 +316,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn trims_subdomains_from_com() { + let filter = setup(); + assert_eq!( +@@ -324,6 +326,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn works_for_non_com_roots() { + let filter = setup(); + assert_eq!( +@@ -333,6 +336,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn works_for_non_com_roots_with_subdomains() { + let filter = setup(); + assert_eq!( +@@ -342,12 +346,14 @@ mod tests { + } + + #[test] ++ #[ignore] + fn returns_none_on_garbage() { + let filter = setup(); + assert_eq!(None, filter.get_domain_root("::/&&%@")); + } + + #[test] ++ #[ignore] + fn returns_none_on_nonsense_domains() { + let filter = setup(); + assert_eq!(None, filter.get_domain_root("flappappa")); +@@ -368,6 +374,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_not_allowed() { + let host = "unknown.com"; + let mut filter = setup(); +@@ -375,6 +382,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn get_appended_once_to_the_unknown_hosts_list() { + let host = "unknown.com"; + let mut filter = setup(); +@@ -405,6 +413,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_allowed() { + let host = "nymtech.net"; + +@@ -413,6 +422,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_allowed_for_subdomains() { + let host = "foomp.nymtech.net"; + +@@ -421,6 +431,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_not_appended_to_file() { + let mut filter = setup(&["nymtech.net"]); + +@@ -436,6 +447,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_allowed_for_ipv4_addresses() { + let address_good = "1.1.1.1"; + let address_good_port = "1.1.1.1:1234"; +@@ -448,6 +460,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_allowed_for_ipv6_addresses() { + let ip_v6_full = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"; + let ip_v6_full_rendered = "2001:0db8:85a3::8a2e:0370:7334"; +@@ -477,6 +490,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_allowed_for_ipv4_address_ranges() { + let range1 = "127.0.0.1/32"; + let range2 = "1.2.3.4/24"; +@@ -495,6 +509,7 @@ mod tests { + } + + #[test] ++ #[ignore] + fn are_allowed_for_ipv6_address_ranges() { + let range = "2620:0:2d0:200::7/32"; + diff --git a/nixpkgs/pkgs/applications/networking/nym/update.sh b/nixpkgs/pkgs/applications/networking/nym/update.sh new file mode 100755 index 000000000000..0c65521c7f80 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/nym/update.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq nix-prefetch + +# adapted from rust-analyzer + +set -euo pipefail +cd "$(dirname "$0")" +nixpkgs=../../../.. + +owner=$(sed -nE 's/.*\bowner = "(.*)".*/\1/p' ./default.nix) +repo=$(sed -nE 's/.*\brepo = "(.*)".*/\1/p' ./default.nix) +rev=$( + curl -s "https://api.github.com/repos/$owner/$repo/releases" | + jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output +) +version=${rev:1} +old_version=$(sed -nE 's/.*\bversion = "(.*)".*/\1/p' ./default.nix) +if grep -q 'cargoSha256 = ""' ./default.nix; then + old_version='broken' +fi +if [[ "$version" == "$old_version" ]]; then + echo "Up to date: $version" + exit +fi +echo "$old_version -> $version" + +sha256=$(nix-prefetch -f "$nixpkgs" nym.src --rev "$rev") +# Clear cargoSha256 to avoid inconsistency. +sed -e "s/version = \".*\"/version = \"$version\"/" \ + -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" \ + -e "s/cargoSha256 = \".*\"/cargoSha256 = \"\"/" \ + --in-place ./default.nix + +echo "Prebuilding for cargoSha256" +cargo_sha256=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).nym.cargoDeps.overrideAttrs (_: { outputHash = sha256; })") +sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \ + --in-place ./default.nix diff --git a/nixpkgs/pkgs/applications/networking/offrss/default.nix b/nixpkgs/pkgs/applications/networking/offrss/default.nix new file mode 100644 index 000000000000..a6816d042e05 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/offrss/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl, curl, libmrss, podofo, libiconv }: + +stdenv.mkDerivation { + name = "offrss-1.3"; + + installPhase = '' + mkdir -p $out/bin + cp offrss $out/bin + ''; + + buildInputs = [ curl libmrss ] + ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) podofo + ++ lib.optional (!stdenv.isLinux) libiconv; + + configurePhase = '' + substituteInPlace Makefile \ + --replace '$(CC) $(CFLAGS) $(LDFLAGS)' '$(CXX) $(CFLAGS) $(LDFLAGS)' + '' + lib.optionalString (!stdenv.isLinux) '' + sed 's/#EXTRA/EXTRA/' -i Makefile + '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + sed 's/^PDF/#PDF/' -i Makefile + ''; + + src = fetchurl { + url = "http://vicerveza.homeunix.net/~viric/soft/offrss/offrss-1.3.tar.gz"; + sha256 = "1akw1x84jj2m9z60cvlvmz21qwlaywmw18pl7lgp3bj5nw6250p6"; + }; + + meta = with lib; { + homepage = "http://vicerveza.homeunix.net/~viric/cgi-bin/offrss"; + description = "Offline RSS/Atom reader"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ viric ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/omping/default.nix b/nixpkgs/pkgs/applications/networking/omping/default.nix new file mode 100644 index 000000000000..7e7cd47dbd0a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/omping/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch }: + +stdenv.mkDerivation rec { + pname = "omping"; + version = "0.0.5"; + + src = fetchFromGitHub { + owner = "troglobit"; + repo = "omping"; + rev = version; + sha256 = "1f0vsbnhxp7bbgdnfqshryx3nhz2sqdnxdj068s0nmzsh53ckbf7"; + }; + + patches = [ + # This can go in 0.0.6+ + (fetchpatch { + url = "https://github.com/troglobit/omping/commit/08a31ec1a6eb4e8f88c301ef679c3b6f9893f333.patch"; + sha256 = "1xafyvd46bq53w2zvjw8bdw7vjqbrcrr21cyh6d0zfcn4gif1k0f"; + name = "fix_manpage_install.patch"; + }) + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Open Multicast Ping (omping) is a tool for testing IPv4/IPv6 multicast connectivity on a LAN"; + license = licenses.mit; + platforms = platforms.unix; + inherit (src.meta) homepage; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/onionshare/default.nix b/nixpkgs/pkgs/applications/networking/onionshare/default.nix new file mode 100644 index 000000000000..529b871d20c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/onionshare/default.nix @@ -0,0 +1,131 @@ +{ + lib, + buildPythonApplication, + substituteAll, + fetchFromGitHub, + isPy3k, + colorama, + flask, + flask-httpauth, + flask-socketio, + stem, + psutil, + pyqt5, + pycrypto, + pyside2, + pytestCheckHook, + qrcode, + qt5, + requests, + unidecode, + tor, + obfs4, +}: + +let + version = "2.3.2"; + src = fetchFromGitHub { + owner = "micahflee"; + repo = "onionshare"; + rev = "v${version}"; + sha256 = "sha256-mzLDvvpO82iGDnzY42wx1KCNmAxUgVhpaDVprtb+YOI="; + }; + meta = with lib; { + description = "Securely and anonymously send and receive files"; + longDescription = '' + OnionShare is an open source tool for securely and anonymously sending + and receiving files using Tor onion services. It works by starting a web + server directly on your computer and making it accessible as an + unguessable Tor web address that others can load in Tor Browser to + download files from you, or upload files to you. It doesn't require + setting up a separate server, using a third party file-sharing service, + or even logging into an account. + + Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly + any other way people typically send files to each other, when you use + OnionShare you don't give any companies access to the files that you're + sharing. So long as you share the unguessable web address in a secure way + (like pasting it in an encrypted messaging app), no one but you and the + person you're sharing with can access the files. + ''; + + homepage = "https://onionshare.org/"; + + license = licenses.gpl3Plus; + maintainers = with maintainers; [ lourkeur ]; + }; + +in rec { + onionshare = buildPythonApplication { + pname = "onionshare-cli"; + inherit version meta; + src = "${src}/cli"; + patches = [ + # hardcode store paths of dependencies + (substituteAll { + src = ./fix-paths.patch; + inherit tor obfs4; + inherit (tor) geoip; + }) + ]; + disable = !isPy3k; + propagatedBuildInputs = [ + colorama + flask + flask-httpauth + flask-socketio + stem + psutil + pycrypto + requests + unidecode + ]; + + buildInputs = [ + tor + obfs4 + ]; + + checkInputs = [ + pytestCheckHook + ]; + + preCheck = '' + # Tests use the home directory + export HOME="$(mktemp -d)" + ''; + }; + + onionshare-gui = buildPythonApplication { + pname = "onionshare"; + inherit version meta; + src = "${src}/desktop/src"; + patches = [ + # hardcode store paths of dependencies + (substituteAll { + src = ./fix-paths-gui.patch; + inherit tor obfs4; + inherit (tor) geoip; + }) + ]; + + disable = !isPy3k; + propagatedBuildInputs = [ + onionshare + pyqt5 + pyside2 + psutil + qrcode + ]; + + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + + preFixup = '' + wrapQtApp $out/bin/onionshare + ''; + + doCheck = false; + + pythonImportsCheck = [ "onionshare" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch new file mode 100644 index 000000000000..841af8fa95af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths-gui.patch @@ -0,0 +1,36 @@ +--- a/onionshare/gui_common.py ++++ b/onionshare/gui_common.py +@@ -391,29 +391,10 @@ class GuiCommon: + } + + def get_tor_paths(self): +- if self.common.platform == "Linux": +- tor_path = shutil.which("tor") +- obfs4proxy_file_path = shutil.which("obfs4proxy") +- prefix = os.path.dirname(os.path.dirname(tor_path)) +- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip") +- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6") +- elif self.common.platform == "Windows": +- base_path = self.get_resource_path("tor") +- tor_path = os.path.join(base_path, "Tor", "tor.exe") +- obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe") +- tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip") +- tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6") +- elif self.common.platform == "Darwin": +- base_path = self.get_resource_path("tor") +- tor_path = os.path.join(base_path, "tor") +- obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy") +- tor_geo_ip_file_path = os.path.join(base_path, "geoip") +- tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6") +- elif self.common.platform == "BSD": +- tor_path = "/usr/local/bin/tor" +- tor_geo_ip_file_path = "/usr/local/share/tor/geoip" +- tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6" +- obfs4proxy_file_path = "/usr/local/bin/obfs4proxy" ++ tor_path = "@tor@/bin/tor" ++ tor_geo_ip_file_path = "@geoip@/share/tor/geoip" ++ tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6" ++ obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy" + + return ( + tor_path, diff --git a/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch new file mode 100644 index 000000000000..9280ec4d255a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/onionshare/fix-paths.patch @@ -0,0 +1,41 @@ +--- a/onionshare_cli/common.py ++++ b/onionshare_cli/common.py +@@ -308,33 +308,10 @@ class Common: + return path + + def get_tor_paths(self): +- if self.platform == "Linux": +- tor_path = shutil.which("tor") +- if not tor_path: +- raise CannotFindTor() +- obfs4proxy_file_path = shutil.which("obfs4proxy") +- prefix = os.path.dirname(os.path.dirname(tor_path)) +- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip") +- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6") +- elif self.platform == "Windows": +- base_path = self.get_resource_path("tor") +- tor_path = os.path.join(base_path, "Tor", "tor.exe") +- obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe") +- tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip") +- tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6") +- elif self.platform == "Darwin": +- tor_path = shutil.which("tor") +- if not tor_path: +- raise CannotFindTor() +- obfs4proxy_file_path = shutil.which("obfs4proxy") +- prefix = os.path.dirname(os.path.dirname(tor_path)) +- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip") +- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6") +- elif self.platform == "BSD": +- tor_path = "/usr/local/bin/tor" +- tor_geo_ip_file_path = "/usr/local/share/tor/geoip" +- tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6" +- obfs4proxy_file_path = "/usr/local/bin/obfs4proxy" ++ tor_path = "@tor@/bin/tor" ++ tor_geo_ip_file_path = "@geoip@/share/tor/geoip" ++ tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6" ++ obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy" + + return ( + tor_path, + diff --git a/nixpkgs/pkgs/applications/networking/openbazaar/client.nix b/nixpkgs/pkgs/applications/networking/openbazaar/client.nix new file mode 100644 index 000000000000..e7a19fa7825f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/openbazaar/client.nix @@ -0,0 +1,60 @@ +{ lib, stdenv +, fetchurl +, gcc-unwrapped +, dpkg +, bash +, nodePackages +, makeWrapper +, electron_6 +}: + +let + electron = electron_6; +in +stdenv.mkDerivation rec { + pname = "openbazaar-client"; + version = "2.4.10"; + + src = fetchurl { + url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb"; + sha256 = "sha256-X0iTTLOJsZeyVZwNU3y39cFMHnxlnYXmqQERE26CLTY="; + }; + + dontBuild = true; + dontConfigure = true; + + nativeBuildInputs = [ makeWrapper ]; + + unpackPhase = '' + ${dpkg}/bin/dpkg-deb -x $src . + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/{${pname},applications,pixmaps} + + cp -a usr/lib/openbazaar2client/{locales,resources} $out/share/${pname} + cp -a usr/share/applications/openbazaar2client.desktop $out/share/applications/${pname}.desktop + cp -a usr/share/pixmaps/openbazaar2client.png $out/share/pixmaps/${pname}.png + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'openbazaar2client' 'openbazaar-client' + + runHook postInstall + ''; + + postFixup = '' + makeWrapper ${electron}/bin/electron $out/bin/${pname} \ + --add-flags $out/share/${pname}/resources/app \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gcc-unwrapped.lib ]}" + ''; + + meta = with lib; { + description = "Decentralized Peer to Peer Marketplace for Bitcoin - client"; + homepage = "https://www.openbazaar.org/"; + license = licenses.mit; + maintainers = with maintainers; [ prusnak ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/openbazaar/default.nix b/nixpkgs/pkgs/applications/networking/openbazaar/default.nix new file mode 100644 index 000000000000..aa5d14724ac4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/openbazaar/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + pname = "openbazaar"; + version = "0.14.6"; + + suffix = { + i686-linux = "linux-386"; + x86_64-darwin = "darwin-10.6-amd64"; + x86_64-linux = "linux-amd64"; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + src = fetchurl { + url = "https://github.com/OpenBazaar/openbazaar-go/releases/download/v${version}/${pname}-go-${suffix}"; + sha256 = { + i686-linux = "1cmv3gyfd6q7y6yn6kigksy2abkq5b8mfgk51d04ky1ckgbriaqq"; + x86_64-darwin = "0n32a0pyj1k2had3imimdyhdhyb285y1dj04f7g3jajmy5zndaxx"; + x86_64-linux = "105i5yl2yvhcvyh1wf35kqq1qyxgbl9j2kxs6yshsk14b2p02j5i"; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + }; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + dontStrip = true; + dontPatchELF = true; + preferLocalBuild = true; + + installPhase = '' + install -D $src $out/bin/openbazaard + ''; + + postFixup = lib.optionalString (!stdenv.isDarwin) '' + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + $out/bin/openbazaard + ''; + + meta = with lib; { + description = "Decentralized Peer to Peer Marketplace for Bitcoin - daemon"; + homepage = "https://www.openbazaar.org/"; + license = licenses.mit; + maintainers = with maintainers; [ prusnak ]; + platforms = [ "i686-linux" "x86_64-darwin" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/opsdroid/default.nix b/nixpkgs/pkgs/applications/networking/opsdroid/default.nix new file mode 100644 index 000000000000..c007144ac48e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/opsdroid/default.nix @@ -0,0 +1,36 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonPackage rec { + pname = "opsdroid"; + version = "0.22.0"; + + src = fetchFromGitHub { + owner = "opsdroid"; + repo = "opsdroid"; + rev = "v${version}"; + sha256 = "003gpzdjfz2jrwx2bkkd1k2mr7yjpaw5s7fy5l0hw72f9zimznd0"; + }; + + disabled = !python3Packages.isPy3k; + + # tests folder is not included in release + doCheck = false; + + propagatedBuildInputs = with python3Packages; [ + click Babel opsdroid_get_image_size slackclient webexteamssdk bleach + parse emoji puremagic yamale nbformat websockets pycron nbconvert + aiohttp matrix-api-async aioredis aiosqlite arrow pyyaml motor regex + mattermostdriver setuptools voluptuous ibm-watson tailer multidict + watchgod get-video-properties appdirs bitstring matrix-nio + ]; + + passthru.python = python3Packages.python; + + meta = with lib; { + description = "An open source chat-ops bot framework"; + homepage = "https://opsdroid.dev"; + maintainers = with maintainers; [ fpletz globin willibutz lheckemann ]; + license = licenses.asl20; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ostinato/default.nix b/nixpkgs/pkgs/applications/networking/ostinato/default.nix new file mode 100644 index 000000000000..0719c137aba5 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ostinato/default.nix @@ -0,0 +1,73 @@ +{ lib, mkDerivation, fetchFromGitHub, fetchurl, qmake, makeDesktopItem +, qtbase, qtscript, protobuf, libpcap, wireshark, gzip, diffutils, gawk +, libnl +}: + +mkDerivation rec { + pname = "ostinato"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "pstavirs"; + repo = "ostinato"; + rev = "v${version}"; + sha256 = "0B3jOj5rA3/rD2gXS2praZImeP34zN06fOPy/IswXOg="; + }; + + ostinatoIcon = fetchurl { + url = "https://ostinato.org/images/site-logo.png"; + sha256 = "f5c067823f2934e4d358d76f65a343efd69ad783a7aeabd7ab4ce3cd03490d70"; + }; + + buildInputs = [ qtbase protobuf libpcap qtscript libnl ]; + + nativeBuildInputs = [ qmake ]; + + patches = [ ./drone_ini.patch ]; + prePatch = '' + sed -i 's|/usr/include/libnl3|${libnl.dev}/include/libnl3|' server/drone.pro + ''; + + desktopItem = makeDesktopItem { + type = "Application"; + name = "ostinato"; + desktopName = "Ostinato"; + genericName = "Packet/Traffic Generator and Analyzer"; + comment = "Network packet and traffic generator and analyzer with a friendly GUI"; + categories = "Network"; + terminal = "false"; + startupNotify = "true"; + exec = "$out/bin/ostinato"; + icon = ostinatoIcon; + extraEntries = '' + GenericName[it]=Generatore ed Analizzatore di pacchetti di rete + Comment[it]=Generatore ed Analizzatore di pacchetti di rete con interfaccia amichevole + ''; + fileValidation = false; + }; + + postInstall = '' + mkdir -p $out/share/applications + ln -s ${desktopItem}/share/applications/* $out/share/applications/ + + cat > $out/bin/ostinato.ini <<EOF + WiresharkPath=${wireshark}/bin/wireshark + TsharkPath=${wireshark}/bin/tshark + GzipPath=${gzip}/bin/gzip + DiffPath=${diffutils}/bin/diff + AwkPath=${gawk}/bin/awk + EOF + ''; + + # `cd common; qmake ostproto.pro; make pdmlreader.o`: + # pdmlprotocol.h:23:25: fatal error: protocol.pb.h: No such file or directory + enableParallelBuilding = false; + + meta = with lib; { + description = "A packet traffic generator and analyzer"; + homepage = "https://ostinato.org"; + license = licenses.gpl3; + maintainers = with maintainers; [ rick68 ]; + platforms = with platforms; linux ++ darwin ++ cygwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch b/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch new file mode 100644 index 000000000000..5818f4e94c30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch @@ -0,0 +1,14 @@ +diff -Nru ostinato-414d89860de0987843295d149bcabeac7c6fd9e5/server/drone_main.cpp ostinato-414d89860de0987843295d149bcabeac7c6fd9e5.new/server/drone_main.cpp +--- ostinato-414d89860de0987843295d149bcabeac7c6fd9e5/server/drone_main.cpp 2015-12-24 16:46:35.000000000 +0800 ++++ ostinato-414d89860de0987843295d149bcabeac7c6fd9e5.new/server/drone_main.cpp 2015-12-30 20:59:04.319199699 +0800 +@@ -62,8 +62,8 @@ + /* (Portable Mode) If we have a .ini file in the same directory as the + executable, we use that instead of the platform specific location + and format for the settings */ +- QString portableIni = QCoreApplication::applicationDirPath() +- + "/drone.ini"; ++ QString portableIni = argc > 2 ? argv[2] : ++ QCoreApplication::applicationDirPath() + "/drone.ini"; + if (QFile::exists(portableIni)) + appSettings = new QSettings(portableIni, QSettings::IniFormat); + else diff --git a/nixpkgs/pkgs/applications/networking/owamp/default.nix b/nixpkgs/pkgs/applications/networking/owamp/default.nix new file mode 100644 index 000000000000..c357e78ccf29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/owamp/default.nix @@ -0,0 +1,28 @@ +{lib, stdenv, fetchFromGitHub +, autoconf, automake, mandoc }: + +stdenv.mkDerivation rec { + pname = "owamp"; + version = "3.5.6"; + buildInputs = [ autoconf automake mandoc ]; + src = fetchFromGitHub { + owner = "perfsonar"; + repo = "owamp"; + rev = version; + sha256="019rcshmrqk8pfp510j5jvazdcnz0igfkwv44mfxb5wirzj9p6s7"; + fetchSubmodules = true; + }; + + preConfigure = '' + I2util/bootstrap.sh + ./bootstrap + ''; + + meta = with lib; { + homepage = "http://software.internet2.edu/owamp/"; + description = "A tool for performing one-way active measurements"; + platforms = platforms.linux; + maintainers = [maintainers.teto]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix new file mode 100644 index 000000000000..34ab19f6e27a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix @@ -0,0 +1,31 @@ +{ lib, fetchurl, mkDerivation, cmake, extra-cmake-modules, pkg-config, qtbase, qtkeychain, sqlite, libsecret }: + +mkDerivation rec { + pname = "owncloud-client"; + version = "2.8.2.4246"; + + src = fetchurl { + url = "https://download.owncloud.com/desktop/ownCloud/stable/${version}/source/ownCloud-${version}.tar.xz"; + sha256 = "0cc2e5154a1349bd21941ac3c32e8621778a9ff150730a19de2710e22d32fc43"; + }; + + nativeBuildInputs = [ pkg-config cmake extra-cmake-modules ]; + buildInputs = [ qtbase qtkeychain sqlite libsecret ]; + + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}" + ]; + + cmakeFlags = [ + "-UCMAKE_INSTALL_LIBDIR" + "-DNO_SHIBBOLETH=1" + ]; + + meta = with lib; { + description = "Synchronise your ownCloud with your computer using this desktop client"; + homepage = "https://owncloud.org"; + maintainers = [ maintainers.qknight ]; + platforms = platforms.unix; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/deluge/1.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/1.nix new file mode 100644 index 000000000000..4171efb7ce29 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/1.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, fetchpatch, intltool, libtorrent-rasterbar, pythonPackages }: + +pythonPackages.buildPythonPackage rec { + pname = "deluge"; + version = "1.3.15"; + + src = fetchurl { + url = "http://download.deluge-torrent.org/source/${pname}-${version}.tar.bz2"; + sha256 = "1467b9hmgw59gf398mhbf40ggaka948yz3afh6022v753c9j7y6w"; + }; + + patches = [ + # Fix preferences when built against libtorrent >=0.16 + (fetchpatch { + url = "https://git.deluge-torrent.org/deluge/patch/?id=38d7b7cdfde3c50d6263602ffb03af92fcbfa52e"; + sha256 = "0la3i0lkj6yv4725h4kbd07mhfwcb34w7prjl9gxg12q7px6c31d"; + }) + ]; + + propagatedBuildInputs = with pythonPackages; [ + pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity + libtorrent-rasterbar.dev libtorrent-rasterbar.python setuptools + ]; + + nativeBuildInputs = [ intltool ]; + + postInstall = '' + mkdir -p $out/share/applications + cp -R deluge/data/pixmaps $out/share/ + cp -R deluge/data/icons $out/share/ + cp deluge/data/share/applications/deluge.desktop $out/share/applications + ''; + + meta = with lib; { + homepage = "https://deluge-torrent.org"; + description = "Torrent client"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ domenkozar ebzzry ]; + broken = stdenv.isDarwin; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix new file mode 100644 index 000000000000..2bd3cd739e66 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix @@ -0,0 +1,86 @@ +{ lib +, fetchurl +, fetchpatch +, intltool +, libtorrent-rasterbar +, pythonPackages +, gtk3 +, glib +, gobject-introspection +, librsvg +, wrapGAppsHook +}: + +pythonPackages.buildPythonPackage rec { + pname = "deluge"; + version = "2.0.3"; + + src = fetchurl { + url = "http://download.deluge-torrent.org/source/2.0/${pname}-${version}.tar.xz"; + sha256 = "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/deluge-torrent/deluge/commit/d6c96d629183e8bab2167ef56457f994017e7c85.patch"; + sha256 = "sha256-slGMt2bgp36pjDztJUXFeZNbzdJsus0s9ARRD6IpNUw="; + name = "fix_ngettext_warning.patch"; + }) + + (fetchpatch { + url = "https://github.com/deluge-torrent/deluge/commit/351664ec071daa04161577c6a1c949ed0f2c3206.patch"; + sha256 = "sha256-ry1LFgMe9lys66xAvATcPqIa3rzBPWVnsf8FL1dXkHo="; + name = "fix_logging_on_py38.patch"; + }) + ]; + + propagatedBuildInputs = with pythonPackages; [ + twisted + Mako + chardet + pyxdg + pyopenssl + service-identity + libtorrent-rasterbar.dev + libtorrent-rasterbar.python + setuptools + setproctitle + pillow + rencode + six + zope_interface + dbus-python + pygobject3 + pycairo + gtk3 + gobject-introspection + librsvg + ]; + + nativeBuildInputs = [ intltool wrapGAppsHook glib ]; + + checkInputs = with pythonPackages; [ + pytestCheckHook + pytest-twisted + pytest-cov + mock + mccabe + pylint + ]; + + doCheck = false; # until pytest-twisted is packaged + + postInstall = '' + mkdir -p $out/share + cp -R deluge/ui/data/{icons,pixmaps} $out/share/ + install -Dm444 -t $out/share/applications deluge/ui/data/share/applications/deluge.desktop + ''; + + meta = with lib; { + homepage = "https://deluge-torrent.org"; + description = "Torrent client"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ domenkozar ebzzry ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix new file mode 100644 index 000000000000..f86eefe668f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, bzip2, libX11 +, mkDerivation, qtbase, qttools, qtmultimedia, qtscript +, libiconv, pcre-cpp, libidn, lua5, miniupnpc, aspell, gettext, perl }: + +mkDerivation rec { + pname = "eiskaltdcpp"; + version = "2.4.2"; + + src = fetchFromGitHub { + owner = "eiskaltdcpp"; + repo = "eiskaltdcpp"; + rev = "v${version}"; + sha256 = "sha256-JmAopXFS6MkxW0wDQ1bC/ibRmWgOpzU0971hcqAehLU="; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ qtbase qttools qtmultimedia qtscript bzip2 libX11 pcre-cpp libidn lua5 miniupnpc aspell gettext + (perl.withPackages (p: with p; [ + GetoptLong + TermShellUI + ])) ] + ++ lib.optional stdenv.isDarwin libiconv; + + cmakeFlags = [ + "-DDBUS_NOTIFY=ON" + "-DFREE_SPACE_BAR_C=ON" + "-DLUA_SCRIPT=ON" + "-DPERL_REGEX=ON" + "-DUSE_ASPELL=ON" + "-DUSE_CLI_JSONRPC=ON" + "-DUSE_MINIUPNP=ON" + "-DUSE_JS=ON" + "-DWITH_LUASCRIPTS=ON" + "-DWITH_SOUNDS=ON" + ]; + + postInstall = '' + ln -s $out/bin/$pname-qt $out/bin/$pname + ''; + + preFixup = '' + substituteInPlace $out/bin/eiskaltdcpp-cli-jsonrpc \ + --replace "/usr/local" "$out" + ''; + + meta = with lib; { + description = "A cross-platform program that uses the Direct Connect and ADC protocols"; + homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix new file mode 100644 index 000000000000..83cc191f1b30 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix @@ -0,0 +1,80 @@ +{ lib, stdenv, fetchurl, fetchFromGitHub, ant, jdk, bash, coreutils, substituteAll }: + +let + freenet_ext = fetchurl { + url = "https://downloads.freenetproject.org/latest/freenet-ext.jar"; + sha256 = "17ypljdvazgx2z6hhswny1lxfrknysz3x6igx8vl3xgdpvbb7wij"; + }; + + bcprov_version = "jdk15on-154"; + bcprov = fetchurl { + url = "https://www.bouncycastle.org/download/bcprov-ext-${bcprov_version}.jar"; + sha256 = "0abmhg2h44g8c5p7skzqwfxj8xwcjh9vs84mc0hr78k1am0633jk"; + }; + seednodes = fetchurl { + url = "https://downloads.freenetproject.org/alpha/opennet/seednodes.fref"; + sha256 = "08awwr8n80b4cdzzb3y8hf2fzkr1f2ly4nlq779d6pvi5jymqdvv"; + }; + version = "build01475"; + + freenet-jars = stdenv.mkDerivation { + pname = "freenet-jars"; + inherit version; + + src = fetchFromGitHub { + owner = "freenet"; + repo = "fred"; + rev = version; + sha256 = "0k02fna9x219j7dhginbnf27i36bibb0rmm4qdwr5xm28hy1nd08"; + }; + + patchPhase = '' + cp ${freenet_ext} lib/freenet/freenet-ext.jar + cp ${bcprov} lib/bcprov-${bcprov_version}.jar + + sed '/antcall.*-ext/d' -i build.xml + sed 's/@unknown@/${version}/g' -i build-clean.xml + ''; + + buildInputs = [ ant jdk ]; + + buildPhase = "ant package-only"; + + installPhase = '' + mkdir -p $out/share/freenet + cp lib/bcprov-${bcprov_version}.jar $out/share/freenet + cp lib/freenet/freenet-ext.jar $out/share/freenet + cp dist/freenet.jar $out/share/freenet + ''; + }; + +in stdenv.mkDerivation { + name = "freenet-${version}"; + inherit version; + + src = substituteAll { + src = ./freenetWrapper; + inherit bash coreutils seednodes bcprov_version; + freenet = freenet-jars; + jre = jdk.jre; + }; + + jars = freenet-jars; + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/bin + cp $src $out/bin/freenet + chmod +x $out/bin/freenet + ln -s ${freenet-jars}/share $out/share + ''; + + meta = { + description = "Decentralised and censorship-resistant network"; + homepage = "https://freenetproject.org/"; + license = lib.licenses.gpl2Plus; + maintainers = [ ]; + platforms = with lib.platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper b/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper new file mode 100755 index 000000000000..f3106265801f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper @@ -0,0 +1,18 @@ +#! @bash@/bin/bash + +PATH=@coreutils@/bin:$PATH + +export FREENET_HOME="$HOME/.local/share/freenet" +if [ -n "$XDG_DATA_HOME" ] + then export FREENET_HOME="$XDG_DATA_HOME/freenet" +fi + +if [ ! -d $FREENET_HOME ]; then + mkdir -p $FREENET_HOME +fi + +cp -u @seednodes@ $FREENET_HOME/seednodes.fref +chmod u+rw $FREENET_HOME/seednodes.fref + +cd $FREENET_HOME +@jre@/bin/java -cp @freenet@/share/freenet/bcprov-@bcprov_version@.jar:@freenet@/share/freenet/freenet-ext.jar:@freenet@/share/freenet/freenet.jar -Xmx1024M freenet.node.NodeStarter diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix new file mode 100644 index 000000000000..b3b277bf130a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix @@ -0,0 +1,94 @@ +{ lib, stdenv, fetchFromGitHub, gradle_6, perl, jre, makeWrapper, makeDesktopItem, mplayer }: + +let + version = "6.6.7-build-529"; + name = "frostwire-desktop-${version}"; + + src = fetchFromGitHub { + owner = "frostwire"; + repo = "frostwire"; + rev = name; + sha256 = "03wdj2kr8akzx8m1scvg98132zbaxh81qjdsxn2645b3gahjwz0m"; + }; + + desktopItem = makeDesktopItem { + name = "frostwire"; + desktopName = "FrostWire"; + genericName = "P2P Bittorrent client"; + exec = "frostwire"; + icon = "frostwire"; + comment = "Search and explore all kinds of files on the Bittorrent network"; + categories = "Network;FileTransfer;P2P;"; + }; + + # fake build to pre-download deps into fixed-output derivation + deps = stdenv.mkDerivation { + name = "${name}-deps"; + inherit src; + buildInputs = [ gradle_6 perl ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + ( cd desktop + gradle --no-daemon build + ) + ''; + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "11zd98g0d0fdgls4lsskkagwfxyh26spfd6c6g9cahl89czvlg3c"; + }; + +in stdenv.mkDerivation { + inherit name src; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ gradle_6 ]; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + ( cd desktop + + # disable auto-update (anyway it won't update frostwire installed in nix store) + substituteInPlace src/com/frostwire/gui/updates/UpdateManager.java \ + --replace 'um.checkForUpdates' '// um.checkForUpdates' + + # fix path to mplayer + substituteInPlace src/com/frostwire/gui/player/MediaPlayerLinux.java \ + --replace /usr/bin/mplayer ${mplayer}/bin/mplayer + + substituteInPlace build.gradle \ + --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' + gradle --offline --no-daemon build + ) + ''; + + installPhase = '' + mkdir -p $out/lib $out/share/java + + cp desktop/build/libs/frostwire.jar $out/share/java/frostwire.jar + + cp ${ { x86_64-darwin = "desktop/lib/native/*.dylib"; + x86_64-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}.so"; + i686-linux = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}X86.so"; + }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}") + } $out/lib + + cp -dpR ${desktopItem}/share $out + + makeWrapper ${jre}/bin/java $out/bin/frostwire \ + --add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar" + ''; + + meta = with lib; { + homepage = "https://www.frostwire.com/"; + description = "BitTorrent Client and Cloud File Downloader"; + license = licenses.gpl2; + maintainers = with maintainers; [ gavin ]; + platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix new file mode 100644 index 000000000000..2991550defcd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, jre, makeWrapper }: + +with lib; + +stdenv.mkDerivation rec { + version = "6.8.9"; + pname = "frostwire"; + + src = fetchurl { + url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz"; + sha256 = "0f5vyliwncryj6hj5xx0dycxycxddsn28n6zixjrn56jajijyl6q"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/share/java + mv $(ls */*.jar) $out/share/java + + makeWrapper $out/share/java/frostwire $out/bin/frostwire \ + --prefix PATH : ${jre}/bin/ + ''; + + meta = with lib; { + homepage = "https://www.frostwire.com/"; + description = "BitTorrent Client and Cloud File Downloader"; + license = licenses.gpl2; + maintainers = with maintainers; [ gavin ]; + platforms = [ "x86_64-linux"]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix new file mode 100644 index 000000000000..c1ba42a5e6d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix @@ -0,0 +1,74 @@ +{ lib, stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor +, libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring +, makeWrapper, ncurses, pkg-config, libxml2, sqlite, zlib +, libpulseaudio, libopus, libogg, jansson, libsodium + +, postgresqlSupport ? false, postgresql }: + +stdenv.mkDerivation rec { + pname = "gnunet"; + version = "0.14.1"; + + src = fetchurl { + url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; + sha256 = "1hhqv994akymf4s593mc1wpsjy6hccd0zbdim3qmc1y3f32hacja"; + }; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkg-config libtool makeWrapper ]; + buildInputs = [ + adns curl gmp gnutls libextractor libgcrypt libgnurl libidn + libmicrohttpd libunistring libxml2 ncurses gettext libsodium + sqlite zlib libpulseaudio libopus libogg jansson + ] ++ lib.optional postgresqlSupport postgresql; + + preConfigure = '' + # Brute force: since nix-worker chroots don't provide + # /etc/{resolv.conf,hosts}, replace all references to `localhost' + # by their IPv4 equivalent. + find . \( -name \*.c -or -name \*.conf \) | \ + xargs sed -ie 's|\<localhost\>|127.0.0.1|g' + + # Make sure the tests don't rely on `/tmp', for the sake of chroot + # builds. + find . \( -iname \*test\*.c -or -name \*.conf \) | \ + xargs sed -ie "s|/tmp|$TMPDIR|g" + + sed -ie 's|@LDFLAGS@|@LDFLAGS@ $(Z_LIBS)|g' \ + src/regex/Makefile.in \ + src/fs/Makefile.in + ''; + + # unfortunately, there's still a few failures with impure tests + doCheck = false; + checkPhase = '' + export GNUNET_PREFIX="$out" + export PATH="$out/bin:$PATH" + make -k check + ''; + + meta = with lib; { + description = "GNU's decentralized anonymous and censorship-resistant P2P framework"; + + longDescription = '' + GNUnet is a framework for secure peer-to-peer networking that + does not use any centralized or otherwise trusted services. A + first service implemented on top of the networking layer + allows anonymous censorship-resistant file-sharing. Anonymity + is provided by making messages originating from a peer + indistinguishable from messages that the peer is routing. All + peers act as routers and use link-encrypted connections with + stable bandwidth utilization to communicate with each other. + GNUnet uses a simple, excess-based economic model to allocate + resources. Peers in GNUnet monitor each others behavior with + respect to resource usage; peers that contribute to the + network are rewarded with better service. + ''; + + homepage = "https://gnunet.org/"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ pstn vrthra ]; + platforms = platforms.gnu ++ platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix new file mode 100644 index 000000000000..3711d5a3c1ed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl +, glade +, gnunet +, gnutls +, gtk3 +, libextractor +, libgcrypt +, libsodium +, libxml2 +, pkg-config +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gnunet-gtk"; + version = "0.14.0"; + + src = fetchurl { + url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; + sha256 = "18rc7mb45y17d5nrlpf2p4ixp7ir67gcgjf4hlj4r95ic5zi54wa"; + }; + + nativeBuildInputs= [ + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + glade + gnunet + gnutls + gtk3 + libextractor + libgcrypt + libsodium + libxml2 + ]; + + configureFlags = [ "--with-gnunet=${gnunet}" ]; + + patchPhase = "patchShebangs pixmaps/icon-theme-installer"; + + meta = gnunet.meta // { + description = "GNUnet GTK User Interface"; + homepage = "https://git.gnunet.org/gnunet-gtk.git"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix new file mode 100644 index 000000000000..94a4642b2de1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix @@ -0,0 +1,32 @@ +{ mkDerivation, lib, fetchurl, fetchpatch, cmake +, extra-cmake-modules, qtbase, qtscript +, karchive, kcrash, kdnssd, ki18n, kio, knotifications, knotifyconfig +, kdoctools, kross, kcmutils, kwindowsystem +, libktorrent, taglib, libgcrypt, kplotting +}: + +mkDerivation rec { + pname = "ktorrent"; + version = "${libktorrent.mainVersion}"; + + src = fetchurl { + url = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${pname}-${version}.tar.xz"; + sha256 = "0kwd0npxfg4mdh7f3xadd2zjlqalpb1jxk61505qpcgcssijf534"; + }; + + nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ]; + + buildInputs = [ + qtbase qtscript + karchive kcrash kdnssd ki18n kio knotifications knotifyconfig kross kcmutils kwindowsystem + libktorrent taglib libgcrypt kplotting + ]; + + meta = with lib; { + description = "KDE integrated BtTorrent client"; + homepage = "https://www.kde.org/applications/internet/ktorrent/"; + license = licenses.gpl2; + maintainers = with maintainers; [ eelco ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix new file mode 100644 index 000000000000..124e3492c8cd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, buildGoModule, go-bindata }: + +buildGoModule rec { + pname = "magnetico"; + version = "0.12.0"; + + src = fetchFromGitHub { + owner = "boramalper"; + repo = "magnetico"; + rev = "v${version}"; + sha256 = "1avqnfn4llmc9xmpsjfc9ivki0cfvd8sljfzd9yac94xcj581s83"; + }; + + vendorSha256 = "087kikj6sjhjxqymnj7bpxawfmwckihi6mbmi39w0bn2040aflx5"; + + nativeBuildInputs = [ go-bindata ]; + buildPhase = '' + make magneticow magneticod + ''; + + checkPhase = '' + make test + ''; + + meta = with lib; { + description = "Autonomous (self-hosted) BitTorrent DHT search engine suite"; + homepage = "https://github.com/boramalper/magnetico"; + license = licenses.agpl3; + badPlatforms = platforms.darwin; + maintainers = with maintainers; [ rnhmjoj ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix new file mode 100644 index 000000000000..41b8a7d0b6c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, ocamlPackages, zlib }: + +stdenv.mkDerivation rec { + pname = "mldonkey"; + version = "3.1.7-2"; + + src = fetchurl { + url = "https://ygrek.org/p/release/mldonkey/mldonkey-${version}.tar.bz2"; + sha256 = "b926e7aa3de4b4525af73c88f1724d576b4add56ef070f025941dd51cb24a794"; + }; + + preConfigure = '' + substituteInPlace Makefile --replace '+camlp4' \ + '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4' + ''; + + buildInputs = (with ocamlPackages; [ + ocaml + camlp4 + num + ]) ++ [ + zlib + ]; + + meta = { + description = "Client for many p2p networks, with multiple frontends"; + homepage = "http://mldonkey.sourceforge.net/"; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix new file mode 100644 index 000000000000..dd7f4a7bb60f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkg-config, glib, gnutls }: + +stdenv.mkDerivation rec { + pname = "ncdc"; + version = "1.22.1"; + + src = fetchurl { + url = "https://dev.yorhel.nl/download/ncdc-${version}.tar.gz"; + sha256 = "1bdgqd07f026qk6vpbxqsin536znd33931m3b4z44prlm9wd6pyi"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ncurses zlib bzip2 sqlite glib gnutls ]; + + meta = with lib; { + description = "Modern and lightweight direct connect client with a friendly ncurses interface"; + homepage = "https://dev.yorhel.nl/ncdc"; + license = licenses.mit; + platforms = platforms.linux; # arbitrary + maintainers = with maintainers; [ ehmry ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix new file mode 100644 index 000000000000..f08e5c42e1d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchgit, libowfat, zlib, nixosTests }: + +stdenv.mkDerivation { + name = "opentracker-2018-05-26"; + + src = fetchgit { + url = "https://erdgeist.org/gitweb/opentracker"; + rev = "6411f1567f64248b0d145493c2e61004d2822623"; + sha256 = "110nfb6n4clykwdzpk54iccsfjawq0krjfqhg114i1z0ri5dyl8j"; + }; + + buildInputs = [ libowfat zlib ]; + + makeFlags = [ + "LIBOWFAT_HEADERS=${libowfat}/include/libowfat" + "LIBOWFAT_LIBRARY=${libowfat}/lib" + ]; + + installPhase = '' + runHook preInstall + install -D opentracker $out/bin/opentracker + install -D opentracker.conf.sample $out/share/doc/opentracker.conf.sample + runHook postInstall + ''; + + passthru.tests = { + bittorrent-integration = nixosTests.bittorrent; + }; + + meta = with lib; { + homepage = "https://erdgeist.org/arts/software/opentracker/"; + license = licenses.beerware; + platforms = platforms.linux; + description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router"; + maintainers = with maintainers; [ makefu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix new file mode 100644 index 000000000000..bd4fafed1119 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix @@ -0,0 +1,57 @@ +{ mkDerivation, lib, fetchFromGitHub, makeWrapper, pkg-config +, boost, libtorrent-rasterbar, qtbase, qttools, qtsvg +, debugSupport ? false +, guiSupport ? true, dbus ? null # GUI (disable to run headless) +, webuiSupport ? true # WebUI +, trackerSearch ? true, python3 ? null +}: + +assert guiSupport -> (dbus != null); +assert trackerSearch -> (python3 != null); + +with lib; +mkDerivation rec { + pname = "qbittorrent"; + version = "4.3.5"; + + src = fetchFromGitHub { + owner = "qbittorrent"; + repo = "qBittorrent"; + rev = "release-${version}"; + sha256 = "1vdk42f8rxffyfydjk5cgzg5gl88ng2pynlyxw5ajh08wvkkjzgy"; + }; + + enableParallelBuilding = true; + + # NOTE: 2018-05-31: CMake is working but it is not officially supported + nativeBuildInputs = [ makeWrapper pkg-config ]; + + buildInputs = [ boost libtorrent-rasterbar qtbase qttools qtsvg ] + ++ optional guiSupport dbus # D(esktop)-Bus depends on GUI support + ++ optional trackerSearch python3; + + # Otherwise qm_gen.pri assumes lrelease-qt5, which does not exist. + QMAKE_LRELEASE = "lrelease"; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--with-boost=${boost.dev}" ] + ++ optionals (!guiSupport) [ "--disable-gui" "--enable-systemd" ] # Also place qbittorrent-nox systemd service files + ++ optional (!webuiSupport) "--disable-webui" + ++ optional debugSupport "--enable-debug"; + + postInstall = "wrapProgram $out/bin/${ + if guiSupport + then "qbittorrent" + else "qbittorrent-nox" + } --prefix PATH : ${makeBinPath [ python3 ]}"; + + meta = { + description = "Featureful free software BitTorrent client"; + homepage = "https://www.qbittorrent.org/"; + changelog = "https://github.com/qbittorrent/qBittorrent/blob/release-${version}/Changelog"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ Anton-Latukha ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix new file mode 100644 index 000000000000..e69155d4c2f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix @@ -0,0 +1,53 @@ +{ lib, mkDerivation, fetchFromGitHub, qmake, cmake, pkg-config, miniupnpc, bzip2 +, speex, libmicrohttpd, libxml2, libxslt, sqlcipher, rapidjson, libXScrnSaver +, qtbase, qtx11extras, qtmultimedia, libgnome-keyring3 +}: + +mkDerivation rec { + pname = "retroshare"; + version = "0.6.6"; + + src = fetchFromGitHub { + owner = "RetroShare"; + repo = "RetroShare"; + rev = "v${version}"; + sha256 = "1hsymbhsfgycj39mdkrdp2hgq8irmvxa4a6jx2gg339m1fgf2xmh"; + fetchSubmodules = true; + }; + + patches = [ + # The build normally tries to get git sub-modules during build + # but we already have them checked out + ./no-submodules.patch + ]; + + nativeBuildInputs = [ pkg-config qmake cmake ]; + buildInputs = [ + speex miniupnpc qtmultimedia qtx11extras qtbase libgnome-keyring3 + bzip2 libXScrnSaver libxml2 libxslt sqlcipher libmicrohttpd rapidjson + ]; + + qmakeFlags = [ + # Upnp library autodetection doesn't work + "RS_UPNP_LIB=miniupnpc" + + # These values are normally found from the .git folder + "RS_MAJOR_VERSION=${lib.versions.major version}" + "RS_MINOR_VERSION=${lib.versions.minor version}" + "RS_MINI_VERSION=${lib.versions.patch version}" + "RS_EXTRA_VERSION=" + ]; + + postInstall = '' + # BT DHT bootstrap + cp libbitdht/src/bitdht/bdboot.txt $out/share/retroshare + ''; + + meta = with lib; { + description = "Decentralized peer to peer chat application."; + homepage = "http://retroshare.sourceforge.net/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ StijnDW ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch b/nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch new file mode 100644 index 000000000000..d47268003090 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/retroshare/no-submodules.patch @@ -0,0 +1,62 @@ +diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro +index 84d18944e..71aeb67d2 100644 +--- a/libretroshare/src/libretroshare.pro ++++ b/libretroshare/src/libretroshare.pro +@@ -870,20 +870,14 @@ rs_jsonapi { + genrestbedlib.variable_out = PRE_TARGETDEPS + win32-g++:isEmpty(QMAKE_SH) { + genrestbedlib.commands = \ +- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/restbed || cd . $$escape_expand(\\n\\t) \ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/asio || cd . $$escape_expand(\\n\\t) \ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/catch || cd . $$escape_expand(\\n\\t )\ +- cd /D $$shell_path($${RESTBED_SRC_PATH}) && git submodule update --init dependency/kashmir || cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RS_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t )\ ++ cd /D $$shell_path($${RESTBED_SRC_PATH}) && cd . $$escape_expand(\\n\\t) \ + $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t) + } else { + genrestbedlib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/restbed ; \ +- cd $${RESTBED_SRC_PATH} ; \ +- git submodule update --init dependency/asio ; \ +- git submodule update --init dependency/catch ; \ +- git submodule update --init dependency/kashmir ; \ +- true ) && \ ++ cd $${RS_SRC_PATH} && \ + mkdir -p $${RESTBED_BUILD_PATH} && + } + genrestbedlib.commands += \ +@@ -991,14 +985,9 @@ rs_broadcast_discovery { + udpdiscoverycpplib.variable_out = PRE_TARGETDEPS + win32-g++:isEmpty(QMAKE_SH) { + udpdiscoverycpplib.commands = \ +- cd /D $$shell_path($${RS_SRC_PATH}) && git submodule update --init supportlibs/udp-discovery-cpp || cd . $$escape_expand(\\n\\t) \ + $(CHK_DIR_EXISTS) $$shell_path($$UDP_DISCOVERY_BUILD_PATH) $(MKDIR) $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) $$escape_expand(\\n\\t) + } else { +- udpdiscoverycpplib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/udp-discovery-cpp || \ +- true ) && \ +- mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && ++ udpdiscoverycpplib.commands = mkdir -p $${UDP_DISCOVERY_BUILD_PATH} && + } + udpdiscoverycpplib.commands += \ + cd $$shell_path($${UDP_DISCOVERY_BUILD_PATH}) && \ +diff --git a/retroshare-gui/src/retroshare-gui.pro b/retroshare-gui/src/retroshare-gui.pro +index 654efd170..06cba9ba3 100644 +--- a/retroshare-gui/src/retroshare-gui.pro ++++ b/retroshare-gui/src/retroshare-gui.pro +@@ -66,10 +66,7 @@ rs_gui_cmark { + gencmarklib.CONFIG += target_predeps combine + gencmarklib.variable_out = PRE_TARGETDEPS + gencmarklib.commands = \ +- cd $${RS_SRC_PATH} && ( \ +- git submodule update --init supportlibs/cmark ; \ +- cd $${CMARK_SRC_PATH} ; \ +- true ) && \ ++ cd $${RS_SRC_PATH} && \ + mkdir -p $${CMARK_BUILD_PATH} && cd $${CMARK_BUILD_PATH} && \ + cmake \ + -DCMAKE_CXX_COMPILER=$$QMAKE_CXX \ diff --git a/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix new file mode 100644 index 000000000000..0d2fc0fd833c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, fetchzip, mkDerivation +, appimageTools +, autoPatchelfHook +, desktop-file-utils +, imagemagick +, qtmultimedia +}: + +mkDerivation rec { + pname = "soulseekqt"; + version = "2018-1-30"; + name="${pname}-${version}"; + + src = fetchzip { + url = "https://www.slsknet.org/SoulseekQt/Linux/SoulseekQt-${version}-64bit-appimage.tgz"; + sha256 = "16ncnvv8h33f161mgy7qc0wjvvqahsbwvby65qhgfh9pbbgb4xgg"; + }; + + appextracted = appimageTools.extractType2 { + inherit name; + src="${src}/SoulseekQt-2018-1-30-64bit.AppImage"; + }; + + dontBuild = true; + dontConfigure = true; + + nativeBuildInputs = [ imagemagick autoPatchelfHook desktop-file-utils ]; + buildInputs = [ qtmultimedia stdenv.cc.cc ]; + + installPhase = '' + # directory in /nix/store so readonly + cd $appextracted + + binary="$(readlink AppRun)" + install -Dm755 $binary -t $out/bin + + # fixup and install desktop file + desktop-file-install --dir $out/share/applications \ + --set-key Exec --set-value $binary \ + --set-key Comment --set-value "${meta.description}" \ + --set-key Categories --set-value Network default.desktop + mv $out/share/applications/default.desktop $out/share/applications/SoulseekQt.desktop + + #TODO: write generic code to read icon path from $binary.desktop + icon="$(readlink .DirIcon)" + for size in 16 32 48 64 72 96 128 192 256 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" $icon $out/share/icons/hicolor/"$size"x"$size"/apps/$icon + done + ''; + + meta = with lib; { + description = "Official Qt SoulSeek client"; + homepage = "https://www.slsknet.org"; + license = licenses.unfree; + maintainers = [ ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix new file mode 100644 index 000000000000..6c09043a65b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix @@ -0,0 +1,68 @@ +{ lib, stdenv +, fetchFromGitHub +, python3Packages +}: + +python3Packages.buildPythonApplication rec { + pname = "stig"; + # This project has a different concept for pre release / alpha, + # Read the project's README for details: https://github.com/rndusr/stig#stig + version = "0.11.2a0"; + + src = fetchFromGitHub { + owner = "rndusr"; + repo = "stig"; + rev = "v${version}"; + sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8"; + }; + + # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged + # in nixpkgs) is not uploaded to pypi and 1.0.1 has a problematic `setup.py`. + # As long as we don't have any problems installing it, no special features / specific bugs + # were fixed in 1.0.3 that aren't available in 1.0.2 are used by stig. + # See https://github.com/rndusr/stig/issues/120 + postPatch = '' + substituteInPlace setup.py \ + --replace "urwidtrees>=1.0.3dev0" "urwidtrees" + ''; + + propagatedBuildInputs = with python3Packages; [ + urwid + urwidtrees + aiohttp + async-timeout + pyxdg + blinker + natsort + setproctitle + ]; + + checkInputs = with python3Packages; [ + asynctest + pytestCheckHook + ]; + + dontUseSetuptoolsCheck = true; + + preCheck = '' + export LC_ALL=C + ''; + + pytestFlagsArray = [ + "tests" + # test_string__month_day_hour_minute_second fails on darwin + "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second" + # TestScrollBarWithScrollable.test_wrapping_bug fails + "--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug" + ] ++ lib.optionals stdenv.isDarwin [ + "--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py" + "--deselect=tests/client_test/aiotransmission_test/rpc_test.py" + ]; + + meta = with lib; { + description = "TUI and CLI for the BitTorrent client Transmission"; + homepage = "https://github.com/rndusr/stig"; + license = licenses.gpl3; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix new file mode 100644 index 000000000000..c7104d9011d8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, CoreServices, Security }: + +rustPlatform.buildRustPackage rec { + pname = "synapse-bt"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "Luminarys"; + repo = "synapse"; + rev = version; + sha256 = "01npv3zwia5d534zdwisd9xfng507adv4qkljf8z0zm0khqqn71a"; + }; + + cargoSha256 = "0sy0vlpkj967g9lyyh7ska8cpw5xh0g04kj071a32idrqc3dcjb1"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ] + ++ lib.optionals stdenv.isDarwin [ CoreServices Security ]; + + cargoBuildFlags = [ "--all" ]; + + meta = with lib; { + description = "Flexible and fast BitTorrent daemon"; + homepage = "https://synapse-bt.org/"; + license = licenses.isc; + maintainers = with maintainers; [ dywedir ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix new file mode 100644 index 000000000000..d80165c44056 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl, glib, zlib, dbus, dbus-glib, gtk2, gdk-pixbuf, cairo, pango }: + +stdenv.mkDerivation rec { + pname = "tixati"; + version = "2.81"; + + src = fetchurl { + url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz"; + sha256 = "sha256-qwKxlmE59V+rXtuYWBMwD1O7OO4gb36lN8syFyQ6uLc="; + }; + + installPhase = '' + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${lib.makeLibraryPath [ glib zlib dbus dbus-glib gtk2 gdk-pixbuf cairo pango ]} \ + tixati + install -D tixati $out/bin/tixati + install -D tixati.desktop $out/share/applications/tixati.desktop + install -D tixati.png $out/share/icons/tixati.png + ''; + + dontStrip = true; + + meta = with lib; { + description = "Torrent client"; + homepage = "http://www.tixati.com"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ volth ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix b/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix new file mode 100644 index 000000000000..cbeb6afa4088 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, cmake +, pkg-config +, vala_0_40 +, pantheon +, curl +, glib +, gtk3 +, libb64 +, libevent +, libgee +, libnatpmp +, libunity +, miniupnpc +, openssl +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "torrential"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "davidmhewitt"; + repo = "torrential"; + rev = version; + fetchSubmodules = true; + sha256 = "17aby0c17ybyzyzyc1cg1j6q1a186801fy84avlaxahqp7vdammx"; + }; + + nativeBuildInputs = [ + cmake + vala_0_40 # https://github.com/davidmhewitt/torrential/issues/135 + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + curl + glib + gtk3 + libb64 + libevent + libgee + libnatpmp + libunity + miniupnpc + openssl + pantheon.granite + ]; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Download torrents in style with this speedy, minimalist torrent client for elementary OS"; + homepage = "https://github.com/davidmhewitt/torrential"; + maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix new file mode 100644 index 000000000000..0a2f90ecb711 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix @@ -0,0 +1,77 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, makeDesktopItem, unzip, fpc, lazarus, +libX11, glib, gtk2, gdk-pixbuf, pango, atk, cairo, openssl }: + +stdenv.mkDerivation rec { + pname = "transgui"; + version = "5.18.0"; + + src = fetchFromGitHub { + owner = "transmission-remote-gui"; + repo = "transgui"; + rev = "v${version}"; + sha256 = "1dyx778756zhvz5sxgdvy49p2c0x44w4nmcfd90wqrmgfknncnf5"; + }; + + nativeBuildInputs = [ pkg-config unzip ]; + buildInputs = [ + fpc lazarus stdenv.cc + libX11 glib gtk2 gdk-pixbuf pango atk cairo openssl + ]; + + NIX_LDFLAGS = " + -L${stdenv.cc.cc.lib}/lib + -lX11 -lglib-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 + -lgdk_pixbuf-2.0 -lpango-1.0 -latk-1.0 -lcairo -lc -lcrypto + "; + + prePatch = '' + substituteInPlace restranslator.pas --replace /usr/ $out/ + ''; + + preBuild = '' + FPCDIR=${fpc}/lib/fpc/${fpc.version} fpcmake -w + lazbuild -B transgui.lpr --lazarusdir=${lazarus}/share/lazarus + ''; + + makeFlags = [ + "FPC=fpc" + "PP=fpc" + "INSTALL_PREFIX=$(out)" + ]; + + LCL_PLATFORM = "gtk2"; + + desktopItem = makeDesktopItem rec { + name = "transgui"; + exec = name + " %U"; + icon = name; + type = "Application"; + comment = meta.description; + desktopName = "Transmission Remote GUI"; + genericName = "BitTorrent Client"; + categories = lib.concatStringsSep ";" [ + "Application" "Network" "FileTransfer" "P2P" "GTK" + ]; + startupNotify = "true"; + mimeType = lib.concatStringsSep ";" [ + "application/x-bittorrent" "x-scheme-handler/magnet" + ]; + }; + + postInstall = '' + mkdir -p "$out/share/applications" + cp $desktopItem/share/applications/* $out/share/applications + mkdir -p "$out/share/icons/hicolor/48x48/apps" + cp transgui.png "$out/share/icons/hicolor/48x48/apps" + mkdir -p "$out/share/transgui" + cp -r "./lang" "$out/share/transgui" + ''; + + meta = { + description = "A cross platform front-end for the Transmission Bit-Torrent client"; + homepage = "https://sourceforge.net/p/transgui"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ ramkromberg ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix new file mode 100644 index 000000000000..c89e53977067 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkg-config +, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib, fetchpatch }: + + +stdenv.mkDerivation rec { + pname = "transmission-remote-gtk"; + version = "1.4.1"; + + src = fetchFromGitHub { + owner = "transmission-remote-gtk"; + repo = "transmission-remote-gtk"; + rev = version; + sha256 = "1pipc1f94jdppv597mqmcj2kw2rdvaqcbl512v7z8vir76p1a7gk"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/transmission-remote-gtk/transmission-remote-gtk/commit/0f5cc8a9942e220ea0f7d0b17db4a78d094e3b65.patch"; + sha256 = "195rsjpbc0gzmr9bycvq4mra7abp3hd9by3a5vvcmxsh5ipikycf"; + }) + ]; + + preConfigure = "./autogen.sh"; + + nativeBuildInputs= [ + autoconf automake libtool wrapGAppsHook + pkg-config intltool autoconf-archive + appstream-glib + ]; + + buildInputs = [ gtk3 json-glib curl glib ]; + + doCheck = false; # fails with style validation error + + meta = with lib; { + description = "GTK remote control for the Transmission BitTorrent client"; + homepage = "https://github.com/ajf8/transmission-remote-gtk"; + license = licenses.gpl2; + maintainers = [ maintainers.ehmry ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix new file mode 100644 index 000000000000..1efa9ec76da7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix @@ -0,0 +1,131 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, pkg-config +, openssl +, curl +, libevent +, inotify-tools +, systemd +, zlib +, pcre + # Build options +, enableGTK3 ? false +, gtk3 +, xorg +, wrapGAppsHook +, enableQt ? false +, qt5 +, nixosTests +, enableSystemd ? stdenv.isLinux +, enableDaemon ? true +, enableCli ? true +, installLib ? false +, apparmorRulesFromClosure +}: + +let + version = "3.00"; + +in stdenv.mkDerivation { + pname = "transmission"; + inherit version; + + src = fetchFromGitHub { + owner = "transmission"; + repo = "transmission"; + rev = version; + sha256 = "0ccg0km54f700x9p0jsnncnwvfnxfnxf7kcm7pcx1cj0vw78924z"; + fetchSubmodules = true; + }; + + outputs = [ "out" "apparmor" ]; + + cmakeFlags = + let + mkFlag = opt: if opt then "ON" else "OFF"; + in + [ + "-DENABLE_MAC=OFF" # requires xcodebuild + "-DENABLE_GTK=${mkFlag enableGTK3}" + "-DENABLE_QT=${mkFlag enableQt}" + "-DENABLE_DAEMON=${mkFlag enableDaemon}" + "-DENABLE_CLI=${mkFlag enableCli}" + "-DINSTALL_LIB=${mkFlag installLib}" + ]; + + nativeBuildInputs = [ + pkg-config + cmake + ] + ++ lib.optionals enableGTK3 [ wrapGAppsHook ] + ++ lib.optionals enableQt [ qt5.wrapQtAppsHook ] + ; + + buildInputs = [ + openssl + curl + libevent + zlib + pcre + ] + ++ lib.optionals enableQt [ qt5.qttools qt5.qtbase ] + ++ lib.optionals enableGTK3 [ gtk3 xorg.libpthreadstubs ] + ++ lib.optionals enableSystemd [ systemd ] + ++ lib.optionals stdenv.isLinux [ inotify-tools ] + ; + + NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation"; + + postInstall = '' + mkdir $apparmor + cat >$apparmor/bin.transmission-daemon <<EOF + include <tunables/global> + $out/bin/transmission-daemon { + include <abstractions/base> + include <abstractions/nameservice> + include <abstractions/ssl_certs> + include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([ + curl libevent openssl pcre zlib + ] ++ lib.optionals enableSystemd [ systemd ] + ++ lib.optionals stdenv.isLinux [ inotify-tools ] + )}" + r @{PROC}/sys/kernel/random/uuid, + r @{PROC}/sys/vm/overcommit_memory, + r @{PROC}/@{pid}/environ, + r @{PROC}/@{pid}/mounts, + rwk /tmp/tr_session_id_*, + r /run/systemd/resolve/stub-resolv.conf, + + r $out/share/transmission/web/**, + + include <local/bin.transmission-daemon> + } + EOF + ''; + + passthru.tests = { + smoke-test = nixosTests.bittorrent; + }; + + meta = { + description = "A fast, easy and free BitTorrent client"; + longDescription = '' + Transmission is a BitTorrent client which features a simple interface + on top of a cross-platform back-end. + Feature spotlight: + * Uses fewer resources than other clients + * Native Mac, GTK and Qt GUI clients + * Daemon ideal for servers, embedded systems, and headless use + * All these can be remote controlled by Web and Terminal clients + * Bluetack (PeerGuardian) blocklists with automatic updates + * Full encryption, DHT, and PEX support + ''; + homepage = "http://www.transmissionbt.com/"; + license = lib.licenses.gpl2; # parts are under MIT + maintainers = with lib.maintainers; [ astsmtl vcunat wizeman ]; + platforms = lib.platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix new file mode 100644 index 000000000000..dfbe66ac8562 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchFromGitHub, python3Packages +, x11Support ? !stdenv.isDarwin +, xclip ? null +, pbcopy ? null +, useGeoIP ? false # Require /var/lib/geoip-databases/GeoIP.dat +}: +let + wrapperPath = with lib; makeBinPath ( + optional x11Support xclip ++ + optional stdenv.isDarwin pbcopy + ); +in +python3Packages.buildPythonApplication rec { + pname = "tremc"; + version = "0.9.2"; + + src = fetchFromGitHub { + owner = "tremc"; + repo = pname; + rev = version; + sha256 = "1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5"; + }; + + buildInputs = with python3Packages; [ + python + wrapPython + ]; + + pythonPath = with python3Packages; [ + ipy + pyperclip + ] ++ + lib.optional useGeoIP GeoIP; + + phases = [ "unpackPhase" "installPhase" ]; + + makeWrapperArgs = ["--prefix PATH : ${wrapperPath}"]; + + installPhase = '' + make DESTDIR=$out install + wrapPythonPrograms + ''; + + meta = with lib; { + description = "Curses interface for transmission"; + homepage = "https://github.com/tremc/tremc"; + license = licenses.gpl3Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix new file mode 100644 index 000000000000..3aa5b4a8da82 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix @@ -0,0 +1,90 @@ +{ stdenv, fetchurl, python3Packages, makeWrapper +, enablePlayer ? true, libvlc, qt5, lib }: + +stdenv.mkDerivation rec { + pname = "tribler"; + version = "7.4.4"; + + src = fetchurl { + url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz"; + sha256 = "0hxiyf1k07ngym2p8r1b5mcx1y2crkyz43gi9sgvsvsyijyaff3p"; + }; + + nativeBuildInputs = [ + python3Packages.wrapPython + makeWrapper + ]; + + buildInputs = [ + python3Packages.python + ]; + + pythonPath = with python3Packages; [ + libtorrent-rasterbar + twisted + netifaces + pycrypto + pyasn1 + requests + m2crypto + pyqt5 + chardet + cherrypy + cryptography + libnacl + configobj + decorator + feedparser + service-identity + psutil + pillow + networkx + pony + lz4 + pyqtgraph + + # there is a BTC feature, but it requires some unclear version of + # bitcoinlib, so this doesn't work right now. + # bitcoinlib + ]; + + postPatch = '' + ${lib.optionalString enablePlayer '' + substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')" + substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" \ + --replace "if vlc and vlc.plugin_path" "if vlc" \ + --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'" + ''} + ''; + + installPhase = '' + mkdir -pv $out + # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH. + wrapPythonPrograms + cp -prvd ./* $out/ + makeWrapper ${python3Packages.python}/bin/python $out/bin/tribler \ + --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \ + --set _TRIBLERPATH $out \ + --set PYTHONPATH $out:$program_PYTHONPATH \ + --set NO_AT_BRIDGE 1 \ + --run 'cd $_TRIBLERPATH' \ + --add-flags "-O $out/run_tribler.py" \ + ${lib.optionalString enablePlayer '' + --prefix LD_LIBRARY_PATH : ${libvlc}/lib + ''} + + mkdir -p $out/share/applications $out/share/icons $out/share/man/man1 + cp $out/Tribler/Main/Build/Ubuntu/tribler.desktop $out/share/applications/tribler.desktop + cp $out/Tribler/Main/Build/Ubuntu/tribler_big.xpm $out/share/icons/tribler.xpm + cp $out/Tribler/Main/Build/Ubuntu/tribler.1 $out/share/man/man1/tribler.1 + ''; + + meta = with lib; { + maintainers = with maintainers; [ xvapx ]; + homepage = "https://www.tribler.org/"; + description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol"; + license = licenses.lgpl21; + platforms = platforms.linux; + broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053 + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix new file mode 100644 index 000000000000..1d05cafef832 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, autoconf, automake, libtool, pkg-config, python2 +, boost, db, openssl, geoip, libiconv, miniupnpc +, srcOnly, fetchgit +}: + +let + twisterHTML = srcOnly { + name = "twister-html"; + src = fetchgit { + url = "git://github.com/miguelfreitas/twister-html.git"; + rev = "01e7f7ca9b7e42ed90f91bc42da2c909ca5c0b9b"; + sha256 = "0scjbin6s1kmi0bqq0dx0qyjw4n5xgmj567n0156i39f9h0dabqy"; + }; + }; + + boostPython = boost.override { enablePython = true; }; + +in stdenv.mkDerivation rec { + pname = "twister"; + version = "2019-08-19"; + + src = fetchFromGitHub { + owner = "miguelfreitas"; + repo = "twister-core"; + rev = "31faf3f63e461ea0a9b23081567a4a552cf06873"; + sha256 = "0xh1lgnl9nd86jr0mp7m8bkd7r5j4d6chd0y73h2xv4aq5sld0sp"; + }; + + configureFlags = [ + "--with-libgeoip" + "--with-libiconv" + "--disable-deprecated-functions" + "--enable-tests" + "--enable-python-binding" + "--with-boost-libdir=${boostPython.out}/lib" + ]; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + autoconf automake libtool python2 + boostPython db openssl geoip miniupnpc libiconv + ]; + + postPatch = '' + sed -i -e '/-htmldir/s|(default: [^)]*)|(default: ${twisterHTML})|' \ + src/init.cpp + sed -i -e '/GetDataDir.*html/s|path *= *[^;]*|path = "${twisterHTML}"|' \ + src/util.cpp + ''; + + preConfigure = '' + sh autotool.sh + ''; + + installPhase = '' + install -vD twisterd "$out/bin/twisterd" + ''; + + enableParallelBuilding = true; + + meta = { + homepage = "http://www.twister.net.co/"; + description = "Peer-to-peer microblogging"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix new file mode 100644 index 000000000000..fe8743ee1cd1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "vuze"; + version = "5750"; + + src = fetchsvn { + url = "http://svn.vuze.com/public/client/tags/RELEASE_${version}"; + sha256 = "07w6ipyiy8hi88d6yxbbf3vkv26mj7dcz9yr8141hb2ig03v0h0p"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk ant ]; + + buildPhase = "ant"; + + installPhase = '' + install -D dist/Vuze_0000-00.jar $out/share/java/Vuze_${version}-00.jar + makeWrapper ${jre}/bin/java $out/bin/vuze \ + --add-flags "-Xmx256m -Djava.library.path=${swt}/lib -cp $out/share/java/Vuze_${version}-00.jar:${swt}/jars/swt.jar org.gudy.azureus2.ui.swt.Main" + ''; + + meta = with lib; { + description = "Torrent client"; + homepage = "http://www.vuze.com"; + license = licenses.unfree; + platforms = platforms.all; + maintainers = with maintainers; [ volth ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/xd/default.nix b/nixpkgs/pkgs/applications/networking/p2p/xd/default.nix new file mode 100644 index 000000000000..54581a6070ba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/xd/default.nix @@ -0,0 +1,29 @@ +{ pkgs, buildGoModule, fetchFromGitHub, lib, perl }: + +buildGoModule rec { + pname = "XD"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "majestrate"; + repo = "XD"; + rev = "v${version}"; + sha256 = "sha256-fXENoqhR04TYS/kAJUqsqa0+j+KyzdsMlXIZ2GMPMhc="; + }; + + vendorSha256 = "1wg3cym2rwrhjsqlgd38l8mdq5alccz808465117n3vyga9m35lq"; + + checkInputs = [ perl ]; + + postInstall = '' + ln -s $out/bin/XD $out/bin/XD-CLI + ''; + + meta = with lib; { + description = "i2p bittorrent client"; + homepage = "https://xd-torrent.github.io"; + maintainers = with maintainers; [ nixbitcoin ]; + license = licenses.mit; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix new file mode 100644 index 000000000000..19da740938c7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix @@ -0,0 +1,41 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "zeronet"; + version = "0.7.1"; + format = "other"; + + src = fetchFromGitHub { + owner = "HelloZeroNet"; + repo = "ZeroNet"; + rev = "v${version}"; + sha256 = "04prgicm0yjh2klcxdgwx1mvlsxxi2bdkzfcvysvixbgq20wjvdk"; + }; + + propagatedBuildInputs = with python3Packages; [ + gevent msgpack base58 merkletools rsa pysocks pyasn1 websocket-client + gevent-websocket rencode bitcoinlib maxminddb pyopenssl + ]; + + buildPhase = '' + ${python3Packages.python.interpreter} -O -m compileall . + ''; + + installPhase = '' + mkdir -p $out/share + cp -r plugins src tools *.py $out/share/ + ''; + + postFixup = '' + makeWrapper "$out/share/zeronet.py" "$out/bin/zeronet" \ + --set PYTHONPATH "$PYTHONPATH" \ + --set PATH ${python3Packages.python}/bin + ''; + + meta = with lib; { + description = "Decentralized websites using Bitcoin crypto and BitTorrent network"; + homepage = "https://zeronet.io/"; + license = licenses.gpl2; + maintainers = with maintainers; [ fgaz ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/nixpkgs/pkgs/applications/networking/pcloud/default.nix new file mode 100644 index 000000000000..e1936bf06a7f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pcloud/default.nix @@ -0,0 +1,112 @@ +# Even though pCloud Drive is redistributed as a plug-n-play AppImage, it +# requires a little bit more love because of the way Nix launches those types +# of applications. +# +# What Nix does, simplifying a bit, is that it extracts an AppImage and starts +# it via buildFHSUserEnv - this is totally fine for majority of apps, but makes +# it by-design *impossible* to launch SUID wrappers [^1]; in case of pCloud, +# it's fusermount. +# (so pCloud starts, but silently fails to mount the FUSE drive.) +# +# To overcome this issue, we're manually extracting the AppImage and then treat +# it as if it was a regular, good-ol' application requiring some standard path +# fixes. +# +# ^1 https://github.com/NixOS/nixpkgs/issues/69338 + +{ + # Build dependencies + appimageTools, autoPatchelfHook, fetchzip, lib, stdenv, + + # Runtime dependencies; + # A few additional ones (e.g. Node) are already shipped together with the + # AppImage, so we don't have to duplicate them here. + alsa-lib, dbus-glib, fuse, gnome, gtk3, libdbusmenu-gtk2, libXdamage, nss, udev +}: + +let + pname = "pcloud"; + version = "1.9.3"; + code = "XZh0QTXZIYkI66plpzLAJ4G2mwDvJFvKvEzy"; + name = "${pname}-${version}"; + + # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive + src = fetchzip { + url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${name}.zip"; + hash = "sha256-NFbSYZRysRIg6q0aaDocpK7xJbiCWc1S0McXKlCRGjU="; + }; + + appimageContents = appimageTools.extractType2 { + inherit name; + src = "${src}/pcloud"; + }; + +in stdenv.mkDerivation { + inherit pname version; + + src = appimageContents; + + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ + autoPatchelfHook + ]; + + buildInputs = [ + alsa-lib + dbus-glib + fuse + gtk3 + libdbusmenu-gtk2 + libXdamage + nss + udev + ]; + + installPhase = '' + mkdir "$out" + cp -ar . "$out/app" + cd "$out" + + # Remove the AppImage runner, since users are not supposed to use it; the + # actual entry point is the `pcloud` binary + rm app/AppRun + + # Adjust directory structure, so that the `.desktop` etc. files are + # properly detected + mkdir bin + mv app/usr/share . + mv app/usr/lib . + + # Adjust the `.desktop` file + mkdir share/applications + + substitute \ + app/pcloud.desktop \ + share/applications/pcloud.desktop \ + --replace 'Name=pcloud' 'Name=pCloud' \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + # Build the main executable + cat > bin/pcloud <<EOF + #! $SHELL -e + + # This is required for the file picker dialog - otherwise pcloud just + # crashes + export XDG_DATA_DIRS="${gnome.gsettings-desktop-schemas}/share/gsettings-schemas/${gnome.gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS" + + exec "$out/app/pcloud" + EOF + + chmod +x bin/pcloud + ''; + + meta = with lib; { + description = "Secure and simple to use cloud storage for your files; pCloud Drive, Electron Edition"; + homepage = "https://www.pcloud.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ patryk27 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ping/default.nix b/nixpkgs/pkgs/applications/networking/ping/default.nix new file mode 100644 index 000000000000..40240565973d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ping/default.nix @@ -0,0 +1,68 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, meson +, ninja +, vala +, pkg-config +, pantheon +, python3 +, glib +, gtk3 +, gtksourceview +, json-glib +, libsoup +, libgee +, wrapGAppsHook +, vala_0_40 +}: + +stdenv.mkDerivation rec { + pname = "ping"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "jeremyvaartjes"; + repo = "ping"; + rev = version; + sha256 = "1h9cdy2jxa2ffykjg89j21hazls32z9yyv3g0x07x3vizzl5xcij"; + }; + + nativeBuildInputs = [ + meson + ninja + vala_0_40 + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + gtksourceview + json-glib + libgee + libsoup + pantheon.granite + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "A helpful tool that lets you debug what part of your API is causing you issues"; + homepage = "https://github.com/jeremyvaartjes/ping"; + maintainers = with maintainers; [ xiorcale ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix new file mode 100644 index 000000000000..84e52128b667 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, fetchFromGitHub, openssl, libsamplerate, alsa-lib, AppKit }: + +stdenv.mkDerivation rec { + pname = "pjsip"; + version = "2.10"; + + src = fetchFromGitHub { + owner = pname; + repo = "pjproject"; + rev = version; + sha256 = "1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"; + }; + + patches = [ + ./fix-aarch64.patch + ]; + + buildInputs = [ openssl libsamplerate ] + ++ lib.optional stdenv.isLinux alsa-lib + ++ lib.optional stdenv.isDarwin AppKit; + + preConfigure = '' + export LD=$CC + '' # Fixed on master, remove with 2.11 + + lib.optionalString stdenv.isDarwin '' + NIX_CFLAGS_COMPILE+=" -framework Security" + ''; + + postInstall = '' + mkdir -p $out/bin + cp pjsip-apps/bin/pjsua-* $out/bin/pjsua + mkdir -p $out/share/${pname}-${version}/samples + cp pjsip-apps/bin/samples/*/* $out/share/${pname}-${version}/samples + ''; + + # We need the libgcc_s.so.1 loadable (for pthread_cancel to work) + dontPatchELF = true; + + meta = with lib; { + description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE"; + homepage = "https://pjsip.org/"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ olynch ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch b/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch new file mode 100644 index 000000000000..f4aabf7a9bb4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/pjsip/fix-aarch64.patch @@ -0,0 +1,13 @@ +--- a/aconfigure ++++ b/aconfigure +@@ -8945,6 +8945,10 @@ + ac_webrtc_instset=neon + ac_webrtc_cflags="-DWEBRTC_ARCH_ARMV7 -mfloat-abi=hard -mfpu=neon" + ;; ++ arm64*|aarch64*) ++ ac_webrtc_instset=neon ++ ac_webrtc_cflags="-DWEBRTC_ARCH_ARM64" ++ ;; + *) + ac_webrtc_instset=sse2 + ;; diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix new file mode 100644 index 000000000000..9dba30e3d884 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix @@ -0,0 +1,123 @@ +{ lib, stdenv, fetchFromGitHub, mkYarnPackage, writeText, python3 }: + +let + version = "0.2.3"; + src = fetchFromGitHub { + owner = "ngoduykhanh"; + repo = "PowerDNS-Admin"; + rev = "v${version}"; + sha256 = "16faz57d77mxkflkvwyi8gb9wvnq2vhw79b84v1fmqvxri1yaphw"; + }; + + python = python3.override { + packageOverrides = self: super: { + dnspython = super.dnspython.overridePythonAttrs (oldAttrs: rec { + version = "1.16.0"; + src = oldAttrs.src.override { + inherit version; + sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01"; + }; + }); + }; + }; + + pythonDeps = with python.pkgs; [ + flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-sslify + mysqlclient sqlalchemy + configobj bcrypt requests ldap pyotp qrcode dnspython + gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core + lima pytimeparse pyyaml + ]; + + assets = mkYarnPackage { + inherit src version; + packageJSON = ./package.json; + yarnNix = ./yarndeps.nix; + + nativeBuildInputs = pythonDeps; + patchPhase = '' + sed -i -r -e "s|'cssmin',\s?'cssrewrite'|'cssmin'|g" powerdnsadmin/assets.py + ''; + buildPhase = '' + # The build process expects the directory to be writable + # with node_modules at a specific path + # https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/.yarnrc + + approot=deps/powerdns-admin-assets + + ln -s $node_modules $approot/powerdnsadmin/static/node_modules + FLASK_APP=$approot/powerdnsadmin/__init__.py flask assets build + ''; + installPhase = '' + # https://github.com/ngoduykhanh/PowerDNS-Admin/blob/54b257768f600c5548a1c7e50eac49c40df49f92/docker/Dockerfile#L43 + mkdir $out + cp -r $approot/powerdnsadmin/static/{generated,assets,img} $out + find $node_modules/icheck/skins/square -name '*.png' -exec cp {} $out/generated \; + + mkdir $out/fonts + cp $node_modules/ionicons/dist/fonts/* $out/fonts + cp $node_modules/bootstrap/dist/fonts/* $out/fonts + cp $node_modules/font-awesome/fonts/* $out/fonts + ''; + distPhase = "true"; + }; + + assetsPy = writeText "assets.py" '' + from flask_assets import Environment + assets = Environment() + assets.register('js_login', 'generated/login.js') + assets.register('js_validation', 'generated/validation.js') + assets.register('css_login', 'generated/login.css') + assets.register('js_main', 'generated/main.js') + assets.register('css_main', 'generated/main.css') + ''; +in stdenv.mkDerivation rec { + pname = "powerdns-admin"; + + inherit src version; + + nativeBuildInputs = [ python.pkgs.wrapPython ]; + + pythonPath = pythonDeps; + + gunicornScript = '' + #!/bin/sh + if [ ! -z $CONFIG ]; then + exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app(config='$CONFIG')" "$@" + fi + + exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app()" "$@" + ''; + + postPatch = '' + rm -r powerdnsadmin/static powerdnsadmin/assets.py + ''; + + installPhase = '' + runHook preInstall + + # Nasty hack: call wrapPythonPrograms to set program_PYTHONPATH (see tribler) + wrapPythonPrograms + + mkdir -p $out/share $out/bin + cp -r powerdnsadmin $out/share/powerdnsadmin + + ln -s ${assets} $out/share/powerdnsadmin/static + ln -s ${assetsPy} $out/share/powerdnsadmin/assets.py + + echo "$gunicornScript" > $out/bin/powerdns-admin + chmod +x $out/bin/powerdns-admin + wrapProgram $out/bin/powerdns-admin \ + --set PATH ${python.pkgs.python}/bin \ + --set PYTHONPATH $out/share:$program_PYTHONPATH + + runHook postInstall + ''; + + meta = with lib; { + description = "A PowerDNS web interface with advanced features"; + homepage = "https://github.com/ngoduykhanh/PowerDNS-Admin"; + license = licenses.mit; + maintainers = with maintainers; [ zhaofengli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json b/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json new file mode 100644 index 000000000000..cb21306308cf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/package.json @@ -0,0 +1,16 @@ +{ + "dependencies": { + "admin-lte": "2.4.9", + "bootstrap": "^3.4.1", + "bootstrap-validator": "^0.11.9", + "datatables.net-plugins": "^1.10.19", + "icheck": "^1.0.2", + "jquery-slimscroll": "^1.3.8", + "jquery-ui-dist": "^1.12.1", + "jquery.quicksearch": "^2.4.0", + "jtimeout": "^3.1.0", + "multiselect": "^0.9.12" + }, + "name": "powerdns-admin-assets", + "version": "0.2.3" +} diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh b/nixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh new file mode 100755 index 000000000000..86dcb8cbf659 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/update-asset-deps.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=../../../.. -i bash -p wget yarn2nix-moretea.yarn2nix jq + +# This script is based upon: +# pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh + +set -euo pipefail + +if [[ $# -ne 1 || $1 == -* ]]; then + echo "Regenerates the Yarn dependency lock files for the powerdns-admin package." + echo "Usage: $0 <git release version>" + exit 1 +fi + +WEB_SRC="https://raw.githubusercontent.com/ngoduykhanh/PowerDNS-Admin/v$1" + +wget "$WEB_SRC/package.json" -O - | jq ".name = \"powerdns-admin-assets\" | .version = \"$1\"" > package.json +wget "$WEB_SRC/yarn.lock" -O yarn.lock +yarn2nix --lockfile=yarn.lock > yarndeps.nix +rm yarn.lock diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix new file mode 100644 index 000000000000..ce65d28c0087 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/yarndeps.nix @@ -0,0 +1,1453 @@ +{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec { + offline_cache = linkFarm "offline" packages; + packages = [ + { + name = "JSONStream___JSONStream_1.3.3.tgz"; + path = fetchurl { + name = "JSONStream___JSONStream_1.3.3.tgz"; + url = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz"; + sha1 = "27b4b8fbbfeab4e71bcf551e7f27be8d952239bf"; + }; + } + { + name = "acorn_node___acorn_node_1.3.0.tgz"; + path = fetchurl { + name = "acorn_node___acorn_node_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.3.0.tgz"; + sha1 = "5f86d73346743810ef1269b901dbcbded020861b"; + }; + } + { + name = "acorn___acorn_4.0.13.tgz"; + path = fetchurl { + name = "acorn___acorn_4.0.13.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz"; + sha1 = "105495ae5361d697bd195c825192e1ad7f253787"; + }; + } + { + name = "acorn___acorn_5.6.2.tgz"; + path = fetchurl { + name = "acorn___acorn_5.6.2.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-5.6.2.tgz"; + sha1 = "b1da1d7be2ac1b4a327fb9eab851702c5045b4e7"; + }; + } + { + name = "admin_lte___admin_lte_2.4.9.tgz"; + path = fetchurl { + name = "admin_lte___admin_lte_2.4.9.tgz"; + url = "https://registry.yarnpkg.com/admin-lte/-/admin-lte-2.4.9.tgz"; + sha1 = "effc04dbb587ccb7d674d4cf663cc141f925ed73"; + }; + } + { + name = "almond___almond_0.3.3.tgz"; + path = fetchurl { + name = "almond___almond_0.3.3.tgz"; + url = "https://registry.yarnpkg.com/almond/-/almond-0.3.3.tgz"; + sha1 = "a0e7c95ac7624d6417b4494b1e68bff693168a20"; + }; + } + { + name = "array_filter___array_filter_0.0.1.tgz"; + path = fetchurl { + name = "array_filter___array_filter_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz"; + sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec"; + }; + } + { + name = "array_map___array_map_0.0.0.tgz"; + path = fetchurl { + name = "array_map___array_map_0.0.0.tgz"; + url = "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz"; + sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662"; + }; + } + { + name = "array_reduce___array_reduce_0.0.0.tgz"; + path = fetchurl { + name = "array_reduce___array_reduce_0.0.0.tgz"; + url = "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz"; + sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b"; + }; + } + { + name = "asn1.js___asn1.js_4.10.1.tgz"; + path = fetchurl { + name = "asn1.js___asn1.js_4.10.1.tgz"; + url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz"; + sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"; + }; + } + { + name = "assert___assert_1.4.1.tgz"; + path = fetchurl { + name = "assert___assert_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz"; + sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91"; + }; + } + { + name = "astw___astw_2.2.0.tgz"; + path = fetchurl { + name = "astw___astw_2.2.0.tgz"; + url = "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz"; + sha1 = "7bd41784d32493987aeb239b6b4e1c57a873b917"; + }; + } + { + name = "balanced_match___balanced_match_1.0.0.tgz"; + path = fetchurl { + name = "balanced_match___balanced_match_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + } + { + name = "base64_js___base64_js_1.3.0.tgz"; + path = fetchurl { + name = "base64_js___base64_js_1.3.0.tgz"; + url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz"; + sha1 = "cab1e6118f051095e58b5281aea8c1cd22bfc0e3"; + }; + } + { + name = "bn.js___bn.js_4.11.9.tgz"; + path = fetchurl { + name = "bn.js___bn.js_4.11.9.tgz"; + url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz"; + sha1 = "26d556829458f9d1e81fc48952493d0ba3507828"; + }; + } + { + name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz"; + path = fetchurl { + name = "bootstrap_colorpicker___bootstrap_colorpicker_2.5.3.tgz"; + url = "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.3.tgz"; + sha1 = "b50aff8590fbaa6b5aa63a5624e4213f1659a49d"; + }; + } + { + name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz"; + path = fetchurl { + name = "bootstrap_datepicker___bootstrap_datepicker_1.8.0.tgz"; + url = "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz"; + sha1 = "c63513931e6f09f16ae9f11b62f32d950df3958e"; + }; + } + { + name = "bootstrap_daterangepicker___bootstrap_daterangepicker_2.1.30.tgz"; + path = fetchurl { + name = "bootstrap_daterangepicker___bootstrap_daterangepicker_2.1.30.tgz"; + url = "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-2.1.30.tgz"; + sha1 = "f893dbfff5a4d7dfaab75460e8ea6969bb89689a"; + }; + } + { + name = "bootstrap_slider___bootstrap_slider_9.10.0.tgz"; + path = fetchurl { + name = "bootstrap_slider___bootstrap_slider_9.10.0.tgz"; + url = "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-9.10.0.tgz"; + sha1 = "1103d6bc00cfbfa8cfc9a2599ab518c55643da3f"; + }; + } + { + name = "bootstrap_timepicker___bootstrap_timepicker_0.5.2.tgz"; + path = fetchurl { + name = "bootstrap_timepicker___bootstrap_timepicker_0.5.2.tgz"; + url = "https://registry.yarnpkg.com/bootstrap-timepicker/-/bootstrap-timepicker-0.5.2.tgz"; + sha1 = "10ed9f2a2f0b8ccaefcde0fcf6a0738b919a3835"; + }; + } + { + name = "bootstrap_validator___bootstrap_validator_0.11.9.tgz"; + path = fetchurl { + name = "bootstrap_validator___bootstrap_validator_0.11.9.tgz"; + url = "https://registry.yarnpkg.com/bootstrap-validator/-/bootstrap-validator-0.11.9.tgz"; + sha1 = "fb7058eef53623e78f5aa7967026f98f875a9404"; + }; + } + { + name = "bootstrap___bootstrap_3.4.1.tgz"; + path = fetchurl { + name = "bootstrap___bootstrap_3.4.1.tgz"; + url = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz"; + sha1 = "c3a347d419e289ad11f4033e3c4132b87c081d72"; + }; + } + { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + path = fetchurl { + name = "brace_expansion___brace_expansion_1.1.11.tgz"; + url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd"; + }; + } + { + name = "brorand___brorand_1.1.0.tgz"; + path = fetchurl { + name = "brorand___brorand_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz"; + sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; + }; + } + { + name = "browser_pack___browser_pack_6.1.0.tgz"; + path = fetchurl { + name = "browser_pack___browser_pack_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz"; + sha1 = "c34ba10d0b9ce162b5af227c7131c92c2ecd5774"; + }; + } + { + name = "browser_resolve___browser_resolve_1.11.2.tgz"; + path = fetchurl { + name = "browser_resolve___browser_resolve_1.11.2.tgz"; + url = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz"; + sha1 = "8ff09b0a2c421718a1051c260b32e48f442938ce"; + }; + } + { + name = "browserify_aes___browserify_aes_1.2.0.tgz"; + path = fetchurl { + name = "browserify_aes___browserify_aes_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz"; + sha1 = "326734642f403dabc3003209853bb70ad428ef48"; + }; + } + { + name = "browserify_cipher___browserify_cipher_1.0.1.tgz"; + path = fetchurl { + name = "browserify_cipher___browserify_cipher_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz"; + sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"; + }; + } + { + name = "browserify_des___browserify_des_1.0.1.tgz"; + path = fetchurl { + name = "browserify_des___browserify_des_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz"; + sha1 = "3343124db6d7ad53e26a8826318712bdc8450f9c"; + }; + } + { + name = "browserify_rsa___browserify_rsa_4.0.1.tgz"; + path = fetchurl { + name = "browserify_rsa___browserify_rsa_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; + sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; + }; + } + { + name = "browserify_sign___browserify_sign_4.0.4.tgz"; + path = fetchurl { + name = "browserify_sign___browserify_sign_4.0.4.tgz"; + url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz"; + sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"; + }; + } + { + name = "browserify_zlib___browserify_zlib_0.2.0.tgz"; + path = fetchurl { + name = "browserify_zlib___browserify_zlib_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; + sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"; + }; + } + { + name = "browserify___browserify_16.2.2.tgz"; + path = fetchurl { + name = "browserify___browserify_16.2.2.tgz"; + url = "https://registry.yarnpkg.com/browserify/-/browserify-16.2.2.tgz"; + sha1 = "4b1f66ba0e54fa39dbc5aa4be9629142143d91b0"; + }; + } + { + name = "buffer_from___buffer_from_1.1.0.tgz"; + path = fetchurl { + name = "buffer_from___buffer_from_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz"; + sha1 = "87fcaa3a298358e0ade6e442cfce840740d1ad04"; + }; + } + { + name = "buffer_xor___buffer_xor_1.0.3.tgz"; + path = fetchurl { + name = "buffer_xor___buffer_xor_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz"; + sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; + }; + } + { + name = "buffer___buffer_5.1.0.tgz"; + path = fetchurl { + name = "buffer___buffer_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz"; + sha1 = "c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe"; + }; + } + { + name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz"; + path = fetchurl { + name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"; + sha1 = "85982878e21b98e1c66425e03d0174788f569ee8"; + }; + } + { + name = "cached_path_relative___cached_path_relative_1.0.2.tgz"; + path = fetchurl { + name = "cached_path_relative___cached_path_relative_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz"; + sha1 = "a13df4196d26776220cc3356eb147a52dba2c6db"; + }; + } + { + name = "charm___charm_0.1.2.tgz"; + path = fetchurl { + name = "charm___charm_0.1.2.tgz"; + url = "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz"; + sha1 = "06c21eed1a1b06aeb67553cdc53e23274bac2296"; + }; + } + { + name = "chart.js___chart.js_1.0.2.tgz"; + path = fetchurl { + name = "chart.js___chart.js_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/chart.js/-/chart.js-1.0.2.tgz"; + sha1 = "ad57d2229cfd8ccf5955147e8121b4911e69dfe7"; + }; + } + { + name = "cipher_base___cipher_base_1.0.4.tgz"; + path = fetchurl { + name = "cipher_base___cipher_base_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz"; + sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de"; + }; + } + { + name = "ckeditor___ckeditor_4.11.3.tgz"; + path = fetchurl { + name = "ckeditor___ckeditor_4.11.3.tgz"; + url = "https://registry.yarnpkg.com/ckeditor/-/ckeditor-4.11.3.tgz"; + sha1 = "91f66d7ddb5bff3874514fe539779686874ed655"; + }; + } + { + name = "classie___classie_1.0.0.tgz"; + path = fetchurl { + name = "classie___classie_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/classie/-/classie-1.0.0.tgz"; + sha1 = "fc9b29b47e64e374a2062fb624d05a61cd703ab2"; + }; + } + { + name = "combine_source_map___combine_source_map_0.8.0.tgz"; + path = fetchurl { + name = "combine_source_map___combine_source_map_0.8.0.tgz"; + url = "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz"; + sha1 = "a58d0df042c186fcf822a8e8015f5450d2d79a8b"; + }; + } + { + name = "concat_map___concat_map_0.0.1.tgz"; + path = fetchurl { + name = "concat_map___concat_map_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + } + { + name = "concat_stream___concat_stream_1.6.2.tgz"; + path = fetchurl { + name = "concat_stream___concat_stream_1.6.2.tgz"; + url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz"; + sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"; + }; + } + { + name = "console_browserify___console_browserify_1.1.0.tgz"; + path = fetchurl { + name = "console_browserify___console_browserify_1.1.0.tgz"; + url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz"; + sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10"; + }; + } + { + name = "constants_browserify___constants_browserify_1.0.0.tgz"; + path = fetchurl { + name = "constants_browserify___constants_browserify_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz"; + sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; + }; + } + { + name = "convert_source_map___convert_source_map_1.1.3.tgz"; + path = fetchurl { + name = "convert_source_map___convert_source_map_1.1.3.tgz"; + url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz"; + sha1 = "4829c877e9fe49b3161f3bf3673888e204699860"; + }; + } + { + name = "core_util_is___core_util_is_1.0.2.tgz"; + path = fetchurl { + name = "core_util_is___core_util_is_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + } + { + name = "create_ecdh___create_ecdh_4.0.3.tgz"; + path = fetchurl { + name = "create_ecdh___create_ecdh_4.0.3.tgz"; + url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz"; + sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff"; + }; + } + { + name = "create_hash___create_hash_1.2.0.tgz"; + path = fetchurl { + name = "create_hash___create_hash_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz"; + sha1 = "889078af11a63756bcfb59bd221996be3a9ef196"; + }; + } + { + name = "create_hmac___create_hmac_1.1.7.tgz"; + path = fetchurl { + name = "create_hmac___create_hmac_1.1.7.tgz"; + url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz"; + sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff"; + }; + } + { + name = "crypto_browserify___crypto_browserify_3.12.0.tgz"; + path = fetchurl { + name = "crypto_browserify___crypto_browserify_3.12.0.tgz"; + url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; + sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec"; + }; + } + { + name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz"; + path = fetchurl { + name = "datatables.net_bs___datatables.net_bs_1.10.19.tgz"; + url = "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.19.tgz"; + sha1 = "08763b4e4d0cef1a427d019dc15e717c7ed67a4d"; + }; + } + { + name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz"; + path = fetchurl { + name = "datatables.net_plugins___datatables.net_plugins_1.10.20.tgz"; + url = "https://registry.yarnpkg.com/datatables.net-plugins/-/datatables.net-plugins-1.10.20.tgz"; + sha1 = "c89f6bed3fa7e6605cbeaa35d60f223659e84c8c"; + }; + } + { + name = "datatables.net___datatables.net_1.10.19.tgz"; + path = fetchurl { + name = "datatables.net___datatables.net_1.10.19.tgz"; + url = "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.19.tgz"; + sha1 = "97a1ed41c85e62d61040603481b59790a172dd1f"; + }; + } + { + name = "date_now___date_now_0.1.4.tgz"; + path = fetchurl { + name = "date_now___date_now_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz"; + sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b"; + }; + } + { + name = "defined___defined_1.0.0.tgz"; + path = fetchurl { + name = "defined___defined_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz"; + sha1 = "c98d9bcef75674188e110969151199e39b1fa693"; + }; + } + { + name = "deps_sort___deps_sort_2.0.0.tgz"; + path = fetchurl { + name = "deps_sort___deps_sort_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz"; + sha1 = "091724902e84658260eb910748cccd1af6e21fb5"; + }; + } + { + name = "des.js___des.js_1.0.0.tgz"; + path = fetchurl { + name = "des.js___des.js_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz"; + sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"; + }; + } + { + name = "detective___detective_5.1.0.tgz"; + path = fetchurl { + name = "detective___detective_5.1.0.tgz"; + url = "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz"; + sha1 = "7a20d89236d7b331ccea65832e7123b5551bb7cb"; + }; + } + { + name = "diffie_hellman___diffie_hellman_5.0.3.tgz"; + path = fetchurl { + name = "diffie_hellman___diffie_hellman_5.0.3.tgz"; + url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz"; + sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875"; + }; + } + { + name = "domain_browser___domain_browser_1.2.0.tgz"; + path = fetchurl { + name = "domain_browser___domain_browser_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz"; + sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda"; + }; + } + { + name = "domhelper___domhelper_0.9.1.tgz"; + path = fetchurl { + name = "domhelper___domhelper_0.9.1.tgz"; + url = "https://registry.yarnpkg.com/domhelper/-/domhelper-0.9.1.tgz"; + sha1 = "26554e5bac2c9e9585dca500978df5067d64bd00"; + }; + } + { + name = "duplexer2___duplexer2_0.1.4.tgz"; + path = fetchurl { + name = "duplexer2___duplexer2_0.1.4.tgz"; + url = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz"; + sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1"; + }; + } + { + name = "elliptic___elliptic_6.5.3.tgz"; + path = fetchurl { + name = "elliptic___elliptic_6.5.3.tgz"; + url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz"; + sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"; + }; + } + { + name = "eve_raphael___eve_raphael_0.5.0.tgz"; + path = fetchurl { + name = "eve_raphael___eve_raphael_0.5.0.tgz"; + url = "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz"; + sha1 = "17c754b792beef3fa6684d79cf5a47c63c4cda30"; + }; + } + { + name = "events___events_2.1.0.tgz"; + path = fetchurl { + name = "events___events_2.1.0.tgz"; + url = "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz"; + sha1 = "2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5"; + }; + } + { + name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz"; + path = fetchurl { + name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; + sha1 = "7fcbdb198dc71959432efe13842684e0525acb02"; + }; + } + { + name = "fastclick___fastclick_1.0.6.tgz"; + path = fetchurl { + name = "fastclick___fastclick_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz"; + sha1 = "161625b27b1a5806405936bda9a2c1926d06be6a"; + }; + } + { + name = "flot___flot_0.8.3.tgz"; + path = fetchurl { + name = "flot___flot_0.8.3.tgz"; + url = "https://registry.yarnpkg.com/flot/-/flot-0.8.3.tgz"; + sha1 = "6d9b93c7aa2cfb30dfa1af9c1ec4c94070b1217f"; + }; + } + { + name = "font_awesome___font_awesome_4.7.0.tgz"; + path = fetchurl { + name = "font_awesome___font_awesome_4.7.0.tgz"; + url = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz"; + sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133"; + }; + } + { + name = "fs.realpath___fs.realpath_1.0.0.tgz"; + path = fetchurl { + name = "fs.realpath___fs.realpath_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + } + { + name = "fullcalendar___fullcalendar_3.10.0.tgz"; + path = fetchurl { + name = "fullcalendar___fullcalendar_3.10.0.tgz"; + url = "https://registry.yarnpkg.com/fullcalendar/-/fullcalendar-3.10.0.tgz"; + sha1 = "cc5e87d518fd6550e142816a31dd191664847919"; + }; + } + { + name = "function_bind___function_bind_1.1.1.tgz"; + path = fetchurl { + name = "function_bind___function_bind_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; + sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; + }; + } + { + name = "glob___glob_7.1.2.tgz"; + path = fetchurl { + name = "glob___glob_7.1.2.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz"; + sha1 = "c19c9df9a028702d678612384a6552404c636d15"; + }; + } + { + name = "has___has_1.0.3.tgz"; + path = fetchurl { + name = "has___has_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz"; + sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796"; + }; + } + { + name = "hash_base___hash_base_3.0.4.tgz"; + path = fetchurl { + name = "hash_base___hash_base_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz"; + sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918"; + }; + } + { + name = "hash.js___hash.js_1.1.7.tgz"; + path = fetchurl { + name = "hash.js___hash.js_1.1.7.tgz"; + url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz"; + sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42"; + }; + } + { + name = "hmac_drbg___hmac_drbg_1.0.1.tgz"; + path = fetchurl { + name = "hmac_drbg___hmac_drbg_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; + sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; + }; + } + { + name = "htmlescape___htmlescape_1.1.1.tgz"; + path = fetchurl { + name = "htmlescape___htmlescape_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz"; + sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351"; + }; + } + { + name = "https_browserify___https_browserify_1.0.0.tgz"; + path = fetchurl { + name = "https_browserify___https_browserify_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz"; + sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; + }; + } + { + name = "icheck___icheck_1.0.2.tgz"; + path = fetchurl { + name = "icheck___icheck_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/icheck/-/icheck-1.0.2.tgz"; + sha1 = "06d08da3d47ae448c153b2639b86e9ad7fdf7128"; + }; + } + { + name = "ieee754___ieee754_1.1.12.tgz"; + path = fetchurl { + name = "ieee754___ieee754_1.1.12.tgz"; + url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz"; + sha1 = "50bf24e5b9c8bb98af4964c941cdb0918da7b60b"; + }; + } + { + name = "inflight___inflight_1.0.6.tgz"; + path = fetchurl { + name = "inflight___inflight_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + } + { + name = "inherits___inherits_2.0.4.tgz"; + path = fetchurl { + name = "inherits___inherits_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz"; + sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c"; + }; + } + { + name = "inherits___inherits_2.0.1.tgz"; + path = fetchurl { + name = "inherits___inherits_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz"; + sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; + }; + } + { + name = "inherits___inherits_2.0.3.tgz"; + path = fetchurl { + name = "inherits___inherits_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + } + { + name = "inline_source_map___inline_source_map_0.6.2.tgz"; + path = fetchurl { + name = "inline_source_map___inline_source_map_0.6.2.tgz"; + url = "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz"; + sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5"; + }; + } + { + name = "inputmask___inputmask_3.3.11.tgz"; + path = fetchurl { + name = "inputmask___inputmask_3.3.11.tgz"; + url = "https://registry.yarnpkg.com/inputmask/-/inputmask-3.3.11.tgz"; + sha1 = "1421c94ae28c3dcd1b4d26337b508bb34998e2d8"; + }; + } + { + name = "insert_module_globals___insert_module_globals_7.1.0.tgz"; + path = fetchurl { + name = "insert_module_globals___insert_module_globals_7.1.0.tgz"; + url = "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.1.0.tgz"; + sha1 = "dbb3cea71d3a43d5a07ef0310fe5f078aa4dbf35"; + }; + } + { + name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz"; + path = fetchurl { + name = "ion_rangeslider___ion_rangeslider_2.3.0.tgz"; + url = "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.0.tgz"; + sha1 = "7957ce2e78acfc956b8c43009373da91f743347e"; + }; + } + { + name = "ionicons___ionicons_3.0.0.tgz"; + path = fetchurl { + name = "ionicons___ionicons_3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ionicons/-/ionicons-3.0.0.tgz"; + sha1 = "40b8daf4fd7a31150bd002160f66496e22a98c3c"; + }; + } + { + name = "is_buffer___is_buffer_1.1.6.tgz"; + path = fetchurl { + name = "is_buffer___is_buffer_1.1.6.tgz"; + url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz"; + sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"; + }; + } + { + name = "isarray___isarray_2.0.4.tgz"; + path = fetchurl { + name = "isarray___isarray_2.0.4.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz"; + sha1 = "38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7"; + }; + } + { + name = "isarray___isarray_1.0.0.tgz"; + path = fetchurl { + name = "isarray___isarray_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + } + { + name = "jquery_knob___jquery_knob_1.2.11.tgz"; + path = fetchurl { + name = "jquery_knob___jquery_knob_1.2.11.tgz"; + url = "https://registry.yarnpkg.com/jquery-knob/-/jquery-knob-1.2.11.tgz"; + sha1 = "f37c39dbc1c7a6a6c12cdb2ed4f6bffb683f10d6"; + }; + } + { + name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz"; + path = fetchurl { + name = "jquery_mousewheel___jquery_mousewheel_3.1.13.tgz"; + url = "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz"; + sha1 = "06f0335f16e353a695e7206bf50503cb523a6ee5"; + }; + } + { + name = "jquery_slimscroll___jquery_slimscroll_1.3.8.tgz"; + path = fetchurl { + name = "jquery_slimscroll___jquery_slimscroll_1.3.8.tgz"; + url = "https://registry.yarnpkg.com/jquery-slimscroll/-/jquery-slimscroll-1.3.8.tgz"; + sha1 = "8481c44e7a47687653908a28f7f70aed64c84e36"; + }; + } + { + name = "jquery_sparkline___jquery_sparkline_2.4.0.tgz"; + path = fetchurl { + name = "jquery_sparkline___jquery_sparkline_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/jquery-sparkline/-/jquery-sparkline-2.4.0.tgz"; + sha1 = "1be8b7b704dd3857152708aefb1d4a4b3a69fb33"; + }; + } + { + name = "jquery_ui_dist___jquery_ui_dist_1.12.1.tgz"; + path = fetchurl { + name = "jquery_ui_dist___jquery_ui_dist_1.12.1.tgz"; + url = "https://registry.yarnpkg.com/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz"; + sha1 = "5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa"; + }; + } + { + name = "jquery_ui___jquery_ui_1.12.1.tgz"; + path = fetchurl { + name = "jquery_ui___jquery_ui_1.12.1.tgz"; + url = "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz"; + sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51"; + }; + } + { + name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz"; + path = fetchurl { + name = "jquery.quicksearch___jquery.quicksearch_2.4.0.tgz"; + url = "https://registry.yarnpkg.com/jquery.quicksearch/-/jquery.quicksearch-2.4.0.tgz"; + sha1 = "240c9f435e936c63bf8fbba355144ffdddf9ea26"; + }; + } + { + name = "jquery___jquery_3.3.1.tgz"; + path = fetchurl { + name = "jquery___jquery_3.3.1.tgz"; + url = "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz"; + sha1 = "958ce29e81c9790f31be7792df5d4d95fc57fbca"; + }; + } + { + name = "json_stable_stringify___json_stable_stringify_0.0.1.tgz"; + path = fetchurl { + name = "json_stable_stringify___json_stable_stringify_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz"; + sha1 = "611c23e814db375527df851193db59dd2af27f45"; + }; + } + { + name = "jsonify___jsonify_0.0.0.tgz"; + path = fetchurl { + name = "jsonify___jsonify_0.0.0.tgz"; + url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz"; + sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; + }; + } + { + name = "jsonparse___jsonparse_1.3.1.tgz"; + path = fetchurl { + name = "jsonparse___jsonparse_1.3.1.tgz"; + url = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz"; + sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280"; + }; + } + { + name = "jtimeout___jtimeout_3.1.0.tgz"; + path = fetchurl { + name = "jtimeout___jtimeout_3.1.0.tgz"; + url = "https://registry.yarnpkg.com/jtimeout/-/jtimeout-3.1.0.tgz"; + sha1 = "4cd65b28eff8b9f8c61d08889a9ac3abdf5d9893"; + }; + } + { + name = "jvectormap___jvectormap_1.2.2.tgz"; + path = fetchurl { + name = "jvectormap___jvectormap_1.2.2.tgz"; + url = "https://registry.yarnpkg.com/jvectormap/-/jvectormap-1.2.2.tgz"; + sha1 = "2e4408b24a60473ff106c1e7243e375ae5ca85da"; + }; + } + { + name = "labeled_stream_splicer___labeled_stream_splicer_2.0.1.tgz"; + path = fetchurl { + name = "labeled_stream_splicer___labeled_stream_splicer_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz"; + sha1 = "9cffa32fd99e1612fd1d86a8db962416d5292926"; + }; + } + { + name = "lexical_scope___lexical_scope_1.2.0.tgz"; + path = fetchurl { + name = "lexical_scope___lexical_scope_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz"; + sha1 = "fcea5edc704a4b3a8796cdca419c3a0afaf22df4"; + }; + } + { + name = "lodash.memoize___lodash.memoize_3.0.4.tgz"; + path = fetchurl { + name = "lodash.memoize___lodash.memoize_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz"; + sha1 = "2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"; + }; + } + { + name = "md5.js___md5.js_1.3.4.tgz"; + path = fetchurl { + name = "md5.js___md5.js_1.3.4.tgz"; + url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz"; + sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d"; + }; + } + { + name = "miller_rabin___miller_rabin_4.0.1.tgz"; + path = fetchurl { + name = "miller_rabin___miller_rabin_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz"; + sha1 = "f080351c865b0dc562a8462966daa53543c78a4d"; + }; + } + { + name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz"; + path = fetchurl { + name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"; + }; + } + { + name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz"; + path = fetchurl { + name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"; + sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"; + }; + } + { + name = "minimatch___minimatch_3.0.4.tgz"; + path = fetchurl { + name = "minimatch___minimatch_3.0.4.tgz"; + url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"; + sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; + }; + } + { + name = "minimist___minimist_0.0.8.tgz"; + path = fetchurl { + name = "minimist___minimist_0.0.8.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + } + { + name = "minimist___minimist_1.2.0.tgz"; + path = fetchurl { + name = "minimist___minimist_1.2.0.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + } + { + name = "mkdirp___mkdirp_0.5.1.tgz"; + path = fetchurl { + name = "mkdirp___mkdirp_0.5.1.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + } + { + name = "module_deps___module_deps_6.1.0.tgz"; + path = fetchurl { + name = "module_deps___module_deps_6.1.0.tgz"; + url = "https://registry.yarnpkg.com/module-deps/-/module-deps-6.1.0.tgz"; + sha1 = "d1e1efc481c6886269f7112c52c3236188e16479"; + }; + } + { + name = "moment___moment_2.24.0.tgz"; + path = fetchurl { + name = "moment___moment_2.24.0.tgz"; + url = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz"; + sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"; + }; + } + { + name = "moment___moment_2.22.2.tgz"; + path = fetchurl { + name = "moment___moment_2.22.2.tgz"; + url = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz"; + sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66"; + }; + } + { + name = "morris.js___morris.js_0.5.0.tgz"; + path = fetchurl { + name = "morris.js___morris.js_0.5.0.tgz"; + url = "https://registry.yarnpkg.com/morris.js/-/morris.js-0.5.0.tgz"; + sha1 = "725767135cfae059aae75999bb2ce6a1c5d1b44b"; + }; + } + { + name = "multiselect___multiselect_0.9.12.tgz"; + path = fetchurl { + name = "multiselect___multiselect_0.9.12.tgz"; + url = "https://registry.yarnpkg.com/multiselect/-/multiselect-0.9.12.tgz"; + sha1 = "d15536e986dd6a0029b160d6613bcedf81e4c7ed"; + }; + } + { + name = "once___once_1.4.0.tgz"; + path = fetchurl { + name = "once___once_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + } + { + name = "os_browserify___os_browserify_0.3.0.tgz"; + path = fetchurl { + name = "os_browserify___os_browserify_0.3.0.tgz"; + url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz"; + sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; + }; + } + { + name = "pace___pace_0.0.4.tgz"; + path = fetchurl { + name = "pace___pace_0.0.4.tgz"; + url = "https://registry.yarnpkg.com/pace/-/pace-0.0.4.tgz"; + sha1 = "d66405d5f5bc12d25441a6e26c878dbc69e77a77"; + }; + } + { + name = "pako___pako_1.0.6.tgz"; + path = fetchurl { + name = "pako___pako_1.0.6.tgz"; + url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz"; + sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258"; + }; + } + { + name = "parents___parents_1.0.1.tgz"; + path = fetchurl { + name = "parents___parents_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz"; + sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751"; + }; + } + { + name = "parse_asn1___parse_asn1_5.1.1.tgz"; + path = fetchurl { + name = "parse_asn1___parse_asn1_5.1.1.tgz"; + url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz"; + sha1 = "f6bf293818332bd0dab54efb16087724745e6ca8"; + }; + } + { + name = "path_browserify___path_browserify_0.0.0.tgz"; + path = fetchurl { + name = "path_browserify___path_browserify_0.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz"; + sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a"; + }; + } + { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + path = fetchurl { + name = "path_is_absolute___path_is_absolute_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + } + { + name = "path_parse___path_parse_1.0.5.tgz"; + path = fetchurl { + name = "path_parse___path_parse_1.0.5.tgz"; + url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz"; + sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"; + }; + } + { + name = "path_platform___path_platform_0.11.15.tgz"; + path = fetchurl { + name = "path_platform___path_platform_0.11.15.tgz"; + url = "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz"; + sha1 = "e864217f74c36850f0852b78dc7bf7d4a5721bf2"; + }; + } + { + name = "pbkdf2___pbkdf2_3.0.16.tgz"; + path = fetchurl { + name = "pbkdf2___pbkdf2_3.0.16.tgz"; + url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz"; + sha1 = "7404208ec6b01b62d85bf83853a8064f8d9c2a5c"; + }; + } + { + name = "process_nextick_args___process_nextick_args_2.0.0.tgz"; + path = fetchurl { + name = "process_nextick_args___process_nextick_args_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz"; + sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa"; + }; + } + { + name = "process___process_0.11.10.tgz"; + path = fetchurl { + name = "process___process_0.11.10.tgz"; + url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + } + { + name = "public_encrypt___public_encrypt_4.0.2.tgz"; + path = fetchurl { + name = "public_encrypt___public_encrypt_4.0.2.tgz"; + url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz"; + sha1 = "46eb9107206bf73489f8b85b69d91334c6610994"; + }; + } + { + name = "punycode___punycode_1.3.2.tgz"; + path = fetchurl { + name = "punycode___punycode_1.3.2.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz"; + sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; + }; + } + { + name = "punycode___punycode_1.4.1.tgz"; + path = fetchurl { + name = "punycode___punycode_1.4.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + } + { + name = "querystring_es3___querystring_es3_0.2.1.tgz"; + path = fetchurl { + name = "querystring_es3___querystring_es3_0.2.1.tgz"; + url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz"; + sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; + }; + } + { + name = "querystring___querystring_0.2.0.tgz"; + path = fetchurl { + name = "querystring___querystring_0.2.0.tgz"; + url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz"; + sha1 = "b209849203bb25df820da756e747005878521620"; + }; + } + { + name = "randombytes___randombytes_2.0.6.tgz"; + path = fetchurl { + name = "randombytes___randombytes_2.0.6.tgz"; + url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz"; + sha1 = "d302c522948588848a8d300c932b44c24231da80"; + }; + } + { + name = "randomfill___randomfill_1.0.4.tgz"; + path = fetchurl { + name = "randomfill___randomfill_1.0.4.tgz"; + url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz"; + sha1 = "c92196fc86ab42be983f1bf31778224931d61458"; + }; + } + { + name = "raphael___raphael_2.2.7.tgz"; + path = fetchurl { + name = "raphael___raphael_2.2.7.tgz"; + url = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz"; + sha1 = "231b19141f8d086986d8faceb66f8b562ee2c810"; + }; + } + { + name = "read_only_stream___read_only_stream_2.0.0.tgz"; + path = fetchurl { + name = "read_only_stream___read_only_stream_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz"; + sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0"; + }; + } + { + name = "readable_stream___readable_stream_2.3.6.tgz"; + path = fetchurl { + name = "readable_stream___readable_stream_2.3.6.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz"; + sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"; + }; + } + { + name = "resolve___resolve_1.1.7.tgz"; + path = fetchurl { + name = "resolve___resolve_1.1.7.tgz"; + url = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz"; + sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b"; + }; + } + { + name = "resolve___resolve_1.7.1.tgz"; + path = fetchurl { + name = "resolve___resolve_1.7.1.tgz"; + url = "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz"; + sha1 = "aadd656374fd298aee895bc026b8297418677fd3"; + }; + } + { + name = "ripemd160___ripemd160_2.0.2.tgz"; + path = fetchurl { + name = "ripemd160___ripemd160_2.0.2.tgz"; + url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz"; + sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c"; + }; + } + { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + path = fetchurl { + name = "safe_buffer___safe_buffer_5.1.2.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d"; + }; + } + { + name = "select2___select2_4.0.5.tgz"; + path = fetchurl { + name = "select2___select2_4.0.5.tgz"; + url = "https://registry.yarnpkg.com/select2/-/select2-4.0.5.tgz"; + sha1 = "7aac50692561985b34d3b82ec55e226f8960d40a"; + }; + } + { + name = "sha.js___sha.js_2.4.11.tgz"; + path = fetchurl { + name = "sha.js___sha.js_2.4.11.tgz"; + url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz"; + sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7"; + }; + } + { + name = "shasum___shasum_1.0.2.tgz"; + path = fetchurl { + name = "shasum___shasum_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz"; + sha1 = "e7012310d8f417f4deb5712150e5678b87ae565f"; + }; + } + { + name = "shell_quote___shell_quote_1.6.1.tgz"; + path = fetchurl { + name = "shell_quote___shell_quote_1.6.1.tgz"; + url = "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz"; + sha1 = "f4781949cce402697127430ea3b3c5476f481767"; + }; + } + { + name = "slimscroll___slimscroll_0.9.1.tgz"; + path = fetchurl { + name = "slimscroll___slimscroll_0.9.1.tgz"; + url = "https://registry.yarnpkg.com/slimscroll/-/slimscroll-0.9.1.tgz"; + sha1 = "f675cdc601d80ada20f16004d227d156fd1187b2"; + }; + } + { + name = "source_map___source_map_0.5.7.tgz"; + path = fetchurl { + name = "source_map___source_map_0.5.7.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + } + { + name = "stream_browserify___stream_browserify_2.0.1.tgz"; + path = fetchurl { + name = "stream_browserify___stream_browserify_2.0.1.tgz"; + url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz"; + sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"; + }; + } + { + name = "stream_combiner2___stream_combiner2_1.1.1.tgz"; + path = fetchurl { + name = "stream_combiner2___stream_combiner2_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz"; + sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe"; + }; + } + { + name = "stream_http___stream_http_2.8.3.tgz"; + path = fetchurl { + name = "stream_http___stream_http_2.8.3.tgz"; + url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz"; + sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc"; + }; + } + { + name = "stream_splicer___stream_splicer_2.0.0.tgz"; + path = fetchurl { + name = "stream_splicer___stream_splicer_2.0.0.tgz"; + url = "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz"; + sha1 = "1b63be438a133e4b671cc1935197600175910d83"; + }; + } + { + name = "string_decoder___string_decoder_1.1.1.tgz"; + path = fetchurl { + name = "string_decoder___string_decoder_1.1.1.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz"; + sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8"; + }; + } + { + name = "subarg___subarg_1.0.0.tgz"; + path = fetchurl { + name = "subarg___subarg_1.0.0.tgz"; + url = "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz"; + sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2"; + }; + } + { + name = "syntax_error___syntax_error_1.4.0.tgz"; + path = fetchurl { + name = "syntax_error___syntax_error_1.4.0.tgz"; + url = "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz"; + sha1 = "2d9d4ff5c064acb711594a3e3b95054ad51d907c"; + }; + } + { + name = "through2___through2_2.0.3.tgz"; + path = fetchurl { + name = "through2___through2_2.0.3.tgz"; + url = "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz"; + sha1 = "0004569b37c7c74ba39c43f3ced78d1ad94140be"; + }; + } + { + name = "through___through_2.3.8.tgz"; + path = fetchurl { + name = "through___through_2.3.8.tgz"; + url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz"; + sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; + }; + } + { + name = "timers_browserify___timers_browserify_1.4.2.tgz"; + path = fetchurl { + name = "timers_browserify___timers_browserify_1.4.2.tgz"; + url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz"; + sha1 = "c9c58b575be8407375cb5e2462dacee74359f41d"; + }; + } + { + name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz"; + path = fetchurl { + name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; + sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; + }; + } + { + name = "tty_browserify___tty_browserify_0.0.1.tgz"; + path = fetchurl { + name = "tty_browserify___tty_browserify_0.0.1.tgz"; + url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz"; + sha1 = "3f05251ee17904dfd0677546670db9651682b811"; + }; + } + { + name = "typedarray___typedarray_0.0.6.tgz"; + path = fetchurl { + name = "typedarray___typedarray_0.0.6.tgz"; + url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + } + { + name = "umd___umd_3.0.3.tgz"; + path = fetchurl { + name = "umd___umd_3.0.3.tgz"; + url = "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz"; + sha1 = "aa9fe653c42b9097678489c01000acb69f0b26cf"; + }; + } + { + name = "url___url_0.11.0.tgz"; + path = fetchurl { + name = "url___url_0.11.0.tgz"; + url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz"; + sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; + }; + } + { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + path = fetchurl { + name = "util_deprecate___util_deprecate_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + } + { + name = "util_extend___util_extend_1.0.3.tgz"; + path = fetchurl { + name = "util_extend___util_extend_1.0.3.tgz"; + url = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz"; + sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f"; + }; + } + { + name = "util___util_0.10.3.tgz"; + path = fetchurl { + name = "util___util_0.10.3.tgz"; + url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz"; + sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; + }; + } + { + name = "util___util_0.10.4.tgz"; + path = fetchurl { + name = "util___util_0.10.4.tgz"; + url = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz"; + sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901"; + }; + } + { + name = "vm_browserify___vm_browserify_1.0.1.tgz"; + path = fetchurl { + name = "vm_browserify___vm_browserify_1.0.1.tgz"; + url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.0.1.tgz"; + sha1 = "a15d7762c4c48fa6bf9f3309a21340f00ed23063"; + }; + } + { + name = "wrappy___wrappy_1.0.2.tgz"; + path = fetchurl { + name = "wrappy___wrappy_1.0.2.tgz"; + url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + } + { + name = "xtend___xtend_4.0.1.tgz"; + path = fetchurl { + name = "xtend___xtend_4.0.1.tgz"; + url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz"; + sha1 = "a5c6d532be656e23db820efb943a1f04998d63af"; + }; + } + ]; +} diff --git a/nixpkgs/pkgs/applications/networking/protocol/default.nix b/nixpkgs/pkgs/applications/networking/protocol/default.nix new file mode 100644 index 000000000000..6690a75485bd --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protocol/default.nix @@ -0,0 +1,20 @@ +{ lib, buildPythonApplication, fetchFromGitHub }: + +buildPythonApplication { + pname = "protocol-unstable"; + version = "2019-03-28"; + + src = fetchFromGitHub { + owner = "luismartingarcia"; + repo = "protocol"; + rev = "4e8326ea6c2d288be5464c3a7d9398df468c0ada"; + sha256 = "13l10jhf4vghanmhh3pn91b2jdciispxy0qadz4n08blp85qn9cm"; + }; + + meta = with lib; { + description = "An ASCII Header Generator for Network Protocols"; + homepage = "https://github.com/luismartingarcia/protocol"; + license = licenses.gpl3; + maintainers = with maintainers; [ teto ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix new file mode 100644 index 000000000000..618234e6ff91 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix @@ -0,0 +1,51 @@ +{ lib, buildGoModule, fetchFromGitHub, pkg-config, libsecret }: + +buildGoModule rec { + pname = "protonmail-bridge"; + version = "1.6.9"; + + src = fetchFromGitHub { + owner = "ProtonMail"; + repo = "proton-bridge"; + rev = "br-${version}"; + sha256 = "0p2315smxc5knxzr9413w62z65647znh9j9vyb6w5x4dqfp7vhz9"; + }; + + vendorSha256 = "04aa7syp5hhpqxdpqlsmmbwywnbrh4ia0diym2935jbrqccnvm1k"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ libsecret ]; + + buildPhase = '' + runHook preBuild + + patchShebangs ./utils/ + make BUILD_TIME= -j$NIX_BUILD_CORES build-nogui + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -Dm555 proton-bridge $out/bin/protonmail-bridge + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/ProtonMail/proton-bridge"; + changelog = "https://github.com/ProtonMail/proton-bridge/blob/master/Changelog.md"; + downloadPage = "https://github.com/ProtonMail/proton-bridge/releases"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ lightdiscord ]; + description = "Use your ProtonMail account with your local e-mail client"; + longDescription = '' + An application that runs on your computer in the background and seamlessly encrypts + and decrypts your mail as it enters and leaves your computer. + + To work, gnome-keyring service must be enabled. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix new file mode 100644 index 000000000000..a13f84096863 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix @@ -0,0 +1,36 @@ +{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }: + +python3Packages.buildPythonApplication rec { + pname = "protonvpn-linux-cli"; + version = "2.2.6"; + + src = fetchFromGitHub { + owner = "protonvpn"; + repo = "linux-cli"; + rev = "v${version}"; + sha256 = "0y7v9ikrmy5dbjlpbpacp08gy838i8z54m8m4ps7ldk1j6kyia3n"; + }; + + propagatedBuildInputs = (with python3Packages; [ + requests + docopt + setuptools + jinja2 + pythondialog + ]) ++ [ + dialog + openvpn + iptables + ]; + + # No tests + doCheck = false; + + meta = with lib; { + description = "Linux command-line client for ProtonVPN"; + homepage = "https://github.com/protonvpn/linux-cli"; + maintainers = with maintainers; [ jtcoolen jefflabonte shamilton ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix new file mode 100644 index 000000000000..8029264fdaa7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix @@ -0,0 +1,89 @@ +{ lib, fetchFromGitHub, makeDesktopItem, makeWrapper, imagemagick +, python3Packages, wrapGAppsHook, protonvpn-cli, gtk3, pango +, gobject-introspection, libnotify, libappindicator-gtk3 +, procps, openvpn }: + +let + extraPath = lib.makeBinPath [ procps openvpn ]; + +in python3Packages.buildPythonApplication rec { + pname = "protonvpn-linux-gui"; + version = "2.1.1"; + + src = fetchFromGitHub { + owner = "protonvpn"; + repo = "linux-gui"; + rev = "v${version}"; + sha256 = "avo5/2eq53HSHCnnjtxrsmpURtHvxmLZn2BxActImGY="; + }; + + desktopItem = makeDesktopItem { + name = "ProtonVPN"; + desktopName = "ProtonVPN GUI"; + type = "Application"; + exec = "protonvpn-gui"; + icon = "protonvpn"; + categories = "Network;"; + terminal = "false"; + }; + + trayDesktopItem = makeDesktopItem { + name = "ProtonVPN Tray"; + desktopName = "ProtonVPN Tray"; + type = "Application"; + exec = "protonvpn-tray"; + icon = "protonvpn"; + categories = "Network;"; + terminal = "false"; + }; + + nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ]; + + propagatedBuildInputs = (with python3Packages; [ + pygobject3 + pycairo + requests + configparser + ]) ++ [ + protonvpn-cli + gtk3 + gobject-introspection + libnotify + libappindicator-gtk3 + ]; + + prePatch = '' + # if pkexec is used, we want to have more time to enter password + substituteInPlace linux_gui/services/login_service.py --replace 'timeout=8' 'timeout=30' + ''; + + postInstall = '' + # wrap binaries with extra required path + wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath} + wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath} + + # install desktop files + mkdir -p $out/share/applications + cp "$desktopItem/share/applications/ProtonVPN.desktop" $out/share/applications/protonvpn-gui.desktop + cp "$trayDesktopItem/share/applications/ProtonVPN Tray.desktop" $out/share/applications/protonvpn-tray.desktop + + # create icons + for size in 16 32 48 64 72 96 128 192 512 1024; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + convert -resize "$size"x"$size" \ + linux_gui/resources/img/logo/protonvpn_logo.png \ + $out/share/icons/hicolor/"$size"x"$size"/apps/protonvpn.png + done + ''; + + # no tests + doCheck = false; + + meta = with lib; { + description = "Linux GUI for ProtonVPN, written in Python"; + homepage = "https://github.com/ProtonVPN/linux-gui"; + maintainers = with maintainers; [ offline ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ps2client/default.nix b/nixpkgs/pkgs/applications/networking/ps2client/default.nix new file mode 100644 index 000000000000..87d4e75c33e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ps2client/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + version = "unstable-2018-10-18"; + pname = "ps2client"; + + src = fetchFromGitHub { + owner = "ps2dev"; + repo = "ps2client"; + rev = "92fcaf18aabf74daaed40bd50d428cce326a87c0"; + sha256 = "1rlmns44pxm6dkh6d3cz9sw8v7pvi53r7r5r3kgwdzkhixjj0cdg"; + }; + + patchPhase = '' + sed -i -e "s|-I/usr/include||g" -e "s|-I/usr/local/include||g" Makefile + ''; + + installPhase = '' + make PREFIX=$out install + ''; + + meta = with lib; { + description = "Desktop clients to interact with ps2link and ps2netfs"; + homepage = "https://github.com/ps2dev/ps2client"; + license = licenses.bsd3; + maintainers = [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/qv2ray/default.nix b/nixpkgs/pkgs/applications/networking/qv2ray/default.nix new file mode 100644 index 000000000000..7b97bd8543df --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/qv2ray/default.nix @@ -0,0 +1,66 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, qmake +, qttools +, cmake +, clang +, grpc +, protobuf +, openssl +, pkg-config +, c-ares +, abseil-cpp +, libGL +, zlib +}: + +mkDerivation rec { + pname = "qv2ray"; + version = "2.6.3"; + + src = fetchFromGitHub { + owner = "Qv2ray"; + repo = "Qv2ray"; + rev = "v${version}"; + sha256 = "sha256-zf3IlpRbZGDZMEny0jp7S+kWtcE1Z10U9GzKC0W0mZI="; + fetchSubmodules = true; + }; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DQV2RAY_DISABLE_AUTO_UPDATE=on" + "-DQV2RAY_TRANSLATION_PATH=${placeholder "out"}/share/qv2ray/lang" + ]; + + preConfigure = '' + export _QV2RAY_BUILD_INFO_="Qv2ray Nixpkgs" + export _QV2RAY_BUILD_EXTRA_INFO_="(Nixpkgs build) nixpkgs" + ''; + + buildInputs = [ + libGL + zlib + grpc + protobuf + openssl + abseil-cpp + c-ares + ]; + + nativeBuildInputs = [ + cmake + clang + pkg-config + qmake + qttools + ]; + + meta = with lib; { + description = "An GUI frontend to v2ray"; + homepage = "https://qv2ray.github.io/en/"; + license = licenses.gpl3; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix new file mode 100644 index 000000000000..890553b338eb --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix @@ -0,0 +1,92 @@ +{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, genericUpdater, writeShellScript +, atk, cairo, gdk-pixbuf, glib, gnome2, gtk2, libGLU, libGL, pango, xorg, minizip +, lsb-release, freetype, fontconfig, polkit, polkit_gnome, pciutils +, pulseaudio }: + +let + description = "Desktop sharing application, providing remote support and online meetings"; + + desktopItem = makeDesktopItem { + name = "AnyDesk"; + exec = "@out@/bin/anydesk"; + icon = "anydesk"; + desktopName = "AnyDesk"; + genericName = description; + categories = "Network;"; + startupNotify = "false"; + }; + +in stdenv.mkDerivation rec { + pname = "anydesk"; + version = "6.1.1"; + + src = fetchurl { + urls = [ + "https://download.anydesk.com/linux/${pname}-${version}-amd64.tar.gz" + "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-amd64.tar.gz" + ]; + sha256 = "1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh"; + }; + + passthru = { + updateScript = genericUpdater { + inherit pname version; + versionLister = writeShellScript "anydesk-versionLister" '' + echo "# Versions for $1:" >> "$2" + curl -s https://anydesk.com/en/downloads/linux \ + | grep "https://[a-z0-9._/-]*-amd64.tar.gz" -o \ + | uniq \ + | sed 's,.*/anydesk-\(.*\)-amd64.tar.gz,\1,g' + ''; + }; + }; + + buildInputs = [ + atk cairo gdk-pixbuf glib gtk2 stdenv.cc.cc pango + gnome2.gtkglext libGLU libGL minizip freetype + fontconfig polkit polkit_gnome pulseaudio + ] ++ (with xorg; [ + libxcb libxkbfile libX11 libXdamage libXext libXfixes libXi libXmu + libXrandr libXtst libXt libICE libSM libXrender + ]); + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/share/{applications,doc/anydesk,icons/hicolor} + install -m755 anydesk $out/bin/anydesk + cp copyright README $out/share/doc/anydesk + cp -r icons/hicolor/* $out/share/icons/hicolor/ + cp ${desktopItem}/share/applications/*.desktop $out/share/applications + + runHook postInstall + ''; + + postFixup = '' + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath "${lib.makeLibraryPath buildInputs}" \ + $out/bin/anydesk + + # pangox is not actually necessary (it was only added as a part of gtkglext) + patchelf \ + --remove-needed libpangox-1.0.so.0 \ + $out/bin/anydesk + + wrapProgram $out/bin/anydesk \ + --prefix PATH : ${lib.makeBinPath [ lsb-release pciutils ]} + + substituteInPlace $out/share/applications/*.desktop \ + --subst-var out + ''; + + meta = with lib; { + inherit description; + homepage = "https://www.anydesk.com"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ shyim ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix new file mode 100644 index 000000000000..9efaa18e31f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/aws-workspaces/default.nix @@ -0,0 +1,65 @@ +{ stdenv, lib +, makeWrapper, dpkg, fetchurl, autoPatchelfHook +, curl, libkrb5, lttng-ust, libpulseaudio, gtk3, openssl_1_1, icu, webkitgtk, librsvg, gdk-pixbuf, libsoup, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "aws-workspaces"; + version = "3.1.8.1198"; + + src = fetchurl { + # ref https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/Packages + urls = [ + "https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb" + "https://web.archive.org/web/20210626165043/https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu/dists/bionic/main/binary-amd64/workspacesclient_${version}_amd64.deb" + ]; + sha256 = "e784bc4401c2ffaf19f3cc42cb6c6f229c73adba36df49093a1d8cd30c86aaf0"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; + + # Crashes at startup when stripping: + # "Failed to create CoreCLR, HRESULT: 0x80004005" + dontStrip = true; + + buildInputs = [ + stdenv.cc.cc.lib + libkrb5 + curl + lttng-ust + libpulseaudio + gtk3 + openssl_1_1.out + icu + webkitgtk + librsvg + gdk-pixbuf + libsoup + glib-networking + ]; + + unpackPhase = '' + ${dpkg}/bin/dpkg -x $src $out + ''; + + installPhase = '' + mkdir -p $out/bin + mv $out/opt/workspacesclient/* $out/bin + + wrapProgram $out/bin/workspacesclient \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \ + --set GDK_PIXBUF_MODULE_FILE "${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \ + --set GIO_EXTRA_MODULES "${glib-networking.out}/lib/gio/modules" + ''; + + meta = with lib; { + description = "Client for Amazon WorkSpaces, a managed, secure Desktop-as-a-Service (DaaS) solution"; + homepage = "https://clients.amazonworkspaces.com"; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; # TODO Mac support + maintainers = [ maintainers.mausch ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix new file mode 100644 index 000000000000..c73789ddeb7b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix @@ -0,0 +1,25 @@ +{ lib, callPackage }: + +# For detailed information about the Citrix source-tarball, please refer to the OEM +# reference guide: https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/ + +let + inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions; + mkCitrix = callPackage ./generic.nix { }; + + toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}"; + + unsupported = lib.listToAttrs ( + map (x: lib.nameValuePair (toAttrName x) (throw '' + Citrix Workspace at version ${x} is not supported anymore! + + Actively supported releases are listed here: + https://www.citrix.com/support/product-lifecycle/milestones/receiver.html + '')) unsupportedVersions + ); + + supported = lib.mapAttrs' ( + attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo) + ) supportedVersions; +in + supported // unsupported diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix new file mode 100644 index 000000000000..506f129d3596 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix @@ -0,0 +1,209 @@ +{ lib, stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more +, file, atk, alsa-lib, cairo, fontconfig, gdk-pixbuf, glib, gnome, gtk2-x11, gtk3 +, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2 +, gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2 +, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin +, libpulseaudio, pcsclite + +, homepage, version, prefix, hash + +, extraCerts ? [] +}: + +let + openssl' = symlinkJoin { + name = "openssl-backwards-compat"; + nativeBuildInputs = [ makeWrapper ]; + paths = [ openssl.out ]; + postBuild = '' + ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0 + ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0 + ''; + }; +in + +stdenv.mkDerivation rec { + pname = "citrix-workspace"; + inherit version; + + src = requireFile rec { + name = "${prefix}-${version}.tar.gz"; + sha256 = hash; + + message = '' + In order to use Citrix Workspace, you need to comply with the Citrix EULA and download + the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from: + + ${homepage} + + (if you do not find version ${version} there, try at + https://www.citrix.com/downloads/workspace-app/ + + Once you have downloaded the file, please use the following command and re-run the + installation: + + nix-prefetch-url file://\$PWD/${name} + ''; + }; + + dontBuild = true; + dontConfigure = true; + sourceRoot = "."; + preferLocalBuild = true; + passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient"; + + nativeBuildInputs = [ + autoPatchelfHook + file + makeWrapper + more + which + wrapGAppsHook + ]; + + buildInputs = [ + alsa-lib + atk + cairo + dconf + fontconfig + freetype + gdk-pixbuf + gnome2.gtkglext + gnome.webkitgtk + gtk2 + gtk2-x11 + gtk3 + gtk_engines + heimdal + krb5 + libcxx + libcxxabi + libjpeg + libpng12 + libsoup + libvorbis + libxml2 + mesa + nspr + nss + openssl' + pango + speex + (lib.getLib systemd) + stdenv.cc.cc + xorg.libXaw + xorg.libXmu + xorg.libXScrnSaver + xorg.libXtst + zlib + ] ++ lib.optional (lib.versionOlder version "20.04") e2fsprogs + ++ lib.optional (lib.versionAtLeast version "20.10") libpulseaudio; + + runtimeDependencies = [ + glib + pcsclite + + xorg.libX11 + xorg.libXScrnSaver + xorg.libXext + xorg.libXfixes + xorg.libXinerama + xorg.libXmu + xorg.libXrender + xorg.libXtst + xorg.libxcb + ]; + + installPhase = let + icaFlag = program: + if (builtins.match "selfservice(.*)" program) != null then "--icaroot" + else "-icaroot"; + wrap = program: '' + wrapProgram $out/opt/citrix-icaclient/${program} \ + --add-flags "${icaFlag program} $ICAInstDir" \ + --set ICAROOT "$ICAInstDir" \ + --prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone" + ''; + wrapLink = program: '' + ${wrap program} + ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program} + ''; + + copyCert = path: '' + cp -v ${path} $out/opt/citrix-icaclient/keystore/cacerts/${baseNameOf path} + ''; + + mkWrappers = lib.concatMapStringsSep "\n"; + + toWrap = [ "wfica" "selfservice" "util/configmgr" "util/conncenter" "util/ctx_rehash" ] + ++ lib.optional (lib.versionOlder version "20.06") "selfservice_old"; + in '' + runHook preInstall + + mkdir -p $out/{bin,share/applications} + export ICAInstDir="$out/opt/citrix-icaclient" + export HOME=$(mktemp -d) + + # Run upstream installer in the store-path. + sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' ./${prefix}/hinst + ${stdenv.shell} ${prefix}/hinst CDROM "$(pwd)" + + if [ -f "$ICAInstDir/util/setlog" ]; then + chmod +x "$ICAInstDir/util/setlog" + ln -sf "$ICAInstDir/util/setlog" "$out/bin/citrix-setlog" + fi + ${mkWrappers wrapLink toWrap} + ${mkWrappers wrap [ "PrimaryAuthManager" "ServiceRecord" "AuthManagerDaemon" "util/ctxwebhelper" ]} + + ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse + + # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates + echo "Expanding certificates..." + pushd "$ICAInstDir/keystore/cacerts" + awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' \ + < ${cacert}/etc/ssl/certs/ca-bundle.crt + popd + + ${mkWrappers copyCert extraCerts} + + # See https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/reference-information/#library-files + # Those files are fallbacks to support older libwekit.so and libjpeg.so + rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so || true + rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so || true + + # We support only Gstreamer 1.0 + rm $ICAInstDir/util/{gst_aud_{play,read},gst_*0.10,libgstflatstm0.10.so} + ln -sf $ICAInstDir/util/gst_play1.0 $ICAInstDir/util/gst_play + ln -sf $ICAInstDir/util/gst_read1.0 $ICAInstDir/util/gst_read + + echo "We arbitrarily set the timezone to UTC. No known consequences at this point." + echo UTC > "$ICAInstDir/timezone" + + echo "Copy .desktop files." + cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/ + + # We introduce a dependency on the source file so that it need not be redownloaded everytime + echo $src >> "$out/share/workspace_dependencies.pin" + + runHook postInstall + ''; + + # Make sure that `autoPatchelfHook` is executed before + # running `ctx_rehash`. + dontAutoPatchelf = true; + postFixup = '' + autoPatchelf -- "$out" + $out/opt/citrix-icaclient/util/ctx_rehash + ''; + + meta = with lib; { + license = licenses.unfree; + description = "Citrix Workspace"; + platforms = platforms.linux; + maintainers = with maintainers; [ pmenke ]; + inherit homepage; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix new file mode 100644 index 000000000000..1256f47041aa --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix @@ -0,0 +1,102 @@ +{ stdenv, lib }: + +let + mkVersionInfo = _: { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }: + { inherit homepage; + version = "${major}.${minor}.${patch}.${if stdenv.is64bit then x64suffix else x86suffix}"; + prefix = "linuxx${if stdenv.is64bit then "64" else "86"}"; + hash = if stdenv.is64bit then x64hash else x86hash; + }; + + # Attribute-set with all actively supported versions of the Citrix workspace app + # for Linux. + # + # The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/ + supportedVersions = lib.mapAttrs mkVersionInfo { + "20.04.0" = { + major = "20"; + minor = "04"; + patch = "0"; + x64hash = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB"; + x86hash = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F"; + x64suffix = "21"; + x86suffix = "21"; + homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html"; + }; + + "20.06.0" = { + major = "20"; + minor = "06"; + patch = "0"; + x64hash = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v"; + x86hash = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194"; + x64suffix = "15"; + x86suffix = "15"; + homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2006.html"; + }; + + "20.09.0" = { + major = "20"; + minor = "9"; + patch = "0"; + x64hash = "15gjq1vk1y76c39p72xnam9h9rnr0632i4n11l6xbjnfnad8d4pr"; + x86hash = "1b4gdmnnpa61ydiv2fnmap8cnfhskrq6swcs6i1nqrp5zvvkqrv4"; + x64suffix = "15"; + x86suffix = "15"; + homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2009.html"; + }; + + "20.10.0" = { + major = "20"; + minor = "10"; + patch = "0"; + x64hash = "13g7r92mhwqwqkm6a4k4yn232ighkmxifs7j8wdi1yva0dvklqdf"; + x86hash = "04cr2da25v8x098ccyjwa47d4krk3jpldqkyf4kk2j3hwzbqh9yx"; + x64suffix = "6"; + x86suffix = "6"; + homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2010.html"; + }; + + "20.12.0" = { + major = "20"; + minor = "12"; + patch = "0"; + x64hash = "1268nriqjp27nxqqi4dvkv8r01yj3bhglxv21xd185761da2mzry"; + x86hash = "0f982d5y9k4hscqfmqpfs277cqw1pvp191ybvg5p8rxk12fh67vf"; + x64suffix = "12"; + x86suffix = "12"; + homepage = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2012.html"; + }; + + "21.01.0" = { + major = "21"; + minor = "1"; + patch = "0"; + x64hash = "01m9g1bs6iiqbd778gjps2zznvqijlyn3mfw38aa0w1rr6ms326a"; + x86hash = "1mmx5r3wi9i6bwh4kdlpw446m8kijkaar8shi0q1n21fv0ygg3r5"; + x64suffix = "14"; + x86suffix = "14"; + homepage = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html"; + }; + + "21.03.0" = { + major = "21"; + minor = "3"; + patch = "0"; + x64hash = "004pgvxl81l99sqvrs5xzvjivjlc21rrlm2gky9hmbsm53nsl3zc"; + x86hash = "11nn9734a515dm1q880z9wmhvx8ikyh3riayyn42z22q4kd852n3"; + x64suffix = "38"; + x86suffix = "38"; + homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html"; + }; + }; + + # Retain attribute-names for abandoned versions of Citrix workspace to + # provide a meaningful error-message if it's attempted to use such an old one. + # + # The lifespans of Citrix products can be found here: + # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html + unsupportedVersions = [ ]; +in { + inherit supportedVersions unsupportedVersions; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix new file mode 100644 index 000000000000..942090f2bdf0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix @@ -0,0 +1,115 @@ +{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, alsa-lib, ffmpeg, glib, openssl +, pcre, zlib, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama +, libXrandr, libXrender, libXv, libXtst, libxkbcommon, libxkbfile, wayland +, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc, libxslt, cairo +, libusb1, libpulseaudio, cups, pcsclite, systemd, libjpeg_turbo +, buildServer ? true, nocaps ? false +}: + +let + cmFlag = flag: if flag then "ON" else "OFF"; + disabledTests = [ + # this one is probably due to our sandbox + { + dir = "libfreerdp/crypto/test"; + file = "Test_x509_cert_info.c"; + } + ]; + +in stdenv.mkDerivation rec { + pname = "freerdp"; + version = "2.3.2"; + + src = fetchFromGitHub { + owner = "FreeRDP"; + repo = "FreeRDP"; + rev = version; + sha256 = "sha256-qqpdMBDcVfXm/KB54zv23O8raGqBhAKqXo6Kj2VaI8w="; + }; + + postPatch = '' + export HOME=$TMP + + # failing test(s) + ${lib.concatMapStringsSep "\n" (e: '' + substituteInPlace ${e.dir}/CMakeLists.txt \ + --replace ${e.file} "" + rm ${e.dir}/${e.file} + '') disabledTests} + + substituteInPlace "libfreerdp/freerdp.pc.in" \ + --replace "Requires:" "Requires: @WINPR_PKG_CONFIG_FILENAME@" + '' + lib.optionalString (pcsclite != null) '' + substituteInPlace "winpr/libwinpr/smartcard/smartcard_pcsc.c" \ + --replace "libpcsclite.so" "${lib.getLib pcsclite}/lib/libpcsclite.so" + '' + lib.optionalString nocaps '' + substituteInPlace "libfreerdp/locale/keyboard_xkbfile.c" \ + --replace "RDP_SCANCODE_CAPSLOCK" "RDP_SCANCODE_LCONTROL" + ''; + + buildInputs = with lib; + [ + alsa-lib + cairo + cups + ffmpeg + glib + gst-plugins-base + gst-plugins-good + gstreamer + libX11 + libXcursor + libXdamage + libXext + libXi + libXinerama + libXrandr + libXrender + libXtst + libXv + libjpeg_turbo + libpulseaudio + libunwind + libusb1 + libxkbcommon + libxkbfile + libxslt + openssl + orc + pcre + pcsclite + wayland + zlib + ] ++ optional stdenv.isLinux systemd; + + nativeBuildInputs = [ cmake pkg-config ]; + + doCheck = true; + + cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ] + ++ lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") { + BUILD_TESTING = doCheck; + WITH_CUNIT = doCheck; + WITH_CUPS = (cups != null); + WITH_OSS = false; + WITH_PCSC = (pcsclite != null); + WITH_PULSE = (libpulseaudio != null); + WITH_SERVER = buildServer; + WITH_SSE2 = stdenv.isx86_64; + WITH_VAAPI = true; + WITH_JPEG = (libjpeg_turbo != null); + WITH_CAIRO = (cairo != null); + }; + + meta = with lib; { + description = "A Remote Desktop Protocol Client"; + longDescription = '' + FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP) + following the Microsoft Open Specifications. + ''; + homepage = "https://www.freerdp.com/"; + license = licenses.asl20; + maintainers = with maintainers; [ peterhoeg lheckemann ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix new file mode 100644 index 000000000000..3344174cb2a0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/nice-dcv-client/default.nix @@ -0,0 +1,87 @@ +{ lib, stdenv +, fetchurl +, glib +, libX11 +, gst_all_1 +, sqlite +, epoxy +, pango +, cairo +, gdk-pixbuf +, e2fsprogs +, libkrb5 +, libva +, openssl +, pcsclite +, gtk3 +, libselinux +, libxml2 +, python3Packages +, cpio +, autoPatchelfHook +}: + +stdenv.mkDerivation rec { + pname = "nice-dcv-client"; + version = "2020.2.1737-1"; + + src = + fetchurl { + url = "https://d1uj6qtbmh3dt5.cloudfront.net/2020.2/Clients/nice-dcv-viewer-${version}.el8.x86_64.rpm"; + sha256 = "sha256-SUpfHd/Btc07cfjc3zx5I5BiNatr/c4E2/mfJuU4R1E="; + }; + + nativeBuildInputs = [ autoPatchelfHook python3Packages.rpm ]; + unpackPhase = '' + rpm2cpio $src | ${cpio}/bin/cpio -idm + ''; + + buildInputs = [ + libselinux + libkrb5 + libxml2 + libva + e2fsprogs + libX11 + openssl + pcsclite + gtk3 + cairo + epoxy + pango + gdk-pixbuf + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + ]; + + installPhase = '' + mkdir -p $out/bin/ + mkdir -p $out/lib64/ + + mv usr/bin/dcvviewer $out/bin/dcvviewer + mv usr/lib64/* $out/lib64/ + + mkdir -p $out/libexec/dcvviewer + mv usr/libexec/dcvviewer/dcvviewer $out/libexec/dcvviewer/dcvviewer + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $out/libexec/dcvviewer/dcvviewer + + # Fix the wrapper script to have the right basedir. + sed -i "s#basedir=/usr#basedir=$out#" $out/bin/dcvviewer + + mv usr/share $out/ + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + + # broken symlink, seems to give a warning message if i don't delete it + rm $out/lib64/dcvviewer/gio/modules/libdconfsettings.so + ''; + + meta = with lib; { + description = "High-performance remote display protocol"; + homepage = "https://aws.amazon.com/hpc/dcv/"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ rmcgibbo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/putty/default.nix b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix new file mode 100644 index 000000000000..e7544258acf1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix @@ -0,0 +1,55 @@ +{ stdenv, lib, fetchurl, autoconf, automake, pkg-config, libtool +, gtk2, halibut, ncurses, perl, darwin +}: + +stdenv.mkDerivation rec { + version = "0.74"; + pname = "putty"; + + src = fetchurl { + urls = [ + "https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz" + "ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz" + ]; + sha256 = "0zc43g8ycyf712cdrja4k8ih5s3agw1k0nq0jkifdn8xwn4d7mfx"; + }; + + # glib-2.62 deprecations + NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS"; + + preConfigure = lib.optionalString stdenv.hostPlatform.isUnix '' + perl mkfiles.pl + ( cd doc ; make ); + ./mkauto.sh + cd unix + '' + lib.optionalString stdenv.hostPlatform.isWindows '' + cd windows + ''; + + TOOLPATH = stdenv.cc.targetPrefix; + makefile = if stdenv.hostPlatform.isWindows then "Makefile.mgw" else null; + + installPhase = if stdenv.hostPlatform.isWindows then '' + for exe in *.exe; do + install -D $exe $out/bin/$exe + done + '' else null; + + nativeBuildInputs = [ autoconf automake halibut libtool perl pkg-config ]; + buildInputs = lib.optionals stdenv.hostPlatform.isUnix [ + gtk2 ncurses + ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.libs.utmp; + enableParallelBuilding = true; + + meta = with lib; { + description = "A Free Telnet/SSH Client"; + longDescription = '' + PuTTY is a free implementation of Telnet and SSH for Windows and Unix + platforms, along with an xterm terminal emulator. + It is written and maintained primarily by Simon Tatham. + ''; + homepage = "https://www.chiark.greenend.org.uk/~sgtatham/putty/"; + license = licenses.mit; + platforms = platforms.unix ++ platforms.windows; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix new file mode 100644 index 000000000000..e2ee9428ad24 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, openssl, libX11, krb5, libXcursor, libtasn1 +, nettle, gnutls, pkg-config, autoreconfHook, libiconv +, enableCredssp ? (!stdenv.isDarwin) +} : + +stdenv.mkDerivation (rec { + pname = "rdesktop"; + version = "1.9.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "1s6k1jwd28y38ymk3lfv76ch4arpfwrbdhpkbnwwy3fc4617gb78"; + }; + + nativeBuildInputs = [pkg-config autoreconfHook]; + buildInputs = [openssl libX11 libXcursor libtasn1 nettle gnutls] + ++ lib.optional enableCredssp krb5 + ++ lib.optional stdenv.isDarwin libiconv; + + configureFlags = [ + "--with-ipv6" + "--with-openssl=${openssl.dev}" + "--disable-smartcard" + ] ++ lib.optional (!enableCredssp) "--disable-credssp"; + + meta = { + description = "Open source client for Windows Terminal Services"; + homepage = "http://www.rdesktop.org/"; + platforms = lib.platforms.linux ++ lib.platforms.darwin; + license = lib.licenses.gpl2; + }; +}) diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix new file mode 100644 index 000000000000..e2f1cf2c8a2e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv, fetchFromGitLab, cmake, ninja, pkg-config, wrapGAppsHook +, glib, gtk3, gettext, libxkbfile, libX11 +, freerdp, libssh, libgcrypt, gnutls +, pcre2, libdbusmenu-gtk3, libappindicator-gtk3 +, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon +, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core +, openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz +# The themes here are soft dependencies; only icons are missing without them. +, gnome +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "remmina"; + version = "1.4.13"; + + src = fetchFromGitLab { + owner = "Remmina"; + repo = "Remmina"; + rev = "v${version}"; + sha256 = "sha256-R+RfczAnt5R0YmXt5SmH8gOuWOH0LZ/70pOMDAXJgsE="; + }; + + nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ]; + buildInputs = [ + gsettings-desktop-schemas + glib gtk3 gettext libxkbfile libX11 + freerdp libssh libgcrypt gnutls + pcre2 libdbusmenu-gtk3 libappindicator-gtk3 + libvncserver libpthreadstubs libXdmcp libxkbcommon + libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core + openssl gnome.adwaita-icon-theme json-glib libsodium webkitgtk + harfbuzz + ]; + + cmakeFlags = [ + "-DWITH_VTE=OFF" + "-DWITH_TELEPATHY=OFF" + "-DWITH_AVAHI=OFF" + "-DFREERDP_LIBRARY=${freerdp}/lib/libfreerdp2.so" + "-DFREERDP_CLIENT_LIBRARY=${freerdp}/lib/libfreerdp-client2.so" + "-DFREERDP_WINPR_LIBRARY=${freerdp}/lib/libwinpr2.so" + "-DWINPR_INCLUDE_DIR=${freerdp}/include/winpr2" + ]; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${libX11.out}/lib" + ) + ''; + + meta = { + license = licenses.gpl2Plus; + homepage = "https://gitlab.com/Remmina/Remmina"; + description = "Remote desktop client written in GTK"; + maintainers = with maintainers; [ melsigl ryantm ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix new file mode 100644 index 000000000000..1b564e8daf4b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix @@ -0,0 +1,74 @@ +{ mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg-utils, dbus +, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc +, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes +, wrapQtAppsHook +}: + +mkDerivation rec { + pname = "teamviewer"; + version = "15.15.5"; + + src = fetchurl { + url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb"; + sha256 = "sha256-H/CSc2RcjI+Fm8awYcXm3ioAJpbSNEMwGVrTozMux3A="; + }; + + unpackPhase = '' + ar x $src + tar xf data.tar.* + ''; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ]; + buildInputs = [ dbus qtbase qtwebkit qtx11extras libX11 ]; + propagatedBuildInputs = [ qtquickcontrols ]; + + installPhase = '' + mkdir -p $out/share/teamviewer $out/bin $out/share/applications + cp -a opt/teamviewer/* $out/share/teamviewer + rm -R \ + $out/share/teamviewer/logfiles \ + $out/share/teamviewer/config \ + $out/share/teamviewer/tv_bin/xdg-utils \ + $out/share/teamviewer/tv_bin/script/{teamviewer_setup,teamviewerd.sysv,teamviewerd.service,teamviewerd.*.conf,libdepend,tv-delayed-start.sh} + + ln -s $out/share/teamviewer/tv_bin/script/teamviewer $out/bin + ln -s $out/share/teamviewer/tv_bin/teamviewerd $out/bin + ln -s $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop $out/share/applications + ln -s /var/lib/teamviewer $out/share/teamviewer/config + ln -s /var/log/teamviewer $out/share/teamviewer/logfiles + ln -s ${xdg-utils}/bin $out/share/teamviewer/tv_bin/xdg-utils + + for i in 16 20 24 32 48 256; do + size=$i"x"$i + + mkdir -p $out/share/icons/hicolor/$size/apps + ln -s $out/share/teamviewer/tv_bin/desktop/teamviewer_$i.png $out/share/icons/hicolor/$size/apps/TeamViewer.png + done; + + sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop + + substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_aux \ + --replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2' + substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \ + --replace '/var/run/' '/run/' + + wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" + wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" + wrapProgram $out/share/teamviewer/tv_bin/TeamViewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" + wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libXrandr libX11 libXext libXdamage libXtst libSM libXfixes ]}" + + wrapQtApp $out/share/teamviewer/tv_bin/script/teamviewer + wrapQtApp $out/bin/teamviewer + ''; + + dontStrip = true; + preferLocalBuild = true; + + meta = with lib; { + homepage = "http://www.teamviewer.com"; + license = licenses.unfree; + description = "Desktop sharing application, providing remote support and online meetings"; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ jagajaga dasuxullebt ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix new file mode 100644 index 000000000000..7c6e46c13792 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/default.nix @@ -0,0 +1,155 @@ +{ stdenv +, lib +, at-spi2-atk +, atk +, buildFHSUserEnv +, cairo +, dbus +, fetchurl +, fontconfig +, freetype +, gdk-pixbuf +, glib +, gsettings-desktop-schemas +, gtk2 +, gtk3-x11 +, harfbuzz +, liberation_ttf +, libjpeg +, libtiff +, libudev0-shim +, libuuid +, libX11 +, libXcursor +, libXext +, libXi +, libXinerama +, libxkbfile +, libxml2 +, libXrandr +, libXrender +, libXScrnSaver +, libxslt +, libXtst +, makeDesktopItem +, makeWrapper +, pango +, pcsclite +, pixman +, zlib +}: +let + version = "2103"; + + sysArch = + if stdenv.hostPlatform.system == "x86_64-linux" then "x64" + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + # The downloaded archive also contains ARM binaries, but these have not been tested. + + vmwareHorizonClientFiles = stdenv.mkDerivation { + name = "vmwareHorizonClientFiles"; + inherit version; + src = fetchurl { + url = "https://download3.vmware.com/software/view/viewclients/CART22FQ1/VMware-Horizon-Client-Linux-2103-8.2.0-17742757.tar.gz"; + sha256 = "62f95bb802b058a98f5ee6c2296b89bd7e15884a24dc8a8ba7ce89de7e0798e4"; + }; + nativeBuildInputs = [ makeWrapper ]; + installPhase = '' + mkdir ext $out + find ${sysArch} -type f -print0 | xargs -0n1 tar -Cext --strip-components=1 -xf + mv ext/bin ext/lib ext/share "$out"/ + + # Horizon includes a copy of libstdc++ which is loaded via $LD_LIBRARY_PATH + # when it cannot detect a new enough version already present on the system. + # The checks are distribution-specific and do not function correctly on NixOS. + # Deleting the bundled library is the simplest way to force it to use our version. + rm "$out/lib/vmware/gcc/libstdc++.so.6" + + # This libjpeg library interferes with Chromium, so we will be using ours instead. + rm $out/lib/vmware/libjpeg.* + + # This library causes the program to core-dump occasionally. Use ours instead. + rm $out/lib/vmware/view/crtbora/libcairo.* + + # Force the default GTK theme (Adwaita) because Horizon is prone to + # UI usability issues when using non-default themes, such as Adwaita-dark. + makeWrapper "$out/bin/vmware-view" "$out/bin/vmware-view_wrapper" \ + --set GTK_THEME Adwaita \ + --suffix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" \ + --suffix LD_LIBRARY_PATH : "$out/lib/vmware/view/crtbora:$out/lib/vmware" + ''; + }; + + vmwareFHSUserEnv = buildFHSUserEnv { + name = "vmware-view"; + + runScript = "${vmwareHorizonClientFiles}/bin/vmware-view_wrapper"; + + targetPkgs = pkgs: [ + at-spi2-atk + atk + cairo + dbus + fontconfig + freetype + gdk-pixbuf + glib + gtk2 + gtk3-x11 + harfbuzz + liberation_ttf + libjpeg + libtiff + libudev0-shim + libuuid + libX11 + libXcursor + libXext + libXi + libXinerama + libxkbfile + libxml2 + libXrandr + libXrender + libXScrnSaver + libXtst + pango + pcsclite + pixman + vmwareHorizonClientFiles + zlib + ]; + }; + + desktopItem = makeDesktopItem { + name = "vmware-view"; + desktopName = "VMware Horizon Client"; + icon = "${vmwareHorizonClientFiles}/share/icons/vmware-view.png"; + exec = "${vmwareFHSUserEnv}/bin/vmware-view %u"; + mimeType = "x-scheme-handler/vmware-view"; + }; + +in +stdenv.mkDerivation { + name = "vmware-view"; + + dontUnpack = true; + + installPhase = '' + mkdir -p $out/bin $out/share/applications + cp "${desktopItem}"/share/applications/* $out/share/applications/ + ln -s "${vmwareFHSUserEnv}/bin/vmware-view" "$out/bin/" + ''; + + unwrapped = vmwareHorizonClientFiles; + + passthru.updateScript = ./update.sh; + + meta = with lib; { + description = "Allows you to connect to your VMware Horizon virtual desktop"; + homepage = "https://www.vmware.com/go/viewclients"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ buckley310 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/update.sh b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/update.sh new file mode 100755 index 000000000000..126cb17a7c28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/vmware-horizon-client/update.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env nix-shell +#!nix-shell -p curl -p jq -p common-updater-scripts -i bash +set -e + +entryPointURL='https://my.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY' + +function getTarballMetaUrl { + curl "$entryPointURL" | jq -r ' + .dlgEditionsLists | .[] | select(.name | contains("Client for Linux")) | + .dlgList | .[] | select(.name | contains("tarball version")) | + @uri "https://my.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)" + ' +} + +meta="$( curl "$(getTarballMetaUrl)" | jq ".downloadFiles | .[]" )" + +ver="$( echo "$meta" | jq -r .version )" +url="$( echo "$meta" | jq -r .thirdPartyDownloadUrl )" +sum="$( echo "$meta" | jq -r .sha256checksum )" + +echo +echo "version: $ver" +echo "tar url: $url" +echo " sha256: $sum" + +cd "$(dirname "$0")/../../../../.." +update-source-version vmware-horizon-client.unwrapped "$ver" "$sum" "$url" diff --git a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix new file mode 100644 index 000000000000..7be719c18037 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitLab +, meson, ninja, pkg-config, scdoc +, mesa, lz4, zstd, ffmpeg, libva +}: + +stdenv.mkDerivation rec { + pname = "waypipe-unstable"; + version = "0.8.0"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mstoeckl"; + repo = "waypipe"; + rev = "v${version}"; + sha256 = "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"; + }; + + nativeBuildInputs = [ meson ninja pkg-config scdoc ]; + + buildInputs = [ + # Optional dependencies: + mesa lz4 zstd ffmpeg libva + ]; + + meta = with lib; { + description = "A network proxy for Wayland clients (applications)"; + longDescription = '' + waypipe is a proxy for Wayland clients. It forwards Wayland messages and + serializes changes to shared memory buffers over a single socket. This + makes application forwarding similar to ssh -X feasible. + ''; + homepage = "https://mstoeckl.com/notes/gsoc/blog.html"; + changelog = "https://gitlab.freedesktop.org/mstoeckl/waypipe/-/releases#v${version}"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix new file mode 100644 index 000000000000..3e2231c10e82 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, meson, pkg-config, ninja, scdoc +, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml, pam +}: + +stdenv.mkDerivation rec { + pname = "wayvnc"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "any1"; + repo = pname; + rev = "v${version}"; + sha256 = "0q48fgh6gf3jicy4bk3kq18h9lhqfq9qz32ri6j9ffvbb8mcw64s"; + }; + + nativeBuildInputs = [ meson pkg-config ninja scdoc wayland ]; + buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml pam ]; + + meta = with lib; { + description = "A VNC server for wlroots based Wayland compositors"; + longDescription = '' + This is a VNC server for wlroots based Wayland compositors. It attaches + to a running Wayland session, creates virtual input devices and exposes a + single display via the RFB protocol. The Wayland session may be a + headless one, so it is also possible to run wayvnc without a physical + display attached. + ''; + inherit (src.meta) homepage; + changelog = "https://github.com/any1/wayvnc/releases/tag/v${version}"; + license = licenses.isc; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix new file mode 100644 index 000000000000..d40d8032c294 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchurl, cups, libssh, libXpm, nx-libs, openldap, openssh +, mkDerivation, qtbase, qtsvg, qtx11extras, qttools, phonon, pkg-config }: + +mkDerivation rec { + pname = "x2goclient"; + version = "4.1.2.2"; + + src = fetchurl { + url = "https://code.x2go.org/releases/source/${pname}/${pname}-${version}.tar.gz"; + sha256 = "yZUyZ8QPpnEZrZanO6yx8mYZbaIFnwzc0bjVGZQh0So="; + }; + + buildInputs = [ cups libssh libXpm nx-libs openldap openssh + qtbase qtsvg qtx11extras qttools phonon pkg-config ]; + + postPatch = '' + substituteInPlace src/onmainwindow.cpp --replace "/usr/sbin/sshd" "${openssh}/bin/sshd" + substituteInPlace Makefile \ + --replace "SHELL=/bin/bash" "SHELL=$SHELL" \ + --replace "lrelease-qt4" "${qttools.dev}/bin/lrelease" \ + --replace "qmake-qt4" "${qtbase.dev}/bin/qmake" \ + --replace "-o root -g root" "" + ''; + + makeFlags = [ "PREFIX=$(out)" "ETCDIR=$(out)/etc" "build_client" "build_man" ]; + + enableParallelBuilding = true; + + installTargets = [ "install_client" "install_man" ]; + + qtWrapperArgs = [ "--suffix PATH : ${nx-libs}/bin:${openssh}/libexec" ]; + + meta = with lib; { + description = "Graphical NoMachine NX3 remote desktop client"; + homepage = "http://x2go.org/"; + maintainers = with maintainers; [ mkg20001 ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix new file mode 100644 index 000000000000..6d7923872ec9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/x2goserver/default.nix @@ -0,0 +1,93 @@ +{ stdenv, lib, fetchurl, perlPackages, makeWrapper, perl, which, nx-libs +, util-linux, coreutils, glibc, gawk, gnused, gnugrep, findutils, xorg +, nettools, iproute2, bc, procps, psmisc, lsof, pwgen, openssh, sshfs, bash +}: + +let + pname = "x2goserver"; + version = "4.1.0.3"; + + src = fetchurl { + url = "https://code.x2go.org/releases/source/${pname}/${pname}-${version}.tar.gz"; + sha256 = "Z3aqo1T1pE40nws8F21JiMiKYYwu30bJijeuicBp3NA="; + }; + + x2go-perl = perlPackages.buildPerlPackage rec { + pname = "X2Go"; + inherit version src; + makeFlags = [ "-f" "Makefile.perl" ]; + patchPhase = '' + substituteInPlace X2Go/Config.pm --replace '/etc/x2go' '/var/lib/x2go/conf' + substituteInPlace X2Go/Server/DB.pm \ + --replace '$x2go_lib_path/libx2go-server-db-sqlite3-wrapper' \ + '/run/wrappers/bin/x2gosqliteWrapper' + substituteInPlace X2Go/Server/DB/SQLite3.pm --replace "user='x2gouser'" "user='x2go'" + ''; + }; + + perlEnv = perl.withPackages (p: with p; [ + x2go-perl DBI DBDSQLite FileBaseDir TryTiny CaptureTiny ConfigSimple Switch FileWhich + ]); + + binaryDeps = [ + perlEnv which nx-libs util-linux coreutils glibc.bin gawk gnused gnugrep + findutils nettools iproute2 bc procps psmisc lsof pwgen openssh sshfs + xorg.xauth xorg.xinit xorg.xrandr xorg.xmodmap xorg.xwininfo xorg.fontutil + xorg.xkbcomp xorg.setxkbmap + ]; +in +stdenv.mkDerivation rec { + inherit pname version src; + + buildInputs = [ perlEnv bash ]; + + nativeBuildInputs = [ makeWrapper ]; + + prePatch = '' + patchShebangs . + sed -i '/Makefile.PL\|Makefile.perl/d' Makefile + for i in */Makefile; do + substituteInPlace "$i" --replace "-o root -g root " "" + done + substituteInPlace libx2go-server-db-perl/Makefile --replace "chmod 2755" "chmod 755" + for i in x2goserver/sbin/x2godbadmin x2goserver/bin/x2go* + do + substituteInPlace $i --replace '/etc/x2go' '/var/lib/x2go/conf' + done + substituteInPlace x2goserver/sbin/x2gocleansessions \ + --replace '/var/run/x2goserver.pid' '/var/run/x2go/x2goserver.pid' + substituteInPlace x2goserver/sbin/x2godbadmin --replace 'user="x2gouser"' 'user="x2go"' + substituteInPlace x2goserver-xsession/etc/Xsession \ + --replace "SSH_AGENT /bin/bash -c" "SSH_AGENT ${bash}/bin/bash -c" \ + --replace "[ -f /etc/redhat-release ]" "[ -d /etc/nix ] || [ -f /etc/redhat-release ]" + ''; + + makeFlags = [ "PREFIX=/" "NXLIBDIR=${nx-libs}/lib/nx" ]; + + installFlags = [ "DESTDIR=$(out)" ]; + + postInstall = '' + mv $out/etc/x2go/x2goserver.conf{,.example} + mv $out/etc/x2go/x2goagent.options{,.example} + ln -sf ${nx-libs}/bin/nxagent $out/bin/x2goagent + for i in $out/sbin/x2go* $(find $out/bin -type f) \ + $(ls $out/lib/x2go/x2go* | grep -v x2gocheckport) + do + wrapProgram $i --prefix PATH : ${lib.makeBinPath binaryDeps}:$out + done + # We're patching @INC of the setgid wrapper, because we can't mix + # the perl wrapper (for PERL5LIB) with security.wrappers (for setgid) + sed -ie "s,.\+bin/perl,#!${perl}/bin/perl -I ${perlEnv}/lib/perl5/site_perl," \ + $out/lib/x2go/libx2go-server-db-sqlite3-wrapper.pl + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Remote desktop application, server component"; + homepage = "http://x2go.org/"; + platforms = lib.platforms.linux; + license = licenses.gpl2; + maintainers = with maintainers; [ averelld mkg20001 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix new file mode 100644 index 000000000000..b8677a2683c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix @@ -0,0 +1,105 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, which, perl, autoconf, automake, libtool, openssl, systemd, pam, fuse, libjpeg, libopus, nasm, xorg }: + +let + xorgxrdp = stdenv.mkDerivation rec { + pname = "xorgxrdp"; + version = "0.2.9"; + + src = fetchFromGitHub { + owner = "neutrinolabs"; + repo = "xorgxrdp"; + rev = "v${version}"; + sha256 = "1bhp5x47hajhinvglmc4vxxnpjvfjm6369njb3ghqfr7c5xypvzr"; + }; + + nativeBuildInputs = [ pkg-config autoconf automake which libtool nasm ]; + + buildInputs = [ xorg.xorgserver ]; + + postPatch = '' + # patch from Debian, allows to run xrdp daemon under unprivileged user + substituteInPlace module/rdpClientCon.c \ + --replace 'g_sck_listen(dev->listen_sck);' 'g_sck_listen(dev->listen_sck); g_chmod_hex(dev->uds_data, 0x0660);' + + substituteInPlace configure.ac \ + --replace 'moduledir=`pkg-config xorg-server --variable=moduledir`' "moduledir=$out/lib/xorg/modules" \ + --replace 'sysconfdir="/etc"' "sysconfdir=$out/etc" + ''; + + preConfigure = "./bootstrap"; + + configureFlags = [ "XRDP_CFLAGS=-I${xrdp.src}/common" ]; + + enableParallelBuilding = true; + }; + + xrdp = stdenv.mkDerivation rec { + version = "0.9.9"; + pname = "xrdp"; + + src = fetchFromGitHub { + owner = "volth"; + repo = "xrdp"; + rev = "refs/tags/runtime-cfg-path-${version}"; # Fixes https://github.com/neutrinolabs/xrdp/issues/609; not a patch on top of the official repo because "xorgxrdp.configureFlags" above includes "xrdp.src" which must be patched already + fetchSubmodules = true; + sha256 = "0ynj6pml4f38y8571ryhifza57wfqg4frdrjcwzw3fmryiznfm1z"; + }; + + nativeBuildInputs = [ pkg-config autoconf automake which libtool nasm ]; + + buildInputs = [ openssl systemd pam fuse libjpeg libopus xorg.libX11 xorg.libXfixes xorg.libXrandr ]; + + postPatch = '' + substituteInPlace sesman/xauth.c --replace "xauth -q" "${xorg.xauth}/bin/xauth -q" + ''; + + preConfigure = '' + (cd librfxcodec && ./bootstrap && ./configure --prefix=$out --enable-static --disable-shared) + ./bootstrap + ''; + dontDisableStatic = true; + configureFlags = [ "--with-systemdsystemunitdir=/var/empty" "--enable-ipv6" "--enable-jpeg" "--enable-fuse" "--enable-rfxcodec" "--enable-opus" ]; + + installFlags = [ "DESTDIR=$(out)" "prefix=" ]; + + postInstall = '' + # remove generated keys (as non-determenistic) and upstart script + rm $out/etc/xrdp/{rsakeys.ini,key.pem,cert.pem,xrdp.sh} + + cp $src/keygen/openssl.conf $out/share/xrdp/openssl.conf + + substituteInPlace $out/etc/xrdp/sesman.ini --replace /etc/xrdp/pulse $out/etc/xrdp/pulse + + # remove all session types except Xorg (they are not supported by this setup) + ${perl}/bin/perl -i -ne 'print unless /\[(X11rdp|Xvnc|console|vnc-any|sesman-any|rdp-any|neutrinordp-any)\]/ .. /^$/' $out/etc/xrdp/xrdp.ini + + # remove all session types and then add Xorg + ${perl}/bin/perl -i -ne 'print unless /\[(X11rdp|Xvnc|Xorg)\]/ .. /^$/' $out/etc/xrdp/sesman.ini + + cat >> $out/etc/xrdp/sesman.ini <<EOF + + [Xorg] + param=${xorg.xorgserver}/bin/Xorg + param=-modulepath + param=${xorgxrdp}/lib/xorg/modules,${xorg.xorgserver}/lib/xorg/modules + param=-config + param=${xorgxrdp}/etc/X11/xrdp/xorg.conf + param=-noreset + param=-nolisten + param=tcp + param=-logfile + param=.xorgxrdp.%s.log + EOF + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "An open source RDP server"; + homepage = "https://github.com/neutrinolabs/xrdp"; + license = licenses.asl20; + maintainers = [ maintainers.volth ]; + platforms = platforms.linux; + }; + }; +in xrdp diff --git a/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix new file mode 100644 index 000000000000..fdd4ebdbd92f --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, ... }: + +let + arch = { + x86_64-linux = "x64"; + i686-linux = "i386"; + aarch64-linux = "arm64"; + }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + libPath = lib.makeLibraryPath [ stdenv.cc.libc ]; + +in stdenv.mkDerivation rec { + pname = "resilio-sync"; + version = "2.7.2"; + + src = fetchurl { + url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz"; + sha256 = { + x86_64-linux = "0gar5lzv1v4yqmypwqsjnfb64vffzn8mw9vnjr733fgf1pmr57hf"; + i686-linux = "1bws7r86h1vysjkhyvp2zk8yvxazmlczvhjlcayldskwq48iyv6w"; + aarch64-linux = "0j8wk5cf8bcaaqxi8gnqf1mpv8nyfjyr4ibls7jnn2biqq767af2"; + }.${stdenv.hostPlatform.system}; + }; + + dontStrip = true; # Don't strip, otherwise patching the rpaths breaks + sourceRoot = "."; + + installPhase = '' + install -D rslsync "$out/bin/rslsync" + patchelf \ + --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${libPath} "$out/bin/rslsync" + ''; + + meta = with lib; { + description = "Automatically sync files via secure, distributed technology"; + homepage = "https://www.resilio.com/"; + license = licenses.unfreeRedistributable; + platforms = platforms.linux; + maintainers = with maintainers; [ domenkozar thoughtpolice cwoac ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/scaleft/default.nix b/nixpkgs/pkgs/applications/networking/scaleft/default.nix new file mode 100644 index 000000000000..6dca196948d7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/scaleft/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, rpmextract, patchelf, bash }: + +stdenv.mkDerivation rec { + pname = "scaleft"; + version = "1.45.4"; + + src = + fetchurl { + url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm"; + sha256 = "1yskybjba9ljy1wazddgrm7a4cc72i1xbk7sxnjpcq4hdy3b50l0"; + }; + + nativeBuildInputs = [ patchelf rpmextract ]; + + libPath = + lib.makeLibraryPath + [ stdenv.cc stdenv.cc.cc.lib ]; + + buildCommand = '' + mkdir -p $out/bin/ + cd $out + rpmextract $src + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + usr/bin/sft + patchelf \ + --set-rpath ${libPath} \ + usr/bin/sft + ln -s $out/usr/bin/sft $out/bin/sft + chmod +x $out/bin/sft + patchShebangs $out + ''; + + meta = with lib; { + description = "ScaleFT provides Zero Trust software which you can use to secure your internal servers and services"; + homepage = "https://www.scaleft.com"; + license = licenses.unfree; + maintainers = with maintainers; [ jloyet ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix new file mode 100644 index 000000000000..446da4cdea32 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix @@ -0,0 +1,34 @@ +{ mkDerivation, lib, fetchFromGitHub, pkg-config, cmake, qtbase, qttools +, seafile-shared, jansson, libsearpc +, withShibboleth ? true, qtwebengine }: + +mkDerivation rec { + pname = "seafile-client"; + version = "8.0.3"; + + src = fetchFromGitHub { + owner = "haiwen"; + repo = "seafile-client"; + rev = "v${version}"; + sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0="; + }; + + nativeBuildInputs = [ pkg-config cmake ]; + buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ] + ++ lib.optional withShibboleth qtwebengine; + + cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ] + ++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON"; + + qtWrapperArgs = [ + "--suffix PATH : ${lib.makeBinPath [ seafile-shared ]}" + ]; + + meta = with lib; { + homepage = "https://github.com/haiwen/seafile-client"; + description = "Desktop client for Seafile, the Next-generation Open Source Cloud Storage"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ eduardosm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix new file mode 100644 index 000000000000..36518db09917 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/seaweedfs/default.nix @@ -0,0 +1,32 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, testVersion +, seaweedfs +}: + +buildGoModule rec { + pname = "seaweedfs"; + version = "2.56"; + + src = fetchFromGitHub { + owner = "chrislusf"; + repo = "seaweedfs"; + rev = version; + sha256 = "1y9abk2i0qk5c00dnw8wvasy7dmmy6az8d1cf9bq0dwh8g8kylbn"; + }; + + vendorSha256 = "015qvd0h786z1iwv81i107z92mqhzldp1hkcsp75wzf4j7nmzxvf"; + + subPackages = [ "weed" ]; + + passthru.tests.version = + testVersion { package = seaweedfs; command = "weed version"; }; + + meta = with lib; { + description = "Simple and highly scalable distributed file system"; + homepage = "https://github.com/chrislusf/seaweedfs"; + maintainers = with maintainers; [ cmacrae raboof ]; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix new file mode 100644 index 000000000000..aa5175fca9ed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/shellhub-agent/default.nix @@ -0,0 +1,56 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, genericUpdater +, common-updater-scripts +, makeWrapper +, openssh +}: + +buildGoModule rec { + pname = "shellhub-agent"; + version = "0.7.2"; + + src = fetchFromGitHub { + owner = "shellhub-io"; + repo = "shellhub"; + rev = "v${version}"; + sha256 = "02ka7acynkwkml2pavlv4j5vkm6x5aq5sfxgydv26qzs39f1wdgc"; + }; + + modRoot = "./agent"; + + vendorSha256 = "18z3vwcwkyj6hcvl35qmj034237h9l18dvcbx1hxry7qdwv807c9"; + + buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ]; + + passthru = { + updateScript = genericUpdater { + inherit pname version; + versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}"; + rev-prefix = "v"; + ignoredVersions = ".(rc|beta).*"; + }; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/agent --prefix PATH : ${lib.makeBinPath [ openssh ]} + ''; + + meta = with lib; { + description = + "Enables easy access any Linux device behind firewall and NAT"; + longDescription = '' + ShellHub is a modern SSH server for remotely accessing Linux devices via + command line (using any SSH client) or web-based user interface, designed + as an alternative to _sshd_. Think ShellHub as centralized SSH for the the + edge and cloud computing. + ''; + homepage = "https://shellhub.io/"; + license = licenses.asl20; + maintainers = with maintainers; [ otavio ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix b/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix new file mode 100644 index 000000000000..d4866d9f1a41 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, perlPackages }: + +stdenv.mkDerivation rec { + pname = "sieve-connect"; + version = "0.90"; + + src = fetchFromGitHub { + owner = "philpennock"; + repo = "sieve-connect"; + rev = "v${version}"; + sha256 = "1ghvfa5ifa68b6imh85bkmy00r93c5f9hs6d039axb73gmma580p"; + }; + + buildInputs = [ perlPackages.perl ]; + nativeBuildInputs = [ makeWrapper ]; + + preBuild = '' + # Fixes failing build when not building in git repo + mkdir .git + touch .git/HEAD + echo "${version}" > versionfile + echo "$(date +%Y-%m-%d)" > datefile + ''; + + buildFlags = [ "PERL5LIB=${perlPackages.makePerlPath [ perlPackages.FileSlurp ]}" "bin" "man" ]; + + installPhase = '' + mkdir -p $out/bin $out/share/man/man1 + install -m 755 sieve-connect $out/bin + gzip -c sieve-connect.1 > $out/share/man/man1/sieve-connect.1.gz + + wrapProgram $out/bin/sieve-connect \ + --prefix PERL5LIB : "${with perlPackages; makePerlPath [ + AuthenSASL Socket6 IOSocketInet6 IOSocketSSL NetSSLeay NetDNS + TermReadKey TermReadLineGnu ]}" + ''; + + meta = with lib; { + description = "A client for the MANAGESIEVE Protocol"; + longDescription = '' + This is sieve-connect. A client for the ManageSieve protocol, + as specifed in RFC 5804. Historically, this was MANAGESIEVE as + implemented by timsieved in Cyrus IMAP. + ''; + homepage = "https://github.com/philpennock/sieve-connect"; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ das_j ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch b/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch new file mode 100644 index 000000000000..69a3e3287371 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch @@ -0,0 +1,14 @@ +diff --git a/src/dejitter.c b/src/dejitter.c +index 1904ab3..cb3624d 100644 +--- a/src/dejitter.c ++++ b/src/dejitter.c +@@ -22,6 +22,8 @@ + + #include <errno.h> + ++#include <string.h> ++#include <sys/time.h> + #include <unistd.h> + #include <sys/types.h> + #include <sys/socket.h> + #include <netinet/in.h> diff --git a/nixpkgs/pkgs/applications/networking/siproxd/default.nix b/nixpkgs/pkgs/applications/networking/siproxd/default.nix new file mode 100644 index 000000000000..2a91eb35d80e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/siproxd/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, libosip }: + +stdenv.mkDerivation rec { + name = "siproxd-0.8.2"; + + src = fetchurl { + url = "mirror://sourceforge/siproxd/${name}.tar.gz"; + sha256 = "1l6cyxxhra825jiiw9npa7jrbfgbyfpk4966cqkrw66cn28y8v2j"; + }; + + patches = [ ./cheaders.patch ]; + + buildInputs = [ libosip ]; + + meta = { + homepage = "http://siproxd.sourceforge.net/"; + description = "A masquerading SIP Proxy Server"; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; linux; + license = lib.licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix new file mode 100644 index 000000000000..db54231ecf2b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix @@ -0,0 +1,22 @@ +{ lib, stdenv, fetchurl, pkg-config, libtool, gtk3, libpcap, goocanvas2, +popt, itstool, libxml2 }: + +stdenv.mkDerivation rec { + name = "etherape-0.9.20"; + src = fetchurl { + url = "mirror://sourceforge/etherape/${name}.tar.gz"; + sha256 = "sha256-9UsQtWOXB1yYofGS4rMIF+ISWBsJKd0DBOFfqOr1n5Y="; + }; + + nativeBuildInputs = [ itstool pkg-config (lib.getBin libxml2) ]; + buildInputs = [ + libtool gtk3 libpcap goocanvas2 popt + ]; + + meta = with lib; { + homepage = "http://etherape.sourceforge.net/"; + license = lib.licenses.gpl2Plus; + platforms = with platforms; linux; + maintainers = with maintainers; [ symphorien ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix new file mode 100644 index 000000000000..a3c79fd9560b --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre +, openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip, harfbuzz +, pkg-config }: + +stdenv.mkDerivation rec { + pname = "ettercap"; + version = "0.8.3.1"; + + src = fetchFromGitHub { + owner = "Ettercap"; + repo = "ettercap"; + rev = "v${version}"; + sha256 = "1sdf1ssa81ib6k0mc5m2jzbjl4jd1yv6ahv5dwx2x9w4b2pyqg1c"; + }; + + strictDeps = true; + nativeBuildInputs = [ cmake flex bison pkg-config ]; + buildInputs = [ + libpcap libnet zlib curl pcre openssl ncurses + glib gtk3 atk pango geoip harfbuzz + ]; + + preConfigure = '' + substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \ + --replace /usr \$\{INSTALL_PREFIX\} + ''; + + cmakeFlags = [ + "-DBUNDLED_LIBS=Off" + "-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" + ]; + + # TODO: Remove after the next release (0.8.4 should work without this): + NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ]; + + meta = with lib; { + description = "Comprehensive suite for man in the middle attacks"; + longDescription = '' + Ettercap is a comprehensive suite for man in the middle attacks. It + features sniffing of live connections, content filtering on the fly and + many other interesting tricks. It supports active and passive dissection + of many protocols and includes many features for network and host + analysis. + ''; + homepage = "https://www.ettercap-project.org/"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ pSub ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix new file mode 100644 index 000000000000..ad1ee0a0b302 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchurl, pkg-config, libpcap, pcre, libnl, zlib, libmicrohttpd +, sqlite, protobuf, protobufc, libusb1, libcap, binutils, elfutils +, withNetworkManager ? false, glib, networkmanager +, withPython ? false, python3 +, withSensors ? false, lm_sensors}: + +# couldn't get python modules to build correctly, +# waiting for some other volunteer to fix it +assert !withPython; + +stdenv.mkDerivation rec { + pname = "kismet"; + version = "2020-09-R2"; + + src = fetchurl { + url = "https://www.kismetwireless.net/code/${pname}-${version}.tar.xz"; + sha256 = "1n6y6sgqf50bng8n0mhs2r1w0ak14mv654sqay72a78wh2s7ywzg"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + libpcap pcre libmicrohttpd libnl zlib sqlite protobuf protobufc + libusb1 libcap binutils elfutils + ] ++ lib.optionals withNetworkManager [ networkmanager glib ] + ++ lib.optional withSensors lm_sensors + ++ lib.optional withPython (python3.withPackages(ps: [ ps.setuptools ps.protobuf + ps.numpy ps.pyserial ])); + + configureFlags = [] + ++ lib.optional (!withNetworkManager) "--disable-libnm" + ++ lib.optional (!withPython) "--disable-python-tools" + ++ lib.optional (!withSensors) "--disable-lmsensors"; + + postConfigure = '' + sed -e 's/-o $(INSTUSR)//' \ + -e 's/-g $(INSTGRP)//' \ + -e 's/-g $(MANGRP)//' \ + -e 's/-g $(SUIDGROUP)//' \ + -i Makefile + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Wireless network sniffer"; + homepage = "https://www.kismetwireless.net/"; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix new file mode 100644 index 000000000000..b7a17896ec33 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, autoconf, automake, fetchFromGitHub, libpcap, ncurses, openssl, pcre }: + +stdenv.mkDerivation rec { + pname = "sngrep"; + version = "1.4.8"; + + src = fetchFromGitHub { + owner = "irontec"; + repo = pname; + rev = "v${version}"; + sha256 = "0lnwsw9x4y4lr1yh749y24f71p5zsghwh5lp28zqfanw025mipf2"; + }; + + buildInputs = [ + libpcap ncurses pcre openssl ncurses + ]; + + nativeBuildInputs = [ + autoconf automake + ]; + + configureFlags = [ + "--with-pcre" + "--enable-unicode" + "--enable-ipv6" + "--enable-eep" + ]; + + preConfigure = "./bootstrap.sh"; + + meta = with lib; { + description = "A tool for displaying SIP calls message flows from terminal"; + homepage = "https://github.com/irontec/sngrep"; + license = licenses.gpl3; + platforms = platforms.unix; + maintainers = with maintainers; [ jorise ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix new file mode 100644 index 000000000000..6674808e91ba --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, libusb1 }: + +stdenv.mkDerivation rec { + pname = "whsniff"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "homewsn"; + repo = pname; + rev = "v${version}"; + sha256 = "000l5vk9c0332m35lndk8892ivdr445lgg25hmq1lajn24cash5w"; + }; + + buildInputs = [ libusb1 ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + homepage = "https://github.com/homewsn/whsniff"; + description = "Packet sniffer for 802.15.4 wireless networks"; + maintainers = with maintainers; [ snicket2100 ]; + platforms = platforms.linux; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix new file mode 100644 index 000000000000..4fe5272bc078 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -0,0 +1,110 @@ +{ lib, stdenv, fetchurl, pkg-config, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares +, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib +, libssh, nghttp2, zlib, cmake, makeWrapper +, withQt ? true, qt5 ? null +, ApplicationServices, SystemConfiguration, gmp +}: + +assert withQt -> qt5 != null; + +with lib; + +let + version = "3.4.6"; + variant = if withQt then "qt" else "cli"; + +in stdenv.mkDerivation { + pname = "wireshark-${variant}"; + inherit version; + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz"; + sha256 = "0a26kcj3n1a2kw1f3fc6s1x3rw3f3bj2cq6rp7k0kc4ciwh7i9hj"; + }; + + cmakeFlags = [ + "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}" + "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}" + # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444 + "-DCMAKE_INSTALL_LIBDIR=lib" + ]; + + # Avoid referencing -dev paths because of debug assertions. + NIX_CFLAGS_COMPILE = [ "-DQT_NO_DEBUG" ]; + + nativeBuildInputs = [ bison cmake flex makeWrapper pkg-config ] ++ optional withQt qt5.wrapQtAppsHook; + + buildInputs = [ + gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt + libgpgerror gnutls geoip c-ares python3 glib zlib + ] ++ optionals withQt (with qt5; [ qtbase qtmultimedia qtsvg qttools ]) + ++ optionals stdenv.isLinux [ libcap libnl ] + ++ optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ] + ++ optionals (withQt && stdenv.isDarwin) (with qt5; [ qtmacextras ]); + + patches = [ ./wireshark-lookup-dumpcap-in-path.patch ]; + + postPatch = '' + sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt + ''; + + preBuild = '' + export LD_LIBRARY_PATH="$PWD/run" + ''; + + postInstall = '' + # to remove "cycle detected in the references" + mkdir -p $dev/lib/wireshark + mv $out/lib/wireshark/cmake $dev/lib/wireshark + '' + (if stdenv.isDarwin && withQt then '' + mkdir -p $out/Applications + mv $out/bin/Wireshark.app $out/Applications/Wireshark.app + + for f in $(find $out/Applications/Wireshark.app/Contents/PlugIns -name "*.so"); do + for dylib in $(otool -L $f | awk '/^\t*lib/ {print $1}'); do + install_name_tool -change "$dylib" "$out/lib/$dylib" "$f" + done + done + + wrapQtApp $out/Applications/Wireshark.app/Contents/MacOS/Wireshark + '' else optionalString withQt '' + install -Dm644 -t $out/share/applications ../wireshark.desktop + + install -Dm644 ../image/wsicon.svg $out/share/icons/wireshark.svg + mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil,wiretap} -pv + + cp config.h $dev/include/wireshark/ + cp ../ws_*.h $dev/include + cp ../epan/*.h $dev/include/epan/ + cp ../epan/wmem/*.h $dev/include/epan/wmem/ + cp ../epan/ftypes/*.h $dev/include/epan/ftypes/ + cp ../epan/dfilter/*.h $dev/include/epan/dfilter/ + cp ../wsutil/*.h $dev/include/wsutil/ + cp ../wiretap/*.h $dev/include/wiretap + ''); + + dontFixCmake = true; + + shellHook = '' + # to be able to run the resulting binary + export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 + ''; + + meta = with lib; { + homepage = "https://www.wireshark.org/"; + changelog = "https://www.wireshark.org/docs/relnotes/wireshark-${version}.html"; + description = "Powerful network protocol analyzer"; + license = licenses.gpl2Plus; + + longDescription = '' + Wireshark (formerly known as "Ethereal") is a powerful network + protocol analyzer developed by an international team of networking + experts. It runs on UNIX, macOS and Windows. + ''; + + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ bjornfor fpletz ]; + mainProgram = if withQt then "wireshark" else "tshark"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch new file mode 100644 index 000000000000..549da5436e60 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch @@ -0,0 +1,63 @@ +From 5bef9deeff8a2e4401de0f45c9701cd6f98f29d8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com> +Date: Thu, 26 Nov 2015 21:03:35 +0100 +Subject: [PATCH] Lookup dumpcap in PATH + +NixOS patch: Look for dumpcap in PATH first, because there may be a +dumpcap wrapper that we want to use instead of the default +non-setuid dumpcap binary. + +Also change execv() to execvp() because we've set argv[0] to "dumpcap" +and have to enable PATH lookup. Wireshark is not a setuid program, so +looking in PATH is not a security issue. + +Signed-off-by: Franz Pletz <fpletz@fnordicwalking.de> +--- + capchild/capture_sync.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c +index 970688e..49914d5 100644 +--- a/capchild/capture_sync.c ++++ b/capchild/capture_sync.c +@@ -332,7 +332,18 @@ init_pipe_args(int *argc) { + #ifdef _WIN32 + exename = g_strdup_printf("%s\\dumpcap.exe", progfile_dir); + #else +- exename = g_strdup_printf("%s/dumpcap", progfile_dir); ++ /* ++ * NixOS patch: Look for dumpcap in PATH first, because there may be a ++ * dumpcap wrapper that we want to use instead of the default ++ * non-setuid dumpcap binary. ++ */ ++ if (system("command -v dumpcap >/dev/null") == 0) { ++ /* Found working dumpcap */ ++ exename = g_strdup_printf("dumpcap"); ++ } else { ++ /* take Wireshark's absolute program path and replace "Wireshark" with "dumpcap" */ ++ exename = g_strdup_printf("%s/dumpcap", progfile_dir); ++ } + #endif + + /* Make that the first argument in the argument list (argv[0]). */ +@@ -729,7 +740,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, voi + */ + dup2(sync_pipe[PIPE_WRITE], 2); + ws_close(sync_pipe[PIPE_READ]); +- execv(argv[0], argv); ++ execvp(argv[0], argv); + g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", + argv[0], g_strerror(errno)); + sync_pipe_errmsg_to_parent(2, errmsg, ""); +@@ -997,7 +1008,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd, + dup2(sync_pipe[PIPE_WRITE], 2); + ws_close(sync_pipe[PIPE_READ]); + ws_close(sync_pipe[PIPE_WRITE]); +- execv(argv[0], argv); ++ execvp(argv[0], argv); + g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", + argv[0], g_strerror(errno)); + sync_pipe_errmsg_to_parent(2, errmsg, ""); +-- +2.6.3 + diff --git a/nixpkgs/pkgs/applications/networking/sniproxy/default.nix b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix new file mode 100644 index 000000000000..6652e7c986c3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix @@ -0,0 +1,25 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, gettext, libev, pcre, pkg-config, udns }: + +stdenv.mkDerivation rec { + pname = "sniproxy"; + version = "0.6.0"; + + src = fetchFromGitHub { + owner = "dlundquist"; + repo = "sniproxy"; + rev = version; + sha256 = "0isgl2lyq8vz5kkxpgyh1sgjlb6sqqybakr64w2mfh29k5ls8xzm"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ gettext libev pcre udns ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Transparent TLS and HTTP layer 4 proxy with SNI support"; + license = licenses.bsd2; + maintainers = [ maintainers.womfoo ]; + platforms = platforms.linux; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/soapui/default.nix b/nixpkgs/pkgs/applications/networking/soapui/default.nix new file mode 100644 index 000000000000..12301981f653 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/soapui/default.nix @@ -0,0 +1,51 @@ +{ fetchurl, lib, stdenv, writeText, jdk, maven, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "soapui"; + version = "5.5.0"; + + src = fetchurl { + url = "https://s3.amazonaws.com/downloads.eviware/soapuios/${version}/SoapUI-${version}-linux-bin.tar.gz"; + sha256 = "0v1wiy61jgvlxjk8qdvcnyn1gh2ysxf266zln7r4wpzwd5gc3dpw"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jdk maven ]; + + installPhase = '' + mkdir -p $out/share/java + cp -R bin lib $out/share/java + + makeWrapper $out/share/java/bin/soapui.sh $out/bin/soapui --set SOAPUI_HOME $out/share/java + ''; + + patches = [ + (writeText "soapui-${version}.patch" '' + --- a/bin/soapui.sh + +++ b/bin/soapui.sh + @@ -34,7 +34,7 @@ SOAPUI_CLASSPATH=$SOAPUI_HOME/bin/soapui-${version}.jar:$SOAPUI_HOME/lib/* + export SOAPUI_CLASSPATH + + JAVA_OPTS="-Xms128m -Xmx1024m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -Dsoapui.properties=soapui.properties -Dsoapui.home=$SOAPUI_HOME/bin -splash:SoapUI-Spashscreen.png" + -JFXRTPATH=`java -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.JfxrtLocator` + +JFXRTPATH=`${jdk}/bin/java -cp $SOAPUI_CLASSPATH com.eviware.soapui.tools.JfxrtLocator` + SOAPUI_CLASSPATH=$JFXRTPATH:$SOAPUI_CLASSPATH + + if $darwin + @@ -69,4 +69,4 @@ echo = SOAPUI_HOME = $SOAPUI_HOME + echo = + echo ================================ + + -java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@" + +${jdk}/bin/java $JAVA_OPTS -cp $SOAPUI_CLASSPATH com.eviware.soapui.SoapUI "$@" + '') + ]; + + meta = with lib; { + description = "The Most Advanced REST & SOAP Testing Tool in the World"; + homepage = "https://www.soapui.org/"; + license = "SoapUI End User License Agreement"; + maintainers = with maintainers; [ gerschtli ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/soju/default.nix b/nixpkgs/pkgs/applications/networking/soju/default.nix new file mode 100644 index 000000000000..5940b7cb19b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/soju/default.nix @@ -0,0 +1,38 @@ +{ lib, buildGoModule, fetchFromSourcehut, installShellFiles, scdoc }: + +buildGoModule rec { + pname = "soju"; + version = "0.1.2"; + + src = fetchFromSourcehut { + owner = "~emersion"; + repo = "soju"; + rev = "v${version}"; + sha256 = "sha256-dauhGfwSjjRt1vl2+OPhtcme/QaRNTs43heQVnI7oRU="; + }; + + vendorSha256 = "sha256-0JLbqqybLZ/cYyHAyNR4liAVJI2oIsHELJLWlQy0qjE="; + + subPackages = [ + "cmd/soju" + "cmd/sojuctl" + "contrib/znc-import.go" + ]; + + nativeBuildInputs = [ + scdoc + installShellFiles + ]; + + postInstall = '' + scdoc < doc/soju.1.scd > doc/soju.1 + installManPage doc/soju.1 + ''; + + meta = with lib; { + description = "A user-friendly IRC bouncer"; + homepage = "https://soju.im"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ malvo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix new file mode 100644 index 000000000000..fbf742c5e2a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix @@ -0,0 +1,37 @@ +{ lib, fetchFromGitHub, python3Packages, gettext, gdk-pixbuf +, gobject-introspection, gtk3, wrapGAppsHook }: + +with lib; + +python3Packages.buildPythonApplication rec { + pname = "nicotine-plus"; + version = "3.0.6"; + + src = fetchFromGitHub { + owner = "Nicotine-Plus"; + repo = "nicotine-plus"; + rev = version; + sha256 = "sha256-NL6TXFRB7OeqNEfdANkEqh+MCOF1+ehR+6RO1XsIix8="; + }; + + nativeBuildInputs = [ gettext wrapGAppsHook ]; + + propagatedBuildInputs = [ gtk3 gdk-pixbuf gobject-introspection ] + ++ (with python3Packages; [ pygobject3 ]); + + postInstall = '' + mv $out/bin/nicotine $out/bin/nicotine-plus + substituteInPlace $out/share/applications/org.nicotine_plus.Nicotine.desktop \ + --replace "Exec=nicotine" "Exec=$out/bin/nicotine-plus" + ''; + + doCheck = false; + + meta = { + description = "A graphical client for the SoulSeek peer-to-peer system"; + homepage = "https://www.nicotine-plus.org"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ehmry klntsky ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/spideroak/default.nix b/nixpkgs/pkgs/applications/networking/spideroak/default.nix new file mode 100644 index 000000000000..edff4c78126e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/spideroak/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv, fetchurl, makeWrapper, patchelf +, fontconfig, freetype, glib, libICE, libSM +, libX11, libXext, libXrender, zlib +}: + +let + sha256 = "6d6ca2b383bcc81af1217c696eb77864a2b6db7428f4b5bde5b5913ce705eec5"; + + ldpath = lib.makeLibraryPath [ + fontconfig freetype glib libICE libSM + libX11 libXext libXrender zlib + ]; + + version = "7.5.0"; + +in stdenv.mkDerivation { + pname = "spideroak"; + inherit version; + + src = fetchurl { + name = "SpiderOakONE-${version}-slack_tar_x64.tgz"; + url = "https://spideroak.com/release/spideroak/slack_tar_x64"; + inherit sha256; + }; + + sourceRoot = "."; + + unpackCmd = "tar -xzf $curSrc"; + + installPhase = '' + mkdir "$out" + cp -r "./"* "$out" + mkdir "$out/bin" + rm "$out/usr/bin/SpiderOakONE" + rmdir $out/usr/bin || true + mv $out/usr/share $out/ + + rm -f $out/opt/SpiderOakONE/lib/libz* + + patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 \ + "$out/opt/SpiderOakONE/lib/SpiderOakONE" + + RPATH=$out/opt/SpiderOakONE/lib:${ldpath} + makeWrapper $out/opt/SpiderOakONE/lib/SpiderOakONE $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \ + --set QT_PLUGIN_PATH $out/opt/SpiderOakONE/lib/plugins/ \ + --set SpiderOak_EXEC_SCRIPT $out/bin/spideroak + + sed -i 's/^Exec=.*/Exec=spideroak/' $out/share/applications/SpiderOakONE.desktop + ''; + + nativeBuildInputs = [ patchelf makeWrapper ]; + + meta = { + homepage = "https://spideroak.com"; + description = "Secure online backup and sychronization"; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ amorsillo ]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix new file mode 100644 index 000000000000..0223c153f5c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix @@ -0,0 +1,53 @@ +{ appimageTools, symlinkJoin, lib, fetchurl, makeDesktopItem }: + +let + pname = "ssb-patchwork"; + version = "3.18.1"; + name = "Patchwork-${version}"; + + src = fetchurl { + url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage"; + sha256 = "F8n6LLbgkg3z55lSY60T+pn2lra8aPt6Ztepw1gf2rI="; + }; + + binary = appimageTools.wrapType2 { + name = pname; + inherit src; + }; + # we only use this to extract the icon + appimage-contents = appimageTools.extractType2 { + inherit name src; + }; + + desktopItem = makeDesktopItem { + name = "ssb-patchwork"; + exec = "${binary}/bin/ssb-patchwork"; + icon = "ssb-patchwork.png"; + comment = "Client for the decentralized social network Secure Scuttlebutt"; + desktopName = "Patchwork"; + genericName = "Patchwork"; + categories = "Network;"; + }; + +in + symlinkJoin { + inherit name; + paths = [ binary ]; + + postBuild = '' + mkdir -p $out/share/pixmaps/ $out/share/applications + cp ${appimage-contents}/ssb-patchwork.png $out/share/pixmaps + cp ${desktopItem}/share/applications/* $out/share/applications/ + ''; + + meta = with lib; { + description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)"; + longDescription = '' + sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship. + ''; + homepage = "https://www.scuttlebutt.nz/"; + license = licenses.agpl3; + maintainers = with maintainers; [ asymmetric ninjatrappeur cyplo ]; + platforms = [ "x86_64-linux" ]; + }; + } diff --git a/nixpkgs/pkgs/applications/networking/station/default.nix b/nixpkgs/pkgs/applications/networking/station/default.nix new file mode 100644 index 000000000000..b0e53a054d28 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/station/default.nix @@ -0,0 +1,42 @@ +{ appimageTools, fetchurl, gsettings-desktop-schemas, gtk3, lib }: + +let + pname = "station"; + version = "1.52.2"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://github.com/getstation/desktop-app-releases/releases/download/${version}/Station-${version}-x86_64.AppImage"; + sha256 = "0lhiwvnf94is9klvzrqv2wri53gj8nms9lg2678bs4y58pvjxwid"; + }; + + appimageContents = appimageTools.extractType2 { + inherit name src; + }; +in appimageTools.wrapType2 rec { + inherit name src; + + profile = '' + export LC_ALL=C.UTF-8 + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + + multiPkgs = null; + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = '' + mv $out/bin/{${name},${pname}} + install -m 444 -D ${appimageContents}/browserx.desktop $out/share/applications/browserx.desktop + install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/browserx.png \ + $out/share/icons/hicolor/512x512/apps/browserx.png + substituteInPlace $out/share/applications/browserx.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + ''; + + meta = with lib; { + description = "A single place for all of your web applications"; + homepage = "https://getstation.com"; + license = licenses.mit; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ lattfein ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix new file mode 100644 index 000000000000..f630cb4071a4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix @@ -0,0 +1,39 @@ +{ lib, fetchFromGitHub, buildPythonApplication, fuse +, appdirs, colorama, python-dateutil, requests, requests_toolbelt +, fusepy, sqlalchemy, setuptools }: + +buildPythonApplication rec { + pname = "acd_cli"; + version = "0.3.2"; + + doCheck = false; + + src = fetchFromGitHub { + owner = "yadayada"; + repo = pname; + rev = version; + sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp"; + }; + + propagatedBuildInputs = [ appdirs colorama python-dateutil fusepy requests + requests_toolbelt setuptools sqlalchemy ]; + + makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ]; + + postFixup = '' + function lnOverBin() { + rm -f $out/bin/{$2,.$2-wrapped} + ln -s $out/bin/$1 $out/bin/$2 + } + lnOverBin acd_cli.py acd-cli + lnOverBin acd_cli.py acd_cli + lnOverBin acd_cli.py acdcli + ''; + + meta = with lib; { + description = "A command line interface and FUSE filesystem for Amazon Cloud Drive"; + homepage = "https://github.com/yadayada/acd_cli"; + license = licenses.gpl2; + maintainers = with maintainers; [ edwtjo ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix new file mode 100644 index 000000000000..335ba4a4de14 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix @@ -0,0 +1,52 @@ +{stdenv, lib, fetchFromGitHub, makeWrapper, gettext, +python3, rsync, cron, openssh, sshfs-fuse, encfs }: + +let + python' = python3.withPackages (ps: with ps; [ dbus-python keyring ]); + + apps = lib.makeBinPath [ openssh python' cron rsync sshfs-fuse encfs ]; +in stdenv.mkDerivation rec { + pname = "backintime-common"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "bit-team"; + repo = "backintime"; + rev = "v${version}"; + sha256 = "mBjheLY7DHs995heZmxVnDdvABkAROCjRJ4a/uJmJcg="; + }; + + nativeBuildInputs = [ makeWrapper gettext ]; + buildInputs = [ python' ]; + + installFlags = [ "DEST=$(out)" ]; + + preConfigure = '' + cd common + substituteInPlace configure \ + --replace "/.." "" \ + --replace "share/backintime" "${python'.sitePackages}/backintime" + substituteInPlace "backintime" \ + --replace "share" "${python'.sitePackages}" + ''; + + dontAddPrefix = true; + + preFixup = '' + wrapProgram "$out/bin/backintime" \ + --prefix PATH : ${apps} + ''; + + meta = { + homepage = "https://github.com/bit-team/backintime"; + description = "Simple backup tool for Linux"; + license = lib.licenses.gpl2; + maintainers = [ ]; + platforms = lib.platforms.all; + longDescription = '' + Back In Time is a simple backup tool (on top of rsync) for Linux + inspired from “flyback project” and “TimeVault”. The backup is + done by taking snapshots of a specified set of directories. + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix new file mode 100644 index 000000000000..a48d6d8804fe --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/backintime/qt.nix @@ -0,0 +1,26 @@ +{ mkDerivation, backintime-common, python3 }: + +let + python' = python3.withPackages (ps: with ps; [ pyqt5 backintime-common ]); +in +mkDerivation { + inherit (backintime-common) + version src installFlags meta dontAddPrefix nativeBuildInputs; + + pname = "backintime-qt"; + + buildInputs = [ python' backintime-common ]; + + preConfigure = '' + cd qt + substituteInPlace configure \ + --replace '"/../etc' '"/etc' + substituteInPlace qttools.py \ + --replace "__file__, os.pardir, os.pardir" '"${backintime-common}/${python'.sitePackages}/backintime"' + ''; + + preFixup = '' + wrapQtApp "$out/bin/backintime-qt" \ + --prefix PATH : "${backintime-common}/bin:$PATH" + ''; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix new file mode 100644 index 000000000000..5bc29832c5f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix @@ -0,0 +1,65 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, python3 +, sphinx +, acl +, curl +, fuse +, libselinux +, udev +, xz +, zstd +, fuseSupport ? true +, selinuxSupport ? true +, udevSupport ? true +, glibcLocales +, rsync +}: + +stdenv.mkDerivation { + pname = "casync"; + version = "2-226-gbd8898e"; + + src = fetchFromGitHub { + owner = "systemd"; + repo = "casync"; + rev = "bd8898ed92685e12022dd33a04c87786b5262344"; + sha256 = "04ibglizjzyd7ih13q6m7ic78n0mzw9nfmb3zd1fcm9j62qlq11i"; + }; + + buildInputs = [ acl curl xz zstd ] + ++ lib.optionals (fuseSupport) [ fuse ] + ++ lib.optionals (selinuxSupport) [ libselinux ] + ++ lib.optionals (udevSupport) [ udev ]; + nativeBuildInputs = [ meson ninja pkg-config python3 sphinx ]; + checkInputs = [ glibcLocales rsync ]; + + postPatch = '' + for f in test/test-*.sh.in; do + patchShebangs $f + done + patchShebangs test/http-server.py + ''; + + PKG_CONFIG_UDEV_UDEVDIR = "lib/udev"; + mesonFlags = lib.optionals (!fuseSupport) [ "-Dfuse=false" ] + ++ lib.optionals (!udevSupport) [ "-Dudev=false" ] + ++ lib.optionals (!selinuxSupport) [ "-Dselinux=false" ]; + + doCheck = true; + preCheck = '' + export LC_ALL="en_US.utf-8" + ''; + + meta = with lib; { + description = "Content-Addressable Data Synchronizer"; + homepage = "https://github.com/systemd/casync"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ flokli ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/default.nix b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix new file mode 100644 index 000000000000..bc2776657c20 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "desync"; + version = "0.9.0"; + + src = fetchFromGitHub { + rev = "v${version}"; + owner = "folbricht"; + repo = "desync"; + sha256 = "0j9hixgkja268r2zn2dglrmlrb2z57sgz6q3wqb8dfwpan7b5rsy"; + }; + + vendorSha256 = "1gajh99jb6mbwk93dypddhl7r7n8h2s11s3s82firbrb5k24s4pz"; + + # nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad. + doCheck = false; + + meta = with lib; { + description = "Content-addressed binary distribution system"; + longDescription = "An alternate implementation of the casync protocol and storage mechanism with a focus on production-readiness"; + homepage = "https://github.com/folbricht/desync"; + license = licenses.bsd3; + platforms = platforms.unix; # *may* work on Windows, but varies between releases. + maintainers = [ maintainers.chaduffy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix new file mode 100644 index 000000000000..4c95a35ab85a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix @@ -0,0 +1,47 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, lua, pkg-config, rsync, + asciidoc, libxml2, docbook_xml_dtd_45, docbook_xsl, libxslt }: + +stdenv.mkDerivation rec { + pname = "lsyncd"; + version = "2.2.3"; + + src = fetchFromGitHub { + owner = "axkibe"; + repo = "lsyncd"; + rev = "release-${version}"; + sha256 = "1hbsih5hfq9lhgnxm0wb5mrj6xmlk2l0i9a79wzd5f6cnjil9l3x"; + }; + + patches = [ + (fetchpatch { + sha256 = "0b0h2qxh73l502p7phf6qgl8576nf6fvqqp2x5wy3nz7sc9qb1z8"; + name = "fix-non-versioned-lua-not-search-in-cmake.patch"; + url = "https://github.com/axkibe/lsyncd/pull/500/commits/0af99d8d5ba35118e8799684a2d4a8ea4b0c6957.patch"; + }) + ]; + + postPatch = '' + substituteInPlace default-rsync.lua \ + --replace "/usr/bin/rsync" "${rsync}/bin/rsync" + ''; + + # Special flags needed on Darwin: + # https://github.com/axkibe/lsyncd/blob/42413cabbedca429d55a5378f6e830f191f3cc86/INSTALL#L51 + cmakeFlags = lib.optional stdenv.isDarwin [ "-DWITH_INOTIFY=OFF" "-DWITH_FSEVENTS=ON" ]; + + dontUseCmakeBuildDir = true; + + buildInputs = [ + rsync + cmake lua pkg-config + asciidoc libxml2 docbook_xml_dtd_45 docbook_xsl libxslt + ]; + + meta = with lib; { + homepage = "https://github.com/axkibe/lsyncd"; + description = "A utility that synchronizes local directories with remote targets"; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = with maintainers; [ bobvanderlinden ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix new file mode 100644 index 000000000000..d53464df7a97 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix @@ -0,0 +1,55 @@ +{ stdenv +, lib +, fetchFromGitHub +, autoreconfHook +, ldc +, installShellFiles +, pkg-config +, curl +, sqlite +, libnotify +, withSystemd ? stdenv.isLinux +, systemd +}: + +stdenv.mkDerivation rec { + pname = "onedrive"; + version = "2.4.12"; + + src = fetchFromGitHub { + owner = "abraunegg"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-rG9W90+wGLnhnfhqJjUIFGP6ZcmaxGkrdhPxQVRyxoc="; + }; + + nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ]; + + buildInputs = [ + curl + sqlite + libnotify + ] ++ lib.optional withSystemd systemd; + + configureFlags = [ + "--enable-notifications" + ] ++ lib.optionals withSystemd [ + "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" + "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user" + ]; + + # we could also pass --enable-completions to configure but we would then have to + # figure out the paths manually and pass those along. + postInstall = '' + installShellCompletion --bash --name ${pname} contrib/completions/complete.bash + installShellCompletion --zsh --name _${pname} contrib/completions/complete.zsh + ''; + + meta = with lib; { + description = "A complete tool to interact with OneDrive on Linux"; + homepage = "https://github.com/abraunegg/onedrive"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ srgom peterhoeg ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix new file mode 100644 index 000000000000..1917fc40c0ee --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, wrapQtAppsHook, qtbase }: + +stdenv.mkDerivation rec { + pname = "rclone-browser"; + version = "1.8.0"; + + src = fetchFromGitHub { + owner = "kapitainsky"; + repo = "RcloneBrowser"; + rev = version; + sha256 = "14ckkdypkfyiqpnz0y2b73wh1py554iyc3gnymj4smy0kg70ai33"; + }; + + patches = [ + # patch for Qt 5.15, https://github.com/kapitainsky/RcloneBrowser/pull/126 + (fetchpatch { + url = "https://github.com/kapitainsky/RcloneBrowser/commit/ce9cf52e9c584a2cc85a5fa814b0fd7fa9cf0152.patch"; + sha256 = "0nm42flmaq7mva9j4dpp18i1xcv8gr08zfyb9apz1zwn79h1w0c8"; + }) + ]; + + nativeBuildInputs = [ cmake wrapQtAppsHook ]; + + buildInputs = [ qtbase ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Graphical Frontend to Rclone written in Qt"; + license = licenses.unlicense; + platforms = platforms.linux; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix new file mode 100644 index 000000000000..0a74d19dfdb0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles +, makeWrapper +, enableCmount ? true, fuse, macfuse-stubs +}: + +buildGoModule rec { + pname = "rclone"; + version = "1.55.1"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "1fyi12qz2igcf9rqsp9gmcgfnmgy4g04s2b03b95ml6klbf73cns"; + }; + + vendorSha256 = "199z3j62xw9h8yviyv4jfls29y2ri9511hcyp5ix8ahgk6ypz8vw"; + + subPackages = [ "." ]; + + outputs = [ "out" "man" ]; + + buildInputs = lib.optional enableCmount (if stdenv.isDarwin then macfuse-stubs else fuse); + nativeBuildInputs = [ installShellFiles makeWrapper ]; + + buildFlagsArray = lib.optionals enableCmount [ "-tags=cmount" ] + ++ [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ]; + + postInstall = + let + rcloneBin = + if stdenv.buildPlatform == stdenv.hostPlatform + then "$out" + else lib.getBin buildPackages.rclone; + in + '' + installManPage rclone.1 + for shell in bash zsh fish; do + ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell + installShellCompletion rclone.$shell + done + '' + lib.optionalString (enableCmount && !stdenv.isDarwin) '' + wrapProgram $out/bin/rclone --prefix LD_LIBRARY_PATH : "${fuse}/lib" + ''; + + meta = with lib; { + description = "Command line program to sync files and directories to and from major cloud storage"; + homepage = "https://rclone.org"; + changelog = "https://github.com/rclone/rclone/blob/v${version}/docs/content/changelog.md"; + license = licenses.mit; + maintainers = with maintainers; [ danielfullmer marsam SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix new file mode 100644 index 000000000000..3479458088ed --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix @@ -0,0 +1,22 @@ +{ lib, fetchurl }: + +rec { + version = "3.2.3"; + src = fetchurl { + # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 + url = "mirror://samba/rsync/src/rsync-${version}.tar.gz"; + sha256 = "03p5dha9g9krq61mdbcrjkpz5nglri0009ks2vs9k97f9i83rk5y"; + }; + upstreamPatchTarball = fetchurl { + # signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5 + url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz"; + sha256 = "1wj21v57v135n6fnmlm2dxmb9lhrrg62jgkggldp1gb7d6s4arny"; + }; + + meta = with lib; { + description = "Fast incremental file transfer utility"; + homepage = "https://rsync.samba.org/"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix new file mode 100644 index 000000000000..54417e6ef4b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv, fetchurl, perl, libiconv, zlib, popt +, enableACLs ? lib.meta.availableOn stdenv.hostPlatform acl, acl ? null +, enableLZ4 ? true, lz4 ? null +, enableOpenSSL ? true, openssl ? null +, enableXXHash ? true, xxHash ? null +, enableZstd ? true, zstd ? null +, enableCopyDevicesPatch ? false +, nixosTests +}: + +assert enableACLs -> acl != null; +assert enableLZ4 -> lz4 != null; +assert enableOpenSSL -> openssl != null; +assert enableXXHash -> xxHash != null; +assert enableZstd -> zstd != null; + +let + base = import ./base.nix { inherit lib fetchurl; }; +in +stdenv.mkDerivation rec { + name = "rsync-${base.version}"; + + mainSrc = base.src; + + patchesSrc = base.upstreamPatchTarball; + + srcs = [mainSrc] ++ lib.optional enableCopyDevicesPatch patchesSrc; + patches = lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff"; + + buildInputs = [libiconv zlib popt] + ++ lib.optional enableACLs acl + ++ lib.optional enableZstd zstd + ++ lib.optional enableLZ4 lz4 + ++ lib.optional enableOpenSSL openssl + ++ lib.optional enableXXHash xxHash; + nativeBuildInputs = [perl]; + + configureFlags = [ + "--with-nobody-group=nogroup" + + # disable the included zlib explicitly as it otherwise still compiles and + # links them even. + "--with-included-zlib=no" + ] + # Work around issue with cross-compilation: + # configure.sh: error: cannot run test program while cross compiling + # Remove once 3.2.4 or more recent is released. + # The following PR should fix the cross-compilation issue. + # Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`. + # https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484 + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no" + ; + + passthru.tests = { inherit (nixosTests) rsyncd; }; + + meta = base.meta // { + description = "A fast incremental file transfer utility"; + maintainers = with lib.maintainers; [ peti ehmry kampfschlaefer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix new file mode 100644 index 000000000000..83eb4658d2f3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchurl, perl, rsync }: + +let + base = import ./base.nix { inherit lib fetchurl; }; +in +stdenv.mkDerivation { + name = "rrsync-${base.version}"; + + src = base.src; + + buildInputs = [ rsync perl ]; + + # Skip configure and build phases. + # We just want something from the support directory + dontConfigure = true; + dontBuild = true; + + postPatch = '' + substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync + ''; + + installPhase = '' + mkdir -p $out/bin + cp support/rrsync $out/bin + chmod a+x $out/bin/rrsync + ''; + + meta = base.meta // { + description = "A helper to run rsync-only environments from ssh-logins"; + maintainers = [ lib.maintainers.kampfschlaefer ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix new file mode 100644 index 000000000000..9ab8d4415082 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix @@ -0,0 +1,60 @@ +{lib, stdenv, fetchFromGitHub, ocamlPackages, fontschumachermisc, xset, makeWrapper, ncurses, gnugrep, fetchpatch +, enableX11 ? true}: + +let inherit (ocamlPackages) ocaml lablgtk; in + +stdenv.mkDerivation (rec { + + pname = "unison"; + version = "2.51.3"; + src = fetchFromGitHub { + owner = "bcpierce00"; + repo = "unison"; + rev = "v${version}"; + sha256 = "sha256-42hmdMwOYSWGiDCmhuqtpCWtvtyD2l+kA/bhHD/Qh5Y="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ ocaml ncurses ]; + + patches = [ + # Patch to fix build with ocaml 4.12. Remove in 2.51.4 + # https://github.com/bcpierce00/unison/pull/481 + (fetchpatch { + name = "fix-compile-with-ocaml-4.12.patch"; + url = "https://github.com/bcpierce00/unison/commit/14b885316e0a4b41cb80fe3daef7950f88be5c8f.patch?full_index=1"; + sha256 = "0j1rma1cwdsfql19zvzhfj2ys5c4lbhjcp6jrnck04xnckxxiy3d"; + }) + ]; + + preBuild = (if enableX11 then '' + sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" src/Makefile.OCaml + '' else "") + '' + echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile + ''; + + makeFlags = [ + "INSTALLDIR=$(out)/bin/" + "UISTYLE=${if enableX11 then "gtk2" else "text"}" + ] ++ lib.optional (!ocaml.nativeCompilers) "NATIVE=false"; + + preInstall = "mkdir -p $out/bin"; + + postInstall = if enableX11 then '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + --run "[ -n \"\$DISPLAY\" ] && (${xset}/bin/xset q | ${gnugrep}/bin/grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")" + done + '' else ""; + + dontStrip = !ocaml.nativeCompilers; + + meta = { + homepage = "https://www.cis.upenn.edu/~bcpierce/unison/"; + description = "Bidirectional file synchronizer"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [viric]; + platforms = with lib.platforms; unix; + }; + +}) diff --git a/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/nixpkgs/pkgs/applications/networking/syncplay/default.nix new file mode 100644 index 000000000000..e93b6f9a432a --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncplay/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, buildPythonApplication, pyside2, shiboken2, twisted, certifi, qt5 }: + +buildPythonApplication rec { + pname = "syncplay"; + version = "1.6.7"; + + format = "other"; + + src = fetchFromGitHub { + owner = "Syncplay"; + repo = "syncplay"; + rev = "v${version}"; + sha256 = "1hxmd13sff51lh9l3vpk33qrzf7gi58c76bc01iqimp17sxwfz3k"; + }; + + propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls; + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + + makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ]; + + postFixup = '' + wrapQtApp $out/bin/syncplay + ''; + + meta = with lib; { + homepage = "https://syncplay.pl/"; + description = "Free software that synchronises media players"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ enzime ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix new file mode 100644 index 000000000000..caa46942ca92 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix @@ -0,0 +1,66 @@ +{ lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall +, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook +, gnome, buildPythonApplication, python-dateutil, pyinotify, pygobject3 +, bcrypt, gobject-introspection, gsettings-desktop-schemas +, pango, gdk-pixbuf, atk }: + +buildPythonApplication rec { + version = "0.9.4.4"; + pname = "syncthing-gtk"; + + src = fetchFromGitHub { + owner = "syncthing"; + repo = "syncthing-gtk"; + rev = "v${version}"; + sha256 = "0nc0wd7qvyri7841c3dd9in5d7367hys0isyw8znv5fj4c0a6v1f"; + }; + + nativeBuildInputs = [ + wrapGAppsHook + # For setup hook populating GI_TYPELIB_PATH + gobject-introspection + pango gdk-pixbuf atk libnotify + ]; + + buildInputs = [ + gtk3 librsvg libappindicator-gtk3 + libnotify gnome.adwaita-icon-theme + # Schemas with proxy configuration + gsettings-desktop-schemas + ]; + + propagatedBuildInputs = [ + python-dateutil pyinotify pygobject3 bcrypt + ]; + + patches = [ + (substituteAll { + src = ./paths.patch; + killall = "${killall}/bin/killall"; + syncthing = "${syncthing}/bin/syncthing"; + }) + ]; + + # repo doesn't have any tests + doCheck = false; + + setupPyBuildFlags = [ "build_py" "--nofinddaemon" "--nostdownloader" ]; + + postPatch = '' + substituteInPlace setup.py --replace "version = get_version()" "version = '${version}'" + substituteInPlace scripts/syncthing-gtk --replace "/usr/share" "$out/share" + substituteInPlace syncthing_gtk/app.py --replace "/usr/share" "$out/share" + substituteInPlace syncthing_gtk/uisettingsdialog.py --replace "/usr/share" "$out/share" + substituteInPlace syncthing_gtk/wizard.py --replace "/usr/share" "$out/share" + substituteInPlace syncthing-gtk.desktop --replace "/usr/bin/syncthing-gtk" "$out/bin/syncthing-gtk" + ''; + + meta = with lib; { + description = "GTK3 & python based GUI for Syncthing"; + homepage = "https://github.com/syncthing/syncthing-gtk"; + license = licenses.gpl2; + broken = true; + maintainers = with maintainers; [ ]; + platforms = syncthing.meta.platforms; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch b/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch new file mode 100644 index 000000000000..0ba5a4f2db84 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch @@ -0,0 +1,22 @@ +--- a/syncthing_gtk/configuration.py ++++ b/syncthing_gtk/configuration.py +@@ -30,7 +30,7 @@ + "autokill_daemon" : (int, 2), # 0 - never kill, 1 - always kill, 2 - ask + "daemon_priority" : (int, 0), # uses nice values + "max_cpus" : (int, 0), # 0 for all cpus +- "syncthing_binary" : (str, "/usr/bin/syncthing"), ++ "syncthing_binary" : (str, "@syncthing@"), + "syncthing_arguments" : (str, ""), + "minimize_on_start" : (bool, False), + "folder_as_path" : (bool, True), +--- a/syncthing_gtk/tools.py ++++ b/syncthing_gtk/tools.py +@@ -303,7 +303,7 @@ + return False + # signal 0 doesn't kill anything, but killall exits with 1 if + # named process is not found +- p = Popen(["killall", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"]) ++ p = Popen(["@killall@", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"]) + p.communicate() + return p.returncode == 0 + else: diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix new file mode 100644 index 000000000000..4b983faaf0b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix @@ -0,0 +1,100 @@ +{ buildGoModule, stdenv, lib, procps, fetchFromGitHub, nixosTests }: + +let + common = { stname, target, postInstall ? "" }: + buildGoModule rec { + pname = stname; + version = "1.17.0"; + + src = fetchFromGitHub { + owner = "syncthing"; + repo = "syncthing"; + rev = "v${version}"; + sha256 = "1bm2xj5ypn63wxxpdix9b4hbam3s2z08jx2rk5adzd5yg499sxx0"; + }; + + vendorSha256 = "1jvd7d095wvf94y2di48pvqv9hiw3bj859q5yx9v6lglkwdgz6nw"; + + doCheck = false; + + BUILD_USER="nix"; + BUILD_HOST="nix"; + + buildPhase = '' + runHook preBuild + go run build.go -no-upgrade -version v${version} build ${target} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 ${target} $out/bin/${target} + runHook postInstall + ''; + + inherit postInstall; + + passthru.tests = with nixosTests; { + init = syncthing-init; + relay = syncthing-relay; + }; + + meta = with lib; { + homepage = "https://syncthing.net/"; + description = "Open Source Continuous File Synchronization"; + changelog = "https://github.com/syncthing/syncthing/releases/tag/v${version}"; + license = licenses.mpl20; + maintainers = with maintainers; [ joko peterhoeg andrew-d ]; + platforms = platforms.unix; + }; + }; + +in { + syncthing = common { + stname = "syncthing"; + target = "syncthing"; + + postInstall = '' + # This installs man pages in the correct directory according to the suffix + # on the filename + for mf in man/*.[1-9]; do + mantype="$(echo "$mf" | awk -F"." '{print $NF}')" + mandir="$out/share/man/man$mantype" + install -Dm644 "$mf" "$mandir/$(basename "$mf")" + done + + '' + lib.optionalString (stdenv.isLinux) '' + mkdir -p $out/lib/systemd/{system,user} + + substitute etc/linux-systemd/system/syncthing-resume.service \ + $out/lib/systemd/system/syncthing-resume.service \ + --replace /usr/bin/pkill ${procps}/bin/pkill + + substitute etc/linux-systemd/system/syncthing@.service \ + $out/lib/systemd/system/syncthing@.service \ + --replace /usr/bin/syncthing $out/bin/syncthing + + substitute etc/linux-systemd/user/syncthing.service \ + $out/lib/systemd/user/syncthing.service \ + --replace /usr/bin/syncthing $out/bin/syncthing + ''; + }; + + syncthing-discovery = common { + stname = "syncthing-discovery"; + target = "stdiscosrv"; + }; + + syncthing-relay = common { + stname = "syncthing-relay"; + target = "strelaysrv"; + + postInstall = lib.optionalString (stdenv.isLinux) '' + mkdir -p $out/lib/systemd/system + + substitute cmd/strelaysrv/etc/linux-systemd/strelaysrv.service \ + $out/lib/systemd/system/strelaysrv.service \ + --replace /usr/bin/strelaysrv $out/bin/strelaysrv + ''; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/taler/default.nix b/nixpkgs/pkgs/applications/networking/taler/default.nix new file mode 100644 index 000000000000..06e389a69c80 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/taler/default.nix @@ -0,0 +1,57 @@ +{ lib, stdenv, fetchurl, curl, gnunet, jansson, libgcrypt, libmicrohttpd +, qrencode, libsodium, libtool, pkg-config, postgresql, sqlite }: + +let + gnunet' = gnunet.override { postgresqlSupport = true; }; + + mkTaler = { pname, version, sha256 }: + extraAttrs: + stdenv.mkDerivation (extraAttrs // { + inherit pname version; + src = fetchurl { + url = "mirror://gnu/taler/${pname}-${version}.tar.gz"; + inherit sha256; + }; + enableParallelBuilding = true; + meta = with lib; { + description = "Anonymous, taxable payment system."; + homepage = "https://taler.net/"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ ehmry ]; + platforms = platforms.gnu ++ platforms.linux; + }; + }); + +in rec { + + taler-exchange = mkTaler { + pname = "taler-exchange"; + version = "0.8.1"; + sha256 = "sha256-MPt3n1JXd0Y89b1qCuF6YxptSr7henfYp97JTq1Z+x4="; + } { + buildInputs = [ + curl + jansson + libgcrypt + libmicrohttpd + libsodium + libtool + postgresql + # sqlite + ]; + propagatedBuildInputs = [ gnunet' ]; + patches = [ ./exchange-fix-6665.patch ]; + }; + + taler-merchant = mkTaler { + pname = "taler-merchant"; + version = "0.8.0"; + sha256 = "sha256-scrFLXeoQirGqhc+bSQKRl84PfUvjrp1uxF7pfOIB9Q="; + } { + nativeBuildInputs = [ pkg-config ]; + buildInputs = taler-exchange.buildInputs ++ [ qrencode taler-exchange ]; + propagatedBuildInputs = [ gnunet' ]; + PKG_CONFIG = "${pkg-config}/bin/pkg-config"; + }; + +} diff --git a/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch b/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch new file mode 100644 index 000000000000..e648123d2697 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/taler/exchange-fix-6665.patch @@ -0,0 +1,48 @@ +commit 9911b327ac299ec7eeae81b98cb520f4153071f2 +Author: Christian Grothoff <christian@grothoff.org> +Date: Wed Dec 9 07:25:26 2020 +0100 + + fix #6665 + +diff --git a/src/testing/testing_api_cmd_rewind.c b/src/testing/testing_api_cmd_rewind.c +index e1b17fa9..979607cd 100644 +--- a/src/testing/testing_api_cmd_rewind.c ++++ b/src/testing/testing_api_cmd_rewind.c +@@ -24,7 +24,6 @@ + */ + #include "platform.h" + #include "taler_exchange_service.h" +-#include "taler/taler_testing_lib.h" + #include "taler_testing_lib.h" + + +diff --git a/src/testing/testing_api_cmd_twister_exec_client.c b/src/testing/testing_api_cmd_twister_exec_client.c +index 2cb92a8f..b3903f29 100644 +--- a/src/testing/testing_api_cmd_twister_exec_client.c ++++ b/src/testing/testing_api_cmd_twister_exec_client.c +@@ -26,7 +26,7 @@ + */ + + #include "platform.h" +-#include <taler/taler_testing_lib.h> ++#include "taler_testing_lib.h" + #include "taler_twister_testing_lib.h" + + +diff --git a/src/testing/testing_api_trait_uuid.c b/src/testing/testing_api_trait_uuid.c +index c9b73a5b..4d5003ec 100644 +--- a/src/testing/testing_api_trait_uuid.c ++++ b/src/testing/testing_api_trait_uuid.c +@@ -22,9 +22,9 @@ + * @author Jonathan Buchanan + */ + #include "platform.h" +-#include <taler/taler_signatures.h> +-#include <taler/taler_exchange_service.h> +-#include <taler/taler_testing_lib.h> ++#include "taler_signatures.h" ++#include "taler_exchange_service.h" ++#include "taler_testing_lib.h" + + + #define TALER_TESTING_TRAIT_UUID "uuid" diff --git a/nixpkgs/pkgs/applications/networking/tcpkali/default.nix b/nixpkgs/pkgs/applications/networking/tcpkali/default.nix new file mode 100644 index 000000000000..fa0236dcd8c2 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/tcpkali/default.nix @@ -0,0 +1,26 @@ +{lib, stdenv, autoreconfHook, fetchFromGitHub, bison}: + +let version = "1.1.1"; in + +stdenv.mkDerivation rec { + pname = "tcpkali"; + inherit version; + src = fetchFromGitHub { + owner = "machinezone"; + repo = "tcpkali"; + rev = "v${version}"; + sha256 = "09ky3cccaphcqc6nhfs00pps99lasmzc2pf5vk0gi8hlqbbhilxf"; + }; + postPatch = '' + sed -ie '/sys\/sysctl\.h/d' src/tcpkali_syslimits.c + ''; + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ bison]; + meta = { + description = "High performance TCP and WebSocket load generator and sink"; + license = lib.licenses.bsd2; + inherit (src.meta) homepage; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ ethercrow ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/termius/default.nix b/nixpkgs/pkgs/applications/networking/termius/default.nix new file mode 100644 index 000000000000..b1c9adfd9c11 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/termius/default.nix @@ -0,0 +1,69 @@ +{ atomEnv +, autoPatchelfHook +, dpkg +, fetchurl +, makeDesktopItem +, makeWrapper +, stdenv +, lib +, udev +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "termius"; + version = "7.1.0"; + + src = fetchurl { + url = "https://deb.termius.com/pool/main/t/termius-app/termius-app_${version}_amd64.deb"; + sha256 = "801579b931ca0ad5340085df8863042336e2b609dd1cd6771260c873f3d2bb73"; + }; + + desktopItem = makeDesktopItem { + categories = "Network;"; + comment = "The SSH client that works on Desktop and Mobile"; + desktopName = "Termius"; + exec = "termius-app"; + genericName = "Cross-platform SSH client"; + icon = "termius-app"; + name = "termius-app"; + }; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + dontWrapGApps = true; + + nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper wrapGAppsHook ]; + + buildInputs = atomEnv.packages; + + unpackPhase = "dpkg-deb -x $src ."; + + installPhase = '' + mkdir -p "$out/bin" + cp -R "opt" "$out" + cp -R "usr/share" "$out/share" + chmod -R g-w "$out" + # Desktop file + mkdir -p "$out/share/applications" + cp "${desktopItem}/share/applications/"* "$out/share/applications" + ''; + + runtimeDependencies = [ (lib.getLib udev) ]; + + postFixup = '' + makeWrapper $out/opt/Termius/termius-app $out/bin/termius-app \ + "''${gappsWrapperArgs[@]}" + ''; + + meta = with lib; { + broken = true; + description = "A cross-platform SSH client with cloud data sync and more"; + homepage = "https://termius.com/"; + downloadPage = "https://termius.com/linux/"; + license = licenses.unfree; + maintainers = with maintainers; [ Br1ght0ne th0rgal ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/testssl/default.nix b/nixpkgs/pkgs/applications/networking/testssl/default.nix new file mode 100644 index 000000000000..3abc0458a00e --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/testssl/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, makeWrapper, lib +, dnsutils, coreutils, openssl, nettools, util-linux, procps }: + +stdenv.mkDerivation rec { + pname = "testssl.sh"; + version = "3.0.5"; + + src = fetchFromGitHub { + owner = "drwetter"; + repo = pname; + rev = version; + sha256 = "sha256-p2jPpPHtOOmv0CCsXOECgMT9sqa4ZykcJwuGOSkYLaY="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + coreutils # for pwd and printf + dnsutils # for dig + nettools # for hostname + openssl # for openssl + procps # for ps + util-linux # for hexdump + ]; + + postPatch = '' + substituteInPlace testssl.sh \ + --replace /bin/pwd pwd \ + --replace TESTSSL_INSTALL_DIR:-\"\" TESTSSL_INSTALL_DIR:-\"$out\" \ + --replace PROG_NAME=\"\$\(basename\ \"\$0\"\)\" PROG_NAME=\"testssl.sh\" + ''; + + installPhase = '' + install -D testssl.sh $out/bin/testssl.sh + cp -r etc $out + + wrapProgram $out/bin/testssl.sh --prefix PATH ':' ${lib.makeBinPath buildInputs} + ''; + + meta = with lib; { + description = "CLI tool to check a server's TLS/SSL capabilities"; + longDescription = '' + CLI tool which checks a server's service on any port for the support of + TLS/SSL ciphers, protocols as well as recent cryptographic flaws and more. + ''; + homepage = "https://testssl.sh/"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ etu ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/tmpmail/default.nix b/nixpkgs/pkgs/applications/networking/tmpmail/default.nix new file mode 100644 index 000000000000..433c6cf6fc24 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/tmpmail/default.nix @@ -0,0 +1,33 @@ +{ lib, fetchFromGitHub, stdenvNoCC, w3m, curl, jq, makeWrapper, installShellFiles }: + +stdenvNoCC.mkDerivation rec { + pname = "tmpmail"; + version = "unstable-2021-02-10"; + + src = fetchFromGitHub { + owner = "sdushantha"; + repo = "tmpmail"; + rev = "150b32083d36006cf7f496e112715ae12ee87727"; + sha256 = "sha256-yQ9/UUxBTEXK5z3f+tvVRUzIGrAnrqurQ0x56Ad7RKE="; + }; + + dontConfigure = true; + + dontBuild = true; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + installPhase = '' + mkdir -p $out/bin + install -Dm755 -t $out/bin tmpmail + installManPage tmpmail.1 + wrapProgram $out/bin/tmpmail --prefix PATH : ${lib.makeBinPath [ w3m curl jq ]} + ''; + + meta = with lib; { + homepage = "https://github.com/sdushantha/tmpmail"; + description = "A temporary email right from your terminal written in POSIX sh "; + license = licenses.mit; + maintainers = [ maintainers.legendofmiracles ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/trebleshot/default.nix b/nixpkgs/pkgs/applications/networking/trebleshot/default.nix new file mode 100644 index 000000000000..82f91ddef8b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/trebleshot/default.nix @@ -0,0 +1,29 @@ +{ mkDerivation, lib, fetchFromGitHub +, cmake, qtbase, kdnssd +}: + +mkDerivation rec { + pname = "trebleshot"; + version = "0.1.0-alpha2-15-ga7ac23c"; + # name="${pname}-${version}"; + + src = fetchFromGitHub { + owner = "genonbeta"; + repo = "TrebleShot-Desktop"; + rev = version; + sha256 = "1k8wagw6arsi1lqkhn1nl6j11mb122vi1qs0q2np6nznwfy7pn1k"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ qtbase kdnssd ]; + + meta = with lib; { + description = "Android file transferring tool for desktop"; + homepage = "https://github.com/genonbeta/TrebleShot-Desktop"; + license = licenses.gpl2; + + platforms = platforms.linux; + maintainers = with maintainers; [ woffs ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/tsung/default.nix b/nixpkgs/pkgs/applications/networking/tsung/default.nix new file mode 100644 index 000000000000..346fd1752578 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/tsung/default.nix @@ -0,0 +1,50 @@ +{ fetchurl, stdenv, lib, makeWrapper, + erlang, + python2, python2Packages, + perlPackages, + gnuplot }: + +stdenv.mkDerivation rec { + pname = "tsung"; + version = "1.7.0"; + src = fetchurl { + url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz"; + sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a"; + }; + + nativeBuildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ + erlang + gnuplot + perlPackages.perl + perlPackages.TemplateToolkit + python2 + python2Packages.matplotlib + ]; + + + postFixup = '' + # Make tsung_stats.pl accessible + # Leaving .pl at the end since all of tsung documentation is refering to it + # as tsung_stats.pl + ln -s $out/lib/tsung/bin/tsung_stats.pl $out/bin/tsung_stats.pl + + # Add Template Toolkit and gnuplot to tsung_stats.pl + wrapProgram $out/bin/tsung_stats.pl \ + --prefix PATH : ${lib.makeBinPath [ gnuplot ]} \ + --set PERL5LIB "${perlPackages.makePerlPath [ perlPackages.TemplateToolkit ]}" + ''; + + meta = with lib; { + homepage = "http://tsung.erlang-projects.org/"; + description = "A high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc"; + longDescription = '' + Tsung is a distributed load testing tool. It is protocol-independent and + can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, + AMQP, MQTT, LDAP and Jabber/XMPP servers. + ''; + license = licenses.gpl2; + maintainers = [ maintainers.uskudnik ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/twtxt/default.nix b/nixpkgs/pkgs/applications/networking/twtxt/default.nix new file mode 100644 index 000000000000..27420f8bd339 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/twtxt/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, buildPythonApplication, aiohttp, python-dateutil, humanize, click, pytestCheckHook, tox }: + +buildPythonApplication rec { + pname = "twtxt"; + version = "1.2.3"; + + src = fetchFromGitHub { + owner = "buckket"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-AdM95G2Vz3UbVPI7fs8/D78BMxscbTGrCpIyyHzSmho="; + }; + + # Relax some dependencies + postPatch = '' + substituteInPlace setup.py \ + --replace 'aiohttp>=2.2.5,<3' 'aiohttp' \ + --replace 'click>=6.7,<7' 'click' \ + --replace 'humanize>=0.5.1,<1' 'humanize' + ''; + + propagatedBuildInputs = [ aiohttp python-dateutil humanize click ]; + + checkInputs = [ pytestCheckHook tox ]; + + meta = with lib; { + description = "Decentralised, minimalist microblogging service for hackers"; + homepage = "https://github.com/buckket/twtxt"; + license = licenses.mit; + maintainers = with maintainers; [ siraben ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/umurmur/default.nix b/nixpkgs/pkgs/applications/networking/umurmur/default.nix new file mode 100644 index 000000000000..d1378598876d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/umurmur/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenv, fetchFromGitHub, autoreconfHook, openssl, protobufc, libconfig }: + +stdenv.mkDerivation rec { + pname = "umurmur"; + version = "0.2.20"; + + src = fetchFromGitHub { + owner = "umurmur"; + repo = "umurmur"; + rev = version; + sha256 = "sha256-jp5+NbGmT90ksffvpLYIX2q5cPeVidDCYMPvLHCiP68="; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ openssl protobufc libconfig ]; + + configureFlags = [ + "--with-ssl=openssl" + "--enable-shmapi" + ]; + + meta = with lib; { + description = "Minimalistic Murmur (Mumble server)"; + license = licenses.bsd3; + homepage = "https://github.com/umurmur/umurmur"; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/utahfs/default.nix b/nixpkgs/pkgs/applications/networking/utahfs/default.nix new file mode 100644 index 000000000000..b6bae284dcd3 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/utahfs/default.nix @@ -0,0 +1,23 @@ +{ buildGoPackage, lib, fetchFromGitHub }: + +buildGoPackage rec { + pname = "utahfs"; + version = "1.0"; + src = fetchFromGitHub { + owner = "cloudflare"; + repo = pname; + rev = "v${version}"; + sha256 = "1hpwch5fsqlxwpk5afawa1k5s0bx5c1cw0hvdllp7257lgly19fb"; + }; + + goPackagePath = "github.com/cloudflare/utahfs"; + + meta = with lib; { + homepage = "https://github.com/cloudflare/utahfs"; + description = + "Encrypted storage system that provides a user-friendly FUSE drive backed by cloud storage"; + license = licenses.bsd3; + maintainers = [ maintainers.snglth ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/versus/default.nix b/nixpkgs/pkgs/applications/networking/versus/default.nix new file mode 100644 index 000000000000..1e3dd2113269 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/versus/default.nix @@ -0,0 +1,22 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "versus"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "INFURA"; + repo = pname; + rev = "v${version}"; + sha256 = "0j5mj9gwwvgx7r1svlg14dpcqlj8mhwlf7sampkkih6bv92qfzcd"; + }; + + vendorSha256 = "1d12jcd8crxcgp5m8ga691wivim4cg8cbz4pzgxp0jhzg9jplpbv"; + + meta = with lib; { + description = "Benchmark multiple API endpoints against each other"; + homepage = "https://github.com/INFURA/versus"; + license = licenses.mit; + maintainers = with maintainers; [ mmahut ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/vnstat/default.nix b/nixpkgs/pkgs/applications/networking/vnstat/default.nix new file mode 100644 index 000000000000..f85f00bf0ae0 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/vnstat/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv +, fetchFromGitHub +, pkg-config +, gd, ncurses +, sqlite +, check +}: + +stdenv.mkDerivation rec { + pname = "vnstat"; + version = "2.7"; + + src = fetchFromGitHub { + owner = "vergoh"; + repo = pname; + rev = "v${version}"; + sha256 = "105krrc7hl5mbj89i1k3w8yzqrg4f0q96lmyv4rc7fhhds5zam2h"; + }; + + postPatch = '' + substituteInPlace src/cfg.c --replace /usr/local $out + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gd ncurses sqlite ]; + + checkInputs = [ check ]; + + doCheck = true; + + meta = with lib; { + description = "Console-based network statistics utility for Linux"; + longDescription = '' + vnStat is a console-based network traffic monitor for Linux and BSD that + keeps a log of network traffic for the selected interface(s). It uses the + network interface statistics provided by the kernel as information source. + This means that vnStat won't actually be sniffing any traffic and also + ensures light use of system resources. + ''; + homepage = "https://humdi.net/vnstat/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ evils ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile new file mode 100644 index 000000000000..e519efbf5701 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +source 'https://rubygems.org' do + gem 'wayback_machine_downloader' +end diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock new file mode 100644 index 000000000000..4534beb20c39 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/Gemfile.lock @@ -0,0 +1,13 @@ +GEM + remote: https://rubygems.org/ + specs: + wayback_machine_downloader (2.2.1) + +PLATFORMS + ruby + +DEPENDENCIES + wayback_machine_downloader! + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix new file mode 100644 index 000000000000..49471ebf7e39 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/default.nix @@ -0,0 +1,16 @@ +{ lib, bundlerApp, bundlerUpdateScript }: +bundlerApp { + pname = "wayback_machine_downloader"; + exes = [ "wayback_machine_downloader" ]; + gemdir = ./.; + + passthru.updateScript = bundlerUpdateScript "wayback_machine_downloader"; + + meta = with lib; { + description = "Download websites from the Internet Archive Wayback Machine"; + homepage = "https://github.com/hartator/wayback-machine-downloader"; + license = licenses.mit; + maintainers = [ maintainers.manveru ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix new file mode 100644 index 000000000000..1ef3cd36536d --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wayback_machine_downloader/gemset.nix @@ -0,0 +1,12 @@ +{ + wayback_machine_downloader = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12kb1qmvmmsaihqab1prn6cmynkn6cgb4vf41mgv22wkcgv5wgk2"; + type = "gem"; + }; + version = "2.2.1"; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix new file mode 100644 index 000000000000..a5edbac135f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchFromGitLab, vala, python3, pkg-config, meson, ninja, gtk3 +, json-glib, libsoup, webkitgtk, geocode-glib, nix-update-script +, libappindicator, desktop-file-utils, appstream, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "meteo"; + version = "0.9.8"; + + src = fetchFromGitLab { + owner = "bitseater"; + repo = pname; + rev = version; + sha256 = "1ll5fja0dqxcr6hrh2dk4hgw9gf8ms9bcp1ifznd21byxzyhdlr0"; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + meson + ninja + pkg-config + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + geocode-glib + gtk3 + json-glib + libappindicator + libsoup + webkitgtk + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + + meta = with lib; { + description = "Know the forecast of the next hours & days"; + homepage = "https://gitlab.com/bitseater/meteo"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/websocketd/default.nix b/nixpkgs/pkgs/applications/networking/websocketd/default.nix new file mode 100644 index 000000000000..636443c9b858 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/websocketd/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "websocketd"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "joewalnes"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-cp4iBSQ6Cd0+NPZ2i79Mulg1z17u//OCm3yoArbZEHs="; + }; + + vendorSha256 = "sha256-i5IPJ3srUXL7WWjBW9w803VSoyjwA5JgPWKsAckPYxY="; + + doCheck = false; + + meta = with lib; { + description = "Turn any program that uses STDIN/STDOUT into a WebSocket server"; + homepage = "http://websocketd.com/"; + maintainers = [ maintainers.bjornfor ]; + license = licenses.bsd2; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/wg-bond/default.nix b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix new file mode 100644 index 000000000000..0c8c629208af --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix @@ -0,0 +1,29 @@ +{ pkgs, lib, rustPlatform, fetchFromGitLab, wireguard-tools, makeWrapper }: +rustPlatform.buildRustPackage rec { + pname = "wg-bond"; + version = "0.2.0"; + + src = fetchFromGitLab { + owner = "cab404"; + repo = "wg-bond"; + rev = "v${version}"; + hash = "sha256:04k0maxy39k7qzcsqsv1byddsmjszmnyjffrf22nzbvml83p3l0y"; + }; + + cargoSha256 = "1nlzhkhk1y0jhj6n3wn4dm783ldsxn7dk0d2xjx6ylczf9z3gp12"; + + nativeBuildInputs = [ makeWrapper ]; + postInstall = '' + wrapProgram $out/bin/wg-bond --set PATH ${ + lib.makeBinPath [ wireguard-tools ] + } + ''; + + meta = with lib; { + description = "Wireguard configuration manager"; + homepage = "https://gitlab.com/cab404/wg-bond"; + changelog = "https://gitlab.com/cab404/wg-bond/-/releases#v${version}"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ cab404 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/zerobin/default.nix b/nixpkgs/pkgs/applications/networking/zerobin/default.nix new file mode 100644 index 000000000000..b86fe7cc6410 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/zerobin/default.nix @@ -0,0 +1,61 @@ +{ lib +, python3Packages +, fetchFromGitHub +, nodePackages +}: + +python3Packages.buildPythonApplication rec { + pname = "zerobin"; + version = "1.0.5"; + src = fetchFromGitHub { + owner = "Tygs"; + repo = "0bin"; + rev = "v${version}"; + sha256 = "1dfy3h823ylz4w2vv3mrmnmiyvf6rvyvsp4j3llr074w9id0zy16"; + }; + + disabled = python3Packages.pythonOlder "3.7"; + + nativeBuildInputs = [ + python3Packages.doit + python3Packages.pyscss + nodePackages.uglify-js + ]; + propagatedBuildInputs = with python3Packages; [ + appdirs + beaker + bleach + bottle + clize + lockfile + paste + ]; + prePatch = '' + # replace /bin/bash in compress.sh + patchShebangs . + + # relax version constraints of some dependencies + substituteInPlace setup.cfg \ + --replace "bleach==3.1.5" "bleach>=3.1.5,<4" \ + --replace "bottle==0.12.18" "bottle>=0.12.18,<1" \ + --replace "Paste==3.4.3" "Paste>=3.4.3,<4" + ''; + buildPhase = '' + runHook preBuild + doit build + runHook postBuild + ''; + + # zerobin has no check, but checking would fail with: + # nix_run_setup runserver: Received extra arguments: test + # See https://github.com/NixOS/nixpkgs/pull/98734#discussion_r495823510 + doCheck = false; + + meta = with lib; { + description = "A client side encrypted pastebin"; + homepage = "https://0bin.net/"; + license = licenses.wtfpl; + platforms = platforms.all; + maintainers = with maintainers; [ julm ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/znc/default.nix b/nixpkgs/pkgs/applications/networking/znc/default.nix new file mode 100644 index 000000000000..e5aec9117068 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/znc/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchurl, openssl, pkg-config +, withPerl ? false, perl +, withPython ? false, python3 +, withTcl ? false, tcl +, withCyrus ? true, cyrus_sasl +, withUnicode ? true, icu +, withZlib ? true, zlib +, withIPv6 ? true +, withDebug ? false +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "znc"; + version = "1.8.2"; + + src = fetchurl { + url = "https://znc.in/releases/archive/${pname}-${version}.tar.gz"; + sha256 = "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ] + ++ optional withPerl perl + ++ optional withPython python3 + ++ optional withTcl tcl + ++ optional withCyrus cyrus_sasl + ++ optional withUnicode icu + ++ optional withZlib zlib; + + configureFlags = [ + (lib.enableFeature withPerl "perl") + (lib.enableFeature withPython "python") + (lib.enableFeature withTcl "tcl") + (lib.withFeatureAs withTcl "tcl" "${tcl}/lib") + (lib.enableFeature withCyrus "cyrus") + ] ++ optional (!withIPv6) [ "--disable-ipv6" ] + ++ optional withDebug [ "--enable-debug" ]; + + enableParallelBuilding = true; + + meta = with lib; { + description = "Advanced IRC bouncer"; + homepage = "https://wiki.znc.in/ZNC"; + maintainers = with maintainers; [ schneefux lnl7 ]; + license = licenses.asl20; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/znc/modules.nix b/nixpkgs/pkgs/applications/networking/znc/modules.nix new file mode 100644 index 000000000000..a72618d935d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/znc/modules.nix @@ -0,0 +1,198 @@ +{ lib, stdenv, fetchFromGitHub, znc }: + +let + zncDerivation = a@{ + name, src, module_name, + buildPhase ? "${znc}/bin/znc-buildmod ${module_name}.cpp", + installPhase ? "install -D ${module_name}.so $out/lib/znc/${module_name}.so", ... + } : stdenv.mkDerivation (a // { + inherit buildPhase; + inherit installPhase; + + buildInputs = znc.buildInputs; + + meta = a.meta // { platforms = lib.platforms.unix; }; + passthru.module_name = module_name; + }); + +in { + + backlog = zncDerivation rec { + name = "znc-backlog-${version}"; + version = "git-2017-06-13"; + module_name = "backlog"; + + src = fetchFromGitHub { + owner = "FruitieX"; + repo = "znc-backlog"; + rev = "42e8f439808882d2dae60f2a161eabead14e4b0d"; + sha256 = "1k7ifpqqzzf2j7w795q4mx1nvmics2higzjqr3mid3lp43sqg5s6"; + }; + + meta = with lib; { + description = "Request backlog for IRC channels."; + homepage = "https://github.com/fruitiex/znc-backlog/"; + license = licenses.asl20; + maintainers = with maintainers; [ infinisil ]; + }; + }; + + clientbuffer = zncDerivation rec { + name = "znc-clientbuffer-${version}"; + version = "git-2020-04-24"; + module_name = "clientbuffer"; + + src = fetchFromGitHub { + owner = "CyberShadow"; + repo = "znc-clientbuffer"; + rev = "2e32d508aa975c0a307d09575a0198f8c56c11fa"; + sha256 = "1jaspnrbv3pzsnbysqygc8s8g3q07zx5nlrdpgwv9j8aryg0pcnh"; + }; + + meta = with lib; { + description = "ZNC module for client specific buffers"; + homepage = "https://github.com/CyberShadow/znc-clientbuffer"; + license = licenses.asl20; + maintainers = with maintainers; [ hrdinka szlend ]; + }; + }; + + clientaway = zncDerivation rec { + name = "znc-clientaway-${version}"; + version = "git-2017-04-28"; + module_name = "clientaway"; + + src = fetchFromGitHub { + owner = "kylef"; + repo = "znc-contrib"; + rev = "f6724a4a3b16b050088adde0cbeed74f189e5044"; + sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8"; + }; + + meta = with lib; { + description = "ZNC clientaway module"; + homepage = "https://github.com/kylef/znc-contrib"; + license = licenses.gpl2; + maintainers = with maintainers; [ kiwi ]; + }; + }; + + fish = zncDerivation rec { + name = "znc-fish-${version}"; + version = "git-2017-06-26"; + module_name = "fish"; + + src = fetchFromGitHub { + # this fork works with ZNC 1.7 + owner = "oilslump"; + repo = "znc-fish"; + rev = "7d91467dbb195f7b591567911210523c6087662e"; + sha256 = "1ky5xg17k5f393whrv5iv8zsmdvdyk2f7z5qdsmxcwy3pdxy6vsm"; + }; + + meta = { + description = "ZNC FiSH module"; + homepage = "https://github.com/dctrwatson/znc-fish"; + maintainers = [ lib.maintainers.offline ]; + }; + }; + + ignore = zncDerivation rec { + name = "znc-ignore-${version}"; + version = "git-2017-04-28"; + module_name = "ignore"; + + src = fetchFromGitHub { + owner = "kylef"; + repo = "znc-contrib"; + rev = "f6724a4a3b16b050088adde0cbeed74f189e5044"; + sha256 = "0ikd3dzjjlr0gs0ikqfk50msm6mij99ln2rjzqavh58iwzr7n5r8"; + }; + + meta = with lib; { + description = "ZNC ignore module"; + homepage = "https://github.com/kylef/znc-contrib"; + license = licenses.gpl2; + maintainers = with maintainers; [ kiwi ]; + }; + }; + + palaver = zncDerivation rec { + name = "znc-palaver-${version}"; + version = "2020-07-18"; + module_name = "palaver"; + + src = fetchFromGitHub { + owner = "cocodelabs"; + repo = "znc-palaver"; + rev = "825cb6814d64006ca0f85fec23fa0a8a3a2d14ca"; + sha256 = "zXWPIxhO5Z2L6f+Hf3vIpEh6V4kjUONWAaKexKLECc8="; + }; + + meta = with lib; { + description = "Palaver ZNC module"; + homepage = "https://github.com/cocodelabs/znc-palaver"; + license = licenses.mit; + maintainers = with maintainers; [ kiwi szlend ]; + }; + }; + + playback = zncDerivation rec { + name = "znc-playback-${version}"; + version = "git-2015-08-04"; + module_name = "playback"; + + src = fetchFromGitHub { + owner = "jpnurmi"; + repo = "znc-playback"; + rev = "8691abf75becc1f3d7b5bb5ad68dad17cd21863b"; + sha256 = "0mgfajljy035051b2sx70i8xrb51zw9q2z64kf85zw1lynihzyh4"; + }; + + meta = with lib; { + description = "An advanced playback module for ZNC"; + homepage = "https://github.com/jpnurmi/znc-playback"; + license = licenses.asl20; + maintainers = with maintainers; [ hrdinka ]; + }; + }; + + privmsg = zncDerivation rec { + name = "znc-privmsg-${version}"; + version = "git-2015-02-22"; + module_name = "privmsg"; + + src = fetchFromGitHub { + owner = "kylef"; + repo = "znc-contrib"; + rev = "9f1f98db56cbbea96d83e6628f657e0d62cd9517"; + sha256 = "0n82z87gdxxragcaixjc80z8bw4bmfwbk0jrf9zs8kk42phlkkc2"; + }; + + meta = { + description = "ZNC privmsg module"; + homepage = "https://github.com/kylef/znc-contrib"; + }; + }; + + push = zncDerivation rec { + name = "znc-push-${version}"; + version = "git-2016-10-12"; + module_name = "push"; + + src = fetchFromGitHub { + owner = "jreese"; + repo = "znc-push"; + rev = "cf08b9e0f483f03c28d72dd78df932cbef141f10"; + sha256 = "0xpwjw8csyrg736g1jc1n8d6804x6kbdkrvldzhk9ldj4iwqz7ay"; + }; + + meta = { + description = "Push notification service module for ZNC"; + homepage = "https://github.com/jreese/znc-push"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ offline schneefux ]; + }; + }; + +} |