mjolnir: init at 0.1.17

+3931
+89
pkgs/servers/mjolnir/default.nix
···
··· 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , fetchpatch 5 + , makeWrapper 6 + , nodejs 7 + , pkgs 8 + }: 9 + 10 + stdenv.mkDerivation rec { 11 + pname = "mjolnir"; 12 + version = "0.1.17"; 13 + 14 + src = fetchFromGitHub { 15 + owner = "matrix-org"; 16 + repo = "mjolnir"; 17 + rev = "v${version}"; 18 + sha256 = "uBI5AllXWgl3eL60WZ/j11Tt7QpY7CKcmFQOU74/Qjs="; 19 + }; 20 + 21 + patches = [ 22 + # catch errors and set non-zero exit code 23 + (fetchpatch { 24 + url = "https://github.com/matrix-org/mjolnir/pull/102/commits/662b06df8ef085fb78608ed19924383be62fa59f.patch"; 25 + sha256 = "sha256-VUKFBMM67E8dGWSViDjMJadMS+DgvHvQS0aOnd2Fz/4="; 26 + }) 27 + ]; 28 + 29 + nativeBuildInputs = [ 30 + nodejs 31 + makeWrapper 32 + ]; 33 + 34 + buildPhase = 35 + let 36 + nodeDependencies = ((import ./node-composition.nix { 37 + inherit pkgs nodejs; 38 + inherit (stdenv.hostPlatform) system; 39 + }).nodeDependencies.override (old: { 40 + # access to path '/nix/store/...-source' is forbidden in restricted mode 41 + src = src; 42 + dontNpmInstall = true; 43 + })); 44 + in 45 + '' 46 + runHook preBuild 47 + 48 + ln -s ${nodeDependencies}/lib/node_modules . 49 + export PATH="${nodeDependencies}/bin:$PATH" 50 + npm run build 51 + 52 + runHook postBuild 53 + ''; 54 + 55 + installPhase = '' 56 + runHook preInstall 57 + 58 + mkdir -p $out/share 59 + cp -a . $out/share/mjolnir 60 + 61 + makeWrapper ${nodejs}/bin/node $out/bin/mjolnir \ 62 + --add-flags $out/share/mjolnir/lib/index.js 63 + 64 + runHook postInstall 65 + ''; 66 + 67 + passthru.updateScript = ./update.sh; 68 + 69 + meta = with lib; { 70 + description = "A moderation tool for Matrix"; 71 + homepage = "https://github.com/matrix-org/mjolnir"; 72 + longDescription = '' 73 + As an all-in-one moderation tool, it can protect your server from 74 + malicious invites, spam messages, and whatever else you don't want. 75 + In addition to server-level protection, Mjolnir is great for communities 76 + wanting to protect their rooms without having to use their personal 77 + accounts for moderation. 78 + 79 + The bot by default includes support for bans, redactions, anti-spam, 80 + server ACLs, room directory changes, room alias transfers, account 81 + deactivation, room shutdown, and more. 82 + 83 + A Synapse module is also available to apply the same rulesets the bot 84 + uses across an entire homeserver. 85 + ''; 86 + license = licenses.asl20; 87 + maintainers = with maintainers; [ jojosch ]; 88 + }; 89 + }
+17
pkgs/servers/mjolnir/node-composition.nix
···
··· 1 + # This file has been generated by node2nix 1.9.0. Do not edit! 2 + 3 + {pkgs ? import <nixpkgs> { 4 + inherit system; 5 + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: 6 + 7 + let 8 + nodeEnv = import ./node-env.nix { 9 + inherit (pkgs) stdenv lib python2 runCommand writeTextFile; 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 + }
+3227
pkgs/servers/mjolnir/node-deps.nix
···
··· 1 + # This file has been generated by node2nix 1.9.0. Do not edit! 2 + 3 + {nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: 4 + 5 + let 6 + sources = { 7 + "@babel/code-frame-7.12.13" = { 8 + name = "_at_babel_slash_code-frame"; 9 + packageName = "@babel/code-frame"; 10 + version = "7.12.13"; 11 + src = fetchurl { 12 + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz"; 13 + sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g=="; 14 + }; 15 + }; 16 + "@babel/helper-validator-identifier-7.14.0" = { 17 + name = "_at_babel_slash_helper-validator-identifier"; 18 + packageName = "@babel/helper-validator-identifier"; 19 + version = "7.14.0"; 20 + src = fetchurl { 21 + url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz"; 22 + sha512 = "V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A=="; 23 + }; 24 + }; 25 + "@babel/highlight-7.14.0" = { 26 + name = "_at_babel_slash_highlight"; 27 + packageName = "@babel/highlight"; 28 + version = "7.14.0"; 29 + src = fetchurl { 30 + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz"; 31 + sha512 = "YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg=="; 32 + }; 33 + }; 34 + "@jest/types-26.6.2" = { 35 + name = "_at_jest_slash_types"; 36 + packageName = "@jest/types"; 37 + version = "26.6.2"; 38 + src = fetchurl { 39 + url = "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz"; 40 + sha512 = "fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ=="; 41 + }; 42 + }; 43 + "@types/body-parser-1.19.0" = { 44 + name = "_at_types_slash_body-parser"; 45 + packageName = "@types/body-parser"; 46 + version = "1.19.0"; 47 + src = fetchurl { 48 + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; 49 + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; 50 + }; 51 + }; 52 + "@types/connect-3.4.34" = { 53 + name = "_at_types_slash_connect"; 54 + packageName = "@types/connect"; 55 + version = "3.4.34"; 56 + src = fetchurl { 57 + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz"; 58 + sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ=="; 59 + }; 60 + }; 61 + "@types/expect-24.3.0" = { 62 + name = "_at_types_slash_expect"; 63 + packageName = "@types/expect"; 64 + version = "24.3.0"; 65 + src = fetchurl { 66 + url = "https://registry.npmjs.org/@types/expect/-/expect-24.3.0.tgz"; 67 + sha512 = "aq5Z+YFBz5o2b6Sp1jigx5nsmoZMK5Ceurjwy6PZmRv7dEi1jLtkARfvB1ME+OXJUG+7TZUDcv3WoCr/aor6dQ=="; 68 + }; 69 + }; 70 + "@types/express-4.17.11" = { 71 + name = "_at_types_slash_express"; 72 + packageName = "@types/express"; 73 + version = "4.17.11"; 74 + src = fetchurl { 75 + url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz"; 76 + sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg=="; 77 + }; 78 + }; 79 + "@types/express-serve-static-core-4.17.19" = { 80 + name = "_at_types_slash_express-serve-static-core"; 81 + packageName = "@types/express-serve-static-core"; 82 + version = "4.17.19"; 83 + src = fetchurl { 84 + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz"; 85 + sha512 = "DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA=="; 86 + }; 87 + }; 88 + "@types/istanbul-lib-coverage-2.0.3" = { 89 + name = "_at_types_slash_istanbul-lib-coverage"; 90 + packageName = "@types/istanbul-lib-coverage"; 91 + version = "2.0.3"; 92 + src = fetchurl { 93 + url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz"; 94 + sha512 = "sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw=="; 95 + }; 96 + }; 97 + "@types/istanbul-lib-report-3.0.0" = { 98 + name = "_at_types_slash_istanbul-lib-report"; 99 + packageName = "@types/istanbul-lib-report"; 100 + version = "3.0.0"; 101 + src = fetchurl { 102 + url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz"; 103 + sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg=="; 104 + }; 105 + }; 106 + "@types/istanbul-reports-3.0.0" = { 107 + name = "_at_types_slash_istanbul-reports"; 108 + packageName = "@types/istanbul-reports"; 109 + version = "3.0.0"; 110 + src = fetchurl { 111 + url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz"; 112 + sha512 = "nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA=="; 113 + }; 114 + }; 115 + "@types/json5-0.0.29" = { 116 + name = "_at_types_slash_json5"; 117 + packageName = "@types/json5"; 118 + version = "0.0.29"; 119 + src = fetchurl { 120 + url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"; 121 + sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"; 122 + }; 123 + }; 124 + "@types/mime-1.3.2" = { 125 + name = "_at_types_slash_mime"; 126 + packageName = "@types/mime"; 127 + version = "1.3.2"; 128 + src = fetchurl { 129 + url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"; 130 + sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="; 131 + }; 132 + }; 133 + "@types/mocha-7.0.2" = { 134 + name = "_at_types_slash_mocha"; 135 + packageName = "@types/mocha"; 136 + version = "7.0.2"; 137 + src = fetchurl { 138 + url = "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz"; 139 + sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w=="; 140 + }; 141 + }; 142 + "@types/node-11.15.54" = { 143 + name = "_at_types_slash_node"; 144 + packageName = "@types/node"; 145 + version = "11.15.54"; 146 + src = fetchurl { 147 + url = "https://registry.npmjs.org/@types/node/-/node-11.15.54.tgz"; 148 + sha512 = "1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g=="; 149 + }; 150 + }; 151 + "@types/qs-6.9.6" = { 152 + name = "_at_types_slash_qs"; 153 + packageName = "@types/qs"; 154 + version = "6.9.6"; 155 + src = fetchurl { 156 + url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz"; 157 + sha512 = "0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA=="; 158 + }; 159 + }; 160 + "@types/range-parser-1.2.3" = { 161 + name = "_at_types_slash_range-parser"; 162 + packageName = "@types/range-parser"; 163 + version = "1.2.3"; 164 + src = fetchurl { 165 + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; 166 + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; 167 + }; 168 + }; 169 + "@types/serve-static-1.13.9" = { 170 + name = "_at_types_slash_serve-static"; 171 + packageName = "@types/serve-static"; 172 + version = "1.13.9"; 173 + src = fetchurl { 174 + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz"; 175 + sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA=="; 176 + }; 177 + }; 178 + "@types/stack-utils-2.0.0" = { 179 + name = "_at_types_slash_stack-utils"; 180 + packageName = "@types/stack-utils"; 181 + version = "2.0.0"; 182 + src = fetchurl { 183 + url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz"; 184 + sha512 = "RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw=="; 185 + }; 186 + }; 187 + "@types/yargs-15.0.13" = { 188 + name = "_at_types_slash_yargs"; 189 + packageName = "@types/yargs"; 190 + version = "15.0.13"; 191 + src = fetchurl { 192 + url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz"; 193 + sha512 = "kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ=="; 194 + }; 195 + }; 196 + "@types/yargs-parser-20.2.0" = { 197 + name = "_at_types_slash_yargs-parser"; 198 + packageName = "@types/yargs-parser"; 199 + version = "20.2.0"; 200 + src = fetchurl { 201 + url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz"; 202 + sha512 = "37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="; 203 + }; 204 + }; 205 + "accepts-1.3.7" = { 206 + name = "accepts"; 207 + packageName = "accepts"; 208 + version = "1.3.7"; 209 + src = fetchurl { 210 + url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"; 211 + sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="; 212 + }; 213 + }; 214 + "ajv-6.12.6" = { 215 + name = "ajv"; 216 + packageName = "ajv"; 217 + version = "6.12.6"; 218 + src = fetchurl { 219 + url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"; 220 + sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="; 221 + }; 222 + }; 223 + "ansi-colors-3.2.3" = { 224 + name = "ansi-colors"; 225 + packageName = "ansi-colors"; 226 + version = "3.2.3"; 227 + src = fetchurl { 228 + url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz"; 229 + sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw=="; 230 + }; 231 + }; 232 + "ansi-regex-3.0.0" = { 233 + name = "ansi-regex"; 234 + packageName = "ansi-regex"; 235 + version = "3.0.0"; 236 + src = fetchurl { 237 + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; 238 + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; 239 + }; 240 + }; 241 + "ansi-regex-4.1.0" = { 242 + name = "ansi-regex"; 243 + packageName = "ansi-regex"; 244 + version = "4.1.0"; 245 + src = fetchurl { 246 + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"; 247 + sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="; 248 + }; 249 + }; 250 + "ansi-regex-5.0.0" = { 251 + name = "ansi-regex"; 252 + packageName = "ansi-regex"; 253 + version = "5.0.0"; 254 + src = fetchurl { 255 + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"; 256 + sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="; 257 + }; 258 + }; 259 + "ansi-styles-3.2.1" = { 260 + name = "ansi-styles"; 261 + packageName = "ansi-styles"; 262 + version = "3.2.1"; 263 + src = fetchurl { 264 + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; 265 + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; 266 + }; 267 + }; 268 + "ansi-styles-4.3.0" = { 269 + name = "ansi-styles"; 270 + packageName = "ansi-styles"; 271 + version = "4.3.0"; 272 + src = fetchurl { 273 + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; 274 + sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; 275 + }; 276 + }; 277 + "anymatch-3.1.2" = { 278 + name = "anymatch"; 279 + packageName = "anymatch"; 280 + version = "3.1.2"; 281 + src = fetchurl { 282 + url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"; 283 + sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg=="; 284 + }; 285 + }; 286 + "argparse-1.0.10" = { 287 + name = "argparse"; 288 + packageName = "argparse"; 289 + version = "1.0.10"; 290 + src = fetchurl { 291 + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; 292 + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; 293 + }; 294 + }; 295 + "array-flatten-1.1.1" = { 296 + name = "array-flatten"; 297 + packageName = "array-flatten"; 298 + version = "1.1.1"; 299 + src = fetchurl { 300 + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"; 301 + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; 302 + }; 303 + }; 304 + "arrify-1.0.1" = { 305 + name = "arrify"; 306 + packageName = "arrify"; 307 + version = "1.0.1"; 308 + src = fetchurl { 309 + url = "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"; 310 + sha1 = "898508da2226f380df904728456849c1501a4b0d"; 311 + }; 312 + }; 313 + "asn1-0.2.4" = { 314 + name = "asn1"; 315 + packageName = "asn1"; 316 + version = "0.2.4"; 317 + src = fetchurl { 318 + url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; 319 + sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; 320 + }; 321 + }; 322 + "assert-plus-1.0.0" = { 323 + name = "assert-plus"; 324 + packageName = "assert-plus"; 325 + version = "1.0.0"; 326 + src = fetchurl { 327 + url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; 328 + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; 329 + }; 330 + }; 331 + "asynckit-0.4.0" = { 332 + name = "asynckit"; 333 + packageName = "asynckit"; 334 + version = "0.4.0"; 335 + src = fetchurl { 336 + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; 337 + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; 338 + }; 339 + }; 340 + "aws-sign2-0.7.0" = { 341 + name = "aws-sign2"; 342 + packageName = "aws-sign2"; 343 + version = "0.7.0"; 344 + src = fetchurl { 345 + url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; 346 + sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; 347 + }; 348 + }; 349 + "aws4-1.11.0" = { 350 + name = "aws4"; 351 + packageName = "aws4"; 352 + version = "1.11.0"; 353 + src = fetchurl { 354 + url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz"; 355 + sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="; 356 + }; 357 + }; 358 + "balanced-match-1.0.2" = { 359 + name = "balanced-match"; 360 + packageName = "balanced-match"; 361 + version = "1.0.2"; 362 + src = fetchurl { 363 + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"; 364 + sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; 365 + }; 366 + }; 367 + "basic-auth-2.0.1" = { 368 + name = "basic-auth"; 369 + packageName = "basic-auth"; 370 + version = "2.0.1"; 371 + src = fetchurl { 372 + url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"; 373 + sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="; 374 + }; 375 + }; 376 + "bcrypt-pbkdf-1.0.2" = { 377 + name = "bcrypt-pbkdf"; 378 + packageName = "bcrypt-pbkdf"; 379 + version = "1.0.2"; 380 + src = fetchurl { 381 + url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; 382 + sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; 383 + }; 384 + }; 385 + "binary-extensions-2.2.0" = { 386 + name = "binary-extensions"; 387 + packageName = "binary-extensions"; 388 + version = "2.2.0"; 389 + src = fetchurl { 390 + url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"; 391 + sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="; 392 + }; 393 + }; 394 + "bluebird-3.7.2" = { 395 + name = "bluebird"; 396 + packageName = "bluebird"; 397 + version = "3.7.2"; 398 + src = fetchurl { 399 + url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"; 400 + sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="; 401 + }; 402 + }; 403 + "body-parser-1.19.0" = { 404 + name = "body-parser"; 405 + packageName = "body-parser"; 406 + version = "1.19.0"; 407 + src = fetchurl { 408 + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; 409 + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; 410 + }; 411 + }; 412 + "brace-expansion-1.1.11" = { 413 + name = "brace-expansion"; 414 + packageName = "brace-expansion"; 415 + version = "1.1.11"; 416 + src = fetchurl { 417 + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; 418 + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; 419 + }; 420 + }; 421 + "braces-3.0.2" = { 422 + name = "braces"; 423 + packageName = "braces"; 424 + version = "3.0.2"; 425 + src = fetchurl { 426 + url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"; 427 + sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="; 428 + }; 429 + }; 430 + "browser-stdout-1.3.1" = { 431 + name = "browser-stdout"; 432 + packageName = "browser-stdout"; 433 + version = "1.3.1"; 434 + src = fetchurl { 435 + url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz"; 436 + sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="; 437 + }; 438 + }; 439 + "buffer-from-1.1.1" = { 440 + name = "buffer-from"; 441 + packageName = "buffer-from"; 442 + version = "1.1.1"; 443 + src = fetchurl { 444 + url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"; 445 + sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="; 446 + }; 447 + }; 448 + "builtin-modules-1.1.1" = { 449 + name = "builtin-modules"; 450 + packageName = "builtin-modules"; 451 + version = "1.1.1"; 452 + src = fetchurl { 453 + url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"; 454 + sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f"; 455 + }; 456 + }; 457 + "bytes-3.1.0" = { 458 + name = "bytes"; 459 + packageName = "bytes"; 460 + version = "3.1.0"; 461 + src = fetchurl { 462 + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; 463 + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; 464 + }; 465 + }; 466 + "call-bind-1.0.2" = { 467 + name = "call-bind"; 468 + packageName = "call-bind"; 469 + version = "1.0.2"; 470 + src = fetchurl { 471 + url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"; 472 + sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="; 473 + }; 474 + }; 475 + "camelcase-5.3.1" = { 476 + name = "camelcase"; 477 + packageName = "camelcase"; 478 + version = "5.3.1"; 479 + src = fetchurl { 480 + url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"; 481 + sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="; 482 + }; 483 + }; 484 + "caseless-0.12.0" = { 485 + name = "caseless"; 486 + packageName = "caseless"; 487 + version = "0.12.0"; 488 + src = fetchurl { 489 + url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; 490 + sha1 = "1b681c21ff84033c826543090689420d187151dc"; 491 + }; 492 + }; 493 + "chalk-2.4.2" = { 494 + name = "chalk"; 495 + packageName = "chalk"; 496 + version = "2.4.2"; 497 + src = fetchurl { 498 + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; 499 + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; 500 + }; 501 + }; 502 + "chalk-4.1.1" = { 503 + name = "chalk"; 504 + packageName = "chalk"; 505 + version = "4.1.1"; 506 + src = fetchurl { 507 + url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz"; 508 + sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg=="; 509 + }; 510 + }; 511 + "chokidar-3.3.0" = { 512 + name = "chokidar"; 513 + packageName = "chokidar"; 514 + version = "3.3.0"; 515 + src = fetchurl { 516 + url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz"; 517 + sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A=="; 518 + }; 519 + }; 520 + "cliui-5.0.0" = { 521 + name = "cliui"; 522 + packageName = "cliui"; 523 + version = "5.0.0"; 524 + src = fetchurl { 525 + url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"; 526 + sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="; 527 + }; 528 + }; 529 + "color-convert-1.9.3" = { 530 + name = "color-convert"; 531 + packageName = "color-convert"; 532 + version = "1.9.3"; 533 + src = fetchurl { 534 + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; 535 + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; 536 + }; 537 + }; 538 + "color-convert-2.0.1" = { 539 + name = "color-convert"; 540 + packageName = "color-convert"; 541 + version = "2.0.1"; 542 + src = fetchurl { 543 + url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; 544 + sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; 545 + }; 546 + }; 547 + "color-name-1.1.3" = { 548 + name = "color-name"; 549 + packageName = "color-name"; 550 + version = "1.1.3"; 551 + src = fetchurl { 552 + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; 553 + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; 554 + }; 555 + }; 556 + "color-name-1.1.4" = { 557 + name = "color-name"; 558 + packageName = "color-name"; 559 + version = "1.1.4"; 560 + src = fetchurl { 561 + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; 562 + sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; 563 + }; 564 + }; 565 + "colorette-1.2.2" = { 566 + name = "colorette"; 567 + packageName = "colorette"; 568 + version = "1.2.2"; 569 + src = fetchurl { 570 + url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz"; 571 + sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="; 572 + }; 573 + }; 574 + "combined-stream-1.0.8" = { 575 + name = "combined-stream"; 576 + packageName = "combined-stream"; 577 + version = "1.0.8"; 578 + src = fetchurl { 579 + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; 580 + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; 581 + }; 582 + }; 583 + "commander-2.20.3" = { 584 + name = "commander"; 585 + packageName = "commander"; 586 + version = "2.20.3"; 587 + src = fetchurl { 588 + url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"; 589 + sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="; 590 + }; 591 + }; 592 + "concat-map-0.0.1" = { 593 + name = "concat-map"; 594 + packageName = "concat-map"; 595 + version = "0.0.1"; 596 + src = fetchurl { 597 + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; 598 + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; 599 + }; 600 + }; 601 + "config-3.3.6" = { 602 + name = "config"; 603 + packageName = "config"; 604 + version = "3.3.6"; 605 + src = fetchurl { 606 + url = "https://registry.npmjs.org/config/-/config-3.3.6.tgz"; 607 + sha512 = "Hj5916C5HFawjYJat1epbyY2PlAgLpBtDUlr0MxGLgo3p5+7kylyvnRY18PqJHgnNWXcdd0eWDemT7eYWuFgwg=="; 608 + }; 609 + }; 610 + "content-disposition-0.5.3" = { 611 + name = "content-disposition"; 612 + packageName = "content-disposition"; 613 + version = "0.5.3"; 614 + src = fetchurl { 615 + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; 616 + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; 617 + }; 618 + }; 619 + "content-type-1.0.4" = { 620 + name = "content-type"; 621 + packageName = "content-type"; 622 + version = "1.0.4"; 623 + src = fetchurl { 624 + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; 625 + sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; 626 + }; 627 + }; 628 + "cookie-0.4.0" = { 629 + name = "cookie"; 630 + packageName = "cookie"; 631 + version = "0.4.0"; 632 + src = fetchurl { 633 + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; 634 + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; 635 + }; 636 + }; 637 + "cookie-signature-1.0.6" = { 638 + name = "cookie-signature"; 639 + packageName = "cookie-signature"; 640 + version = "1.0.6"; 641 + src = fetchurl { 642 + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; 643 + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; 644 + }; 645 + }; 646 + "core-util-is-1.0.2" = { 647 + name = "core-util-is"; 648 + packageName = "core-util-is"; 649 + version = "1.0.2"; 650 + src = fetchurl { 651 + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; 652 + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; 653 + }; 654 + }; 655 + "dashdash-1.14.1" = { 656 + name = "dashdash"; 657 + packageName = "dashdash"; 658 + version = "1.14.1"; 659 + src = fetchurl { 660 + url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; 661 + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; 662 + }; 663 + }; 664 + "debug-2.6.9" = { 665 + name = "debug"; 666 + packageName = "debug"; 667 + version = "2.6.9"; 668 + src = fetchurl { 669 + url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; 670 + sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; 671 + }; 672 + }; 673 + "debug-3.2.6" = { 674 + name = "debug"; 675 + packageName = "debug"; 676 + version = "3.2.6"; 677 + src = fetchurl { 678 + url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"; 679 + sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ=="; 680 + }; 681 + }; 682 + "decamelize-1.2.0" = { 683 + name = "decamelize"; 684 + packageName = "decamelize"; 685 + version = "1.2.0"; 686 + src = fetchurl { 687 + url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"; 688 + sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; 689 + }; 690 + }; 691 + "deepmerge-4.2.2" = { 692 + name = "deepmerge"; 693 + packageName = "deepmerge"; 694 + version = "4.2.2"; 695 + src = fetchurl { 696 + url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz"; 697 + sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="; 698 + }; 699 + }; 700 + "define-properties-1.1.3" = { 701 + name = "define-properties"; 702 + packageName = "define-properties"; 703 + version = "1.1.3"; 704 + src = fetchurl { 705 + url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"; 706 + sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ=="; 707 + }; 708 + }; 709 + "delayed-stream-1.0.0" = { 710 + name = "delayed-stream"; 711 + packageName = "delayed-stream"; 712 + version = "1.0.0"; 713 + src = fetchurl { 714 + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; 715 + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; 716 + }; 717 + }; 718 + "depd-1.1.2" = { 719 + name = "depd"; 720 + packageName = "depd"; 721 + version = "1.1.2"; 722 + src = fetchurl { 723 + url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; 724 + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; 725 + }; 726 + }; 727 + "depd-2.0.0" = { 728 + name = "depd"; 729 + packageName = "depd"; 730 + version = "2.0.0"; 731 + src = fetchurl { 732 + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; 733 + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; 734 + }; 735 + }; 736 + "destroy-1.0.4" = { 737 + name = "destroy"; 738 + packageName = "destroy"; 739 + version = "1.0.4"; 740 + src = fetchurl { 741 + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; 742 + sha1 = "978857442c44749e4206613e37946205826abd80"; 743 + }; 744 + }; 745 + "diff-3.5.0" = { 746 + name = "diff"; 747 + packageName = "diff"; 748 + version = "3.5.0"; 749 + src = fetchurl { 750 + url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz"; 751 + sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="; 752 + }; 753 + }; 754 + "diff-4.0.2" = { 755 + name = "diff"; 756 + packageName = "diff"; 757 + version = "4.0.2"; 758 + src = fetchurl { 759 + url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz"; 760 + sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="; 761 + }; 762 + }; 763 + "diff-sequences-26.6.2" = { 764 + name = "diff-sequences"; 765 + packageName = "diff-sequences"; 766 + version = "26.6.2"; 767 + src = fetchurl { 768 + url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz"; 769 + sha512 = "Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q=="; 770 + }; 771 + }; 772 + "dom-serializer-1.3.2" = { 773 + name = "dom-serializer"; 774 + packageName = "dom-serializer"; 775 + version = "1.3.2"; 776 + src = fetchurl { 777 + url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz"; 778 + sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig=="; 779 + }; 780 + }; 781 + "domelementtype-2.2.0" = { 782 + name = "domelementtype"; 783 + packageName = "domelementtype"; 784 + version = "2.2.0"; 785 + src = fetchurl { 786 + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz"; 787 + sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="; 788 + }; 789 + }; 790 + "domhandler-3.3.0" = { 791 + name = "domhandler"; 792 + packageName = "domhandler"; 793 + version = "3.3.0"; 794 + src = fetchurl { 795 + url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz"; 796 + sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA=="; 797 + }; 798 + }; 799 + "domhandler-4.2.0" = { 800 + name = "domhandler"; 801 + packageName = "domhandler"; 802 + version = "4.2.0"; 803 + src = fetchurl { 804 + url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz"; 805 + sha512 = "zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA=="; 806 + }; 807 + }; 808 + "domutils-2.6.0" = { 809 + name = "domutils"; 810 + packageName = "domutils"; 811 + version = "2.6.0"; 812 + src = fetchurl { 813 + url = "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz"; 814 + sha512 = "y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA=="; 815 + }; 816 + }; 817 + "ecc-jsbn-0.1.2" = { 818 + name = "ecc-jsbn"; 819 + packageName = "ecc-jsbn"; 820 + version = "0.1.2"; 821 + src = fetchurl { 822 + url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; 823 + sha1 = "3a83a904e54353287874c564b7549386849a98c9"; 824 + }; 825 + }; 826 + "ee-first-1.1.1" = { 827 + name = "ee-first"; 828 + packageName = "ee-first"; 829 + version = "1.1.1"; 830 + src = fetchurl { 831 + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; 832 + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; 833 + }; 834 + }; 835 + "emoji-regex-7.0.3" = { 836 + name = "emoji-regex"; 837 + packageName = "emoji-regex"; 838 + version = "7.0.3"; 839 + src = fetchurl { 840 + url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"; 841 + sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="; 842 + }; 843 + }; 844 + "encodeurl-1.0.2" = { 845 + name = "encodeurl"; 846 + packageName = "encodeurl"; 847 + version = "1.0.2"; 848 + src = fetchurl { 849 + url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; 850 + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; 851 + }; 852 + }; 853 + "entities-2.2.0" = { 854 + name = "entities"; 855 + packageName = "entities"; 856 + version = "2.2.0"; 857 + src = fetchurl { 858 + url = "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"; 859 + sha512 = "p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="; 860 + }; 861 + }; 862 + "es-abstract-1.18.0" = { 863 + name = "es-abstract"; 864 + packageName = "es-abstract"; 865 + version = "1.18.0"; 866 + src = fetchurl { 867 + url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz"; 868 + sha512 = "LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw=="; 869 + }; 870 + }; 871 + "es-to-primitive-1.2.1" = { 872 + name = "es-to-primitive"; 873 + packageName = "es-to-primitive"; 874 + version = "1.2.1"; 875 + src = fetchurl { 876 + url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"; 877 + sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="; 878 + }; 879 + }; 880 + "escape-html-1.0.3" = { 881 + name = "escape-html"; 882 + packageName = "escape-html"; 883 + version = "1.0.3"; 884 + src = fetchurl { 885 + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; 886 + sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; 887 + }; 888 + }; 889 + "escape-string-regexp-1.0.5" = { 890 + name = "escape-string-regexp"; 891 + packageName = "escape-string-regexp"; 892 + version = "1.0.5"; 893 + src = fetchurl { 894 + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; 895 + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; 896 + }; 897 + }; 898 + "escape-string-regexp-2.0.0" = { 899 + name = "escape-string-regexp"; 900 + packageName = "escape-string-regexp"; 901 + version = "2.0.0"; 902 + src = fetchurl { 903 + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz"; 904 + sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="; 905 + }; 906 + }; 907 + "escape-string-regexp-4.0.0" = { 908 + name = "escape-string-regexp"; 909 + packageName = "escape-string-regexp"; 910 + version = "4.0.0"; 911 + src = fetchurl { 912 + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"; 913 + sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="; 914 + }; 915 + }; 916 + "esprima-4.0.1" = { 917 + name = "esprima"; 918 + packageName = "esprima"; 919 + version = "4.0.1"; 920 + src = fetchurl { 921 + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; 922 + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; 923 + }; 924 + }; 925 + "etag-1.8.1" = { 926 + name = "etag"; 927 + packageName = "etag"; 928 + version = "1.8.1"; 929 + src = fetchurl { 930 + url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; 931 + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; 932 + }; 933 + }; 934 + "expect-26.6.2" = { 935 + name = "expect"; 936 + packageName = "expect"; 937 + version = "26.6.2"; 938 + src = fetchurl { 939 + url = "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz"; 940 + sha512 = "9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA=="; 941 + }; 942 + }; 943 + "express-4.17.1" = { 944 + name = "express"; 945 + packageName = "express"; 946 + version = "4.17.1"; 947 + src = fetchurl { 948 + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; 949 + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; 950 + }; 951 + }; 952 + "extend-3.0.2" = { 953 + name = "extend"; 954 + packageName = "extend"; 955 + version = "3.0.2"; 956 + src = fetchurl { 957 + url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; 958 + sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; 959 + }; 960 + }; 961 + "extsprintf-1.3.0" = { 962 + name = "extsprintf"; 963 + packageName = "extsprintf"; 964 + version = "1.3.0"; 965 + src = fetchurl { 966 + url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; 967 + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; 968 + }; 969 + }; 970 + "fast-deep-equal-3.1.3" = { 971 + name = "fast-deep-equal"; 972 + packageName = "fast-deep-equal"; 973 + version = "3.1.3"; 974 + src = fetchurl { 975 + url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"; 976 + sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="; 977 + }; 978 + }; 979 + "fast-json-stable-stringify-2.1.0" = { 980 + name = "fast-json-stable-stringify"; 981 + packageName = "fast-json-stable-stringify"; 982 + version = "2.1.0"; 983 + src = fetchurl { 984 + url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"; 985 + sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="; 986 + }; 987 + }; 988 + "fill-range-7.0.1" = { 989 + name = "fill-range"; 990 + packageName = "fill-range"; 991 + version = "7.0.1"; 992 + src = fetchurl { 993 + url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"; 994 + sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="; 995 + }; 996 + }; 997 + "finalhandler-1.1.2" = { 998 + name = "finalhandler"; 999 + packageName = "finalhandler"; 1000 + version = "1.1.2"; 1001 + src = fetchurl { 1002 + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; 1003 + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; 1004 + }; 1005 + }; 1006 + "find-up-3.0.0" = { 1007 + name = "find-up"; 1008 + packageName = "find-up"; 1009 + version = "3.0.0"; 1010 + src = fetchurl { 1011 + url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"; 1012 + sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="; 1013 + }; 1014 + }; 1015 + "flat-4.1.1" = { 1016 + name = "flat"; 1017 + packageName = "flat"; 1018 + version = "4.1.1"; 1019 + src = fetchurl { 1020 + url = "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz"; 1021 + sha512 = "FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA=="; 1022 + }; 1023 + }; 1024 + "forever-agent-0.6.1" = { 1025 + name = "forever-agent"; 1026 + packageName = "forever-agent"; 1027 + version = "0.6.1"; 1028 + src = fetchurl { 1029 + url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; 1030 + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; 1031 + }; 1032 + }; 1033 + "form-data-2.3.3" = { 1034 + name = "form-data"; 1035 + packageName = "form-data"; 1036 + version = "2.3.3"; 1037 + src = fetchurl { 1038 + url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; 1039 + sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; 1040 + }; 1041 + }; 1042 + "forwarded-0.1.2" = { 1043 + name = "forwarded"; 1044 + packageName = "forwarded"; 1045 + version = "0.1.2"; 1046 + src = fetchurl { 1047 + url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"; 1048 + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; 1049 + }; 1050 + }; 1051 + "fresh-0.5.2" = { 1052 + name = "fresh"; 1053 + packageName = "fresh"; 1054 + version = "0.5.2"; 1055 + src = fetchurl { 1056 + url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; 1057 + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; 1058 + }; 1059 + }; 1060 + "fs.realpath-1.0.0" = { 1061 + name = "fs.realpath"; 1062 + packageName = "fs.realpath"; 1063 + version = "1.0.0"; 1064 + src = fetchurl { 1065 + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; 1066 + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; 1067 + }; 1068 + }; 1069 + "fsevents-2.1.3" = { 1070 + name = "fsevents"; 1071 + packageName = "fsevents"; 1072 + version = "2.1.3"; 1073 + src = fetchurl { 1074 + url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz"; 1075 + sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ=="; 1076 + }; 1077 + }; 1078 + "function-bind-1.1.1" = { 1079 + name = "function-bind"; 1080 + packageName = "function-bind"; 1081 + version = "1.1.1"; 1082 + src = fetchurl { 1083 + url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"; 1084 + sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="; 1085 + }; 1086 + }; 1087 + "get-caller-file-2.0.5" = { 1088 + name = "get-caller-file"; 1089 + packageName = "get-caller-file"; 1090 + version = "2.0.5"; 1091 + src = fetchurl { 1092 + url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"; 1093 + sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="; 1094 + }; 1095 + }; 1096 + "get-intrinsic-1.1.1" = { 1097 + name = "get-intrinsic"; 1098 + packageName = "get-intrinsic"; 1099 + version = "1.1.1"; 1100 + src = fetchurl { 1101 + url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"; 1102 + sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q=="; 1103 + }; 1104 + }; 1105 + "getpass-0.1.7" = { 1106 + name = "getpass"; 1107 + packageName = "getpass"; 1108 + version = "0.1.7"; 1109 + src = fetchurl { 1110 + url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; 1111 + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; 1112 + }; 1113 + }; 1114 + "glob-7.1.3" = { 1115 + name = "glob"; 1116 + packageName = "glob"; 1117 + version = "7.1.3"; 1118 + src = fetchurl { 1119 + url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz"; 1120 + sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ=="; 1121 + }; 1122 + }; 1123 + "glob-parent-5.1.2" = { 1124 + name = "glob-parent"; 1125 + packageName = "glob-parent"; 1126 + version = "5.1.2"; 1127 + src = fetchurl { 1128 + url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"; 1129 + sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="; 1130 + }; 1131 + }; 1132 + "glob-to-regexp-0.4.1" = { 1133 + name = "glob-to-regexp"; 1134 + packageName = "glob-to-regexp"; 1135 + version = "0.4.1"; 1136 + src = fetchurl { 1137 + url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"; 1138 + sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="; 1139 + }; 1140 + }; 1141 + "graceful-fs-4.2.6" = { 1142 + name = "graceful-fs"; 1143 + packageName = "graceful-fs"; 1144 + version = "4.2.6"; 1145 + src = fetchurl { 1146 + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"; 1147 + sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="; 1148 + }; 1149 + }; 1150 + "growl-1.10.5" = { 1151 + name = "growl"; 1152 + packageName = "growl"; 1153 + version = "1.10.5"; 1154 + src = fetchurl { 1155 + url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz"; 1156 + sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="; 1157 + }; 1158 + }; 1159 + "har-schema-2.0.0" = { 1160 + name = "har-schema"; 1161 + packageName = "har-schema"; 1162 + version = "2.0.0"; 1163 + src = fetchurl { 1164 + url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; 1165 + sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; 1166 + }; 1167 + }; 1168 + "har-validator-5.1.5" = { 1169 + name = "har-validator"; 1170 + packageName = "har-validator"; 1171 + version = "5.1.5"; 1172 + src = fetchurl { 1173 + url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"; 1174 + sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="; 1175 + }; 1176 + }; 1177 + "has-1.0.3" = { 1178 + name = "has"; 1179 + packageName = "has"; 1180 + version = "1.0.3"; 1181 + src = fetchurl { 1182 + url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz"; 1183 + sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="; 1184 + }; 1185 + }; 1186 + "has-bigints-1.0.1" = { 1187 + name = "has-bigints"; 1188 + packageName = "has-bigints"; 1189 + version = "1.0.1"; 1190 + src = fetchurl { 1191 + url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz"; 1192 + sha512 = "LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="; 1193 + }; 1194 + }; 1195 + "has-flag-3.0.0" = { 1196 + name = "has-flag"; 1197 + packageName = "has-flag"; 1198 + version = "3.0.0"; 1199 + src = fetchurl { 1200 + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; 1201 + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; 1202 + }; 1203 + }; 1204 + "has-flag-4.0.0" = { 1205 + name = "has-flag"; 1206 + packageName = "has-flag"; 1207 + version = "4.0.0"; 1208 + src = fetchurl { 1209 + url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; 1210 + sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; 1211 + }; 1212 + }; 1213 + "has-symbols-1.0.2" = { 1214 + name = "has-symbols"; 1215 + packageName = "has-symbols"; 1216 + version = "1.0.2"; 1217 + src = fetchurl { 1218 + url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz"; 1219 + sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="; 1220 + }; 1221 + }; 1222 + "hash.js-1.1.7" = { 1223 + name = "hash.js"; 1224 + packageName = "hash.js"; 1225 + version = "1.1.7"; 1226 + src = fetchurl { 1227 + url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; 1228 + sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; 1229 + }; 1230 + }; 1231 + "he-1.2.0" = { 1232 + name = "he"; 1233 + packageName = "he"; 1234 + version = "1.2.0"; 1235 + src = fetchurl { 1236 + url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; 1237 + sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; 1238 + }; 1239 + }; 1240 + "html-to-text-6.0.0" = { 1241 + name = "html-to-text"; 1242 + packageName = "html-to-text"; 1243 + version = "6.0.0"; 1244 + src = fetchurl { 1245 + url = "https://registry.npmjs.org/html-to-text/-/html-to-text-6.0.0.tgz"; 1246 + sha512 = "r0KNC5aqCAItsjlgtirW6RW25c92Ee3ybQj8z//4Sl4suE3HIPqM4deGpYCUJULLjtVPEP1+Ma+1ZeX1iMsCiA=="; 1247 + }; 1248 + }; 1249 + "htmlencode-0.0.4" = { 1250 + name = "htmlencode"; 1251 + packageName = "htmlencode"; 1252 + version = "0.0.4"; 1253 + src = fetchurl { 1254 + url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz"; 1255 + sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f"; 1256 + }; 1257 + }; 1258 + "htmlparser2-4.1.0" = { 1259 + name = "htmlparser2"; 1260 + packageName = "htmlparser2"; 1261 + version = "4.1.0"; 1262 + src = fetchurl { 1263 + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz"; 1264 + sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q=="; 1265 + }; 1266 + }; 1267 + "htmlparser2-6.1.0" = { 1268 + name = "htmlparser2"; 1269 + packageName = "htmlparser2"; 1270 + version = "6.1.0"; 1271 + src = fetchurl { 1272 + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz"; 1273 + sha512 = "gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A=="; 1274 + }; 1275 + }; 1276 + "http-errors-1.7.2" = { 1277 + name = "http-errors"; 1278 + packageName = "http-errors"; 1279 + version = "1.7.2"; 1280 + src = fetchurl { 1281 + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; 1282 + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; 1283 + }; 1284 + }; 1285 + "http-signature-1.2.0" = { 1286 + name = "http-signature"; 1287 + packageName = "http-signature"; 1288 + version = "1.2.0"; 1289 + src = fetchurl { 1290 + url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; 1291 + sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; 1292 + }; 1293 + }; 1294 + "iconv-lite-0.4.24" = { 1295 + name = "iconv-lite"; 1296 + packageName = "iconv-lite"; 1297 + version = "0.4.24"; 1298 + src = fetchurl { 1299 + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; 1300 + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; 1301 + }; 1302 + }; 1303 + "inflight-1.0.6" = { 1304 + name = "inflight"; 1305 + packageName = "inflight"; 1306 + version = "1.0.6"; 1307 + src = fetchurl { 1308 + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; 1309 + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; 1310 + }; 1311 + }; 1312 + "inherits-2.0.3" = { 1313 + name = "inherits"; 1314 + packageName = "inherits"; 1315 + version = "2.0.3"; 1316 + src = fetchurl { 1317 + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; 1318 + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; 1319 + }; 1320 + }; 1321 + "ipaddr.js-1.9.1" = { 1322 + name = "ipaddr.js"; 1323 + packageName = "ipaddr.js"; 1324 + version = "1.9.1"; 1325 + src = fetchurl { 1326 + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; 1327 + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; 1328 + }; 1329 + }; 1330 + "is-bigint-1.0.2" = { 1331 + name = "is-bigint"; 1332 + packageName = "is-bigint"; 1333 + version = "1.0.2"; 1334 + src = fetchurl { 1335 + url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz"; 1336 + sha512 = "0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA=="; 1337 + }; 1338 + }; 1339 + "is-binary-path-2.1.0" = { 1340 + name = "is-binary-path"; 1341 + packageName = "is-binary-path"; 1342 + version = "2.1.0"; 1343 + src = fetchurl { 1344 + url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"; 1345 + sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="; 1346 + }; 1347 + }; 1348 + "is-boolean-object-1.1.1" = { 1349 + name = "is-boolean-object"; 1350 + packageName = "is-boolean-object"; 1351 + version = "1.1.1"; 1352 + src = fetchurl { 1353 + url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz"; 1354 + sha512 = "bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng=="; 1355 + }; 1356 + }; 1357 + "is-buffer-2.0.5" = { 1358 + name = "is-buffer"; 1359 + packageName = "is-buffer"; 1360 + version = "2.0.5"; 1361 + src = fetchurl { 1362 + url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz"; 1363 + sha512 = "i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="; 1364 + }; 1365 + }; 1366 + "is-callable-1.2.3" = { 1367 + name = "is-callable"; 1368 + packageName = "is-callable"; 1369 + version = "1.2.3"; 1370 + src = fetchurl { 1371 + url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz"; 1372 + sha512 = "J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ=="; 1373 + }; 1374 + }; 1375 + "is-core-module-2.4.0" = { 1376 + name = "is-core-module"; 1377 + packageName = "is-core-module"; 1378 + version = "2.4.0"; 1379 + src = fetchurl { 1380 + url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz"; 1381 + sha512 = "6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A=="; 1382 + }; 1383 + }; 1384 + "is-date-object-1.0.4" = { 1385 + name = "is-date-object"; 1386 + packageName = "is-date-object"; 1387 + version = "1.0.4"; 1388 + src = fetchurl { 1389 + url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz"; 1390 + sha512 = "/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A=="; 1391 + }; 1392 + }; 1393 + "is-extglob-2.1.1" = { 1394 + name = "is-extglob"; 1395 + packageName = "is-extglob"; 1396 + version = "2.1.1"; 1397 + src = fetchurl { 1398 + url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"; 1399 + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; 1400 + }; 1401 + }; 1402 + "is-fullwidth-code-point-2.0.0" = { 1403 + name = "is-fullwidth-code-point"; 1404 + packageName = "is-fullwidth-code-point"; 1405 + version = "2.0.0"; 1406 + src = fetchurl { 1407 + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; 1408 + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; 1409 + }; 1410 + }; 1411 + "is-glob-4.0.1" = { 1412 + name = "is-glob"; 1413 + packageName = "is-glob"; 1414 + version = "4.0.1"; 1415 + src = fetchurl { 1416 + url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"; 1417 + sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg=="; 1418 + }; 1419 + }; 1420 + "is-negative-zero-2.0.1" = { 1421 + name = "is-negative-zero"; 1422 + packageName = "is-negative-zero"; 1423 + version = "2.0.1"; 1424 + src = fetchurl { 1425 + url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz"; 1426 + sha512 = "2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="; 1427 + }; 1428 + }; 1429 + "is-number-7.0.0" = { 1430 + name = "is-number"; 1431 + packageName = "is-number"; 1432 + version = "7.0.0"; 1433 + src = fetchurl { 1434 + url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"; 1435 + sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="; 1436 + }; 1437 + }; 1438 + "is-number-object-1.0.5" = { 1439 + name = "is-number-object"; 1440 + packageName = "is-number-object"; 1441 + version = "1.0.5"; 1442 + src = fetchurl { 1443 + url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz"; 1444 + sha512 = "RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw=="; 1445 + }; 1446 + }; 1447 + "is-plain-object-5.0.0" = { 1448 + name = "is-plain-object"; 1449 + packageName = "is-plain-object"; 1450 + version = "5.0.0"; 1451 + src = fetchurl { 1452 + url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz"; 1453 + sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="; 1454 + }; 1455 + }; 1456 + "is-promise-2.2.2" = { 1457 + name = "is-promise"; 1458 + packageName = "is-promise"; 1459 + version = "2.2.2"; 1460 + src = fetchurl { 1461 + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"; 1462 + sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="; 1463 + }; 1464 + }; 1465 + "is-regex-1.1.3" = { 1466 + name = "is-regex"; 1467 + packageName = "is-regex"; 1468 + version = "1.1.3"; 1469 + src = fetchurl { 1470 + url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz"; 1471 + sha512 = "qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ=="; 1472 + }; 1473 + }; 1474 + "is-string-1.0.6" = { 1475 + name = "is-string"; 1476 + packageName = "is-string"; 1477 + version = "1.0.6"; 1478 + src = fetchurl { 1479 + url = "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz"; 1480 + sha512 = "2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w=="; 1481 + }; 1482 + }; 1483 + "is-symbol-1.0.4" = { 1484 + name = "is-symbol"; 1485 + packageName = "is-symbol"; 1486 + version = "1.0.4"; 1487 + src = fetchurl { 1488 + url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"; 1489 + sha512 = "C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="; 1490 + }; 1491 + }; 1492 + "is-typedarray-1.0.0" = { 1493 + name = "is-typedarray"; 1494 + packageName = "is-typedarray"; 1495 + version = "1.0.0"; 1496 + src = fetchurl { 1497 + url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; 1498 + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; 1499 + }; 1500 + }; 1501 + "isexe-2.0.0" = { 1502 + name = "isexe"; 1503 + packageName = "isexe"; 1504 + version = "2.0.0"; 1505 + src = fetchurl { 1506 + url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"; 1507 + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; 1508 + }; 1509 + }; 1510 + "isstream-0.1.2" = { 1511 + name = "isstream"; 1512 + packageName = "isstream"; 1513 + version = "0.1.2"; 1514 + src = fetchurl { 1515 + url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; 1516 + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; 1517 + }; 1518 + }; 1519 + "jest-diff-26.6.2" = { 1520 + name = "jest-diff"; 1521 + packageName = "jest-diff"; 1522 + version = "26.6.2"; 1523 + src = fetchurl { 1524 + url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz"; 1525 + sha512 = "6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA=="; 1526 + }; 1527 + }; 1528 + "jest-get-type-26.3.0" = { 1529 + name = "jest-get-type"; 1530 + packageName = "jest-get-type"; 1531 + version = "26.3.0"; 1532 + src = fetchurl { 1533 + url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz"; 1534 + sha512 = "TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig=="; 1535 + }; 1536 + }; 1537 + "jest-matcher-utils-26.6.2" = { 1538 + name = "jest-matcher-utils"; 1539 + packageName = "jest-matcher-utils"; 1540 + version = "26.6.2"; 1541 + src = fetchurl { 1542 + url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz"; 1543 + sha512 = "llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw=="; 1544 + }; 1545 + }; 1546 + "jest-message-util-26.6.2" = { 1547 + name = "jest-message-util"; 1548 + packageName = "jest-message-util"; 1549 + version = "26.6.2"; 1550 + src = fetchurl { 1551 + url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz"; 1552 + sha512 = "rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA=="; 1553 + }; 1554 + }; 1555 + "jest-regex-util-26.0.0" = { 1556 + name = "jest-regex-util"; 1557 + packageName = "jest-regex-util"; 1558 + version = "26.0.0"; 1559 + src = fetchurl { 1560 + url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz"; 1561 + sha512 = "Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A=="; 1562 + }; 1563 + }; 1564 + "js-tokens-4.0.0" = { 1565 + name = "js-tokens"; 1566 + packageName = "js-tokens"; 1567 + version = "4.0.0"; 1568 + src = fetchurl { 1569 + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; 1570 + sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; 1571 + }; 1572 + }; 1573 + "js-yaml-3.13.1" = { 1574 + name = "js-yaml"; 1575 + packageName = "js-yaml"; 1576 + version = "3.13.1"; 1577 + src = fetchurl { 1578 + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; 1579 + sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; 1580 + }; 1581 + }; 1582 + "js-yaml-3.14.1" = { 1583 + name = "js-yaml"; 1584 + packageName = "js-yaml"; 1585 + version = "3.14.1"; 1586 + src = fetchurl { 1587 + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"; 1588 + sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="; 1589 + }; 1590 + }; 1591 + "jsbn-0.1.1" = { 1592 + name = "jsbn"; 1593 + packageName = "jsbn"; 1594 + version = "0.1.1"; 1595 + src = fetchurl { 1596 + url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; 1597 + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; 1598 + }; 1599 + }; 1600 + "json-schema-0.2.3" = { 1601 + name = "json-schema"; 1602 + packageName = "json-schema"; 1603 + version = "0.2.3"; 1604 + src = fetchurl { 1605 + url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; 1606 + sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; 1607 + }; 1608 + }; 1609 + "json-schema-traverse-0.4.1" = { 1610 + name = "json-schema-traverse"; 1611 + packageName = "json-schema-traverse"; 1612 + version = "0.4.1"; 1613 + src = fetchurl { 1614 + url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; 1615 + sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; 1616 + }; 1617 + }; 1618 + "json-stringify-safe-5.0.1" = { 1619 + name = "json-stringify-safe"; 1620 + packageName = "json-stringify-safe"; 1621 + version = "5.0.1"; 1622 + src = fetchurl { 1623 + url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; 1624 + sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; 1625 + }; 1626 + }; 1627 + "json5-1.0.1" = { 1628 + name = "json5"; 1629 + packageName = "json5"; 1630 + version = "1.0.1"; 1631 + src = fetchurl { 1632 + url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"; 1633 + sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="; 1634 + }; 1635 + }; 1636 + "json5-2.2.0" = { 1637 + name = "json5"; 1638 + packageName = "json5"; 1639 + version = "2.2.0"; 1640 + src = fetchurl { 1641 + url = "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"; 1642 + sha512 = "f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA=="; 1643 + }; 1644 + }; 1645 + "jsprim-1.4.1" = { 1646 + name = "jsprim"; 1647 + packageName = "jsprim"; 1648 + version = "1.4.1"; 1649 + src = fetchurl { 1650 + url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; 1651 + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; 1652 + }; 1653 + }; 1654 + "klona-2.0.4" = { 1655 + name = "klona"; 1656 + packageName = "klona"; 1657 + version = "2.0.4"; 1658 + src = fetchurl { 1659 + url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz"; 1660 + sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA=="; 1661 + }; 1662 + }; 1663 + "locate-path-3.0.0" = { 1664 + name = "locate-path"; 1665 + packageName = "locate-path"; 1666 + version = "3.0.0"; 1667 + src = fetchurl { 1668 + url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"; 1669 + sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="; 1670 + }; 1671 + }; 1672 + "lodash-4.17.21" = { 1673 + name = "lodash"; 1674 + packageName = "lodash"; 1675 + version = "4.17.21"; 1676 + src = fetchurl { 1677 + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"; 1678 + sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="; 1679 + }; 1680 + }; 1681 + "log-symbols-3.0.0" = { 1682 + name = "log-symbols"; 1683 + packageName = "log-symbols"; 1684 + version = "3.0.0"; 1685 + src = fetchurl { 1686 + url = "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz"; 1687 + sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ=="; 1688 + }; 1689 + }; 1690 + "lowdb-1.0.0" = { 1691 + name = "lowdb"; 1692 + packageName = "lowdb"; 1693 + version = "1.0.0"; 1694 + src = fetchurl { 1695 + url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz"; 1696 + sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ=="; 1697 + }; 1698 + }; 1699 + "lru-cache-6.0.0" = { 1700 + name = "lru-cache"; 1701 + packageName = "lru-cache"; 1702 + version = "6.0.0"; 1703 + src = fetchurl { 1704 + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"; 1705 + sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="; 1706 + }; 1707 + }; 1708 + "make-error-1.3.6" = { 1709 + name = "make-error"; 1710 + packageName = "make-error"; 1711 + version = "1.3.6"; 1712 + src = fetchurl { 1713 + url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"; 1714 + sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="; 1715 + }; 1716 + }; 1717 + "matrix-bot-sdk-0.5.18" = { 1718 + name = "matrix-bot-sdk"; 1719 + packageName = "matrix-bot-sdk"; 1720 + version = "0.5.18"; 1721 + src = fetchurl { 1722 + url = "https://registry.npmjs.org/matrix-bot-sdk/-/matrix-bot-sdk-0.5.18.tgz"; 1723 + sha512 = "NntJoGmZdGlBsJ+HuEi1zB0lcRd8BCiPH6hExeuRNKtMOVHhJIKUgd5IY2cTy5YxHGk+kbBbkpzooFvRxVkOrg=="; 1724 + }; 1725 + }; 1726 + "media-typer-0.3.0" = { 1727 + name = "media-typer"; 1728 + packageName = "media-typer"; 1729 + version = "0.3.0"; 1730 + src = fetchurl { 1731 + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; 1732 + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; 1733 + }; 1734 + }; 1735 + "merge-descriptors-1.0.1" = { 1736 + name = "merge-descriptors"; 1737 + packageName = "merge-descriptors"; 1738 + version = "1.0.1"; 1739 + src = fetchurl { 1740 + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; 1741 + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; 1742 + }; 1743 + }; 1744 + "methods-1.1.2" = { 1745 + name = "methods"; 1746 + packageName = "methods"; 1747 + version = "1.1.2"; 1748 + src = fetchurl { 1749 + url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"; 1750 + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; 1751 + }; 1752 + }; 1753 + "micromatch-4.0.4" = { 1754 + name = "micromatch"; 1755 + packageName = "micromatch"; 1756 + version = "4.0.4"; 1757 + src = fetchurl { 1758 + url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"; 1759 + sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg=="; 1760 + }; 1761 + }; 1762 + "mime-1.6.0" = { 1763 + name = "mime"; 1764 + packageName = "mime"; 1765 + version = "1.6.0"; 1766 + src = fetchurl { 1767 + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; 1768 + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; 1769 + }; 1770 + }; 1771 + "mime-db-1.47.0" = { 1772 + name = "mime-db"; 1773 + packageName = "mime-db"; 1774 + version = "1.47.0"; 1775 + src = fetchurl { 1776 + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz"; 1777 + sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="; 1778 + }; 1779 + }; 1780 + "mime-types-2.1.30" = { 1781 + name = "mime-types"; 1782 + packageName = "mime-types"; 1783 + version = "2.1.30"; 1784 + src = fetchurl { 1785 + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz"; 1786 + sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg=="; 1787 + }; 1788 + }; 1789 + "minimalistic-assert-1.0.1" = { 1790 + name = "minimalistic-assert"; 1791 + packageName = "minimalistic-assert"; 1792 + version = "1.0.1"; 1793 + src = fetchurl { 1794 + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; 1795 + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; 1796 + }; 1797 + }; 1798 + "minimatch-3.0.4" = { 1799 + name = "minimatch"; 1800 + packageName = "minimatch"; 1801 + version = "3.0.4"; 1802 + src = fetchurl { 1803 + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; 1804 + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; 1805 + }; 1806 + }; 1807 + "minimist-1.2.5" = { 1808 + name = "minimist"; 1809 + packageName = "minimist"; 1810 + version = "1.2.5"; 1811 + src = fetchurl { 1812 + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; 1813 + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; 1814 + }; 1815 + }; 1816 + "mkdirp-0.5.5" = { 1817 + name = "mkdirp"; 1818 + packageName = "mkdirp"; 1819 + version = "0.5.5"; 1820 + src = fetchurl { 1821 + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; 1822 + sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; 1823 + }; 1824 + }; 1825 + "mkdirp-1.0.4" = { 1826 + name = "mkdirp"; 1827 + packageName = "mkdirp"; 1828 + version = "1.0.4"; 1829 + src = fetchurl { 1830 + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; 1831 + sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; 1832 + }; 1833 + }; 1834 + "mocha-7.2.0" = { 1835 + name = "mocha"; 1836 + packageName = "mocha"; 1837 + version = "7.2.0"; 1838 + src = fetchurl { 1839 + url = "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz"; 1840 + sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ=="; 1841 + }; 1842 + }; 1843 + "morgan-1.10.0" = { 1844 + name = "morgan"; 1845 + packageName = "morgan"; 1846 + version = "1.10.0"; 1847 + src = fetchurl { 1848 + url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"; 1849 + sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ=="; 1850 + }; 1851 + }; 1852 + "ms-2.0.0" = { 1853 + name = "ms"; 1854 + packageName = "ms"; 1855 + version = "2.0.0"; 1856 + src = fetchurl { 1857 + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; 1858 + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; 1859 + }; 1860 + }; 1861 + "ms-2.1.1" = { 1862 + name = "ms"; 1863 + packageName = "ms"; 1864 + version = "2.1.1"; 1865 + src = fetchurl { 1866 + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; 1867 + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; 1868 + }; 1869 + }; 1870 + "nanoid-3.1.23" = { 1871 + name = "nanoid"; 1872 + packageName = "nanoid"; 1873 + version = "3.1.23"; 1874 + src = fetchurl { 1875 + url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz"; 1876 + sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw=="; 1877 + }; 1878 + }; 1879 + "negotiator-0.6.2" = { 1880 + name = "negotiator"; 1881 + packageName = "negotiator"; 1882 + version = "0.6.2"; 1883 + src = fetchurl { 1884 + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"; 1885 + sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="; 1886 + }; 1887 + }; 1888 + "node-environment-flags-1.0.6" = { 1889 + name = "node-environment-flags"; 1890 + packageName = "node-environment-flags"; 1891 + version = "1.0.6"; 1892 + src = fetchurl { 1893 + url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz"; 1894 + sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw=="; 1895 + }; 1896 + }; 1897 + "normalize-path-3.0.0" = { 1898 + name = "normalize-path"; 1899 + packageName = "normalize-path"; 1900 + version = "3.0.0"; 1901 + src = fetchurl { 1902 + url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"; 1903 + sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="; 1904 + }; 1905 + }; 1906 + "oauth-sign-0.9.0" = { 1907 + name = "oauth-sign"; 1908 + packageName = "oauth-sign"; 1909 + version = "0.9.0"; 1910 + src = fetchurl { 1911 + url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; 1912 + sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; 1913 + }; 1914 + }; 1915 + "object-inspect-1.10.3" = { 1916 + name = "object-inspect"; 1917 + packageName = "object-inspect"; 1918 + version = "1.10.3"; 1919 + src = fetchurl { 1920 + url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz"; 1921 + sha512 = "e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw=="; 1922 + }; 1923 + }; 1924 + "object-keys-1.1.1" = { 1925 + name = "object-keys"; 1926 + packageName = "object-keys"; 1927 + version = "1.1.1"; 1928 + src = fetchurl { 1929 + url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"; 1930 + sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="; 1931 + }; 1932 + }; 1933 + "object.assign-4.1.0" = { 1934 + name = "object.assign"; 1935 + packageName = "object.assign"; 1936 + version = "4.1.0"; 1937 + src = fetchurl { 1938 + url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz"; 1939 + sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w=="; 1940 + }; 1941 + }; 1942 + "object.assign-4.1.2" = { 1943 + name = "object.assign"; 1944 + packageName = "object.assign"; 1945 + version = "4.1.2"; 1946 + src = fetchurl { 1947 + url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz"; 1948 + sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ=="; 1949 + }; 1950 + }; 1951 + "object.getownpropertydescriptors-2.1.2" = { 1952 + name = "object.getownpropertydescriptors"; 1953 + packageName = "object.getownpropertydescriptors"; 1954 + version = "2.1.2"; 1955 + src = fetchurl { 1956 + url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz"; 1957 + sha512 = "WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ=="; 1958 + }; 1959 + }; 1960 + "on-finished-2.3.0" = { 1961 + name = "on-finished"; 1962 + packageName = "on-finished"; 1963 + version = "2.3.0"; 1964 + src = fetchurl { 1965 + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; 1966 + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; 1967 + }; 1968 + }; 1969 + "on-headers-1.0.2" = { 1970 + name = "on-headers"; 1971 + packageName = "on-headers"; 1972 + version = "1.0.2"; 1973 + src = fetchurl { 1974 + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; 1975 + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; 1976 + }; 1977 + }; 1978 + "once-1.4.0" = { 1979 + name = "once"; 1980 + packageName = "once"; 1981 + version = "1.4.0"; 1982 + src = fetchurl { 1983 + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; 1984 + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; 1985 + }; 1986 + }; 1987 + "p-limit-2.3.0" = { 1988 + name = "p-limit"; 1989 + packageName = "p-limit"; 1990 + version = "2.3.0"; 1991 + src = fetchurl { 1992 + url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"; 1993 + sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="; 1994 + }; 1995 + }; 1996 + "p-locate-3.0.0" = { 1997 + name = "p-locate"; 1998 + packageName = "p-locate"; 1999 + version = "3.0.0"; 2000 + src = fetchurl { 2001 + url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"; 2002 + sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="; 2003 + }; 2004 + }; 2005 + "p-try-2.2.0" = { 2006 + name = "p-try"; 2007 + packageName = "p-try"; 2008 + version = "2.2.0"; 2009 + src = fetchurl { 2010 + url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"; 2011 + sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="; 2012 + }; 2013 + }; 2014 + "parse-srcset-1.0.2" = { 2015 + name = "parse-srcset"; 2016 + packageName = "parse-srcset"; 2017 + version = "1.0.2"; 2018 + src = fetchurl { 2019 + url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz"; 2020 + sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1"; 2021 + }; 2022 + }; 2023 + "parseurl-1.3.3" = { 2024 + name = "parseurl"; 2025 + packageName = "parseurl"; 2026 + version = "1.3.3"; 2027 + src = fetchurl { 2028 + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; 2029 + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; 2030 + }; 2031 + }; 2032 + "path-exists-3.0.0" = { 2033 + name = "path-exists"; 2034 + packageName = "path-exists"; 2035 + version = "3.0.0"; 2036 + src = fetchurl { 2037 + url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"; 2038 + sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"; 2039 + }; 2040 + }; 2041 + "path-is-absolute-1.0.1" = { 2042 + name = "path-is-absolute"; 2043 + packageName = "path-is-absolute"; 2044 + version = "1.0.1"; 2045 + src = fetchurl { 2046 + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; 2047 + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; 2048 + }; 2049 + }; 2050 + "path-parse-1.0.6" = { 2051 + name = "path-parse"; 2052 + packageName = "path-parse"; 2053 + version = "1.0.6"; 2054 + src = fetchurl { 2055 + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; 2056 + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; 2057 + }; 2058 + }; 2059 + "path-to-regexp-0.1.7" = { 2060 + name = "path-to-regexp"; 2061 + packageName = "path-to-regexp"; 2062 + version = "0.1.7"; 2063 + src = fetchurl { 2064 + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; 2065 + sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; 2066 + }; 2067 + }; 2068 + "performance-now-2.1.0" = { 2069 + name = "performance-now"; 2070 + packageName = "performance-now"; 2071 + version = "2.1.0"; 2072 + src = fetchurl { 2073 + url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; 2074 + sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; 2075 + }; 2076 + }; 2077 + "picomatch-2.2.3" = { 2078 + name = "picomatch"; 2079 + packageName = "picomatch"; 2080 + version = "2.2.3"; 2081 + src = fetchurl { 2082 + url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz"; 2083 + sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg=="; 2084 + }; 2085 + }; 2086 + "pify-3.0.0" = { 2087 + name = "pify"; 2088 + packageName = "pify"; 2089 + version = "3.0.0"; 2090 + src = fetchurl { 2091 + url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz"; 2092 + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; 2093 + }; 2094 + }; 2095 + "postcss-8.3.0" = { 2096 + name = "postcss"; 2097 + packageName = "postcss"; 2098 + version = "8.3.0"; 2099 + src = fetchurl { 2100 + url = "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz"; 2101 + sha512 = "+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ=="; 2102 + }; 2103 + }; 2104 + "pretty-format-26.6.2" = { 2105 + name = "pretty-format"; 2106 + packageName = "pretty-format"; 2107 + version = "26.6.2"; 2108 + src = fetchurl { 2109 + url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz"; 2110 + sha512 = "7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg=="; 2111 + }; 2112 + }; 2113 + "proxy-addr-2.0.6" = { 2114 + name = "proxy-addr"; 2115 + packageName = "proxy-addr"; 2116 + version = "2.0.6"; 2117 + src = fetchurl { 2118 + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; 2119 + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; 2120 + }; 2121 + }; 2122 + "psl-1.8.0" = { 2123 + name = "psl"; 2124 + packageName = "psl"; 2125 + version = "1.8.0"; 2126 + src = fetchurl { 2127 + url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"; 2128 + sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="; 2129 + }; 2130 + }; 2131 + "punycode-2.1.1" = { 2132 + name = "punycode"; 2133 + packageName = "punycode"; 2134 + version = "2.1.1"; 2135 + src = fetchurl { 2136 + url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; 2137 + sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; 2138 + }; 2139 + }; 2140 + "qs-6.5.2" = { 2141 + name = "qs"; 2142 + packageName = "qs"; 2143 + version = "6.5.2"; 2144 + src = fetchurl { 2145 + url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; 2146 + sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="; 2147 + }; 2148 + }; 2149 + "qs-6.7.0" = { 2150 + name = "qs"; 2151 + packageName = "qs"; 2152 + version = "6.7.0"; 2153 + src = fetchurl { 2154 + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; 2155 + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; 2156 + }; 2157 + }; 2158 + "range-parser-1.2.1" = { 2159 + name = "range-parser"; 2160 + packageName = "range-parser"; 2161 + version = "1.2.1"; 2162 + src = fetchurl { 2163 + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; 2164 + sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; 2165 + }; 2166 + }; 2167 + "raw-body-2.4.0" = { 2168 + name = "raw-body"; 2169 + packageName = "raw-body"; 2170 + version = "2.4.0"; 2171 + src = fetchurl { 2172 + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; 2173 + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; 2174 + }; 2175 + }; 2176 + "react-is-17.0.2" = { 2177 + name = "react-is"; 2178 + packageName = "react-is"; 2179 + version = "17.0.2"; 2180 + src = fetchurl { 2181 + url = "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"; 2182 + sha512 = "w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="; 2183 + }; 2184 + }; 2185 + "readdirp-3.2.0" = { 2186 + name = "readdirp"; 2187 + packageName = "readdirp"; 2188 + version = "3.2.0"; 2189 + src = fetchurl { 2190 + url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz"; 2191 + sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ=="; 2192 + }; 2193 + }; 2194 + "request-2.88.2" = { 2195 + name = "request"; 2196 + packageName = "request"; 2197 + version = "2.88.2"; 2198 + src = fetchurl { 2199 + url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz"; 2200 + sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="; 2201 + }; 2202 + }; 2203 + "request-promise-4.2.6" = { 2204 + name = "request-promise"; 2205 + packageName = "request-promise"; 2206 + version = "4.2.6"; 2207 + src = fetchurl { 2208 + url = "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz"; 2209 + sha512 = "HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ=="; 2210 + }; 2211 + }; 2212 + "request-promise-core-1.1.4" = { 2213 + name = "request-promise-core"; 2214 + packageName = "request-promise-core"; 2215 + version = "1.1.4"; 2216 + src = fetchurl { 2217 + url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz"; 2218 + sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw=="; 2219 + }; 2220 + }; 2221 + "require-directory-2.1.1" = { 2222 + name = "require-directory"; 2223 + packageName = "require-directory"; 2224 + version = "2.1.1"; 2225 + src = fetchurl { 2226 + url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"; 2227 + sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"; 2228 + }; 2229 + }; 2230 + "require-main-filename-2.0.0" = { 2231 + name = "require-main-filename"; 2232 + packageName = "require-main-filename"; 2233 + version = "2.0.0"; 2234 + src = fetchurl { 2235 + url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"; 2236 + sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="; 2237 + }; 2238 + }; 2239 + "resolve-1.20.0" = { 2240 + name = "resolve"; 2241 + packageName = "resolve"; 2242 + version = "1.20.0"; 2243 + src = fetchurl { 2244 + url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz"; 2245 + sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A=="; 2246 + }; 2247 + }; 2248 + "safe-buffer-5.1.2" = { 2249 + name = "safe-buffer"; 2250 + packageName = "safe-buffer"; 2251 + version = "5.1.2"; 2252 + src = fetchurl { 2253 + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; 2254 + sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; 2255 + }; 2256 + }; 2257 + "safer-buffer-2.1.2" = { 2258 + name = "safer-buffer"; 2259 + packageName = "safer-buffer"; 2260 + version = "2.1.2"; 2261 + src = fetchurl { 2262 + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; 2263 + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; 2264 + }; 2265 + }; 2266 + "sanitize-html-2.4.0" = { 2267 + name = "sanitize-html"; 2268 + packageName = "sanitize-html"; 2269 + version = "2.4.0"; 2270 + src = fetchurl { 2271 + url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.4.0.tgz"; 2272 + sha512 = "Y1OgkUiTPMqwZNRLPERSEi39iOebn2XJLbeiGOBhaJD/yLqtLGu6GE5w7evx177LeGgSE+4p4e107LMiydOf6A=="; 2273 + }; 2274 + }; 2275 + "semver-5.7.1" = { 2276 + name = "semver"; 2277 + packageName = "semver"; 2278 + version = "5.7.1"; 2279 + src = fetchurl { 2280 + url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"; 2281 + sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="; 2282 + }; 2283 + }; 2284 + "send-0.17.1" = { 2285 + name = "send"; 2286 + packageName = "send"; 2287 + version = "0.17.1"; 2288 + src = fetchurl { 2289 + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; 2290 + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; 2291 + }; 2292 + }; 2293 + "serve-static-1.14.1" = { 2294 + name = "serve-static"; 2295 + packageName = "serve-static"; 2296 + version = "1.14.1"; 2297 + src = fetchurl { 2298 + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; 2299 + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; 2300 + }; 2301 + }; 2302 + "set-blocking-2.0.0" = { 2303 + name = "set-blocking"; 2304 + packageName = "set-blocking"; 2305 + version = "2.0.0"; 2306 + src = fetchurl { 2307 + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; 2308 + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; 2309 + }; 2310 + }; 2311 + "setprototypeof-1.1.1" = { 2312 + name = "setprototypeof"; 2313 + packageName = "setprototypeof"; 2314 + version = "1.1.1"; 2315 + src = fetchurl { 2316 + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; 2317 + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; 2318 + }; 2319 + }; 2320 + "slash-3.0.0" = { 2321 + name = "slash"; 2322 + packageName = "slash"; 2323 + version = "3.0.0"; 2324 + src = fetchurl { 2325 + url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"; 2326 + sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="; 2327 + }; 2328 + }; 2329 + "source-map-0.6.1" = { 2330 + name = "source-map"; 2331 + packageName = "source-map"; 2332 + version = "0.6.1"; 2333 + src = fetchurl { 2334 + url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; 2335 + sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; 2336 + }; 2337 + }; 2338 + "source-map-js-0.6.2" = { 2339 + name = "source-map-js"; 2340 + packageName = "source-map-js"; 2341 + version = "0.6.2"; 2342 + src = fetchurl { 2343 + url = "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz"; 2344 + sha512 = "/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug=="; 2345 + }; 2346 + }; 2347 + "source-map-support-0.5.19" = { 2348 + name = "source-map-support"; 2349 + packageName = "source-map-support"; 2350 + version = "0.5.19"; 2351 + src = fetchurl { 2352 + url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz"; 2353 + sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw=="; 2354 + }; 2355 + }; 2356 + "sprintf-js-1.0.3" = { 2357 + name = "sprintf-js"; 2358 + packageName = "sprintf-js"; 2359 + version = "1.0.3"; 2360 + src = fetchurl { 2361 + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; 2362 + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; 2363 + }; 2364 + }; 2365 + "sshpk-1.16.1" = { 2366 + name = "sshpk"; 2367 + packageName = "sshpk"; 2368 + version = "1.16.1"; 2369 + src = fetchurl { 2370 + url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; 2371 + sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; 2372 + }; 2373 + }; 2374 + "stack-utils-2.0.3" = { 2375 + name = "stack-utils"; 2376 + packageName = "stack-utils"; 2377 + version = "2.0.3"; 2378 + src = fetchurl { 2379 + url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz"; 2380 + sha512 = "gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw=="; 2381 + }; 2382 + }; 2383 + "statuses-1.5.0" = { 2384 + name = "statuses"; 2385 + packageName = "statuses"; 2386 + version = "1.5.0"; 2387 + src = fetchurl { 2388 + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; 2389 + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; 2390 + }; 2391 + }; 2392 + "stealthy-require-1.1.1" = { 2393 + name = "stealthy-require"; 2394 + packageName = "stealthy-require"; 2395 + version = "1.1.1"; 2396 + src = fetchurl { 2397 + url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"; 2398 + sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b"; 2399 + }; 2400 + }; 2401 + "steno-0.4.4" = { 2402 + name = "steno"; 2403 + packageName = "steno"; 2404 + version = "0.4.4"; 2405 + src = fetchurl { 2406 + url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz"; 2407 + sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb"; 2408 + }; 2409 + }; 2410 + "string-width-2.1.1" = { 2411 + name = "string-width"; 2412 + packageName = "string-width"; 2413 + version = "2.1.1"; 2414 + src = fetchurl { 2415 + url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; 2416 + sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; 2417 + }; 2418 + }; 2419 + "string-width-3.1.0" = { 2420 + name = "string-width"; 2421 + packageName = "string-width"; 2422 + version = "3.1.0"; 2423 + src = fetchurl { 2424 + url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"; 2425 + sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="; 2426 + }; 2427 + }; 2428 + "string.prototype.trimend-1.0.4" = { 2429 + name = "string.prototype.trimend"; 2430 + packageName = "string.prototype.trimend"; 2431 + version = "1.0.4"; 2432 + src = fetchurl { 2433 + url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz"; 2434 + sha512 = "y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A=="; 2435 + }; 2436 + }; 2437 + "string.prototype.trimstart-1.0.4" = { 2438 + name = "string.prototype.trimstart"; 2439 + packageName = "string.prototype.trimstart"; 2440 + version = "1.0.4"; 2441 + src = fetchurl { 2442 + url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz"; 2443 + sha512 = "jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw=="; 2444 + }; 2445 + }; 2446 + "strip-ansi-4.0.0" = { 2447 + name = "strip-ansi"; 2448 + packageName = "strip-ansi"; 2449 + version = "4.0.0"; 2450 + src = fetchurl { 2451 + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; 2452 + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; 2453 + }; 2454 + }; 2455 + "strip-ansi-5.2.0" = { 2456 + name = "strip-ansi"; 2457 + packageName = "strip-ansi"; 2458 + version = "5.2.0"; 2459 + src = fetchurl { 2460 + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"; 2461 + sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="; 2462 + }; 2463 + }; 2464 + "strip-bom-3.0.0" = { 2465 + name = "strip-bom"; 2466 + packageName = "strip-bom"; 2467 + version = "3.0.0"; 2468 + src = fetchurl { 2469 + url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"; 2470 + sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"; 2471 + }; 2472 + }; 2473 + "strip-json-comments-2.0.1" = { 2474 + name = "strip-json-comments"; 2475 + packageName = "strip-json-comments"; 2476 + version = "2.0.1"; 2477 + src = fetchurl { 2478 + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; 2479 + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; 2480 + }; 2481 + }; 2482 + "supports-color-5.5.0" = { 2483 + name = "supports-color"; 2484 + packageName = "supports-color"; 2485 + version = "5.5.0"; 2486 + src = fetchurl { 2487 + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; 2488 + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; 2489 + }; 2490 + }; 2491 + "supports-color-6.0.0" = { 2492 + name = "supports-color"; 2493 + packageName = "supports-color"; 2494 + version = "6.0.0"; 2495 + src = fetchurl { 2496 + url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz"; 2497 + sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg=="; 2498 + }; 2499 + }; 2500 + "supports-color-7.2.0" = { 2501 + name = "supports-color"; 2502 + packageName = "supports-color"; 2503 + version = "7.2.0"; 2504 + src = fetchurl { 2505 + url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; 2506 + sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; 2507 + }; 2508 + }; 2509 + "to-regex-range-5.0.1" = { 2510 + name = "to-regex-range"; 2511 + packageName = "to-regex-range"; 2512 + version = "5.0.1"; 2513 + src = fetchurl { 2514 + url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"; 2515 + sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="; 2516 + }; 2517 + }; 2518 + "toidentifier-1.0.0" = { 2519 + name = "toidentifier"; 2520 + packageName = "toidentifier"; 2521 + version = "1.0.0"; 2522 + src = fetchurl { 2523 + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; 2524 + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; 2525 + }; 2526 + }; 2527 + "tough-cookie-2.5.0" = { 2528 + name = "tough-cookie"; 2529 + packageName = "tough-cookie"; 2530 + version = "2.5.0"; 2531 + src = fetchurl { 2532 + url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"; 2533 + sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="; 2534 + }; 2535 + }; 2536 + "ts-mocha-7.0.0" = { 2537 + name = "ts-mocha"; 2538 + packageName = "ts-mocha"; 2539 + version = "7.0.0"; 2540 + src = fetchurl { 2541 + url = "https://registry.npmjs.org/ts-mocha/-/ts-mocha-7.0.0.tgz"; 2542 + sha512 = "7WfkQw1W6JZXG5m4E1w2e945uWzBoZqmnOHvpMu0v+zvyKLdUQeTtRMfcQsVEKsUnYL6nTyH4okRt2PZucmFXQ=="; 2543 + }; 2544 + }; 2545 + "ts-node-7.0.1" = { 2546 + name = "ts-node"; 2547 + packageName = "ts-node"; 2548 + version = "7.0.1"; 2549 + src = fetchurl { 2550 + url = "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz"; 2551 + sha512 = "BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw=="; 2552 + }; 2553 + }; 2554 + "tsconfig-paths-3.9.0" = { 2555 + name = "tsconfig-paths"; 2556 + packageName = "tsconfig-paths"; 2557 + version = "3.9.0"; 2558 + src = fetchurl { 2559 + url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz"; 2560 + sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw=="; 2561 + }; 2562 + }; 2563 + "tslib-1.14.1" = { 2564 + name = "tslib"; 2565 + packageName = "tslib"; 2566 + version = "1.14.1"; 2567 + src = fetchurl { 2568 + url = "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"; 2569 + sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="; 2570 + }; 2571 + }; 2572 + "tslint-6.1.3" = { 2573 + name = "tslint"; 2574 + packageName = "tslint"; 2575 + version = "6.1.3"; 2576 + src = fetchurl { 2577 + url = "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz"; 2578 + sha512 = "IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg=="; 2579 + }; 2580 + }; 2581 + "tsutils-2.29.0" = { 2582 + name = "tsutils"; 2583 + packageName = "tsutils"; 2584 + version = "2.29.0"; 2585 + src = fetchurl { 2586 + url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz"; 2587 + sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA=="; 2588 + }; 2589 + }; 2590 + "tunnel-agent-0.6.0" = { 2591 + name = "tunnel-agent"; 2592 + packageName = "tunnel-agent"; 2593 + version = "0.6.0"; 2594 + src = fetchurl { 2595 + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; 2596 + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; 2597 + }; 2598 + }; 2599 + "tweetnacl-0.14.5" = { 2600 + name = "tweetnacl"; 2601 + packageName = "tweetnacl"; 2602 + version = "0.14.5"; 2603 + src = fetchurl { 2604 + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; 2605 + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; 2606 + }; 2607 + }; 2608 + "type-is-1.6.18" = { 2609 + name = "type-is"; 2610 + packageName = "type-is"; 2611 + version = "1.6.18"; 2612 + src = fetchurl { 2613 + url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"; 2614 + sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; 2615 + }; 2616 + }; 2617 + "typescript-3.9.9" = { 2618 + name = "typescript"; 2619 + packageName = "typescript"; 2620 + version = "3.9.9"; 2621 + src = fetchurl { 2622 + url = "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz"; 2623 + sha512 = "kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w=="; 2624 + }; 2625 + }; 2626 + "unbox-primitive-1.0.1" = { 2627 + name = "unbox-primitive"; 2628 + packageName = "unbox-primitive"; 2629 + version = "1.0.1"; 2630 + src = fetchurl { 2631 + url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz"; 2632 + sha512 = "tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw=="; 2633 + }; 2634 + }; 2635 + "unpipe-1.0.0" = { 2636 + name = "unpipe"; 2637 + packageName = "unpipe"; 2638 + version = "1.0.0"; 2639 + src = fetchurl { 2640 + url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; 2641 + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; 2642 + }; 2643 + }; 2644 + "uri-js-4.4.1" = { 2645 + name = "uri-js"; 2646 + packageName = "uri-js"; 2647 + version = "4.4.1"; 2648 + src = fetchurl { 2649 + url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"; 2650 + sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="; 2651 + }; 2652 + }; 2653 + "utils-merge-1.0.1" = { 2654 + name = "utils-merge"; 2655 + packageName = "utils-merge"; 2656 + version = "1.0.1"; 2657 + src = fetchurl { 2658 + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; 2659 + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; 2660 + }; 2661 + }; 2662 + "uuid-3.4.0" = { 2663 + name = "uuid"; 2664 + packageName = "uuid"; 2665 + version = "3.4.0"; 2666 + src = fetchurl { 2667 + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; 2668 + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; 2669 + }; 2670 + }; 2671 + "vary-1.1.2" = { 2672 + name = "vary"; 2673 + packageName = "vary"; 2674 + version = "1.1.2"; 2675 + src = fetchurl { 2676 + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; 2677 + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; 2678 + }; 2679 + }; 2680 + "verror-1.10.0" = { 2681 + name = "verror"; 2682 + packageName = "verror"; 2683 + version = "1.10.0"; 2684 + src = fetchurl { 2685 + url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; 2686 + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; 2687 + }; 2688 + }; 2689 + "which-1.3.1" = { 2690 + name = "which"; 2691 + packageName = "which"; 2692 + version = "1.3.1"; 2693 + src = fetchurl { 2694 + url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz"; 2695 + sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="; 2696 + }; 2697 + }; 2698 + "which-boxed-primitive-1.0.2" = { 2699 + name = "which-boxed-primitive"; 2700 + packageName = "which-boxed-primitive"; 2701 + version = "1.0.2"; 2702 + src = fetchurl { 2703 + url = "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"; 2704 + sha512 = "bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="; 2705 + }; 2706 + }; 2707 + "which-module-2.0.0" = { 2708 + name = "which-module"; 2709 + packageName = "which-module"; 2710 + version = "2.0.0"; 2711 + src = fetchurl { 2712 + url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"; 2713 + sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; 2714 + }; 2715 + }; 2716 + "wide-align-1.1.3" = { 2717 + name = "wide-align"; 2718 + packageName = "wide-align"; 2719 + version = "1.1.3"; 2720 + src = fetchurl { 2721 + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; 2722 + sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; 2723 + }; 2724 + }; 2725 + "wrap-ansi-5.1.0" = { 2726 + name = "wrap-ansi"; 2727 + packageName = "wrap-ansi"; 2728 + version = "5.1.0"; 2729 + src = fetchurl { 2730 + url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"; 2731 + sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="; 2732 + }; 2733 + }; 2734 + "wrappy-1.0.2" = { 2735 + name = "wrappy"; 2736 + packageName = "wrappy"; 2737 + version = "1.0.2"; 2738 + src = fetchurl { 2739 + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; 2740 + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; 2741 + }; 2742 + }; 2743 + "y18n-4.0.3" = { 2744 + name = "y18n"; 2745 + packageName = "y18n"; 2746 + version = "4.0.3"; 2747 + src = fetchurl { 2748 + url = "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"; 2749 + sha512 = "JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="; 2750 + }; 2751 + }; 2752 + "yallist-4.0.0" = { 2753 + name = "yallist"; 2754 + packageName = "yallist"; 2755 + version = "4.0.0"; 2756 + src = fetchurl { 2757 + url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"; 2758 + sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="; 2759 + }; 2760 + }; 2761 + "yargs-13.3.2" = { 2762 + name = "yargs"; 2763 + packageName = "yargs"; 2764 + version = "13.3.2"; 2765 + src = fetchurl { 2766 + url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"; 2767 + sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="; 2768 + }; 2769 + }; 2770 + "yargs-parser-13.1.2" = { 2771 + name = "yargs-parser"; 2772 + packageName = "yargs-parser"; 2773 + version = "13.1.2"; 2774 + src = fetchurl { 2775 + url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"; 2776 + sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="; 2777 + }; 2778 + }; 2779 + "yargs-unparser-1.6.0" = { 2780 + name = "yargs-unparser"; 2781 + packageName = "yargs-unparser"; 2782 + version = "1.6.0"; 2783 + src = fetchurl { 2784 + url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz"; 2785 + sha512 = "W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw=="; 2786 + }; 2787 + }; 2788 + "yn-2.0.0" = { 2789 + name = "yn"; 2790 + packageName = "yn"; 2791 + version = "2.0.0"; 2792 + src = fetchurl { 2793 + url = "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz"; 2794 + sha1 = "e5adabc8acf408f6385fc76495684c88e6af689a"; 2795 + }; 2796 + }; 2797 + }; 2798 + args = { 2799 + name = "mjolnir"; 2800 + packageName = "mjolnir"; 2801 + version = "0.1.17"; 2802 + src = ../../../../../../../nix/store/mnqd8qmha2inhk0wk9pk9xbhhpk0nmpr-source; 2803 + dependencies = [ 2804 + sources."@babel/code-frame-7.12.13" 2805 + sources."@babel/helper-validator-identifier-7.14.0" 2806 + (sources."@babel/highlight-7.14.0" // { 2807 + dependencies = [ 2808 + sources."ansi-styles-3.2.1" 2809 + sources."chalk-2.4.2" 2810 + sources."color-convert-1.9.3" 2811 + sources."color-name-1.1.3" 2812 + sources."escape-string-regexp-1.0.5" 2813 + sources."has-flag-3.0.0" 2814 + sources."supports-color-5.5.0" 2815 + ]; 2816 + }) 2817 + sources."@jest/types-26.6.2" 2818 + sources."@types/body-parser-1.19.0" 2819 + sources."@types/connect-3.4.34" 2820 + sources."@types/expect-24.3.0" 2821 + sources."@types/express-4.17.11" 2822 + sources."@types/express-serve-static-core-4.17.19" 2823 + sources."@types/istanbul-lib-coverage-2.0.3" 2824 + sources."@types/istanbul-lib-report-3.0.0" 2825 + sources."@types/istanbul-reports-3.0.0" 2826 + sources."@types/json5-0.0.29" 2827 + sources."@types/mime-1.3.2" 2828 + sources."@types/mocha-7.0.2" 2829 + sources."@types/node-11.15.54" 2830 + sources."@types/qs-6.9.6" 2831 + sources."@types/range-parser-1.2.3" 2832 + sources."@types/serve-static-1.13.9" 2833 + sources."@types/stack-utils-2.0.0" 2834 + sources."@types/yargs-15.0.13" 2835 + sources."@types/yargs-parser-20.2.0" 2836 + sources."accepts-1.3.7" 2837 + sources."ajv-6.12.6" 2838 + sources."ansi-colors-3.2.3" 2839 + sources."ansi-regex-5.0.0" 2840 + sources."ansi-styles-4.3.0" 2841 + sources."anymatch-3.1.2" 2842 + sources."argparse-1.0.10" 2843 + sources."array-flatten-1.1.1" 2844 + sources."arrify-1.0.1" 2845 + sources."asn1-0.2.4" 2846 + sources."assert-plus-1.0.0" 2847 + sources."asynckit-0.4.0" 2848 + sources."aws-sign2-0.7.0" 2849 + sources."aws4-1.11.0" 2850 + sources."balanced-match-1.0.2" 2851 + sources."basic-auth-2.0.1" 2852 + sources."bcrypt-pbkdf-1.0.2" 2853 + sources."binary-extensions-2.2.0" 2854 + sources."bluebird-3.7.2" 2855 + sources."body-parser-1.19.0" 2856 + sources."brace-expansion-1.1.11" 2857 + sources."braces-3.0.2" 2858 + sources."browser-stdout-1.3.1" 2859 + sources."buffer-from-1.1.1" 2860 + sources."builtin-modules-1.1.1" 2861 + sources."bytes-3.1.0" 2862 + sources."call-bind-1.0.2" 2863 + sources."camelcase-5.3.1" 2864 + sources."caseless-0.12.0" 2865 + sources."chalk-4.1.1" 2866 + sources."chokidar-3.3.0" 2867 + (sources."cliui-5.0.0" // { 2868 + dependencies = [ 2869 + sources."ansi-regex-4.1.0" 2870 + sources."string-width-3.1.0" 2871 + sources."strip-ansi-5.2.0" 2872 + ]; 2873 + }) 2874 + sources."color-convert-2.0.1" 2875 + sources."color-name-1.1.4" 2876 + sources."colorette-1.2.2" 2877 + sources."combined-stream-1.0.8" 2878 + sources."commander-2.20.3" 2879 + sources."concat-map-0.0.1" 2880 + sources."config-3.3.6" 2881 + sources."content-disposition-0.5.3" 2882 + sources."content-type-1.0.4" 2883 + sources."cookie-0.4.0" 2884 + sources."cookie-signature-1.0.6" 2885 + sources."core-util-is-1.0.2" 2886 + sources."dashdash-1.14.1" 2887 + sources."debug-2.6.9" 2888 + sources."decamelize-1.2.0" 2889 + sources."deepmerge-4.2.2" 2890 + sources."define-properties-1.1.3" 2891 + sources."delayed-stream-1.0.0" 2892 + sources."depd-1.1.2" 2893 + sources."destroy-1.0.4" 2894 + sources."diff-3.5.0" 2895 + sources."diff-sequences-26.6.2" 2896 + (sources."dom-serializer-1.3.2" // { 2897 + dependencies = [ 2898 + sources."domhandler-4.2.0" 2899 + ]; 2900 + }) 2901 + sources."domelementtype-2.2.0" 2902 + sources."domhandler-3.3.0" 2903 + (sources."domutils-2.6.0" // { 2904 + dependencies = [ 2905 + sources."domhandler-4.2.0" 2906 + ]; 2907 + }) 2908 + sources."ecc-jsbn-0.1.2" 2909 + sources."ee-first-1.1.1" 2910 + sources."emoji-regex-7.0.3" 2911 + sources."encodeurl-1.0.2" 2912 + sources."entities-2.2.0" 2913 + (sources."es-abstract-1.18.0" // { 2914 + dependencies = [ 2915 + sources."object.assign-4.1.2" 2916 + ]; 2917 + }) 2918 + sources."es-to-primitive-1.2.1" 2919 + sources."escape-html-1.0.3" 2920 + sources."escape-string-regexp-4.0.0" 2921 + sources."esprima-4.0.1" 2922 + sources."etag-1.8.1" 2923 + sources."expect-26.6.2" 2924 + sources."express-4.17.1" 2925 + sources."extend-3.0.2" 2926 + sources."extsprintf-1.3.0" 2927 + sources."fast-deep-equal-3.1.3" 2928 + sources."fast-json-stable-stringify-2.1.0" 2929 + sources."fill-range-7.0.1" 2930 + sources."finalhandler-1.1.2" 2931 + sources."find-up-3.0.0" 2932 + sources."flat-4.1.1" 2933 + sources."forever-agent-0.6.1" 2934 + sources."form-data-2.3.3" 2935 + sources."forwarded-0.1.2" 2936 + sources."fresh-0.5.2" 2937 + sources."fs.realpath-1.0.0" 2938 + sources."fsevents-2.1.3" 2939 + sources."function-bind-1.1.1" 2940 + sources."get-caller-file-2.0.5" 2941 + sources."get-intrinsic-1.1.1" 2942 + sources."getpass-0.1.7" 2943 + sources."glob-7.1.3" 2944 + sources."glob-parent-5.1.2" 2945 + sources."glob-to-regexp-0.4.1" 2946 + sources."graceful-fs-4.2.6" 2947 + sources."growl-1.10.5" 2948 + sources."har-schema-2.0.0" 2949 + sources."har-validator-5.1.5" 2950 + sources."has-1.0.3" 2951 + sources."has-bigints-1.0.1" 2952 + sources."has-flag-4.0.0" 2953 + sources."has-symbols-1.0.2" 2954 + sources."hash.js-1.1.7" 2955 + sources."he-1.2.0" 2956 + sources."html-to-text-6.0.0" 2957 + sources."htmlencode-0.0.4" 2958 + sources."htmlparser2-4.1.0" 2959 + sources."http-errors-1.7.2" 2960 + sources."http-signature-1.2.0" 2961 + sources."iconv-lite-0.4.24" 2962 + sources."inflight-1.0.6" 2963 + sources."inherits-2.0.3" 2964 + sources."ipaddr.js-1.9.1" 2965 + sources."is-bigint-1.0.2" 2966 + sources."is-binary-path-2.1.0" 2967 + sources."is-boolean-object-1.1.1" 2968 + sources."is-buffer-2.0.5" 2969 + sources."is-callable-1.2.3" 2970 + sources."is-core-module-2.4.0" 2971 + sources."is-date-object-1.0.4" 2972 + sources."is-extglob-2.1.1" 2973 + sources."is-fullwidth-code-point-2.0.0" 2974 + sources."is-glob-4.0.1" 2975 + sources."is-negative-zero-2.0.1" 2976 + sources."is-number-7.0.0" 2977 + sources."is-number-object-1.0.5" 2978 + sources."is-plain-object-5.0.0" 2979 + sources."is-promise-2.2.2" 2980 + sources."is-regex-1.1.3" 2981 + sources."is-string-1.0.6" 2982 + sources."is-symbol-1.0.4" 2983 + sources."is-typedarray-1.0.0" 2984 + sources."isexe-2.0.0" 2985 + sources."isstream-0.1.2" 2986 + sources."jest-diff-26.6.2" 2987 + sources."jest-get-type-26.3.0" 2988 + sources."jest-matcher-utils-26.6.2" 2989 + sources."jest-message-util-26.6.2" 2990 + sources."jest-regex-util-26.0.0" 2991 + sources."js-tokens-4.0.0" 2992 + sources."js-yaml-3.14.1" 2993 + sources."jsbn-0.1.1" 2994 + sources."json-schema-0.2.3" 2995 + sources."json-schema-traverse-0.4.1" 2996 + sources."json-stringify-safe-5.0.1" 2997 + sources."json5-2.2.0" 2998 + sources."jsprim-1.4.1" 2999 + sources."klona-2.0.4" 3000 + sources."locate-path-3.0.0" 3001 + sources."lodash-4.17.21" 3002 + (sources."log-symbols-3.0.0" // { 3003 + dependencies = [ 3004 + sources."ansi-styles-3.2.1" 3005 + sources."chalk-2.4.2" 3006 + sources."color-convert-1.9.3" 3007 + sources."color-name-1.1.3" 3008 + sources."escape-string-regexp-1.0.5" 3009 + sources."has-flag-3.0.0" 3010 + sources."supports-color-5.5.0" 3011 + ]; 3012 + }) 3013 + sources."lowdb-1.0.0" 3014 + sources."lru-cache-6.0.0" 3015 + sources."make-error-1.3.6" 3016 + sources."matrix-bot-sdk-0.5.18" 3017 + sources."media-typer-0.3.0" 3018 + sources."merge-descriptors-1.0.1" 3019 + sources."methods-1.1.2" 3020 + sources."micromatch-4.0.4" 3021 + sources."mime-1.6.0" 3022 + sources."mime-db-1.47.0" 3023 + sources."mime-types-2.1.30" 3024 + sources."minimalistic-assert-1.0.1" 3025 + sources."minimatch-3.0.4" 3026 + sources."minimist-1.2.5" 3027 + sources."mkdirp-1.0.4" 3028 + (sources."mocha-7.2.0" // { 3029 + dependencies = [ 3030 + sources."debug-3.2.6" 3031 + sources."escape-string-regexp-1.0.5" 3032 + sources."has-flag-3.0.0" 3033 + sources."js-yaml-3.13.1" 3034 + sources."mkdirp-0.5.5" 3035 + sources."ms-2.1.1" 3036 + sources."supports-color-6.0.0" 3037 + ]; 3038 + }) 3039 + (sources."morgan-1.10.0" // { 3040 + dependencies = [ 3041 + sources."depd-2.0.0" 3042 + ]; 3043 + }) 3044 + sources."ms-2.0.0" 3045 + sources."nanoid-3.1.23" 3046 + sources."negotiator-0.6.2" 3047 + sources."node-environment-flags-1.0.6" 3048 + sources."normalize-path-3.0.0" 3049 + sources."oauth-sign-0.9.0" 3050 + sources."object-inspect-1.10.3" 3051 + sources."object-keys-1.1.1" 3052 + sources."object.assign-4.1.0" 3053 + sources."object.getownpropertydescriptors-2.1.2" 3054 + sources."on-finished-2.3.0" 3055 + sources."on-headers-1.0.2" 3056 + sources."once-1.4.0" 3057 + sources."p-limit-2.3.0" 3058 + sources."p-locate-3.0.0" 3059 + sources."p-try-2.2.0" 3060 + sources."parse-srcset-1.0.2" 3061 + sources."parseurl-1.3.3" 3062 + sources."path-exists-3.0.0" 3063 + sources."path-is-absolute-1.0.1" 3064 + sources."path-parse-1.0.6" 3065 + sources."path-to-regexp-0.1.7" 3066 + sources."performance-now-2.1.0" 3067 + sources."picomatch-2.2.3" 3068 + sources."pify-3.0.0" 3069 + sources."postcss-8.3.0" 3070 + sources."pretty-format-26.6.2" 3071 + sources."proxy-addr-2.0.6" 3072 + sources."psl-1.8.0" 3073 + sources."punycode-2.1.1" 3074 + sources."qs-6.7.0" 3075 + sources."range-parser-1.2.1" 3076 + sources."raw-body-2.4.0" 3077 + sources."react-is-17.0.2" 3078 + sources."readdirp-3.2.0" 3079 + (sources."request-2.88.2" // { 3080 + dependencies = [ 3081 + sources."qs-6.5.2" 3082 + ]; 3083 + }) 3084 + sources."request-promise-4.2.6" 3085 + sources."request-promise-core-1.1.4" 3086 + sources."require-directory-2.1.1" 3087 + sources."require-main-filename-2.0.0" 3088 + sources."resolve-1.20.0" 3089 + sources."safe-buffer-5.1.2" 3090 + sources."safer-buffer-2.1.2" 3091 + (sources."sanitize-html-2.4.0" // { 3092 + dependencies = [ 3093 + sources."domhandler-4.2.0" 3094 + sources."htmlparser2-6.1.0" 3095 + ]; 3096 + }) 3097 + sources."semver-5.7.1" 3098 + (sources."send-0.17.1" // { 3099 + dependencies = [ 3100 + sources."ms-2.1.1" 3101 + ]; 3102 + }) 3103 + sources."serve-static-1.14.1" 3104 + sources."set-blocking-2.0.0" 3105 + sources."setprototypeof-1.1.1" 3106 + sources."slash-3.0.0" 3107 + sources."source-map-0.6.1" 3108 + sources."source-map-js-0.6.2" 3109 + sources."source-map-support-0.5.19" 3110 + sources."sprintf-js-1.0.3" 3111 + sources."sshpk-1.16.1" 3112 + (sources."stack-utils-2.0.3" // { 3113 + dependencies = [ 3114 + sources."escape-string-regexp-2.0.0" 3115 + ]; 3116 + }) 3117 + sources."statuses-1.5.0" 3118 + sources."stealthy-require-1.1.1" 3119 + sources."steno-0.4.4" 3120 + sources."string-width-2.1.1" 3121 + sources."string.prototype.trimend-1.0.4" 3122 + sources."string.prototype.trimstart-1.0.4" 3123 + (sources."strip-ansi-4.0.0" // { 3124 + dependencies = [ 3125 + sources."ansi-regex-3.0.0" 3126 + ]; 3127 + }) 3128 + sources."strip-bom-3.0.0" 3129 + sources."strip-json-comments-2.0.1" 3130 + sources."supports-color-7.2.0" 3131 + sources."to-regex-range-5.0.1" 3132 + sources."toidentifier-1.0.0" 3133 + sources."tough-cookie-2.5.0" 3134 + sources."ts-mocha-7.0.0" 3135 + (sources."ts-node-7.0.1" // { 3136 + dependencies = [ 3137 + sources."mkdirp-0.5.5" 3138 + ]; 3139 + }) 3140 + (sources."tsconfig-paths-3.9.0" // { 3141 + dependencies = [ 3142 + sources."json5-1.0.1" 3143 + ]; 3144 + }) 3145 + sources."tslib-1.14.1" 3146 + (sources."tslint-6.1.3" // { 3147 + dependencies = [ 3148 + sources."ansi-styles-3.2.1" 3149 + sources."chalk-2.4.2" 3150 + sources."color-convert-1.9.3" 3151 + sources."color-name-1.1.3" 3152 + sources."diff-4.0.2" 3153 + sources."escape-string-regexp-1.0.5" 3154 + sources."has-flag-3.0.0" 3155 + sources."mkdirp-0.5.5" 3156 + sources."supports-color-5.5.0" 3157 + ]; 3158 + }) 3159 + sources."tsutils-2.29.0" 3160 + sources."tunnel-agent-0.6.0" 3161 + sources."tweetnacl-0.14.5" 3162 + sources."type-is-1.6.18" 3163 + sources."typescript-3.9.9" 3164 + sources."unbox-primitive-1.0.1" 3165 + sources."unpipe-1.0.0" 3166 + sources."uri-js-4.4.1" 3167 + sources."utils-merge-1.0.1" 3168 + sources."uuid-3.4.0" 3169 + sources."vary-1.1.2" 3170 + sources."verror-1.10.0" 3171 + sources."which-1.3.1" 3172 + sources."which-boxed-primitive-1.0.2" 3173 + sources."which-module-2.0.0" 3174 + sources."wide-align-1.1.3" 3175 + (sources."wrap-ansi-5.1.0" // { 3176 + dependencies = [ 3177 + sources."ansi-regex-4.1.0" 3178 + sources."ansi-styles-3.2.1" 3179 + sources."color-convert-1.9.3" 3180 + sources."color-name-1.1.3" 3181 + sources."string-width-3.1.0" 3182 + sources."strip-ansi-5.2.0" 3183 + ]; 3184 + }) 3185 + sources."wrappy-1.0.2" 3186 + sources."y18n-4.0.3" 3187 + sources."yallist-4.0.0" 3188 + (sources."yargs-13.3.2" // { 3189 + dependencies = [ 3190 + sources."ansi-regex-4.1.0" 3191 + sources."string-width-3.1.0" 3192 + sources."strip-ansi-5.2.0" 3193 + ]; 3194 + }) 3195 + sources."yargs-parser-13.1.2" 3196 + sources."yargs-unparser-1.6.0" 3197 + sources."yn-2.0.0" 3198 + ]; 3199 + buildInputs = globalBuildInputs; 3200 + meta = { 3201 + description = "A moderation tool for Matrix"; 3202 + license = "Apache-2.0"; 3203 + }; 3204 + production = false; 3205 + bypassCache = true; 3206 + reconstructLock = true; 3207 + }; 3208 + in 3209 + { 3210 + args = args; 3211 + sources = sources; 3212 + tarball = nodeEnv.buildNodeSourceDist args; 3213 + package = nodeEnv.buildNodePackage args; 3214 + shell = nodeEnv.buildNodeShell args; 3215 + nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args { 3216 + src = stdenv.mkDerivation { 3217 + name = args.name + "-package-json"; 3218 + src = nix-gitignore.gitignoreSourcePure [ 3219 + "*" 3220 + "!package.json" 3221 + "!package-lock.json" 3222 + ] args.src; 3223 + dontBuild = true; 3224 + installPhase = "mkdir -p $out; cp -r ./* $out;"; 3225 + }; 3226 + }); 3227 + }
+567
pkgs/servers/mjolnir/node-env.nix
···
··· 1 + # This file originates from node2nix 2 + 3 + {lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}: 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 + includeDependencies = {dependencies}: 44 + lib.optionalString (dependencies != []) 45 + (lib.concatMapStrings (dependency: 46 + '' 47 + # Bundle the dependencies of the package 48 + mkdir -p node_modules 49 + cd node_modules 50 + 51 + # Only include dependencies if they don't exist. They may also be bundled in the package. 52 + if [ ! -e "${dependency.name}" ] 53 + then 54 + ${composePackage dependency} 55 + fi 56 + 57 + cd .. 58 + '' 59 + ) dependencies); 60 + 61 + # Recursively composes the dependencies of a package 62 + composePackage = { name, packageName, src, dependencies ? [], ... }@args: 63 + builtins.addErrorContext "while evaluating node package '${packageName}'" '' 64 + DIR=$(pwd) 65 + cd $TMPDIR 66 + 67 + unpackFile ${src} 68 + 69 + # Make the base dir in which the target dependency resides first 70 + mkdir -p "$(dirname "$DIR/${packageName}")" 71 + 72 + if [ -f "${src}" ] 73 + then 74 + # Figure out what directory has been unpacked 75 + packageDir="$(find . -maxdepth 1 -type d | tail -1)" 76 + 77 + # Restore write permissions to make building work 78 + find "$packageDir" -type d -exec chmod u+x {} \; 79 + chmod -R u+w "$packageDir" 80 + 81 + # Move the extracted tarball into the output folder 82 + mv "$packageDir" "$DIR/${packageName}" 83 + elif [ -d "${src}" ] 84 + then 85 + # Get a stripped name (without hash) of the source directory. 86 + # On old nixpkgs it's already set internally. 87 + if [ -z "$strippedName" ] 88 + then 89 + strippedName="$(stripHash ${src})" 90 + fi 91 + 92 + # Restore write permissions to make building work 93 + chmod -R u+w "$strippedName" 94 + 95 + # Move the extracted directory into the output folder 96 + mv "$strippedName" "$DIR/${packageName}" 97 + fi 98 + 99 + # Unset the stripped name to not confuse the next unpack step 100 + unset strippedName 101 + 102 + # Include the dependencies of the package 103 + cd "$DIR/${packageName}" 104 + ${includeDependencies { inherit dependencies; }} 105 + cd .. 106 + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 107 + ''; 108 + 109 + pinpointDependencies = {dependencies, production}: 110 + let 111 + pinpointDependenciesFromPackageJSON = writeTextFile { 112 + name = "pinpointDependencies.js"; 113 + text = '' 114 + var fs = require('fs'); 115 + var path = require('path'); 116 + 117 + function resolveDependencyVersion(location, name) { 118 + if(location == process.env['NIX_STORE']) { 119 + return null; 120 + } else { 121 + var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); 122 + 123 + if(fs.existsSync(dependencyPackageJSON)) { 124 + var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); 125 + 126 + if(dependencyPackageObj.name == name) { 127 + return dependencyPackageObj.version; 128 + } 129 + } else { 130 + return resolveDependencyVersion(path.resolve(location, ".."), name); 131 + } 132 + } 133 + } 134 + 135 + function replaceDependencies(dependencies) { 136 + if(typeof dependencies == "object" && dependencies !== null) { 137 + for(var dependency in dependencies) { 138 + var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); 139 + 140 + if(resolvedVersion === null) { 141 + process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); 142 + } else { 143 + dependencies[dependency] = resolvedVersion; 144 + } 145 + } 146 + } 147 + } 148 + 149 + /* Read the package.json configuration */ 150 + var packageObj = JSON.parse(fs.readFileSync('./package.json')); 151 + 152 + /* Pinpoint all dependencies */ 153 + replaceDependencies(packageObj.dependencies); 154 + if(process.argv[2] == "development") { 155 + replaceDependencies(packageObj.devDependencies); 156 + } 157 + replaceDependencies(packageObj.optionalDependencies); 158 + 159 + /* Write the fixed package.json file */ 160 + fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); 161 + ''; 162 + }; 163 + in 164 + '' 165 + node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} 166 + 167 + ${lib.optionalString (dependencies != []) 168 + '' 169 + if [ -d node_modules ] 170 + then 171 + cd node_modules 172 + ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} 173 + cd .. 174 + fi 175 + ''} 176 + ''; 177 + 178 + # Recursively traverses all dependencies of a package and pinpoints all 179 + # dependencies in the package.json file to the versions that are actually 180 + # being used. 181 + 182 + pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: 183 + '' 184 + if [ -d "${packageName}" ] 185 + then 186 + cd "${packageName}" 187 + ${pinpointDependencies { inherit dependencies production; }} 188 + cd .. 189 + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 190 + fi 191 + ''; 192 + 193 + # Extract the Node.js source code which is used to compile packages with 194 + # native bindings 195 + nodeSources = runCommand "node-sources" {} '' 196 + tar --no-same-owner --no-same-permissions -xf ${nodejs.src} 197 + mv node-* $out 198 + ''; 199 + 200 + # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) 201 + addIntegrityFieldsScript = writeTextFile { 202 + name = "addintegrityfields.js"; 203 + text = '' 204 + var fs = require('fs'); 205 + var path = require('path'); 206 + 207 + function augmentDependencies(baseDir, dependencies) { 208 + for(var dependencyName in dependencies) { 209 + var dependency = dependencies[dependencyName]; 210 + 211 + // Open package.json and augment metadata fields 212 + var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); 213 + var packageJSONPath = path.join(packageJSONDir, "package.json"); 214 + 215 + if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored 216 + console.log("Adding metadata fields to: "+packageJSONPath); 217 + var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); 218 + 219 + if(dependency.integrity) { 220 + packageObj["_integrity"] = dependency.integrity; 221 + } else { 222 + 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. 223 + } 224 + 225 + if(dependency.resolved) { 226 + packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided 227 + } else { 228 + packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. 229 + } 230 + 231 + if(dependency.from !== undefined) { // Adopt from property if one has been provided 232 + packageObj["_from"] = dependency.from; 233 + } 234 + 235 + fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); 236 + } 237 + 238 + // Augment transitive dependencies 239 + if(dependency.dependencies !== undefined) { 240 + augmentDependencies(packageJSONDir, dependency.dependencies); 241 + } 242 + } 243 + } 244 + 245 + if(fs.existsSync("./package-lock.json")) { 246 + var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); 247 + 248 + if(![1, 2].includes(packageLock.lockfileVersion)) { 249 + process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n"); 250 + process.exit(1); 251 + } 252 + 253 + if(packageLock.dependencies !== undefined) { 254 + augmentDependencies(".", packageLock.dependencies); 255 + } 256 + } 257 + ''; 258 + }; 259 + 260 + # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes 261 + reconstructPackageLock = writeTextFile { 262 + name = "addintegrityfields.js"; 263 + text = '' 264 + var fs = require('fs'); 265 + var path = require('path'); 266 + 267 + var packageObj = JSON.parse(fs.readFileSync("package.json")); 268 + 269 + var lockObj = { 270 + name: packageObj.name, 271 + version: packageObj.version, 272 + lockfileVersion: 1, 273 + requires: true, 274 + dependencies: {} 275 + }; 276 + 277 + function augmentPackageJSON(filePath, dependencies) { 278 + var packageJSON = path.join(filePath, "package.json"); 279 + if(fs.existsSync(packageJSON)) { 280 + var packageObj = JSON.parse(fs.readFileSync(packageJSON)); 281 + dependencies[packageObj.name] = { 282 + version: packageObj.version, 283 + integrity: "sha1-000000000000000000000000000=", 284 + dependencies: {} 285 + }; 286 + processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies); 287 + } 288 + } 289 + 290 + function processDependencies(dir, dependencies) { 291 + if(fs.existsSync(dir)) { 292 + var files = fs.readdirSync(dir); 293 + 294 + files.forEach(function(entry) { 295 + var filePath = path.join(dir, entry); 296 + var stats = fs.statSync(filePath); 297 + 298 + if(stats.isDirectory()) { 299 + if(entry.substr(0, 1) == "@") { 300 + // When we encounter a namespace folder, augment all packages belonging to the scope 301 + var pkgFiles = fs.readdirSync(filePath); 302 + 303 + pkgFiles.forEach(function(entry) { 304 + if(stats.isDirectory()) { 305 + var pkgFilePath = path.join(filePath, entry); 306 + augmentPackageJSON(pkgFilePath, dependencies); 307 + } 308 + }); 309 + } else { 310 + augmentPackageJSON(filePath, dependencies); 311 + } 312 + } 313 + }); 314 + } 315 + } 316 + 317 + processDependencies("node_modules", lockObj.dependencies); 318 + 319 + fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); 320 + ''; 321 + }; 322 + 323 + prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: 324 + let 325 + forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; 326 + in 327 + '' 328 + # Pinpoint the versions of all dependencies to the ones that are actually being used 329 + echo "pinpointing versions of dependencies..." 330 + source $pinpointDependenciesScriptPath 331 + 332 + # Patch the shebangs of the bundled modules to prevent them from 333 + # calling executables outside the Nix store as much as possible 334 + patchShebangs . 335 + 336 + # Deploy the Node.js package by running npm install. Since the 337 + # dependencies have been provided already by ourselves, it should not 338 + # attempt to install them again, which is good, because we want to make 339 + # it Nix's responsibility. If it needs to install any dependencies 340 + # anyway (e.g. because the dependency parameters are 341 + # incomplete/incorrect), it fails. 342 + # 343 + # The other responsibilities of NPM are kept -- version checks, build 344 + # steps, postprocessing etc. 345 + 346 + export HOME=$TMPDIR 347 + cd "${packageName}" 348 + runHook preRebuild 349 + 350 + ${lib.optionalString bypassCache '' 351 + ${lib.optionalString reconstructLock '' 352 + if [ -f package-lock.json ] 353 + then 354 + echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" 355 + echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" 356 + rm package-lock.json 357 + else 358 + echo "No package-lock.json file found, reconstructing..." 359 + fi 360 + 361 + node ${reconstructPackageLock} 362 + ''} 363 + 364 + node ${addIntegrityFieldsScript} 365 + ''} 366 + 367 + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild 368 + 369 + if [ "''${dontNpmInstall-}" != "1" ] 370 + then 371 + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. 372 + rm -f npm-shrinkwrap.json 373 + 374 + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install 375 + fi 376 + ''; 377 + 378 + # Builds and composes an NPM package including all its dependencies 379 + buildNodePackage = 380 + { name 381 + , packageName 382 + , version 383 + , dependencies ? [] 384 + , buildInputs ? [] 385 + , production ? true 386 + , npmFlags ? "" 387 + , dontNpmInstall ? false 388 + , bypassCache ? false 389 + , reconstructLock ? false 390 + , preRebuild ? "" 391 + , dontStrip ? true 392 + , unpackPhase ? "true" 393 + , buildPhase ? "true" 394 + , ... }@args: 395 + 396 + let 397 + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ]; 398 + in 399 + stdenv.mkDerivation ({ 400 + name = "node_${name}-${version}"; 401 + buildInputs = [ tarWrapper python nodejs ] 402 + ++ lib.optional (stdenv.isLinux) utillinux 403 + ++ lib.optional (stdenv.isDarwin) libtool 404 + ++ buildInputs; 405 + 406 + inherit nodejs; 407 + 408 + inherit dontStrip; # Stripping may fail a build for some package deployments 409 + inherit dontNpmInstall preRebuild unpackPhase buildPhase; 410 + 411 + compositionScript = composePackage args; 412 + pinpointDependenciesScript = pinpointDependenciesOfPackage args; 413 + 414 + passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; 415 + 416 + installPhase = '' 417 + # Create and enter a root node_modules/ folder 418 + mkdir -p $out/lib/node_modules 419 + cd $out/lib/node_modules 420 + 421 + # Compose the package and all its dependencies 422 + source $compositionScriptPath 423 + 424 + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} 425 + 426 + # Create symlink to the deployed executable folder, if applicable 427 + if [ -d "$out/lib/node_modules/.bin" ] 428 + then 429 + ln -s $out/lib/node_modules/.bin $out/bin 430 + fi 431 + 432 + # Create symlinks to the deployed manual page folders, if applicable 433 + if [ -d "$out/lib/node_modules/${packageName}/man" ] 434 + then 435 + mkdir -p $out/share 436 + for dir in "$out/lib/node_modules/${packageName}/man/"* 437 + do 438 + mkdir -p $out/share/man/$(basename "$dir") 439 + for page in "$dir"/* 440 + do 441 + ln -s $page $out/share/man/$(basename "$dir") 442 + done 443 + done 444 + fi 445 + 446 + # Run post install hook, if provided 447 + runHook postInstall 448 + ''; 449 + } // extraArgs); 450 + 451 + # Builds a node environment (a node_modules folder and a set of binaries) 452 + buildNodeDependencies = 453 + { name 454 + , packageName 455 + , version 456 + , src 457 + , dependencies ? [] 458 + , buildInputs ? [] 459 + , production ? true 460 + , npmFlags ? "" 461 + , dontNpmInstall ? false 462 + , bypassCache ? false 463 + , reconstructLock ? false 464 + , dontStrip ? true 465 + , unpackPhase ? "true" 466 + , buildPhase ? "true" 467 + , ... }@args: 468 + 469 + let 470 + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; 471 + in 472 + stdenv.mkDerivation ({ 473 + name = "node-dependencies-${name}-${version}"; 474 + 475 + buildInputs = [ tarWrapper python nodejs ] 476 + ++ lib.optional (stdenv.isLinux) utillinux 477 + ++ lib.optional (stdenv.isDarwin) libtool 478 + ++ buildInputs; 479 + 480 + inherit dontStrip; # Stripping may fail a build for some package deployments 481 + inherit dontNpmInstall unpackPhase buildPhase; 482 + 483 + includeScript = includeDependencies { inherit dependencies; }; 484 + pinpointDependenciesScript = pinpointDependenciesOfPackage args; 485 + 486 + passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; 487 + 488 + installPhase = '' 489 + mkdir -p $out/${packageName} 490 + cd $out/${packageName} 491 + 492 + source $includeScriptPath 493 + 494 + # Create fake package.json to make the npm commands work properly 495 + cp ${src}/package.json . 496 + chmod 644 package.json 497 + ${lib.optionalString bypassCache '' 498 + if [ -f ${src}/package-lock.json ] 499 + then 500 + cp ${src}/package-lock.json . 501 + fi 502 + ''} 503 + 504 + # Go to the parent folder to make sure that all packages are pinpointed 505 + cd .. 506 + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 507 + 508 + ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }} 509 + 510 + # Expose the executables that were installed 511 + cd .. 512 + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} 513 + 514 + mv ${packageName} lib 515 + ln -s $out/lib/node_modules/.bin $out/bin 516 + ''; 517 + } // extraArgs); 518 + 519 + # Builds a development shell 520 + buildNodeShell = 521 + { name 522 + , packageName 523 + , version 524 + , src 525 + , dependencies ? [] 526 + , buildInputs ? [] 527 + , production ? true 528 + , npmFlags ? "" 529 + , dontNpmInstall ? false 530 + , bypassCache ? false 531 + , reconstructLock ? false 532 + , dontStrip ? true 533 + , unpackPhase ? "true" 534 + , buildPhase ? "true" 535 + , ... }@args: 536 + 537 + let 538 + nodeDependencies = buildNodeDependencies args; 539 + in 540 + stdenv.mkDerivation { 541 + name = "node-shell-${name}-${version}"; 542 + 543 + buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; 544 + buildCommand = '' 545 + mkdir -p $out/bin 546 + cat > $out/bin/shell <<EOF 547 + #! ${stdenv.shell} -e 548 + $shellHook 549 + exec ${stdenv.shell} 550 + EOF 551 + chmod +x $out/bin/shell 552 + ''; 553 + 554 + # Provide the dependencies in a development shell through the NODE_PATH environment variable 555 + inherit nodeDependencies; 556 + shellHook = lib.optionalString (dependencies != []) '' 557 + export NODE_PATH=${nodeDependencies}/lib/node_modules 558 + export PATH="${nodeDependencies}/bin:$PATH" 559 + ''; 560 + }; 561 + in 562 + { 563 + buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; 564 + buildNodePackage = lib.makeOverridable buildNodePackage; 565 + buildNodeDependencies = lib.makeOverridable buildNodeDependencies; 566 + buildNodeShell = lib.makeOverridable buildNodeShell; 567 + }
+29
pkgs/servers/mjolnir/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/matrix-org/mjolnir/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')" 7 + currentVersion=$(nix-instantiate --eval -E "with import ./. {}; mjolnir.version or (lib.getVersion mjolnir)" | tr -d '"') 8 + 9 + if [[ "$currentVersion" == "$latestVersion" ]]; then 10 + echo "mjolnir is up-to-date: $currentVersion" 11 + exit 0 12 + fi 13 + 14 + update-source-version mjolnir 0 0000000000000000000000000000000000000000000000000000000000000000 15 + update-source-version mjolnir "$latestVersion" 16 + 17 + # use patched source 18 + store_src="$(nix-build . -A mjolnir.src --no-out-link)" 19 + 20 + cd "$(dirname "${BASH_SOURCE[0]}")" 21 + 22 + node2nix \ 23 + --nodejs-12 \ 24 + --development \ 25 + --node-env ./node-env.nix \ 26 + --output ./node-deps.nix \ 27 + --input "$store_src/package.json" \ 28 + --composition ./node-composition.nix 29 +
+2
pkgs/top-level/all-packages.nix
··· 6725 6726 ministat = callPackage ../tools/misc/ministat { }; 6727 6728 mmv = callPackage ../tools/misc/mmv { }; 6729 6730 mmv-go = callPackage ../tools/misc/mmv-go { };
··· 6725 6726 ministat = callPackage ../tools/misc/ministat { }; 6727 6728 + mjolnir = callPackage ../servers/mjolnir { }; 6729 + 6730 mmv = callPackage ../tools/misc/mmv { }; 6731 6732 mmv-go = callPackage ../tools/misc/mmv-go { };