haste-server: use buildNpmPackage

+12 -2330
+12 -38
pkgs/servers/haste-server/default.nix
··· 1 1 { lib 2 2 , nixosTests 3 - , stdenv 3 + , buildNpmPackage 4 4 , fetchFromGitHub 5 - , makeWrapper 6 - , nodejs_18 7 - , pkgs 8 5 }: 9 6 10 - let 11 - nodejs = nodejs_18; 12 - in 13 - stdenv.mkDerivation rec { 7 + buildNpmPackage rec { 14 8 pname = "haste-server"; 15 - version = "b52b394bad909ddf151073987671e843540d91d6"; 9 + version = "unstable-2023-03-06"; 16 10 17 11 src = fetchFromGitHub { 18 12 owner = "toptal"; 19 13 repo = "haste-server"; 20 - rev = version; 14 + rev = "b52b394bad909ddf151073987671e843540d91d6"; 21 15 hash = "sha256-AVoz5MY5gNxQrHtDMPbQ85IjmHii1v6C2OXpEQj9zC8="; 22 16 }; 23 17 24 - nativeBuildInputs = [ 25 - nodejs 26 - makeWrapper 27 - ]; 28 - 29 - installPhase = 30 - let 31 - nodeDependencies = ((import ./node-composition.nix { 32 - inherit pkgs nodejs; 33 - inherit (stdenv.hostPlatform) system; 34 - }).nodeDependencies.override (old: { 35 - # access to path '/nix/store/...-source' is forbidden in restricted mode 36 - src = src; 37 - dontNpmInstall = true; 38 - })); 39 - in 40 - '' 41 - runHook postInstall 18 + npmDepsHash = "sha256-FEuqKbblAts0WTnGI9H9bRBOwPvkahltra1zl3sMPJs="; 42 19 43 - mkdir -p $out/share 44 - cp -ra . $out/share/haste-server 45 - ln -s ${nodeDependencies}/lib/node_modules $out/share/haste-server/node_modules 46 - makeWrapper ${nodejs}/bin/node $out/bin/haste-server \ 47 - --add-flags $out/share/haste-server/server.js 20 + dontNpmBuild = true; 48 21 49 - runHook postBuild 50 - ''; 22 + postInstall = '' 23 + install -Dt "$out/share/haste-server" about.md 24 + ''; 51 25 52 26 passthru = { 53 27 tests = { 54 28 inherit (nixosTests) haste-server; 55 29 }; 56 - updateScript = ./update.sh; 57 30 }; 58 31 59 32 meta = with lib; { 60 - description = "open source pastebin written in node.js"; 61 - homepage = "https://www.toptal.com/developers/hastebin/about.md"; 33 + description = "Open source pastebin written in Node.js"; 34 + homepage = "https://github.com/toptal/haste-server"; 62 35 license = licenses.mit; 36 + mainProgram = "haste-server"; 63 37 maintainers = with maintainers; [ mkg20001 ]; 64 38 }; 65 39 }
-17
pkgs/servers/haste-server/node-composition.nix
··· 1 - # This file has been generated by node2nix 1.11.1. Do not edit! 2 - 3 - {pkgs ? import <nixpkgs> { 4 - inherit system; 5 - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_14"}: 6 - 7 - let 8 - nodeEnv = import ./node-env.nix { 9 - inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; 10 - inherit pkgs nodejs; 11 - libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; 12 - }; 13 - in 14 - import ./node-deps.nix { 15 - inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; 16 - inherit nodeEnv; 17 - }
-1561
pkgs/servers/haste-server/node-deps.nix
··· 1 - # This file has been generated by node2nix 1.11.1. Do not edit! 2 - 3 - {nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: 4 - 5 - let 6 - sources = { 7 - "@ungap/promise-all-settled-1.1.2" = { 8 - name = "_at_ungap_slash_promise-all-settled"; 9 - packageName = "@ungap/promise-all-settled"; 10 - version = "1.1.2"; 11 - src = fetchurl { 12 - url = "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz"; 13 - sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="; 14 - }; 15 - }; 16 - "ansi-colors-4.1.1" = { 17 - name = "ansi-colors"; 18 - packageName = "ansi-colors"; 19 - version = "4.1.1"; 20 - src = fetchurl { 21 - url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"; 22 - sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="; 23 - }; 24 - }; 25 - "ansi-regex-3.0.1" = { 26 - name = "ansi-regex"; 27 - packageName = "ansi-regex"; 28 - version = "3.0.1"; 29 - src = fetchurl { 30 - url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz"; 31 - sha512 = "+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="; 32 - }; 33 - }; 34 - "ansi-regex-5.0.1" = { 35 - name = "ansi-regex"; 36 - packageName = "ansi-regex"; 37 - version = "5.0.1"; 38 - src = fetchurl { 39 - url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"; 40 - sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="; 41 - }; 42 - }; 43 - "ansi-styles-4.3.0" = { 44 - name = "ansi-styles"; 45 - packageName = "ansi-styles"; 46 - version = "4.3.0"; 47 - src = fetchurl { 48 - url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; 49 - sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; 50 - }; 51 - }; 52 - "anymatch-3.1.3" = { 53 - name = "anymatch"; 54 - packageName = "anymatch"; 55 - version = "3.1.3"; 56 - src = fetchurl { 57 - url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"; 58 - sha512 = "KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="; 59 - }; 60 - }; 61 - "argparse-2.0.1" = { 62 - name = "argparse"; 63 - packageName = "argparse"; 64 - version = "2.0.1"; 65 - src = fetchurl { 66 - url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"; 67 - sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="; 68 - }; 69 - }; 70 - "async-2.6.4" = { 71 - name = "async"; 72 - packageName = "async"; 73 - version = "2.6.4"; 74 - src = fetchurl { 75 - url = "https://registry.npmjs.org/async/-/async-2.6.4.tgz"; 76 - sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA=="; 77 - }; 78 - }; 79 - "async-cache-1.1.0" = { 80 - name = "async-cache"; 81 - packageName = "async-cache"; 82 - version = "1.1.0"; 83 - src = fetchurl { 84 - url = "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz"; 85 - sha512 = "YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g=="; 86 - }; 87 - }; 88 - "balanced-match-1.0.2" = { 89 - name = "balanced-match"; 90 - packageName = "balanced-match"; 91 - version = "1.0.2"; 92 - src = fetchurl { 93 - url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"; 94 - sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; 95 - }; 96 - }; 97 - "base64-js-1.5.1" = { 98 - name = "base64-js"; 99 - packageName = "base64-js"; 100 - version = "1.5.1"; 101 - src = fetchurl { 102 - url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"; 103 - sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="; 104 - }; 105 - }; 106 - "binary-extensions-2.2.0" = { 107 - name = "binary-extensions"; 108 - packageName = "binary-extensions"; 109 - version = "2.2.0"; 110 - src = fetchurl { 111 - url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"; 112 - sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="; 113 - }; 114 - }; 115 - "bl-4.1.0" = { 116 - name = "bl"; 117 - packageName = "bl"; 118 - version = "4.1.0"; 119 - src = fetchurl { 120 - url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz"; 121 - sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="; 122 - }; 123 - }; 124 - "brace-expansion-1.1.11" = { 125 - name = "brace-expansion"; 126 - packageName = "brace-expansion"; 127 - version = "1.1.11"; 128 - src = fetchurl { 129 - url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; 130 - sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; 131 - }; 132 - }; 133 - "braces-3.0.2" = { 134 - name = "braces"; 135 - packageName = "braces"; 136 - version = "3.0.2"; 137 - src = fetchurl { 138 - url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"; 139 - sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="; 140 - }; 141 - }; 142 - "browser-stdout-1.3.1" = { 143 - name = "browser-stdout"; 144 - packageName = "browser-stdout"; 145 - version = "1.3.1"; 146 - src = fetchurl { 147 - url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz"; 148 - sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="; 149 - }; 150 - }; 151 - "buffer-5.7.1" = { 152 - name = "buffer"; 153 - packageName = "buffer"; 154 - version = "5.7.1"; 155 - src = fetchurl { 156 - url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"; 157 - sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="; 158 - }; 159 - }; 160 - "buffer-writer-2.0.0" = { 161 - name = "buffer-writer"; 162 - packageName = "buffer-writer"; 163 - version = "2.0.0"; 164 - src = fetchurl { 165 - url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; 166 - sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; 167 - }; 168 - }; 169 - "busboy-0.2.4" = { 170 - name = "busboy"; 171 - packageName = "busboy"; 172 - version = "0.2.4"; 173 - src = fetchurl { 174 - url = "https://registry.npmjs.org/busboy/-/busboy-0.2.4.tgz"; 175 - sha512 = "hm0XN2dlecinlYSaB1TmSmuOaFlf6TKl0ITjqlszN+4O8z2eNwjUX3ak38dIXa7Pi7wme62QE7Wi2lC5L5Pu5A=="; 176 - }; 177 - }; 178 - "camelcase-6.3.0" = { 179 - name = "camelcase"; 180 - packageName = "camelcase"; 181 - version = "6.3.0"; 182 - src = fetchurl { 183 - url = "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"; 184 - sha512 = "Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="; 185 - }; 186 - }; 187 - "chalk-4.1.2" = { 188 - name = "chalk"; 189 - packageName = "chalk"; 190 - version = "4.1.2"; 191 - src = fetchurl { 192 - url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"; 193 - sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="; 194 - }; 195 - }; 196 - "chokidar-3.5.1" = { 197 - name = "chokidar"; 198 - packageName = "chokidar"; 199 - version = "3.5.1"; 200 - src = fetchurl { 201 - url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz"; 202 - sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw=="; 203 - }; 204 - }; 205 - "cliui-7.0.4" = { 206 - name = "cliui"; 207 - packageName = "cliui"; 208 - version = "7.0.4"; 209 - src = fetchurl { 210 - url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"; 211 - sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="; 212 - }; 213 - }; 214 - "color-convert-2.0.1" = { 215 - name = "color-convert"; 216 - packageName = "color-convert"; 217 - version = "2.0.1"; 218 - src = fetchurl { 219 - url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; 220 - sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; 221 - }; 222 - }; 223 - "color-name-1.1.4" = { 224 - name = "color-name"; 225 - packageName = "color-name"; 226 - version = "1.1.4"; 227 - src = fetchurl { 228 - url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; 229 - sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; 230 - }; 231 - }; 232 - "colors-1.0.3" = { 233 - name = "colors"; 234 - packageName = "colors"; 235 - version = "1.0.3"; 236 - src = fetchurl { 237 - url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"; 238 - sha512 = "pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw=="; 239 - }; 240 - }; 241 - "commander-2.11.0" = { 242 - name = "commander"; 243 - packageName = "commander"; 244 - version = "2.11.0"; 245 - src = fetchurl { 246 - url = "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz"; 247 - sha512 = "b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="; 248 - }; 249 - }; 250 - "concat-map-0.0.1" = { 251 - name = "concat-map"; 252 - packageName = "concat-map"; 253 - version = "0.0.1"; 254 - src = fetchurl { 255 - url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; 256 - sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="; 257 - }; 258 - }; 259 - "connect-3.7.0" = { 260 - name = "connect"; 261 - packageName = "connect"; 262 - version = "3.7.0"; 263 - src = fetchurl { 264 - url = "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz"; 265 - sha512 = "ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="; 266 - }; 267 - }; 268 - "connect-ratelimit-0.0.7" = { 269 - name = "connect-ratelimit"; 270 - packageName = "connect-ratelimit"; 271 - version = "0.0.7"; 272 - src = fetchurl { 273 - url = "https://registry.npmjs.org/connect-ratelimit/-/connect-ratelimit-0.0.7.tgz"; 274 - sha512 = "jFZp1le7Wow92pe6RU6GvyYp3PrXUEyVJxYyzYuf0tpmvpBnTAkARQL39IbSRoioRzQUBhxqEwvSQ7ClYSfGIQ=="; 275 - }; 276 - }; 277 - "connect-route-0.1.5" = { 278 - name = "connect-route"; 279 - packageName = "connect-route"; 280 - version = "0.1.5"; 281 - src = fetchurl { 282 - url = "https://registry.npmjs.org/connect-route/-/connect-route-0.1.5.tgz"; 283 - sha512 = "6OZGYeoKS7zzhCAGP+Du7WYjP4geK3ii0sZlS+Oqx+ANFPcS5t/jDJr9BuhgN9qPz1ld8iahiPxNrgJyHeZ3cw=="; 284 - }; 285 - }; 286 - "core-util-is-1.0.3" = { 287 - name = "core-util-is"; 288 - packageName = "core-util-is"; 289 - version = "1.0.3"; 290 - src = fetchurl { 291 - url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz"; 292 - sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="; 293 - }; 294 - }; 295 - "cycle-1.0.3" = { 296 - name = "cycle"; 297 - packageName = "cycle"; 298 - version = "1.0.3"; 299 - src = fetchurl { 300 - url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz"; 301 - sha512 = "TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA=="; 302 - }; 303 - }; 304 - "debug-2.6.9" = { 305 - name = "debug"; 306 - packageName = "debug"; 307 - version = "2.6.9"; 308 - src = fetchurl { 309 - url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; 310 - sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; 311 - }; 312 - }; 313 - "debug-4.3.1" = { 314 - name = "debug"; 315 - packageName = "debug"; 316 - version = "4.3.1"; 317 - src = fetchurl { 318 - url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz"; 319 - sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ=="; 320 - }; 321 - }; 322 - "decamelize-4.0.0" = { 323 - name = "decamelize"; 324 - packageName = "decamelize"; 325 - version = "4.0.0"; 326 - src = fetchurl { 327 - url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz"; 328 - sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="; 329 - }; 330 - }; 331 - "dicer-0.2.3" = { 332 - name = "dicer"; 333 - packageName = "dicer"; 334 - version = "0.2.3"; 335 - src = fetchurl { 336 - url = "https://registry.npmjs.org/dicer/-/dicer-0.2.3.tgz"; 337 - sha512 = "QcKKVGYt+ZKHOoX/Ph26ua7vVMlFtPjAejtktv9/IDsfm9x3+5sVZ+H6SIS+ACWoIaJ8cPm4W4ibhiwdLDqhIA=="; 338 - }; 339 - }; 340 - "diff-5.0.0" = { 341 - name = "diff"; 342 - packageName = "diff"; 343 - version = "5.0.0"; 344 - src = fetchurl { 345 - url = "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz"; 346 - sha512 = "/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="; 347 - }; 348 - }; 349 - "ee-first-1.1.1" = { 350 - name = "ee-first"; 351 - packageName = "ee-first"; 352 - version = "1.1.1"; 353 - src = fetchurl { 354 - url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; 355 - sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="; 356 - }; 357 - }; 358 - "emoji-regex-8.0.0" = { 359 - name = "emoji-regex"; 360 - packageName = "emoji-regex"; 361 - version = "8.0.0"; 362 - src = fetchurl { 363 - url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"; 364 - sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="; 365 - }; 366 - }; 367 - "encodeurl-1.0.2" = { 368 - name = "encodeurl"; 369 - packageName = "encodeurl"; 370 - version = "1.0.2"; 371 - src = fetchurl { 372 - url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; 373 - sha512 = "TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="; 374 - }; 375 - }; 376 - "escalade-3.1.1" = { 377 - name = "escalade"; 378 - packageName = "escalade"; 379 - version = "3.1.1"; 380 - src = fetchurl { 381 - url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"; 382 - sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="; 383 - }; 384 - }; 385 - "escape-html-1.0.3" = { 386 - name = "escape-html"; 387 - packageName = "escape-html"; 388 - version = "1.0.3"; 389 - src = fetchurl { 390 - url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; 391 - sha512 = "NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="; 392 - }; 393 - }; 394 - "escape-string-regexp-4.0.0" = { 395 - name = "escape-string-regexp"; 396 - packageName = "escape-string-regexp"; 397 - version = "4.0.0"; 398 - src = fetchurl { 399 - url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"; 400 - sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="; 401 - }; 402 - }; 403 - "eyes-0.1.8" = { 404 - name = "eyes"; 405 - packageName = "eyes"; 406 - version = "0.1.8"; 407 - src = fetchurl { 408 - url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz"; 409 - sha512 = "GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="; 410 - }; 411 - }; 412 - "fd-0.0.3" = { 413 - name = "fd"; 414 - packageName = "fd"; 415 - version = "0.0.3"; 416 - src = fetchurl { 417 - url = "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz"; 418 - sha512 = "iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA=="; 419 - }; 420 - }; 421 - "fill-range-7.0.1" = { 422 - name = "fill-range"; 423 - packageName = "fill-range"; 424 - version = "7.0.1"; 425 - src = fetchurl { 426 - url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"; 427 - sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="; 428 - }; 429 - }; 430 - "finalhandler-1.1.2" = { 431 - name = "finalhandler"; 432 - packageName = "finalhandler"; 433 - version = "1.1.2"; 434 - src = fetchurl { 435 - url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; 436 - sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; 437 - }; 438 - }; 439 - "find-up-5.0.0" = { 440 - name = "find-up"; 441 - packageName = "find-up"; 442 - version = "5.0.0"; 443 - src = fetchurl { 444 - url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"; 445 - sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="; 446 - }; 447 - }; 448 - "flat-5.0.2" = { 449 - name = "flat"; 450 - packageName = "flat"; 451 - version = "5.0.2"; 452 - src = fetchurl { 453 - url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz"; 454 - sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="; 455 - }; 456 - }; 457 - "fs.realpath-1.0.0" = { 458 - name = "fs.realpath"; 459 - packageName = "fs.realpath"; 460 - version = "1.0.0"; 461 - src = fetchurl { 462 - url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; 463 - sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="; 464 - }; 465 - }; 466 - "fsevents-2.3.2" = { 467 - name = "fsevents"; 468 - packageName = "fsevents"; 469 - version = "2.3.2"; 470 - src = fetchurl { 471 - url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"; 472 - sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="; 473 - }; 474 - }; 475 - "get-caller-file-2.0.5" = { 476 - name = "get-caller-file"; 477 - packageName = "get-caller-file"; 478 - version = "2.0.5"; 479 - src = fetchurl { 480 - url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; 481 - sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; 482 - }; 483 - }; 484 - "glob-7.1.6" = { 485 - name = "glob"; 486 - packageName = "glob"; 487 - version = "7.1.6"; 488 - src = fetchurl { 489 - url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"; 490 - sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA=="; 491 - }; 492 - }; 493 - "glob-parent-5.1.2" = { 494 - name = "glob-parent"; 495 - packageName = "glob-parent"; 496 - version = "5.1.2"; 497 - src = fetchurl { 498 - url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"; 499 - sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="; 500 - }; 501 - }; 502 - "graceful-fs-4.2.10" = { 503 - name = "graceful-fs"; 504 - packageName = "graceful-fs"; 505 - version = "4.2.10"; 506 - src = fetchurl { 507 - url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"; 508 - sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="; 509 - }; 510 - }; 511 - "growl-1.10.5" = { 512 - name = "growl"; 513 - packageName = "growl"; 514 - version = "1.10.5"; 515 - src = fetchurl { 516 - url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz"; 517 - sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="; 518 - }; 519 - }; 520 - "has-flag-4.0.0" = { 521 - name = "has-flag"; 522 - packageName = "has-flag"; 523 - version = "4.0.0"; 524 - src = fetchurl { 525 - url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; 526 - sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; 527 - }; 528 - }; 529 - "he-1.2.0" = { 530 - name = "he"; 531 - packageName = "he"; 532 - version = "1.2.0"; 533 - src = fetchurl { 534 - url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; 535 - sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; 536 - }; 537 - }; 538 - "ieee754-1.2.1" = { 539 - name = "ieee754"; 540 - packageName = "ieee754"; 541 - version = "1.2.1"; 542 - src = fetchurl { 543 - url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"; 544 - sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; 545 - }; 546 - }; 547 - "inflight-1.0.6" = { 548 - name = "inflight"; 549 - packageName = "inflight"; 550 - version = "1.0.6"; 551 - src = fetchurl { 552 - url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; 553 - sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="; 554 - }; 555 - }; 556 - "inherits-2.0.4" = { 557 - name = "inherits"; 558 - packageName = "inherits"; 559 - version = "2.0.4"; 560 - src = fetchurl { 561 - url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; 562 - sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; 563 - }; 564 - }; 565 - "is-binary-path-2.1.0" = { 566 - name = "is-binary-path"; 567 - packageName = "is-binary-path"; 568 - version = "2.1.0"; 569 - src = fetchurl { 570 - url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"; 571 - sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="; 572 - }; 573 - }; 574 - "is-extglob-2.1.1" = { 575 - name = "is-extglob"; 576 - packageName = "is-extglob"; 577 - version = "2.1.1"; 578 - src = fetchurl { 579 - url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; 580 - sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="; 581 - }; 582 - }; 583 - "is-fullwidth-code-point-2.0.0" = { 584 - name = "is-fullwidth-code-point"; 585 - packageName = "is-fullwidth-code-point"; 586 - version = "2.0.0"; 587 - src = fetchurl { 588 - url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; 589 - sha512 = "VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="; 590 - }; 591 - }; 592 - "is-fullwidth-code-point-3.0.0" = { 593 - name = "is-fullwidth-code-point"; 594 - packageName = "is-fullwidth-code-point"; 595 - version = "3.0.0"; 596 - src = fetchurl { 597 - url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"; 598 - sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="; 599 - }; 600 - }; 601 - "is-glob-4.0.3" = { 602 - name = "is-glob"; 603 - packageName = "is-glob"; 604 - version = "4.0.3"; 605 - src = fetchurl { 606 - url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"; 607 - sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="; 608 - }; 609 - }; 610 - "is-number-7.0.0" = { 611 - name = "is-number"; 612 - packageName = "is-number"; 613 - version = "7.0.0"; 614 - src = fetchurl { 615 - url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"; 616 - sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="; 617 - }; 618 - }; 619 - "is-plain-obj-2.1.0" = { 620 - name = "is-plain-obj"; 621 - packageName = "is-plain-obj"; 622 - version = "2.1.0"; 623 - src = fetchurl { 624 - url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz"; 625 - sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="; 626 - }; 627 - }; 628 - "isarray-0.0.1" = { 629 - name = "isarray"; 630 - packageName = "isarray"; 631 - version = "0.0.1"; 632 - src = fetchurl { 633 - url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"; 634 - sha512 = "D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="; 635 - }; 636 - }; 637 - "isexe-2.0.0" = { 638 - name = "isexe"; 639 - packageName = "isexe"; 640 - version = "2.0.0"; 641 - src = fetchurl { 642 - url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; 643 - sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="; 644 - }; 645 - }; 646 - "isstream-0.1.2" = { 647 - name = "isstream"; 648 - packageName = "isstream"; 649 - version = "0.1.2"; 650 - src = fetchurl { 651 - url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; 652 - sha512 = "Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="; 653 - }; 654 - }; 655 - "js-yaml-4.0.0" = { 656 - name = "js-yaml"; 657 - packageName = "js-yaml"; 658 - version = "4.0.0"; 659 - src = fetchurl { 660 - url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz"; 661 - sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q=="; 662 - }; 663 - }; 664 - "locate-path-6.0.0" = { 665 - name = "locate-path"; 666 - packageName = "locate-path"; 667 - version = "6.0.0"; 668 - src = fetchurl { 669 - url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"; 670 - sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="; 671 - }; 672 - }; 673 - "lodash-4.17.21" = { 674 - name = "lodash"; 675 - packageName = "lodash"; 676 - version = "4.17.21"; 677 - src = fetchurl { 678 - url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"; 679 - sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="; 680 - }; 681 - }; 682 - "log-symbols-4.0.0" = { 683 - name = "log-symbols"; 684 - packageName = "log-symbols"; 685 - version = "4.0.0"; 686 - src = fetchurl { 687 - url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz"; 688 - sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA=="; 689 - }; 690 - }; 691 - "lru-cache-4.1.5" = { 692 - name = "lru-cache"; 693 - packageName = "lru-cache"; 694 - version = "4.1.5"; 695 - src = fetchurl { 696 - url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"; 697 - sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="; 698 - }; 699 - }; 700 - "mime-2.6.0" = { 701 - name = "mime"; 702 - packageName = "mime"; 703 - version = "2.6.0"; 704 - src = fetchurl { 705 - url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz"; 706 - sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="; 707 - }; 708 - }; 709 - "minimatch-3.0.4" = { 710 - name = "minimatch"; 711 - packageName = "minimatch"; 712 - version = "3.0.4"; 713 - src = fetchurl { 714 - url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; 715 - sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; 716 - }; 717 - }; 718 - "mocha-8.4.0" = { 719 - name = "mocha"; 720 - packageName = "mocha"; 721 - version = "8.4.0"; 722 - src = fetchurl { 723 - url = "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz"; 724 - sha512 = "hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ=="; 725 - }; 726 - }; 727 - "ms-2.0.0" = { 728 - name = "ms"; 729 - packageName = "ms"; 730 - version = "2.0.0"; 731 - src = fetchurl { 732 - url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; 733 - sha512 = "Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="; 734 - }; 735 - }; 736 - "ms-2.1.2" = { 737 - name = "ms"; 738 - packageName = "ms"; 739 - version = "2.1.2"; 740 - src = fetchurl { 741 - url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"; 742 - sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="; 743 - }; 744 - }; 745 - "ms-2.1.3" = { 746 - name = "ms"; 747 - packageName = "ms"; 748 - version = "2.1.3"; 749 - src = fetchurl { 750 - url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"; 751 - sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="; 752 - }; 753 - }; 754 - "nanoid-3.1.20" = { 755 - name = "nanoid"; 756 - packageName = "nanoid"; 757 - version = "3.1.20"; 758 - src = fetchurl { 759 - url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz"; 760 - sha512 = "a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw=="; 761 - }; 762 - }; 763 - "negotiator-0.6.3" = { 764 - name = "negotiator"; 765 - packageName = "negotiator"; 766 - version = "0.6.3"; 767 - src = fetchurl { 768 - url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"; 769 - sha512 = "+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="; 770 - }; 771 - }; 772 - "normalize-path-3.0.0" = { 773 - name = "normalize-path"; 774 - packageName = "normalize-path"; 775 - version = "3.0.0"; 776 - src = fetchurl { 777 - url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"; 778 - sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="; 779 - }; 780 - }; 781 - "on-finished-2.3.0" = { 782 - name = "on-finished"; 783 - packageName = "on-finished"; 784 - version = "2.3.0"; 785 - src = fetchurl { 786 - url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; 787 - sha512 = "ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="; 788 - }; 789 - }; 790 - "once-1.4.0" = { 791 - name = "once"; 792 - packageName = "once"; 793 - version = "1.4.0"; 794 - src = fetchurl { 795 - url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; 796 - sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="; 797 - }; 798 - }; 799 - "p-limit-3.1.0" = { 800 - name = "p-limit"; 801 - packageName = "p-limit"; 802 - version = "3.1.0"; 803 - src = fetchurl { 804 - url = "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"; 805 - sha512 = "TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="; 806 - }; 807 - }; 808 - "p-locate-5.0.0" = { 809 - name = "p-locate"; 810 - packageName = "p-locate"; 811 - version = "5.0.0"; 812 - src = fetchurl { 813 - url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"; 814 - sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="; 815 - }; 816 - }; 817 - "packet-reader-1.0.0" = { 818 - name = "packet-reader"; 819 - packageName = "packet-reader"; 820 - version = "1.0.0"; 821 - src = fetchurl { 822 - url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; 823 - sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; 824 - }; 825 - }; 826 - "parseurl-1.3.3" = { 827 - name = "parseurl"; 828 - packageName = "parseurl"; 829 - version = "1.3.3"; 830 - src = fetchurl { 831 - url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; 832 - sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; 833 - }; 834 - }; 835 - "path-exists-4.0.0" = { 836 - name = "path-exists"; 837 - packageName = "path-exists"; 838 - version = "4.0.0"; 839 - src = fetchurl { 840 - url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"; 841 - sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="; 842 - }; 843 - }; 844 - "path-is-absolute-1.0.1" = { 845 - name = "path-is-absolute"; 846 - packageName = "path-is-absolute"; 847 - version = "1.0.1"; 848 - src = fetchurl { 849 - url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; 850 - sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="; 851 - }; 852 - }; 853 - "pg-8.10.0" = { 854 - name = "pg"; 855 - packageName = "pg"; 856 - version = "8.10.0"; 857 - src = fetchurl { 858 - url = "https://registry.npmjs.org/pg/-/pg-8.10.0.tgz"; 859 - sha512 = "ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ=="; 860 - }; 861 - }; 862 - "pg-connection-string-2.5.0" = { 863 - name = "pg-connection-string"; 864 - packageName = "pg-connection-string"; 865 - version = "2.5.0"; 866 - src = fetchurl { 867 - url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz"; 868 - sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="; 869 - }; 870 - }; 871 - "pg-int8-1.0.1" = { 872 - name = "pg-int8"; 873 - packageName = "pg-int8"; 874 - version = "1.0.1"; 875 - src = fetchurl { 876 - url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; 877 - sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; 878 - }; 879 - }; 880 - "pg-pool-3.6.0" = { 881 - name = "pg-pool"; 882 - packageName = "pg-pool"; 883 - version = "3.6.0"; 884 - src = fetchurl { 885 - url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz"; 886 - sha512 = "clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ=="; 887 - }; 888 - }; 889 - "pg-protocol-1.6.0" = { 890 - name = "pg-protocol"; 891 - packageName = "pg-protocol"; 892 - version = "1.6.0"; 893 - src = fetchurl { 894 - url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz"; 895 - sha512 = "M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q=="; 896 - }; 897 - }; 898 - "pg-types-2.2.0" = { 899 - name = "pg-types"; 900 - packageName = "pg-types"; 901 - version = "2.2.0"; 902 - src = fetchurl { 903 - url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; 904 - sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; 905 - }; 906 - }; 907 - "pgpass-1.0.5" = { 908 - name = "pgpass"; 909 - packageName = "pgpass"; 910 - version = "1.0.5"; 911 - src = fetchurl { 912 - url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz"; 913 - sha512 = "FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug=="; 914 - }; 915 - }; 916 - "picomatch-2.3.1" = { 917 - name = "picomatch"; 918 - packageName = "picomatch"; 919 - version = "2.3.1"; 920 - src = fetchurl { 921 - url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"; 922 - sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="; 923 - }; 924 - }; 925 - "postgres-array-2.0.0" = { 926 - name = "postgres-array"; 927 - packageName = "postgres-array"; 928 - version = "2.0.0"; 929 - src = fetchurl { 930 - url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; 931 - sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; 932 - }; 933 - }; 934 - "postgres-bytea-1.0.0" = { 935 - name = "postgres-bytea"; 936 - packageName = "postgres-bytea"; 937 - version = "1.0.0"; 938 - src = fetchurl { 939 - url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; 940 - sha512 = "xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="; 941 - }; 942 - }; 943 - "postgres-date-1.0.7" = { 944 - name = "postgres-date"; 945 - packageName = "postgres-date"; 946 - version = "1.0.7"; 947 - src = fetchurl { 948 - url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; 949 - sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; 950 - }; 951 - }; 952 - "postgres-interval-1.2.0" = { 953 - name = "postgres-interval"; 954 - packageName = "postgres-interval"; 955 - version = "1.2.0"; 956 - src = fetchurl { 957 - url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; 958 - sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; 959 - }; 960 - }; 961 - "pseudomap-1.0.2" = { 962 - name = "pseudomap"; 963 - packageName = "pseudomap"; 964 - version = "1.0.2"; 965 - src = fetchurl { 966 - url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"; 967 - sha512 = "b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="; 968 - }; 969 - }; 970 - "randombytes-2.1.0" = { 971 - name = "randombytes"; 972 - packageName = "randombytes"; 973 - version = "2.1.0"; 974 - src = fetchurl { 975 - url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"; 976 - sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="; 977 - }; 978 - }; 979 - "readable-stream-1.1.14" = { 980 - name = "readable-stream"; 981 - packageName = "readable-stream"; 982 - version = "1.1.14"; 983 - src = fetchurl { 984 - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"; 985 - sha512 = "+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ=="; 986 - }; 987 - }; 988 - "readable-stream-3.6.1" = { 989 - name = "readable-stream"; 990 - packageName = "readable-stream"; 991 - version = "3.6.1"; 992 - src = fetchurl { 993 - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz"; 994 - sha512 = "+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ=="; 995 - }; 996 - }; 997 - "readdirp-3.5.0" = { 998 - name = "readdirp"; 999 - packageName = "readdirp"; 1000 - version = "3.5.0"; 1001 - src = fetchurl { 1002 - url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz"; 1003 - sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ=="; 1004 - }; 1005 - }; 1006 - "redis-0.8.1" = { 1007 - name = "redis"; 1008 - packageName = "redis"; 1009 - version = "0.8.1"; 1010 - src = fetchurl { 1011 - url = "https://registry.npmjs.org/redis/-/redis-0.8.1.tgz"; 1012 - sha512 = "XiXVEcXsJ6N71BAltCQ5vDOPhWeFyIaOqInVpXnRghK0WAc7ZPwXEjX6rkBCrlsnX6gXOPvsUvAzb5KhvajbiQ=="; 1013 - }; 1014 - }; 1015 - "redis-url-0.1.0" = { 1016 - name = "redis-url"; 1017 - packageName = "redis-url"; 1018 - version = "0.1.0"; 1019 - src = fetchurl { 1020 - url = "https://registry.npmjs.org/redis-url/-/redis-url-0.1.0.tgz"; 1021 - sha512 = "LVc0kybiwS2FY0uhe7Pjs4hGqHE+ygI3v7WQu+Qmr3acJ5atGid6vc98e2S9FoyIwfAekGWRwBFoRHxJnqW0Qw=="; 1022 - }; 1023 - }; 1024 - "require-directory-2.1.1" = { 1025 - name = "require-directory"; 1026 - packageName = "require-directory"; 1027 - version = "2.1.1"; 1028 - src = fetchurl { 1029 - url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; 1030 - sha512 = "fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="; 1031 - }; 1032 - }; 1033 - "safe-buffer-5.2.1" = { 1034 - name = "safe-buffer"; 1035 - packageName = "safe-buffer"; 1036 - version = "5.2.1"; 1037 - src = fetchurl { 1038 - url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"; 1039 - sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="; 1040 - }; 1041 - }; 1042 - "serialize-javascript-5.0.1" = { 1043 - name = "serialize-javascript"; 1044 - packageName = "serialize-javascript"; 1045 - version = "5.0.1"; 1046 - src = fetchurl { 1047 - url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz"; 1048 - sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA=="; 1049 - }; 1050 - }; 1051 - "source-map-0.6.1" = { 1052 - name = "source-map"; 1053 - packageName = "source-map"; 1054 - version = "0.6.1"; 1055 - src = fetchurl { 1056 - url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; 1057 - sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; 1058 - }; 1059 - }; 1060 - "split2-4.1.0" = { 1061 - name = "split2"; 1062 - packageName = "split2"; 1063 - version = "4.1.0"; 1064 - src = fetchurl { 1065 - url = "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz"; 1066 - sha512 = "VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ=="; 1067 - }; 1068 - }; 1069 - "st-2.0.0" = { 1070 - name = "st"; 1071 - packageName = "st"; 1072 - version = "2.0.0"; 1073 - src = fetchurl { 1074 - url = "https://registry.npmjs.org/st/-/st-2.0.0.tgz"; 1075 - sha512 = "drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw=="; 1076 - }; 1077 - }; 1078 - "stack-trace-0.0.10" = { 1079 - name = "stack-trace"; 1080 - packageName = "stack-trace"; 1081 - version = "0.0.10"; 1082 - src = fetchurl { 1083 - url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"; 1084 - sha512 = "KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="; 1085 - }; 1086 - }; 1087 - "statuses-1.5.0" = { 1088 - name = "statuses"; 1089 - packageName = "statuses"; 1090 - version = "1.5.0"; 1091 - src = fetchurl { 1092 - url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; 1093 - sha512 = "OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="; 1094 - }; 1095 - }; 1096 - "streamsearch-0.1.2" = { 1097 - name = "streamsearch"; 1098 - packageName = "streamsearch"; 1099 - version = "0.1.2"; 1100 - src = fetchurl { 1101 - url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz"; 1102 - sha512 = "jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA=="; 1103 - }; 1104 - }; 1105 - "string-width-2.1.1" = { 1106 - name = "string-width"; 1107 - packageName = "string-width"; 1108 - version = "2.1.1"; 1109 - src = fetchurl { 1110 - url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; 1111 - sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; 1112 - }; 1113 - }; 1114 - "string-width-4.2.3" = { 1115 - name = "string-width"; 1116 - packageName = "string-width"; 1117 - version = "4.2.3"; 1118 - src = fetchurl { 1119 - url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"; 1120 - sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="; 1121 - }; 1122 - }; 1123 - "string_decoder-0.10.31" = { 1124 - name = "string_decoder"; 1125 - packageName = "string_decoder"; 1126 - version = "0.10.31"; 1127 - src = fetchurl { 1128 - url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"; 1129 - sha512 = "ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="; 1130 - }; 1131 - }; 1132 - "string_decoder-1.3.0" = { 1133 - name = "string_decoder"; 1134 - packageName = "string_decoder"; 1135 - version = "1.3.0"; 1136 - src = fetchurl { 1137 - url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"; 1138 - sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="; 1139 - }; 1140 - }; 1141 - "strip-ansi-4.0.0" = { 1142 - name = "strip-ansi"; 1143 - packageName = "strip-ansi"; 1144 - version = "4.0.0"; 1145 - src = fetchurl { 1146 - url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; 1147 - sha512 = "4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow=="; 1148 - }; 1149 - }; 1150 - "strip-ansi-6.0.1" = { 1151 - name = "strip-ansi"; 1152 - packageName = "strip-ansi"; 1153 - version = "6.0.1"; 1154 - src = fetchurl { 1155 - url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"; 1156 - sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="; 1157 - }; 1158 - }; 1159 - "strip-json-comments-3.1.1" = { 1160 - name = "strip-json-comments"; 1161 - packageName = "strip-json-comments"; 1162 - version = "3.1.1"; 1163 - src = fetchurl { 1164 - url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"; 1165 - sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="; 1166 - }; 1167 - }; 1168 - "supports-color-7.2.0" = { 1169 - name = "supports-color"; 1170 - packageName = "supports-color"; 1171 - version = "7.2.0"; 1172 - src = fetchurl { 1173 - url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; 1174 - sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; 1175 - }; 1176 - }; 1177 - "supports-color-8.1.1" = { 1178 - name = "supports-color"; 1179 - packageName = "supports-color"; 1180 - version = "8.1.1"; 1181 - src = fetchurl { 1182 - url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"; 1183 - sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="; 1184 - }; 1185 - }; 1186 - "to-regex-range-5.0.1" = { 1187 - name = "to-regex-range"; 1188 - packageName = "to-regex-range"; 1189 - version = "5.0.1"; 1190 - src = fetchurl { 1191 - url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"; 1192 - sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="; 1193 - }; 1194 - }; 1195 - "uglify-js-3.1.6" = { 1196 - name = "uglify-js"; 1197 - packageName = "uglify-js"; 1198 - version = "3.1.6"; 1199 - src = fetchurl { 1200 - url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.6.tgz"; 1201 - sha512 = "/rseyxEKEVMBo8279lqpoJgD6C/i/CIi+9TJDvWmb+Xo6mqMKwjA8Io3IMHlcXQzj99feR6zrN8m3wqqvm/nYA=="; 1202 - }; 1203 - }; 1204 - "unpipe-1.0.0" = { 1205 - name = "unpipe"; 1206 - packageName = "unpipe"; 1207 - version = "1.0.0"; 1208 - src = fetchurl { 1209 - url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; 1210 - sha512 = "pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="; 1211 - }; 1212 - }; 1213 - "util-deprecate-1.0.2" = { 1214 - name = "util-deprecate"; 1215 - packageName = "util-deprecate"; 1216 - version = "1.0.2"; 1217 - src = fetchurl { 1218 - url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; 1219 - sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="; 1220 - }; 1221 - }; 1222 - "utils-merge-1.0.1" = { 1223 - name = "utils-merge"; 1224 - packageName = "utils-merge"; 1225 - version = "1.0.1"; 1226 - src = fetchurl { 1227 - url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; 1228 - sha512 = "pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="; 1229 - }; 1230 - }; 1231 - "which-2.0.2" = { 1232 - name = "which"; 1233 - packageName = "which"; 1234 - version = "2.0.2"; 1235 - src = fetchurl { 1236 - url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz"; 1237 - sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="; 1238 - }; 1239 - }; 1240 - "wide-align-1.1.3" = { 1241 - name = "wide-align"; 1242 - packageName = "wide-align"; 1243 - version = "1.1.3"; 1244 - src = fetchurl { 1245 - url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; 1246 - sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; 1247 - }; 1248 - }; 1249 - "winston-2.4.7" = { 1250 - name = "winston"; 1251 - packageName = "winston"; 1252 - version = "2.4.7"; 1253 - src = fetchurl { 1254 - url = "https://registry.npmjs.org/winston/-/winston-2.4.7.tgz"; 1255 - sha512 = "vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg=="; 1256 - }; 1257 - }; 1258 - "workerpool-6.1.0" = { 1259 - name = "workerpool"; 1260 - packageName = "workerpool"; 1261 - version = "6.1.0"; 1262 - src = fetchurl { 1263 - url = "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz"; 1264 - sha512 = "toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg=="; 1265 - }; 1266 - }; 1267 - "wrap-ansi-7.0.0" = { 1268 - name = "wrap-ansi"; 1269 - packageName = "wrap-ansi"; 1270 - version = "7.0.0"; 1271 - src = fetchurl { 1272 - url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"; 1273 - sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="; 1274 - }; 1275 - }; 1276 - "wrappy-1.0.2" = { 1277 - name = "wrappy"; 1278 - packageName = "wrappy"; 1279 - version = "1.0.2"; 1280 - src = fetchurl { 1281 - url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; 1282 - sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="; 1283 - }; 1284 - }; 1285 - "xtend-4.0.2" = { 1286 - name = "xtend"; 1287 - packageName = "xtend"; 1288 - version = "4.0.2"; 1289 - src = fetchurl { 1290 - url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; 1291 - sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; 1292 - }; 1293 - }; 1294 - "y18n-5.0.8" = { 1295 - name = "y18n"; 1296 - packageName = "y18n"; 1297 - version = "5.0.8"; 1298 - src = fetchurl { 1299 - url = "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"; 1300 - sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="; 1301 - }; 1302 - }; 1303 - "yallist-2.1.2" = { 1304 - name = "yallist"; 1305 - packageName = "yallist"; 1306 - version = "2.1.2"; 1307 - src = fetchurl { 1308 - url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"; 1309 - sha512 = "ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A=="; 1310 - }; 1311 - }; 1312 - "yargs-16.2.0" = { 1313 - name = "yargs"; 1314 - packageName = "yargs"; 1315 - version = "16.2.0"; 1316 - src = fetchurl { 1317 - url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"; 1318 - sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="; 1319 - }; 1320 - }; 1321 - "yargs-parser-20.2.4" = { 1322 - name = "yargs-parser"; 1323 - packageName = "yargs-parser"; 1324 - version = "20.2.4"; 1325 - src = fetchurl { 1326 - url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz"; 1327 - sha512 = "WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="; 1328 - }; 1329 - }; 1330 - "yargs-unparser-2.0.0" = { 1331 - name = "yargs-unparser"; 1332 - packageName = "yargs-unparser"; 1333 - version = "2.0.0"; 1334 - src = fetchurl { 1335 - url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz"; 1336 - sha512 = "7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA=="; 1337 - }; 1338 - }; 1339 - "yocto-queue-0.1.0" = { 1340 - name = "yocto-queue"; 1341 - packageName = "yocto-queue"; 1342 - version = "0.1.0"; 1343 - src = fetchurl { 1344 - url = "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"; 1345 - sha512 = "rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="; 1346 - }; 1347 - }; 1348 - }; 1349 - args = { 1350 - name = "haste"; 1351 - packageName = "haste"; 1352 - version = "0.1.0"; 1353 - src = ../../../../../../../../../nix/store/v45nw2igqcjw58j7ns9xrqj6f6n3jafd-source; 1354 - dependencies = [ 1355 - sources."@ungap/promise-all-settled-1.1.2" 1356 - sources."ansi-colors-4.1.1" 1357 - sources."ansi-regex-3.0.1" 1358 - sources."ansi-styles-4.3.0" 1359 - sources."anymatch-3.1.3" 1360 - sources."argparse-2.0.1" 1361 - sources."async-2.6.4" 1362 - sources."async-cache-1.1.0" 1363 - sources."balanced-match-1.0.2" 1364 - sources."base64-js-1.5.1" 1365 - sources."binary-extensions-2.2.0" 1366 - (sources."bl-4.1.0" // { 1367 - dependencies = [ 1368 - sources."readable-stream-3.6.1" 1369 - sources."string_decoder-1.3.0" 1370 - ]; 1371 - }) 1372 - sources."brace-expansion-1.1.11" 1373 - sources."braces-3.0.2" 1374 - sources."browser-stdout-1.3.1" 1375 - sources."buffer-5.7.1" 1376 - sources."buffer-writer-2.0.0" 1377 - sources."busboy-0.2.4" 1378 - sources."camelcase-6.3.0" 1379 - (sources."chalk-4.1.2" // { 1380 - dependencies = [ 1381 - sources."supports-color-7.2.0" 1382 - ]; 1383 - }) 1384 - sources."chokidar-3.5.1" 1385 - (sources."cliui-7.0.4" // { 1386 - dependencies = [ 1387 - sources."ansi-regex-5.0.1" 1388 - sources."is-fullwidth-code-point-3.0.0" 1389 - sources."string-width-4.2.3" 1390 - sources."strip-ansi-6.0.1" 1391 - ]; 1392 - }) 1393 - sources."color-convert-2.0.1" 1394 - sources."color-name-1.1.4" 1395 - sources."colors-1.0.3" 1396 - sources."commander-2.11.0" 1397 - sources."concat-map-0.0.1" 1398 - sources."connect-3.7.0" 1399 - sources."connect-ratelimit-0.0.7" 1400 - sources."connect-route-0.1.5" 1401 - sources."core-util-is-1.0.3" 1402 - sources."cycle-1.0.3" 1403 - sources."debug-2.6.9" 1404 - sources."decamelize-4.0.0" 1405 - sources."dicer-0.2.3" 1406 - sources."diff-5.0.0" 1407 - sources."ee-first-1.1.1" 1408 - sources."emoji-regex-8.0.0" 1409 - sources."encodeurl-1.0.2" 1410 - sources."escalade-3.1.1" 1411 - sources."escape-html-1.0.3" 1412 - sources."escape-string-regexp-4.0.0" 1413 - sources."eyes-0.1.8" 1414 - sources."fd-0.0.3" 1415 - sources."fill-range-7.0.1" 1416 - sources."finalhandler-1.1.2" 1417 - sources."find-up-5.0.0" 1418 - sources."flat-5.0.2" 1419 - sources."fs.realpath-1.0.0" 1420 - sources."fsevents-2.3.2" 1421 - sources."get-caller-file-2.0.5" 1422 - sources."glob-7.1.6" 1423 - sources."glob-parent-5.1.2" 1424 - sources."graceful-fs-4.2.10" 1425 - sources."growl-1.10.5" 1426 - sources."has-flag-4.0.0" 1427 - sources."he-1.2.0" 1428 - sources."ieee754-1.2.1" 1429 - sources."inflight-1.0.6" 1430 - sources."inherits-2.0.4" 1431 - sources."is-binary-path-2.1.0" 1432 - sources."is-extglob-2.1.1" 1433 - sources."is-fullwidth-code-point-2.0.0" 1434 - sources."is-glob-4.0.3" 1435 - sources."is-number-7.0.0" 1436 - sources."is-plain-obj-2.1.0" 1437 - sources."isarray-0.0.1" 1438 - sources."isexe-2.0.0" 1439 - sources."isstream-0.1.2" 1440 - sources."js-yaml-4.0.0" 1441 - sources."locate-path-6.0.0" 1442 - sources."lodash-4.17.21" 1443 - sources."log-symbols-4.0.0" 1444 - sources."lru-cache-4.1.5" 1445 - sources."mime-2.6.0" 1446 - sources."minimatch-3.0.4" 1447 - (sources."mocha-8.4.0" // { 1448 - dependencies = [ 1449 - (sources."debug-4.3.1" // { 1450 - dependencies = [ 1451 - sources."ms-2.1.2" 1452 - ]; 1453 - }) 1454 - sources."ms-2.1.3" 1455 - ]; 1456 - }) 1457 - sources."ms-2.0.0" 1458 - sources."nanoid-3.1.20" 1459 - sources."negotiator-0.6.3" 1460 - sources."normalize-path-3.0.0" 1461 - sources."on-finished-2.3.0" 1462 - sources."once-1.4.0" 1463 - sources."p-limit-3.1.0" 1464 - sources."p-locate-5.0.0" 1465 - sources."packet-reader-1.0.0" 1466 - sources."parseurl-1.3.3" 1467 - sources."path-exists-4.0.0" 1468 - sources."path-is-absolute-1.0.1" 1469 - sources."pg-8.10.0" 1470 - sources."pg-connection-string-2.5.0" 1471 - sources."pg-int8-1.0.1" 1472 - sources."pg-pool-3.6.0" 1473 - sources."pg-protocol-1.6.0" 1474 - sources."pg-types-2.2.0" 1475 - sources."pgpass-1.0.5" 1476 - sources."picomatch-2.3.1" 1477 - sources."postgres-array-2.0.0" 1478 - sources."postgres-bytea-1.0.0" 1479 - sources."postgres-date-1.0.7" 1480 - sources."postgres-interval-1.2.0" 1481 - sources."pseudomap-1.0.2" 1482 - sources."randombytes-2.1.0" 1483 - sources."readable-stream-1.1.14" 1484 - sources."readdirp-3.5.0" 1485 - sources."redis-0.8.1" 1486 - sources."redis-url-0.1.0" 1487 - sources."require-directory-2.1.1" 1488 - sources."safe-buffer-5.2.1" 1489 - sources."serialize-javascript-5.0.1" 1490 - sources."source-map-0.6.1" 1491 - sources."split2-4.1.0" 1492 - sources."st-2.0.0" 1493 - sources."stack-trace-0.0.10" 1494 - sources."statuses-1.5.0" 1495 - sources."streamsearch-0.1.2" 1496 - sources."string-width-2.1.1" 1497 - sources."string_decoder-0.10.31" 1498 - sources."strip-ansi-4.0.0" 1499 - sources."strip-json-comments-3.1.1" 1500 - sources."supports-color-8.1.1" 1501 - sources."to-regex-range-5.0.1" 1502 - sources."uglify-js-3.1.6" 1503 - sources."unpipe-1.0.0" 1504 - sources."util-deprecate-1.0.2" 1505 - sources."utils-merge-1.0.1" 1506 - sources."which-2.0.2" 1507 - sources."wide-align-1.1.3" 1508 - sources."winston-2.4.7" 1509 - sources."workerpool-6.1.0" 1510 - (sources."wrap-ansi-7.0.0" // { 1511 - dependencies = [ 1512 - sources."ansi-regex-5.0.1" 1513 - sources."is-fullwidth-code-point-3.0.0" 1514 - sources."string-width-4.2.3" 1515 - sources."strip-ansi-6.0.1" 1516 - ]; 1517 - }) 1518 - sources."wrappy-1.0.2" 1519 - sources."xtend-4.0.2" 1520 - sources."y18n-5.0.8" 1521 - sources."yallist-2.1.2" 1522 - (sources."yargs-16.2.0" // { 1523 - dependencies = [ 1524 - sources."ansi-regex-5.0.1" 1525 - sources."is-fullwidth-code-point-3.0.0" 1526 - sources."string-width-4.2.3" 1527 - sources."strip-ansi-6.0.1" 1528 - ]; 1529 - }) 1530 - sources."yargs-parser-20.2.4" 1531 - sources."yargs-unparser-2.0.0" 1532 - sources."yocto-queue-0.1.0" 1533 - ]; 1534 - buildInputs = globalBuildInputs; 1535 - meta = { 1536 - description = "Private Pastebin Server"; 1537 - }; 1538 - production = false; 1539 - bypassCache = true; 1540 - reconstructLock = true; 1541 - }; 1542 - in 1543 - { 1544 - args = args; 1545 - sources = sources; 1546 - tarball = nodeEnv.buildNodeSourceDist args; 1547 - package = nodeEnv.buildNodePackage args; 1548 - shell = nodeEnv.buildNodeShell args; 1549 - nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args { 1550 - src = stdenv.mkDerivation { 1551 - name = args.name + "-package-json"; 1552 - src = nix-gitignore.gitignoreSourcePure [ 1553 - "*" 1554 - "!package.json" 1555 - "!package-lock.json" 1556 - ] args.src; 1557 - dontBuild = true; 1558 - installPhase = "mkdir -p $out; cp -r ./* $out;"; 1559 - }; 1560 - }); 1561 - }
-686
pkgs/servers/haste-server/node-env.nix
··· 1 - # This file originates from node2nix 2 - 3 - {lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}: 4 - 5 - let 6 - # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master 7 - utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux; 8 - 9 - python = if nodejs ? python then nodejs.python else python2; 10 - 11 - # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise 12 - tarWrapper = runCommand "tarWrapper" {} '' 13 - mkdir -p $out/bin 14 - 15 - cat > $out/bin/tar <<EOF 16 - #! ${stdenv.shell} -e 17 - $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore 18 - EOF 19 - 20 - chmod +x $out/bin/tar 21 - ''; 22 - 23 - # Function that generates a TGZ file from a NPM project 24 - buildNodeSourceDist = 25 - { name, version, src, ... }: 26 - 27 - stdenv.mkDerivation { 28 - name = "node-tarball-${name}-${version}"; 29 - inherit src; 30 - buildInputs = [ nodejs ]; 31 - buildPhase = '' 32 - export HOME=$TMPDIR 33 - tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts) 34 - ''; 35 - installPhase = '' 36 - mkdir -p $out/tarballs 37 - mv $tgzFile $out/tarballs 38 - mkdir -p $out/nix-support 39 - echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products 40 - ''; 41 - }; 42 - 43 - # Common shell logic 44 - installPackage = writeShellScript "install-package" '' 45 - installPackage() { 46 - local packageName=$1 src=$2 47 - 48 - local strippedName 49 - 50 - local DIR=$PWD 51 - cd $TMPDIR 52 - 53 - unpackFile $src 54 - 55 - # Make the base dir in which the target dependency resides first 56 - mkdir -p "$(dirname "$DIR/$packageName")" 57 - 58 - if [ -f "$src" ] 59 - then 60 - # Figure out what directory has been unpacked 61 - packageDir="$(find . -maxdepth 1 -type d | tail -1)" 62 - 63 - # Restore write permissions to make building work 64 - find "$packageDir" -type d -exec chmod u+x {} \; 65 - chmod -R u+w "$packageDir" 66 - 67 - # Move the extracted tarball into the output folder 68 - mv "$packageDir" "$DIR/$packageName" 69 - elif [ -d "$src" ] 70 - then 71 - # Get a stripped name (without hash) of the source directory. 72 - # On old nixpkgs it's already set internally. 73 - if [ -z "$strippedName" ] 74 - then 75 - strippedName="$(stripHash $src)" 76 - fi 77 - 78 - # Restore write permissions to make building work 79 - chmod -R u+w "$strippedName" 80 - 81 - # Move the extracted directory into the output folder 82 - mv "$strippedName" "$DIR/$packageName" 83 - fi 84 - 85 - # Change to the package directory to install dependencies 86 - cd "$DIR/$packageName" 87 - } 88 - ''; 89 - 90 - # Bundle the dependencies of the package 91 - # 92 - # Only include dependencies if they don't exist. They may also be bundled in the package. 93 - includeDependencies = {dependencies}: 94 - lib.optionalString (dependencies != []) ( 95 - '' 96 - mkdir -p node_modules 97 - cd node_modules 98 - '' 99 - + (lib.concatMapStrings (dependency: 100 - '' 101 - if [ ! -e "${dependency.packageName}" ]; then 102 - ${composePackage dependency} 103 - fi 104 - '' 105 - ) dependencies) 106 - + '' 107 - cd .. 108 - '' 109 - ); 110 - 111 - # Recursively composes the dependencies of a package 112 - composePackage = { name, packageName, src, dependencies ? [], ... }@args: 113 - builtins.addErrorContext "while evaluating node package '${packageName}'" '' 114 - installPackage "${packageName}" "${src}" 115 - ${includeDependencies { inherit dependencies; }} 116 - cd .. 117 - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 118 - ''; 119 - 120 - pinpointDependencies = {dependencies, production}: 121 - let 122 - pinpointDependenciesFromPackageJSON = writeTextFile { 123 - name = "pinpointDependencies.js"; 124 - text = '' 125 - var fs = require('fs'); 126 - var path = require('path'); 127 - 128 - function resolveDependencyVersion(location, name) { 129 - if(location == process.env['NIX_STORE']) { 130 - return null; 131 - } else { 132 - var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); 133 - 134 - if(fs.existsSync(dependencyPackageJSON)) { 135 - var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); 136 - 137 - if(dependencyPackageObj.name == name) { 138 - return dependencyPackageObj.version; 139 - } 140 - } else { 141 - return resolveDependencyVersion(path.resolve(location, ".."), name); 142 - } 143 - } 144 - } 145 - 146 - function replaceDependencies(dependencies) { 147 - if(typeof dependencies == "object" && dependencies !== null) { 148 - for(var dependency in dependencies) { 149 - var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); 150 - 151 - if(resolvedVersion === null) { 152 - process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); 153 - } else { 154 - dependencies[dependency] = resolvedVersion; 155 - } 156 - } 157 - } 158 - } 159 - 160 - /* Read the package.json configuration */ 161 - var packageObj = JSON.parse(fs.readFileSync('./package.json')); 162 - 163 - /* Pinpoint all dependencies */ 164 - replaceDependencies(packageObj.dependencies); 165 - if(process.argv[2] == "development") { 166 - replaceDependencies(packageObj.devDependencies); 167 - } 168 - else { 169 - packageObj.devDependencies = {}; 170 - } 171 - replaceDependencies(packageObj.optionalDependencies); 172 - replaceDependencies(packageObj.peerDependencies); 173 - 174 - /* Write the fixed package.json file */ 175 - fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); 176 - ''; 177 - }; 178 - in 179 - '' 180 - node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} 181 - 182 - ${lib.optionalString (dependencies != []) 183 - '' 184 - if [ -d node_modules ] 185 - then 186 - cd node_modules 187 - ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} 188 - cd .. 189 - fi 190 - ''} 191 - ''; 192 - 193 - # Recursively traverses all dependencies of a package and pinpoints all 194 - # dependencies in the package.json file to the versions that are actually 195 - # being used. 196 - 197 - pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: 198 - '' 199 - if [ -d "${packageName}" ] 200 - then 201 - cd "${packageName}" 202 - ${pinpointDependencies { inherit dependencies production; }} 203 - cd .. 204 - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 205 - fi 206 - ''; 207 - 208 - # Extract the Node.js source code which is used to compile packages with 209 - # native bindings 210 - nodeSources = runCommand "node-sources" {} '' 211 - tar --no-same-owner --no-same-permissions -xf ${nodejs.src} 212 - mv node-* $out 213 - ''; 214 - 215 - # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) 216 - addIntegrityFieldsScript = writeTextFile { 217 - name = "addintegrityfields.js"; 218 - text = '' 219 - var fs = require('fs'); 220 - var path = require('path'); 221 - 222 - function augmentDependencies(baseDir, dependencies) { 223 - for(var dependencyName in dependencies) { 224 - var dependency = dependencies[dependencyName]; 225 - 226 - // Open package.json and augment metadata fields 227 - var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); 228 - var packageJSONPath = path.join(packageJSONDir, "package.json"); 229 - 230 - if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored 231 - console.log("Adding metadata fields to: "+packageJSONPath); 232 - var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); 233 - 234 - if(dependency.integrity) { 235 - packageObj["_integrity"] = dependency.integrity; 236 - } else { 237 - 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. 238 - } 239 - 240 - if(dependency.resolved) { 241 - packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided 242 - } else { 243 - packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. 244 - } 245 - 246 - if(dependency.from !== undefined) { // Adopt from property if one has been provided 247 - packageObj["_from"] = dependency.from; 248 - } 249 - 250 - fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); 251 - } 252 - 253 - // Augment transitive dependencies 254 - if(dependency.dependencies !== undefined) { 255 - augmentDependencies(packageJSONDir, dependency.dependencies); 256 - } 257 - } 258 - } 259 - 260 - if(fs.existsSync("./package-lock.json")) { 261 - var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); 262 - 263 - if(![1, 2].includes(packageLock.lockfileVersion)) { 264 - process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); 265 - process.exit(1); 266 - } 267 - 268 - if(packageLock.dependencies !== undefined) { 269 - augmentDependencies(".", packageLock.dependencies); 270 - } 271 - } 272 - ''; 273 - }; 274 - 275 - # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes 276 - reconstructPackageLock = writeTextFile { 277 - name = "reconstructpackagelock.js"; 278 - text = '' 279 - var fs = require('fs'); 280 - var path = require('path'); 281 - 282 - var packageObj = JSON.parse(fs.readFileSync("package.json")); 283 - 284 - var lockObj = { 285 - name: packageObj.name, 286 - version: packageObj.version, 287 - lockfileVersion: 2, 288 - requires: true, 289 - packages: { 290 - "": { 291 - name: packageObj.name, 292 - version: packageObj.version, 293 - license: packageObj.license, 294 - bin: packageObj.bin, 295 - dependencies: packageObj.dependencies, 296 - engines: packageObj.engines, 297 - optionalDependencies: packageObj.optionalDependencies 298 - } 299 - }, 300 - dependencies: {} 301 - }; 302 - 303 - function augmentPackageJSON(filePath, packages, dependencies) { 304 - var packageJSON = path.join(filePath, "package.json"); 305 - if(fs.existsSync(packageJSON)) { 306 - var packageObj = JSON.parse(fs.readFileSync(packageJSON)); 307 - packages[filePath] = { 308 - version: packageObj.version, 309 - integrity: "sha1-000000000000000000000000000=", 310 - dependencies: packageObj.dependencies, 311 - engines: packageObj.engines, 312 - optionalDependencies: packageObj.optionalDependencies 313 - }; 314 - dependencies[packageObj.name] = { 315 - version: packageObj.version, 316 - integrity: "sha1-000000000000000000000000000=", 317 - dependencies: {} 318 - }; 319 - processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies); 320 - } 321 - } 322 - 323 - function processDependencies(dir, packages, dependencies) { 324 - if(fs.existsSync(dir)) { 325 - var files = fs.readdirSync(dir); 326 - 327 - files.forEach(function(entry) { 328 - var filePath = path.join(dir, entry); 329 - var stats = fs.statSync(filePath); 330 - 331 - if(stats.isDirectory()) { 332 - if(entry.substr(0, 1) == "@") { 333 - // When we encounter a namespace folder, augment all packages belonging to the scope 334 - var pkgFiles = fs.readdirSync(filePath); 335 - 336 - pkgFiles.forEach(function(entry) { 337 - if(stats.isDirectory()) { 338 - var pkgFilePath = path.join(filePath, entry); 339 - augmentPackageJSON(pkgFilePath, packages, dependencies); 340 - } 341 - }); 342 - } else { 343 - augmentPackageJSON(filePath, packages, dependencies); 344 - } 345 - } 346 - }); 347 - } 348 - } 349 - 350 - processDependencies("node_modules", lockObj.packages, lockObj.dependencies); 351 - 352 - fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); 353 - ''; 354 - }; 355 - 356 - # Script that links bins defined in package.json to the node_modules bin directory 357 - # NPM does not do this for top-level packages itself anymore as of v7 358 - linkBinsScript = writeTextFile { 359 - name = "linkbins.js"; 360 - text = '' 361 - var fs = require('fs'); 362 - var path = require('path'); 363 - 364 - var packageObj = JSON.parse(fs.readFileSync("package.json")); 365 - 366 - var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep); 367 - 368 - if(packageObj.bin !== undefined) { 369 - fs.mkdirSync(path.join(nodeModules, ".bin")) 370 - 371 - if(typeof packageObj.bin == "object") { 372 - Object.keys(packageObj.bin).forEach(function(exe) { 373 - if(fs.existsSync(packageObj.bin[exe])) { 374 - console.log("linking bin '" + exe + "'"); 375 - fs.symlinkSync( 376 - path.join("..", packageObj.name, packageObj.bin[exe]), 377 - path.join(nodeModules, ".bin", exe) 378 - ); 379 - } 380 - else { 381 - console.log("skipping non-existent bin '" + exe + "'"); 382 - } 383 - }) 384 - } 385 - else { 386 - if(fs.existsSync(packageObj.bin)) { 387 - console.log("linking bin '" + packageObj.bin + "'"); 388 - fs.symlinkSync( 389 - path.join("..", packageObj.name, packageObj.bin), 390 - path.join(nodeModules, ".bin", packageObj.name.split("/").pop()) 391 - ); 392 - } 393 - else { 394 - console.log("skipping non-existent bin '" + packageObj.bin + "'"); 395 - } 396 - } 397 - } 398 - else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) { 399 - fs.mkdirSync(path.join(nodeModules, ".bin")) 400 - 401 - fs.readdirSync(packageObj.directories.bin).forEach(function(exe) { 402 - if(fs.existsSync(path.join(packageObj.directories.bin, exe))) { 403 - console.log("linking bin '" + exe + "'"); 404 - fs.symlinkSync( 405 - path.join("..", packageObj.name, packageObj.directories.bin, exe), 406 - path.join(nodeModules, ".bin", exe) 407 - ); 408 - } 409 - else { 410 - console.log("skipping non-existent bin '" + exe + "'"); 411 - } 412 - }) 413 - } 414 - ''; 415 - }; 416 - 417 - prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: 418 - let 419 - forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; 420 - in 421 - '' 422 - # Pinpoint the versions of all dependencies to the ones that are actually being used 423 - echo "pinpointing versions of dependencies..." 424 - source $pinpointDependenciesScriptPath 425 - 426 - # Patch the shebangs of the bundled modules to prevent them from 427 - # calling executables outside the Nix store as much as possible 428 - patchShebangs . 429 - 430 - # Deploy the Node.js package by running npm install. Since the 431 - # dependencies have been provided already by ourselves, it should not 432 - # attempt to install them again, which is good, because we want to make 433 - # it Nix's responsibility. If it needs to install any dependencies 434 - # anyway (e.g. because the dependency parameters are 435 - # incomplete/incorrect), it fails. 436 - # 437 - # The other responsibilities of NPM are kept -- version checks, build 438 - # steps, postprocessing etc. 439 - 440 - export HOME=$TMPDIR 441 - cd "${packageName}" 442 - runHook preRebuild 443 - 444 - ${lib.optionalString bypassCache '' 445 - ${lib.optionalString reconstructLock '' 446 - if [ -f package-lock.json ] 447 - then 448 - echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" 449 - echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" 450 - rm package-lock.json 451 - else 452 - echo "No package-lock.json file found, reconstructing..." 453 - fi 454 - 455 - node ${reconstructPackageLock} 456 - ''} 457 - 458 - node ${addIntegrityFieldsScript} 459 - ''} 460 - 461 - npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild 462 - 463 - runHook postRebuild 464 - 465 - if [ "''${dontNpmInstall-}" != "1" ] 466 - then 467 - # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. 468 - rm -f npm-shrinkwrap.json 469 - 470 - npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install 471 - fi 472 - 473 - # Link executables defined in package.json 474 - node ${linkBinsScript} 475 - ''; 476 - 477 - # Builds and composes an NPM package including all its dependencies 478 - buildNodePackage = 479 - { name 480 - , packageName 481 - , version ? null 482 - , dependencies ? [] 483 - , buildInputs ? [] 484 - , production ? true 485 - , npmFlags ? "" 486 - , dontNpmInstall ? false 487 - , bypassCache ? false 488 - , reconstructLock ? false 489 - , preRebuild ? "" 490 - , dontStrip ? true 491 - , unpackPhase ? "true" 492 - , buildPhase ? "true" 493 - , meta ? {} 494 - , ... }@args: 495 - 496 - let 497 - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; 498 - in 499 - stdenv.mkDerivation ({ 500 - name = "${name}${if version == null then "" else "-${version}"}"; 501 - buildInputs = [ tarWrapper python nodejs ] 502 - ++ lib.optional (stdenv.isLinux) utillinux 503 - ++ lib.optional (stdenv.isDarwin) libtool 504 - ++ buildInputs; 505 - 506 - inherit nodejs; 507 - 508 - inherit dontStrip; # Stripping may fail a build for some package deployments 509 - inherit dontNpmInstall preRebuild unpackPhase buildPhase; 510 - 511 - compositionScript = composePackage args; 512 - pinpointDependenciesScript = pinpointDependenciesOfPackage args; 513 - 514 - passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; 515 - 516 - installPhase = '' 517 - source ${installPackage} 518 - 519 - # Create and enter a root node_modules/ folder 520 - mkdir -p $out/lib/node_modules 521 - cd $out/lib/node_modules 522 - 523 - # Compose the package and all its dependencies 524 - source $compositionScriptPath 525 - 526 - ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} 527 - 528 - # Create symlink to the deployed executable folder, if applicable 529 - if [ -d "$out/lib/node_modules/.bin" ] 530 - then 531 - ln -s $out/lib/node_modules/.bin $out/bin 532 - 533 - # Patch the shebang lines of all the executables 534 - ls $out/bin/* | while read i 535 - do 536 - file="$(readlink -f "$i")" 537 - chmod u+rwx "$file" 538 - patchShebangs "$file" 539 - done 540 - fi 541 - 542 - # Create symlinks to the deployed manual page folders, if applicable 543 - if [ -d "$out/lib/node_modules/${packageName}/man" ] 544 - then 545 - mkdir -p $out/share 546 - for dir in "$out/lib/node_modules/${packageName}/man/"* 547 - do 548 - mkdir -p $out/share/man/$(basename "$dir") 549 - for page in "$dir"/* 550 - do 551 - ln -s $page $out/share/man/$(basename "$dir") 552 - done 553 - done 554 - fi 555 - 556 - # Run post install hook, if provided 557 - runHook postInstall 558 - ''; 559 - 560 - meta = { 561 - # default to Node.js' platforms 562 - platforms = nodejs.meta.platforms; 563 - } // meta; 564 - } // extraArgs); 565 - 566 - # Builds a node environment (a node_modules folder and a set of binaries) 567 - buildNodeDependencies = 568 - { name 569 - , packageName 570 - , version ? null 571 - , src 572 - , dependencies ? [] 573 - , buildInputs ? [] 574 - , production ? true 575 - , npmFlags ? "" 576 - , dontNpmInstall ? false 577 - , bypassCache ? false 578 - , reconstructLock ? false 579 - , dontStrip ? true 580 - , unpackPhase ? "true" 581 - , buildPhase ? "true" 582 - , ... }@args: 583 - 584 - let 585 - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; 586 - in 587 - stdenv.mkDerivation ({ 588 - name = "node-dependencies-${name}${if version == null then "" else "-${version}"}"; 589 - 590 - buildInputs = [ tarWrapper python nodejs ] 591 - ++ lib.optional (stdenv.isLinux) utillinux 592 - ++ lib.optional (stdenv.isDarwin) libtool 593 - ++ buildInputs; 594 - 595 - inherit dontStrip; # Stripping may fail a build for some package deployments 596 - inherit dontNpmInstall unpackPhase buildPhase; 597 - 598 - includeScript = includeDependencies { inherit dependencies; }; 599 - pinpointDependenciesScript = pinpointDependenciesOfPackage args; 600 - 601 - passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; 602 - 603 - installPhase = '' 604 - source ${installPackage} 605 - 606 - mkdir -p $out/${packageName} 607 - cd $out/${packageName} 608 - 609 - source $includeScriptPath 610 - 611 - # Create fake package.json to make the npm commands work properly 612 - cp ${src}/package.json . 613 - chmod 644 package.json 614 - ${lib.optionalString bypassCache '' 615 - if [ -f ${src}/package-lock.json ] 616 - then 617 - cp ${src}/package-lock.json . 618 - chmod 644 package-lock.json 619 - fi 620 - ''} 621 - 622 - # Go to the parent folder to make sure that all packages are pinpointed 623 - cd .. 624 - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 625 - 626 - ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} 627 - 628 - # Expose the executables that were installed 629 - cd .. 630 - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 631 - 632 - mv ${packageName} lib 633 - ln -s $out/lib/node_modules/.bin $out/bin 634 - ''; 635 - } // extraArgs); 636 - 637 - # Builds a development shell 638 - buildNodeShell = 639 - { name 640 - , packageName 641 - , version ? null 642 - , src 643 - , dependencies ? [] 644 - , buildInputs ? [] 645 - , production ? true 646 - , npmFlags ? "" 647 - , dontNpmInstall ? false 648 - , bypassCache ? false 649 - , reconstructLock ? false 650 - , dontStrip ? true 651 - , unpackPhase ? "true" 652 - , buildPhase ? "true" 653 - , ... }@args: 654 - 655 - let 656 - nodeDependencies = buildNodeDependencies args; 657 - extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ]; 658 - in 659 - stdenv.mkDerivation ({ 660 - name = "node-shell-${name}${if version == null then "" else "-${version}"}"; 661 - 662 - buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; 663 - buildCommand = '' 664 - mkdir -p $out/bin 665 - cat > $out/bin/shell <<EOF 666 - #! ${stdenv.shell} -e 667 - $shellHook 668 - exec ${stdenv.shell} 669 - EOF 670 - chmod +x $out/bin/shell 671 - ''; 672 - 673 - # Provide the dependencies in a development shell through the NODE_PATH environment variable 674 - inherit nodeDependencies; 675 - shellHook = lib.optionalString (dependencies != []) '' 676 - export NODE_PATH=${nodeDependencies}/lib/node_modules 677 - export PATH="${nodeDependencies}/bin:$PATH" 678 - ''; 679 - } // extraArgs); 680 - in 681 - { 682 - buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; 683 - buildNodePackage = lib.makeOverridable buildNodePackage; 684 - buildNodeDependencies = lib.makeOverridable buildNodeDependencies; 685 - buildNodeShell = lib.makeOverridable buildNodeShell; 686 - }
-28
pkgs/servers/haste-server/update.sh
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i bash -p curl common-updater-scripts nodePackages.node2nix gnused nix coreutils jq 3 - 4 - set -euo pipefail 5 - 6 - latestVersion="$(curl -s "https://api.github.com/repos/toptal/haste-server/commits?per_page=1" | jq -r ".[0].sha")" 7 - currentVersion=$(nix-instantiate --eval -E "with import ./. {}; haste-server.version or (lib.getVersion haste-server)" | tr -d '"') 8 - 9 - if [[ "$currentVersion" == "$latestVersion" ]]; then 10 - echo "haste-server is up-to-date: $currentVersion" 11 - exit 0 12 - fi 13 - 14 - update-source-version haste-server 0 sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= 15 - update-source-version haste-server "$latestVersion" 16 - 17 - # use patched source 18 - store_src="$(nix-build . -A haste-server.src --no-out-link)" 19 - 20 - cd "$(dirname "${BASH_SOURCE[0]}")" 21 - 22 - node2nix \ 23 - --nodejs-14 \ 24 - --development \ 25 - --node-env ./node-env.nix \ 26 - --output ./node-deps.nix \ 27 - --input "$store_src/package.json" \ 28 - --composition ./node-composition.nix