diff options
Diffstat (limited to 'pkgs/tools/audio')
73 files changed, 7252 insertions, 651 deletions
diff --git a/pkgs/tools/audio/abcm2ps/default.nix b/pkgs/tools/audio/abcm2ps/default.nix index 099ccc6f4cb..b94d514e8ec 100644 --- a/pkgs/tools/audio/abcm2ps/default.nix +++ b/pkgs/tools/audio/abcm2ps/default.nix @@ -1,14 +1,14 @@ -{ stdenv, fetchFromGitHub, pkgconfig, which, docutils, freetype, pango }: +{ lib, stdenv, fetchFromGitHub, pkg-config, which, docutils, freetype, pango }: stdenv.mkDerivation rec { pname = "abcm2ps"; - version = "8.14.9"; + version = "8.14.12"; src = fetchFromGitHub { owner = "leesavide"; repo = "abcm2ps"; rev = "v${version}"; - sha256 = "0h4qzj9k5ng09nbkfipvr82piq68c576akjwmhsqn05rvgirmhx7"; + sha256 = "sha256-RELWtI+S2cbG7cXCehXymvWRdair28UaDZRVr5xt9Tk="; }; configureFlags = [ @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { "CC=${stdenv.cc}/bin/cc" ]; - nativeBuildInputs = [ which pkgconfig docutils ]; + nativeBuildInputs = [ which pkg-config docutils ]; buildInputs = [ freetype pango ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://moinejf.free.fr/"; - license = licenses.gpl3; + license = licenses.lgpl3Plus; description = "A command line program which converts ABC to music sheet in PostScript or SVG format"; platforms = platforms.unix; maintainers = [ maintainers.dotlambda ]; diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix index f075f503ae5..16c6e0fc8a0 100644 --- a/pkgs/tools/audio/abcmidi/default.nix +++ b/pkgs/tools/audio/abcmidi/default.nix @@ -1,18 +1,15 @@ -{ stdenv, fetchzip }: +{ lib, stdenv, fetchzip }: stdenv.mkDerivation rec { pname = "abcMIDI"; - version = "2020.07.28"; + version = "2021.06.27"; src = fetchzip { url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip"; - sha256 = "05nsakvnx1jz2k9bvabpw5v3js28ng9z7n6ch58brd3qxc2p76zv"; + sha256 = "sha256-tLKxs1p1CIU/2XV1fMgWrwdtePeXOBZUMjz46kgp9C0="; }; - # There is also a file called "makefile" which seems to be preferred by the standard build phase - makefile = "Makefile"; - - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://abc.sourceforge.net/abcMIDI/"; downloadPage = "https://ifdo.ca/~seymour/runabc/top.html"; license = licenses.gpl2Plus; diff --git a/pkgs/tools/audio/accuraterip-checksum/default.nix b/pkgs/tools/audio/accuraterip-checksum/default.nix index efd44025647..161e9848bea 100644 --- a/pkgs/tools/audio/accuraterip-checksum/default.nix +++ b/pkgs/tools/audio/accuraterip-checksum/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, libsndfile }: +{ lib, stdenv, fetchFromGitHub, libsndfile }: stdenv.mkDerivation rec { pname = "accuraterip-checksum"; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { runHook postInstall ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Program for computing the AccurateRip checksum of singletrack WAV files"; homepage = "https://github.com/leo-bogert/accuraterip-checksum"; license = licenses.gpl3; diff --git a/pkgs/tools/audio/acousticbrainz-client/default.nix b/pkgs/tools/audio/acousticbrainz-client/default.nix new file mode 100644 index 00000000000..a08710fe121 --- /dev/null +++ b/pkgs/tools/audio/acousticbrainz-client/default.nix @@ -0,0 +1,41 @@ +{ lib, fetchFromGitHub, python3Packages, essentia-extractor }: + +python3Packages.buildPythonApplication rec { + pname = "acousticbrainz-client"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "MTG"; + repo = "acousticbrainz-client"; + rev = version; + sha256 = "1g1nxh58939vysfxplrgdz366dlqnic05pkzbqh75m79brg4yrv1"; + }; + + propagatedBuildInputs = [ essentia-extractor python3Packages.requests ]; + + postPatch = '' + # The installer needs the streaming_extractor_music binary in the source directoy, + # so we provide a symlink to it. + ln -s ${essentia-extractor}/bin/streaming_extractor_music streaming_extractor_music + ''; + + postInstall = '' + # The installer includes a copy of the streaming_extractor_music binary (not a symlink), + # which we don't need, because the wrapper adds essentia-extractor/binary to PATH. + rm $out/bin/streaming_extractor_music + ''; + + # Tests seem to be broken, but the tool works + doCheck = false; + + pythonImportsCheck = [ "abz" ]; + + meta = with lib; { + description = "A client to upload data to an AcousticBrainz server"; + license = licenses.gpl3Plus; + homepage = "https://github.com/MTG/acousticbrainz-client"; + # essentia-extractor is only available for those platforms + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ eduardosm ]; + }; +} diff --git a/pkgs/tools/audio/acoustid-fingerprinter/default.nix b/pkgs/tools/audio/acoustid-fingerprinter/default.nix index e2824bc07b6..4fc3d957e13 100644 --- a/pkgs/tools/audio/acoustid-fingerprinter/default.nix +++ b/pkgs/tools/audio/acoustid-fingerprinter/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, cmake, pkgconfig, qt4, taglib, chromaprint, ffmpeg }: +{ lib, stdenv, fetchurl, fetchpatch, cmake, pkg-config, qt4, taglib, chromaprint, ffmpeg }: stdenv.mkDerivation rec { pname = "acoustid-fingerprinter"; @@ -10,23 +10,28 @@ stdenv.mkDerivation rec { sha256 = "0ckglwy95qgqvl2l6yd8ilwpd6qs7yzmj8g7lnxb50d12115s5n0"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake qt4 taglib chromaprint ffmpeg ]; + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ qt4 taglib chromaprint ffmpeg ]; - cmakeFlags = [ "-DTAGLIB_MIN_VERSION=${stdenv.lib.getVersion taglib}" ]; + cmakeFlags = [ "-DTAGLIB_MIN_VERSION=${lib.getVersion taglib}" ]; patches = [ (fetchpatch { + name = "fix-build-with-libav-10.patch"; + url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/2c778334a9fc2f0ccf9b1d7635c116bce6509748/raw"; + sha256 = "1smyp3x5n6jwxpgw60xsijq2fn6g1gl759h1lm5agaxhcyyqn0i0"; + }) + (fetchpatch { + name = "fix-build-failure-on-gcc-6.patch"; url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/632e87969c3a5562a5d4842b03613267ba6236b2/raw"; sha256 = "15hm9knrpqn3yqrwyjz4zh2aypwbcycd0c5svrsy1fb2h2rh05jk"; }) - ./ffmpeg.patch ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://acoustid.org/fingerprinter"; description = "Audio fingerprinting tool using chromaprint"; - license = stdenv.lib.licenses.gpl2Plus; + license = lib.licenses.gpl2Plus; maintainers = with maintainers; [ ehmry ]; platforms = with platforms; linux; }; diff --git a/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch b/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch deleted file mode 100644 index f3eacae26f7..00000000000 --- a/pkgs/tools/audio/acoustid-fingerprinter/ffmpeg.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/decoder.h b/decoder.h -index 028f58f..4428ac1 100644 ---- a/decoder.h -+++ b/decoder.h -@@ -39,6 +39,8 @@ extern "C" { - #define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16 - #endif - -+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 -+ - class Decoder - { - public: -diff --git a/ffmpeg/audioconvert.h b/ffmpeg/audioconvert.h -index 2b28e2e..a699986 100644 ---- a/ffmpeg/audioconvert.h -+++ b/ffmpeg/audioconvert.h -@@ -79,7 +79,7 @@ int avcodec_channel_layout_num_channels(int64_t channel_layout); - * @param fmt_name Format name, or NULL if unknown - * @return Channel layout mask - */ --uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name); -+uint64_t avcodec_guess_channel_layout(int nb_channels, enum AVCodecID codec_id, const char *fmt_name); - - struct AVAudioConvert; - typedef struct AVAudioConvert AVAudioConvert; diff --git a/pkgs/tools/audio/alsaequal/default.nix b/pkgs/tools/audio/alsaequal/default.nix index 9498baca991..c6c25fd3996 100644 --- a/pkgs/tools/audio/alsaequal/default.nix +++ b/pkgs/tools/audio/alsaequal/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl -, alsaLib, caps +{ lib, stdenv, fetchurl +, alsa-lib, caps }: stdenv.mkDerivation rec { @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "1w3g9q5z3nrn3mwdhaq6zsg0jila8d102dgwgrhj9vfx58apsvli"; }; - buildInputs = [ alsaLib ]; + buildInputs = [ alsa-lib ]; makeFlags = [ "DESTDIR=$(out)" ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { mkdir -p "$out/lib/alsa-lib" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Real-time adjustable equalizer plugin for ALSA"; homepage = "https://thedigitalmachine.net/alsaequal.html"; license = licenses.gpl2; diff --git a/pkgs/tools/audio/aucdtect/default.nix b/pkgs/tools/audio/aucdtect/default.nix deleted file mode 100644 index ad9d5fb8690..00000000000 --- a/pkgs/tools/audio/aucdtect/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ stdenv, fetchurl, lib, rpmextract }: - -with lib; - -stdenv.mkDerivation rec { - pname = "aucdtect"; - version = "0.8-2"; - - src = fetchurl { - url = "http://www.true-audio.com/ftp/${pname}-${version}.i586.rpm"; - sha256 = "1lp5f0rq5b5n5il0c64m00gcfskarvgqslpryms9443d200y6mmd"; - }; - - unpackCmd = "${rpmextract}/bin/rpmextract $src"; - - installPhase = '' - runHook preInstall - - install -Dm755 local/bin/auCDtect $out/bin/aucdtect - - runHook postInstall - ''; - - dontStrip = true; - - meta = with stdenv.lib; { - description = "Verify authenticity of lossless audio files"; - homepage = "http://tausoft.org"; - license = licenses.unfreeRedistributable; - maintainers = with maintainers; [ peterhoeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/tools/audio/audiowaveform/default.nix b/pkgs/tools/audio/audiowaveform/default.nix new file mode 100644 index 00000000000..e120f6fcbf0 --- /dev/null +++ b/pkgs/tools/audio/audiowaveform/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, cmake, gtest, boost, gd, libsndfile, libmad, libid3tag }: + +stdenv.mkDerivation rec { + pname = "audiowaveform"; + version = "1.4.2"; + + src = fetchFromGitHub { + owner = "bbc"; + repo = "audiowaveform"; + rev = version; + sha256 = "0k2s2f2hgq4pnjzfkgvjwgsflihmzdq7shicfjn0z2mzw4d1bvp2"; + }; + + nativeBuildInputs = [ cmake gtest ]; + + buildInputs = [ boost gd libsndfile libmad libid3tag ]; + + preConfigure = '' + ln -s ${gtest.src}/googletest googletest + ln -s ${gtest.src}/googlemock googlemock + ''; + + # One test is failing, see PR #101947 + doCheck = false; + + meta = with lib; { + description = "C++ program to generate waveform data and render waveform images from audio files"; + longDescription = '' + audiowaveform is a C++ command-line application that generates waveform data from either MP3, WAV, FLAC, or Ogg Vorbis format audio files. + Waveform data can be used to produce a visual rendering of the audio, similar in appearance to audio editing applications. + ''; + homepage = "https://github.com/bbc/audiowaveform"; + changelog = "https://github.com/bbc/audiowaveform/blob/${version}/ChangeLog"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = with maintainers; [ edbentley ]; + }; +} diff --git a/pkgs/tools/audio/beets/alternatives-plugin.nix b/pkgs/tools/audio/beets/alternatives-plugin.nix deleted file mode 100644 index fdad7dd8984..00000000000 --- a/pkgs/tools/audio/beets/alternatives-plugin.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ stdenv, fetchFromGitHub, beets, pythonPackages }: - -pythonPackages.buildPythonApplication rec { - pname = "beets-alternatives"; - version = "0.9.0"; - - src = fetchFromGitHub { - repo = "beets-alternatives"; - owner = "geigerzaehler"; - # This is 0.8.2 with fixes against Beets 1.4.6 and Python 3 compatibility. - rev = "v${version}"; - sha256 = "19160gwg5j6asy8mc21g2kf87mx4zs9x2gbk8q4r6330z4kpl5pm"; - }; - - nativeBuildInputs = [ beets pythonPackages.nose ]; - - checkPhase = "nosetests"; - - meta = { - description = "Beets plugin to manage external files"; - homepage = "https://github.com/geigerzaehler/beets-alternatives"; - maintainers = [ stdenv.lib.maintainers.aszlig ]; - license = stdenv.lib.licenses.mit; - }; -} diff --git a/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch b/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch new file mode 100644 index 00000000000..6956183344c --- /dev/null +++ b/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch @@ -0,0 +1,21 @@ +diff --git i/beetsplug/badfiles.py w/beetsplug/badfiles.py +index 36b45de3..5208b696 100644 +--- i/beetsplug/badfiles.py ++++ w/beetsplug/badfiles.py +@@ -71,14 +71,14 @@ class BadFiles(BeetsPlugin): + return status, errors, [line for line in output.split("\n") if line] + + def check_mp3val(self, path): +- status, errors, output = self.run_command(["mp3val", path]) ++ status, errors, output = self.run_command(["@mp3val@/bin/mp3val", path]) + if status == 0: + output = [line for line in output if line.startswith("WARNING:")] + errors = len(output) + return status, errors, output + + def check_flac(self, path): +- return self.run_command(["flac", "-wst", path]) ++ return self.run_command(["@flac@/bin/flac", "-wst", path]) + + def check_custom(self, command): + def checker(path): diff --git a/pkgs/tools/audio/beets/bash-completion-always-print.patch b/pkgs/tools/audio/beets/bash-completion-always-print.patch new file mode 100644 index 00000000000..7bc3e57117e --- /dev/null +++ b/pkgs/tools/audio/beets/bash-completion-always-print.patch @@ -0,0 +1,43 @@ +diff --git i/beets/ui/commands.py w/beets/ui/commands.py +index 4d010f4b..0b023585 100755 +--- i/beets/ui/commands.py ++++ w/beets/ui/commands.py +@@ -1741,20 +1741,6 @@ default_commands.append(config_cmd) + def print_completion(*args): + for line in completion_script(default_commands + plugins.commands()): + print_(line, end=u'') +- if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)): +- log.warning(u'Warning: Unable to find the bash-completion package. ' +- u'Command line completion might not work.') +- +-BASH_COMPLETION_PATHS = map(syspath, [ +- u'/etc/bash_completion', +- u'/usr/share/bash-completion/bash_completion', +- u'/usr/local/share/bash-completion/bash_completion', +- # SmartOS +- u'/opt/local/share/bash-completion/bash_completion', +- # Homebrew (before bash-completion2) +- u'/usr/local/etc/bash_completion', +-]) +- + + def completion_script(commands): + """Yield the full completion shell script as strings. +diff --git i/test/test_ui.py w/test/test_ui.py +index 5cfed1fd..9d3dc458 100644 +--- i/test/test_ui.py ++++ w/test/test_ui.py +@@ -1230,12 +1230,7 @@ class CompletionTest(_common.TestCase, TestHelper): + stdout=subprocess.PIPE, env=env) + + # Load bash_completion library. +- for path in commands.BASH_COMPLETION_PATHS: +- if os.path.exists(util.syspath(path)): +- bash_completion = path +- break +- else: +- self.skipTest(u'bash-completion script not found') ++ self.skipTest(u'bash-completion script not found') + try: + with open(util.syspath(bash_completion), 'rb') as f: + tester.stdin.writelines(f) diff --git a/pkgs/tools/audio/beets/beet-check-tests.patch b/pkgs/tools/audio/beets/beet-check-tests.patch deleted file mode 100644 index 2de97b86c8b..00000000000 --- a/pkgs/tools/audio/beets/beet-check-tests.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/test/cli_test.py b/test/cli_test.py -index 26df140..2eb913c 100644 ---- a/test/cli_test.py -+++ b/test/cli_test.py -@@ -372,12 +372,6 @@ class ToolListTest(TestHelper, TestCase): - self.assertIn('flac', stdout.getvalue()) - self.assertIn('oggz-validate', stdout.getvalue()) - -- def test_found_mp3val(self): -- shutil.copy('/bin/echo', os.path.join(self.temp_dir, 'mp3val')) -- with captureStdout() as stdout: -- beets.ui._raw_main(['check', '--list-tools']) -- self.assertRegexpMatches(stdout.getvalue(), r'mp3val *found') -- - def test_oggz_validate_not_found(self): - with captureStdout() as stdout: - beets.ui._raw_main(['check', '--list-tools']) diff --git a/pkgs/tools/audio/beets/check-plugin.nix b/pkgs/tools/audio/beets/check-plugin.nix deleted file mode 100644 index 241dcdad452..00000000000 --- a/pkgs/tools/audio/beets/check-plugin.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenv, fetchFromGitHub, beets, pythonPackages, flac, liboggz, mp3val }: - -pythonPackages.buildPythonApplication rec { - name = "beets-check"; - version = "0.12.0"; - - src = fetchFromGitHub { - repo = "beets-check"; - owner = "geigerzaehler"; - rev = "v${version}"; - sha256 = "0b2ijjf0gycs6b40sm33ida3sjygjiv4spb5mba52vysc7iwmnjn"; - }; - - nativeBuildInputs = [ beets ]; - checkInputs = [ pythonPackages.nose flac liboggz mp3val ]; - propagatedBuildInputs = [ flac liboggz mp3val ]; - - # patch out broken tests - patches = [ ./beet-check-tests.patch ]; - - # patch out futures dependency, it is only needed for Python2 which we don't - # support. - prePatch = '' - sed -i "/futures/d" setup.py - ''; - - checkPhase = "nosetests"; - - meta = with stdenv.lib; { - description = "Beets plugin to Verify and store checksums in your library"; - homepage = "https://github.com/geigerzaehler/beets-check"; - license = licenses.mit; - maintainers = with maintainers; [ lovesegfault ]; - }; -} diff --git a/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch b/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch deleted file mode 100644 index 4865b6f6234..00000000000 --- a/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 771ce704ebeac4cd9bd74b3ddde9fb01f3dc7eb4 Mon Sep 17 00:00:00 2001 -From: wisp3rwind <17089248+wisp3rwind@users.noreply.github.com> -Date: Tue, 9 Jun 2020 19:34:31 +0200 -Subject: [PATCH] compatibility with breaking changes to the ast module - -new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649 -In fact, our generation of some Literals has been invalid since Python -3.4, fix that too. ---- - beets/util/functemplate.py | 29 ++++++++++++++++++++--------- - 1 file changed, 20 insertions(+), 9 deletions(-) - -diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py -index af22b790..266534a9 100644 ---- a/beets/util/functemplate.py -+++ b/beets/util/functemplate.py -@@ -73,15 +73,26 @@ def ex_literal(val): - """An int, float, long, bool, string, or None literal with the given - value. - """ -- if val is None: -- return ast.Name('None', ast.Load()) -- elif isinstance(val, six.integer_types): -- return ast.Num(val) -- elif isinstance(val, bool): -- return ast.Name(bytes(val), ast.Load()) -- elif isinstance(val, six.string_types): -- return ast.Str(val) -- raise TypeError(u'no literal for {0}'.format(type(val))) -+ if sys.version_info[:2] < (3, 4): -+ if val is None: -+ return ast.Name('None', ast.Load()) -+ elif isinstance(val, six.integer_types): -+ return ast.Num(val) -+ elif isinstance(val, bool): -+ return ast.Name(bytes(val), ast.Load()) -+ elif isinstance(val, six.string_types): -+ return ast.Str(val) -+ raise TypeError(u'no literal for {0}'.format(type(val))) -+ elif sys.version_info[:2] < (3, 6): -+ if val in [None, True, False]: -+ return ast.NameConstant(val) -+ elif isinstance(val, six.integer_types): -+ return ast.Num(val) -+ elif isinstance(val, six.string_types): -+ return ast.Str(val) -+ raise TypeError(u'no literal for {0}'.format(type(val))) -+ else: -+ return ast.Constant(val) - - - def ex_varassign(name, expr): --- -2.27.0 - diff --git a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch new file mode 100644 index 00000000000..bcc77179d79 --- /dev/null +++ b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch @@ -0,0 +1,43 @@ +diff --git i/beetsplug/convert.py w/beetsplug/convert.py +index 70363f6e..2962aa4f 100644 +--- i/beetsplug/convert.py ++++ w/beetsplug/convert.py +@@ -81,7 +81,7 @@ def get_format(fmt=None): + command = config['convert']['command'].as_str() + elif 'opts' in keys: + # Undocumented option for backwards compatibility with < 1.3.1. +- command = u'ffmpeg -i $source -y {0} $dest'.format( ++ command = u'@ffmpeg@/bin/ffmpeg -i $source -y {0} $dest'.format( + config['convert']['opts'].as_str() + ) + if 'extension' in keys: +@@ -121,22 +121,22 @@ class ConvertPlugin(BeetsPlugin): + u'id3v23': u'inherit', + u'formats': { + u'aac': { +- u'command': u'ffmpeg -i $source -y -vn -acodec aac ' ++ u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac ' + u'-aq 1 $dest', + u'extension': u'm4a', + }, + u'alac': { +- u'command': u'ffmpeg -i $source -y -vn -acodec alac $dest', ++ u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest', + u'extension': u'm4a', + }, +- u'flac': u'ffmpeg -i $source -y -vn -acodec flac $dest', +- u'mp3': u'ffmpeg -i $source -y -vn -aq 2 $dest', ++ u'flac': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest', ++ u'mp3': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest', + u'opus': +- u'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest', ++ u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest', + u'ogg': +- u'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest', ++ u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest', + u'wma': +- u'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest', ++ u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest', + }, + u'max_bitrate': 500, + u'auto': False, diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index 776eca99998..059174ae0a2 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -1,126 +1,117 @@ -{ stdenv, fetchFromGitHub, writeScript, glibcLocales, diffPlugins +{ stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll , pythonPackages, imagemagick, gobject-introspection, gst_all_1 -, runtimeShell -, fetchpatch - -# Attributes needed for tests of the external plugins -, callPackage, beets - -, enableAbsubmit ? stdenv.lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor ? null -, enableAcousticbrainz ? true -, enableAcoustid ? true -, enableBadfiles ? true, flac ? null, mp3val ? null -, enableConvert ? true, ffmpeg_3 ? null -, enableDiscogs ? true -, enableEmbyupdate ? true -, enableFetchart ? true -, enableGmusic ? true -, enableKeyfinder ? true, keyfinder-cli ? null -, enableKodiupdate ? true -, enableLastfm ? true -, enableLoadext ? true -, enableMpd ? true -, enablePlaylist ? true -, enableReplaygain ? true, bs1770gain ? null -, enableSonosUpdate ? true -, enableSubsonicupdate ? true -, enableThumbnails ? true -, enableWeb ? true +, runtimeShell, unstableGitUpdater + +# external plugins package set +, beetsExternalPlugins + +, enableAbsubmit ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor +, enableAcousticbrainz ? true +, enableAcoustid ? true +, enableAura ? true +, enableBadfiles ? true, flac, mp3val +, enableBeatport ? true +, enableBpsync ? true +, enableConvert ? true, ffmpeg +, enableDeezer ? true +, enableDiscogs ? true +, enableEmbyupdate ? true +, enableFetchart ? true +, enableKeyfinder ? true, keyfinder-cli +, enableKodiupdate ? true +, enableLastfm ? true +, enableLoadext ? true +, enableLyrics ? true +, enableMpd ? true +, enablePlaylist ? true +, enableReplaygain ? true +, enableSonosUpdate ? true +, enableSubsonicplaylist ? true +, enableSubsonicupdate ? true +, enableThumbnails ? true +, enableWeb ? true # External plugins -, enableAlternatives ? false -, enableCheck ? false, liboggz ? null -, enableCopyArtifacts ? false +, enableAlternatives ? false +, enableCopyArtifacts ? false +, enableExtraFiles ? false , bashInteractive, bash-completion }: -assert enableAbsubmit -> essentia-extractor != null; -assert enableAcoustid -> pythonPackages.pyacoustid != null; -assert enableBadfiles -> flac != null && mp3val != null; -assert enableCheck -> flac != null && mp3val != null && liboggz != null; -assert enableConvert -> ffmpeg_3 != null; -assert enableDiscogs -> pythonPackages.discogs_client != null; -assert enableFetchart -> pythonPackages.responses != null; -assert enableGmusic -> pythonPackages.gmusicapi != null; -assert enableKeyfinder -> keyfinder-cli != null; -assert enableLastfm -> pythonPackages.pylast != null; -assert enableMpd -> pythonPackages.mpd2 != null; -assert enableReplaygain -> bs1770gain != null; -assert enableSonosUpdate -> pythonPackages.soco != null; -assert enableThumbnails -> pythonPackages.pyxdg != null; -assert enableWeb -> pythonPackages.flask != null; - -with stdenv.lib; +assert enableBpsync -> enableBeatport; let optionalPlugins = { absubmit = enableAbsubmit; acousticbrainz = enableAcousticbrainz; + aura = enableAura; badfiles = enableBadfiles; + beatport = enableBeatport; + bpsync = enableBpsync; chroma = enableAcoustid; convert = enableConvert; + deezer = enableDeezer; discogs = enableDiscogs; embyupdate = enableEmbyupdate; fetchart = enableFetchart; - gmusic = enableGmusic; keyfinder = enableKeyfinder; kodiupdate = enableKodiupdate; lastgenre = enableLastfm; lastimport = enableLastfm; loadext = enableLoadext; + lyrics = enableLyrics; mpdstats = enableMpd; mpdupdate = enableMpd; playlist = enablePlaylist; replaygain = enableReplaygain; sonosupdate = enableSonosUpdate; + subsonicplaylist = enableSubsonicplaylist; subsonicupdate = enableSubsonicupdate; thumbnails = enableThumbnails; web = enableWeb; }; pluginsWithoutDeps = [ - "beatport" "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart" - "export" "filefilter" "freedesktop" "fromfilename" "ftintitle" "fuzzy" - "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "lyrics" - "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "permissions" "play" + "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart" + "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy" + "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" + "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play" "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the" - "types" "zero" + "types" "unimported" "zero" ]; - enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins); + enabledOptionalPlugins = lib.attrNames (lib.filterAttrs (_: lib.id) optionalPlugins); - allPlugins = pluginsWithoutDeps ++ attrNames optionalPlugins; + allPlugins = pluginsWithoutDeps ++ lib.attrNames optionalPlugins; allEnabledPlugins = pluginsWithoutDeps ++ enabledOptionalPlugins; testShell = "${bashInteractive}/bin/bash --norc"; completion = "${bash-completion}/share/bash-completion/bash_completion"; # This is a stripped down beets for testing of the external plugins. - externalTestArgs.beets = (beets.override { + externalTestArgs.beets = (lib.beets.override { enableAlternatives = false; enableCopyArtifacts = false; - }).overrideAttrs (stdenv.lib.const { + enableExtraFiles = false; + }).overrideAttrs (lib.const { doInstallCheck = false; }); - pluginArgs = externalTestArgs // { inherit pythonPackages; }; - - plugins = { - alternatives = callPackage ./alternatives-plugin.nix pluginArgs; - check = callPackage ./check-plugin.nix pluginArgs; - copyartifacts = callPackage ./copyartifacts-plugin.nix pluginArgs; - }; - in pythonPackages.buildPythonApplication rec { pname = "beets"; - version = "1.4.9"; + # While there is a stable version, 1.4.9, it is more than 1000 commits behind + # master and lacks many bug fixes and improvements[1]. Also important, + # unstable does not require bs1770gain[2]. + # [1]: https://discourse.beets.io/t/forming-a-beets-core-team/639 + # [2]: https://github.com/NixOS/nixpkgs/pull/90504 + version = "unstable-2021-05-13"; src = fetchFromGitHub { owner = "beetbox"; repo = "beets"; - rev = "v${version}"; - sha256 = "1qxdqbzvz97zgykzdwn78g2xyxmg0q2jdb12dnjnrwvhmjv67vi8"; + rev = "1faa41f8c558d3f4415e5e48cf4513d50b466d34"; + sha256 = "sha256-P0bV7WNqCYe9+3lqnFmAoRlb2asdsBUjzRMc24RngpU="; }; propagatedBuildInputs = [ @@ -134,29 +125,36 @@ in pythonPackages.buildPythonApplication rec { pythonPackages.unidecode pythonPackages.gst-python pythonPackages.pygobject3 + pythonPackages.reflink + pythonPackages.confuse + pythonPackages.mediafile gobject-introspection - ] ++ optional enableAbsubmit essentia-extractor - ++ optional enableAcoustid pythonPackages.pyacoustid - ++ optional (enableFetchart - || enableEmbyupdate - || enableKodiupdate - || enableLoadext - || enablePlaylist - || enableSubsonicupdate - || enableAcousticbrainz) - pythonPackages.requests - ++ optional enableCheck plugins.check - ++ optional enableConvert ffmpeg_3 - ++ optional enableDiscogs pythonPackages.discogs_client - ++ optional enableGmusic pythonPackages.gmusicapi - ++ optional enableKeyfinder keyfinder-cli - ++ optional enableLastfm pythonPackages.pylast - ++ optional enableMpd pythonPackages.mpd2 - ++ optional enableSonosUpdate pythonPackages.soco - ++ optional enableThumbnails pythonPackages.pyxdg - ++ optional enableWeb pythonPackages.flask - ++ optional enableAlternatives plugins.alternatives - ++ optional enableCopyArtifacts plugins.copyartifacts; + ] ++ lib.optional enableAbsubmit essentia-extractor + ++ lib.optional enableAcoustid pythonPackages.pyacoustid + ++ lib.optional enableBeatport pythonPackages.requests_oauthlib + ++ lib.optional enableConvert ffmpeg + ++ lib.optional enableDiscogs pythonPackages.discogs-client + ++ lib.optional (enableFetchart + || enableDeezer + || enableEmbyupdate + || enableKodiupdate + || enableLoadext + || enablePlaylist + || enableSubsonicplaylist + || enableSubsonicupdate + || enableAcousticbrainz) pythonPackages.requests + ++ lib.optional enableKeyfinder keyfinder-cli + ++ lib.optional enableLastfm pythonPackages.pylast + ++ lib.optional enableLyrics pythonPackages.beautifulsoup4 + ++ lib.optional enableMpd pythonPackages.mpd2 + ++ lib.optional enableSonosUpdate pythonPackages.soco + ++ lib.optional enableThumbnails pythonPackages.pyxdg + ++ lib.optional (enableAura + || enableWeb) pythonPackages.flask + ++ lib.optional enableAlternatives beetsExternalPlugins.alternatives + ++ lib.optional enableCopyArtifacts beetsExternalPlugins.copyartifacts + ++ lib.optional enableExtraFiles beetsExternalPlugins.extrafiles + ; buildInputs = [ imagemagick @@ -177,46 +175,43 @@ in pythonPackages.buildPythonApplication rec { # https://github.com/beetbox/beets/blob/v1.4.9/setup.py pylast mpd2 - discogs_client + discogs-client pyxdg ]; patches = [ - ./replaygain-default-bs1770gain.patch + # Bash completion fix for Nix + ./bash-completion-always-print.patch + # From some reason upstream assumes the program 'keyfinder-cli' is located + # in the path as `KeyFinder` ./keyfinder-default-bin.patch - ./mutagen-1.43.patch - (fetchpatch { - # Fixes failing testcases around the werkzeug component; can dropped after 1.4.9 - url = "https://github.com/beetbox/beets/commit/d43d54e21cde97f57f19486925ab56b419254cc8.patch"; - sha256 = "13n2gzmcgfi0m2ycl2r1hpczgksplnkc3y6b66vg57rx5y8nnv5c"; + ] + # We need to force ffmpeg as the default, since we do not package + # bs1770gain, and set the absolute path there, to avoid impurities. + ++ lib.optional enableReplaygain (substituteAll { + src = ./replaygain-default-ffmpeg.patch; + ffmpeg = lib.getBin ffmpeg; }) + # Put absolute Nix paths in place + ++ lib.optional enableConvert (substituteAll { + src = ./convert-plugin-ffmpeg-path.patch; + ffmpeg = lib.getBin ffmpeg; + }) + ++ lib.optional enableBadfiles (substituteAll { + src = ./badfiles-plugin-nix-paths.patch; + inherit mp3val flac; + }) + ; - # Fixes 548 tests due to breaking changes to the ast module - # https://github.com/beetbox/beets/pull/3621 - # Can be dropped after 1.4.9 - ./compatibility-with-breaking-changes-to-the-ast-module.patch - ]; - + # Disable failing tests postPatch = '' sed -i -e '/assertIn.*item.*path/d' test/test_info.py echo echo completion tests passed > test/rsrc/test_completion.sh - sed -i -e '/^BASH_COMPLETION_PATHS *=/,/^])$/ { - /^])$/i u"${completion}" - }' beets/ui/commands.py - '' + optionalString enableBadfiles '' - sed -i -e '/self\.run_command(\[/ { - s,"flac","${flac.bin}/bin/flac", - s,"mp3val","${mp3val}/bin/mp3val", - }' beetsplug/badfiles.py - '' + optionalString enableConvert '' - sed -i -e 's,\(util\.command_output(\)\([^)]\+\)),\1[b"${ffmpeg_3.bin}/bin/ffmpeg" if args[0] == b"ffmpeg" else args[0]] + \2[1:]),' beetsplug/convert.py - '' + optionalString enableReplaygain '' - sed -i -re ' - s!^( *cmd *= *b?['\'''"])(bs1770gain['\'''"])!\1${bs1770gain}/bin/\2! - ' beetsplug/replaygain.py - sed -i -e 's/if has_program.*bs1770gain.*:/if True:/' \ - test/test_replaygain.py + sed -i -e 's/len(mf.images)/0/' test/test_zero.py + + # Google Play Music was discontinued + rm -r beetsplug/gmusic.py ''; postInstall = '' @@ -258,7 +253,7 @@ in pythonPackages.buildPythonApplication rec { EDITOR="${writeScript "beetconfig.sh" '' #!${runtimeShell} cat > "$1" <<CFG - plugins: ${concatStringsSep " " allEnabledPlugins} + plugins: ${lib.concatStringsSep " " allEnabledPlugins} CFG ''}" HOME="$tmphome" "$out/bin/beet" config -e EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e @@ -269,14 +264,16 @@ in pythonPackages.buildPythonApplication rec { makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\"" ]; passthru = { - externalPlugins = plugins; + # FIXME: remove in favor of pkgs.beetsExternalPlugins + externalPlugins = beetsExternalPlugins; + updateScript = unstableGitUpdater { url = "https://github.com/beetbox/beets"; }; }; - meta = { + meta = with lib; { description = "Music tagger and library organizer"; homepage = "http://beets.io"; license = licenses.mit; - maintainers = with maintainers; [ aszlig domenkozar pjones ]; + maintainers = with maintainers; [ aszlig doronbehar lovesegfault pjones ]; platforms = platforms.linux; }; } diff --git a/pkgs/tools/audio/beets/keyfinder-default-bin.patch b/pkgs/tools/audio/beets/keyfinder-default-bin.patch index 1ea195a678e..ec6bc3a5561 100644 --- a/pkgs/tools/audio/beets/keyfinder-default-bin.patch +++ b/pkgs/tools/audio/beets/keyfinder-default-bin.patch @@ -1,8 +1,8 @@ diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py -index 34a4abc..59e8539 100644 +index 702003f0..08689cd8 100644 --- a/beetsplug/keyfinder.py +++ b/beetsplug/keyfinder.py -@@ -30,7 +30,7 @@ class KeyFinderPlugin(BeetsPlugin): +@@ -31,7 +31,7 @@ class KeyFinderPlugin(BeetsPlugin): def __init__(self): super(KeyFinderPlugin, self).__init__() self.config.add({ @@ -11,18 +11,8 @@ index 34a4abc..59e8539 100644 u'auto': True, u'overwrite': False, }) -@@ -59,8 +59,7 @@ class KeyFinderPlugin(BeetsPlugin): - continue - - try: -- output = util.command_output([bin, '-f', -- util.syspath(item.path)]) -+ output = util.command_output([bin, util.syspath(item.path)]) - except (subprocess.CalledProcessError, OSError) as exc: - self._log.error(u'execution failed: {0}', exc) - continue diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py -index 57e2bcd..c1ee916 100644 +index c8735e47..d7d670a4 100644 --- a/test/test_keyfinder.py +++ b/test/test_keyfinder.py @@ -44,7 +44,7 @@ class KeyFinderTest(unittest.TestCase, TestHelper): @@ -31,6 +21,6 @@ index 57e2bcd..c1ee916 100644 command_output.assert_called_with( - ['KeyFinder', '-f', util.syspath(item.path)]) + ['keyfinder-cli', util.syspath(item.path)]) - + def test_add_key_on_import(self, command_output): - command_output.return_value = 'dbm' + command_output.return_value = util.CommandOutput(b"dbm", b"") diff --git a/pkgs/tools/audio/beets/mutagen-1.43.patch b/pkgs/tools/audio/beets/mutagen-1.43.patch deleted file mode 100644 index 84cf1bab03e..00000000000 --- a/pkgs/tools/audio/beets/mutagen-1.43.patch +++ /dev/null @@ -1,29 +0,0 @@ -Backport https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868 -to Beets 1.4.9. - -diff --git i/setup.py w/setup.py -index 79278f8..b8d6068 100755 ---- i/setup.py -+++ w/setup.py -@@ -87,7 +87,7 @@ setup( - - install_requires=[ - 'six>=1.9', -- 'mutagen>=1.33', -+ 'mutagen>=1.43', - 'unidecode', - 'musicbrainzngs>=0.4', - 'pyyaml', -diff --git i/test/test_mediafile.py w/test/test_mediafile.py -index 36a2c53..54ef9dd 100644 ---- i/test/test_mediafile.py -+++ w/test/test_mediafile.py -@@ -912,7 +912,7 @@ class AIFFTest(ReadWriteTestBase, unittest.TestCase): - 'bitrate': 705600, - 'format': u'AIFF', - 'samplerate': 44100, -- 'bitdepth': 0, -+ 'bitdepth': 16, - 'channels': 1, - } - diff --git a/pkgs/tools/audio/beets/plugins/alternatives.nix b/pkgs/tools/audio/beets/plugins/alternatives.nix new file mode 100644 index 00000000000..146e9f50664 --- /dev/null +++ b/pkgs/tools/audio/beets/plugins/alternatives.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, beets, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + pname = "beets-alternatives"; + version = "unstable-2021-02-01"; + + src = fetchFromGitHub { + repo = "beets-alternatives"; + owner = "geigerzaehler"; + rev = "288299e3aa9a1602717b04c28696fce5ce4259bf"; + sha256 = "sha256-Xl7AHr33hXQqQDuFbWuj8HrIugeipJFPmvNXpCkU/mI="; + }; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "addopts = --cov --cov-report=term --cov-report=html" "" + ''; + + nativeBuildInputs = [ beets ]; + + checkInputs = with pythonPackages; [ + pytestCheckHook + mock + ]; + + meta = with lib; { + description = "Beets plugin to manage external files"; + homepage = "https://github.com/geigerzaehler/beets-alternatives"; + maintainers = with maintainers; [ aszlig lovesegfault ]; + license = licenses.mit; + }; +} diff --git a/pkgs/tools/audio/beets/copyartifacts-plugin.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix index 9432cb9bd0b..2f1ecdfc369 100644 --- a/pkgs/tools/audio/beets/copyartifacts-plugin.nix +++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix @@ -1,13 +1,14 @@ -{ stdenv, fetchFromGitHub, beets, pythonPackages, glibcLocales }: +{ lib, fetchFromGitHub, beets, pythonPackages, glibcLocales }: pythonPackages.buildPythonApplication { - name = "beets-copyartifacts"; + pname = "beets-copyartifacts"; + version = "unstable-2020-02-15"; src = fetchFromGitHub { repo = "beets-copyartifacts"; - owner = "sbarakat"; - rev = "d0bb75c8fc8fe125e8191d73de7ade6212aec0fd"; - sha256 = "19b4lqq1p45n348ssmql60jylw2fw7vfj9j22nly5qj5qx51j3g5"; + owner = "adammillerio"; + rev = "85eefaebf893cb673fa98bfde48406ec99fd1e4b"; + sha256 = "sha256-bkT2BZZ2gdcacgvyrVe2vMrOMV8iMAm8Q5xyrZzyqU0="; }; postPatch = '' @@ -28,6 +29,6 @@ pythonPackages.buildPythonApplication { meta = { description = "Beets plugin to move non-music files during the import process"; homepage = "https://github.com/sbarakat/beets-copyartifacts"; - license = stdenv.lib.licenses.mit; + license = lib.licenses.mit; }; } diff --git a/pkgs/tools/audio/beets/plugins/extrafiles.nix b/pkgs/tools/audio/beets/plugins/extrafiles.nix new file mode 100644 index 00000000000..9118765cc1b --- /dev/null +++ b/pkgs/tools/audio/beets/plugins/extrafiles.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, beets, pythonPackages }: + +pythonPackages.buildPythonApplication rec { + pname = "beets-extrafiles"; + version = "unstable-2020-12-13"; + + src = fetchFromGitHub { + repo = "beets-extrafiles"; + owner = "Holzhaus"; + rev = "a1d6ef9a9682b6bf7af9483541e56a3ff12247b8"; + sha256 = "sha256-ajuEbieWjTCNjdRZuGUwvStZwjx260jmY0m+ZqNd7ec="; + }; + + postPatch = '' + sed -i -e '/install_requires/,/\]/{/beets/d}' setup.py + sed -i -e '/namespace_packages/d' setup.py + ''; + + nativeBuildInputs = [ beets ]; + + propagatedBuildInputs = with pythonPackages; [ mediafile ]; + + preCheck = '' + HOME=$TEMPDIR + ''; + + meta = { + homepage = "https://github.com/Holzhaus/beets-extrafiles"; + description = "A plugin for beets that copies additional files and directories during the import process"; + license = lib.licenses.mit; + }; +} diff --git a/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch b/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch deleted file mode 100644 index 538f9e93303..00000000000 --- a/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/beetsplug/replaygain.py b/beetsplug/replaygain.py -index 40b3a3a..9b54a5a 100644 ---- a/beetsplug/replaygain.py -+++ b/beetsplug/replaygain.py -@@ -627,11 +627,10 @@ class ReplayGainPlugin(BeetsPlugin): - super(ReplayGainPlugin, self).__init__() - self.import_stages = [self.imported] - -- # default backend is 'command' for backward-compatibility. - self.config.add({ - 'overwrite': False, - 'auto': True, -- 'backend': u'command', -+ 'backend': u'bs1770gain', - 'targetlevel': 89, - }) - diff --git a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch new file mode 100644 index 00000000000..0ceba3c0944 --- /dev/null +++ b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch @@ -0,0 +1,26 @@ +diff --git i/beetsplug/replaygain.py w/beetsplug/replaygain.py +index 9d6fa23c..c5800039 100644 +--- i/beetsplug/replaygain.py ++++ w/beetsplug/replaygain.py +@@ -391,7 +391,7 @@ class FfmpegBackend(Backend): + + def __init__(self, config, log): + super(FfmpegBackend, self).__init__(config, log) +- self._ffmpeg_path = "ffmpeg" ++ self._ffmpeg_path = "@ffmpeg@/bin/ffmpeg" + + # check that ffmpeg is installed + try: +@@ -1228,11 +1228,10 @@ class ReplayGainPlugin(BeetsPlugin): + def __init__(self): + super(ReplayGainPlugin, self).__init__() + +- # default backend is 'command' for backward-compatibility. + self.config.add({ + 'overwrite': False, + 'auto': True, +- 'backend': u'command', ++ 'backend': u'ffmpeg', + 'threads': cpu_count(), + 'parallel_on_import': False, + 'per_disc': False, diff --git a/pkgs/tools/audio/botamusique/default.nix b/pkgs/tools/audio/botamusique/default.nix new file mode 100644 index 00000000000..36bd1343338 --- /dev/null +++ b/pkgs/tools/audio/botamusique/default.nix @@ -0,0 +1,155 @@ +{ pkgs +, lib +, stdenv +, fetchFromGitHub +, python3Packages +, ffmpeg +, makeWrapper +, nixosTests + +# For the update script +, coreutils +, nix-prefetch-git +, jq +, nodePackages +}: +let + nodejs = pkgs.nodejs-12_x; + 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; + }; + botamusiqueNodePackages = import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; + }; + + srcJson = lib.importJSON ./src.json; + src = fetchFromGitHub { + owner = "azlux"; + repo = "botamusique"; + inherit (srcJson) rev sha256; + }; + + nodeDependencies = (botamusiqueNodePackages.shell.override (old: { + src = src + "/web"; + })).nodeDependencies; + + # Python needed to instantiate the html templates + buildPython = python3Packages.python.withPackages (ps: [ ps.jinja2 ]); +in +stdenv.mkDerivation rec { + pname = "botamusique"; + version = "unstable-${lib.substring 0 10 srcJson.date}"; + + inherit src; + + patches = [ + # botamusique by default resolves relative state paths by first checking + # whether it exists in the working directory, then falls back to using the + # installation directory. With Nix however, the installation directory is + # not writable, so that won't work. So we change this so that it uses + # relative paths unconditionally, whether they exist or not. + ./unconditional-relative-state-paths.patch + + # We can't update the package at runtime with NixOS, so this patch makes + # the !update command mention that + ./no-runtime-update.patch + ]; + + postPatch = '' + # However, the function that's patched above is also used for + # configuration.default.ini, which is in the installation directory + # after all. So we need to counter-patch it here so it can find it absolutely + substituteInPlace mumbleBot.py \ + --replace "configuration.default.ini" "$out/share/botamusique/configuration.default.ini" + ''; + + nativeBuildInputs = [ + python3Packages.wrapPython + nodejs + makeWrapper + ]; + + pythonPath = with python3Packages; [ + pymumble + packaging + magic + requests + youtube-dl + flask + mutagen + pillow + pyradios + ]; + + buildPhase = '' + runHook preBuild + + # Generates artifacts in ./static + ( + cd web + ln -s ${nodeDependencies}/lib/node_modules ./node_modules + export PATH="${nodeDependencies}/bin:$PATH" + + npm run build + ) + + # Fills out http templates + ${buildPython}/bin/python scripts/translate_templates.py --lang-dir lang/ --template-dir templates/ + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share $out/bin + cp -r . $out/share/botamusique + chmod +x $out/share/botamusique/mumbleBot.py + wrapPythonProgramsIn $out/share/botamusique "$out $pythonPath" + + # Convenience binary and wrap with ffmpeg dependency + makeWrapper $out/share/botamusique/mumbleBot.py $out/bin/botamusique \ + --prefix PATH : ${lib.makeBinPath [ ffmpeg ]} + + runHook postInstall + ''; + + passthru.updateScript = pkgs.writeShellScript "botamusique-updater" '' + export PATH=${lib.makeBinPath [ coreutils nix-prefetch-git jq nodePackages.node2nix ]} + + nix-prefetch-git https://github.com/azlux/botamusique > ${toString ./src.json} + path=$(jq '.path' -r < ${toString ./src.json}) + + tmp=$(mktemp -d) + trap 'rm -rf "$tmp"' exit + + # botamusique doesn't have a version in its package.json + # But that's needed for node2nix + jq < "$path"/web/package.json > "$tmp/package.json" \ + --arg version "0.0.0" \ + '.version |= $version' + + node2nix \ + --input "$tmp"/package.json \ + --lock "$path"/web/package-lock.json \ + --no-copy-node-env \ + --development \ + --composition /dev/null \ + --output ${toString ./node-packages.nix} + ''; + + passthru.tests = { + inherit (nixosTests) botamusique; + }; + + meta = with lib; { + description = "Bot to play youtube / soundcloud / radio / local music on Mumble"; + homepage = "https://github.com/azlux/botamusique"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ infinisil ]; + }; +} diff --git a/pkgs/tools/audio/botamusique/no-runtime-update.patch b/pkgs/tools/audio/botamusique/no-runtime-update.patch new file mode 100644 index 00000000000..8fc8580fce8 --- /dev/null +++ b/pkgs/tools/audio/botamusique/no-runtime-update.patch @@ -0,0 +1,12 @@ +diff --git a/util.py b/util.py +index bfec1ed..5147757 100644 +--- a/util.py ++++ b/util.py +@@ -132,6 +132,7 @@ def check_update(current_version): + + + def update(current_version): ++ return "Can't update Nix installation at runtime" + global log + + target = var.config.get('bot', 'target_version') diff --git a/pkgs/tools/audio/botamusique/node-packages.nix b/pkgs/tools/audio/botamusique/node-packages.nix new file mode 100644 index 00000000000..c9bdb6f0097 --- /dev/null +++ b/pkgs/tools/audio/botamusique/node-packages.nix @@ -0,0 +1,5237 @@ +# 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.10.4" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz"; + sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="; + }; + }; + "@babel/compat-data-7.12.7" = { + name = "_at_babel_slash_compat-data"; + packageName = "@babel/compat-data"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz"; + sha512 = "YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw=="; + }; + }; + "@babel/core-7.12.9" = { + name = "_at_babel_slash_core"; + packageName = "@babel/core"; + version = "7.12.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz"; + sha512 = "gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ=="; + }; + }; + "@babel/eslint-parser-7.12.1" = { + name = "_at_babel_slash_eslint-parser"; + packageName = "@babel/eslint-parser"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.12.1.tgz"; + sha512 = "cc7WQHnHQY3++/bghgbDtPx+5bf6xTsokyGzV6Qzh65NLz/unv+mPQuACkQ9GFhIhcTFv6yqwNaEcfX7EkOEsg=="; + }; + }; + "@babel/eslint-plugin-7.12.1" = { + name = "_at_babel_slash_eslint-plugin"; + packageName = "@babel/eslint-plugin"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.12.1.tgz"; + sha512 = "rOjrD5yupTYCO4x0kEbQmi/NsaD+VGOD/9Cvso64WMVPY2y6o5Nvw2sqFWdeSEBdR1Dsa07YjplBs067x5YbXg=="; + }; + }; + "@babel/generator-7.12.5" = { + name = "_at_babel_slash_generator"; + packageName = "@babel/generator"; + version = "7.12.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz"; + sha512 = "m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A=="; + }; + }; + "@babel/helper-annotate-as-pure-7.10.4" = { + name = "_at_babel_slash_helper-annotate-as-pure"; + packageName = "@babel/helper-annotate-as-pure"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz"; + sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA=="; + }; + }; + "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = { + name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor"; + packageName = "@babel/helper-builder-binary-assignment-operator-visitor"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz"; + sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg=="; + }; + }; + "@babel/helper-compilation-targets-7.12.5" = { + name = "_at_babel_slash_helper-compilation-targets"; + packageName = "@babel/helper-compilation-targets"; + version = "7.12.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz"; + sha512 = "+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw=="; + }; + }; + "@babel/helper-create-class-features-plugin-7.12.1" = { + name = "_at_babel_slash_helper-create-class-features-plugin"; + packageName = "@babel/helper-create-class-features-plugin"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz"; + sha512 = "hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w=="; + }; + }; + "@babel/helper-create-regexp-features-plugin-7.12.7" = { + name = "_at_babel_slash_helper-create-regexp-features-plugin"; + packageName = "@babel/helper-create-regexp-features-plugin"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz"; + sha512 = "idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ=="; + }; + }; + "@babel/helper-define-map-7.10.5" = { + name = "_at_babel_slash_helper-define-map"; + packageName = "@babel/helper-define-map"; + version = "7.10.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz"; + sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ=="; + }; + }; + "@babel/helper-explode-assignable-expression-7.12.1" = { + name = "_at_babel_slash_helper-explode-assignable-expression"; + packageName = "@babel/helper-explode-assignable-expression"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz"; + sha512 = "dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA=="; + }; + }; + "@babel/helper-function-name-7.10.4" = { + name = "_at_babel_slash_helper-function-name"; + packageName = "@babel/helper-function-name"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz"; + sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ=="; + }; + }; + "@babel/helper-get-function-arity-7.10.4" = { + name = "_at_babel_slash_helper-get-function-arity"; + packageName = "@babel/helper-get-function-arity"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz"; + sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A=="; + }; + }; + "@babel/helper-hoist-variables-7.10.4" = { + name = "_at_babel_slash_helper-hoist-variables"; + packageName = "@babel/helper-hoist-variables"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz"; + sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA=="; + }; + }; + "@babel/helper-member-expression-to-functions-7.12.7" = { + name = "_at_babel_slash_helper-member-expression-to-functions"; + packageName = "@babel/helper-member-expression-to-functions"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz"; + sha512 = "DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw=="; + }; + }; + "@babel/helper-module-imports-7.12.5" = { + name = "_at_babel_slash_helper-module-imports"; + packageName = "@babel/helper-module-imports"; + version = "7.12.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz"; + sha512 = "SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA=="; + }; + }; + "@babel/helper-module-transforms-7.12.1" = { + name = "_at_babel_slash_helper-module-transforms"; + packageName = "@babel/helper-module-transforms"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz"; + sha512 = "QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w=="; + }; + }; + "@babel/helper-optimise-call-expression-7.12.7" = { + name = "_at_babel_slash_helper-optimise-call-expression"; + packageName = "@babel/helper-optimise-call-expression"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz"; + sha512 = "I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw=="; + }; + }; + "@babel/helper-plugin-utils-7.10.4" = { + name = "_at_babel_slash_helper-plugin-utils"; + packageName = "@babel/helper-plugin-utils"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz"; + sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="; + }; + }; + "@babel/helper-remap-async-to-generator-7.12.1" = { + name = "_at_babel_slash_helper-remap-async-to-generator"; + packageName = "@babel/helper-remap-async-to-generator"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz"; + sha512 = "9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A=="; + }; + }; + "@babel/helper-replace-supers-7.12.5" = { + name = "_at_babel_slash_helper-replace-supers"; + packageName = "@babel/helper-replace-supers"; + version = "7.12.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz"; + sha512 = "5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA=="; + }; + }; + "@babel/helper-simple-access-7.12.1" = { + name = "_at_babel_slash_helper-simple-access"; + packageName = "@babel/helper-simple-access"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz"; + sha512 = "OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA=="; + }; + }; + "@babel/helper-skip-transparent-expression-wrappers-7.12.1" = { + name = "_at_babel_slash_helper-skip-transparent-expression-wrappers"; + packageName = "@babel/helper-skip-transparent-expression-wrappers"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz"; + sha512 = "Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA=="; + }; + }; + "@babel/helper-split-export-declaration-7.11.0" = { + name = "_at_babel_slash_helper-split-export-declaration"; + packageName = "@babel/helper-split-export-declaration"; + version = "7.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz"; + sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg=="; + }; + }; + "@babel/helper-validator-identifier-7.10.4" = { + name = "_at_babel_slash_helper-validator-identifier"; + packageName = "@babel/helper-validator-identifier"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz"; + sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="; + }; + }; + "@babel/helper-validator-option-7.12.1" = { + name = "_at_babel_slash_helper-validator-option"; + packageName = "@babel/helper-validator-option"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz"; + sha512 = "YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A=="; + }; + }; + "@babel/helper-wrap-function-7.12.3" = { + name = "_at_babel_slash_helper-wrap-function"; + packageName = "@babel/helper-wrap-function"; + version = "7.12.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz"; + sha512 = "Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow=="; + }; + }; + "@babel/helpers-7.12.5" = { + name = "_at_babel_slash_helpers"; + packageName = "@babel/helpers"; + version = "7.12.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz"; + sha512 = "lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA=="; + }; + }; + "@babel/highlight-7.10.4" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz"; + sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA=="; + }; + }; + "@babel/parser-7.12.7" = { + name = "_at_babel_slash_parser"; + packageName = "@babel/parser"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz"; + sha512 = "oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg=="; + }; + }; + "@babel/plugin-proposal-async-generator-functions-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-async-generator-functions"; + packageName = "@babel/plugin-proposal-async-generator-functions"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz"; + sha512 = "d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A=="; + }; + }; + "@babel/plugin-proposal-class-properties-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-class-properties"; + packageName = "@babel/plugin-proposal-class-properties"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz"; + sha512 = "cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w=="; + }; + }; + "@babel/plugin-proposal-dynamic-import-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-dynamic-import"; + packageName = "@babel/plugin-proposal-dynamic-import"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz"; + sha512 = "a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ=="; + }; + }; + "@babel/plugin-proposal-export-namespace-from-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-export-namespace-from"; + packageName = "@babel/plugin-proposal-export-namespace-from"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz"; + sha512 = "6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw=="; + }; + }; + "@babel/plugin-proposal-json-strings-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-json-strings"; + packageName = "@babel/plugin-proposal-json-strings"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz"; + sha512 = "GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw=="; + }; + }; + "@babel/plugin-proposal-logical-assignment-operators-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-logical-assignment-operators"; + packageName = "@babel/plugin-proposal-logical-assignment-operators"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz"; + sha512 = "k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA=="; + }; + }; + "@babel/plugin-proposal-nullish-coalescing-operator-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator"; + packageName = "@babel/plugin-proposal-nullish-coalescing-operator"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz"; + sha512 = "nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg=="; + }; + }; + "@babel/plugin-proposal-numeric-separator-7.12.7" = { + name = "_at_babel_slash_plugin-proposal-numeric-separator"; + packageName = "@babel/plugin-proposal-numeric-separator"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz"; + sha512 = "8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ=="; + }; + }; + "@babel/plugin-proposal-object-rest-spread-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-object-rest-spread"; + packageName = "@babel/plugin-proposal-object-rest-spread"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz"; + sha512 = "s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA=="; + }; + }; + "@babel/plugin-proposal-optional-catch-binding-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-optional-catch-binding"; + packageName = "@babel/plugin-proposal-optional-catch-binding"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz"; + sha512 = "hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g=="; + }; + }; + "@babel/plugin-proposal-optional-chaining-7.12.7" = { + name = "_at_babel_slash_plugin-proposal-optional-chaining"; + packageName = "@babel/plugin-proposal-optional-chaining"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz"; + sha512 = "4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA=="; + }; + }; + "@babel/plugin-proposal-private-methods-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-private-methods"; + packageName = "@babel/plugin-proposal-private-methods"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz"; + sha512 = "mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w=="; + }; + }; + "@babel/plugin-proposal-unicode-property-regex-7.12.1" = { + name = "_at_babel_slash_plugin-proposal-unicode-property-regex"; + packageName = "@babel/plugin-proposal-unicode-property-regex"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz"; + sha512 = "MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w=="; + }; + }; + "@babel/plugin-syntax-async-generators-7.8.4" = { + name = "_at_babel_slash_plugin-syntax-async-generators"; + packageName = "@babel/plugin-syntax-async-generators"; + version = "7.8.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz"; + sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="; + }; + }; + "@babel/plugin-syntax-class-properties-7.12.1" = { + name = "_at_babel_slash_plugin-syntax-class-properties"; + packageName = "@babel/plugin-syntax-class-properties"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz"; + sha512 = "U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA=="; + }; + }; + "@babel/plugin-syntax-dynamic-import-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-dynamic-import"; + packageName = "@babel/plugin-syntax-dynamic-import"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz"; + sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ=="; + }; + }; + "@babel/plugin-syntax-export-namespace-from-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-export-namespace-from"; + packageName = "@babel/plugin-syntax-export-namespace-from"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz"; + sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q=="; + }; + }; + "@babel/plugin-syntax-json-strings-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-json-strings"; + packageName = "@babel/plugin-syntax-json-strings"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz"; + sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="; + }; + }; + "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = { + name = "_at_babel_slash_plugin-syntax-logical-assignment-operators"; + packageName = "@babel/plugin-syntax-logical-assignment-operators"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz"; + sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="; + }; + }; + "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator"; + packageName = "@babel/plugin-syntax-nullish-coalescing-operator"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz"; + sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="; + }; + }; + "@babel/plugin-syntax-numeric-separator-7.10.4" = { + name = "_at_babel_slash_plugin-syntax-numeric-separator"; + packageName = "@babel/plugin-syntax-numeric-separator"; + version = "7.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz"; + sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="; + }; + }; + "@babel/plugin-syntax-object-rest-spread-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-object-rest-spread"; + packageName = "@babel/plugin-syntax-object-rest-spread"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz"; + sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="; + }; + }; + "@babel/plugin-syntax-optional-catch-binding-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-optional-catch-binding"; + packageName = "@babel/plugin-syntax-optional-catch-binding"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz"; + sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="; + }; + }; + "@babel/plugin-syntax-optional-chaining-7.8.3" = { + name = "_at_babel_slash_plugin-syntax-optional-chaining"; + packageName = "@babel/plugin-syntax-optional-chaining"; + version = "7.8.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz"; + sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="; + }; + }; + "@babel/plugin-syntax-top-level-await-7.12.1" = { + name = "_at_babel_slash_plugin-syntax-top-level-await"; + packageName = "@babel/plugin-syntax-top-level-await"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz"; + sha512 = "i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A=="; + }; + }; + "@babel/plugin-transform-arrow-functions-7.12.1" = { + name = "_at_babel_slash_plugin-transform-arrow-functions"; + packageName = "@babel/plugin-transform-arrow-functions"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz"; + sha512 = "5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A=="; + }; + }; + "@babel/plugin-transform-async-to-generator-7.12.1" = { + name = "_at_babel_slash_plugin-transform-async-to-generator"; + packageName = "@babel/plugin-transform-async-to-generator"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz"; + sha512 = "SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A=="; + }; + }; + "@babel/plugin-transform-block-scoped-functions-7.12.1" = { + name = "_at_babel_slash_plugin-transform-block-scoped-functions"; + packageName = "@babel/plugin-transform-block-scoped-functions"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz"; + sha512 = "5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA=="; + }; + }; + "@babel/plugin-transform-block-scoping-7.12.1" = { + name = "_at_babel_slash_plugin-transform-block-scoping"; + packageName = "@babel/plugin-transform-block-scoping"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz"; + sha512 = "zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w=="; + }; + }; + "@babel/plugin-transform-classes-7.12.1" = { + name = "_at_babel_slash_plugin-transform-classes"; + packageName = "@babel/plugin-transform-classes"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz"; + sha512 = "/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog=="; + }; + }; + "@babel/plugin-transform-computed-properties-7.12.1" = { + name = "_at_babel_slash_plugin-transform-computed-properties"; + packageName = "@babel/plugin-transform-computed-properties"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz"; + sha512 = "vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg=="; + }; + }; + "@babel/plugin-transform-destructuring-7.12.1" = { + name = "_at_babel_slash_plugin-transform-destructuring"; + packageName = "@babel/plugin-transform-destructuring"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz"; + sha512 = "fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw=="; + }; + }; + "@babel/plugin-transform-dotall-regex-7.12.1" = { + name = "_at_babel_slash_plugin-transform-dotall-regex"; + packageName = "@babel/plugin-transform-dotall-regex"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz"; + sha512 = "B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA=="; + }; + }; + "@babel/plugin-transform-duplicate-keys-7.12.1" = { + name = "_at_babel_slash_plugin-transform-duplicate-keys"; + packageName = "@babel/plugin-transform-duplicate-keys"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz"; + sha512 = "iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw=="; + }; + }; + "@babel/plugin-transform-exponentiation-operator-7.12.1" = { + name = "_at_babel_slash_plugin-transform-exponentiation-operator"; + packageName = "@babel/plugin-transform-exponentiation-operator"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz"; + sha512 = "7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug=="; + }; + }; + "@babel/plugin-transform-for-of-7.12.1" = { + name = "_at_babel_slash_plugin-transform-for-of"; + packageName = "@babel/plugin-transform-for-of"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz"; + sha512 = "Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg=="; + }; + }; + "@babel/plugin-transform-function-name-7.12.1" = { + name = "_at_babel_slash_plugin-transform-function-name"; + packageName = "@babel/plugin-transform-function-name"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz"; + sha512 = "JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw=="; + }; + }; + "@babel/plugin-transform-literals-7.12.1" = { + name = "_at_babel_slash_plugin-transform-literals"; + packageName = "@babel/plugin-transform-literals"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz"; + sha512 = "+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ=="; + }; + }; + "@babel/plugin-transform-member-expression-literals-7.12.1" = { + name = "_at_babel_slash_plugin-transform-member-expression-literals"; + packageName = "@babel/plugin-transform-member-expression-literals"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz"; + sha512 = "1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg=="; + }; + }; + "@babel/plugin-transform-modules-amd-7.12.1" = { + name = "_at_babel_slash_plugin-transform-modules-amd"; + packageName = "@babel/plugin-transform-modules-amd"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz"; + sha512 = "tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ=="; + }; + }; + "@babel/plugin-transform-modules-commonjs-7.12.1" = { + name = "_at_babel_slash_plugin-transform-modules-commonjs"; + packageName = "@babel/plugin-transform-modules-commonjs"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz"; + sha512 = "dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag=="; + }; + }; + "@babel/plugin-transform-modules-systemjs-7.12.1" = { + name = "_at_babel_slash_plugin-transform-modules-systemjs"; + packageName = "@babel/plugin-transform-modules-systemjs"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz"; + sha512 = "Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q=="; + }; + }; + "@babel/plugin-transform-modules-umd-7.12.1" = { + name = "_at_babel_slash_plugin-transform-modules-umd"; + packageName = "@babel/plugin-transform-modules-umd"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz"; + sha512 = "aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q=="; + }; + }; + "@babel/plugin-transform-named-capturing-groups-regex-7.12.1" = { + name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex"; + packageName = "@babel/plugin-transform-named-capturing-groups-regex"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz"; + sha512 = "tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q=="; + }; + }; + "@babel/plugin-transform-new-target-7.12.1" = { + name = "_at_babel_slash_plugin-transform-new-target"; + packageName = "@babel/plugin-transform-new-target"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz"; + sha512 = "+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw=="; + }; + }; + "@babel/plugin-transform-object-super-7.12.1" = { + name = "_at_babel_slash_plugin-transform-object-super"; + packageName = "@babel/plugin-transform-object-super"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz"; + sha512 = "AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw=="; + }; + }; + "@babel/plugin-transform-parameters-7.12.1" = { + name = "_at_babel_slash_plugin-transform-parameters"; + packageName = "@babel/plugin-transform-parameters"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz"; + sha512 = "xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg=="; + }; + }; + "@babel/plugin-transform-property-literals-7.12.1" = { + name = "_at_babel_slash_plugin-transform-property-literals"; + packageName = "@babel/plugin-transform-property-literals"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz"; + sha512 = "6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ=="; + }; + }; + "@babel/plugin-transform-regenerator-7.12.1" = { + name = "_at_babel_slash_plugin-transform-regenerator"; + packageName = "@babel/plugin-transform-regenerator"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz"; + sha512 = "gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng=="; + }; + }; + "@babel/plugin-transform-reserved-words-7.12.1" = { + name = "_at_babel_slash_plugin-transform-reserved-words"; + packageName = "@babel/plugin-transform-reserved-words"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz"; + sha512 = "pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A=="; + }; + }; + "@babel/plugin-transform-shorthand-properties-7.12.1" = { + name = "_at_babel_slash_plugin-transform-shorthand-properties"; + packageName = "@babel/plugin-transform-shorthand-properties"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz"; + sha512 = "GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw=="; + }; + }; + "@babel/plugin-transform-spread-7.12.1" = { + name = "_at_babel_slash_plugin-transform-spread"; + packageName = "@babel/plugin-transform-spread"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz"; + sha512 = "vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng=="; + }; + }; + "@babel/plugin-transform-sticky-regex-7.12.7" = { + name = "_at_babel_slash_plugin-transform-sticky-regex"; + packageName = "@babel/plugin-transform-sticky-regex"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz"; + sha512 = "VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg=="; + }; + }; + "@babel/plugin-transform-template-literals-7.12.1" = { + name = "_at_babel_slash_plugin-transform-template-literals"; + packageName = "@babel/plugin-transform-template-literals"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz"; + sha512 = "b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw=="; + }; + }; + "@babel/plugin-transform-typeof-symbol-7.12.1" = { + name = "_at_babel_slash_plugin-transform-typeof-symbol"; + packageName = "@babel/plugin-transform-typeof-symbol"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz"; + sha512 = "EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q=="; + }; + }; + "@babel/plugin-transform-unicode-escapes-7.12.1" = { + name = "_at_babel_slash_plugin-transform-unicode-escapes"; + packageName = "@babel/plugin-transform-unicode-escapes"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz"; + sha512 = "I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q=="; + }; + }; + "@babel/plugin-transform-unicode-regex-7.12.1" = { + name = "_at_babel_slash_plugin-transform-unicode-regex"; + packageName = "@babel/plugin-transform-unicode-regex"; + version = "7.12.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz"; + sha512 = "SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg=="; + }; + }; + "@babel/preset-env-7.12.7" = { + name = "_at_babel_slash_preset-env"; + packageName = "@babel/preset-env"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz"; + sha512 = "OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew=="; + }; + }; + "@babel/preset-modules-0.1.4" = { + name = "_at_babel_slash_preset-modules"; + packageName = "@babel/preset-modules"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz"; + sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg=="; + }; + }; + "@babel/runtime-7.12.5" = { + name = "_at_babel_slash_runtime"; + packageName = "@babel/runtime"; + version = "7.12.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz"; + sha512 = "plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg=="; + }; + }; + "@babel/template-7.12.7" = { + name = "_at_babel_slash_template"; + packageName = "@babel/template"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz"; + sha512 = "GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow=="; + }; + }; + "@babel/traverse-7.12.9" = { + name = "_at_babel_slash_traverse"; + packageName = "@babel/traverse"; + version = "7.12.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz"; + sha512 = "iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw=="; + }; + }; + "@babel/types-7.12.7" = { + name = "_at_babel_slash_types"; + packageName = "@babel/types"; + version = "7.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz"; + sha512 = "MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ=="; + }; + }; + "@eslint/eslintrc-0.2.1" = { + name = "_at_eslint_slash_eslintrc"; + packageName = "@eslint/eslintrc"; + version = "0.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz"; + sha512 = "XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA=="; + }; + }; + "@fortawesome/fontawesome-common-types-0.2.32" = { + name = "_at_fortawesome_slash_fontawesome-common-types"; + packageName = "@fortawesome/fontawesome-common-types"; + version = "0.2.32"; + src = fetchurl { + url = "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz"; + sha512 = "ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w=="; + }; + }; + "@fortawesome/fontawesome-svg-core-1.2.32" = { + name = "_at_fortawesome_slash_fontawesome-svg-core"; + packageName = "@fortawesome/fontawesome-svg-core"; + version = "1.2.32"; + src = fetchurl { + url = "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz"; + sha512 = "XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ=="; + }; + }; + "@fortawesome/free-regular-svg-icons-5.15.1" = { + name = "_at_fortawesome_slash_free-regular-svg-icons"; + packageName = "@fortawesome/free-regular-svg-icons"; + version = "5.15.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.1.tgz"; + sha512 = "eD9NWFy89e7SVVtrLedJUxIpCBGhd4x7s7dhesokjyo1Tw62daqN5UcuAGu1NrepLLq1IeAYUVfWwnOjZ/j3HA=="; + }; + }; + "@fortawesome/free-solid-svg-icons-5.15.1" = { + name = "_at_fortawesome_slash_free-solid-svg-icons"; + packageName = "@fortawesome/free-solid-svg-icons"; + version = "5.15.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz"; + sha512 = "EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg=="; + }; + }; + "@types/anymatch-1.3.1" = { + name = "_at_types_slash_anymatch"; + packageName = "@types/anymatch"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz"; + sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA=="; + }; + }; + "@types/eslint-7.2.5" = { + name = "_at_types_slash_eslint"; + packageName = "@types/eslint"; + version = "7.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.5.tgz"; + sha512 = "Dc6ar9x16BdaR3NSxSF7T4IjL9gxxViJq8RmFd+2UAyA+K6ck2W+gUwfgpG/y9TPyUuBL35109bbULpEynvltA=="; + }; + }; + "@types/eslint-scope-3.7.0" = { + name = "_at_types_slash_eslint-scope"; + packageName = "@types/eslint-scope"; + version = "3.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz"; + sha512 = "O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw=="; + }; + }; + "@types/estree-0.0.45" = { + name = "_at_types_slash_estree"; + packageName = "@types/estree"; + version = "0.0.45"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz"; + sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g=="; + }; + }; + "@types/html-minifier-terser-5.1.1" = { + name = "_at_types_slash_html-minifier-terser"; + packageName = "@types/html-minifier-terser"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz"; + sha512 = "giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA=="; + }; + }; + "@types/json-schema-7.0.6" = { + name = "_at_types_slash_json-schema"; + packageName = "@types/json-schema"; + version = "7.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz"; + sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw=="; + }; + }; + "@types/json5-0.0.29" = { + name = "_at_types_slash_json5"; + packageName = "@types/json5"; + version = "0.0.29"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"; + sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"; + }; + }; + "@types/node-14.14.9" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "14.14.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz"; + sha512 = "JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw=="; + }; + }; + "@types/parse-json-4.0.0" = { + name = "_at_types_slash_parse-json"; + packageName = "@types/parse-json"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"; + sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="; + }; + }; + "@types/source-list-map-0.1.2" = { + name = "_at_types_slash_source-list-map"; + packageName = "@types/source-list-map"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz"; + sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA=="; + }; + }; + "@types/tapable-1.0.6" = { + name = "_at_types_slash_tapable"; + packageName = "@types/tapable"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz"; + sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA=="; + }; + }; + "@types/uglify-js-3.11.1" = { + name = "_at_types_slash_uglify-js"; + packageName = "@types/uglify-js"; + version = "3.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz"; + sha512 = "7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q=="; + }; + }; + "@types/webpack-4.41.25" = { + name = "_at_types_slash_webpack"; + packageName = "@types/webpack"; + version = "4.41.25"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz"; + sha512 = "cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ=="; + }; + }; + "@types/webpack-sources-2.0.0" = { + name = "_at_types_slash_webpack-sources"; + packageName = "@types/webpack-sources"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz"; + sha512 = "a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg=="; + }; + }; + "@webassemblyjs/ast-1.9.0" = { + name = "_at_webassemblyjs_slash_ast"; + packageName = "@webassemblyjs/ast"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz"; + sha512 = "C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA=="; + }; + }; + "@webassemblyjs/floating-point-hex-parser-1.9.0" = { + name = "_at_webassemblyjs_slash_floating-point-hex-parser"; + packageName = "@webassemblyjs/floating-point-hex-parser"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz"; + sha512 = "TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA=="; + }; + }; + "@webassemblyjs/helper-api-error-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-api-error"; + packageName = "@webassemblyjs/helper-api-error"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz"; + sha512 = "NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw=="; + }; + }; + "@webassemblyjs/helper-buffer-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-buffer"; + packageName = "@webassemblyjs/helper-buffer"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz"; + sha512 = "qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA=="; + }; + }; + "@webassemblyjs/helper-code-frame-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-code-frame"; + packageName = "@webassemblyjs/helper-code-frame"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz"; + sha512 = "ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA=="; + }; + }; + "@webassemblyjs/helper-fsm-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-fsm"; + packageName = "@webassemblyjs/helper-fsm"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz"; + sha512 = "OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw=="; + }; + }; + "@webassemblyjs/helper-module-context-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-module-context"; + packageName = "@webassemblyjs/helper-module-context"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz"; + sha512 = "MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g=="; + }; + }; + "@webassemblyjs/helper-wasm-bytecode-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-wasm-bytecode"; + packageName = "@webassemblyjs/helper-wasm-bytecode"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz"; + sha512 = "R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw=="; + }; + }; + "@webassemblyjs/helper-wasm-section-1.9.0" = { + name = "_at_webassemblyjs_slash_helper-wasm-section"; + packageName = "@webassemblyjs/helper-wasm-section"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz"; + sha512 = "XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw=="; + }; + }; + "@webassemblyjs/ieee754-1.9.0" = { + name = "_at_webassemblyjs_slash_ieee754"; + packageName = "@webassemblyjs/ieee754"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz"; + sha512 = "dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg=="; + }; + }; + "@webassemblyjs/leb128-1.9.0" = { + name = "_at_webassemblyjs_slash_leb128"; + packageName = "@webassemblyjs/leb128"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz"; + sha512 = "ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw=="; + }; + }; + "@webassemblyjs/utf8-1.9.0" = { + name = "_at_webassemblyjs_slash_utf8"; + packageName = "@webassemblyjs/utf8"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz"; + sha512 = "GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w=="; + }; + }; + "@webassemblyjs/wasm-edit-1.9.0" = { + name = "_at_webassemblyjs_slash_wasm-edit"; + packageName = "@webassemblyjs/wasm-edit"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz"; + sha512 = "FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw=="; + }; + }; + "@webassemblyjs/wasm-gen-1.9.0" = { + name = "_at_webassemblyjs_slash_wasm-gen"; + packageName = "@webassemblyjs/wasm-gen"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz"; + sha512 = "cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA=="; + }; + }; + "@webassemblyjs/wasm-opt-1.9.0" = { + name = "_at_webassemblyjs_slash_wasm-opt"; + packageName = "@webassemblyjs/wasm-opt"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz"; + sha512 = "Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A=="; + }; + }; + "@webassemblyjs/wasm-parser-1.9.0" = { + name = "_at_webassemblyjs_slash_wasm-parser"; + packageName = "@webassemblyjs/wasm-parser"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz"; + sha512 = "9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA=="; + }; + }; + "@webassemblyjs/wast-parser-1.9.0" = { + name = "_at_webassemblyjs_slash_wast-parser"; + packageName = "@webassemblyjs/wast-parser"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz"; + sha512 = "qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw=="; + }; + }; + "@webassemblyjs/wast-printer-1.9.0" = { + name = "_at_webassemblyjs_slash_wast-printer"; + packageName = "@webassemblyjs/wast-printer"; + version = "1.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz"; + sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA=="; + }; + }; + "@webpack-cli/info-1.1.0" = { + name = "_at_webpack-cli_slash_info"; + packageName = "@webpack-cli/info"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.1.0.tgz"; + sha512 = "uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ=="; + }; + }; + "@webpack-cli/serve-1.1.0" = { + name = "_at_webpack-cli_slash_serve"; + packageName = "@webpack-cli/serve"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.1.0.tgz"; + sha512 = "7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg=="; + }; + }; + "@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=="; + }; + }; + "acorn-7.4.1" = { + name = "acorn"; + packageName = "acorn"; + version = "7.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"; + sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="; + }; + }; + "acorn-8.0.4" = { + name = "acorn"; + packageName = "acorn"; + version = "8.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz"; + sha512 = "XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ=="; + }; + }; + "acorn-jsx-5.3.1" = { + name = "acorn-jsx"; + packageName = "acorn-jsx"; + version = "5.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz"; + sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng=="; + }; + }; + "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=="; + }; + }; + "ajv-keywords-3.5.2" = { + name = "ajv-keywords"; + packageName = "ajv-keywords"; + version = "3.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"; + sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="; + }; + }; + "ansi-colors-4.1.1" = { + name = "ansi-colors"; + packageName = "ansi-colors"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"; + sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="; + }; + }; + "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-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-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-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=="; + }; + }; + "anymatch-3.1.1" = { + name = "anymatch"; + packageName = "anymatch"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz"; + sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg=="; + }; + }; + "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-back-4.0.1" = { + name = "array-back"; + packageName = "array-back"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz"; + sha512 = "Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg=="; + }; + }; + "array-includes-3.1.2" = { + name = "array-includes"; + packageName = "array-includes"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz"; + sha512 = "w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw=="; + }; + }; + "array.prototype.flat-1.2.4" = { + name = "array.prototype.flat"; + packageName = "array.prototype.flat"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz"; + sha512 = "4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg=="; + }; + }; + "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=="; + }; + }; + "autoprefixer-10.0.2" = { + name = "autoprefixer"; + packageName = "autoprefixer"; + version = "10.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.0.2.tgz"; + sha512 = "okBmu9OMdt6DNEcZmnl0IYVv8Xl/xYWRSnc2OJ9UJEOt1u30opG1B8aLsViqKryBaYv1SKB4f85fOGZs5zYxHQ=="; + }; + }; + "babel-loader-8.2.1" = { + name = "babel-loader"; + packageName = "babel-loader"; + version = "8.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz"; + sha512 = "dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw=="; + }; + }; + "babel-plugin-dynamic-import-node-2.3.3" = { + name = "babel-plugin-dynamic-import-node"; + packageName = "babel-plugin-dynamic-import-node"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz"; + sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ=="; + }; + }; + "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"; + }; + }; + "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-2.1.0" = { + name = "binary-extensions"; + packageName = "binary-extensions"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz"; + sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ=="; + }; + }; + "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"; + }; + }; + "bootstrap-4.5.3" = { + name = "bootstrap"; + packageName = "bootstrap"; + version = "4.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz"; + sha512 = "o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ=="; + }; + }; + "bootswatch-4.5.3" = { + name = "bootswatch"; + packageName = "bootswatch"; + version = "4.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bootswatch/-/bootswatch-4.5.3.tgz"; + sha512 = "gaB3gBSAegmYbk97aVELKcSKVdPjWsSY4yCITkUt/SqbqjtMU/HtIUszb4O9vzdbrfuVXThc/qCXzjoJaAPgiQ=="; + }; + }; + "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=="; + }; + }; + "browserslist-4.14.7" = { + name = "browserslist"; + packageName = "browserslist"; + version = "4.14.7"; + src = fetchurl { + url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz"; + sha512 = "BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ=="; + }; + }; + "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=="; + }; + }; + "call-bind-1.0.0" = { + name = "call-bind"; + packageName = "call-bind"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz"; + sha512 = "AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w=="; + }; + }; + "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=="; + }; + }; + "camel-case-4.1.1" = { + name = "camel-case"; + packageName = "camel-case"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz"; + sha512 = "7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q=="; + }; + }; + "camelcase-6.2.0" = { + name = "camelcase"; + packageName = "camelcase"; + version = "6.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz"; + sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg=="; + }; + }; + "caniuse-lite-1.0.30001161" = { + name = "caniuse-lite"; + packageName = "caniuse-lite"; + version = "1.0.30001161"; + src = fetchurl { + url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz"; + sha512 = "JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g=="; + }; + }; + "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=="; + }; + }; + "chokidar-3.4.3" = { + name = "chokidar"; + packageName = "chokidar"; + version = "3.4.3"; + src = fetchurl { + url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz"; + sha512 = "DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ=="; + }; + }; + "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=="; + }; + }; + "clean-css-4.2.3" = { + name = "clean-css"; + packageName = "clean-css"; + version = "4.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz"; + sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA=="; + }; + }; + "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=="; + }; + }; + "colorette-1.2.2" = { + name = "colorette"; + packageName = "colorette"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz"; + sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="; + }; + }; + "command-line-usage-6.1.1" = { + name = "command-line-usage"; + packageName = "command-line-usage"; + version = "6.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz"; + sha512 = "F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA=="; + }; + }; + "commander-2.20.3" = { + name = "commander"; + packageName = "commander"; + version = "2.20.3"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"; + sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; + }; + }; + "commander-4.1.1" = { + name = "commander"; + packageName = "commander"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"; + sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="; + }; + }; + "commander-6.2.0" = { + name = "commander"; + packageName = "commander"; + version = "6.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz"; + sha512 = "zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q=="; + }; + }; + "comment-parser-0.7.6" = { + name = "comment-parser"; + packageName = "comment-parser"; + version = "0.7.6"; + src = fetchurl { + url = "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz"; + sha512 = "GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg=="; + }; + }; + "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"; + }; + }; + "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"; + }; + }; + "contains-path-0.1.0" = { + name = "contains-path"; + packageName = "contains-path"; + version = "0.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz"; + sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a"; + }; + }; + "convert-source-map-1.7.0" = { + name = "convert-source-map"; + packageName = "convert-source-map"; + version = "1.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"; + sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA=="; + }; + }; + "core-js-3.7.0" = { + name = "core-js"; + packageName = "core-js"; + version = "3.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz"; + sha512 = "NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA=="; + }; + }; + "core-js-compat-3.7.0" = { + name = "core-js-compat"; + packageName = "core-js-compat"; + version = "3.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz"; + sha512 = "V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg=="; + }; + }; + "cosmiconfig-7.0.0" = { + name = "cosmiconfig"; + packageName = "cosmiconfig"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz"; + sha512 = "pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA=="; + }; + }; + "cross-spawn-7.0.3" = { + name = "cross-spawn"; + packageName = "cross-spawn"; + version = "7.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"; + sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="; + }; + }; + "css-loader-5.0.1" = { + name = "css-loader"; + packageName = "css-loader"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/css-loader/-/css-loader-5.0.1.tgz"; + sha512 = "cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw=="; + }; + }; + "css-select-1.2.0" = { + name = "css-select"; + packageName = "css-select"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz"; + sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858"; + }; + }; + "css-what-2.1.3" = { + name = "css-what"; + packageName = "css-what"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz"; + sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="; + }; + }; + "cssesc-3.0.0" = { + name = "cssesc"; + packageName = "cssesc"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"; + sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="; + }; + }; + "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-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=="; + }; + }; + "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=="; + }; + }; + "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"; + }; + }; + "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=="; + }; + }; + "doctrine-1.5.0" = { + name = "doctrine"; + packageName = "doctrine"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz"; + sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa"; + }; + }; + "doctrine-3.0.0" = { + name = "doctrine"; + packageName = "doctrine"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"; + sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="; + }; + }; + "dom-converter-0.2.0" = { + name = "dom-converter"; + packageName = "dom-converter"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz"; + sha512 = "gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA=="; + }; + }; + "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=="; + }; + }; + "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.0.2" = { + name = "domelementtype"; + packageName = "domelementtype"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz"; + sha512 = "wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA=="; + }; + }; + "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=="; + }; + }; + "domutils-1.5.1" = { + name = "domutils"; + packageName = "domutils"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz"; + sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf"; + }; + }; + "dot-case-3.0.3" = { + name = "dot-case"; + packageName = "dot-case"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz"; + sha512 = "7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA=="; + }; + }; + "electron-to-chromium-1.3.607" = { + name = "electron-to-chromium"; + packageName = "electron-to-chromium"; + version = "1.3.607"; + src = fetchurl { + url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz"; + sha512 = "h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g=="; + }; + }; + "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-3.0.0" = { + name = "emojis-list"; + packageName = "emojis-list"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"; + sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="; + }; + }; + "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-5.3.2" = { + name = "enhanced-resolve"; + packageName = "enhanced-resolve"; + version = "5.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.2.tgz"; + sha512 = "G28GCrglCAH6+EqMN2D+Q2wCUS1O1vVQJBn8ME2I/Api41YBe4vLWWRBOUbwDH7vwzSZdljxwTRVqnf+sm6XqQ=="; + }; + }; + "enquirer-2.3.6" = { + name = "enquirer"; + packageName = "enquirer"; + version = "2.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"; + sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg=="; + }; + }; + "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=="; + }; + }; + "envinfo-7.7.3" = { + name = "envinfo"; + packageName = "envinfo"; + version = "7.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz"; + sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA=="; + }; + }; + "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=="; + }; + }; + "es-abstract-1.17.7" = { + name = "es-abstract"; + packageName = "es-abstract"; + version = "1.17.7"; + src = fetchurl { + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz"; + sha512 = "VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g=="; + }; + }; + "es-abstract-1.18.0-next.1" = { + name = "es-abstract"; + packageName = "es-abstract"; + version = "1.18.0-next.1"; + src = fetchurl { + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz"; + sha512 = "I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA=="; + }; + }; + "es-to-primitive-1.2.1" = { + name = "es-to-primitive"; + packageName = "es-to-primitive"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; + sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="; + }; + }; + "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-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"; + }; + }; + "eslint-7.14.0" = { + name = "eslint"; + packageName = "eslint"; + version = "7.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz"; + sha512 = "5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA=="; + }; + }; + "eslint-import-resolver-node-0.3.4" = { + name = "eslint-import-resolver-node"; + packageName = "eslint-import-resolver-node"; + version = "0.3.4"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz"; + sha512 = "ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA=="; + }; + }; + "eslint-module-utils-2.6.0" = { + name = "eslint-module-utils"; + packageName = "eslint-module-utils"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz"; + sha512 = "6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA=="; + }; + }; + "eslint-plugin-import-2.22.1" = { + name = "eslint-plugin-import"; + packageName = "eslint-plugin-import"; + version = "2.22.1"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz"; + sha512 = "8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw=="; + }; + }; + "eslint-plugin-jquery-1.5.1" = { + name = "eslint-plugin-jquery"; + packageName = "eslint-plugin-jquery"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-plugin-jquery/-/eslint-plugin-jquery-1.5.1.tgz"; + sha512 = "L7v1eaK5t80C0lvUXPFP9MKnBOqPSKhCOYyzy4LZ0+iK+TJwN8S9gAkzzP1AOhypRIwA88HF6phQ9C7jnOpW8w=="; + }; + }; + "eslint-plugin-jsdoc-30.7.8" = { + name = "eslint-plugin-jsdoc"; + packageName = "eslint-plugin-jsdoc"; + version = "30.7.8"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.8.tgz"; + sha512 = "OWm2AYvXjCl7nRbpcw5xisfSVkpVAyp4lGqL9T+DeK4kaPm6ecnmTc/G5s1PtcRrwbaI8bIWGzwScqv5CdGyxA=="; + }; + }; + "eslint-rule-composer-0.3.0" = { + name = "eslint-rule-composer"; + packageName = "eslint-rule-composer"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz"; + sha512 = "bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg=="; + }; + }; + "eslint-scope-5.1.0" = { + name = "eslint-scope"; + packageName = "eslint-scope"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz"; + sha512 = "iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w=="; + }; + }; + "eslint-scope-5.1.1" = { + name = "eslint-scope"; + packageName = "eslint-scope"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"; + sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="; + }; + }; + "eslint-utils-2.1.0" = { + name = "eslint-utils"; + packageName = "eslint-utils"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz"; + sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg=="; + }; + }; + "eslint-visitor-keys-1.3.0" = { + name = "eslint-visitor-keys"; + packageName = "eslint-visitor-keys"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"; + sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="; + }; + }; + "eslint-visitor-keys-2.0.0" = { + name = "eslint-visitor-keys"; + packageName = "eslint-visitor-keys"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz"; + sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ=="; + }; + }; + "espree-7.3.0" = { + name = "espree"; + packageName = "espree"; + version = "7.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz"; + sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw=="; + }; + }; + "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=="; + }; + }; + "esquery-1.3.1" = { + name = "esquery"; + packageName = "esquery"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz"; + sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ=="; + }; + }; + "esrecurse-4.3.0" = { + name = "esrecurse"; + packageName = "esrecurse"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"; + sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="; + }; + }; + "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=="; + }; + }; + "estraverse-5.2.0" = { + name = "estraverse"; + packageName = "estraverse"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz"; + sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ=="; + }; + }; + "esutils-2.0.3" = { + name = "esutils"; + packageName = "esutils"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"; + sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="; + }; + }; + "events-3.2.0" = { + name = "events"; + packageName = "events"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz"; + sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="; + }; + }; + "execa-4.1.0" = { + name = "execa"; + packageName = "execa"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz"; + sha512 = "j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA=="; + }; + }; + "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-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-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"; + }; + }; + "file-entry-cache-5.0.1" = { + name = "file-entry-cache"; + packageName = "file-entry-cache"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz"; + sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g=="; + }; + }; + "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=="; + }; + }; + "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-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=="; + }; + }; + "find-up-4.1.0" = { + name = "find-up"; + packageName = "find-up"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz"; + sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="; + }; + }; + "flat-cache-2.0.1" = { + name = "flat-cache"; + packageName = "flat-cache"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz"; + sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA=="; + }; + }; + "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=="; + }; + }; + "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-2.1.3" = { + name = "fsevents"; + packageName = "fsevents"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz"; + sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ=="; + }; + }; + "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=="; + }; + }; + "functional-red-black-tree-1.0.1" = { + name = "functional-red-black-tree"; + packageName = "functional-red-black-tree"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"; + sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"; + }; + }; + "gensync-1.0.0-beta.2" = { + name = "gensync"; + packageName = "gensync"; + version = "1.0.0-beta.2"; + src = fetchurl { + url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"; + sha512 = "3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="; + }; + }; + "get-intrinsic-1.0.1" = { + name = "get-intrinsic"; + packageName = "get-intrinsic"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz"; + sha512 = "ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg=="; + }; + }; + "get-stream-5.2.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"; + sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="; + }; + }; + "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-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-to-regexp-0.4.1" = { + name = "glob-to-regexp"; + packageName = "glob-to-regexp"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"; + sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="; + }; + }; + "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-12.4.0" = { + name = "globals"; + packageName = "globals"; + version = "12.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz"; + sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg=="; + }; + }; + "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=="; + }; + }; + "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-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-symbols-1.0.1" = { + name = "has-symbols"; + packageName = "has-symbols"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz"; + sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="; + }; + }; + "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=="; + }; + }; + "hosted-git-info-2.8.9" = { + name = "hosted-git-info"; + packageName = "hosted-git-info"; + version = "2.8.9"; + src = fetchurl { + url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz"; + sha512 = "mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="; + }; + }; + "html-minifier-terser-5.1.1" = { + name = "html-minifier-terser"; + packageName = "html-minifier-terser"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz"; + sha512 = "ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg=="; + }; + }; + "html-webpack-plugin-4.5.0" = { + name = "html-webpack-plugin"; + packageName = "html-webpack-plugin"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz"; + sha512 = "MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw=="; + }; + }; + "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=="; + }; + }; + "human-signals-1.1.1" = { + name = "human-signals"; + packageName = "human-signals"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"; + sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="; + }; + }; + "icss-utils-5.1.0" = { + name = "icss-utils"; + packageName = "icss-utils"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz"; + sha512 = "soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="; + }; + }; + "ignore-4.0.6" = { + name = "ignore"; + packageName = "ignore"; + version = "4.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz"; + sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="; + }; + }; + "import-fresh-3.2.2" = { + name = "import-fresh"; + packageName = "import-fresh"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz"; + sha512 = "cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw=="; + }; + }; + "import-local-3.0.2" = { + name = "import-local"; + packageName = "import-local"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz"; + sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA=="; + }; + }; + "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"; + }; + }; + "indexes-of-1.0.1" = { + name = "indexes-of"; + packageName = "indexes-of"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz"; + sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607"; + }; + }; + "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 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "interpret-2.2.0" = { + name = "interpret"; + packageName = "interpret"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz"; + sha512 = "Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw=="; + }; + }; + "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-2.1.0" = { + name = "is-binary-path"; + packageName = "is-binary-path"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"; + sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="; + }; + }; + "is-callable-1.2.2" = { + name = "is-callable"; + packageName = "is-callable"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz"; + sha512 = "dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA=="; + }; + }; + "is-core-module-2.1.0" = { + name = "is-core-module"; + packageName = "is-core-module"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz"; + sha512 = "YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA=="; + }; + }; + "is-date-object-1.0.2" = { + name = "is-date-object"; + packageName = "is-date-object"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz"; + sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="; + }; + }; + "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-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-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-negative-zero-2.0.0" = { + name = "is-negative-zero"; + packageName = "is-negative-zero"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz"; + sha1 = "9553b121b0fac28869da9ed459e20c7543788461"; + }; + }; + "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-regex-1.1.1" = { + name = "is-regex"; + packageName = "is-regex"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz"; + sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg=="; + }; + }; + "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-string-1.0.5" = { + name = "is-string"; + packageName = "is-string"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz"; + sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ=="; + }; + }; + "is-symbol-1.0.3" = { + name = "is-symbol"; + packageName = "is-symbol"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz"; + sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ=="; + }; + }; + "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"; + }; + }; + "jest-worker-26.6.2" = { + name = "jest-worker"; + packageName = "jest-worker"; + version = "26.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz"; + sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ=="; + }; + }; + "jquery-3.5.1" = { + name = "jquery"; + packageName = "jquery"; + version = "3.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz"; + sha512 = "XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg=="; + }; + }; + "jquery-migrate-3.3.2" = { + name = "jquery-migrate"; + packageName = "jquery-migrate"; + version = "3.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/jquery-migrate/-/jquery-migrate-3.3.2.tgz"; + sha512 = "L3gYhr7yEtLUSAeqXSicVa0vRD4aGwjw/bWY8YzrO2o/qDY1BaMyP3oB3bZf5Auy3Hu9ynliio0CTyDWCBPVDw=="; + }; + }; + "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.14.0" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.14.0"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz"; + sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A=="; + }; + }; + "jsdoctypeparser-9.0.0" = { + name = "jsdoctypeparser"; + packageName = "jsdoctypeparser"; + version = "9.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz"; + sha512 = "jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw=="; + }; + }; + "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-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-parse-even-better-errors-2.3.1" = { + name = "json-parse-even-better-errors"; + packageName = "json-parse-even-better-errors"; + version = "2.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"; + sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="; + }; + }; + "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"; + }; + }; + "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.3" = { + name = "json5"; + packageName = "json5"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz"; + sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA=="; + }; + }; + "klona-2.0.4" = { + name = "klona"; + packageName = "klona"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz"; + sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA=="; + }; + }; + "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.4.1" = { + name = "levn"; + packageName = "levn"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"; + sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="; + }; + }; + "lines-and-columns-1.1.6" = { + name = "lines-and-columns"; + packageName = "lines-and-columns"; + version = "1.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"; + sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00"; + }; + }; + "load-json-file-2.0.0" = { + name = "load-json-file"; + packageName = "load-json-file"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz"; + sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8"; + }; + }; + "loader-runner-4.1.0" = { + name = "loader-runner"; + packageName = "loader-runner"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz"; + sha512 = "oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA=="; + }; + }; + "loader-utils-1.4.0" = { + name = "loader-utils"; + packageName = "loader-utils"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz"; + sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA=="; + }; + }; + "loader-utils-2.0.0" = { + name = "loader-utils"; + packageName = "loader-utils"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz"; + sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ=="; + }; + }; + "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=="; + }; + }; + "locate-path-5.0.0" = { + name = "locate-path"; + packageName = "locate-path"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz"; + sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="; + }; + }; + "lodash-4.17.21" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.21"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"; + sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="; + }; + }; + "lower-case-2.0.1" = { + name = "lower-case"; + packageName = "lower-case"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz"; + sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ=="; + }; + }; + "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=="; + }; + }; + "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=="; + }; + }; + "mime-db-1.44.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.44.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz"; + sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="; + }; + }; + "mime-types-2.1.27" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.27"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz"; + sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w=="; + }; + }; + "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=="; + }; + }; + "mini-css-extract-plugin-1.3.1" = { + name = "mini-css-extract-plugin"; + packageName = "mini-css-extract-plugin"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.1.tgz"; + sha512 = "jIOheqh9EU98rqj6ZaFTYNNDSFqdakNqaUZfkYwaXPjI9batmXVXX+K71NrqRAgtoGefELBMld1EQ7dqSAD5SQ=="; + }; + }; + "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=="; + }; + }; + "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=="; + }; + }; + "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.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=="; + }; + }; + "nanoid-3.1.23" = { + name = "nanoid"; + packageName = "nanoid"; + version = "3.1.23"; + src = fetchurl { + url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz"; + sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw=="; + }; + }; + "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"; + }; + }; + "neo-async-2.6.2" = { + name = "neo-async"; + packageName = "neo-async"; + version = "2.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"; + sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="; + }; + }; + "no-case-3.0.3" = { + name = "no-case"; + packageName = "no-case"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz"; + sha512 = "ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw=="; + }; + }; + "node-releases-1.1.67" = { + name = "node-releases"; + packageName = "node-releases"; + version = "1.1.67"; + src = fetchurl { + url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz"; + sha512 = "V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg=="; + }; + }; + "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-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=="; + }; + }; + "normalize-range-0.1.2" = { + name = "normalize-range"; + packageName = "normalize-range"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"; + sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942"; + }; + }; + "npm-run-path-4.0.1" = { + name = "npm-run-path"; + packageName = "npm-run-path"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"; + sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="; + }; + }; + "nth-check-1.0.2" = { + name = "nth-check"; + packageName = "nth-check"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz"; + sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg=="; + }; + }; + "num2fraction-1.2.2" = { + name = "num2fraction"; + packageName = "num2fraction"; + version = "1.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz"; + sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"; + }; + }; + "object-inspect-1.8.0" = { + name = "object-inspect"; + packageName = "object-inspect"; + version = "1.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz"; + sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="; + }; + }; + "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.assign-4.1.2" = { + name = "object.assign"; + packageName = "object.assign"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz"; + sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ=="; + }; + }; + "object.getownpropertydescriptors-2.1.0" = { + name = "object.getownpropertydescriptors"; + packageName = "object.getownpropertydescriptors"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz"; + sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg=="; + }; + }; + "object.values-1.1.1" = { + name = "object.values"; + packageName = "object.values"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz"; + sha512 = "WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA=="; + }; + }; + "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-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=="; + }; + }; + "optionator-0.9.1" = { + name = "optionator"; + packageName = "optionator"; + version = "0.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"; + sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="; + }; + }; + "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.3.0" = { + name = "p-limit"; + packageName = "p-limit"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"; + sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="; + }; + }; + "p-limit-3.0.2" = { + name = "p-limit"; + packageName = "p-limit"; + version = "3.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz"; + sha512 = "iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg=="; + }; + }; + "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-locate-4.1.0" = { + name = "p-locate"; + packageName = "p-locate"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz"; + sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="; + }; + }; + "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=="; + }; + }; + "param-case-3.0.3" = { + name = "param-case"; + packageName = "param-case"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz"; + sha512 = "VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA=="; + }; + }; + "parent-module-1.0.1" = { + name = "parent-module"; + packageName = "parent-module"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"; + sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="; + }; + }; + "parse-json-2.2.0" = { + name = "parse-json"; + packageName = "parse-json"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"; + sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9"; + }; + }; + "parse-json-5.1.0" = { + name = "parse-json"; + packageName = "parse-json"; + version = "5.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz"; + sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ=="; + }; + }; + "pascal-case-3.1.1" = { + name = "pascal-case"; + packageName = "pascal-case"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz"; + sha512 = "XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA=="; + }; + }; + "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-exists-4.0.0" = { + name = "path-exists"; + packageName = "path-exists"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"; + sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="; + }; + }; + "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-key-3.1.1" = { + name = "path-key"; + packageName = "path-key"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"; + sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="; + }; + }; + "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-type-2.0.0" = { + name = "path-type"; + packageName = "path-type"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz"; + sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73"; + }; + }; + "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=="; + }; + }; + "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=="; + }; + }; + "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-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=="; + }; + }; + "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=="; + }; + }; + "pkg-dir-4.2.0" = { + name = "pkg-dir"; + packageName = "pkg-dir"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz"; + sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="; + }; + }; + "popper.js-1.16.1" = { + name = "popper.js"; + packageName = "popper.js"; + version = "1.16.1"; + src = fetchurl { + url = "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz"; + sha512 = "Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="; + }; + }; + "postcss-8.2.15" = { + name = "postcss"; + packageName = "postcss"; + version = "8.2.15"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz"; + sha512 = "2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q=="; + }; + }; + "postcss-loader-4.1.0" = { + name = "postcss-loader"; + packageName = "postcss-loader"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.1.0.tgz"; + sha512 = "vbCkP70F3Q9PIk6d47aBwjqAMI4LfkXCoyxj+7NPNuVIwfTGdzv2KVQes59/RuxMniIgsYQCFSY42P3+ykJfaw=="; + }; + }; + "postcss-modules-extract-imports-3.0.0" = { + name = "postcss-modules-extract-imports"; + packageName = "postcss-modules-extract-imports"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz"; + sha512 = "bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw=="; + }; + }; + "postcss-modules-local-by-default-4.0.0" = { + name = "postcss-modules-local-by-default"; + packageName = "postcss-modules-local-by-default"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz"; + sha512 = "sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ=="; + }; + }; + "postcss-modules-scope-3.0.0" = { + name = "postcss-modules-scope"; + packageName = "postcss-modules-scope"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz"; + sha512 = "hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg=="; + }; + }; + "postcss-modules-values-4.0.0" = { + name = "postcss-modules-values"; + packageName = "postcss-modules-values"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz"; + sha512 = "RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ=="; + }; + }; + "postcss-selector-parser-6.0.4" = { + name = "postcss-selector-parser"; + packageName = "postcss-selector-parser"; + version = "6.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz"; + sha512 = "gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw=="; + }; + }; + "postcss-value-parser-4.1.0" = { + name = "postcss-value-parser"; + packageName = "postcss-value-parser"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz"; + sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ=="; + }; + }; + "prelude-ls-1.2.1" = { + name = "prelude-ls"; + packageName = "prelude-ls"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"; + sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="; + }; + }; + "pretty-error-2.1.2" = { + name = "pretty-error"; + packageName = "pretty-error"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz"; + sha512 = "EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw=="; + }; + }; + "progress-2.0.3" = { + name = "progress"; + packageName = "progress"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"; + sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="; + }; + }; + "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=="; + }; + }; + "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=="; + }; + }; + "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=="; + }; + }; + "read-pkg-2.0.0" = { + name = "read-pkg"; + packageName = "read-pkg"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz"; + sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"; + }; + }; + "read-pkg-up-2.0.0" = { + name = "read-pkg-up"; + packageName = "read-pkg-up"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz"; + sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be"; + }; + }; + "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=="; + }; + }; + "readdirp-3.5.0" = { + name = "readdirp"; + packageName = "readdirp"; + version = "3.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz"; + sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ=="; + }; + }; + "rechoir-0.7.0" = { + name = "rechoir"; + packageName = "rechoir"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz"; + sha512 = "ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q=="; + }; + }; + "reduce-flatten-2.0.0" = { + name = "reduce-flatten"; + packageName = "reduce-flatten"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz"; + sha512 = "EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w=="; + }; + }; + "regenerate-1.4.2" = { + name = "regenerate"; + packageName = "regenerate"; + version = "1.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"; + sha512 = "zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="; + }; + }; + "regenerate-unicode-properties-8.2.0" = { + name = "regenerate-unicode-properties"; + packageName = "regenerate-unicode-properties"; + version = "8.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz"; + sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA=="; + }; + }; + "regenerator-runtime-0.13.7" = { + name = "regenerator-runtime"; + packageName = "regenerator-runtime"; + version = "0.13.7"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz"; + sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="; + }; + }; + "regenerator-transform-0.14.5" = { + name = "regenerator-transform"; + packageName = "regenerator-transform"; + version = "0.14.5"; + src = fetchurl { + url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz"; + sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw=="; + }; + }; + "regexpp-3.1.0" = { + name = "regexpp"; + packageName = "regexpp"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz"; + sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q=="; + }; + }; + "regexpu-core-4.7.1" = { + name = "regexpu-core"; + packageName = "regexpu-core"; + version = "4.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz"; + sha512 = "ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ=="; + }; + }; + "regextras-0.7.1" = { + name = "regextras"; + packageName = "regextras"; + version = "0.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz"; + sha512 = "9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w=="; + }; + }; + "regjsgen-0.5.2" = { + name = "regjsgen"; + packageName = "regjsgen"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz"; + sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="; + }; + }; + "regjsparser-0.6.4" = { + name = "regjsparser"; + packageName = "regjsparser"; + version = "0.6.4"; + src = fetchurl { + url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz"; + sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw=="; + }; + }; + "relateurl-0.2.7" = { + name = "relateurl"; + packageName = "relateurl"; + version = "0.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz"; + sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9"; + }; + }; + "renderkid-2.0.4" = { + name = "renderkid"; + packageName = "renderkid"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz"; + sha512 = "K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g=="; + }; + }; + "resolve-1.19.0" = { + name = "resolve"; + packageName = "resolve"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz"; + sha512 = "rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg=="; + }; + }; + "resolve-cwd-3.0.0" = { + name = "resolve-cwd"; + packageName = "resolve-cwd"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"; + sha512 = "OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="; + }; + }; + "resolve-from-4.0.0" = { + name = "resolve-from"; + packageName = "resolve-from"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"; + sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="; + }; + }; + "resolve-from-5.0.0" = { + name = "resolve-from"; + packageName = "resolve-from"; + version = "5.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"; + sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="; + }; + }; + "rimraf-2.6.3" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"; + sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="; + }; + }; + "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=="; + }; + }; + "sass-1.29.0" = { + name = "sass"; + packageName = "sass"; + version = "1.29.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sass/-/sass-1.29.0.tgz"; + sha512 = "ZpwAUFgnvAUCdkjwPREny+17BpUj8nh5Yr6zKPGtLNTLrmtoRYIjm7njP24COhjJldjwW1dcv52Lpf4tNZVVRA=="; + }; + }; + "sass-loader-10.1.0" = { + name = "sass-loader"; + packageName = "sass-loader"; + version = "10.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.0.tgz"; + sha512 = "ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg=="; + }; + }; + "schema-utils-2.7.1" = { + name = "schema-utils"; + packageName = "schema-utils"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz"; + sha512 = "SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg=="; + }; + }; + "schema-utils-3.0.0" = { + name = "schema-utils"; + packageName = "schema-utils"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz"; + sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA=="; + }; + }; + "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-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=="; + }; + }; + "semver-7.0.0" = { + name = "semver"; + packageName = "semver"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz"; + sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="; + }; + }; + "semver-7.3.2" = { + name = "semver"; + packageName = "semver"; + version = "7.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz"; + sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="; + }; + }; + "serialize-javascript-5.0.1" = { + name = "serialize-javascript"; + packageName = "serialize-javascript"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz"; + sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA=="; + }; + }; + "shebang-command-2.0.0" = { + name = "shebang-command"; + packageName = "shebang-command"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"; + sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="; + }; + }; + "shebang-regex-3.0.0" = { + name = "shebang-regex"; + packageName = "shebang-regex"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"; + sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="; + }; + }; + "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=="; + }; + }; + "slice-ansi-2.1.0" = { + name = "slice-ansi"; + packageName = "slice-ansi"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz"; + sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ=="; + }; + }; + "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-0.7.3" = { + name = "source-map"; + packageName = "source-map"; + version = "0.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz"; + sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="; + }; + }; + "source-map-support-0.5.19" = { + name = "source-map-support"; + packageName = "source-map-support"; + version = "0.5.19"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz"; + sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw=="; + }; + }; + "spdx-correct-3.1.1" = { + name = "spdx-correct"; + packageName = "spdx-correct"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"; + sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w=="; + }; + }; + "spdx-exceptions-2.3.0" = { + name = "spdx-exceptions"; + packageName = "spdx-exceptions"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz"; + sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="; + }; + }; + "spdx-expression-parse-3.0.1" = { + name = "spdx-expression-parse"; + packageName = "spdx-expression-parse"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz"; + sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="; + }; + }; + "spdx-license-ids-3.0.6" = { + name = "spdx-license-ids"; + packageName = "spdx-license-ids"; + version = "3.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz"; + sha512 = "+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw=="; + }; + }; + "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"; + }; + }; + "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.trimend-1.0.3" = { + name = "string.prototype.trimend"; + packageName = "string.prototype.trimend"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz"; + sha512 = "ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw=="; + }; + }; + "string.prototype.trimstart-1.0.3" = { + name = "string.prototype.trimstart"; + packageName = "string.prototype.trimstart"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz"; + sha512 = "oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg=="; + }; + }; + "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-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-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-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-final-newline-2.0.0" = { + name = "strip-final-newline"; + packageName = "strip-final-newline"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"; + sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="; + }; + }; + "strip-json-comments-3.1.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"; + sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="; + }; + }; + "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=="; + }; + }; + "table-5.4.6" = { + name = "table"; + packageName = "table"; + version = "5.4.6"; + src = fetchurl { + url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz"; + sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug=="; + }; + }; + "table-layout-1.0.1" = { + name = "table-layout"; + packageName = "table-layout"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz"; + sha512 = "dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q=="; + }; + }; + "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=="; + }; + }; + "tapable-2.1.1" = { + name = "tapable"; + packageName = "tapable"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz"; + sha512 = "Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ=="; + }; + }; + "terser-4.8.0" = { + name = "terser"; + packageName = "terser"; + version = "4.8.0"; + src = fetchurl { + url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz"; + sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw=="; + }; + }; + "terser-5.5.0" = { + name = "terser"; + packageName = "terser"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/terser/-/terser-5.5.0.tgz"; + sha512 = "eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g=="; + }; + }; + "terser-webpack-plugin-5.0.3" = { + name = "terser-webpack-plugin"; + packageName = "terser-webpack-plugin"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz"; + sha512 = "zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ=="; + }; + }; + "text-table-0.2.0" = { + name = "text-table"; + packageName = "text-table"; + version = "0.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"; + sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4"; + }; + }; + "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-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=="; + }; + }; + "tsconfig-paths-3.9.0" = { + name = "tsconfig-paths"; + packageName = "tsconfig-paths"; + version = "3.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz"; + sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw=="; + }; + }; + "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=="; + }; + }; + "type-check-0.4.0" = { + name = "type-check"; + packageName = "type-check"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"; + sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="; + }; + }; + "type-fest-0.8.1" = { + name = "type-fest"; + packageName = "type-fest"; + version = "0.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"; + sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="; + }; + }; + "typical-5.2.0" = { + name = "typical"; + packageName = "typical"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz"; + sha512 = "dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="; + }; + }; + "unicode-canonical-property-names-ecmascript-1.0.4" = { + name = "unicode-canonical-property-names-ecmascript"; + packageName = "unicode-canonical-property-names-ecmascript"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz"; + sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="; + }; + }; + "unicode-match-property-ecmascript-1.0.4" = { + name = "unicode-match-property-ecmascript"; + packageName = "unicode-match-property-ecmascript"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz"; + sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg=="; + }; + }; + "unicode-match-property-value-ecmascript-1.2.0" = { + name = "unicode-match-property-value-ecmascript"; + packageName = "unicode-match-property-value-ecmascript"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz"; + sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ=="; + }; + }; + "unicode-property-aliases-ecmascript-1.1.0" = { + name = "unicode-property-aliases-ecmascript"; + packageName = "unicode-property-aliases-ecmascript"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz"; + sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="; + }; + }; + "uniq-1.0.1" = { + name = "uniq"; + packageName = "uniq"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"; + sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff"; + }; + }; + "uri-js-4.4.0" = { + name = "uri-js"; + packageName = "uri-js"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz"; + sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g=="; + }; + }; + "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=="; + }; + }; + "utila-0.4.0" = { + name = "utila"; + packageName = "utila"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz"; + sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c"; + }; + }; + "v8-compile-cache-2.2.0" = { + name = "v8-compile-cache"; + packageName = "v8-compile-cache"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz"; + sha512 = "gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q=="; + }; + }; + "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=="; + }; + }; + "watchpack-2.0.1" = { + name = "watchpack"; + packageName = "watchpack"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz"; + sha512 = "vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg=="; + }; + }; + "webpack-5.6.0" = { + name = "webpack"; + packageName = "webpack"; + version = "5.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack/-/webpack-5.6.0.tgz"; + sha512 = "SIeFuBhuheKElRbd84O35UhKc0nxlgSwtzm2ksZ0BVhRJqxVJxEguT/pYhfiR0le/pxTa1VsCp7EOYyTsa6XOA=="; + }; + }; + "webpack-cli-4.2.0" = { + name = "webpack-cli"; + packageName = "webpack-cli"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.2.0.tgz"; + sha512 = "EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA=="; + }; + }; + "webpack-merge-4.2.2" = { + name = "webpack-merge"; + packageName = "webpack-merge"; + version = "4.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz"; + sha512 = "TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g=="; + }; + }; + "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=="; + }; + }; + "webpack-sources-2.2.0" = { + name = "webpack-sources"; + packageName = "webpack-sources"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz"; + sha512 = "bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w=="; + }; + }; + "which-2.0.2" = { + name = "which"; + packageName = "which"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz"; + sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="; + }; + }; + "word-wrap-1.2.3" = { + name = "word-wrap"; + packageName = "word-wrap"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"; + sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="; + }; + }; + "wordwrapjs-4.0.0" = { + name = "wordwrapjs"; + packageName = "wordwrapjs"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz"; + sha512 = "Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ=="; + }; + }; + "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-1.0.3" = { + name = "write"; + packageName = "write"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz"; + sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig=="; + }; + }; + "yaml-1.10.0" = { + name = "yaml"; + packageName = "yaml"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz"; + sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg=="; + }; + }; + }; + args = { + name = "botamusique"; + packageName = "botamusique"; + version = "0.0.0"; + src = ../../../../../../../../../tmp/tmp.UAoivnXH3n; + dependencies = [ + sources."@babel/code-frame-7.10.4" + sources."@babel/compat-data-7.12.7" + sources."@babel/core-7.12.9" + (sources."@babel/eslint-parser-7.12.1" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + sources."@babel/eslint-plugin-7.12.1" + sources."@babel/generator-7.12.5" + sources."@babel/helper-annotate-as-pure-7.10.4" + sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" + sources."@babel/helper-compilation-targets-7.12.5" + sources."@babel/helper-create-class-features-plugin-7.12.1" + sources."@babel/helper-create-regexp-features-plugin-7.12.7" + sources."@babel/helper-define-map-7.10.5" + sources."@babel/helper-explode-assignable-expression-7.12.1" + sources."@babel/helper-function-name-7.10.4" + sources."@babel/helper-get-function-arity-7.10.4" + sources."@babel/helper-hoist-variables-7.10.4" + sources."@babel/helper-member-expression-to-functions-7.12.7" + sources."@babel/helper-module-imports-7.12.5" + sources."@babel/helper-module-transforms-7.12.1" + sources."@babel/helper-optimise-call-expression-7.12.7" + sources."@babel/helper-plugin-utils-7.10.4" + sources."@babel/helper-remap-async-to-generator-7.12.1" + sources."@babel/helper-replace-supers-7.12.5" + sources."@babel/helper-simple-access-7.12.1" + sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1" + sources."@babel/helper-split-export-declaration-7.11.0" + sources."@babel/helper-validator-identifier-7.10.4" + sources."@babel/helper-validator-option-7.12.1" + sources."@babel/helper-wrap-function-7.12.3" + sources."@babel/helpers-7.12.5" + sources."@babel/highlight-7.10.4" + sources."@babel/parser-7.12.7" + sources."@babel/plugin-proposal-async-generator-functions-7.12.1" + sources."@babel/plugin-proposal-class-properties-7.12.1" + sources."@babel/plugin-proposal-dynamic-import-7.12.1" + sources."@babel/plugin-proposal-export-namespace-from-7.12.1" + sources."@babel/plugin-proposal-json-strings-7.12.1" + sources."@babel/plugin-proposal-logical-assignment-operators-7.12.1" + sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.1" + sources."@babel/plugin-proposal-numeric-separator-7.12.7" + sources."@babel/plugin-proposal-object-rest-spread-7.12.1" + sources."@babel/plugin-proposal-optional-catch-binding-7.12.1" + sources."@babel/plugin-proposal-optional-chaining-7.12.7" + sources."@babel/plugin-proposal-private-methods-7.12.1" + sources."@babel/plugin-proposal-unicode-property-regex-7.12.1" + sources."@babel/plugin-syntax-async-generators-7.8.4" + sources."@babel/plugin-syntax-class-properties-7.12.1" + sources."@babel/plugin-syntax-dynamic-import-7.8.3" + sources."@babel/plugin-syntax-export-namespace-from-7.8.3" + sources."@babel/plugin-syntax-json-strings-7.8.3" + sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4" + sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" + sources."@babel/plugin-syntax-numeric-separator-7.10.4" + sources."@babel/plugin-syntax-object-rest-spread-7.8.3" + sources."@babel/plugin-syntax-optional-catch-binding-7.8.3" + sources."@babel/plugin-syntax-optional-chaining-7.8.3" + sources."@babel/plugin-syntax-top-level-await-7.12.1" + sources."@babel/plugin-transform-arrow-functions-7.12.1" + sources."@babel/plugin-transform-async-to-generator-7.12.1" + sources."@babel/plugin-transform-block-scoped-functions-7.12.1" + sources."@babel/plugin-transform-block-scoping-7.12.1" + sources."@babel/plugin-transform-classes-7.12.1" + sources."@babel/plugin-transform-computed-properties-7.12.1" + sources."@babel/plugin-transform-destructuring-7.12.1" + sources."@babel/plugin-transform-dotall-regex-7.12.1" + sources."@babel/plugin-transform-duplicate-keys-7.12.1" + sources."@babel/plugin-transform-exponentiation-operator-7.12.1" + sources."@babel/plugin-transform-for-of-7.12.1" + sources."@babel/plugin-transform-function-name-7.12.1" + sources."@babel/plugin-transform-literals-7.12.1" + sources."@babel/plugin-transform-member-expression-literals-7.12.1" + sources."@babel/plugin-transform-modules-amd-7.12.1" + sources."@babel/plugin-transform-modules-commonjs-7.12.1" + sources."@babel/plugin-transform-modules-systemjs-7.12.1" + sources."@babel/plugin-transform-modules-umd-7.12.1" + sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.1" + sources."@babel/plugin-transform-new-target-7.12.1" + sources."@babel/plugin-transform-object-super-7.12.1" + sources."@babel/plugin-transform-parameters-7.12.1" + sources."@babel/plugin-transform-property-literals-7.12.1" + sources."@babel/plugin-transform-regenerator-7.12.1" + sources."@babel/plugin-transform-reserved-words-7.12.1" + sources."@babel/plugin-transform-shorthand-properties-7.12.1" + sources."@babel/plugin-transform-spread-7.12.1" + sources."@babel/plugin-transform-sticky-regex-7.12.7" + sources."@babel/plugin-transform-template-literals-7.12.1" + sources."@babel/plugin-transform-typeof-symbol-7.12.1" + sources."@babel/plugin-transform-unicode-escapes-7.12.1" + sources."@babel/plugin-transform-unicode-regex-7.12.1" + sources."@babel/preset-env-7.12.7" + sources."@babel/preset-modules-0.1.4" + sources."@babel/runtime-7.12.5" + sources."@babel/template-7.12.7" + sources."@babel/traverse-7.12.9" + sources."@babel/types-7.12.7" + (sources."@eslint/eslintrc-0.2.1" // { + dependencies = [ + sources."globals-12.4.0" + ]; + }) + sources."@fortawesome/fontawesome-common-types-0.2.32" + sources."@fortawesome/fontawesome-svg-core-1.2.32" + sources."@fortawesome/free-regular-svg-icons-5.15.1" + sources."@fortawesome/free-solid-svg-icons-5.15.1" + sources."@types/anymatch-1.3.1" + sources."@types/eslint-7.2.5" + sources."@types/eslint-scope-3.7.0" + sources."@types/estree-0.0.45" + sources."@types/html-minifier-terser-5.1.1" + sources."@types/json-schema-7.0.6" + sources."@types/json5-0.0.29" + sources."@types/node-14.14.9" + sources."@types/parse-json-4.0.0" + sources."@types/source-list-map-0.1.2" + sources."@types/tapable-1.0.6" + (sources."@types/uglify-js-3.11.1" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + (sources."@types/webpack-4.41.25" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + (sources."@types/webpack-sources-2.0.0" // { + dependencies = [ + sources."source-map-0.7.3" + ]; + }) + sources."@webassemblyjs/ast-1.9.0" + sources."@webassemblyjs/floating-point-hex-parser-1.9.0" + sources."@webassemblyjs/helper-api-error-1.9.0" + sources."@webassemblyjs/helper-buffer-1.9.0" + sources."@webassemblyjs/helper-code-frame-1.9.0" + sources."@webassemblyjs/helper-fsm-1.9.0" + sources."@webassemblyjs/helper-module-context-1.9.0" + sources."@webassemblyjs/helper-wasm-bytecode-1.9.0" + sources."@webassemblyjs/helper-wasm-section-1.9.0" + sources."@webassemblyjs/ieee754-1.9.0" + sources."@webassemblyjs/leb128-1.9.0" + sources."@webassemblyjs/utf8-1.9.0" + sources."@webassemblyjs/wasm-edit-1.9.0" + sources."@webassemblyjs/wasm-gen-1.9.0" + sources."@webassemblyjs/wasm-opt-1.9.0" + sources."@webassemblyjs/wasm-parser-1.9.0" + sources."@webassemblyjs/wast-parser-1.9.0" + sources."@webassemblyjs/wast-printer-1.9.0" + sources."@webpack-cli/info-1.1.0" + sources."@webpack-cli/serve-1.1.0" + sources."@xtuc/ieee754-1.2.0" + sources."@xtuc/long-4.2.2" + sources."acorn-7.4.1" + sources."acorn-jsx-5.3.1" + sources."ajv-6.12.6" + sources."ajv-keywords-3.5.2" + sources."ansi-colors-4.1.1" + sources."ansi-regex-5.0.0" + sources."ansi-styles-3.2.1" + sources."anymatch-3.1.1" + sources."argparse-1.0.10" + sources."array-back-4.0.1" + sources."array-includes-3.1.2" + sources."array.prototype.flat-1.2.4" + sources."astral-regex-1.0.0" + sources."autoprefixer-10.0.2" + sources."babel-loader-8.2.1" + sources."babel-plugin-dynamic-import-node-2.3.3" + sources."balanced-match-1.0.0" + sources."big.js-5.2.2" + sources."binary-extensions-2.1.0" + sources."boolbase-1.0.0" + sources."bootstrap-4.5.3" + sources."bootswatch-4.5.3" + sources."brace-expansion-1.1.11" + sources."braces-3.0.2" + sources."browserslist-4.14.7" + sources."buffer-from-1.1.1" + sources."call-bind-1.0.0" + sources."callsites-3.1.0" + sources."camel-case-4.1.1" + sources."camelcase-6.2.0" + sources."caniuse-lite-1.0.30001161" + sources."chalk-2.4.2" + sources."chokidar-3.4.3" + sources."chrome-trace-event-1.0.2" + (sources."clean-css-4.2.3" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."colorette-1.2.2" + sources."command-line-usage-6.1.1" + sources."commander-4.1.1" + sources."comment-parser-0.7.6" + sources."commondir-1.0.1" + sources."concat-map-0.0.1" + sources."contains-path-0.1.0" + sources."convert-source-map-1.7.0" + sources."core-js-3.7.0" + (sources."core-js-compat-3.7.0" // { + dependencies = [ + sources."semver-7.0.0" + ]; + }) + sources."cosmiconfig-7.0.0" + sources."cross-spawn-7.0.3" + (sources."css-loader-5.0.1" // { + dependencies = [ + sources."loader-utils-2.0.0" + sources."schema-utils-3.0.0" + sources."semver-7.3.2" + ]; + }) + sources."css-select-1.2.0" + sources."css-what-2.1.3" + sources."cssesc-3.0.0" + sources."debug-4.3.1" + sources."deep-extend-0.6.0" + sources."deep-is-0.1.3" + sources."define-properties-1.1.3" + sources."doctrine-3.0.0" + sources."dom-converter-0.2.0" + (sources."dom-serializer-0.2.2" // { + dependencies = [ + sources."domelementtype-2.0.2" + ]; + }) + sources."domelementtype-1.3.1" + sources."domhandler-2.4.2" + sources."domutils-1.5.1" + sources."dot-case-3.0.3" + sources."electron-to-chromium-1.3.607" + sources."emoji-regex-7.0.3" + sources."emojis-list-3.0.0" + sources."end-of-stream-1.4.4" + (sources."enhanced-resolve-5.3.2" // { + dependencies = [ + sources."tapable-2.1.1" + ]; + }) + sources."enquirer-2.3.6" + sources."entities-2.1.0" + sources."envinfo-7.7.3" + sources."error-ex-1.3.2" + sources."es-abstract-1.18.0-next.1" + sources."es-to-primitive-1.2.1" + sources."escalade-3.1.1" + sources."escape-string-regexp-1.0.5" + (sources."eslint-7.14.0" // { + 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."eslint-scope-5.1.1" + sources."eslint-visitor-keys-2.0.0" + sources."globals-12.4.0" + sources."has-flag-4.0.0" + sources."semver-7.3.2" + sources."supports-color-7.2.0" + ]; + }) + (sources."eslint-import-resolver-node-0.3.4" // { + dependencies = [ + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + (sources."eslint-module-utils-2.6.0" // { + dependencies = [ + sources."debug-2.6.9" + sources."ms-2.0.0" + ]; + }) + (sources."eslint-plugin-import-2.22.1" // { + dependencies = [ + sources."debug-2.6.9" + sources."doctrine-1.5.0" + sources."ms-2.0.0" + ]; + }) + sources."eslint-plugin-jquery-1.5.1" + (sources."eslint-plugin-jsdoc-30.7.8" // { + dependencies = [ + sources."semver-7.3.2" + ]; + }) + sources."eslint-rule-composer-0.3.0" + sources."eslint-scope-5.1.0" + sources."eslint-utils-2.1.0" + sources."eslint-visitor-keys-1.3.0" + sources."espree-7.3.0" + sources."esprima-4.0.1" + (sources."esquery-1.3.1" // { + dependencies = [ + sources."estraverse-5.2.0" + ]; + }) + (sources."esrecurse-4.3.0" // { + dependencies = [ + sources."estraverse-5.2.0" + ]; + }) + sources."estraverse-4.3.0" + sources."esutils-2.0.3" + sources."events-3.2.0" + sources."execa-4.1.0" + sources."fast-deep-equal-3.1.3" + sources."fast-json-stable-stringify-2.1.0" + sources."fast-levenshtein-2.0.6" + sources."file-entry-cache-5.0.1" + sources."fill-range-7.0.1" + (sources."find-cache-dir-2.1.0" // { + dependencies = [ + sources."find-up-3.0.0" + sources."locate-path-3.0.0" + sources."p-limit-2.3.0" + sources."p-locate-3.0.0" + sources."p-try-2.2.0" + sources."pkg-dir-3.0.0" + ]; + }) + sources."find-up-2.1.0" + sources."flat-cache-2.0.1" + sources."flatted-2.0.2" + sources."fs.realpath-1.0.0" + sources."fsevents-2.1.3" + sources."function-bind-1.1.1" + sources."functional-red-black-tree-1.0.1" + sources."gensync-1.0.0-beta.2" + sources."get-intrinsic-1.0.1" + sources."get-stream-5.2.0" + sources."glob-7.1.6" + sources."glob-parent-5.1.1" + sources."glob-to-regexp-0.4.1" + sources."globals-11.12.0" + sources."graceful-fs-4.2.4" + sources."has-1.0.3" + sources."has-flag-3.0.0" + sources."has-symbols-1.0.1" + sources."he-1.2.0" + sources."hosted-git-info-2.8.9" + sources."html-minifier-terser-5.1.1" + sources."html-webpack-plugin-4.5.0" + (sources."htmlparser2-3.10.1" // { + dependencies = [ + sources."entities-1.1.2" + ]; + }) + sources."human-signals-1.1.1" + sources."icss-utils-5.1.0" + sources."ignore-4.0.6" + sources."import-fresh-3.2.2" + (sources."import-local-3.0.2" // { + dependencies = [ + sources."find-up-4.1.0" + sources."locate-path-5.0.0" + sources."p-limit-2.3.0" + sources."p-locate-4.1.0" + sources."p-try-2.2.0" + sources."path-exists-4.0.0" + sources."pkg-dir-4.2.0" + ]; + }) + sources."imurmurhash-0.1.4" + sources."indexes-of-1.0.1" + sources."inflight-1.0.6" + sources."inherits-2.0.4" + sources."interpret-2.2.0" + sources."is-arrayish-0.2.1" + sources."is-binary-path-2.1.0" + sources."is-callable-1.2.2" + sources."is-core-module-2.1.0" + sources."is-date-object-1.0.2" + sources."is-extglob-2.1.1" + sources."is-fullwidth-code-point-2.0.0" + sources."is-glob-4.0.1" + sources."is-negative-zero-2.0.0" + sources."is-number-7.0.0" + sources."is-regex-1.1.1" + sources."is-stream-2.0.0" + sources."is-string-1.0.5" + sources."is-symbol-1.0.3" + sources."isarray-1.0.0" + sources."isexe-2.0.0" + (sources."jest-worker-26.6.2" // { + dependencies = [ + sources."has-flag-4.0.0" + sources."supports-color-7.2.0" + ]; + }) + sources."jquery-3.5.1" + sources."jquery-migrate-3.3.2" + sources."js-tokens-4.0.0" + sources."js-yaml-3.14.0" + sources."jsdoctypeparser-9.0.0" + sources."jsesc-2.5.2" + sources."json-parse-better-errors-1.0.2" + sources."json-parse-even-better-errors-2.3.1" + sources."json-schema-traverse-0.4.1" + sources."json-stable-stringify-without-jsonify-1.0.1" + sources."json5-2.1.3" + sources."klona-2.0.4" + sources."leven-3.1.0" + sources."levn-0.4.1" + sources."lines-and-columns-1.1.6" + (sources."load-json-file-2.0.0" // { + dependencies = [ + sources."parse-json-2.2.0" + sources."pify-2.3.0" + ]; + }) + sources."loader-runner-4.1.0" + (sources."loader-utils-1.4.0" // { + dependencies = [ + sources."json5-1.0.1" + ]; + }) + sources."locate-path-2.0.0" + sources."lodash-4.17.21" + sources."lower-case-2.0.1" + sources."make-dir-2.1.0" + sources."merge-stream-2.0.0" + sources."mime-db-1.44.0" + sources."mime-types-2.1.27" + sources."mimic-fn-2.1.0" + (sources."mini-css-extract-plugin-1.3.1" // { + dependencies = [ + sources."loader-utils-2.0.0" + sources."schema-utils-3.0.0" + ]; + }) + sources."minimatch-3.0.4" + sources."minimist-1.2.5" + sources."mkdirp-0.5.5" + sources."ms-2.1.2" + sources."nanoid-3.1.23" + sources."natural-compare-1.4.0" + sources."neo-async-2.6.2" + sources."no-case-3.0.3" + sources."node-releases-1.1.67" + sources."normalize-package-data-2.5.0" + sources."normalize-path-3.0.0" + sources."normalize-range-0.1.2" + sources."npm-run-path-4.0.1" + sources."nth-check-1.0.2" + sources."num2fraction-1.2.2" + sources."object-inspect-1.8.0" + sources."object-keys-1.1.1" + sources."object.assign-4.1.2" + (sources."object.getownpropertydescriptors-2.1.0" // { + dependencies = [ + sources."es-abstract-1.17.7" + ]; + }) + (sources."object.values-1.1.1" // { + dependencies = [ + sources."es-abstract-1.17.7" + ]; + }) + sources."once-1.4.0" + sources."onetime-5.1.2" + sources."optionator-0.9.1" + sources."p-limit-1.3.0" + sources."p-locate-2.0.0" + sources."p-try-1.0.0" + sources."param-case-3.0.3" + sources."parent-module-1.0.1" + sources."parse-json-5.1.0" + sources."pascal-case-3.1.1" + sources."path-exists-3.0.0" + sources."path-is-absolute-1.0.1" + sources."path-key-3.1.1" + sources."path-parse-1.0.6" + sources."path-type-4.0.0" + sources."picomatch-2.2.2" + sources."pify-4.0.1" + sources."pkg-dir-2.0.0" + sources."popper.js-1.16.1" + (sources."postcss-8.2.15" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + (sources."postcss-loader-4.1.0" // { + dependencies = [ + sources."loader-utils-2.0.0" + sources."schema-utils-3.0.0" + sources."semver-7.3.2" + ]; + }) + sources."postcss-modules-extract-imports-3.0.0" + sources."postcss-modules-local-by-default-4.0.0" + sources."postcss-modules-scope-3.0.0" + sources."postcss-modules-values-4.0.0" + sources."postcss-selector-parser-6.0.4" + sources."postcss-value-parser-4.1.0" + sources."prelude-ls-1.2.1" + sources."pretty-error-2.1.2" + sources."progress-2.0.3" + sources."pump-3.0.0" + sources."punycode-2.1.1" + sources."randombytes-2.1.0" + (sources."read-pkg-2.0.0" // { + dependencies = [ + sources."path-type-2.0.0" + sources."pify-2.3.0" + ]; + }) + sources."read-pkg-up-2.0.0" + sources."readable-stream-3.6.0" + sources."readdirp-3.5.0" + sources."rechoir-0.7.0" + sources."reduce-flatten-2.0.0" + sources."regenerate-1.4.2" + sources."regenerate-unicode-properties-8.2.0" + sources."regenerator-runtime-0.13.7" + sources."regenerator-transform-0.14.5" + sources."regexpp-3.1.0" + sources."regexpu-core-4.7.1" + sources."regextras-0.7.1" + sources."regjsgen-0.5.2" + (sources."regjsparser-0.6.4" // { + dependencies = [ + sources."jsesc-0.5.0" + ]; + }) + sources."relateurl-0.2.7" + (sources."renderkid-2.0.4" // { + dependencies = [ + sources."ansi-regex-2.1.1" + sources."strip-ansi-3.0.1" + ]; + }) + sources."resolve-1.19.0" + (sources."resolve-cwd-3.0.0" // { + dependencies = [ + sources."resolve-from-5.0.0" + ]; + }) + sources."resolve-from-4.0.0" + sources."rimraf-2.6.3" + sources."safe-buffer-5.1.2" + sources."sass-1.29.0" + (sources."sass-loader-10.1.0" // { + dependencies = [ + sources."loader-utils-2.0.0" + sources."schema-utils-3.0.0" + sources."semver-7.3.2" + ]; + }) + sources."schema-utils-2.7.1" + sources."semver-5.7.1" + sources."serialize-javascript-5.0.1" + sources."shebang-command-2.0.0" + sources."shebang-regex-3.0.0" + sources."signal-exit-3.0.3" + sources."slice-ansi-2.1.0" + sources."source-list-map-2.0.1" + sources."source-map-0.5.7" + (sources."source-map-support-0.5.19" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + sources."spdx-correct-3.1.1" + sources."spdx-exceptions-2.3.0" + sources."spdx-expression-parse-3.0.1" + sources."spdx-license-ids-3.0.6" + sources."sprintf-js-1.0.3" + (sources."string-width-3.1.0" // { + dependencies = [ + sources."ansi-regex-4.1.0" + sources."strip-ansi-5.2.0" + ]; + }) + sources."string.prototype.trimend-1.0.3" + sources."string.prototype.trimstart-1.0.3" + (sources."string_decoder-1.3.0" // { + dependencies = [ + sources."safe-buffer-5.2.1" + ]; + }) + sources."strip-ansi-6.0.0" + sources."strip-bom-3.0.0" + sources."strip-final-newline-2.0.0" + sources."strip-json-comments-3.1.1" + sources."supports-color-5.5.0" + sources."table-5.4.6" + sources."table-layout-1.0.1" + sources."tapable-1.1.3" + (sources."terser-4.8.0" // { + dependencies = [ + sources."commander-2.20.3" + sources."source-map-0.6.1" + ]; + }) + (sources."terser-webpack-plugin-5.0.3" // { + dependencies = [ + sources."commander-2.20.3" + sources."p-limit-3.0.2" + sources."p-try-2.2.0" + sources."schema-utils-3.0.0" + sources."source-map-0.6.1" + (sources."terser-5.5.0" // { + dependencies = [ + sources."source-map-0.7.3" + ]; + }) + ]; + }) + sources."text-table-0.2.0" + sources."to-fast-properties-2.0.0" + sources."to-regex-range-5.0.1" + (sources."tsconfig-paths-3.9.0" // { + dependencies = [ + sources."json5-1.0.1" + ]; + }) + sources."tslib-1.14.1" + sources."type-check-0.4.0" + sources."type-fest-0.8.1" + sources."typical-5.2.0" + sources."unicode-canonical-property-names-ecmascript-1.0.4" + sources."unicode-match-property-ecmascript-1.0.4" + sources."unicode-match-property-value-ecmascript-1.2.0" + sources."unicode-property-aliases-ecmascript-1.1.0" + sources."uniq-1.0.1" + sources."uri-js-4.4.0" + sources."util-deprecate-1.0.2" + sources."util.promisify-1.0.0" + sources."utila-0.4.0" + sources."v8-compile-cache-2.2.0" + sources."validate-npm-package-license-3.0.4" + sources."watchpack-2.0.1" + (sources."webpack-5.6.0" // { + dependencies = [ + sources."acorn-8.0.4" + sources."eslint-scope-5.1.1" + sources."find-up-4.1.0" + sources."locate-path-5.0.0" + sources."p-limit-2.3.0" + sources."p-locate-4.1.0" + sources."p-try-2.2.0" + sources."path-exists-4.0.0" + sources."pkg-dir-4.2.0" + sources."schema-utils-3.0.0" + sources."source-map-0.6.1" + sources."tapable-2.1.1" + sources."webpack-sources-2.2.0" + ]; + }) + (sources."webpack-cli-4.2.0" // { + dependencies = [ + sources."commander-6.2.0" + ]; + }) + sources."webpack-merge-4.2.2" + (sources."webpack-sources-1.4.3" // { + dependencies = [ + sources."source-map-0.6.1" + ]; + }) + sources."which-2.0.2" + sources."word-wrap-1.2.3" + sources."wordwrapjs-4.0.0" + sources."wrappy-1.0.2" + sources."write-1.0.3" + sources."yaml-1.10.0" + ]; + buildInputs = globalBuildInputs; + meta = { + homepage = "https://github.com/azlux/botamusique#readme"; + 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/pkgs/tools/audio/botamusique/src.json b/pkgs/tools/audio/botamusique/src.json new file mode 100644 index 00000000000..d1337f5ae68 --- /dev/null +++ b/pkgs/tools/audio/botamusique/src.json @@ -0,0 +1,10 @@ +{ + "url": "https://github.com/azlux/botamusique", + "rev": "ba02cdebf2e175dc371995361eafcb88ad2c1b52", + "date": "2021-06-01T23:39:44+02:00", + "path": "/nix/store/dp5vnj7zqv1sp1ab5xycvvqdpia9xb71-botamusique", + "sha256": "01d51y6h38hs4ynjgz050ryy14sp5y2c3n7f80mcv0a4ls8413qp", + "fetchSubmodules": false, + "deepClone": false, + "leaveDotGit": false +} diff --git a/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch b/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch new file mode 100644 index 00000000000..3642a034fc8 --- /dev/null +++ b/pkgs/tools/audio/botamusique/unconditional-relative-state-paths.patch @@ -0,0 +1,22 @@ +diff --git a/util.py b/util.py +index bfec1ed..0546772 100644 +--- a/util.py ++++ b/util.py +@@ -22,16 +22,7 @@ log = logging.getLogger("bot") + + + def solve_filepath(path): +- if not path: +- return '' +- +- if path[0] == '/': +- return path +- elif os.path.exists(path): +- return path +- else: +- mydir = os.path.dirname(os.path.realpath(__file__)) +- return mydir + '/' + path ++ return path + + + def get_recursive_file_list_sorted(path): diff --git a/pkgs/tools/audio/bpm-tools/default.nix b/pkgs/tools/audio/bpm-tools/default.nix index 6207cbeb9fe..6e7236b1008 100644 --- a/pkgs/tools/audio/bpm-tools/default.nix +++ b/pkgs/tools/audio/bpm-tools/default.nix @@ -1,16 +1,16 @@ -{ - stdenv, - fetchurl, - gnuplot, - sox, - flac, - id3v2, - vorbis-tools, - makeWrapper +{ stdenv +, lib +, fetchurl +, gnuplot +, sox +, flac +, id3v2 +, vorbis-tools +, makeWrapper }: let - path = stdenv.lib.makeBinPath [ gnuplot sox flac id3v2 vorbis-tools ]; + path = lib.makeBinPath [ gnuplot sox flac id3v2 vorbis-tools ]; in stdenv.mkDerivation rec { pname = "bpm-tools"; @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/bpm-graph --prefix PATH : "${path}" ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "http://www.pogo.org.uk/~mark/bpm-tools/"; description = "Automatically calculate BPM (tempo) of music files"; license = licenses.gpl2; diff --git a/pkgs/tools/audio/darkice/default.nix b/pkgs/tools/audio/darkice/default.nix index 89b93b02865..1ff66e83e5a 100644 --- a/pkgs/tools/audio/darkice/default.nix +++ b/pkgs/tools/audio/darkice/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, pkgconfig -, libjack2, alsaLib, libpulseaudio +{ lib, stdenv, fetchurl, pkg-config +, libjack2, alsa-lib, libpulseaudio , faac, lame, libogg, libopus, libvorbis, libsamplerate }: @@ -12,9 +12,9 @@ stdenv.mkDerivation rec { sha256 = "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ - libopus libvorbis libogg libpulseaudio alsaLib libsamplerate libjack2 lame + libopus libvorbis libogg libpulseaudio alsa-lib libsamplerate libjack2 lame ]; NIX_CFLAGS_COMPILE = "-fpermissive"; @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://darkice.org/"; description = "Live audio streamer"; - license = stdenv.lib.licenses.gpl3; - maintainers = with stdenv.lib.maintainers; [ ikervagyok fpletz ]; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ ikervagyok fpletz ]; }; } diff --git a/pkgs/tools/audio/dir2opus/default.nix b/pkgs/tools/audio/dir2opus/default.nix index 87200654703..d23c334ad62 100644 --- a/pkgs/tools/audio/dir2opus/default.nix +++ b/pkgs/tools/audio/dir2opus/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python, mutagen, wrapPython, opusTools, mpg123 }: +{ lib, stdenv, fetchurl, python, mutagen, wrapPython, opusTools, mpg123 }: let version = "0.12.2"; in stdenv.mkDerivation rec { @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { postFixup = "wrapPythonPrograms"; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/ehmry/dir2opus"; maintainers = [ maintainers.ehmry ]; license = licenses.gpl2; diff --git a/pkgs/tools/audio/essentia-extractor/default.nix b/pkgs/tools/audio/essentia-extractor/default.nix index 0d2bb17a75d..63ebbb0ffc0 100644 --- a/pkgs/tools/audio/essentia-extractor/default.nix +++ b/pkgs/tools/audio/essentia-extractor/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: let arch_table = { "x86_64-linux" = "linux-x86_64"; @@ -14,13 +14,13 @@ let arch = arch_table.${stdenv.system}; sha = sha_table.${stdenv.system}; -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "essentia-extractor"; version = "2.1_beta2"; src = fetchurl { - url = - "ftp://ftp.acousticbrainz.org/pub/acousticbrainz/essentia-extractor-v${version}-${arch}.tar.gz"; + url = "ftp://ftp.acousticbrainz.org/pub/acousticbrainz/essentia-extractor-v${version}-${arch}.tar.gz"; sha256 = sha; }; @@ -31,7 +31,7 @@ in stdenv.mkDerivation rec { cp streaming_extractor_music $out/bin ''; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://acousticbrainz.org/download"; description = "AcousticBrainz audio feature extractor"; license = licenses.agpl3Plus; diff --git a/pkgs/tools/audio/ezstream/default.nix b/pkgs/tools/audio/ezstream/default.nix index 02a6e9d37f3..ee85f1aabd3 100644 --- a/pkgs/tools/audio/ezstream/default.nix +++ b/pkgs/tools/audio/ezstream/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libiconv, libshout, taglib, libxml2, pkgconfig }: +{ lib, stdenv, fetchurl, libiconv, libshout, taglib, libxml2, pkg-config }: stdenv.mkDerivation rec { pname = "ezstream"; @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { }; buildInputs = [ libiconv libshout taglib libxml2 ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; doCheck = true; - meta = with stdenv.lib; { + meta = with lib; { description = "A command line source client for Icecast media streaming servers"; longDescription = '' Ezstream is a command line source client for Icecast media @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { from standard input without reencoding and thus requires only very little CPU resources. ''; - homepage = "http://icecast.org/ezstream/"; + homepage = "https://icecast.org/ezstream/"; license = licenses.gpl2; maintainers = [ maintainers.barrucadu ]; platforms = platforms.all; diff --git a/pkgs/tools/audio/glyr/default.nix b/pkgs/tools/audio/glyr/default.nix index 41490381487..60585c3b354 100644 --- a/pkgs/tools/audio/glyr/default.nix +++ b/pkgs/tools/audio/glyr/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, cmake -, curl, glib, sqlite, pkgconfig }: +{ lib, stdenv, fetchFromGitHub, cmake +, curl, glib, sqlite, pkg-config }: stdenv.mkDerivation rec { version = "1.0.10"; @@ -12,10 +12,10 @@ stdenv.mkDerivation rec { sha256 = "1miwbqzkhg0v3zysrwh60pj9sv6ci4lzq2vq2hhc6pc6hdyh8xyr"; }; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ sqlite glib curl ]; - meta = with stdenv.lib; { + meta = with lib; { license = licenses.lgpl3; description = "A music related metadata searchengine"; homepage = "https://github.com/sahib/glyr"; diff --git a/pkgs/tools/audio/google-music-scripts/default.nix b/pkgs/tools/audio/google-music-scripts/default.nix deleted file mode 100644 index 272cf902539..00000000000 --- a/pkgs/tools/audio/google-music-scripts/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib, python3 }: - -let - py = python3.override { - packageOverrides = self: super: { - loguru = super.loguru.overridePythonAttrs (oldAttrs: rec { - version = "0.4.0"; - src = oldAttrs.src.override { - inherit version; - sha256 = "0j47cg3gi8in4z6z4w3by6x02mpkkfl78gr85xjn5rg0nxiz7pfm"; - }; - }); - }; - }; - -in - -with py.pkgs; - -buildPythonApplication rec { - pname = "google-music-scripts"; - version = "4.5.0"; - - src = fetchPypi { - inherit pname version; - sha256 = "0apwgj86whrc077dfymvyb4qwj19bawyrx49g4kg364895v0rbbq"; - }; - - # pendulum pinning was to prevent PEP517 from trying to build from source - postPatch = '' - substituteInPlace setup.py \ - --replace "tomlkit>=0.5,<0.6" "tomlkit" \ - --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum" - ''; - - propagatedBuildInputs = [ - appdirs - audio-metadata - google-music - google-music-proto - google-music-utils - loguru - pendulum - natsort - tomlkit - ]; - - # No tests - checkPhase = '' - $out/bin/gms --help >/dev/null - ''; - - meta = with lib; { - homepage = "https://github.com/thebigmunch/google-music-scripts"; - description = "A CLI utility for interacting with Google Music"; - license = licenses.mit; - maintainers = with maintainers; [ jakewaksbaum ]; - }; -} diff --git a/pkgs/tools/audio/gvolicon/default.nix b/pkgs/tools/audio/gvolicon/default.nix index 5190699be08..9ef8eb43772 100644 --- a/pkgs/tools/audio/gvolicon/default.nix +++ b/pkgs/tools/audio/gvolicon/default.nix @@ -1,4 +1,4 @@ -{ stdenv, makeWrapper, alsaLib, pkgconfig, fetchgit, gtk3, gnome3, gdk-pixbuf, librsvg, wrapGAppsHook }: +{ lib, stdenv, makeWrapper, alsa-lib, pkg-config, fetchgit, gtk3, gnome, gdk-pixbuf, librsvg, wrapGAppsHook }: stdenv.mkDerivation { name = "gvolicon-2014-04-28"; @@ -8,9 +8,9 @@ stdenv.mkDerivation { sha256 = "1sr9wyy7w898vq63yd003yp3k66hd4vm8b0qsm9zvmwmpiz4wvln"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ - makeWrapper alsaLib gtk3 gdk-pixbuf gnome3.adwaita-icon-theme + makeWrapper alsa-lib gtk3 gdk-pixbuf gnome.adwaita-icon-theme librsvg wrapGAppsHook ]; @@ -21,8 +21,8 @@ stdenv.mkDerivation { meta = { description = "A simple and lightweight volume icon that sits in your system tray"; homepage = "https://github.com/Unia/gvolicon"; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.gpl3Plus; - maintainers = [ stdenv.lib.maintainers.bennofs ]; + platforms = lib.platforms.linux; + license = lib.licenses.gpl3Plus; + maintainers = [ lib.maintainers.bennofs ]; }; } diff --git a/pkgs/tools/audio/isrcsubmit/default.nix b/pkgs/tools/audio/isrcsubmit/default.nix new file mode 100644 index 00000000000..457ca2b0d1c --- /dev/null +++ b/pkgs/tools/audio/isrcsubmit/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "isrcsubmit"; + version = "2.1.0"; + + src = fetchFromGitHub { + owner = "JonnyJD"; + repo = "musicbrainz-isrcsubmit"; + rev = "v${version}"; + sha256 = "1lqs4jl2xv1zxmf0xsihk9rxzx2awq87g51vd7y3cq1vhj1icxqa"; + }; + + propagatedBuildInputs = with python3Packages; [ musicbrainzngs discid ]; + + meta = with lib; { + # drutil is required on Darwin, which does not seem to be available in nixpkgs + broken = stdenv.isDarwin; + description = "Script to submit ISRCs from disc to MusicBrainz"; + license = licenses.gpl3Plus; + homepage = "http://jonnyjd.github.io/musicbrainz-isrcsubmit/"; + maintainers = with maintainers; [ eduardosm ]; + }; +} diff --git a/pkgs/tools/audio/kaldi/default.nix b/pkgs/tools/audio/kaldi/default.nix new file mode 100644 index 00000000000..2d61a984a00 --- /dev/null +++ b/pkgs/tools/audio/kaldi/default.nix @@ -0,0 +1,88 @@ +{ lib, stdenv +, openblas +, blas +, lapack +, openfst +, icu +, cmake +, pkg-config +, fetchFromGitHub +, git +, python3 +}: + +assert blas.implementation == "openblas" && lapack.implementation == "openblas"; +let + # rev from https://github.com/kaldi-asr/kaldi/blob/master/cmake/third_party/openfst.cmake + openfst = fetchFromGitHub { + owner = "kkm000"; + repo = "openfst"; + rev = "0bca6e76d24647427356dc242b0adbf3b5f1a8d9"; + sha256 = "1802rr14a03zl1wa5a0x1fa412kcvbgprgkadfj5s6s3agnn11rx"; + }; +in +stdenv.mkDerivation { + pname = "kaldi"; + version = "2020-12-26"; + + src = fetchFromGitHub { + owner = "kaldi-asr"; + repo = "kaldi"; + rev = "813b73185a18725e4f6021981d17221d6ee23a19"; + sha256 = "sha256-lTqXTG5ZTPmhCgt+BVzOwjKEIj+bLGUa+IxJq+XtHUg="; + }; + + cmakeFlags = [ + "-DKALDI_BUILD_TEST=off" + "-DBUILD_SHARED_LIBS=on" + ]; + + preConfigure = '' + mkdir bin + cat > bin/git <<'EOF' + #!${stdenv.shell} + if [[ "$1" == "--version" ]]; then + # cmake checks this + ${git}/bin/git --version + elif [[ "$1" == "clone" ]]; then + # mock this call: + + # https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/third_party/openfst.cmake#L5 + cp -r ${openfst} ''${@: -1} + chmod -R +w ''${@: -1} + elif [[ "$1" == "rev-list" ]]; then + # fix up this call: + # https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/VersionHelper.cmake#L8 + echo 0 + fi + true + EOF + chmod +x bin/git + export PATH=$(pwd)/bin:$PATH + ''; + + buildInputs = [ + openblas + openfst + icu + ]; + + nativeBuildInputs = [ + cmake + pkg-config + python3 + ]; + + postInstall = '' + mkdir -p $out/share/kaldi + cp -r ../egs $out/share/kaldi + ''; + + meta = with lib; { + description = "Speech Recognition Toolkit"; + homepage = "https://kaldi-asr.org"; + license = licenses.mit; + maintainers = with maintainers; [ mic92 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/audio/liquidsoap/full.nix b/pkgs/tools/audio/liquidsoap/full.nix index 2aa01dfe073..1c52e6796b7 100644 --- a/pkgs/tools/audio/liquidsoap/full.nix +++ b/pkgs/tools/audio/liquidsoap/full.nix @@ -1,14 +1,19 @@ -{ stdenv, makeWrapper, fetchurl, which, pkgconfig +{ lib, stdenv, makeWrapper, fetchurl, which, pkg-config , ocamlPackages -, libao, portaudio, alsaLib, libpulseaudio, libjack2 +, libao, portaudio, alsa-lib, libpulseaudio, libjack2 , libsamplerate, libmad, taglib, lame, libogg -, libvorbis, speex, libtheora, libopus, fdk_aac +, libvorbis, speex, libtheora, libopus, zlib , faad2, flac, ladspaH, ffmpeg, frei0r, dssi }: let pname = "liquidsoap"; - version = "1.3.4"; + version = "1.4.2"; + + ocaml-ffmpeg = fetchurl { + url = "https://github.com/savonet/ocaml-ffmpeg/releases/download/v0.4.2/ocaml-ffmpeg-0.4.2.tar.gz"; + sha256 = "1lx5s1avds9fsh77828ifn71r2g89rxakhs8pp995a675phm9viw"; + }; packageFilters = map (p: "-e '/ocaml-${p}/d'" ) [ "gstreamer" "shine" "aacplus" "schroedinger" @@ -19,10 +24,17 @@ stdenv.mkDerivation { name = "${pname}-full-${version}"; src = fetchurl { - url = "https://github.com/savonet/${pname}/releases/download/${version}/${pname}-${version}-full.tar.bz2"; - sha256 = "11l1h42sljfxcdhddc8klya4bk99j7a1pndwnzvscb04pvmfmlk0"; + url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}-full.tar.gz"; + sha256 = "0wkwnzj1a0vizv7sr1blwk5gzm2qi0n02ndijnq1i50cwrgxs1a4"; }; + # Use ocaml-srt and ocaml-fdkaac from nixpkgs + # Use ocaml-ffmpeg at 0.4.2 for compatibility with ffmpeg 4.3 + prePatch = '' + rm -rf ocaml-srt*/ ocaml-fdkaac*/ ocaml-ffmpeg*/ + tar xzf ${ocaml-ffmpeg} + ''; + preConfigure = /* we prefer system-wide libs */ '' sed -i "s|gsed|sed|" Makefile make bootstrap @@ -37,20 +49,22 @@ stdenv.mkDerivation { configureFlags = [ "--localstatedir=/var" ]; - nativeBuildInputs = [ makeWrapper pkgconfig ]; + nativeBuildInputs = [ makeWrapper pkg-config ]; buildInputs = [ which ocamlPackages.ocaml ocamlPackages.findlib - libao portaudio alsaLib libpulseaudio libjack2 + libao portaudio alsa-lib libpulseaudio libjack2 libsamplerate libmad taglib lame libogg - libvorbis speex libtheora libopus fdk_aac + libvorbis speex libtheora libopus zlib faad2 flac ladspaH ffmpeg frei0r dssi ocamlPackages.xmlm ocamlPackages.ocaml_pcre ocamlPackages.camomile + ocamlPackages.fdkaac + ocamlPackages.srt ocamlPackages.sedlex_2 ocamlPackages.menhir ocamlPackages.menhirLib ]; hardeningDisable = [ "format" "fortify" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Swiss-army knife for multimedia streaming"; homepage = "https://www.liquidsoap.info/"; maintainers = with maintainers; [ ehmry ]; diff --git a/pkgs/tools/audio/midicsv/default.nix b/pkgs/tools/audio/midicsv/default.nix index e5f3f6124b9..cf55e0dd81d 100644 --- a/pkgs/tools/audio/midicsv/default.nix +++ b/pkgs/tools/audio/midicsv/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl }: +{ lib, stdenv, fetchurl }: stdenv.mkDerivation rec { name = "midicsv-1.1"; @@ -9,14 +9,16 @@ stdenv.mkDerivation rec { }; postPatch = '' - substituteInPlace Makefile --replace /usr/local $out + substituteInPlace Makefile \ + --replace /usr/local $out \ + --replace gcc "${stdenv.cc.targetPrefix}cc" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Losslessly translate MIDI to CSV and back"; homepage = "http://www.fourmilab.ch/webtools/midicsv/"; license = licenses.publicDomain; maintainers = with maintainers; [ orivej ]; - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/tools/audio/mididings/default.nix b/pkgs/tools/audio/mididings/default.nix index addb95b9f1b..f220fed208f 100644 --- a/pkgs/tools/audio/mididings/default.nix +++ b/pkgs/tools/audio/mididings/default.nix @@ -1,4 +1,4 @@ -{ stdenv, pythonPackages, fetchFromGitHub, pkg-config, glib, alsaLib, libjack2 }: +{ lib, pythonPackages, fetchFromGitHub, pkg-config, glib, alsa-lib, libjack2 }: pythonPackages.buildPythonApplication { version = "2015-11-17"; @@ -12,7 +12,7 @@ pythonPackages.buildPythonApplication { }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ glib alsaLib libjack2 pythonPackages.boost ]; + buildInputs = [ glib alsa-lib libjack2 pythonPackages.boost ]; propagatedBuildInputs = with pythonPackages; [ decorator ] # for livedings ++ [ tkinter pyliblo ] @@ -23,16 +23,16 @@ pythonPackages.buildPythonApplication { # so mididings knows where to look for config files ++ [ pyxdg ]; - preBuild = with stdenv.lib.versions; '' + preBuild = with lib.versions; '' substituteInPlace setup.py \ --replace boost_python "boost_python${major pythonPackages.python.version}${minor pythonPackages.python.version}" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "A MIDI router and processor based on Python, supporting ALSA and JACK MIDI"; homepage = "http://das.nasophon.de/mididings"; license = licenses.gpl2; - maintainers = [ maintainers.gnidorah ]; + maintainers = [ ]; platforms = platforms.linux; }; } diff --git a/pkgs/tools/audio/mp3cat/default.nix b/pkgs/tools/audio/mp3cat/default.nix index e7a1d004a01..dbcc458164d 100644 --- a/pkgs/tools/audio/mp3cat/default.nix +++ b/pkgs/tools/audio/mp3cat/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub }: +{ lib, stdenv, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "mp3cat"; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { "install_bin" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A command line program which concatenates MP3 files"; longDescription = '' A command line program which concatenates MP3 files, mp3cat diff --git a/pkgs/tools/audio/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix index 79387d9ad1f..b90ab80befd 100644 --- a/pkgs/tools/audio/mpd-mpris/default.nix +++ b/pkgs/tools/audio/mpd-mpris/default.nix @@ -1,17 +1,17 @@ -{ stdenv, buildGoModule, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub }: buildGoModule rec { pname = "mpd-mpris"; - version = "0.2.4"; + version = "0.3.0"; src = fetchFromGitHub { owner = "natsukagami"; repo = pname; rev = "v${version}"; - sha256 = "1cr5j2z2ynj1hwkjzi5amcg59vmgazsci41v6vpsj119g7psjmzm"; + sha256 = "1kzjbv04b2garb99l64wdq8yksnm4pbhkgyzh89j5j3gb9k55zal"; }; - vendorSha256 = "108yjymp64iqx1b2wqjbkmbm2w199wq46g7hrmqhcziv6f4aqljp"; + vendorSha256 = "1ggrqwd3h602rav1dc3amsf4wxsq8mdq4ijkdsg759sqhpzl6rqs"; doCheck = false; @@ -24,11 +24,11 @@ buildGoModule rec { cp mpd-mpris.service $out/lib/systemd/user ''; - meta = with stdenv.lib; { + meta = with lib; { description = "An implementation of the MPRIS protocol for MPD"; homepage = "https://github.com/natsukagami/mpd-mpris"; license = licenses.mit; maintainers = with maintainers; [ doronbehar ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/tools/audio/mpdas/default.nix b/pkgs/tools/audio/mpdas/default.nix index 507e62b0dae..8b12b6fc16d 100644 --- a/pkgs/tools/audio/mpdas/default.nix +++ b/pkgs/tools/audio/mpdas/default.nix @@ -1,4 +1,10 @@ -{ stdenv, fetchFromGitHub, pkgconfig, mpd_clientlib, curl }: +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, libmpdclient +, curl +}: stdenv.mkDerivation rec { pname = "mpdas"; @@ -11,13 +17,13 @@ stdenv.mkDerivation rec { sha256 = "0fcqc4w6iwbi1n3cllcgj0k61zffhqkbr8668myxap21m35x8y1r"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; - buildInputs = [ mpd_clientlib curl ]; + buildInputs = [ libmpdclient curl ]; makeFlags = [ "CONFIG=/etc" "DESTDIR=" "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Music Player Daemon AudioScrobbler"; homepage = "https://50hz.ws/mpdas/"; license = licenses.bsd3; diff --git a/pkgs/tools/audio/mpdcron/default.nix b/pkgs/tools/audio/mpdcron/default.nix index c083c60a962..afb1c9a3dcd 100644 --- a/pkgs/tools/audio/mpdcron/default.nix +++ b/pkgs/tools/audio/mpdcron/default.nix @@ -1,5 +1,19 @@ -{ stdenv, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, glib, libdaemon -, mpd_clientlib, curl, sqlite, bundlerEnv, libnotify, pandoc }: +{ lib +, stdenv +, fetchFromGitHub +, autoconf +, automake +, libtool +, pkg-config +, glib +, libdaemon +, libmpdclient +, curl +, sqlite +, bundlerEnv +, libnotify +, pandoc +}: let gemEnv = bundlerEnv { @@ -7,8 +21,8 @@ let gemdir = ./.; }; in stdenv.mkDerivation { - version = "20161228"; pname = "mpdcron"; + version = "20161228"; src = fetchFromGitHub { owner = "alip"; @@ -17,21 +31,33 @@ in stdenv.mkDerivation { sha256 = "0vdksf6lcgmizqr5mqp0bbci259k0dj7gpmhx32md41jlmw5skaw"; }; - meta = with stdenv.lib; { - description = "A cron like daemon for mpd"; - homepage = "http://alip.github.io/mpdcron/"; - license = licenses.gpl2; - platforms = platforms.unix; - maintainers = with maintainers; [ lovek323 manveru ]; - }; - - buildInputs = - [ autoconf automake libtool pkgconfig glib libdaemon pandoc - mpd_clientlib curl sqlite gemEnv.wrappedRuby libnotify ]; + buildInputs = [ + autoconf + automake + libtool + pkg-config + glib + libdaemon + pandoc + libmpdclient + curl + sqlite + gemEnv.wrappedRuby + libnotify + ]; preConfigure = '' ./autogen.sh ''; configureFlags = [ "--enable-gmodule" "--with-standard-modules=all" ]; + + meta = with lib; { + description = "A cron like daemon for mpd"; + homepage = "http://alip.github.io/mpdcron/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ lovek323 manveru ]; + }; } +# TODO: autoreconfHook this diff --git a/pkgs/tools/audio/mpdcron/gemset.nix b/pkgs/tools/audio/mpdcron/gemset.nix index 025eb96b065..836878c9d88 100644 --- a/pkgs/tools/audio/mpdcron/gemset.nix +++ b/pkgs/tools/audio/mpdcron/gemset.nix @@ -20,4 +20,4 @@ }; version = "1.10.3"; }; -} \ No newline at end of file +} diff --git a/pkgs/tools/audio/mpdris2/default.nix b/pkgs/tools/audio/mpdris2/default.nix index 029dcd127f1..4cd3921fb55 100644 --- a/pkgs/tools/audio/mpdris2/default.nix +++ b/pkgs/tools/audio/mpdris2/default.nix @@ -1,4 +1,4 @@ -{ stdenv +{ lib , autoreconfHook , fetchFromGitHub , glib @@ -45,7 +45,7 @@ python3.pkgs.buildPythonApplication rec { pygobject3 ]; - meta = with stdenv.lib; { + meta = with lib; { description = "MPRIS 2 support for mpd"; homepage = "https://github.com/eonpatapon/mpDris2/"; license = licenses.gpl3; diff --git a/pkgs/tools/audio/mpris-scrobbler/default.nix b/pkgs/tools/audio/mpris-scrobbler/default.nix new file mode 100644 index 00000000000..07248213213 --- /dev/null +++ b/pkgs/tools/audio/mpris-scrobbler/default.nix @@ -0,0 +1,60 @@ +{ lib, stdenv +, fetchFromGitHub +, nix-update-script +, curl +, dbus +, libevent +, m4 +, meson +, ninja +, pkg-config +, scdoc +, json_c +, xdg-utils +}: + +stdenv.mkDerivation rec { + pname = "mpris-scrobbler"; + version = "0.4.0.1"; + + src = fetchFromGitHub { + owner = "mariusor"; + repo = "mpris-scrobbler"; + rev = "v${version}"; + sha256 = "0jzmgcb9a19hl8y7iwy8l3cc2vgzi0scw7r5q72kszfyxn0yk2gs"; + }; + + postPatch = '' + substituteInPlace src/signon.c \ + --replace "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open" + ''; + + nativeBuildInputs = [ + m4 + meson + ninja + pkg-config + scdoc + ]; + + buildInputs = [ + curl + dbus + json_c + libevent + ]; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Minimalistic scrobbler for libre.fm & last.fm"; + homepage = "https://github.com/mariusor/mpris-scrobbler"; + license = licenses.mit; + maintainers = with maintainers; [ emantor ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/audio/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch b/pkgs/tools/audio/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch new file mode 100644 index 00000000000..36adff53a01 --- /dev/null +++ b/pkgs/tools/audio/opl3bankeditor/0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch @@ -0,0 +1,200 @@ +From 11711398a1ec16f4eaeac8523b77165a560b69cc Mon Sep 17 00:00:00 2001 +From: OPNA2608 <christoph.neidahl@gmail.com> +Date: Sun, 13 Jun 2021 13:55:53 +0200 +Subject: [PATCH] Look for system-installed Rt libs + +--- + CMakeLists.txt | 159 +++++++++++++++++++++++++++++++------------------ + 1 file changed, 102 insertions(+), 57 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f3e53c3..027c1b1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -50,15 +50,6 @@ message("!! Optional feature summary:") + message("!! RtMidi: ${USE_RTMIDI}") + message("!! RtAudio: ${USE_RTAUDIO}") + +-if(USE_RTAUDIO) +- if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- pkg_check_modules(JACK "jack") +- message("!! -- Jack driver: ${JACK_FOUND}") +- pkg_check_modules(PULSEAUDIO "libpulse-simple") +- message("!! -- Pulseaudio driver: ${PULSEAUDIO_FOUND}") +- endif() +-endif() +- + if(ENABLE_PLOTS) + message("!! Qwt: ${QWT_LIBRARY}") + endif() +@@ -250,65 +241,119 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + endif() + + if(USE_RTMIDI) +- add_library(RtMidi STATIC "src/midi/external/rtmidi/RtMidi.cpp") +- target_include_directories(RtMidi PUBLIC "src/midi/external/rtmidi") +- if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- target_compile_definitions(RtMidi PUBLIC "__LINUX_ALSA__") +- target_link_libraries(RtMidi PUBLIC "asound") +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") +- target_compile_definitions(RtMidi PUBLIC "__WINDOWS_MM__") +- target_link_libraries(RtMidi PUBLIC "winmm") +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") +- target_compile_definitions(RtMidi PUBLIC "__MACOSX_CORE__") +- find_library(COREMIDI_LIBRARY "CoreMIDI") +- target_link_libraries(RtMidi PUBLIC "${COREMIDI_LIBRARY}") ++ if(PKG_CONFIG_FOUND) ++ pkg_check_modules(RTMIDI rtmidi) ++ if(RTMIDI_FOUND) ++ message("Using system-installed RtMidi found by pkg-config.") ++ target_link_libraries(OPL3BankEditor PUBLIC ${RTMIDI_LDFLAGS}) ++ target_include_directories(OPL3BankEditor PUBLIC ${RTMIDI_INCLUDE_DIRS}) ++ target_compile_options(OPL3BankEditor PUBLIC ${RTMIDI_CFLAGS}) ++ endif() + endif() ++ ++ if(NOT RTMIDI_FOUND) ++ find_library(RTMIDI_LIBRARY "rtmidi") ++ find_path(RTMIDI_INCLUDE_DIRS "RtMidi.h") ++ message("RtMidi library: ${RTMIDI_LIBRARY}") ++ message("RtMidi header directory: ${RTMIDI_INCLUDE_DIRS}") ++ if(NOT RTMIDI_LIBRARY-NOTFOUND AND NOT RTMIDI_INCLUDE_DIRS STREQUAL RTMIDI_INCLUDE_DIRS-NOTFOUND) ++ message("Using system-installed RtMidi.") ++ set(RTMIDI_FOUND TRUE) ++ target_link_libraries(OPL3BankEditor PUBLIC ${RTMIDI_LIBRARY}) ++ target_include_directories(OPL3BankEditor PUBLIC ${RTMIDI_INCLUDE_DIRS}) ++ endif() ++ endif() ++ ++ if(NOT RTMIDI_FOUND) ++ message("Using bundled RtMidi.") ++ add_library(RtMidi STATIC "src/midi/external/rtmidi/RtMidi.cpp") ++ target_include_directories(RtMidi PUBLIC "src/midi/external/rtmidi") ++ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ target_compile_definitions(RtMidi PUBLIC "__LINUX_ALSA__") ++ target_link_libraries(RtMidi PUBLIC "asound") ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") ++ target_compile_definitions(RtMidi PUBLIC "__WINDOWS_MM__") ++ target_link_libraries(RtMidi PUBLIC "winmm") ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") ++ target_compile_definitions(RtMidi PUBLIC "__MACOSX_CORE__") ++ find_library(COREMIDI_LIBRARY "CoreMIDI") ++ target_link_libraries(RtMidi PUBLIC "${COREMIDI_LIBRARY}") ++ endif() ++ target_link_libraries(OPL3BankEditor PRIVATE RtMidi) ++ endif() ++ + target_sources(OPL3BankEditor PRIVATE "src/midi/midi_rtmidi.cpp") + target_compile_definitions(OPL3BankEditor PRIVATE "ENABLE_MIDI") +- target_link_libraries(OPL3BankEditor PRIVATE RtMidi) + endif() + + if(USE_RTAUDIO) +- add_library(RtAudio STATIC "src/audio/external/rtaudio/RtAudio.cpp") +- target_include_directories(RtAudio PUBLIC "src/audio/external/rtaudio") +- if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- target_compile_definitions(RtAudio PUBLIC "__LINUX_ALSA__") +- target_link_libraries(RtAudio PUBLIC "asound") +- if(JACK_FOUND) +- target_compile_definitions(RtAudio PUBLIC "__UNIX_JACK__") +- target_include_directories(RtAudio PUBLIC ${JACK_INCLUDE_DIRS}) +- link_directories(${JACK_LIBRARY_DIRS}) +- target_link_libraries(RtAudio PUBLIC ${JACK_LIBRARIES}) ++ if(PKG_CONFIG_FOUND) ++ pkg_check_modules(RTAUDIO rtaudio) ++ if(RTAUDIO_FOUND) ++ message("Using system-installed RtAudio found by pkg-config.") ++ target_link_libraries(OPL3BankEditor PUBLIC ${RTAUDIO_LDFLAGS}) ++ target_include_directories(OPL3BankEditor PUBLIC ${RTAUDIO_INCLUDE_DIRS}) ++ target_compile_options(OPL3BankEditor PUBLIC ${RTAUDIO_CFLAGS}) ++ endif() ++ endif() ++ ++ if(NOT RTAUDIO_FOUND) ++ find_library(RTAUDIO_LIBRARY "rtaudio") ++ find_path(RTAUDIO_INCLUDE_DIRS "RtAudio.h") ++ message("RtAudio library: ${RTAUDIO_LIBRARY}") ++ message("RtAudio header directory: ${RTAUDIO_INCLUDE_DIRS}") ++ if(NOT RTAUDIO_LIBRARY-NOTFOUND AND NOT RTAUDIO_INCLUDE_DIRS STREQUAL RTAUDIO_INCLUDE_DIRS-NOTFOUND) ++ message("Using system-installed RtAudio.") ++ set(RTAUDIO_FOUND TRUE) ++ target_link_libraries(OPL3BankEditor PUBLIC ${RTAUDIO_LIBRARY}) ++ target_include_directories(OPL3BankEditor PUBLIC ${RTAUDIO_INCLUDE_DIRS}) + endif() +- if(PULSEAUDIO_FOUND) +- target_compile_definitions(RtAudio PUBLIC "__LINUX_PULSE__") +- target_include_directories(RtAudio PUBLIC ${PULSEAUDIO_INCLUDE_DIRS}) +- link_directories(${PULSEAUDIO_LIBRARY_DIRS}) +- target_link_libraries(RtAudio PUBLIC ${PULSEAUDIO_LIBRARIES}) ++ endif() ++ ++ if(NOT RTAUDIO_FOUND) ++ message("Using bundled RtAudio.") ++ add_library(RtAudio STATIC "src/audio/external/rtaudio/RtAudio.cpp") ++ target_include_directories(RtAudio PUBLIC "src/audio/external/rtaudio") ++ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ target_compile_definitions(RtAudio PUBLIC "__LINUX_ALSA__") ++ target_link_libraries(RtAudio PUBLIC "asound") ++ if(JACK_FOUND) ++ target_compile_definitions(RtAudio PUBLIC "__UNIX_JACK__") ++ target_include_directories(RtAudio PUBLIC ${JACK_INCLUDE_DIRS}) ++ link_directories(${JACK_LIBRARY_DIRS}) ++ target_link_libraries(RtAudio PUBLIC ${JACK_LIBRARIES}) ++ endif() ++ if(PULSEAUDIO_FOUND) ++ target_compile_definitions(RtAudio PUBLIC "__LINUX_PULSE__") ++ target_include_directories(RtAudio PUBLIC ${PULSEAUDIO_INCLUDE_DIRS}) ++ link_directories(${PULSEAUDIO_LIBRARY_DIRS}) ++ target_link_libraries(RtAudio PUBLIC ${PULSEAUDIO_LIBRARIES}) ++ endif() ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") ++ target_compile_definitions(RtAudio PUBLIC "__WINDOWS_DS__") ++ target_link_libraries(RtAudio PUBLIC "dsound" "ole32") ++ target_compile_definitions(RtAudio PUBLIC "__WINDOWS_WASAPI__") ++ target_link_libraries(RtAudio PUBLIC "ksguid") ++ target_compile_definitions(RtAudio PUBLIC "__WINDOWS_ASIO__") ++ target_include_directories(RtAudio PRIVATE ++ "src/audio/external/rtaudio/include") ++ target_sources(RtAudio PRIVATE ++ "src/audio/external/rtaudio/include/asio.cpp" ++ "src/audio/external/rtaudio/include/asiodrivers.cpp" ++ "src/audio/external/rtaudio/include/asiolist.cpp" ++ "src/audio/external/rtaudio/include/iasiothiscallresolver.cpp") ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") ++ target_compile_definitions(RtAudio PUBLIC "__MACOSX_CORE__") ++ find_library(COREAUDIO_LIBRARY "CoreAudio") ++ target_link_libraries(RtAudio PUBLIC "${COREAUDIO_LIBRARY}") ++ find_library(COREFOUNDATION_LIBRARY "CoreFoundation") ++ target_link_libraries(RtAudio PUBLIC "${COREFOUNDATION_LIBRARY}") + endif() +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") +- target_compile_definitions(RtAudio PUBLIC "__WINDOWS_DS__") +- target_link_libraries(RtAudio PUBLIC "dsound" "ole32") +- target_compile_definitions(RtAudio PUBLIC "__WINDOWS_WASAPI__") +- target_link_libraries(RtAudio PUBLIC "ksguid") +- target_compile_definitions(RtAudio PUBLIC "__WINDOWS_ASIO__") +- target_include_directories(RtAudio PRIVATE +- "src/audio/external/rtaudio/include") +- target_sources(RtAudio PRIVATE +- "src/audio/external/rtaudio/include/asio.cpp" +- "src/audio/external/rtaudio/include/asiodrivers.cpp" +- "src/audio/external/rtaudio/include/asiolist.cpp" +- "src/audio/external/rtaudio/include/iasiothiscallresolver.cpp") +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") +- target_compile_definitions(RtAudio PUBLIC "__MACOSX_CORE__") +- find_library(COREAUDIO_LIBRARY "CoreAudio") +- target_link_libraries(RtAudio PUBLIC "${COREAUDIO_LIBRARY}") +- find_library(COREFOUNDATION_LIBRARY "CoreFoundation") +- target_link_libraries(RtAudio PUBLIC "${COREFOUNDATION_LIBRARY}") ++ target_link_libraries(OPL3BankEditor PRIVATE RtAudio) + endif() ++ + target_sources(OPL3BankEditor PRIVATE "src/audio/ao_rtaudio.cpp") + target_compile_definitions(OPL3BankEditor PRIVATE "ENABLE_AUDIO_TESTING") +- target_link_libraries(OPL3BankEditor PRIVATE RtAudio) + endif() + + add_executable(measurer_tool +-- +2.29.3 + diff --git a/pkgs/tools/audio/opl3bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch b/pkgs/tools/audio/opl3bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch new file mode 100644 index 00000000000..f62c3236b33 --- /dev/null +++ b/pkgs/tools/audio/opl3bankeditor/0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch @@ -0,0 +1,200 @@ +From 69c993dacc7dc0cb9d105c3dfa764cd7be5c343e Mon Sep 17 00:00:00 2001 +From: OPNA2608 <christoph.neidahl@gmail.com> +Date: Sun, 13 Jun 2021 14:21:17 +0200 +Subject: [PATCH] Look for system-installed Rt libs + +--- + CMakeLists.txt | 159 +++++++++++++++++++++++++++++++------------------ + 1 file changed, 102 insertions(+), 57 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f428dc4..18ba8c3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,15 +41,6 @@ message("!! Optional feature summary:") + message("!! RtMidi: ${USE_RTMIDI}") + message("!! RtAudio: ${USE_RTAUDIO}") + +-if(USE_RTAUDIO) +- if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- pkg_check_modules(JACK "jack") +- message("!! -- Jack driver: ${JACK_FOUND}") +- pkg_check_modules(PULSEAUDIO "libpulse-simple") +- message("!! -- Pulseaudio driver: ${PULSEAUDIO_FOUND}") +- endif() +-endif() +- + if(ENABLE_PLOTS) + message("!! Qwt: ${QWT_LIBRARY}") + endif() +@@ -198,65 +189,119 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + endif() + + if(USE_RTMIDI) +- add_library(RtMidi STATIC "src/midi/external/rtmidi/RtMidi.cpp") +- target_include_directories(RtMidi PUBLIC "src/midi/external/rtmidi") +- if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- target_compile_definitions(RtMidi PUBLIC "__LINUX_ALSA__") +- target_link_libraries(RtMidi PUBLIC "asound") +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") +- target_compile_definitions(RtMidi PUBLIC "__WINDOWS_MM__") +- target_link_libraries(RtMidi PUBLIC "winmm") +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") +- target_compile_definitions(RtMidi PUBLIC "__MACOSX_CORE__") +- find_library(COREMIDI_LIBRARY "CoreMIDI") +- target_link_libraries(RtMidi PUBLIC "${COREMIDI_LIBRARY}") ++ if(PKG_CONFIG_FOUND) ++ pkg_check_modules(RTMIDI rtmidi) ++ if(RTMIDI_FOUND) ++ message("Using system-installed RtMidi found by pkg-config.") ++ target_link_libraries(OPN2BankEditor PUBLIC ${RTMIDI_LDFLAGS}) ++ target_include_directories(OPN2BankEditor PUBLIC ${RTMIDI_INCLUDE_DIRS}) ++ target_compile_options(OPN2BankEditor PUBLIC ${RTMIDI_CFLAGS}) ++ endif() ++ endif() ++ ++ if(NOT RTMIDI_FOUND) ++ find_library(RTMIDI_LIBRARY "rtmidi") ++ find_path(RTMIDI_INCLUDE_DIRS "RtMidi.h") ++ message("RtMidi library: ${RTMIDI_LIBRARY}") ++ message("RtMidi header directory: ${RTMIDI_INCLUDE_DIRS}") ++ if(NOT RTMIDI_LIBRARY-NOTFOUND AND NOT RTMIDI_INCLUDE_DIRS STREQUAL RTMIDI_INCLUDE_DIRS-NOTFOUND) ++ message("Using system-installed RtMidi.") ++ set(RTMIDI_FOUND TRUE) ++ target_link_libraries(OPN2BankEditor PUBLIC ${RTMIDI_LIBRARY}) ++ target_include_directories(OPN2BankEditor PUBLIC ${RTMIDI_INCLUDE_DIRS}) ++ endif() ++ endif() ++ ++ if(NOT RTMIDI_FOUND) ++ message("Using bundled RtMidi.") ++ add_library(RtMidi STATIC "src/midi/external/rtmidi/RtMidi.cpp") ++ target_include_directories(RtMidi PUBLIC "src/midi/external/rtmidi") ++ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ target_compile_definitions(RtMidi PUBLIC "__LINUX_ALSA__") ++ target_link_libraries(RtMidi PUBLIC "asound") ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") ++ target_compile_definitions(RtMidi PUBLIC "__WINDOWS_MM__") ++ target_link_libraries(RtMidi PUBLIC "winmm") ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") ++ target_compile_definitions(RtMidi PUBLIC "__MACOSX_CORE__") ++ find_library(COREMIDI_LIBRARY "CoreMIDI") ++ target_link_libraries(RtMidi PUBLIC "${COREMIDI_LIBRARY}") ++ endif() ++ target_link_libraries(OPN2BankEditor PRIVATE RtMidi) + endif() ++ + target_sources(OPN2BankEditor PRIVATE "src/midi/midi_rtmidi.cpp") + target_compile_definitions(OPN2BankEditor PRIVATE "ENABLE_MIDI") +- target_link_libraries(OPN2BankEditor PRIVATE RtMidi) + endif() + + if(USE_RTAUDIO) +- add_library(RtAudio STATIC "src/audio/external/rtaudio/RtAudio.cpp") +- target_include_directories(RtAudio PUBLIC "src/audio/external/rtaudio") +- if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +- target_compile_definitions(RtAudio PUBLIC "__LINUX_ALSA__") +- target_link_libraries(RtAudio PUBLIC "asound") +- if(JACK_FOUND) +- target_compile_definitions(RtAudio PUBLIC "__UNIX_JACK__") +- target_include_directories(RtAudio PUBLIC ${JACK_INCLUDE_DIRS}) +- link_directories(${JACK_LIBRARY_DIRS}) +- target_link_libraries(RtAudio PUBLIC ${JACK_LIBRARIES}) ++ if(PKG_CONFIG_FOUND) ++ pkg_check_modules(RTAUDIO rtaudio) ++ if(RTAUDIO_FOUND) ++ message("Using system-installed RtAudio found by pkg-config.") ++ target_link_libraries(OPN2BankEditor PUBLIC ${RTAUDIO_LDFLAGS}) ++ target_include_directories(OPN2BankEditor PUBLIC ${RTAUDIO_INCLUDE_DIRS}) ++ target_compile_options(OPN2BankEditor PUBLIC ${RTAUDIO_CFLAGS}) + endif() +- if(PULSEAUDIO_FOUND) +- target_compile_definitions(RtAudio PUBLIC "__LINUX_PULSE__") +- target_include_directories(RtAudio PUBLIC ${PULSEAUDIO_INCLUDE_DIRS}) +- link_directories(${PULSEAUDIO_LIBRARY_DIRS}) +- target_link_libraries(RtAudio PUBLIC ${PULSEAUDIO_LIBRARIES}) ++ endif() ++ ++ if(NOT RTAUDIO_FOUND) ++ find_library(RTAUDIO_LIBRARY "rtaudio") ++ find_path(RTAUDIO_INCLUDE_DIRS "RtAudio.h") ++ message("RtAudio library: ${RTAUDIO_LIBRARY}") ++ message("RtAudio header directory: ${RTAUDIO_INCLUDE_DIRS}") ++ if(NOT RTAUDIO_LIBRARY-NOTFOUND AND NOT RTAUDIO_INCLUDE_DIRS STREQUAL RTAUDIO_INCLUDE_DIRS-NOTFOUND) ++ message("Using system-installed RtAudio.") ++ set(RTAUDIO_FOUND TRUE) ++ target_link_libraries(OPN2BankEditor PUBLIC ${RTAUDIO_LIBRARY}) ++ target_include_directories(OPN2BankEditor PUBLIC ${RTAUDIO_INCLUDE_DIRS}) + endif() +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") +- target_compile_definitions(RtAudio PUBLIC "__WINDOWS_DS__") +- target_link_libraries(RtAudio PUBLIC "dsound" "ole32") +- target_compile_definitions(RtAudio PUBLIC "__WINDOWS_WASAPI__") +- target_link_libraries(RtAudio PUBLIC "ksguid") +- target_compile_definitions(RtAudio PUBLIC "__WINDOWS_ASIO__") +- target_include_directories(RtAudio PRIVATE +- "src/audio/external/rtaudio/include") +- target_sources(RtAudio PRIVATE +- "src/audio/external/rtaudio/include/asio.cpp" +- "src/audio/external/rtaudio/include/asiodrivers.cpp" +- "src/audio/external/rtaudio/include/asiolist.cpp" +- "src/audio/external/rtaudio/include/iasiothiscallresolver.cpp") +- elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") +- target_compile_definitions(RtAudio PUBLIC "__MACOSX_CORE__") +- find_library(COREAUDIO_LIBRARY "CoreAudio") +- target_link_libraries(RtAudio PUBLIC "${COREAUDIO_LIBRARY}") +- find_library(COREFOUNDATION_LIBRARY "CoreFoundation") +- target_link_libraries(RtAudio PUBLIC "${COREFOUNDATION_LIBRARY}") + endif() ++ ++ if(NOT RTAUDIO_FOUND) ++ message("Using bundled RtAudio.") ++ add_library(RtAudio STATIC "src/audio/external/rtaudio/RtAudio.cpp") ++ target_include_directories(RtAudio PUBLIC "src/audio/external/rtaudio") ++ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ target_compile_definitions(RtAudio PUBLIC "__LINUX_ALSA__") ++ target_link_libraries(RtAudio PUBLIC "asound") ++ if(JACK_FOUND) ++ target_compile_definitions(RtAudio PUBLIC "__UNIX_JACK__") ++ target_include_directories(RtAudio PUBLIC ${JACK_INCLUDE_DIRS}) ++ link_directories(${JACK_LIBRARY_DIRS}) ++ target_link_libraries(RtAudio PUBLIC ${JACK_LIBRARIES}) ++ endif() ++ if(PULSEAUDIO_FOUND) ++ target_compile_definitions(RtAudio PUBLIC "__LINUX_PULSE__") ++ target_include_directories(RtAudio PUBLIC ${PULSEAUDIO_INCLUDE_DIRS}) ++ link_directories(${PULSEAUDIO_LIBRARY_DIRS}) ++ target_link_libraries(RtAudio PUBLIC ${PULSEAUDIO_LIBRARIES}) ++ endif() ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") ++ target_compile_definitions(RtAudio PUBLIC "__WINDOWS_DS__") ++ target_link_libraries(RtAudio PUBLIC "dsound" "ole32") ++ target_compile_definitions(RtAudio PUBLIC "__WINDOWS_WASAPI__") ++ target_link_libraries(RtAudio PUBLIC "ksguid") ++ target_compile_definitions(RtAudio PUBLIC "__WINDOWS_ASIO__") ++ target_include_directories(RtAudio PRIVATE ++ "src/audio/external/rtaudio/include") ++ target_sources(RtAudio PRIVATE ++ "src/audio/external/rtaudio/include/asio.cpp" ++ "src/audio/external/rtaudio/include/asiodrivers.cpp" ++ "src/audio/external/rtaudio/include/asiolist.cpp" ++ "src/audio/external/rtaudio/include/iasiothiscallresolver.cpp") ++ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") ++ target_compile_definitions(RtAudio PUBLIC "__MACOSX_CORE__") ++ find_library(COREAUDIO_LIBRARY "CoreAudio") ++ target_link_libraries(RtAudio PUBLIC "${COREAUDIO_LIBRARY}") ++ find_library(COREFOUNDATION_LIBRARY "CoreFoundation") ++ target_link_libraries(RtAudio PUBLIC "${COREFOUNDATION_LIBRARY}") ++ endif() ++ target_link_libraries(OPN2BankEditor PRIVATE RtAudio) ++ endif() ++ + target_sources(OPN2BankEditor PRIVATE "src/audio/ao_rtaudio.cpp") + target_compile_definitions(OPN2BankEditor PRIVATE "ENABLE_AUDIO_TESTING") +- target_link_libraries(OPN2BankEditor PRIVATE RtAudio) + endif() + + add_executable(measurer_tool +-- +2.29.3 + diff --git a/pkgs/tools/audio/opl3bankeditor/common.nix b/pkgs/tools/audio/opl3bankeditor/common.nix new file mode 100644 index 00000000000..9f6972ce954 --- /dev/null +++ b/pkgs/tools/audio/opl3bankeditor/common.nix @@ -0,0 +1,69 @@ +{ pname, chip, version, sha256, extraPatches ? [] }: + +{ mkDerivation +, stdenv +, lib +, fetchFromGitHub +, dos2unix +, cmake +, pkg-config +, qttools +, qtbase +, qwt +, rtaudio +, rtmidi +}: + +let + binname = "${chip} Bank Editor"; + mainProgram = "${lib.strings.toLower chip}_bank_editor"; +in +mkDerivation rec { + inherit pname version; + + src = fetchFromGitHub { + owner = "Wohlstand"; + repo = pname; + rev = "v${version}"; + inherit sha256; + }; + + prePatch = '' + dos2unix CMakeLists.txt + ''; + + patches = extraPatches; + + nativeBuildInputs = [ + dos2unix + cmake + pkg-config + qttools + ]; + + buildInputs = [ + qtbase + qwt + rtaudio + rtmidi + ]; + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/{bin,Applications} + mv "${binname}.app" $out/Applications/ + + install_name_tool -change {,${qwt}/lib/}libqwt.6.dylib "$out/Applications/${binname}.app/Contents/MacOS/${binname}" + wrapQtApp "$out/Applications/${binname}.app/Contents/MacOS/${binname}" + + ln -s "$out/Applications/${binname}.app/Contents/MacOS/${binname}" $out/bin/${mainProgram} + ''; + + meta = with lib; { + inherit mainProgram; + description = "A small cross-platform editor of the ${chip} FM banks of different formats"; + homepage = src.meta.homepage; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = with maintainers; [ OPNA2608 ]; + }; +} diff --git a/pkgs/tools/audio/opl3bankeditor/default.nix b/pkgs/tools/audio/opl3bankeditor/default.nix index 381591edb02..85762bb69b9 100644 --- a/pkgs/tools/audio/opl3bankeditor/default.nix +++ b/pkgs/tools/audio/opl3bankeditor/default.nix @@ -1,27 +1,9 @@ -{ stdenv, mkDerivation, fetchFromGitHub, cmake, qttools, alsaLib }: - -mkDerivation rec { +import ./common.nix rec { + pname = "opl3bankeditor"; + chip = "OPL3"; version = "1.5.1"; - pname = "OPL3BankEditor"; - - src = fetchFromGitHub { - owner = "Wohlstand"; - repo = pname; - rev = "v${version}"; - sha256 = "1g59qrkcm4xnyxx0s2x28brqbf2ix6vriyx12pcdvfhhcdi55hxh"; - fetchSubmodules = true; - }; - - buildInputs = [ - alsaLib qttools + sha256 = "08krbxlxgmc7i2r2k6d6wgi0m6k8hh3j60xf21kz4kp023w613sa"; + extraPatches = [ + ./0001-opl3bankeditor-Look-for-system-installed-Rt-libs.patch ]; - nativeBuildInputs = [ cmake ]; - - meta = with stdenv.lib; { - description = "A small cross-platform editor of the OPL3 FM banks of different formats"; - homepage = src.meta.homepage; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ gnidorah ]; - }; } diff --git a/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix b/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix index 1d10452470e..d9c4bbe1511 100644 --- a/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix +++ b/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix @@ -1,14 +1,9 @@ -{ opl3bankeditor, fetchFromGitHub }: - -opl3bankeditor.overrideAttrs (oldAttrs: rec { +import ./common.nix rec { + pname = "opn2bankeditor"; + chip = "OPN2"; version = "1.3"; - pname = "OPN2BankEditor"; - - src = fetchFromGitHub { - owner = "Wohlstand"; - repo = pname; - rev = "v${version}"; - sha256 = "0xsvv0gxqh1lx22f1jm384f7mq1jp57fmpsx1jjaxz435w5hf8s0"; - fetchSubmodules = true; - }; -}) + sha256 = "0niam6a6y57msbl0xj23g6l7gisv4a670q0k1zqfm34804532a32"; + extraPatches = [ + ./0001-opn2bankeditor-Look-for-system-installed-Rt-libs.patch + ]; +} diff --git a/pkgs/tools/audio/pa-applet/default.nix b/pkgs/tools/audio/pa-applet/default.nix index 69e5976e6d5..358e662ca1e 100644 --- a/pkgs/tools/audio/pa-applet/default.nix +++ b/pkgs/tools/audio/pa-applet/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, libpulseaudio, pkgconfig, gtk3, glibc, autoconf, automake, libnotify, libX11, xf86inputevdev }: +{ lib, stdenv, fetchgit, libpulseaudio, pkg-config, gtk3, glibc, autoconf, automake, libnotify, libX11, xf86inputevdev }: stdenv.mkDerivation { name = "pa-applet-2012-04-11"; @@ -9,7 +9,7 @@ stdenv.mkDerivation { sha256 = "1242sdri67wnm1cd0hr40mxarkh7qs7mb9n2m0g9dbz0f4axj6wa"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkg-config ]; buildInputs = [ gtk3 libpulseaudio glibc automake autoconf libnotify libX11 xf86inputevdev ]; @@ -21,10 +21,9 @@ stdenv.mkDerivation { # work around a problem related to gtk3 updates NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; - postInstall = '' - ''; + postInstall = ""; - meta = with stdenv.lib; { + meta = with lib; { description = ""; license = licenses.gpl2; maintainers = with maintainers; [ domenkozar ]; diff --git a/pkgs/tools/audio/pasystray/default.nix b/pkgs/tools/audio/pasystray/default.nix index 8b0580ba98c..2bedd2abacd 100644 --- a/pkgs/tools/audio/pasystray/default.nix +++ b/pkgs/tools/audio/pasystray/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, wrapGAppsHook -, gnome3, avahi, gtk3, libappindicator-gtk3, libnotify, libpulseaudio +{ lib, stdenv, fetchpatch, fetchFromGitHub, pkg-config, autoreconfHook, wrapGAppsHook +, gnome, avahi, gtk3, libayatana-appindicator-gtk3, libnotify, libpulseaudio , xlibsWrapper, gsettings-desktop-schemas }: @@ -17,16 +17,22 @@ stdenv.mkDerivation rec { patches = [ # https://github.com/christophgysin/pasystray/issues/90#issuecomment-306190701 ./fix-wayland.patch + + # https://github.com/christophgysin/pasystray/issues/98 + (fetchpatch { + url = "https://sources.debian.org/data/main/p/pasystray/0.7.1-1/debian/patches/0001-Build-against-ayatana-appindicator.patch"; + sha256 = "0hijphrf52n2zfwdnrmxlp3a7iwznnkb79awvpzplz0ia2lqywpw"; + }) ]; - nativeBuildInputs = [ pkgconfig autoreconfHook wrapGAppsHook ]; + nativeBuildInputs = [ pkg-config autoreconfHook wrapGAppsHook ]; buildInputs = [ - gnome3.adwaita-icon-theme - avahi gtk3 libappindicator-gtk3 libnotify libpulseaudio xlibsWrapper + gnome.adwaita-icon-theme + avahi gtk3 libayatana-appindicator-gtk3 libnotify libpulseaudio xlibsWrapper gsettings-desktop-schemas ]; - meta = with stdenv.lib; { + meta = with lib; { description = "PulseAudio system tray"; homepage = "https://github.com/christophgysin/pasystray"; license = licenses.lgpl21Plus; diff --git a/pkgs/tools/audio/patray/default.nix b/pkgs/tools/audio/patray/default.nix new file mode 100644 index 00000000000..5f86f1b8855 --- /dev/null +++ b/pkgs/tools/audio/patray/default.nix @@ -0,0 +1,43 @@ +{ lib +, python3 +, qt5 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "patray"; + version = "0.1.1"; + + src = python3.pkgs.fetchPypi { + inherit version pname; + sha256 = "0vaapn2p4257m1d5nbnwnh252b7lhl00560gr9pqh2b7xqm1bh6g"; + }; + + patchPhase = '' + sed -i '30i entry_points = { "console_scripts": [ "patray = patray.__main__:main" ] },' setup.py + sed -i 's/production.txt/production.in/' setup.py + sed -i '/pyside2/d' requirements/production.in + ''; + + propagatedBuildInputs = with python3.pkgs; [ + pulsectl + loguru + cock + pyside2 + ]; + + doCheck = false; + + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + postFixup = '' + wrapQtApp $out/bin/patray + ''; + + + + meta = with lib; { + description = "Yet another tray pulseaudio frontend"; + homepage = "https://github.com/pohmelie/patray"; + license = licenses.mit; + maintainers = with maintainers; [ domenkozar ]; + }; +} diff --git a/pkgs/tools/audio/picotts/default.nix b/pkgs/tools/audio/picotts/default.nix index 023bf457774..03f446dc215 100644 --- a/pkgs/tools/audio/picotts/default.nix +++ b/pkgs/tools/audio/picotts/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoconf, automake, libtool, popt }: +{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, popt }: stdenv.mkDerivation { name = "picotts-unstable-2018-10-19"; @@ -13,11 +13,11 @@ stdenv.mkDerivation { sourceRoot = "source/pico"; preConfigure = "./autogen.sh"; meta = { - description = "Text to speech voice sinthesizer from SVox."; + description = "Text to speech voice sinthesizer from SVox"; homepage = "https://github.com/naggety/picotts"; - license = stdenv.lib.licenses.asl20; - maintainers = [ stdenv.lib.maintainers.canndrew ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.canndrew ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/tools/audio/playerctl/default.nix b/pkgs/tools/audio/playerctl/default.nix index c1cddf12b65..15ebb93e4e8 100644 --- a/pkgs/tools/audio/playerctl/default.nix +++ b/pkgs/tools/audio/playerctl/default.nix @@ -1,22 +1,22 @@ -{ stdenv, meson, ninja, fetchFromGitHub, glib, pkgconfig, gtk-doc, docbook_xsl, gobject-introspection }: +{ lib, stdenv, meson, ninja, fetchFromGitHub, glib, pkg-config, gtk-doc, docbook_xsl, gobject-introspection }: stdenv.mkDerivation rec { pname = "playerctl"; - version = "2.2.1"; + version = "2.3.1"; src = fetchFromGitHub { owner = "acrisci"; repo = "playerctl"; rev = "v${version}"; - sha256 = "17hi33sw3663qz5v54bqqil31sgkrlxkb2l5bgqk87pac6x2wnbz"; + sha256 = "00z5c6amlxd3q42l7x8i0ngl627dxglgg5vikbbhjp9ms34xbxdn"; }; - nativeBuildInputs = [ meson ninja pkgconfig gtk-doc docbook_xsl gobject-introspection ]; + nativeBuildInputs = [ meson ninja pkg-config gtk-doc docbook_xsl gobject-introspection ]; buildInputs = [ glib ]; mesonFlags = [ "-Dbash-completions=true" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "Command-line utility and library for controlling media players that implement MPRIS"; homepage = "https://github.com/acrisci/playerctl"; license = licenses.lgpl3; diff --git a/pkgs/tools/audio/pnmixer/default.nix b/pkgs/tools/audio/pnmixer/default.nix index c1e40ae5dbb..da4654a3e5f 100644 --- a/pkgs/tools/audio/pnmixer/default.nix +++ b/pkgs/tools/audio/pnmixer/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, gettext, alsaLib, gtk3, glib, libnotify, libX11, pcre }: +{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext, alsa-lib, gtk3, glib, libnotify, libX11, pcre }: stdenv.mkDerivation rec { pname = "pnmixer"; @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { sha256 = "0416pa933ddf4b7ph9zxhk5jppkk7ppcq1aqph6xsrfnka4yb148"; }; - nativeBuildInputs = [ cmake pkgconfig gettext ]; + nativeBuildInputs = [ cmake pkg-config gettext ]; - buildInputs = [ alsaLib gtk3 glib libnotify libX11 pcre ]; + buildInputs = [ alsa-lib gtk3 glib libnotify libX11 pcre ]; - meta = with stdenv.lib; { + meta = with lib; { homepage = "https://github.com/nicklan/pnmixer"; description = "ALSA volume mixer for the system tray"; license = licenses.gpl3; diff --git a/pkgs/tools/audio/pulsemixer/default.nix b/pkgs/tools/audio/pulsemixer/default.nix index b735c40031f..e6fc0c03e89 100644 --- a/pkgs/tools/audio/pulsemixer/default.nix +++ b/pkgs/tools/audio/pulsemixer/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python3, libpulseaudio }: +{ lib, stdenv, fetchFromGitHub, python3, libpulseaudio }: stdenv.mkDerivation rec { pname = "pulsemixer"; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { --replace "libpulse.so.0" "$libpulseaudio/lib/libpulse.so.0" ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Cli and curses mixer for pulseaudio"; homepage = "https://github.com/GeorgeFilipkin/pulsemixer"; license = licenses.mit; diff --git a/pkgs/tools/audio/qastools/default.nix b/pkgs/tools/audio/qastools/default.nix index 86ef7f050b2..f8b705a8fa1 100644 --- a/pkgs/tools/audio/qastools/default.nix +++ b/pkgs/tools/audio/qastools/default.nix @@ -1,18 +1,18 @@ -{ mkDerivation, lib, fetchFromGitLab, cmake, alsaLib, udev, qtbase, qtsvg, qttools }: +{ mkDerivation, lib, fetchFromGitLab, cmake, alsa-lib, udev, qtbase, qtsvg, qttools }: mkDerivation rec { pname = "qastools"; - version = "0.22.0"; + version = "0.23.0"; src = fetchFromGitLab { owner = "sebholt"; repo = pname; rev = "v${version}"; - sha256 = "0px4fcn8dagivq5fyi5gy84yj86f6x0lk805mc4ry58d0wsbn68v"; + sha256 = "19hn64hnvryfmrkdg6rqyzahdbqf1s5y3dcca389jj6sdx93b3ip"; }; nativeBuildInputs = [ cmake ]; - buildInputs = [ alsaLib udev qtbase qtsvg qttools ]; + buildInputs = [ alsa-lib udev qtbase qtsvg qttools ]; meta = with lib; { description = "Collection of desktop applications for ALSA configuration"; diff --git a/pkgs/tools/audio/spotdl/default.nix b/pkgs/tools/audio/spotdl/default.nix new file mode 100644 index 00000000000..71e8615a114 --- /dev/null +++ b/pkgs/tools/audio/spotdl/default.nix @@ -0,0 +1,52 @@ +{ lib +, python3 +, fetchFromGitHub +, ffmpeg +}: + +python3.pkgs.buildPythonApplication rec { + pname = "spotdl"; + version = "3.6.3"; + + src = fetchFromGitHub { + owner = "spotDL"; + repo = "spotify-downloader"; + rev = "v${version}"; + sha256 = "sha256-Ok8DOw+Joy35IqN7sNOQcUWYJS8tqBeQ5/I8fUSly7Q="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + spotipy + pytube + rich + rapidfuzz + mutagen + ytmusicapi + tqdm + beautifulsoup4 + requests + unidecode + ]; + + checkInputs = with python3.pkgs; [ + pytestCheckHook + pytest-mock + pytest-vcr + pyfakefs + pytest-subprocess + ]; + + # requires networking + doCheck = false; + + makeWrapperArgs = [ + "--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ]) + ]; + + meta = with lib; { + description = "Download your Spotify playlists and songs along with album art and metadata"; + homepage = "https://github.com/spotDL/spotify-downloader"; + license = licenses.mit; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/tools/audio/stt/default.nix b/pkgs/tools/audio/stt/default.nix new file mode 100644 index 00000000000..7834f87a051 --- /dev/null +++ b/pkgs/tools/audio/stt/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchurl, autoPatchelfHook }: + +stdenv.mkDerivation rec { + pname = "stt"; + version = "0.9.3"; + + src = fetchurl { + url = "https://github.com/coqui-ai/STT/releases/download/v${version}/native_client.tf.Linux.tar.xz"; + sha256 = "0axwys8vis4f0m7d1i2r3dfqlc8p3yj2nisvc7pdi5qs741xgy8w"; + }; + setSourceRoot = "sourceRoot=`pwd`"; + + nativeBuildInputs = [ + autoPatchelfHook + ]; + + buildInputs = [ + stdenv.cc.cc.lib + ]; + + installPhase = '' + install -D stt $out/bin/stt + install -D coqui-stt.h $out/include/coqui-stt.h + install -D libstt.so $out/lib/libstt.so + ''; + + meta = with lib; { + homepage = https://github.com/coqui-ai/STT; + description = "Deep learning toolkit for Speech-to-Text, battle-tested in research and production"; + license = licenses.mpl20; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ rvolosatovs ]; + }; +} diff --git a/pkgs/tools/audio/trx/default.nix b/pkgs/tools/audio/trx/default.nix index 6a23b6caead..b3ffee6419b 100644 --- a/pkgs/tools/audio/trx/default.nix +++ b/pkgs/tools/audio/trx/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, alsaLib, libopus, ortp, bctoolbox }: +{ lib, stdenv, fetchurl, alsa-lib, libopus, ortp, bctoolbox }: stdenv.mkDerivation rec { pname = "trx"; @@ -15,10 +15,10 @@ stdenv.mkDerivation rec { ./add_bctoolbox_ldlib.patch ]; - buildInputs = [ alsaLib libopus ortp bctoolbox ]; + buildInputs = [ alsa-lib libopus ortp bctoolbox ]; makeFlags = [ "PREFIX=$(out)" ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A simple toolset for broadcasting live audio using RTP/UDP and Opus"; homepage = "http://www.pogo.org.uk/~mark/trx/"; license = licenses.gpl2; diff --git a/pkgs/tools/audio/tts/default.nix b/pkgs/tools/audio/tts/default.nix new file mode 100644 index 00000000000..bb5eda93a59 --- /dev/null +++ b/pkgs/tools/audio/tts/default.nix @@ -0,0 +1,121 @@ +{ lib +, python3 +, fetchFromGitHub +, fetchpatch +}: + +# USAGE: +# $ tts-server --list_models +# # pick your favorite vocoder/tts model +# $ tts-server --model_name tts_models/en/ljspeech/glow-tts --vocoder_name vocoder_models/universal/libri-tts/fullband-melgan +# +# If you upgrade from an old version you may have to delete old models from ~/.local/share/tts +# +# For now, for deployment check the systemd unit in the pull request: +# https://github.com/NixOS/nixpkgs/pull/103851#issue-521121136 + +python3.pkgs.buildPythonApplication rec { + pname = "tts"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "coqui-ai"; + repo = "TTS"; + rev = "v${version}"; + sha256 = "0akhiaaqz53bf5zyps3vgjifmgh5wvcc9r4lrq9hmj3dds03vkjq"; + }; + + postPatch = '' + sed -i -e 's!librosa==[^"]*!librosa!' requirements.txt + sed -i -e 's!numba==[^"]*!numba!' requirements.txt + sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt + sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt + ''; + + nativeBuildInputs = with python3.pkgs; [ + cython + ]; + + propagatedBuildInputs = with python3.pkgs; [ + anyascii + coqpit + flask + gruut + gdown + inflect + jieba + librosa + matplotlib + mecab-python3 + numba + pandas + pypinyin + pysbd + pytorch + scipy + soundfile + tensorboardx + tensorflow + tqdm + umap-learn + unidic-lite + ]; + + postInstall = '' + cp -r TTS/server/templates/ $out/${python3.sitePackages}/TTS/server + # cython modules are not installed for some reasons + ( + cd TTS/tts/layers/glow_tts/monotonic_align + ${python3.interpreter} setup.py install --prefix=$out + ) + ''; + + checkInputs = with python3.pkgs; [ + pytest-sugar + pytestCheckHook + ]; + + disabledTests = [ + # RuntimeError: fft: ATen not compiled with MKL support + "test_torch_stft" + "test_stft_loss" + "test_multiscale_stft_loss" + # Requires network acccess to download models + "test_synthesize" + ]; + + preCheck = '' + # use the installed TTS in $PYTHONPATH instead of the one from source to also have cython modules. + mv TTS{,.old} + export PATH=$out/bin:$PATH + + # numba tries to write to HOME directory + export HOME=$TMPDIR + + for file in $(grep -rl 'python TTS/bin' tests); do + substituteInPlace "$file" \ + --replace "python TTS/bin" "${python3.interpreter} $out/lib/${python3.libPrefix}/site-packages/TTS/bin" + done + ''; + + disabledTestPaths = [ + # requires tensorflow + "tests/vocoder_tests/test_vocoder_tf_pqmf.py" + "tests/vocoder_tests/test_vocoder_tf_melgan_generator.py" + "tests/tts_tests/test_tacotron2_tf_model.py" + # RuntimeError: fft: ATen not compiled with MKL support + "tests/vocoder_tests/test_fullband_melgan_train.py" + "tests/vocoder_tests/test_hifigan_train.py" + "tests/vocoder_tests/test_melgan_train.py" + "tests/vocoder_tests/test_multiband_melgan_train.py" + "tests/vocoder_tests/test_parallel_wavegan_train.py" + ]; + + meta = with lib; { + homepage = "https://github.com/coqui-ai/TTS"; + changelog = "https://github.com/coqui-ai/TTS/releases/tag/v${version}"; + description = "Deep learning toolkit for Text-to-Speech, battle-tested in research and production"; + license = licenses.mpl20; + maintainers = with maintainers; [ hexa mic92 ]; + }; +} diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix index cf9297119e9..e8f5af70c87 100644 --- a/pkgs/tools/audio/video2midi/default.nix +++ b/pkgs/tools/audio/video2midi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, pythonPackages, opencv3 }: +{ lib, fetchFromGitHub, pythonPackages, opencv3 }: let opencv3_ = pythonPackages.toPythonModule (opencv3.override { @@ -25,11 +25,11 @@ in pythonPackages.buildPythonApplication rec { install -Dm755 v2m.py $out/bin/v2m.py ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Youtube synthesia video to midi conversion tool"; homepage = src.meta.homepage; license = licenses.gpl3; - maintainers = [ maintainers.gnidorah ]; + maintainers = [ ]; platforms = platforms.linux; }; } diff --git a/pkgs/tools/audio/volctl/default.nix b/pkgs/tools/audio/volctl/default.nix index dd58671824d..d764644bab1 100644 --- a/pkgs/tools/audio/volctl/default.nix +++ b/pkgs/tools/audio/volctl/default.nix @@ -1,46 +1,52 @@ -{ stdenv, fetchFromGitHub, pythonPackages, libpulseaudio, glib, gtk3, gobject-introspection, wrapGAppsHook }: +{ lib, python3Packages, fetchFromGitHub, wrapGAppsHook, gobject-introspection, libpulseaudio, glib, gtk3, pango, xorg }: -pythonPackages.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "volctl"; - version = "0.6.3"; + version = "0.8.2"; src = fetchFromGitHub { owner = "buzz"; repo = pname; - rev = version; - sha256 = "0rppqc5wiqxd83z2mgvhi6gdx7yhy9wnav1dbbi1wvm7lzw6fnil"; + rev = "v${version}"; + sha256 = "1cx27j83pz2qffnzb85fbl1x6pp3irv1kbw7g1hri7kaw6ky4xiz"; }; + postPatch = '' + substituteInPlace volctl/lib/xwrappers.py \ + --replace 'libXfixes.so' "${xorg.libXfixes}/lib/libXfixes.so" \ + --replace 'libXfixes.so.3' "${xorg.libXfixes}/lib/libXfixes.so.3" + ''; + + preBuild = '' + export LD_LIBRARY_PATH=${libpulseaudio}/lib + ''; + nativeBuildInputs = [ gobject-introspection wrapGAppsHook ]; - buildInputs = [ - glib - gtk3 - libpulseaudio - ]; - - pythonPath = with pythonPackages; [ + propagatedBuildInputs = [ pango gtk3 ] ++ (with python3Packages; [ + click + pycairo pygobject3 - ]; + pyyaml + ]); + # with strictDeps importing "gi.repository.Gtk" fails with "gi.RepositoryError: Typelib file for namespace 'Pango', version '1.0' not found" strictDeps = false; - preBuild = '' - export LD_LIBRARY_PATH=${libpulseaudio}/lib - ''; + # no tests included + doCheck = false; + + pythonImportsCheck = [ "volctl" ]; preFixup = '' glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"} - - gappsWrapperArgs+=( - --prefix LD_LIBRARY_PATH : "${libpulseaudio}/lib" - ) + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${libpulseaudio}/lib") ''; - meta = with stdenv.lib; { + meta = with lib; { description = "PulseAudio enabled volume control featuring per-app sliders"; homepage = "https://buzz.github.io/volctl/"; license = licenses.gpl2; diff --git a/pkgs/tools/audio/volumeicon/default.nix b/pkgs/tools/audio/volumeicon/default.nix index 50290881dc7..4d726cbd2a9 100644 --- a/pkgs/tools/audio/volumeicon/default.nix +++ b/pkgs/tools/audio/volumeicon/default.nix @@ -1,4 +1,4 @@ -{ pkgs, fetchurl, stdenv, gtk3, pkgconfig, intltool, alsaLib }: +{ pkgs, fetchurl, lib, stdenv, gtk3, pkg-config, intltool, alsa-lib }: stdenv.mkDerivation { pname = "volumeicon"; @@ -9,10 +9,10 @@ stdenv.mkDerivation { sha256 = "182xl2w8syv6ky2h2bc9imc6ap8pzh0p7rp63hh8nw0xm38c3f14"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtk3 intltool alsaLib ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gtk3 intltool alsa-lib ]; - meta = with stdenv.lib; { + meta = with lib; { description = "A lightweight volume control that sits in your systray"; homepage = "http://softwarebakery.com/maato/volumeicon.html"; platforms = pkgs.lib.platforms.linux; diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix new file mode 100644 index 00000000000..cbe35765cb4 --- /dev/null +++ b/pkgs/tools/audio/yabridge/default.nix @@ -0,0 +1,146 @@ +{ lib +, stdenv +, fetchFromGitHub +, substituteAll +, meson +, ninja +, pkg-config +, wine +, boost +, libxcb +}: + +let + # Derived from subprojects/bitsery.wrap + bitsery = rec { + version = "5.2.0"; + src = fetchFromGitHub { + owner = "fraillt"; + repo = "bitsery"; + rev = "v${version}"; + hash = "sha256-Bxdtjn2v2lP2lCnvjzmct6QHT7FpwmXoSZtd2oEFS4w="; + }; + }; + + # Derived from subprojects/function2.wrap + function2 = rec { + version = "4.1.0"; + src = fetchFromGitHub { + owner = "Naios"; + repo = "function2"; + rev = version; + hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk="; + }; + }; + + # Derived from subprojects/tomlplusplus.wrap + tomlplusplus = rec { + version = "2.1.0"; + src = fetchFromGitHub { + owner = "marzer"; + repo = "tomlplusplus"; + rev = "v${version}"; + hash = "sha256-i6yAEqwkinkPEzzb6ynXytS1SEOUDwi8SixMf62NVzs="; + }; + }; + + # Derived from vst3.wrap + vst3 = rec { + version = "3.7.2_build_28-patched"; + src = fetchFromGitHub { + owner = "robbert-vdh"; + repo = "vst3sdk"; + rev = "v${version}"; + fetchSubmodules = true; + sha256 = "sha256-39pvfcg4fvf7DAbAPzEHA1ja1LFL6r88nEwNYwaDC8w="; + }; + }; +in stdenv.mkDerivation rec { + pname = "yabridge"; + version = "3.3.1"; + + # NOTE: Also update yabridgectl's cargoHash when this is updated + src = fetchFromGitHub { + owner = "robbert-vdh"; + repo = pname; + rev = version; + hash = "sha256-3B+6YuCWVJljqdyGpePjPf5JDwLSWFNgOCeLt8e4mO8="; + }; + + # Unpack subproject sources + postUnpack = ''( + cd "$sourceRoot/subprojects" + cp -R --no-preserve=mode,ownership ${bitsery.src} bitsery-${bitsery.version} + tar -xf bitsery-patch-${bitsery.version}.tar.xz + cp -R --no-preserve=mode,ownership ${function2.src} function2-${function2.version} + tar -xf function2-patch-${function2.version}.tar.xz + cp -R --no-preserve=mode,ownership ${tomlplusplus.src} tomlplusplus + cp -R --no-preserve=mode,ownership ${vst3.src} vst3 + )''; + + patches = [ + # Hard code wine path so wine version is correct in logs + (substituteAll { + src = ./hardcode-wine.patch; + inherit wine; + }) + ]; + + postPatch = '' + patchShebangs . + ''; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wine + ]; + + buildInputs = [ + boost + libxcb + ]; + + # Meson is no longer able to pick up Boost automatically. + # https://github.com/NixOS/nixpkgs/issues/86131 + BOOST_INCLUDEDIR = "${lib.getDev boost}/include"; + BOOST_LIBRARYDIR = "${lib.getLib boost}/lib"; + + mesonFlags = [ + "--cross-file" "cross-wine.conf" + + # Requires CMake and is unnecessary + "-Dtomlplusplus:GENERATE_CMAKE_CONFIG=disabled" + + # tomlplusplus examples and tests don't build with winegcc + "-Dtomlplusplus:BUILD_EXAMPLES=disabled" + "-Dtomlplusplus:BUILD_TESTS=disabled" + ]; + + installPhase = '' + runHook preInstall + mkdir -p "$out/bin" "$out/lib" + cp yabridge-group.exe{,.so} "$out/bin" + cp yabridge-host.exe{,.so} "$out/bin" + cp libyabridge-vst2.so "$out/lib" + cp libyabridge-vst3.so "$out/lib" + runHook postInstall + ''; + + # Hard code wine path in wrapper scripts generated by winegcc + postFixup = '' + for exe in "$out"/bin/*.exe; do + substituteInPlace "$exe" \ + --replace 'WINELOADER="wine"' 'WINELOADER="${wine}/bin/wine"' + done + ''; + + meta = with lib; { + description = "Yet Another VST bridge, run Windows VST2 plugins under Linux"; + homepage = "https://github.com/robbert-vdh/yabridge"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ kira-bruneau ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/tools/audio/yabridge/hardcode-wine.patch b/pkgs/tools/audio/yabridge/hardcode-wine.patch new file mode 100644 index 00000000000..2b6ce1f448f --- /dev/null +++ b/pkgs/tools/audio/yabridge/hardcode-wine.patch @@ -0,0 +1,13 @@ +diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp +index 1ff05bc..0723456 100644 +--- a/src/plugin/utils.cpp ++++ b/src/plugin/utils.cpp +@@ -351,7 +351,7 @@ std::string get_wine_version() { + access(wineloader_path.c_str(), X_OK) == 0) { + wine_path = wineloader_path; + } else { +- wine_path = bp::search_path("wine").string(); ++ wine_path = "@wine@/bin/wine"; + } + + bp::ipstream output; diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix new file mode 100644 index 00000000000..bf0913372be --- /dev/null +++ b/pkgs/tools/audio/yabridgectl/default.nix @@ -0,0 +1,39 @@ +{ lib +, rustPlatform +, yabridge +, makeWrapper +, wine +}: + +rustPlatform.buildRustPackage rec { + pname = "yabridgectl"; + version = yabridge.version; + + src = yabridge.src; + sourceRoot = "source/tools/yabridgectl"; + cargoHash = "sha256-f5k5OF+bEzH0b6M14Mdp8t4Qd5dP5Qj2fDsdiG1MkYk="; + + patches = [ + # By default, yabridgectl locates libyabridge.so by using + # hard coded distro specific lib paths. This patch replaces those + # hard coded paths with lib paths from NIX_PROFILES. + ./libyabridge-from-nix-profiles.patch + ]; + + patchFlags = [ "-p3" ]; + + nativeBuildInputs = [ makeWrapper ]; + + postFixup = '' + wrapProgram "$out/bin/yabridgectl" \ + --prefix PATH : ${lib.makeBinPath [ wine ]} + ''; + + meta = with lib; { + description = "A small, optional utility to help set up and update yabridge for several directories at once"; + homepage = "https://github.com/robbert-vdh/yabridge/tree/master/tools/yabridgectl"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ kira-bruneau ]; + platforms = yabridge.meta.platforms; + }; +} diff --git a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch new file mode 100644 index 00000000000..ec42f98a2e8 --- /dev/null +++ b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch @@ -0,0 +1,70 @@ +diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs +index 6e05e34..656eef3 100644 +--- a/tools/yabridgectl/src/config.rs ++++ b/tools/yabridgectl/src/config.rs +@@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet}; + use std::env; + use std::fmt::Display; + use std::fs; ++use std::iter; + use std::path::{Path, PathBuf}; + use which::which; + use xdg::BaseDirectories; +@@ -222,34 +223,24 @@ impl Config { + } + } + None => { +- // Search in the system library locations and in `~/.local/share/yabridge` if no +- // path was set explicitely. We'll also search through `/usr/local/lib` just in case +- // but since we advocate against installing yabridge there we won't list this path +- // in the error message when `libyabridge-vst2.so` can't be found. +- let system_path = Path::new("/usr/lib"); ++ // Search through NIX_PROFILES & data home directory if no path was set explicitly. ++ let nix_profiles = env::var("NIX_PROFILES"); + let user_path = xdg_dirs.get_data_home(); +- let lib_directories = [ +- system_path, +- // Used on Debian based distros +- Path::new("/usr/lib/x86_64-linux-gnu"), +- // Used on Fedora +- Path::new("/usr/lib64"), +- Path::new("/usr/local/lib"), +- Path::new("/usr/local/lib/x86_64-linux-gnu"), +- Path::new("/usr/local/lib64"), +- &user_path, +- ]; ++ let lib_directories = nix_profiles.iter() ++ .flat_map(|profiles| profiles.split(' ') ++ .map(|profile| Path::new(profile).join("lib"))) ++ .chain(iter::once(user_path.clone())); ++ + let mut candidates = lib_directories +- .iter() + .map(|directory| directory.join(LIBYABRIDGE_VST2_NAME)); ++ + match candidates.find(|directory| directory.exists()) { + Some(candidate) => candidate, + _ => { + return Err(anyhow!( +- "Could not find '{}' in either '{}' or '{}'. You can override the \ +- default search path using 'yabridgectl set --path=<path>'.", ++ "Could not find '{}' through 'NIX_PROFILES' or '{}'. You can override the \ ++ default search path using 'yabridgectl set --path=<path>'.", + LIBYABRIDGE_VST2_NAME, +- system_path.display(), + user_path.display() + )); + } +diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs +index ce701b8..b6b9633 100644 +--- a/tools/yabridgectl/src/main.rs ++++ b/tools/yabridgectl/src/main.rs +@@ -150,7 +150,7 @@ fn main() -> Result<()> { + .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'") + .long_about( + "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \ +- is not set, then yabridgectl will look in both '/usr/lib' and \ ++ is not set, then yabridgectl will look through 'NIX_PROFILES' and \ + '~/.local/share/yabridge' by default.", + ) + .validator(validate_path) |