From e21ce4a4f72b3b2b7eec0fb039b8dc5bd7c8e786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Tue, 12 Sep 2023 18:39:57 -0700 Subject: [PATCH] haste-server: use buildNpmPackage --- pkgs/servers/haste-server/default.nix | 50 +- .../servers/haste-server/node-composition.nix | 17 - pkgs/servers/haste-server/node-deps.nix | 1561 ----------------- pkgs/servers/haste-server/node-env.nix | 686 -------- pkgs/servers/haste-server/update.sh | 28 - 5 files changed, 12 insertions(+), 2330 deletions(-) delete mode 100644 pkgs/servers/haste-server/node-composition.nix delete mode 100644 pkgs/servers/haste-server/node-deps.nix delete mode 100644 pkgs/servers/haste-server/node-env.nix delete mode 100755 pkgs/servers/haste-server/update.sh diff --git a/pkgs/servers/haste-server/default.nix b/pkgs/servers/haste-server/default.nix index f1281cffb43..30c98f298d4 100644 --- a/pkgs/servers/haste-server/default.nix +++ b/pkgs/servers/haste-server/default.nix @@ -1,65 +1,39 @@ { lib , nixosTests -, stdenv +, buildNpmPackage , fetchFromGitHub -, makeWrapper -, nodejs_18 -, pkgs }: -let - nodejs = nodejs_18; -in -stdenv.mkDerivation rec { +buildNpmPackage rec { pname = "haste-server"; - version = "b52b394bad909ddf151073987671e843540d91d6"; + version = "unstable-2023-03-06"; src = fetchFromGitHub { owner = "toptal"; repo = "haste-server"; - rev = version; + rev = "b52b394bad909ddf151073987671e843540d91d6"; hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8="; }; - nativeBuildInputs = [ - nodejs - makeWrapper - ]; + npmDepsHash = "sha256-FEuqKbblAts0WTnGI9H9bRBOwPvkahltra1zl3sMPJs="; - installPhase = - let - nodeDependencies = ((import ./node-composition.nix { - inherit pkgs nodejs; - inherit (stdenv.hostPlatform) system; - }).nodeDependencies.override (old: { - # access to path '/nix/store/...-source' is forbidden in restricted mode - src = src; - dontNpmInstall = true; - })); - in - '' - runHook postInstall + dontNpmBuild = true; - mkdir -p $out/share - cp -ra . $out/share/haste-server - ln -s ${nodeDependencies}/lib/node_modules $out/share/haste-server/node_modules - makeWrapper ${nodejs}/bin/node $out/bin/haste-server \ - --add-flags $out/share/haste-server/server.js - - runHook postBuild - ''; + postInstall = '' + install -Dt "$out/share/haste-server" about.md + ''; passthru = { tests = { inherit (nixosTests) haste-server; }; - updateScript = ./update.sh; }; meta = with lib; { - description = "open source pastebin written in node.js"; - homepage = "https://www.toptal.com/developers/hastebin/about.md"; + description = "Open source pastebin written in Node.js"; + homepage = "https://github.com/toptal/haste-server"; license = licenses.mit; + mainProgram = "haste-server"; maintainers = with maintainers; [ mkg20001 ]; }; } diff --git a/pkgs/servers/haste-server/node-composition.nix b/pkgs/servers/haste-server/node-composition.nix deleted file mode 100644 index 5fb8e7ba569..00000000000 --- a/pkgs/servers/haste-server/node-composition.nix +++ /dev/null @@ -1,17 +0,0 @@ -# This file has been generated by node2nix 1.11.1. Do not edit! - -{pkgs ? import { - inherit system; - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_14"}: - -let - nodeEnv = import ./node-env.nix { - inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; - inherit pkgs nodejs; - libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; - }; -in -import ./node-deps.nix { - inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; - inherit nodeEnv; -} diff --git a/pkgs/servers/haste-server/node-deps.nix b/pkgs/servers/haste-server/node-deps.nix deleted file mode 100644 index 2c8e11bb924..00000000000 --- a/pkgs/servers/haste-server/node-deps.nix +++ /dev/null @@ -1,1561 +0,0 @@ -# This file has been generated by node2nix 1.11.1. Do not edit! - -{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: - -let - sources = { - "@ungap/promise-all-settled-1.1.2" = { - name = "_at_ungap_slash_promise-all-settled"; - packageName = "@ungap/promise-all-settled"; - version = "1.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz"; - sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="; - }; - }; - "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-3.0.1" = { - name = "ansi-regex"; - packageName = "ansi-regex"; - version = "3.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz"; - sha512 = "+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="; - }; - }; - "ansi-regex-5.0.1" = { - name = "ansi-regex"; - packageName = "ansi-regex"; - version = "5.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"; - sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="; - }; - }; - "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.3" = { - name = "anymatch"; - packageName = "anymatch"; - version = "3.1.3"; - src = fetchurl { - url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"; - sha512 = "KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="; - }; - }; - "argparse-2.0.1" = { - name = "argparse"; - packageName = "argparse"; - version = "2.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"; - sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="; - }; - }; - "async-2.6.4" = { - name = "async"; - packageName = "async"; - version = "2.6.4"; - src = fetchurl { - url = "https://registry.npmjs.org/async/-/async-2.6.4.tgz"; - sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA=="; - }; - }; - "async-cache-1.1.0" = { - name = "async-cache"; - packageName = "async-cache"; - version = "1.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz"; - sha512 = "YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g=="; - }; - }; - "balanced-match-1.0.2" = { - name = "balanced-match"; - packageName = "balanced-match"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"; - sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; - }; - }; - "base64-js-1.5.1" = { - name = "base64-js"; - packageName = "base64-js"; - version = "1.5.1"; - src = fetchurl { - url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"; - sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="; - }; - }; - "binary-extensions-2.2.0" = { - name = "binary-extensions"; - packageName = "binary-extensions"; - version = "2.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"; - sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="; - }; - }; - "bl-4.1.0" = { - name = "bl"; - packageName = "bl"; - version = "4.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz"; - sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="; - }; - }; - "brace-expansion-1.1.11" = { - name = "brace-expansion"; - packageName = "brace-expansion"; - version = "1.1.11"; - src = fetchurl { - url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; - sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; - }; - }; - "braces-3.0.2" = { - name = "braces"; - packageName = "braces"; - version = "3.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"; - sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="; - }; - }; - "browser-stdout-1.3.1" = { - name = "browser-stdout"; - packageName = "browser-stdout"; - version = "1.3.1"; - src = fetchurl { - url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz"; - sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="; - }; - }; - "buffer-5.7.1" = { - name = "buffer"; - packageName = "buffer"; - version = "5.7.1"; - src = fetchurl { - url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"; - sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="; - }; - }; - "buffer-writer-2.0.0" = { - name = "buffer-writer"; - packageName = "buffer-writer"; - version = "2.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; - sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; - }; - }; - "busboy-0.2.4" = { - name = "busboy"; - packageName = "busboy"; - version = "0.2.4"; - src = fetchurl { - url = "https://registry.npmjs.org/busboy/-/busboy-0.2.4.tgz"; - sha512 = "hm0XN2dlecinlYSaB1TmSmuOaFlf6TKl0ITjqlszN+4O8z2eNwjUX3ak38dIXa7Pi7wme62QE7Wi2lC5L5Pu5A=="; - }; - }; - "camelcase-6.3.0" = { - name = "camelcase"; - packageName = "camelcase"; - version = "6.3.0"; - src = fetchurl { - url = "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"; - sha512 = "Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="; - }; - }; - "chalk-4.1.2" = { - name = "chalk"; - packageName = "chalk"; - version = "4.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"; - sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="; - }; - }; - "chokidar-3.5.1" = { - name = "chokidar"; - packageName = "chokidar"; - version = "3.5.1"; - src = fetchurl { - url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz"; - sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw=="; - }; - }; - "cliui-7.0.4" = { - name = "cliui"; - packageName = "cliui"; - version = "7.0.4"; - src = fetchurl { - url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"; - sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="; - }; - }; - "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.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=="; - }; - }; - "colors-1.0.3" = { - name = "colors"; - packageName = "colors"; - version = "1.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"; - sha512 = "pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw=="; - }; - }; - "commander-2.11.0" = { - name = "commander"; - packageName = "commander"; - version = "2.11.0"; - src = fetchurl { - url = "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz"; - sha512 = "b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="; - }; - }; - "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"; - sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="; - }; - }; - "connect-3.7.0" = { - name = "connect"; - packageName = "connect"; - version = "3.7.0"; - src = fetchurl { - url = "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz"; - sha512 = "ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="; - }; - }; - "connect-ratelimit-0.0.7" = { - name = "connect-ratelimit"; - packageName = "connect-ratelimit"; - version = "0.0.7"; - src = fetchurl { - url = "https://registry.npmjs.org/connect-ratelimit/-/connect-ratelimit-0.0.7.tgz"; - sha512 = "jFZp1le7Wow92pe6RU6GvyYp3PrXUEyVJxYyzYuf0tpmvpBnTAkARQL39IbSRoioRzQUBhxqEwvSQ7ClYSfGIQ=="; - }; - }; - "connect-route-0.1.5" = { - name = "connect-route"; - packageName = "connect-route"; - version = "0.1.5"; - src = fetchurl { - url = "https://registry.npmjs.org/connect-route/-/connect-route-0.1.5.tgz"; - sha512 = "6OZGYeoKS7zzhCAGP+Du7WYjP4geK3ii0sZlS+Oqx+ANFPcS5t/jDJr9BuhgN9qPz1ld8iahiPxNrgJyHeZ3cw=="; - }; - }; - "core-util-is-1.0.3" = { - name = "core-util-is"; - packageName = "core-util-is"; - version = "1.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"; - sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="; - }; - }; - "cycle-1.0.3" = { - name = "cycle"; - packageName = "cycle"; - version = "1.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz"; - sha512 = "TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA=="; - }; - }; - "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=="; - }; - }; - "decamelize-4.0.0" = { - name = "decamelize"; - packageName = "decamelize"; - version = "4.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz"; - sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="; - }; - }; - "dicer-0.2.3" = { - name = "dicer"; - packageName = "dicer"; - version = "0.2.3"; - src = fetchurl { - url = "https://registry.npmjs.org/dicer/-/dicer-0.2.3.tgz"; - sha512 = "QcKKVGYt+ZKHOoX/Ph26ua7vVMlFtPjAejtktv9/IDsfm9x3+5sVZ+H6SIS+ACWoIaJ8cPm4W4ibhiwdLDqhIA=="; - }; - }; - "diff-5.0.0" = { - name = "diff"; - packageName = "diff"; - version = "5.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz"; - sha512 = "/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="; - }; - }; - "ee-first-1.1.1" = { - name = "ee-first"; - packageName = "ee-first"; - version = "1.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; - sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="; - }; - }; - "emoji-regex-8.0.0" = { - name = "emoji-regex"; - packageName = "emoji-regex"; - version = "8.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"; - sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="; - }; - }; - "encodeurl-1.0.2" = { - name = "encodeurl"; - packageName = "encodeurl"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; - sha512 = "TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="; - }; - }; - "escalade-3.1.1" = { - name = "escalade"; - packageName = "escalade"; - version = "3.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"; - sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="; - }; - }; - "escape-html-1.0.3" = { - name = "escape-html"; - packageName = "escape-html"; - version = "1.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; - sha512 = "NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="; - }; - }; - "escape-string-regexp-4.0.0" = { - name = "escape-string-regexp"; - packageName = "escape-string-regexp"; - version = "4.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"; - sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="; - }; - }; - "eyes-0.1.8" = { - name = "eyes"; - packageName = "eyes"; - version = "0.1.8"; - src = fetchurl { - url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz"; - sha512 = "GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="; - }; - }; - "fd-0.0.3" = { - name = "fd"; - packageName = "fd"; - version = "0.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz"; - sha512 = "iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA=="; - }; - }; - "fill-range-7.0.1" = { - name = "fill-range"; - packageName = "fill-range"; - version = "7.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"; - sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="; - }; - }; - "finalhandler-1.1.2" = { - name = "finalhandler"; - packageName = "finalhandler"; - version = "1.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; - sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; - }; - }; - "find-up-5.0.0" = { - name = "find-up"; - packageName = "find-up"; - version = "5.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"; - sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="; - }; - }; - "flat-5.0.2" = { - name = "flat"; - packageName = "flat"; - version = "5.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz"; - sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="; - }; - }; - "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"; - sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="; - }; - }; - "fsevents-2.3.2" = { - name = "fsevents"; - packageName = "fsevents"; - version = "2.3.2"; - src = fetchurl { - url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"; - sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="; - }; - }; - "get-caller-file-2.0.5" = { - name = "get-caller-file"; - packageName = "get-caller-file"; - version = "2.0.5"; - src = fetchurl { - url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; - sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; - }; - }; - "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.2" = { - name = "glob-parent"; - packageName = "glob-parent"; - version = "5.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"; - sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="; - }; - }; - "graceful-fs-4.2.10" = { - name = "graceful-fs"; - packageName = "graceful-fs"; - version = "4.2.10"; - src = fetchurl { - url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"; - sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="; - }; - }; - "growl-1.10.5" = { - name = "growl"; - packageName = "growl"; - version = "1.10.5"; - src = fetchurl { - url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz"; - sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="; - }; - }; - "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=="; - }; - }; - "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=="; - }; - }; - "ieee754-1.2.1" = { - name = "ieee754"; - packageName = "ieee754"; - version = "1.2.1"; - src = fetchurl { - url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"; - sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; - }; - }; - "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"; - sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="; - }; - }; - "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=="; - }; - }; - "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-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"; - sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="; - }; - }; - "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"; - sha512 = "VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="; - }; - }; - "is-fullwidth-code-point-3.0.0" = { - name = "is-fullwidth-code-point"; - packageName = "is-fullwidth-code-point"; - version = "3.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; - sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="; - }; - }; - "is-glob-4.0.3" = { - name = "is-glob"; - packageName = "is-glob"; - version = "4.0.3"; - src = fetchurl { - url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"; - sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="; - }; - }; - "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-plain-obj-2.1.0" = { - name = "is-plain-obj"; - packageName = "is-plain-obj"; - version = "2.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz"; - sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="; - }; - }; - "isarray-0.0.1" = { - name = "isarray"; - packageName = "isarray"; - version = "0.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"; - sha512 = "D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="; - }; - }; - "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"; - sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="; - }; - }; - "isstream-0.1.2" = { - name = "isstream"; - packageName = "isstream"; - version = "0.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; - sha512 = "Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="; - }; - }; - "js-yaml-4.0.0" = { - name = "js-yaml"; - packageName = "js-yaml"; - version = "4.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz"; - sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q=="; - }; - }; - "locate-path-6.0.0" = { - name = "locate-path"; - packageName = "locate-path"; - version = "6.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"; - sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="; - }; - }; - "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=="; - }; - }; - "log-symbols-4.0.0" = { - name = "log-symbols"; - packageName = "log-symbols"; - version = "4.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz"; - sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA=="; - }; - }; - "lru-cache-4.1.5" = { - name = "lru-cache"; - packageName = "lru-cache"; - version = "4.1.5"; - src = fetchurl { - url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; - sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; - }; - }; - "mime-2.6.0" = { - name = "mime"; - packageName = "mime"; - version = "2.6.0"; - src = fetchurl { - url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"; - sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="; - }; - }; - "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=="; - }; - }; - "mocha-8.4.0" = { - name = "mocha"; - packageName = "mocha"; - version = "8.4.0"; - src = fetchurl { - url = "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz"; - sha512 = "hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ=="; - }; - }; - "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"; - sha512 = "Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="; - }; - }; - "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=="; - }; - }; - "ms-2.1.3" = { - name = "ms"; - packageName = "ms"; - version = "2.1.3"; - src = fetchurl { - url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"; - sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="; - }; - }; - "nanoid-3.1.20" = { - name = "nanoid"; - packageName = "nanoid"; - version = "3.1.20"; - src = fetchurl { - url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz"; - sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw=="; - }; - }; - "negotiator-0.6.3" = { - name = "negotiator"; - packageName = "negotiator"; - version = "0.6.3"; - src = fetchurl { - url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"; - sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="; - }; - }; - "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=="; - }; - }; - "on-finished-2.3.0" = { - name = "on-finished"; - packageName = "on-finished"; - version = "2.3.0"; - src = fetchurl { - url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; - sha512 = "ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="; - }; - }; - "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"; - sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="; - }; - }; - "p-limit-3.1.0" = { - name = "p-limit"; - packageName = "p-limit"; - version = "3.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"; - sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="; - }; - }; - "p-locate-5.0.0" = { - name = "p-locate"; - packageName = "p-locate"; - version = "5.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"; - sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="; - }; - }; - "packet-reader-1.0.0" = { - name = "packet-reader"; - packageName = "packet-reader"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; - sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; - }; - }; - "parseurl-1.3.3" = { - name = "parseurl"; - packageName = "parseurl"; - version = "1.3.3"; - src = fetchurl { - url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; - sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; - }; - }; - "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"; - sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="; - }; - }; - "pg-8.10.0" = { - name = "pg"; - packageName = "pg"; - version = "8.10.0"; - src = fetchurl { - url = "https://registry.npmjs.org/pg/-/pg-8.10.0.tgz"; - sha512 = "ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ=="; - }; - }; - "pg-connection-string-2.5.0" = { - name = "pg-connection-string"; - packageName = "pg-connection-string"; - version = "2.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz"; - sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="; - }; - }; - "pg-int8-1.0.1" = { - name = "pg-int8"; - packageName = "pg-int8"; - version = "1.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; - sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; - }; - }; - "pg-pool-3.6.0" = { - name = "pg-pool"; - packageName = "pg-pool"; - version = "3.6.0"; - src = fetchurl { - url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz"; - sha512 = "clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ=="; - }; - }; - "pg-protocol-1.6.0" = { - name = "pg-protocol"; - packageName = "pg-protocol"; - version = "1.6.0"; - src = fetchurl { - url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz"; - sha512 = "M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q=="; - }; - }; - "pg-types-2.2.0" = { - name = "pg-types"; - packageName = "pg-types"; - version = "2.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; - sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; - }; - }; - "pgpass-1.0.5" = { - name = "pgpass"; - packageName = "pgpass"; - version = "1.0.5"; - src = fetchurl { - url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz"; - sha512 = "FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug=="; - }; - }; - "picomatch-2.3.1" = { - name = "picomatch"; - packageName = "picomatch"; - version = "2.3.1"; - src = fetchurl { - url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"; - sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="; - }; - }; - "postgres-array-2.0.0" = { - name = "postgres-array"; - packageName = "postgres-array"; - version = "2.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; - sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; - }; - }; - "postgres-bytea-1.0.0" = { - name = "postgres-bytea"; - packageName = "postgres-bytea"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; - sha512 = "xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="; - }; - }; - "postgres-date-1.0.7" = { - name = "postgres-date"; - packageName = "postgres-date"; - version = "1.0.7"; - src = fetchurl { - url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; - sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; - }; - }; - "postgres-interval-1.2.0" = { - name = "postgres-interval"; - packageName = "postgres-interval"; - version = "1.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; - sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; - }; - }; - "pseudomap-1.0.2" = { - name = "pseudomap"; - packageName = "pseudomap"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; - sha512 = "b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="; - }; - }; - "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=="; - }; - }; - "readable-stream-1.1.14" = { - name = "readable-stream"; - packageName = "readable-stream"; - version = "1.1.14"; - src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"; - sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ=="; - }; - }; - "readable-stream-3.6.1" = { - name = "readable-stream"; - packageName = "readable-stream"; - version = "3.6.1"; - src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz"; - sha512 = "+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ=="; - }; - }; - "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=="; - }; - }; - "redis-0.8.1" = { - name = "redis"; - packageName = "redis"; - version = "0.8.1"; - src = fetchurl { - url = "https://registry.npmjs.org/redis/-/redis-0.8.1.tgz"; - sha512 = "XiXVEcXsJ6N71BAltCQ5vDOPhWeFyIaOqInVpXnRghK0WAc7ZPwXEjX6rkBCrlsnX6gXOPvsUvAzb5KhvajbiQ=="; - }; - }; - "redis-url-0.1.0" = { - name = "redis-url"; - packageName = "redis-url"; - version = "0.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/redis-url/-/redis-url-0.1.0.tgz"; - sha512 = "LVc0kybiwS2FY0uhe7Pjs4hGqHE+ygI3v7WQu+Qmr3acJ5atGid6vc98e2S9FoyIwfAekGWRwBFoRHxJnqW0Qw=="; - }; - }; - "require-directory-2.1.1" = { - name = "require-directory"; - packageName = "require-directory"; - version = "2.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; - sha512 = "fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="; - }; - }; - "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=="; - }; - }; - "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=="; - }; - }; - "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=="; - }; - }; - "split2-4.1.0" = { - name = "split2"; - packageName = "split2"; - version = "4.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz"; - sha512 = "VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ=="; - }; - }; - "st-2.0.0" = { - name = "st"; - packageName = "st"; - version = "2.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/st/-/st-2.0.0.tgz"; - sha512 = "drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw=="; - }; - }; - "stack-trace-0.0.10" = { - name = "stack-trace"; - packageName = "stack-trace"; - version = "0.0.10"; - src = fetchurl { - url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"; - sha512 = "KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="; - }; - }; - "statuses-1.5.0" = { - name = "statuses"; - packageName = "statuses"; - version = "1.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; - sha512 = "OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="; - }; - }; - "streamsearch-0.1.2" = { - name = "streamsearch"; - packageName = "streamsearch"; - version = "0.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz"; - sha512 = "jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA=="; - }; - }; - "string-width-2.1.1" = { - name = "string-width"; - packageName = "string-width"; - version = "2.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; - sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; - }; - }; - "string-width-4.2.3" = { - name = "string-width"; - packageName = "string-width"; - version = "4.2.3"; - src = fetchurl { - url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"; - sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="; - }; - }; - "string_decoder-0.10.31" = { - name = "string_decoder"; - packageName = "string_decoder"; - version = "0.10.31"; - src = fetchurl { - url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; - sha512 = "ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="; - }; - }; - "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-4.0.0" = { - name = "strip-ansi"; - packageName = "strip-ansi"; - version = "4.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; - sha512 = "4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow=="; - }; - }; - "strip-ansi-6.0.1" = { - name = "strip-ansi"; - packageName = "strip-ansi"; - version = "6.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"; - sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="; - }; - }; - "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-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=="; - }; - }; - "supports-color-8.1.1" = { - name = "supports-color"; - packageName = "supports-color"; - version = "8.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"; - sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="; - }; - }; - "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=="; - }; - }; - "uglify-js-3.1.6" = { - name = "uglify-js"; - packageName = "uglify-js"; - version = "3.1.6"; - src = fetchurl { - url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.6.tgz"; - sha512 = "/rseyxEKEVMBo8279lqpoJgD6C/i/CIi+9TJDvWmb+Xo6mqMKwjA8Io3IMHlcXQzj99feR6zrN8m3wqqvm/nYA=="; - }; - }; - "unpipe-1.0.0" = { - name = "unpipe"; - packageName = "unpipe"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; - sha512 = "pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="; - }; - }; - "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"; - sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="; - }; - }; - "utils-merge-1.0.1" = { - name = "utils-merge"; - packageName = "utils-merge"; - version = "1.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; - sha512 = "pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="; - }; - }; - "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=="; - }; - }; - "wide-align-1.1.3" = { - name = "wide-align"; - packageName = "wide-align"; - version = "1.1.3"; - src = fetchurl { - url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; - sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; - }; - }; - "winston-2.4.7" = { - name = "winston"; - packageName = "winston"; - version = "2.4.7"; - src = fetchurl { - url = "https://registry.npmjs.org/winston/-/winston-2.4.7.tgz"; - sha512 = "vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg=="; - }; - }; - "workerpool-6.1.0" = { - name = "workerpool"; - packageName = "workerpool"; - version = "6.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz"; - sha512 = "toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg=="; - }; - }; - "wrap-ansi-7.0.0" = { - name = "wrap-ansi"; - packageName = "wrap-ansi"; - version = "7.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"; - sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="; - }; - }; - "wrappy-1.0.2" = { - name = "wrappy"; - packageName = "wrappy"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; - sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="; - }; - }; - "xtend-4.0.2" = { - name = "xtend"; - packageName = "xtend"; - version = "4.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; - sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; - }; - }; - "y18n-5.0.8" = { - name = "y18n"; - packageName = "y18n"; - version = "5.0.8"; - src = fetchurl { - url = "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"; - sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="; - }; - }; - "yallist-2.1.2" = { - name = "yallist"; - packageName = "yallist"; - version = "2.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; - sha512 = "ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="; - }; - }; - "yargs-16.2.0" = { - name = "yargs"; - packageName = "yargs"; - version = "16.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"; - sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="; - }; - }; - "yargs-parser-20.2.4" = { - name = "yargs-parser"; - packageName = "yargs-parser"; - version = "20.2.4"; - src = fetchurl { - url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz"; - sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="; - }; - }; - "yargs-unparser-2.0.0" = { - name = "yargs-unparser"; - packageName = "yargs-unparser"; - version = "2.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz"; - sha512 = "7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA=="; - }; - }; - "yocto-queue-0.1.0" = { - name = "yocto-queue"; - packageName = "yocto-queue"; - version = "0.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"; - sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="; - }; - }; - }; - args = { - name = "haste"; - packageName = "haste"; - version = "0.1.0"; - src = ../../../../../../../../../nix/store/v45nw2igqcjw58j7ns9xrqj6f6n3jafd-source; - dependencies = [ - sources."@ungap/promise-all-settled-1.1.2" - sources."ansi-colors-4.1.1" - sources."ansi-regex-3.0.1" - sources."ansi-styles-4.3.0" - sources."anymatch-3.1.3" - sources."argparse-2.0.1" - sources."async-2.6.4" - sources."async-cache-1.1.0" - sources."balanced-match-1.0.2" - sources."base64-js-1.5.1" - sources."binary-extensions-2.2.0" - (sources."bl-4.1.0" // { - dependencies = [ - sources."readable-stream-3.6.1" - sources."string_decoder-1.3.0" - ]; - }) - sources."brace-expansion-1.1.11" - sources."braces-3.0.2" - sources."browser-stdout-1.3.1" - sources."buffer-5.7.1" - sources."buffer-writer-2.0.0" - sources."busboy-0.2.4" - sources."camelcase-6.3.0" - (sources."chalk-4.1.2" // { - dependencies = [ - sources."supports-color-7.2.0" - ]; - }) - sources."chokidar-3.5.1" - (sources."cliui-7.0.4" // { - dependencies = [ - sources."ansi-regex-5.0.1" - sources."is-fullwidth-code-point-3.0.0" - sources."string-width-4.2.3" - sources."strip-ansi-6.0.1" - ]; - }) - sources."color-convert-2.0.1" - sources."color-name-1.1.4" - sources."colors-1.0.3" - sources."commander-2.11.0" - sources."concat-map-0.0.1" - sources."connect-3.7.0" - sources."connect-ratelimit-0.0.7" - sources."connect-route-0.1.5" - sources."core-util-is-1.0.3" - sources."cycle-1.0.3" - sources."debug-2.6.9" - sources."decamelize-4.0.0" - sources."dicer-0.2.3" - sources."diff-5.0.0" - sources."ee-first-1.1.1" - sources."emoji-regex-8.0.0" - sources."encodeurl-1.0.2" - sources."escalade-3.1.1" - sources."escape-html-1.0.3" - sources."escape-string-regexp-4.0.0" - sources."eyes-0.1.8" - sources."fd-0.0.3" - sources."fill-range-7.0.1" - sources."finalhandler-1.1.2" - sources."find-up-5.0.0" - sources."flat-5.0.2" - sources."fs.realpath-1.0.0" - sources."fsevents-2.3.2" - sources."get-caller-file-2.0.5" - sources."glob-7.1.6" - sources."glob-parent-5.1.2" - sources."graceful-fs-4.2.10" - sources."growl-1.10.5" - sources."has-flag-4.0.0" - sources."he-1.2.0" - sources."ieee754-1.2.1" - sources."inflight-1.0.6" - sources."inherits-2.0.4" - sources."is-binary-path-2.1.0" - sources."is-extglob-2.1.1" - sources."is-fullwidth-code-point-2.0.0" - sources."is-glob-4.0.3" - sources."is-number-7.0.0" - sources."is-plain-obj-2.1.0" - sources."isarray-0.0.1" - sources."isexe-2.0.0" - sources."isstream-0.1.2" - sources."js-yaml-4.0.0" - sources."locate-path-6.0.0" - sources."lodash-4.17.21" - sources."log-symbols-4.0.0" - sources."lru-cache-4.1.5" - sources."mime-2.6.0" - sources."minimatch-3.0.4" - (sources."mocha-8.4.0" // { - dependencies = [ - (sources."debug-4.3.1" // { - dependencies = [ - sources."ms-2.1.2" - ]; - }) - sources."ms-2.1.3" - ]; - }) - sources."ms-2.0.0" - sources."nanoid-3.1.20" - sources."negotiator-0.6.3" - sources."normalize-path-3.0.0" - sources."on-finished-2.3.0" - sources."once-1.4.0" - sources."p-limit-3.1.0" - sources."p-locate-5.0.0" - sources."packet-reader-1.0.0" - sources."parseurl-1.3.3" - sources."path-exists-4.0.0" - sources."path-is-absolute-1.0.1" - sources."pg-8.10.0" - sources."pg-connection-string-2.5.0" - sources."pg-int8-1.0.1" - sources."pg-pool-3.6.0" - sources."pg-protocol-1.6.0" - sources."pg-types-2.2.0" - sources."pgpass-1.0.5" - sources."picomatch-2.3.1" - sources."postgres-array-2.0.0" - sources."postgres-bytea-1.0.0" - sources."postgres-date-1.0.7" - sources."postgres-interval-1.2.0" - sources."pseudomap-1.0.2" - sources."randombytes-2.1.0" - sources."readable-stream-1.1.14" - sources."readdirp-3.5.0" - sources."redis-0.8.1" - sources."redis-url-0.1.0" - sources."require-directory-2.1.1" - sources."safe-buffer-5.2.1" - sources."serialize-javascript-5.0.1" - sources."source-map-0.6.1" - sources."split2-4.1.0" - sources."st-2.0.0" - sources."stack-trace-0.0.10" - sources."statuses-1.5.0" - sources."streamsearch-0.1.2" - sources."string-width-2.1.1" - sources."string_decoder-0.10.31" - sources."strip-ansi-4.0.0" - sources."strip-json-comments-3.1.1" - sources."supports-color-8.1.1" - sources."to-regex-range-5.0.1" - sources."uglify-js-3.1.6" - sources."unpipe-1.0.0" - sources."util-deprecate-1.0.2" - sources."utils-merge-1.0.1" - sources."which-2.0.2" - sources."wide-align-1.1.3" - sources."winston-2.4.7" - sources."workerpool-6.1.0" - (sources."wrap-ansi-7.0.0" // { - dependencies = [ - sources."ansi-regex-5.0.1" - sources."is-fullwidth-code-point-3.0.0" - sources."string-width-4.2.3" - sources."strip-ansi-6.0.1" - ]; - }) - sources."wrappy-1.0.2" - sources."xtend-4.0.2" - sources."y18n-5.0.8" - sources."yallist-2.1.2" - (sources."yargs-16.2.0" // { - dependencies = [ - sources."ansi-regex-5.0.1" - sources."is-fullwidth-code-point-3.0.0" - sources."string-width-4.2.3" - sources."strip-ansi-6.0.1" - ]; - }) - sources."yargs-parser-20.2.4" - sources."yargs-unparser-2.0.0" - sources."yocto-queue-0.1.0" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "Private Pastebin Server"; - }; - production = false; - bypassCache = true; - reconstructLock = true; - }; -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/servers/haste-server/node-env.nix b/pkgs/servers/haste-server/node-env.nix deleted file mode 100644 index 5dad9ec63d4..00000000000 --- a/pkgs/servers/haste-server/node-env.nix +++ /dev/null @@ -1,686 +0,0 @@ -# This file originates from node2nix - -{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: - -let - # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master - utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux; - - python = if nodejs ? python then nodejs.python else python2; - - # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise - tarWrapper = runCommand "tarWrapper" {} '' - mkdir -p $out/bin - - cat > $out/bin/tar <> $out/nix-support/hydra-build-products - ''; - }; - - # Common shell logic - installPackage = writeShellScript "install-package" '' - installPackage() { - local packageName=$1 src=$2 - - local strippedName - - local DIR=$PWD - cd $TMPDIR - - unpackFile $src - - # Make the base dir in which the target dependency resides first - mkdir -p "$(dirname "$DIR/$packageName")" - - if [ -f "$src" ] - then - # Figure out what directory has been unpacked - packageDir="$(find . -maxdepth 1 -type d | tail -1)" - - # Restore write permissions to make building work - find "$packageDir" -type d -exec chmod u+x {} \; - chmod -R u+w "$packageDir" - - # Move the extracted tarball into the output folder - mv "$packageDir" "$DIR/$packageName" - elif [ -d "$src" ] - then - # Get a stripped name (without hash) of the source directory. - # On old nixpkgs it's already set internally. - if [ -z "$strippedName" ] - then - strippedName="$(stripHash $src)" - fi - - # Restore write permissions to make building work - chmod -R u+w "$strippedName" - - # Move the extracted directory into the output folder - mv "$strippedName" "$DIR/$packageName" - fi - - # Change to the package directory to install dependencies - cd "$DIR/$packageName" - } - ''; - - # Bundle the dependencies of the package - # - # Only include dependencies if they don't exist. They may also be bundled in the package. - includeDependencies = {dependencies}: - lib.optionalString (dependencies != []) ( - '' - mkdir -p node_modules - cd node_modules - '' - + (lib.concatMapStrings (dependency: - '' - if [ ! -e "${dependency.packageName}" ]; then - ${composePackage dependency} - fi - '' - ) dependencies) - + '' - cd .. - '' - ); - - # Recursively composes the dependencies of a package - composePackage = { name, packageName, src, dependencies ? [], ... }@args: - builtins.addErrorContext "while evaluating node package '${packageName}'" '' - installPackage "${packageName}" "${src}" - ${includeDependencies { inherit dependencies; }} - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - ''; - - pinpointDependencies = {dependencies, production}: - let - pinpointDependenciesFromPackageJSON = writeTextFile { - name = "pinpointDependencies.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - function resolveDependencyVersion(location, name) { - if(location == process.env['NIX_STORE']) { - return null; - } else { - var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); - - if(fs.existsSync(dependencyPackageJSON)) { - var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); - - if(dependencyPackageObj.name == name) { - return dependencyPackageObj.version; - } - } else { - return resolveDependencyVersion(path.resolve(location, ".."), name); - } - } - } - - function replaceDependencies(dependencies) { - if(typeof dependencies == "object" && dependencies !== null) { - for(var dependency in dependencies) { - var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); - - if(resolvedVersion === null) { - process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); - } else { - dependencies[dependency] = resolvedVersion; - } - } - } - } - - /* Read the package.json configuration */ - var packageObj = JSON.parse(fs.readFileSync('./package.json')); - - /* Pinpoint all dependencies */ - replaceDependencies(packageObj.dependencies); - if(process.argv[2] == "development") { - replaceDependencies(packageObj.devDependencies); - } - else { - packageObj.devDependencies = {}; - } - replaceDependencies(packageObj.optionalDependencies); - replaceDependencies(packageObj.peerDependencies); - - /* Write the fixed package.json file */ - fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); - ''; - }; - in - '' - node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} - - ${lib.optionalString (dependencies != []) - '' - if [ -d node_modules ] - then - cd node_modules - ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} - cd .. - fi - ''} - ''; - - # Recursively traverses all dependencies of a package and pinpoints all - # dependencies in the package.json file to the versions that are actually - # being used. - - pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: - '' - if [ -d "${packageName}" ] - then - cd "${packageName}" - ${pinpointDependencies { inherit dependencies production; }} - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - fi - ''; - - # Extract the Node.js source code which is used to compile packages with - # native bindings - nodeSources = runCommand "node-sources" {} '' - tar --no-same-owner --no-same-permissions -xf ${nodejs.src} - mv node-* $out - ''; - - # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) - addIntegrityFieldsScript = writeTextFile { - name = "addintegrityfields.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - function augmentDependencies(baseDir, dependencies) { - for(var dependencyName in dependencies) { - var dependency = dependencies[dependencyName]; - - // Open package.json and augment metadata fields - var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); - var packageJSONPath = path.join(packageJSONDir, "package.json"); - - if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored - console.log("Adding metadata fields to: "+packageJSONPath); - var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); - - if(dependency.integrity) { - packageObj["_integrity"] = dependency.integrity; - } else { - packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads. - } - - if(dependency.resolved) { - packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided - } else { - packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. - } - - if(dependency.from !== undefined) { // Adopt from property if one has been provided - packageObj["_from"] = dependency.from; - } - - fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); - } - - // Augment transitive dependencies - if(dependency.dependencies !== undefined) { - augmentDependencies(packageJSONDir, dependency.dependencies); - } - } - } - - if(fs.existsSync("./package-lock.json")) { - var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); - - if(![1, 2].includes(packageLock.lockfileVersion)) { - process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); - process.exit(1); - } - - if(packageLock.dependencies !== undefined) { - augmentDependencies(".", packageLock.dependencies); - } - } - ''; - }; - - # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes - reconstructPackageLock = writeTextFile { - name = "reconstructpackagelock.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - var packageObj = JSON.parse(fs.readFileSync("package.json")); - - var lockObj = { - name: packageObj.name, - version: packageObj.version, - lockfileVersion: 2, - requires: true, - packages: { - "": { - name: packageObj.name, - version: packageObj.version, - license: packageObj.license, - bin: packageObj.bin, - dependencies: packageObj.dependencies, - engines: packageObj.engines, - optionalDependencies: packageObj.optionalDependencies - } - }, - dependencies: {} - }; - - function augmentPackageJSON(filePath, packages, dependencies) { - var packageJSON = path.join(filePath, "package.json"); - if(fs.existsSync(packageJSON)) { - var packageObj = JSON.parse(fs.readFileSync(packageJSON)); - packages[filePath] = { - version: packageObj.version, - integrity: "sha1-000000000000000000000000000=", - dependencies: packageObj.dependencies, - engines: packageObj.engines, - optionalDependencies: packageObj.optionalDependencies - }; - dependencies[packageObj.name] = { - version: packageObj.version, - integrity: "sha1-000000000000000000000000000=", - dependencies: {} - }; - processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies); - } - } - - function processDependencies(dir, packages, dependencies) { - if(fs.existsSync(dir)) { - var files = fs.readdirSync(dir); - - files.forEach(function(entry) { - var filePath = path.join(dir, entry); - var stats = fs.statSync(filePath); - - if(stats.isDirectory()) { - if(entry.substr(0, 1) == "@") { - // When we encounter a namespace folder, augment all packages belonging to the scope - var pkgFiles = fs.readdirSync(filePath); - - pkgFiles.forEach(function(entry) { - if(stats.isDirectory()) { - var pkgFilePath = path.join(filePath, entry); - augmentPackageJSON(pkgFilePath, packages, dependencies); - } - }); - } else { - augmentPackageJSON(filePath, packages, dependencies); - } - } - }); - } - } - - processDependencies("node_modules", lockObj.packages, lockObj.dependencies); - - fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); - ''; - }; - - # Script that links bins defined in package.json to the node_modules bin directory - # NPM does not do this for top-level packages itself anymore as of v7 - linkBinsScript = writeTextFile { - name = "linkbins.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - var packageObj = JSON.parse(fs.readFileSync("package.json")); - - var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep); - - if(packageObj.bin !== undefined) { - fs.mkdirSync(path.join(nodeModules, ".bin")) - - if(typeof packageObj.bin == "object") { - Object.keys(packageObj.bin).forEach(function(exe) { - if(fs.existsSync(packageObj.bin[exe])) { - console.log("linking bin '" + exe + "'"); - fs.symlinkSync( - path.join("..", packageObj.name, packageObj.bin[exe]), - path.join(nodeModules, ".bin", exe) - ); - } - else { - console.log("skipping non-existent bin '" + exe + "'"); - } - }) - } - else { - if(fs.existsSync(packageObj.bin)) { - console.log("linking bin '" + packageObj.bin + "'"); - fs.symlinkSync( - path.join("..", packageObj.name, packageObj.bin), - path.join(nodeModules, ".bin", packageObj.name.split("/").pop()) - ); - } - else { - console.log("skipping non-existent bin '" + packageObj.bin + "'"); - } - } - } - else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) { - fs.mkdirSync(path.join(nodeModules, ".bin")) - - fs.readdirSync(packageObj.directories.bin).forEach(function(exe) { - if(fs.existsSync(path.join(packageObj.directories.bin, exe))) { - console.log("linking bin '" + exe + "'"); - fs.symlinkSync( - path.join("..", packageObj.name, packageObj.directories.bin, exe), - path.join(nodeModules, ".bin", exe) - ); - } - else { - console.log("skipping non-existent bin '" + exe + "'"); - } - }) - } - ''; - }; - - prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: - let - forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; - in - '' - # Pinpoint the versions of all dependencies to the ones that are actually being used - echo "pinpointing versions of dependencies..." - source $pinpointDependenciesScriptPath - - # Patch the shebangs of the bundled modules to prevent them from - # calling executables outside the Nix store as much as possible - patchShebangs . - - # Deploy the Node.js package by running npm install. Since the - # dependencies have been provided already by ourselves, it should not - # attempt to install them again, which is good, because we want to make - # it Nix's responsibility. If it needs to install any dependencies - # anyway (e.g. because the dependency parameters are - # incomplete/incorrect), it fails. - # - # The other responsibilities of NPM are kept -- version checks, build - # steps, postprocessing etc. - - export HOME=$TMPDIR - cd "${packageName}" - runHook preRebuild - - ${lib.optionalString bypassCache '' - ${lib.optionalString reconstructLock '' - if [ -f package-lock.json ] - then - echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" - echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" - rm package-lock.json - else - echo "No package-lock.json file found, reconstructing..." - fi - - node ${reconstructPackageLock} - ''} - - node ${addIntegrityFieldsScript} - ''} - - npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild - - runHook postRebuild - - if [ "''${dontNpmInstall-}" != "1" ] - then - # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. - rm -f npm-shrinkwrap.json - - npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install - fi - - # Link executables defined in package.json - node ${linkBinsScript} - ''; - - # Builds and composes an NPM package including all its dependencies - buildNodePackage = - { name - , packageName - , version ? null - , dependencies ? [] - , buildInputs ? [] - , production ? true - , npmFlags ? "" - , dontNpmInstall ? false - , bypassCache ? false - , reconstructLock ? false - , preRebuild ? "" - , dontStrip ? true - , unpackPhase ? "true" - , buildPhase ? "true" - , meta ? {} - , ... }@args: - - let - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; - in - stdenv.mkDerivation ({ - name = "${name}${if version == null then "" else "-${version}"}"; - buildInputs = [ tarWrapper python nodejs ] - ++ lib.optional (stdenv.isLinux) utillinux - ++ lib.optional (stdenv.isDarwin) libtool - ++ buildInputs; - - inherit nodejs; - - inherit dontStrip; # Stripping may fail a build for some package deployments - inherit dontNpmInstall preRebuild unpackPhase buildPhase; - - compositionScript = composePackage args; - pinpointDependenciesScript = pinpointDependenciesOfPackage args; - - passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; - - installPhase = '' - source ${installPackage} - - # Create and enter a root node_modules/ folder - mkdir -p $out/lib/node_modules - cd $out/lib/node_modules - - # Compose the package and all its dependencies - source $compositionScriptPath - - ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} - - # Create symlink to the deployed executable folder, if applicable - if [ -d "$out/lib/node_modules/.bin" ] - then - ln -s $out/lib/node_modules/.bin $out/bin - - # Patch the shebang lines of all the executables - ls $out/bin/* | while read i - do - file="$(readlink -f "$i")" - chmod u+rwx "$file" - patchShebangs "$file" - done - fi - - # Create symlinks to the deployed manual page folders, if applicable - if [ -d "$out/lib/node_modules/${packageName}/man" ] - then - mkdir -p $out/share - for dir in "$out/lib/node_modules/${packageName}/man/"* - do - mkdir -p $out/share/man/$(basename "$dir") - for page in "$dir"/* - do - ln -s $page $out/share/man/$(basename "$dir") - done - done - fi - - # Run post install hook, if provided - runHook postInstall - ''; - - meta = { - # default to Node.js' platforms - platforms = nodejs.meta.platforms; - } // meta; - } // extraArgs); - - # Builds a node environment (a node_modules folder and a set of binaries) - buildNodeDependencies = - { name - , packageName - , version ? null - , src - , dependencies ? [] - , buildInputs ? [] - , production ? true - , npmFlags ? "" - , dontNpmInstall ? false - , bypassCache ? false - , reconstructLock ? false - , dontStrip ? true - , unpackPhase ? "true" - , buildPhase ? "true" - , ... }@args: - - let - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; - in - stdenv.mkDerivation ({ - name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; - - buildInputs = [ tarWrapper python nodejs ] - ++ lib.optional (stdenv.isLinux) utillinux - ++ lib.optional (stdenv.isDarwin) libtool - ++ buildInputs; - - inherit dontStrip; # Stripping may fail a build for some package deployments - inherit dontNpmInstall unpackPhase buildPhase; - - includeScript = includeDependencies { inherit dependencies; }; - pinpointDependenciesScript = pinpointDependenciesOfPackage args; - - passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; - - installPhase = '' - source ${installPackage} - - mkdir -p $out/${packageName} - cd $out/${packageName} - - source $includeScriptPath - - # Create fake package.json to make the npm commands work properly - cp ${src}/package.json . - chmod 644 package.json - ${lib.optionalString bypassCache '' - if [ -f ${src}/package-lock.json ] - then - cp ${src}/package-lock.json . - chmod 644 package-lock.json - fi - ''} - - # Go to the parent folder to make sure that all packages are pinpointed - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - - ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} - - # Expose the executables that were installed - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - - mv ${packageName} lib - ln -s $out/lib/node_modules/.bin $out/bin - ''; - } // extraArgs); - - # Builds a development shell - buildNodeShell = - { name - , packageName - , version ? null - , src - , dependencies ? [] - , buildInputs ? [] - , production ? true - , npmFlags ? "" - , dontNpmInstall ? false - , bypassCache ? false - , reconstructLock ? false - , dontStrip ? true - , unpackPhase ? "true" - , buildPhase ? "true" - , ... }@args: - - let - nodeDependencies = buildNodeDependencies args; - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ]; - in - stdenv.mkDerivation ({ - name = "node-shell-${name}${if version == null then "" else "-${version}"}"; - - buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; - buildCommand = '' - mkdir -p $out/bin - cat > $out/bin/shell <