├── .gitignore ├── LICENSE ├── compile.py ├── libs ├── index.js ├── package-lock.json ├── package.json └── readme.md ├── readme.md ├── src ├── css │ ├── app.css │ ├── bootstrap.css │ └── bootstrap.css.map ├── index.html └── js │ ├── app.js │ ├── debounce.js │ └── eip2333-libs.js └── tests ├── package-lock.json ├── package.json ├── readme.md └── spec ├── support └── jasmine.json └── tests.js /.gitignore: -------------------------------------------------------------------------------- 1 | libs/node_modules 2 | eip2333-standalone.html 3 | tests/node_modules 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2021 Ian Coleman 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /compile.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import datetime 4 | from io import open 5 | 6 | # This script generates the eip2333-standalone.html file. 7 | 8 | # It removes script and style tags and replaces with the file content. 9 | 10 | f = open('src/index.html', "r", encoding="utf-8") 11 | page = f.read() 12 | f.close() 13 | 14 | 15 | # Script tags 16 | 17 | scriptsFinder = re.compile("""""") 18 | scripts = scriptsFinder.findall(page) 19 | 20 | for script in scripts: 21 | filename = os.path.join("src", script) 22 | s = open(filename, "r", encoding="utf-8") 23 | scriptContent = "" % s.read() 24 | s.close() 25 | scriptTag = """""" % script 26 | page = page.replace(scriptTag, scriptContent) 27 | 28 | 29 | # Style tags 30 | 31 | stylesFinder = re.compile("""""") 32 | styles = stylesFinder.findall(page) 33 | 34 | for style in styles: 35 | filename = os.path.join("src", style) 36 | s = open(filename, "r", encoding="utf-8") 37 | styleContent = "" % s.read() 38 | s.close() 39 | styleTag = """""" % style 40 | page = page.replace(styleTag, styleContent) 41 | 42 | 43 | # Write the standalone file 44 | 45 | f = open('eip2333-standalone.html', 'w', encoding="utf-8") 46 | f.write(page) 47 | f.close() 48 | 49 | print("%s - DONE" % datetime.datetime.now()) 50 | -------------------------------------------------------------------------------- /libs/index.js: -------------------------------------------------------------------------------- 1 | module.exports.blskeygen = require("bls12-381-keygen"); 2 | module.exports.noblebls = require("noble-bls12-381"); 3 | module.exports.bip39 = require("bip39"); 4 | -------------------------------------------------------------------------------- /libs/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eip2333-tool-external-libs", 3 | "version": "0.1.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "eip2333-tool-external-libs", 9 | "version": "0.1.0", 10 | "dependencies": { 11 | "bip39": "^3.0.3", 12 | "bls12-381-keygen": "^0.1.4", 13 | "noble-bls12-381": "^0.14.0" 14 | }, 15 | "devDependencies": { 16 | "browserify": "^16.2.3", 17 | "terser": "^5.6.0" 18 | } 19 | }, 20 | "node_modules/@types/node": { 21 | "version": "11.11.6", 22 | "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", 23 | "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" 24 | }, 25 | "node_modules/acorn": { 26 | "version": "7.4.1", 27 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 28 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 29 | "dev": true, 30 | "bin": { 31 | "acorn": "bin/acorn" 32 | }, 33 | "engines": { 34 | "node": ">=0.4.0" 35 | } 36 | }, 37 | "node_modules/acorn-node": { 38 | "version": "1.8.2", 39 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 40 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 41 | "dev": true, 42 | "dependencies": { 43 | "acorn": "^7.0.0", 44 | "acorn-walk": "^7.0.0", 45 | "xtend": "^4.0.2" 46 | } 47 | }, 48 | "node_modules/acorn-walk": { 49 | "version": "7.2.0", 50 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 51 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 52 | "dev": true, 53 | "engines": { 54 | "node": ">=0.4.0" 55 | } 56 | }, 57 | "node_modules/asn1.js": { 58 | "version": "5.4.1", 59 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", 60 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", 61 | "dev": true, 62 | "dependencies": { 63 | "bn.js": "^4.0.0", 64 | "inherits": "^2.0.1", 65 | "minimalistic-assert": "^1.0.0", 66 | "safer-buffer": "^2.1.0" 67 | } 68 | }, 69 | "node_modules/asn1.js/node_modules/bn.js": { 70 | "version": "4.12.0", 71 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 72 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 73 | "dev": true 74 | }, 75 | "node_modules/assert": { 76 | "version": "1.5.0", 77 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", 78 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", 79 | "dev": true, 80 | "dependencies": { 81 | "object-assign": "^4.1.1", 82 | "util": "0.10.3" 83 | } 84 | }, 85 | "node_modules/assert/node_modules/inherits": { 86 | "version": "2.0.1", 87 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 88 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 89 | "dev": true 90 | }, 91 | "node_modules/assert/node_modules/util": { 92 | "version": "0.10.3", 93 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 94 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 95 | "dev": true, 96 | "dependencies": { 97 | "inherits": "2.0.1" 98 | } 99 | }, 100 | "node_modules/balanced-match": { 101 | "version": "1.0.2", 102 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 103 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 104 | "dev": true 105 | }, 106 | "node_modules/base64-js": { 107 | "version": "1.5.1", 108 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 109 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 110 | "dev": true, 111 | "funding": [ 112 | { 113 | "type": "github", 114 | "url": "https://github.com/sponsors/feross" 115 | }, 116 | { 117 | "type": "patreon", 118 | "url": "https://www.patreon.com/feross" 119 | }, 120 | { 121 | "type": "consulting", 122 | "url": "https://feross.org/support" 123 | } 124 | ] 125 | }, 126 | "node_modules/bip39": { 127 | "version": "3.0.4", 128 | "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", 129 | "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", 130 | "dependencies": { 131 | "@types/node": "11.11.6", 132 | "create-hash": "^1.1.0", 133 | "pbkdf2": "^3.0.9", 134 | "randombytes": "^2.0.1" 135 | } 136 | }, 137 | "node_modules/bls12-381-keygen": { 138 | "version": "0.1.4", 139 | "resolved": "https://registry.npmjs.org/bls12-381-keygen/-/bls12-381-keygen-0.1.4.tgz", 140 | "integrity": "sha512-JdpTTa6PfPnodZKHN4YN8AgoN1ptfw8KDuW6Lo2t7FLrDzM5bvHAfcEvE29zMC25LwSExTlh7Jss827n/J4fmQ==", 141 | "dependencies": { 142 | "fast-sha256": "~1.3.0" 143 | } 144 | }, 145 | "node_modules/bn.js": { 146 | "version": "5.2.0", 147 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", 148 | "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", 149 | "dev": true 150 | }, 151 | "node_modules/brace-expansion": { 152 | "version": "1.1.11", 153 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 154 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 155 | "dev": true, 156 | "dependencies": { 157 | "balanced-match": "^1.0.0", 158 | "concat-map": "0.0.1" 159 | } 160 | }, 161 | "node_modules/brorand": { 162 | "version": "1.1.0", 163 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 164 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 165 | "dev": true 166 | }, 167 | "node_modules/browser-pack": { 168 | "version": "6.1.0", 169 | "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", 170 | "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", 171 | "dev": true, 172 | "dependencies": { 173 | "combine-source-map": "~0.8.0", 174 | "defined": "^1.0.0", 175 | "JSONStream": "^1.0.3", 176 | "safe-buffer": "^5.1.1", 177 | "through2": "^2.0.0", 178 | "umd": "^3.0.0" 179 | }, 180 | "bin": { 181 | "browser-pack": "bin/cmd.js" 182 | } 183 | }, 184 | "node_modules/browser-resolve": { 185 | "version": "2.0.0", 186 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", 187 | "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", 188 | "dev": true, 189 | "dependencies": { 190 | "resolve": "^1.17.0" 191 | } 192 | }, 193 | "node_modules/browserify": { 194 | "version": "16.5.2", 195 | "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", 196 | "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", 197 | "dev": true, 198 | "dependencies": { 199 | "assert": "^1.4.0", 200 | "browser-pack": "^6.0.1", 201 | "browser-resolve": "^2.0.0", 202 | "browserify-zlib": "~0.2.0", 203 | "buffer": "~5.2.1", 204 | "cached-path-relative": "^1.0.0", 205 | "concat-stream": "^1.6.0", 206 | "console-browserify": "^1.1.0", 207 | "constants-browserify": "~1.0.0", 208 | "crypto-browserify": "^3.0.0", 209 | "defined": "^1.0.0", 210 | "deps-sort": "^2.0.0", 211 | "domain-browser": "^1.2.0", 212 | "duplexer2": "~0.1.2", 213 | "events": "^2.0.0", 214 | "glob": "^7.1.0", 215 | "has": "^1.0.0", 216 | "htmlescape": "^1.1.0", 217 | "https-browserify": "^1.0.0", 218 | "inherits": "~2.0.1", 219 | "insert-module-globals": "^7.0.0", 220 | "JSONStream": "^1.0.3", 221 | "labeled-stream-splicer": "^2.0.0", 222 | "mkdirp-classic": "^0.5.2", 223 | "module-deps": "^6.2.3", 224 | "os-browserify": "~0.3.0", 225 | "parents": "^1.0.1", 226 | "path-browserify": "~0.0.0", 227 | "process": "~0.11.0", 228 | "punycode": "^1.3.2", 229 | "querystring-es3": "~0.2.0", 230 | "read-only-stream": "^2.0.0", 231 | "readable-stream": "^2.0.2", 232 | "resolve": "^1.1.4", 233 | "shasum": "^1.0.0", 234 | "shell-quote": "^1.6.1", 235 | "stream-browserify": "^2.0.0", 236 | "stream-http": "^3.0.0", 237 | "string_decoder": "^1.1.1", 238 | "subarg": "^1.0.0", 239 | "syntax-error": "^1.1.1", 240 | "through2": "^2.0.0", 241 | "timers-browserify": "^1.0.1", 242 | "tty-browserify": "0.0.1", 243 | "url": "~0.11.0", 244 | "util": "~0.10.1", 245 | "vm-browserify": "^1.0.0", 246 | "xtend": "^4.0.0" 247 | }, 248 | "bin": { 249 | "browserify": "bin/cmd.js" 250 | }, 251 | "engines": { 252 | "node": ">= 0.8" 253 | } 254 | }, 255 | "node_modules/browserify-aes": { 256 | "version": "1.2.0", 257 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 258 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 259 | "dev": true, 260 | "dependencies": { 261 | "buffer-xor": "^1.0.3", 262 | "cipher-base": "^1.0.0", 263 | "create-hash": "^1.1.0", 264 | "evp_bytestokey": "^1.0.3", 265 | "inherits": "^2.0.1", 266 | "safe-buffer": "^5.0.1" 267 | } 268 | }, 269 | "node_modules/browserify-cipher": { 270 | "version": "1.0.1", 271 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 272 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 273 | "dev": true, 274 | "dependencies": { 275 | "browserify-aes": "^1.0.4", 276 | "browserify-des": "^1.0.0", 277 | "evp_bytestokey": "^1.0.0" 278 | } 279 | }, 280 | "node_modules/browserify-des": { 281 | "version": "1.0.2", 282 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 283 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 284 | "dev": true, 285 | "dependencies": { 286 | "cipher-base": "^1.0.1", 287 | "des.js": "^1.0.0", 288 | "inherits": "^2.0.1", 289 | "safe-buffer": "^5.1.2" 290 | } 291 | }, 292 | "node_modules/browserify-rsa": { 293 | "version": "4.1.0", 294 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", 295 | "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", 296 | "dev": true, 297 | "dependencies": { 298 | "bn.js": "^5.0.0", 299 | "randombytes": "^2.0.1" 300 | } 301 | }, 302 | "node_modules/browserify-sign": { 303 | "version": "4.2.1", 304 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", 305 | "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", 306 | "dev": true, 307 | "dependencies": { 308 | "bn.js": "^5.1.1", 309 | "browserify-rsa": "^4.0.1", 310 | "create-hash": "^1.2.0", 311 | "create-hmac": "^1.1.7", 312 | "elliptic": "^6.5.3", 313 | "inherits": "^2.0.4", 314 | "parse-asn1": "^5.1.5", 315 | "readable-stream": "^3.6.0", 316 | "safe-buffer": "^5.2.0" 317 | } 318 | }, 319 | "node_modules/browserify-sign/node_modules/readable-stream": { 320 | "version": "3.6.0", 321 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 322 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 323 | "dev": true, 324 | "dependencies": { 325 | "inherits": "^2.0.3", 326 | "string_decoder": "^1.1.1", 327 | "util-deprecate": "^1.0.1" 328 | }, 329 | "engines": { 330 | "node": ">= 6" 331 | } 332 | }, 333 | "node_modules/browserify-zlib": { 334 | "version": "0.2.0", 335 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 336 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 337 | "dev": true, 338 | "dependencies": { 339 | "pako": "~1.0.5" 340 | } 341 | }, 342 | "node_modules/buffer": { 343 | "version": "5.2.1", 344 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", 345 | "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", 346 | "dev": true, 347 | "dependencies": { 348 | "base64-js": "^1.0.2", 349 | "ieee754": "^1.1.4" 350 | } 351 | }, 352 | "node_modules/buffer-from": { 353 | "version": "1.1.1", 354 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 355 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 356 | "dev": true 357 | }, 358 | "node_modules/buffer-xor": { 359 | "version": "1.0.3", 360 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 361 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 362 | "dev": true 363 | }, 364 | "node_modules/builtin-status-codes": { 365 | "version": "3.0.0", 366 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 367 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 368 | "dev": true 369 | }, 370 | "node_modules/cached-path-relative": { 371 | "version": "1.0.2", 372 | "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", 373 | "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", 374 | "dev": true 375 | }, 376 | "node_modules/cipher-base": { 377 | "version": "1.0.4", 378 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 379 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 380 | "dependencies": { 381 | "inherits": "^2.0.1", 382 | "safe-buffer": "^5.0.1" 383 | } 384 | }, 385 | "node_modules/combine-source-map": { 386 | "version": "0.8.0", 387 | "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", 388 | "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", 389 | "dev": true, 390 | "dependencies": { 391 | "convert-source-map": "~1.1.0", 392 | "inline-source-map": "~0.6.0", 393 | "lodash.memoize": "~3.0.3", 394 | "source-map": "~0.5.3" 395 | } 396 | }, 397 | "node_modules/commander": { 398 | "version": "2.20.3", 399 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 400 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 401 | "dev": true 402 | }, 403 | "node_modules/concat-map": { 404 | "version": "0.0.1", 405 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 406 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 407 | "dev": true 408 | }, 409 | "node_modules/concat-stream": { 410 | "version": "1.6.2", 411 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 412 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 413 | "dev": true, 414 | "engines": [ 415 | "node >= 0.8" 416 | ], 417 | "dependencies": { 418 | "buffer-from": "^1.0.0", 419 | "inherits": "^2.0.3", 420 | "readable-stream": "^2.2.2", 421 | "typedarray": "^0.0.6" 422 | } 423 | }, 424 | "node_modules/console-browserify": { 425 | "version": "1.2.0", 426 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", 427 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", 428 | "dev": true 429 | }, 430 | "node_modules/constants-browserify": { 431 | "version": "1.0.0", 432 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 433 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 434 | "dev": true 435 | }, 436 | "node_modules/convert-source-map": { 437 | "version": "1.1.3", 438 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", 439 | "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", 440 | "dev": true 441 | }, 442 | "node_modules/core-util-is": { 443 | "version": "1.0.2", 444 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 445 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 446 | "dev": true 447 | }, 448 | "node_modules/create-ecdh": { 449 | "version": "4.0.4", 450 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", 451 | "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", 452 | "dev": true, 453 | "dependencies": { 454 | "bn.js": "^4.1.0", 455 | "elliptic": "^6.5.3" 456 | } 457 | }, 458 | "node_modules/create-ecdh/node_modules/bn.js": { 459 | "version": "4.12.0", 460 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 461 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 462 | "dev": true 463 | }, 464 | "node_modules/create-hash": { 465 | "version": "1.2.0", 466 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 467 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 468 | "dependencies": { 469 | "cipher-base": "^1.0.1", 470 | "inherits": "^2.0.1", 471 | "md5.js": "^1.3.4", 472 | "ripemd160": "^2.0.1", 473 | "sha.js": "^2.4.0" 474 | } 475 | }, 476 | "node_modules/create-hmac": { 477 | "version": "1.1.7", 478 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 479 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 480 | "dependencies": { 481 | "cipher-base": "^1.0.3", 482 | "create-hash": "^1.1.0", 483 | "inherits": "^2.0.1", 484 | "ripemd160": "^2.0.0", 485 | "safe-buffer": "^5.0.1", 486 | "sha.js": "^2.4.8" 487 | } 488 | }, 489 | "node_modules/crypto-browserify": { 490 | "version": "3.12.0", 491 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 492 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 493 | "dev": true, 494 | "dependencies": { 495 | "browserify-cipher": "^1.0.0", 496 | "browserify-sign": "^4.0.0", 497 | "create-ecdh": "^4.0.0", 498 | "create-hash": "^1.1.0", 499 | "create-hmac": "^1.1.0", 500 | "diffie-hellman": "^5.0.0", 501 | "inherits": "^2.0.1", 502 | "pbkdf2": "^3.0.3", 503 | "public-encrypt": "^4.0.0", 504 | "randombytes": "^2.0.0", 505 | "randomfill": "^1.0.3" 506 | }, 507 | "engines": { 508 | "node": "*" 509 | } 510 | }, 511 | "node_modules/dash-ast": { 512 | "version": "1.0.0", 513 | "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", 514 | "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", 515 | "dev": true 516 | }, 517 | "node_modules/defined": { 518 | "version": "1.0.0", 519 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 520 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 521 | "dev": true 522 | }, 523 | "node_modules/deps-sort": { 524 | "version": "2.0.1", 525 | "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", 526 | "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", 527 | "dev": true, 528 | "dependencies": { 529 | "JSONStream": "^1.0.3", 530 | "shasum-object": "^1.0.0", 531 | "subarg": "^1.0.0", 532 | "through2": "^2.0.0" 533 | }, 534 | "bin": { 535 | "deps-sort": "bin/cmd.js" 536 | } 537 | }, 538 | "node_modules/des.js": { 539 | "version": "1.0.1", 540 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", 541 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", 542 | "dev": true, 543 | "dependencies": { 544 | "inherits": "^2.0.1", 545 | "minimalistic-assert": "^1.0.0" 546 | } 547 | }, 548 | "node_modules/detective": { 549 | "version": "5.2.0", 550 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", 551 | "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", 552 | "dev": true, 553 | "dependencies": { 554 | "acorn-node": "^1.6.1", 555 | "defined": "^1.0.0", 556 | "minimist": "^1.1.1" 557 | }, 558 | "bin": { 559 | "detective": "bin/detective.js" 560 | }, 561 | "engines": { 562 | "node": ">=0.8.0" 563 | } 564 | }, 565 | "node_modules/diffie-hellman": { 566 | "version": "5.0.3", 567 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 568 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 569 | "dev": true, 570 | "dependencies": { 571 | "bn.js": "^4.1.0", 572 | "miller-rabin": "^4.0.0", 573 | "randombytes": "^2.0.0" 574 | } 575 | }, 576 | "node_modules/diffie-hellman/node_modules/bn.js": { 577 | "version": "4.12.0", 578 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 579 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 580 | "dev": true 581 | }, 582 | "node_modules/domain-browser": { 583 | "version": "1.2.0", 584 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 585 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", 586 | "dev": true, 587 | "engines": { 588 | "node": ">=0.4", 589 | "npm": ">=1.2" 590 | } 591 | }, 592 | "node_modules/duplexer2": { 593 | "version": "0.1.4", 594 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 595 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", 596 | "dev": true, 597 | "dependencies": { 598 | "readable-stream": "^2.0.2" 599 | } 600 | }, 601 | "node_modules/elliptic": { 602 | "version": "6.5.4", 603 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", 604 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", 605 | "dev": true, 606 | "dependencies": { 607 | "bn.js": "^4.11.9", 608 | "brorand": "^1.1.0", 609 | "hash.js": "^1.0.0", 610 | "hmac-drbg": "^1.0.1", 611 | "inherits": "^2.0.4", 612 | "minimalistic-assert": "^1.0.1", 613 | "minimalistic-crypto-utils": "^1.0.1" 614 | } 615 | }, 616 | "node_modules/elliptic/node_modules/bn.js": { 617 | "version": "4.12.0", 618 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 619 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 620 | "dev": true 621 | }, 622 | "node_modules/events": { 623 | "version": "2.1.0", 624 | "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", 625 | "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", 626 | "dev": true, 627 | "engines": { 628 | "node": ">=0.4.x" 629 | } 630 | }, 631 | "node_modules/evp_bytestokey": { 632 | "version": "1.0.3", 633 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 634 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 635 | "dev": true, 636 | "dependencies": { 637 | "md5.js": "^1.3.4", 638 | "safe-buffer": "^5.1.1" 639 | } 640 | }, 641 | "node_modules/fast-safe-stringify": { 642 | "version": "2.0.8", 643 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", 644 | "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==", 645 | "dev": true 646 | }, 647 | "node_modules/fast-sha256": { 648 | "version": "1.3.0", 649 | "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", 650 | "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==" 651 | }, 652 | "node_modules/fs.realpath": { 653 | "version": "1.0.0", 654 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 655 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 656 | "dev": true 657 | }, 658 | "node_modules/function-bind": { 659 | "version": "1.1.1", 660 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 661 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 662 | "dev": true 663 | }, 664 | "node_modules/get-assigned-identifiers": { 665 | "version": "1.2.0", 666 | "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", 667 | "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", 668 | "dev": true 669 | }, 670 | "node_modules/glob": { 671 | "version": "7.1.7", 672 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 673 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 674 | "dev": true, 675 | "dependencies": { 676 | "fs.realpath": "^1.0.0", 677 | "inflight": "^1.0.4", 678 | "inherits": "2", 679 | "minimatch": "^3.0.4", 680 | "once": "^1.3.0", 681 | "path-is-absolute": "^1.0.0" 682 | }, 683 | "engines": { 684 | "node": "*" 685 | }, 686 | "funding": { 687 | "url": "https://github.com/sponsors/isaacs" 688 | } 689 | }, 690 | "node_modules/has": { 691 | "version": "1.0.3", 692 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 693 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 694 | "dev": true, 695 | "dependencies": { 696 | "function-bind": "^1.1.1" 697 | }, 698 | "engines": { 699 | "node": ">= 0.4.0" 700 | } 701 | }, 702 | "node_modules/hash-base": { 703 | "version": "3.1.0", 704 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", 705 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", 706 | "dependencies": { 707 | "inherits": "^2.0.4", 708 | "readable-stream": "^3.6.0", 709 | "safe-buffer": "^5.2.0" 710 | }, 711 | "engines": { 712 | "node": ">=4" 713 | } 714 | }, 715 | "node_modules/hash-base/node_modules/readable-stream": { 716 | "version": "3.6.0", 717 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 718 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 719 | "dependencies": { 720 | "inherits": "^2.0.3", 721 | "string_decoder": "^1.1.1", 722 | "util-deprecate": "^1.0.1" 723 | }, 724 | "engines": { 725 | "node": ">= 6" 726 | } 727 | }, 728 | "node_modules/hash.js": { 729 | "version": "1.1.7", 730 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 731 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 732 | "dev": true, 733 | "dependencies": { 734 | "inherits": "^2.0.3", 735 | "minimalistic-assert": "^1.0.1" 736 | } 737 | }, 738 | "node_modules/hmac-drbg": { 739 | "version": "1.0.1", 740 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 741 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 742 | "dev": true, 743 | "dependencies": { 744 | "hash.js": "^1.0.3", 745 | "minimalistic-assert": "^1.0.0", 746 | "minimalistic-crypto-utils": "^1.0.1" 747 | } 748 | }, 749 | "node_modules/htmlescape": { 750 | "version": "1.1.1", 751 | "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", 752 | "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", 753 | "dev": true, 754 | "engines": { 755 | "node": ">=0.10" 756 | } 757 | }, 758 | "node_modules/https-browserify": { 759 | "version": "1.0.0", 760 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 761 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 762 | "dev": true 763 | }, 764 | "node_modules/ieee754": { 765 | "version": "1.2.1", 766 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 767 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 768 | "dev": true, 769 | "funding": [ 770 | { 771 | "type": "github", 772 | "url": "https://github.com/sponsors/feross" 773 | }, 774 | { 775 | "type": "patreon", 776 | "url": "https://www.patreon.com/feross" 777 | }, 778 | { 779 | "type": "consulting", 780 | "url": "https://feross.org/support" 781 | } 782 | ] 783 | }, 784 | "node_modules/inflight": { 785 | "version": "1.0.6", 786 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 787 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 788 | "dev": true, 789 | "dependencies": { 790 | "once": "^1.3.0", 791 | "wrappy": "1" 792 | } 793 | }, 794 | "node_modules/inherits": { 795 | "version": "2.0.4", 796 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 797 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 798 | }, 799 | "node_modules/inline-source-map": { 800 | "version": "0.6.2", 801 | "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", 802 | "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", 803 | "dev": true, 804 | "dependencies": { 805 | "source-map": "~0.5.3" 806 | } 807 | }, 808 | "node_modules/insert-module-globals": { 809 | "version": "7.2.1", 810 | "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", 811 | "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", 812 | "dev": true, 813 | "dependencies": { 814 | "acorn-node": "^1.5.2", 815 | "combine-source-map": "^0.8.0", 816 | "concat-stream": "^1.6.1", 817 | "is-buffer": "^1.1.0", 818 | "JSONStream": "^1.0.3", 819 | "path-is-absolute": "^1.0.1", 820 | "process": "~0.11.0", 821 | "through2": "^2.0.0", 822 | "undeclared-identifiers": "^1.1.2", 823 | "xtend": "^4.0.0" 824 | }, 825 | "bin": { 826 | "insert-module-globals": "bin/cmd.js" 827 | } 828 | }, 829 | "node_modules/is-buffer": { 830 | "version": "1.1.6", 831 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 832 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 833 | "dev": true 834 | }, 835 | "node_modules/is-core-module": { 836 | "version": "2.4.0", 837 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", 838 | "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", 839 | "dev": true, 840 | "dependencies": { 841 | "has": "^1.0.3" 842 | }, 843 | "funding": { 844 | "url": "https://github.com/sponsors/ljharb" 845 | } 846 | }, 847 | "node_modules/isarray": { 848 | "version": "1.0.0", 849 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 850 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 851 | "dev": true 852 | }, 853 | "node_modules/json-stable-stringify": { 854 | "version": "0.0.1", 855 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", 856 | "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", 857 | "dev": true, 858 | "dependencies": { 859 | "jsonify": "~0.0.0" 860 | } 861 | }, 862 | "node_modules/jsonify": { 863 | "version": "0.0.0", 864 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 865 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 866 | "dev": true 867 | }, 868 | "node_modules/jsonparse": { 869 | "version": "1.3.1", 870 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 871 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", 872 | "dev": true, 873 | "engines": [ 874 | "node >= 0.2.0" 875 | ] 876 | }, 877 | "node_modules/JSONStream": { 878 | "version": "1.3.5", 879 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", 880 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", 881 | "dev": true, 882 | "dependencies": { 883 | "jsonparse": "^1.2.0", 884 | "through": ">=2.2.7 <3" 885 | }, 886 | "bin": { 887 | "JSONStream": "bin.js" 888 | }, 889 | "engines": { 890 | "node": "*" 891 | } 892 | }, 893 | "node_modules/labeled-stream-splicer": { 894 | "version": "2.0.2", 895 | "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", 896 | "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", 897 | "dev": true, 898 | "dependencies": { 899 | "inherits": "^2.0.1", 900 | "stream-splicer": "^2.0.0" 901 | } 902 | }, 903 | "node_modules/lodash.memoize": { 904 | "version": "3.0.4", 905 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", 906 | "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", 907 | "dev": true 908 | }, 909 | "node_modules/md5.js": { 910 | "version": "1.3.5", 911 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 912 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 913 | "dependencies": { 914 | "hash-base": "^3.0.0", 915 | "inherits": "^2.0.1", 916 | "safe-buffer": "^5.1.2" 917 | } 918 | }, 919 | "node_modules/miller-rabin": { 920 | "version": "4.0.1", 921 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 922 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 923 | "dev": true, 924 | "dependencies": { 925 | "bn.js": "^4.0.0", 926 | "brorand": "^1.0.1" 927 | }, 928 | "bin": { 929 | "miller-rabin": "bin/miller-rabin" 930 | } 931 | }, 932 | "node_modules/miller-rabin/node_modules/bn.js": { 933 | "version": "4.12.0", 934 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 935 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 936 | "dev": true 937 | }, 938 | "node_modules/minimalistic-assert": { 939 | "version": "1.0.1", 940 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 941 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", 942 | "dev": true 943 | }, 944 | "node_modules/minimalistic-crypto-utils": { 945 | "version": "1.0.1", 946 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 947 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 948 | "dev": true 949 | }, 950 | "node_modules/minimatch": { 951 | "version": "3.0.4", 952 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 953 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 954 | "dev": true, 955 | "dependencies": { 956 | "brace-expansion": "^1.1.7" 957 | }, 958 | "engines": { 959 | "node": "*" 960 | } 961 | }, 962 | "node_modules/minimist": { 963 | "version": "1.2.5", 964 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 965 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 966 | "dev": true 967 | }, 968 | "node_modules/mkdirp-classic": { 969 | "version": "0.5.3", 970 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 971 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", 972 | "dev": true 973 | }, 974 | "node_modules/module-deps": { 975 | "version": "6.2.3", 976 | "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", 977 | "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", 978 | "dev": true, 979 | "dependencies": { 980 | "browser-resolve": "^2.0.0", 981 | "cached-path-relative": "^1.0.2", 982 | "concat-stream": "~1.6.0", 983 | "defined": "^1.0.0", 984 | "detective": "^5.2.0", 985 | "duplexer2": "^0.1.2", 986 | "inherits": "^2.0.1", 987 | "JSONStream": "^1.0.3", 988 | "parents": "^1.0.0", 989 | "readable-stream": "^2.0.2", 990 | "resolve": "^1.4.0", 991 | "stream-combiner2": "^1.1.1", 992 | "subarg": "^1.0.0", 993 | "through2": "^2.0.0", 994 | "xtend": "^4.0.0" 995 | }, 996 | "bin": { 997 | "module-deps": "bin/cmd.js" 998 | }, 999 | "engines": { 1000 | "node": ">= 0.8.0" 1001 | } 1002 | }, 1003 | "node_modules/noble-bls12-381": { 1004 | "version": "0.14.0", 1005 | "resolved": "https://registry.npmjs.org/noble-bls12-381/-/noble-bls12-381-0.14.0.tgz", 1006 | "integrity": "sha512-N0STtQ0t7ImabaMnLZmghtZXPXB0PwushdPBnJL0uaGG6NEFTX8T7DNJTualOCiavIEApbsdY7SSfAF9FPp7rQ==" 1007 | }, 1008 | "node_modules/object-assign": { 1009 | "version": "4.1.1", 1010 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1011 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1012 | "dev": true, 1013 | "engines": { 1014 | "node": ">=0.10.0" 1015 | } 1016 | }, 1017 | "node_modules/once": { 1018 | "version": "1.4.0", 1019 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1020 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1021 | "dev": true, 1022 | "dependencies": { 1023 | "wrappy": "1" 1024 | } 1025 | }, 1026 | "node_modules/os-browserify": { 1027 | "version": "0.3.0", 1028 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 1029 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 1030 | "dev": true 1031 | }, 1032 | "node_modules/pako": { 1033 | "version": "1.0.11", 1034 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 1035 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", 1036 | "dev": true 1037 | }, 1038 | "node_modules/parents": { 1039 | "version": "1.0.1", 1040 | "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", 1041 | "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", 1042 | "dev": true, 1043 | "dependencies": { 1044 | "path-platform": "~0.11.15" 1045 | } 1046 | }, 1047 | "node_modules/parse-asn1": { 1048 | "version": "5.1.6", 1049 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", 1050 | "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", 1051 | "dev": true, 1052 | "dependencies": { 1053 | "asn1.js": "^5.2.0", 1054 | "browserify-aes": "^1.0.0", 1055 | "evp_bytestokey": "^1.0.0", 1056 | "pbkdf2": "^3.0.3", 1057 | "safe-buffer": "^5.1.1" 1058 | } 1059 | }, 1060 | "node_modules/path-browserify": { 1061 | "version": "0.0.1", 1062 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", 1063 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", 1064 | "dev": true 1065 | }, 1066 | "node_modules/path-is-absolute": { 1067 | "version": "1.0.1", 1068 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1069 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1070 | "dev": true, 1071 | "engines": { 1072 | "node": ">=0.10.0" 1073 | } 1074 | }, 1075 | "node_modules/path-parse": { 1076 | "version": "1.0.7", 1077 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1078 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1079 | "dev": true 1080 | }, 1081 | "node_modules/path-platform": { 1082 | "version": "0.11.15", 1083 | "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", 1084 | "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", 1085 | "dev": true, 1086 | "engines": { 1087 | "node": ">= 0.8.0" 1088 | } 1089 | }, 1090 | "node_modules/pbkdf2": { 1091 | "version": "3.1.2", 1092 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", 1093 | "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", 1094 | "dependencies": { 1095 | "create-hash": "^1.1.2", 1096 | "create-hmac": "^1.1.4", 1097 | "ripemd160": "^2.0.1", 1098 | "safe-buffer": "^5.0.1", 1099 | "sha.js": "^2.4.8" 1100 | }, 1101 | "engines": { 1102 | "node": ">=0.12" 1103 | } 1104 | }, 1105 | "node_modules/process": { 1106 | "version": "0.11.10", 1107 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 1108 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 1109 | "dev": true, 1110 | "engines": { 1111 | "node": ">= 0.6.0" 1112 | } 1113 | }, 1114 | "node_modules/process-nextick-args": { 1115 | "version": "2.0.1", 1116 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1117 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 1118 | "dev": true 1119 | }, 1120 | "node_modules/public-encrypt": { 1121 | "version": "4.0.3", 1122 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", 1123 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", 1124 | "dev": true, 1125 | "dependencies": { 1126 | "bn.js": "^4.1.0", 1127 | "browserify-rsa": "^4.0.0", 1128 | "create-hash": "^1.1.0", 1129 | "parse-asn1": "^5.0.0", 1130 | "randombytes": "^2.0.1", 1131 | "safe-buffer": "^5.1.2" 1132 | } 1133 | }, 1134 | "node_modules/public-encrypt/node_modules/bn.js": { 1135 | "version": "4.12.0", 1136 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 1137 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 1138 | "dev": true 1139 | }, 1140 | "node_modules/punycode": { 1141 | "version": "1.4.1", 1142 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1143 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1144 | "dev": true 1145 | }, 1146 | "node_modules/querystring": { 1147 | "version": "0.2.0", 1148 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 1149 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 1150 | "deprecated": "The", 1151 | "dev": true, 1152 | "engines": { 1153 | "node": ">=0.4.x" 1154 | } 1155 | }, 1156 | "node_modules/querystring-es3": { 1157 | "version": "0.2.1", 1158 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 1159 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 1160 | "dev": true, 1161 | "engines": { 1162 | "node": ">=0.4.x" 1163 | } 1164 | }, 1165 | "node_modules/randombytes": { 1166 | "version": "2.1.0", 1167 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1168 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1169 | "dependencies": { 1170 | "safe-buffer": "^5.1.0" 1171 | } 1172 | }, 1173 | "node_modules/randomfill": { 1174 | "version": "1.0.4", 1175 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 1176 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 1177 | "dev": true, 1178 | "dependencies": { 1179 | "randombytes": "^2.0.5", 1180 | "safe-buffer": "^5.1.0" 1181 | } 1182 | }, 1183 | "node_modules/read-only-stream": { 1184 | "version": "2.0.0", 1185 | "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", 1186 | "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", 1187 | "dev": true, 1188 | "dependencies": { 1189 | "readable-stream": "^2.0.2" 1190 | } 1191 | }, 1192 | "node_modules/readable-stream": { 1193 | "version": "2.3.7", 1194 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1195 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1196 | "dev": true, 1197 | "dependencies": { 1198 | "core-util-is": "~1.0.0", 1199 | "inherits": "~2.0.3", 1200 | "isarray": "~1.0.0", 1201 | "process-nextick-args": "~2.0.0", 1202 | "safe-buffer": "~5.1.1", 1203 | "string_decoder": "~1.1.1", 1204 | "util-deprecate": "~1.0.1" 1205 | } 1206 | }, 1207 | "node_modules/readable-stream/node_modules/safe-buffer": { 1208 | "version": "5.1.2", 1209 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1210 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1211 | "dev": true 1212 | }, 1213 | "node_modules/readable-stream/node_modules/string_decoder": { 1214 | "version": "1.1.1", 1215 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1216 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1217 | "dev": true, 1218 | "dependencies": { 1219 | "safe-buffer": "~5.1.0" 1220 | } 1221 | }, 1222 | "node_modules/resolve": { 1223 | "version": "1.20.0", 1224 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 1225 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 1226 | "dev": true, 1227 | "dependencies": { 1228 | "is-core-module": "^2.2.0", 1229 | "path-parse": "^1.0.6" 1230 | }, 1231 | "funding": { 1232 | "url": "https://github.com/sponsors/ljharb" 1233 | } 1234 | }, 1235 | "node_modules/ripemd160": { 1236 | "version": "2.0.2", 1237 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 1238 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 1239 | "dependencies": { 1240 | "hash-base": "^3.0.0", 1241 | "inherits": "^2.0.1" 1242 | } 1243 | }, 1244 | "node_modules/safe-buffer": { 1245 | "version": "5.2.1", 1246 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1247 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1248 | "funding": [ 1249 | { 1250 | "type": "github", 1251 | "url": "https://github.com/sponsors/feross" 1252 | }, 1253 | { 1254 | "type": "patreon", 1255 | "url": "https://www.patreon.com/feross" 1256 | }, 1257 | { 1258 | "type": "consulting", 1259 | "url": "https://feross.org/support" 1260 | } 1261 | ] 1262 | }, 1263 | "node_modules/safer-buffer": { 1264 | "version": "2.1.2", 1265 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1266 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1267 | "dev": true 1268 | }, 1269 | "node_modules/sha.js": { 1270 | "version": "2.4.11", 1271 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 1272 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 1273 | "dependencies": { 1274 | "inherits": "^2.0.1", 1275 | "safe-buffer": "^5.0.1" 1276 | }, 1277 | "bin": { 1278 | "sha.js": "bin.js" 1279 | } 1280 | }, 1281 | "node_modules/shasum": { 1282 | "version": "1.0.2", 1283 | "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", 1284 | "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", 1285 | "dev": true, 1286 | "dependencies": { 1287 | "json-stable-stringify": "~0.0.0", 1288 | "sha.js": "~2.4.4" 1289 | } 1290 | }, 1291 | "node_modules/shasum-object": { 1292 | "version": "1.0.0", 1293 | "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", 1294 | "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", 1295 | "dev": true, 1296 | "dependencies": { 1297 | "fast-safe-stringify": "^2.0.7" 1298 | } 1299 | }, 1300 | "node_modules/shell-quote": { 1301 | "version": "1.7.2", 1302 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", 1303 | "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", 1304 | "dev": true 1305 | }, 1306 | "node_modules/simple-concat": { 1307 | "version": "1.0.1", 1308 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 1309 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", 1310 | "dev": true, 1311 | "funding": [ 1312 | { 1313 | "type": "github", 1314 | "url": "https://github.com/sponsors/feross" 1315 | }, 1316 | { 1317 | "type": "patreon", 1318 | "url": "https://www.patreon.com/feross" 1319 | }, 1320 | { 1321 | "type": "consulting", 1322 | "url": "https://feross.org/support" 1323 | } 1324 | ] 1325 | }, 1326 | "node_modules/source-map": { 1327 | "version": "0.5.7", 1328 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1329 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1330 | "dev": true, 1331 | "engines": { 1332 | "node": ">=0.10.0" 1333 | } 1334 | }, 1335 | "node_modules/source-map-support": { 1336 | "version": "0.5.19", 1337 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 1338 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 1339 | "dev": true, 1340 | "dependencies": { 1341 | "buffer-from": "^1.0.0", 1342 | "source-map": "^0.6.0" 1343 | } 1344 | }, 1345 | "node_modules/source-map-support/node_modules/source-map": { 1346 | "version": "0.6.1", 1347 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1348 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1349 | "dev": true, 1350 | "engines": { 1351 | "node": ">=0.10.0" 1352 | } 1353 | }, 1354 | "node_modules/stream-browserify": { 1355 | "version": "2.0.2", 1356 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", 1357 | "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", 1358 | "dev": true, 1359 | "dependencies": { 1360 | "inherits": "~2.0.1", 1361 | "readable-stream": "^2.0.2" 1362 | } 1363 | }, 1364 | "node_modules/stream-combiner2": { 1365 | "version": "1.1.1", 1366 | "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", 1367 | "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", 1368 | "dev": true, 1369 | "dependencies": { 1370 | "duplexer2": "~0.1.0", 1371 | "readable-stream": "^2.0.2" 1372 | } 1373 | }, 1374 | "node_modules/stream-http": { 1375 | "version": "3.2.0", 1376 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", 1377 | "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", 1378 | "dev": true, 1379 | "dependencies": { 1380 | "builtin-status-codes": "^3.0.0", 1381 | "inherits": "^2.0.4", 1382 | "readable-stream": "^3.6.0", 1383 | "xtend": "^4.0.2" 1384 | } 1385 | }, 1386 | "node_modules/stream-http/node_modules/readable-stream": { 1387 | "version": "3.6.0", 1388 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1389 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1390 | "dev": true, 1391 | "dependencies": { 1392 | "inherits": "^2.0.3", 1393 | "string_decoder": "^1.1.1", 1394 | "util-deprecate": "^1.0.1" 1395 | }, 1396 | "engines": { 1397 | "node": ">= 6" 1398 | } 1399 | }, 1400 | "node_modules/stream-splicer": { 1401 | "version": "2.0.1", 1402 | "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", 1403 | "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", 1404 | "dev": true, 1405 | "dependencies": { 1406 | "inherits": "^2.0.1", 1407 | "readable-stream": "^2.0.2" 1408 | } 1409 | }, 1410 | "node_modules/string_decoder": { 1411 | "version": "1.3.0", 1412 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1413 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1414 | "dependencies": { 1415 | "safe-buffer": "~5.2.0" 1416 | } 1417 | }, 1418 | "node_modules/subarg": { 1419 | "version": "1.0.0", 1420 | "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", 1421 | "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", 1422 | "dev": true, 1423 | "dependencies": { 1424 | "minimist": "^1.1.0" 1425 | } 1426 | }, 1427 | "node_modules/syntax-error": { 1428 | "version": "1.4.0", 1429 | "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", 1430 | "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", 1431 | "dev": true, 1432 | "dependencies": { 1433 | "acorn-node": "^1.2.0" 1434 | } 1435 | }, 1436 | "node_modules/terser": { 1437 | "version": "5.7.1", 1438 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", 1439 | "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", 1440 | "dev": true, 1441 | "dependencies": { 1442 | "commander": "^2.20.0", 1443 | "source-map": "~0.7.2", 1444 | "source-map-support": "~0.5.19" 1445 | }, 1446 | "bin": { 1447 | "terser": "bin/terser" 1448 | }, 1449 | "engines": { 1450 | "node": ">=10" 1451 | } 1452 | }, 1453 | "node_modules/terser/node_modules/source-map": { 1454 | "version": "0.7.3", 1455 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1456 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1457 | "dev": true, 1458 | "engines": { 1459 | "node": ">= 8" 1460 | } 1461 | }, 1462 | "node_modules/through": { 1463 | "version": "2.3.8", 1464 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1465 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1466 | "dev": true 1467 | }, 1468 | "node_modules/through2": { 1469 | "version": "2.0.5", 1470 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 1471 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 1472 | "dev": true, 1473 | "dependencies": { 1474 | "readable-stream": "~2.3.6", 1475 | "xtend": "~4.0.1" 1476 | } 1477 | }, 1478 | "node_modules/timers-browserify": { 1479 | "version": "1.4.2", 1480 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", 1481 | "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", 1482 | "dev": true, 1483 | "dependencies": { 1484 | "process": "~0.11.0" 1485 | }, 1486 | "engines": { 1487 | "node": ">=0.6.0" 1488 | } 1489 | }, 1490 | "node_modules/tty-browserify": { 1491 | "version": "0.0.1", 1492 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", 1493 | "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", 1494 | "dev": true 1495 | }, 1496 | "node_modules/typedarray": { 1497 | "version": "0.0.6", 1498 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1499 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 1500 | "dev": true 1501 | }, 1502 | "node_modules/umd": { 1503 | "version": "3.0.3", 1504 | "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", 1505 | "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", 1506 | "dev": true, 1507 | "bin": { 1508 | "umd": "bin/cli.js" 1509 | } 1510 | }, 1511 | "node_modules/undeclared-identifiers": { 1512 | "version": "1.1.3", 1513 | "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", 1514 | "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", 1515 | "dev": true, 1516 | "dependencies": { 1517 | "acorn-node": "^1.3.0", 1518 | "dash-ast": "^1.0.0", 1519 | "get-assigned-identifiers": "^1.2.0", 1520 | "simple-concat": "^1.0.0", 1521 | "xtend": "^4.0.1" 1522 | }, 1523 | "bin": { 1524 | "undeclared-identifiers": "bin.js" 1525 | } 1526 | }, 1527 | "node_modules/url": { 1528 | "version": "0.11.0", 1529 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 1530 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 1531 | "dev": true, 1532 | "dependencies": { 1533 | "punycode": "1.3.2", 1534 | "querystring": "0.2.0" 1535 | } 1536 | }, 1537 | "node_modules/url/node_modules/punycode": { 1538 | "version": "1.3.2", 1539 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 1540 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 1541 | "dev": true 1542 | }, 1543 | "node_modules/util": { 1544 | "version": "0.10.4", 1545 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 1546 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 1547 | "dev": true, 1548 | "dependencies": { 1549 | "inherits": "2.0.3" 1550 | } 1551 | }, 1552 | "node_modules/util-deprecate": { 1553 | "version": "1.0.2", 1554 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1555 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1556 | }, 1557 | "node_modules/util/node_modules/inherits": { 1558 | "version": "2.0.3", 1559 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1560 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1561 | "dev": true 1562 | }, 1563 | "node_modules/vm-browserify": { 1564 | "version": "1.1.2", 1565 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", 1566 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", 1567 | "dev": true 1568 | }, 1569 | "node_modules/wrappy": { 1570 | "version": "1.0.2", 1571 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1572 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1573 | "dev": true 1574 | }, 1575 | "node_modules/xtend": { 1576 | "version": "4.0.2", 1577 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1578 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1579 | "dev": true, 1580 | "engines": { 1581 | "node": ">=0.4" 1582 | } 1583 | } 1584 | }, 1585 | "dependencies": { 1586 | "@types/node": { 1587 | "version": "11.11.6", 1588 | "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", 1589 | "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" 1590 | }, 1591 | "acorn": { 1592 | "version": "7.4.1", 1593 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 1594 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 1595 | "dev": true 1596 | }, 1597 | "acorn-node": { 1598 | "version": "1.8.2", 1599 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 1600 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 1601 | "dev": true, 1602 | "requires": { 1603 | "acorn": "^7.0.0", 1604 | "acorn-walk": "^7.0.0", 1605 | "xtend": "^4.0.2" 1606 | } 1607 | }, 1608 | "acorn-walk": { 1609 | "version": "7.2.0", 1610 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 1611 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 1612 | "dev": true 1613 | }, 1614 | "asn1.js": { 1615 | "version": "5.4.1", 1616 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", 1617 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", 1618 | "dev": true, 1619 | "requires": { 1620 | "bn.js": "^4.0.0", 1621 | "inherits": "^2.0.1", 1622 | "minimalistic-assert": "^1.0.0", 1623 | "safer-buffer": "^2.1.0" 1624 | }, 1625 | "dependencies": { 1626 | "bn.js": { 1627 | "version": "4.12.0", 1628 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 1629 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 1630 | "dev": true 1631 | } 1632 | } 1633 | }, 1634 | "assert": { 1635 | "version": "1.5.0", 1636 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", 1637 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", 1638 | "dev": true, 1639 | "requires": { 1640 | "object-assign": "^4.1.1", 1641 | "util": "0.10.3" 1642 | }, 1643 | "dependencies": { 1644 | "inherits": { 1645 | "version": "2.0.1", 1646 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 1647 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 1648 | "dev": true 1649 | }, 1650 | "util": { 1651 | "version": "0.10.3", 1652 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 1653 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 1654 | "dev": true, 1655 | "requires": { 1656 | "inherits": "2.0.1" 1657 | } 1658 | } 1659 | } 1660 | }, 1661 | "balanced-match": { 1662 | "version": "1.0.2", 1663 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1664 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1665 | "dev": true 1666 | }, 1667 | "base64-js": { 1668 | "version": "1.5.1", 1669 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1670 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 1671 | "dev": true 1672 | }, 1673 | "bip39": { 1674 | "version": "3.0.4", 1675 | "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", 1676 | "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", 1677 | "requires": { 1678 | "@types/node": "11.11.6", 1679 | "create-hash": "^1.1.0", 1680 | "pbkdf2": "^3.0.9", 1681 | "randombytes": "^2.0.1" 1682 | } 1683 | }, 1684 | "bls12-381-keygen": { 1685 | "version": "0.1.4", 1686 | "resolved": "https://registry.npmjs.org/bls12-381-keygen/-/bls12-381-keygen-0.1.4.tgz", 1687 | "integrity": "sha512-JdpTTa6PfPnodZKHN4YN8AgoN1ptfw8KDuW6Lo2t7FLrDzM5bvHAfcEvE29zMC25LwSExTlh7Jss827n/J4fmQ==", 1688 | "requires": { 1689 | "fast-sha256": "~1.3.0" 1690 | } 1691 | }, 1692 | "bn.js": { 1693 | "version": "5.2.0", 1694 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", 1695 | "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", 1696 | "dev": true 1697 | }, 1698 | "brace-expansion": { 1699 | "version": "1.1.11", 1700 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1701 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1702 | "dev": true, 1703 | "requires": { 1704 | "balanced-match": "^1.0.0", 1705 | "concat-map": "0.0.1" 1706 | } 1707 | }, 1708 | "brorand": { 1709 | "version": "1.1.0", 1710 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 1711 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 1712 | "dev": true 1713 | }, 1714 | "browser-pack": { 1715 | "version": "6.1.0", 1716 | "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", 1717 | "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", 1718 | "dev": true, 1719 | "requires": { 1720 | "combine-source-map": "~0.8.0", 1721 | "defined": "^1.0.0", 1722 | "JSONStream": "^1.0.3", 1723 | "safe-buffer": "^5.1.1", 1724 | "through2": "^2.0.0", 1725 | "umd": "^3.0.0" 1726 | } 1727 | }, 1728 | "browser-resolve": { 1729 | "version": "2.0.0", 1730 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", 1731 | "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", 1732 | "dev": true, 1733 | "requires": { 1734 | "resolve": "^1.17.0" 1735 | } 1736 | }, 1737 | "browserify": { 1738 | "version": "16.5.2", 1739 | "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz", 1740 | "integrity": "sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==", 1741 | "dev": true, 1742 | "requires": { 1743 | "assert": "^1.4.0", 1744 | "browser-pack": "^6.0.1", 1745 | "browser-resolve": "^2.0.0", 1746 | "browserify-zlib": "~0.2.0", 1747 | "buffer": "~5.2.1", 1748 | "cached-path-relative": "^1.0.0", 1749 | "concat-stream": "^1.6.0", 1750 | "console-browserify": "^1.1.0", 1751 | "constants-browserify": "~1.0.0", 1752 | "crypto-browserify": "^3.0.0", 1753 | "defined": "^1.0.0", 1754 | "deps-sort": "^2.0.0", 1755 | "domain-browser": "^1.2.0", 1756 | "duplexer2": "~0.1.2", 1757 | "events": "^2.0.0", 1758 | "glob": "^7.1.0", 1759 | "has": "^1.0.0", 1760 | "htmlescape": "^1.1.0", 1761 | "https-browserify": "^1.0.0", 1762 | "inherits": "~2.0.1", 1763 | "insert-module-globals": "^7.0.0", 1764 | "JSONStream": "^1.0.3", 1765 | "labeled-stream-splicer": "^2.0.0", 1766 | "mkdirp-classic": "^0.5.2", 1767 | "module-deps": "^6.2.3", 1768 | "os-browserify": "~0.3.0", 1769 | "parents": "^1.0.1", 1770 | "path-browserify": "~0.0.0", 1771 | "process": "~0.11.0", 1772 | "punycode": "^1.3.2", 1773 | "querystring-es3": "~0.2.0", 1774 | "read-only-stream": "^2.0.0", 1775 | "readable-stream": "^2.0.2", 1776 | "resolve": "^1.1.4", 1777 | "shasum": "^1.0.0", 1778 | "shell-quote": "^1.6.1", 1779 | "stream-browserify": "^2.0.0", 1780 | "stream-http": "^3.0.0", 1781 | "string_decoder": "^1.1.1", 1782 | "subarg": "^1.0.0", 1783 | "syntax-error": "^1.1.1", 1784 | "through2": "^2.0.0", 1785 | "timers-browserify": "^1.0.1", 1786 | "tty-browserify": "0.0.1", 1787 | "url": "~0.11.0", 1788 | "util": "~0.10.1", 1789 | "vm-browserify": "^1.0.0", 1790 | "xtend": "^4.0.0" 1791 | } 1792 | }, 1793 | "browserify-aes": { 1794 | "version": "1.2.0", 1795 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 1796 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 1797 | "dev": true, 1798 | "requires": { 1799 | "buffer-xor": "^1.0.3", 1800 | "cipher-base": "^1.0.0", 1801 | "create-hash": "^1.1.0", 1802 | "evp_bytestokey": "^1.0.3", 1803 | "inherits": "^2.0.1", 1804 | "safe-buffer": "^5.0.1" 1805 | } 1806 | }, 1807 | "browserify-cipher": { 1808 | "version": "1.0.1", 1809 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 1810 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 1811 | "dev": true, 1812 | "requires": { 1813 | "browserify-aes": "^1.0.4", 1814 | "browserify-des": "^1.0.0", 1815 | "evp_bytestokey": "^1.0.0" 1816 | } 1817 | }, 1818 | "browserify-des": { 1819 | "version": "1.0.2", 1820 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 1821 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 1822 | "dev": true, 1823 | "requires": { 1824 | "cipher-base": "^1.0.1", 1825 | "des.js": "^1.0.0", 1826 | "inherits": "^2.0.1", 1827 | "safe-buffer": "^5.1.2" 1828 | } 1829 | }, 1830 | "browserify-rsa": { 1831 | "version": "4.1.0", 1832 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", 1833 | "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", 1834 | "dev": true, 1835 | "requires": { 1836 | "bn.js": "^5.0.0", 1837 | "randombytes": "^2.0.1" 1838 | } 1839 | }, 1840 | "browserify-sign": { 1841 | "version": "4.2.1", 1842 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", 1843 | "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", 1844 | "dev": true, 1845 | "requires": { 1846 | "bn.js": "^5.1.1", 1847 | "browserify-rsa": "^4.0.1", 1848 | "create-hash": "^1.2.0", 1849 | "create-hmac": "^1.1.7", 1850 | "elliptic": "^6.5.3", 1851 | "inherits": "^2.0.4", 1852 | "parse-asn1": "^5.1.5", 1853 | "readable-stream": "^3.6.0", 1854 | "safe-buffer": "^5.2.0" 1855 | }, 1856 | "dependencies": { 1857 | "readable-stream": { 1858 | "version": "3.6.0", 1859 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1860 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1861 | "dev": true, 1862 | "requires": { 1863 | "inherits": "^2.0.3", 1864 | "string_decoder": "^1.1.1", 1865 | "util-deprecate": "^1.0.1" 1866 | } 1867 | } 1868 | } 1869 | }, 1870 | "browserify-zlib": { 1871 | "version": "0.2.0", 1872 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 1873 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 1874 | "dev": true, 1875 | "requires": { 1876 | "pako": "~1.0.5" 1877 | } 1878 | }, 1879 | "buffer": { 1880 | "version": "5.2.1", 1881 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", 1882 | "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", 1883 | "dev": true, 1884 | "requires": { 1885 | "base64-js": "^1.0.2", 1886 | "ieee754": "^1.1.4" 1887 | } 1888 | }, 1889 | "buffer-from": { 1890 | "version": "1.1.1", 1891 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 1892 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 1893 | "dev": true 1894 | }, 1895 | "buffer-xor": { 1896 | "version": "1.0.3", 1897 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 1898 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 1899 | "dev": true 1900 | }, 1901 | "builtin-status-codes": { 1902 | "version": "3.0.0", 1903 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 1904 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 1905 | "dev": true 1906 | }, 1907 | "cached-path-relative": { 1908 | "version": "1.0.2", 1909 | "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", 1910 | "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", 1911 | "dev": true 1912 | }, 1913 | "cipher-base": { 1914 | "version": "1.0.4", 1915 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 1916 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 1917 | "requires": { 1918 | "inherits": "^2.0.1", 1919 | "safe-buffer": "^5.0.1" 1920 | } 1921 | }, 1922 | "combine-source-map": { 1923 | "version": "0.8.0", 1924 | "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", 1925 | "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", 1926 | "dev": true, 1927 | "requires": { 1928 | "convert-source-map": "~1.1.0", 1929 | "inline-source-map": "~0.6.0", 1930 | "lodash.memoize": "~3.0.3", 1931 | "source-map": "~0.5.3" 1932 | } 1933 | }, 1934 | "commander": { 1935 | "version": "2.20.3", 1936 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 1937 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 1938 | "dev": true 1939 | }, 1940 | "concat-map": { 1941 | "version": "0.0.1", 1942 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1943 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1944 | "dev": true 1945 | }, 1946 | "concat-stream": { 1947 | "version": "1.6.2", 1948 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 1949 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 1950 | "dev": true, 1951 | "requires": { 1952 | "buffer-from": "^1.0.0", 1953 | "inherits": "^2.0.3", 1954 | "readable-stream": "^2.2.2", 1955 | "typedarray": "^0.0.6" 1956 | } 1957 | }, 1958 | "console-browserify": { 1959 | "version": "1.2.0", 1960 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", 1961 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", 1962 | "dev": true 1963 | }, 1964 | "constants-browserify": { 1965 | "version": "1.0.0", 1966 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 1967 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 1968 | "dev": true 1969 | }, 1970 | "convert-source-map": { 1971 | "version": "1.1.3", 1972 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", 1973 | "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", 1974 | "dev": true 1975 | }, 1976 | "core-util-is": { 1977 | "version": "1.0.2", 1978 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1979 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1980 | "dev": true 1981 | }, 1982 | "create-ecdh": { 1983 | "version": "4.0.4", 1984 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", 1985 | "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", 1986 | "dev": true, 1987 | "requires": { 1988 | "bn.js": "^4.1.0", 1989 | "elliptic": "^6.5.3" 1990 | }, 1991 | "dependencies": { 1992 | "bn.js": { 1993 | "version": "4.12.0", 1994 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 1995 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 1996 | "dev": true 1997 | } 1998 | } 1999 | }, 2000 | "create-hash": { 2001 | "version": "1.2.0", 2002 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 2003 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 2004 | "requires": { 2005 | "cipher-base": "^1.0.1", 2006 | "inherits": "^2.0.1", 2007 | "md5.js": "^1.3.4", 2008 | "ripemd160": "^2.0.1", 2009 | "sha.js": "^2.4.0" 2010 | } 2011 | }, 2012 | "create-hmac": { 2013 | "version": "1.1.7", 2014 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 2015 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 2016 | "requires": { 2017 | "cipher-base": "^1.0.3", 2018 | "create-hash": "^1.1.0", 2019 | "inherits": "^2.0.1", 2020 | "ripemd160": "^2.0.0", 2021 | "safe-buffer": "^5.0.1", 2022 | "sha.js": "^2.4.8" 2023 | } 2024 | }, 2025 | "crypto-browserify": { 2026 | "version": "3.12.0", 2027 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 2028 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 2029 | "dev": true, 2030 | "requires": { 2031 | "browserify-cipher": "^1.0.0", 2032 | "browserify-sign": "^4.0.0", 2033 | "create-ecdh": "^4.0.0", 2034 | "create-hash": "^1.1.0", 2035 | "create-hmac": "^1.1.0", 2036 | "diffie-hellman": "^5.0.0", 2037 | "inherits": "^2.0.1", 2038 | "pbkdf2": "^3.0.3", 2039 | "public-encrypt": "^4.0.0", 2040 | "randombytes": "^2.0.0", 2041 | "randomfill": "^1.0.3" 2042 | } 2043 | }, 2044 | "dash-ast": { 2045 | "version": "1.0.0", 2046 | "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", 2047 | "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", 2048 | "dev": true 2049 | }, 2050 | "defined": { 2051 | "version": "1.0.0", 2052 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 2053 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 2054 | "dev": true 2055 | }, 2056 | "deps-sort": { 2057 | "version": "2.0.1", 2058 | "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", 2059 | "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", 2060 | "dev": true, 2061 | "requires": { 2062 | "JSONStream": "^1.0.3", 2063 | "shasum-object": "^1.0.0", 2064 | "subarg": "^1.0.0", 2065 | "through2": "^2.0.0" 2066 | } 2067 | }, 2068 | "des.js": { 2069 | "version": "1.0.1", 2070 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", 2071 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", 2072 | "dev": true, 2073 | "requires": { 2074 | "inherits": "^2.0.1", 2075 | "minimalistic-assert": "^1.0.0" 2076 | } 2077 | }, 2078 | "detective": { 2079 | "version": "5.2.0", 2080 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", 2081 | "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", 2082 | "dev": true, 2083 | "requires": { 2084 | "acorn-node": "^1.6.1", 2085 | "defined": "^1.0.0", 2086 | "minimist": "^1.1.1" 2087 | } 2088 | }, 2089 | "diffie-hellman": { 2090 | "version": "5.0.3", 2091 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 2092 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 2093 | "dev": true, 2094 | "requires": { 2095 | "bn.js": "^4.1.0", 2096 | "miller-rabin": "^4.0.0", 2097 | "randombytes": "^2.0.0" 2098 | }, 2099 | "dependencies": { 2100 | "bn.js": { 2101 | "version": "4.12.0", 2102 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 2103 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 2104 | "dev": true 2105 | } 2106 | } 2107 | }, 2108 | "domain-browser": { 2109 | "version": "1.2.0", 2110 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 2111 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", 2112 | "dev": true 2113 | }, 2114 | "duplexer2": { 2115 | "version": "0.1.4", 2116 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 2117 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", 2118 | "dev": true, 2119 | "requires": { 2120 | "readable-stream": "^2.0.2" 2121 | } 2122 | }, 2123 | "elliptic": { 2124 | "version": "6.5.4", 2125 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", 2126 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", 2127 | "dev": true, 2128 | "requires": { 2129 | "bn.js": "^4.11.9", 2130 | "brorand": "^1.1.0", 2131 | "hash.js": "^1.0.0", 2132 | "hmac-drbg": "^1.0.1", 2133 | "inherits": "^2.0.4", 2134 | "minimalistic-assert": "^1.0.1", 2135 | "minimalistic-crypto-utils": "^1.0.1" 2136 | }, 2137 | "dependencies": { 2138 | "bn.js": { 2139 | "version": "4.12.0", 2140 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 2141 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 2142 | "dev": true 2143 | } 2144 | } 2145 | }, 2146 | "events": { 2147 | "version": "2.1.0", 2148 | "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", 2149 | "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==", 2150 | "dev": true 2151 | }, 2152 | "evp_bytestokey": { 2153 | "version": "1.0.3", 2154 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 2155 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 2156 | "dev": true, 2157 | "requires": { 2158 | "md5.js": "^1.3.4", 2159 | "safe-buffer": "^5.1.1" 2160 | } 2161 | }, 2162 | "fast-safe-stringify": { 2163 | "version": "2.0.8", 2164 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", 2165 | "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==", 2166 | "dev": true 2167 | }, 2168 | "fast-sha256": { 2169 | "version": "1.3.0", 2170 | "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", 2171 | "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==" 2172 | }, 2173 | "fs.realpath": { 2174 | "version": "1.0.0", 2175 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2176 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 2177 | "dev": true 2178 | }, 2179 | "function-bind": { 2180 | "version": "1.1.1", 2181 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2182 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2183 | "dev": true 2184 | }, 2185 | "get-assigned-identifiers": { 2186 | "version": "1.2.0", 2187 | "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", 2188 | "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", 2189 | "dev": true 2190 | }, 2191 | "glob": { 2192 | "version": "7.1.7", 2193 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 2194 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 2195 | "dev": true, 2196 | "requires": { 2197 | "fs.realpath": "^1.0.0", 2198 | "inflight": "^1.0.4", 2199 | "inherits": "2", 2200 | "minimatch": "^3.0.4", 2201 | "once": "^1.3.0", 2202 | "path-is-absolute": "^1.0.0" 2203 | } 2204 | }, 2205 | "has": { 2206 | "version": "1.0.3", 2207 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2208 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2209 | "dev": true, 2210 | "requires": { 2211 | "function-bind": "^1.1.1" 2212 | } 2213 | }, 2214 | "hash-base": { 2215 | "version": "3.1.0", 2216 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", 2217 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", 2218 | "requires": { 2219 | "inherits": "^2.0.4", 2220 | "readable-stream": "^3.6.0", 2221 | "safe-buffer": "^5.2.0" 2222 | }, 2223 | "dependencies": { 2224 | "readable-stream": { 2225 | "version": "3.6.0", 2226 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 2227 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 2228 | "requires": { 2229 | "inherits": "^2.0.3", 2230 | "string_decoder": "^1.1.1", 2231 | "util-deprecate": "^1.0.1" 2232 | } 2233 | } 2234 | } 2235 | }, 2236 | "hash.js": { 2237 | "version": "1.1.7", 2238 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 2239 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 2240 | "dev": true, 2241 | "requires": { 2242 | "inherits": "^2.0.3", 2243 | "minimalistic-assert": "^1.0.1" 2244 | } 2245 | }, 2246 | "hmac-drbg": { 2247 | "version": "1.0.1", 2248 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 2249 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 2250 | "dev": true, 2251 | "requires": { 2252 | "hash.js": "^1.0.3", 2253 | "minimalistic-assert": "^1.0.0", 2254 | "minimalistic-crypto-utils": "^1.0.1" 2255 | } 2256 | }, 2257 | "htmlescape": { 2258 | "version": "1.1.1", 2259 | "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", 2260 | "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", 2261 | "dev": true 2262 | }, 2263 | "https-browserify": { 2264 | "version": "1.0.0", 2265 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 2266 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 2267 | "dev": true 2268 | }, 2269 | "ieee754": { 2270 | "version": "1.2.1", 2271 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 2272 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 2273 | "dev": true 2274 | }, 2275 | "inflight": { 2276 | "version": "1.0.6", 2277 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2278 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2279 | "dev": true, 2280 | "requires": { 2281 | "once": "^1.3.0", 2282 | "wrappy": "1" 2283 | } 2284 | }, 2285 | "inherits": { 2286 | "version": "2.0.4", 2287 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2288 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2289 | }, 2290 | "inline-source-map": { 2291 | "version": "0.6.2", 2292 | "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", 2293 | "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", 2294 | "dev": true, 2295 | "requires": { 2296 | "source-map": "~0.5.3" 2297 | } 2298 | }, 2299 | "insert-module-globals": { 2300 | "version": "7.2.1", 2301 | "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", 2302 | "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", 2303 | "dev": true, 2304 | "requires": { 2305 | "acorn-node": "^1.5.2", 2306 | "combine-source-map": "^0.8.0", 2307 | "concat-stream": "^1.6.1", 2308 | "is-buffer": "^1.1.0", 2309 | "JSONStream": "^1.0.3", 2310 | "path-is-absolute": "^1.0.1", 2311 | "process": "~0.11.0", 2312 | "through2": "^2.0.0", 2313 | "undeclared-identifiers": "^1.1.2", 2314 | "xtend": "^4.0.0" 2315 | } 2316 | }, 2317 | "is-buffer": { 2318 | "version": "1.1.6", 2319 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2320 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2321 | "dev": true 2322 | }, 2323 | "is-core-module": { 2324 | "version": "2.4.0", 2325 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", 2326 | "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", 2327 | "dev": true, 2328 | "requires": { 2329 | "has": "^1.0.3" 2330 | } 2331 | }, 2332 | "isarray": { 2333 | "version": "1.0.0", 2334 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2335 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2336 | "dev": true 2337 | }, 2338 | "json-stable-stringify": { 2339 | "version": "0.0.1", 2340 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", 2341 | "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", 2342 | "dev": true, 2343 | "requires": { 2344 | "jsonify": "~0.0.0" 2345 | } 2346 | }, 2347 | "jsonify": { 2348 | "version": "0.0.0", 2349 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2350 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2351 | "dev": true 2352 | }, 2353 | "jsonparse": { 2354 | "version": "1.3.1", 2355 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 2356 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", 2357 | "dev": true 2358 | }, 2359 | "JSONStream": { 2360 | "version": "1.3.5", 2361 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", 2362 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", 2363 | "dev": true, 2364 | "requires": { 2365 | "jsonparse": "^1.2.0", 2366 | "through": ">=2.2.7 <3" 2367 | } 2368 | }, 2369 | "labeled-stream-splicer": { 2370 | "version": "2.0.2", 2371 | "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", 2372 | "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", 2373 | "dev": true, 2374 | "requires": { 2375 | "inherits": "^2.0.1", 2376 | "stream-splicer": "^2.0.0" 2377 | } 2378 | }, 2379 | "lodash.memoize": { 2380 | "version": "3.0.4", 2381 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", 2382 | "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", 2383 | "dev": true 2384 | }, 2385 | "md5.js": { 2386 | "version": "1.3.5", 2387 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 2388 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 2389 | "requires": { 2390 | "hash-base": "^3.0.0", 2391 | "inherits": "^2.0.1", 2392 | "safe-buffer": "^5.1.2" 2393 | } 2394 | }, 2395 | "miller-rabin": { 2396 | "version": "4.0.1", 2397 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 2398 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 2399 | "dev": true, 2400 | "requires": { 2401 | "bn.js": "^4.0.0", 2402 | "brorand": "^1.0.1" 2403 | }, 2404 | "dependencies": { 2405 | "bn.js": { 2406 | "version": "4.12.0", 2407 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 2408 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 2409 | "dev": true 2410 | } 2411 | } 2412 | }, 2413 | "minimalistic-assert": { 2414 | "version": "1.0.1", 2415 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 2416 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", 2417 | "dev": true 2418 | }, 2419 | "minimalistic-crypto-utils": { 2420 | "version": "1.0.1", 2421 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2422 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 2423 | "dev": true 2424 | }, 2425 | "minimatch": { 2426 | "version": "3.0.4", 2427 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2428 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2429 | "dev": true, 2430 | "requires": { 2431 | "brace-expansion": "^1.1.7" 2432 | } 2433 | }, 2434 | "minimist": { 2435 | "version": "1.2.5", 2436 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2437 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2438 | "dev": true 2439 | }, 2440 | "mkdirp-classic": { 2441 | "version": "0.5.3", 2442 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 2443 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", 2444 | "dev": true 2445 | }, 2446 | "module-deps": { 2447 | "version": "6.2.3", 2448 | "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", 2449 | "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", 2450 | "dev": true, 2451 | "requires": { 2452 | "browser-resolve": "^2.0.0", 2453 | "cached-path-relative": "^1.0.2", 2454 | "concat-stream": "~1.6.0", 2455 | "defined": "^1.0.0", 2456 | "detective": "^5.2.0", 2457 | "duplexer2": "^0.1.2", 2458 | "inherits": "^2.0.1", 2459 | "JSONStream": "^1.0.3", 2460 | "parents": "^1.0.0", 2461 | "readable-stream": "^2.0.2", 2462 | "resolve": "^1.4.0", 2463 | "stream-combiner2": "^1.1.1", 2464 | "subarg": "^1.0.0", 2465 | "through2": "^2.0.0", 2466 | "xtend": "^4.0.0" 2467 | } 2468 | }, 2469 | "noble-bls12-381": { 2470 | "version": "0.14.0", 2471 | "resolved": "https://registry.npmjs.org/noble-bls12-381/-/noble-bls12-381-0.14.0.tgz", 2472 | "integrity": "sha512-N0STtQ0t7ImabaMnLZmghtZXPXB0PwushdPBnJL0uaGG6NEFTX8T7DNJTualOCiavIEApbsdY7SSfAF9FPp7rQ==" 2473 | }, 2474 | "object-assign": { 2475 | "version": "4.1.1", 2476 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2477 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2478 | "dev": true 2479 | }, 2480 | "once": { 2481 | "version": "1.4.0", 2482 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2483 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2484 | "dev": true, 2485 | "requires": { 2486 | "wrappy": "1" 2487 | } 2488 | }, 2489 | "os-browserify": { 2490 | "version": "0.3.0", 2491 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 2492 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 2493 | "dev": true 2494 | }, 2495 | "pako": { 2496 | "version": "1.0.11", 2497 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 2498 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", 2499 | "dev": true 2500 | }, 2501 | "parents": { 2502 | "version": "1.0.1", 2503 | "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", 2504 | "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", 2505 | "dev": true, 2506 | "requires": { 2507 | "path-platform": "~0.11.15" 2508 | } 2509 | }, 2510 | "parse-asn1": { 2511 | "version": "5.1.6", 2512 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", 2513 | "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", 2514 | "dev": true, 2515 | "requires": { 2516 | "asn1.js": "^5.2.0", 2517 | "browserify-aes": "^1.0.0", 2518 | "evp_bytestokey": "^1.0.0", 2519 | "pbkdf2": "^3.0.3", 2520 | "safe-buffer": "^5.1.1" 2521 | } 2522 | }, 2523 | "path-browserify": { 2524 | "version": "0.0.1", 2525 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", 2526 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", 2527 | "dev": true 2528 | }, 2529 | "path-is-absolute": { 2530 | "version": "1.0.1", 2531 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2532 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2533 | "dev": true 2534 | }, 2535 | "path-parse": { 2536 | "version": "1.0.7", 2537 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2538 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2539 | "dev": true 2540 | }, 2541 | "path-platform": { 2542 | "version": "0.11.15", 2543 | "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", 2544 | "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", 2545 | "dev": true 2546 | }, 2547 | "pbkdf2": { 2548 | "version": "3.1.2", 2549 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", 2550 | "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", 2551 | "requires": { 2552 | "create-hash": "^1.1.2", 2553 | "create-hmac": "^1.1.4", 2554 | "ripemd160": "^2.0.1", 2555 | "safe-buffer": "^5.0.1", 2556 | "sha.js": "^2.4.8" 2557 | } 2558 | }, 2559 | "process": { 2560 | "version": "0.11.10", 2561 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 2562 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 2563 | "dev": true 2564 | }, 2565 | "process-nextick-args": { 2566 | "version": "2.0.1", 2567 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 2568 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 2569 | "dev": true 2570 | }, 2571 | "public-encrypt": { 2572 | "version": "4.0.3", 2573 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", 2574 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", 2575 | "dev": true, 2576 | "requires": { 2577 | "bn.js": "^4.1.0", 2578 | "browserify-rsa": "^4.0.0", 2579 | "create-hash": "^1.1.0", 2580 | "parse-asn1": "^5.0.0", 2581 | "randombytes": "^2.0.1", 2582 | "safe-buffer": "^5.1.2" 2583 | }, 2584 | "dependencies": { 2585 | "bn.js": { 2586 | "version": "4.12.0", 2587 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 2588 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", 2589 | "dev": true 2590 | } 2591 | } 2592 | }, 2593 | "punycode": { 2594 | "version": "1.4.1", 2595 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2596 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 2597 | "dev": true 2598 | }, 2599 | "querystring": { 2600 | "version": "0.2.0", 2601 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 2602 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 2603 | "dev": true 2604 | }, 2605 | "querystring-es3": { 2606 | "version": "0.2.1", 2607 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 2608 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 2609 | "dev": true 2610 | }, 2611 | "randombytes": { 2612 | "version": "2.1.0", 2613 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 2614 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 2615 | "requires": { 2616 | "safe-buffer": "^5.1.0" 2617 | } 2618 | }, 2619 | "randomfill": { 2620 | "version": "1.0.4", 2621 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 2622 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 2623 | "dev": true, 2624 | "requires": { 2625 | "randombytes": "^2.0.5", 2626 | "safe-buffer": "^5.1.0" 2627 | } 2628 | }, 2629 | "read-only-stream": { 2630 | "version": "2.0.0", 2631 | "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", 2632 | "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", 2633 | "dev": true, 2634 | "requires": { 2635 | "readable-stream": "^2.0.2" 2636 | } 2637 | }, 2638 | "readable-stream": { 2639 | "version": "2.3.7", 2640 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2641 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2642 | "dev": true, 2643 | "requires": { 2644 | "core-util-is": "~1.0.0", 2645 | "inherits": "~2.0.3", 2646 | "isarray": "~1.0.0", 2647 | "process-nextick-args": "~2.0.0", 2648 | "safe-buffer": "~5.1.1", 2649 | "string_decoder": "~1.1.1", 2650 | "util-deprecate": "~1.0.1" 2651 | }, 2652 | "dependencies": { 2653 | "safe-buffer": { 2654 | "version": "5.1.2", 2655 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2656 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2657 | "dev": true 2658 | }, 2659 | "string_decoder": { 2660 | "version": "1.1.1", 2661 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2662 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2663 | "dev": true, 2664 | "requires": { 2665 | "safe-buffer": "~5.1.0" 2666 | } 2667 | } 2668 | } 2669 | }, 2670 | "resolve": { 2671 | "version": "1.20.0", 2672 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 2673 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 2674 | "dev": true, 2675 | "requires": { 2676 | "is-core-module": "^2.2.0", 2677 | "path-parse": "^1.0.6" 2678 | } 2679 | }, 2680 | "ripemd160": { 2681 | "version": "2.0.2", 2682 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 2683 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 2684 | "requires": { 2685 | "hash-base": "^3.0.0", 2686 | "inherits": "^2.0.1" 2687 | } 2688 | }, 2689 | "safe-buffer": { 2690 | "version": "5.2.1", 2691 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2692 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 2693 | }, 2694 | "safer-buffer": { 2695 | "version": "2.1.2", 2696 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2697 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 2698 | "dev": true 2699 | }, 2700 | "sha.js": { 2701 | "version": "2.4.11", 2702 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 2703 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 2704 | "requires": { 2705 | "inherits": "^2.0.1", 2706 | "safe-buffer": "^5.0.1" 2707 | } 2708 | }, 2709 | "shasum": { 2710 | "version": "1.0.2", 2711 | "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", 2712 | "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", 2713 | "dev": true, 2714 | "requires": { 2715 | "json-stable-stringify": "~0.0.0", 2716 | "sha.js": "~2.4.4" 2717 | } 2718 | }, 2719 | "shasum-object": { 2720 | "version": "1.0.0", 2721 | "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", 2722 | "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", 2723 | "dev": true, 2724 | "requires": { 2725 | "fast-safe-stringify": "^2.0.7" 2726 | } 2727 | }, 2728 | "shell-quote": { 2729 | "version": "1.7.2", 2730 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", 2731 | "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", 2732 | "dev": true 2733 | }, 2734 | "simple-concat": { 2735 | "version": "1.0.1", 2736 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 2737 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", 2738 | "dev": true 2739 | }, 2740 | "source-map": { 2741 | "version": "0.5.7", 2742 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2743 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2744 | "dev": true 2745 | }, 2746 | "source-map-support": { 2747 | "version": "0.5.19", 2748 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 2749 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 2750 | "dev": true, 2751 | "requires": { 2752 | "buffer-from": "^1.0.0", 2753 | "source-map": "^0.6.0" 2754 | }, 2755 | "dependencies": { 2756 | "source-map": { 2757 | "version": "0.6.1", 2758 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2759 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2760 | "dev": true 2761 | } 2762 | } 2763 | }, 2764 | "stream-browserify": { 2765 | "version": "2.0.2", 2766 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", 2767 | "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", 2768 | "dev": true, 2769 | "requires": { 2770 | "inherits": "~2.0.1", 2771 | "readable-stream": "^2.0.2" 2772 | } 2773 | }, 2774 | "stream-combiner2": { 2775 | "version": "1.1.1", 2776 | "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", 2777 | "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", 2778 | "dev": true, 2779 | "requires": { 2780 | "duplexer2": "~0.1.0", 2781 | "readable-stream": "^2.0.2" 2782 | } 2783 | }, 2784 | "stream-http": { 2785 | "version": "3.2.0", 2786 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", 2787 | "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", 2788 | "dev": true, 2789 | "requires": { 2790 | "builtin-status-codes": "^3.0.0", 2791 | "inherits": "^2.0.4", 2792 | "readable-stream": "^3.6.0", 2793 | "xtend": "^4.0.2" 2794 | }, 2795 | "dependencies": { 2796 | "readable-stream": { 2797 | "version": "3.6.0", 2798 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 2799 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 2800 | "dev": true, 2801 | "requires": { 2802 | "inherits": "^2.0.3", 2803 | "string_decoder": "^1.1.1", 2804 | "util-deprecate": "^1.0.1" 2805 | } 2806 | } 2807 | } 2808 | }, 2809 | "stream-splicer": { 2810 | "version": "2.0.1", 2811 | "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", 2812 | "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", 2813 | "dev": true, 2814 | "requires": { 2815 | "inherits": "^2.0.1", 2816 | "readable-stream": "^2.0.2" 2817 | } 2818 | }, 2819 | "string_decoder": { 2820 | "version": "1.3.0", 2821 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 2822 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 2823 | "requires": { 2824 | "safe-buffer": "~5.2.0" 2825 | } 2826 | }, 2827 | "subarg": { 2828 | "version": "1.0.0", 2829 | "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", 2830 | "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", 2831 | "dev": true, 2832 | "requires": { 2833 | "minimist": "^1.1.0" 2834 | } 2835 | }, 2836 | "syntax-error": { 2837 | "version": "1.4.0", 2838 | "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", 2839 | "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", 2840 | "dev": true, 2841 | "requires": { 2842 | "acorn-node": "^1.2.0" 2843 | } 2844 | }, 2845 | "terser": { 2846 | "version": "5.7.1", 2847 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", 2848 | "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", 2849 | "dev": true, 2850 | "requires": { 2851 | "commander": "^2.20.0", 2852 | "source-map": "~0.7.2", 2853 | "source-map-support": "~0.5.19" 2854 | }, 2855 | "dependencies": { 2856 | "source-map": { 2857 | "version": "0.7.3", 2858 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 2859 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 2860 | "dev": true 2861 | } 2862 | } 2863 | }, 2864 | "through": { 2865 | "version": "2.3.8", 2866 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2867 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2868 | "dev": true 2869 | }, 2870 | "through2": { 2871 | "version": "2.0.5", 2872 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 2873 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 2874 | "dev": true, 2875 | "requires": { 2876 | "readable-stream": "~2.3.6", 2877 | "xtend": "~4.0.1" 2878 | } 2879 | }, 2880 | "timers-browserify": { 2881 | "version": "1.4.2", 2882 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", 2883 | "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", 2884 | "dev": true, 2885 | "requires": { 2886 | "process": "~0.11.0" 2887 | } 2888 | }, 2889 | "tty-browserify": { 2890 | "version": "0.0.1", 2891 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", 2892 | "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", 2893 | "dev": true 2894 | }, 2895 | "typedarray": { 2896 | "version": "0.0.6", 2897 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2898 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 2899 | "dev": true 2900 | }, 2901 | "umd": { 2902 | "version": "3.0.3", 2903 | "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", 2904 | "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", 2905 | "dev": true 2906 | }, 2907 | "undeclared-identifiers": { 2908 | "version": "1.1.3", 2909 | "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", 2910 | "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", 2911 | "dev": true, 2912 | "requires": { 2913 | "acorn-node": "^1.3.0", 2914 | "dash-ast": "^1.0.0", 2915 | "get-assigned-identifiers": "^1.2.0", 2916 | "simple-concat": "^1.0.0", 2917 | "xtend": "^4.0.1" 2918 | } 2919 | }, 2920 | "url": { 2921 | "version": "0.11.0", 2922 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 2923 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 2924 | "dev": true, 2925 | "requires": { 2926 | "punycode": "1.3.2", 2927 | "querystring": "0.2.0" 2928 | }, 2929 | "dependencies": { 2930 | "punycode": { 2931 | "version": "1.3.2", 2932 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 2933 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 2934 | "dev": true 2935 | } 2936 | } 2937 | }, 2938 | "util": { 2939 | "version": "0.10.4", 2940 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 2941 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 2942 | "dev": true, 2943 | "requires": { 2944 | "inherits": "2.0.3" 2945 | }, 2946 | "dependencies": { 2947 | "inherits": { 2948 | "version": "2.0.3", 2949 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2950 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2951 | "dev": true 2952 | } 2953 | } 2954 | }, 2955 | "util-deprecate": { 2956 | "version": "1.0.2", 2957 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2958 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2959 | }, 2960 | "vm-browserify": { 2961 | "version": "1.1.2", 2962 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", 2963 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", 2964 | "dev": true 2965 | }, 2966 | "wrappy": { 2967 | "version": "1.0.2", 2968 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2969 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2970 | "dev": true 2971 | }, 2972 | "xtend": { 2973 | "version": "4.0.2", 2974 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 2975 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 2976 | "dev": true 2977 | } 2978 | } 2979 | } 2980 | -------------------------------------------------------------------------------- /libs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eip2333-tool-external-libs", 3 | "version": "0.1.0", 4 | "scripts": { 5 | "build": "browserify index.js --standalone libs | terser -c > ../src/js/eip2333-libs.js" 6 | }, 7 | "dependencies": { 8 | "bip39": "^3.0.3", 9 | "bls12-381-keygen": "^0.1.4", 10 | "noble-bls12-381": "^0.14.0" 11 | }, 12 | "devDependencies": { 13 | "browserify": "^16.2.3", 14 | "terser": "^5.6.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/readme.md: -------------------------------------------------------------------------------- 1 | # Generate libs 2 | 3 | ``` 4 | npm install 5 | npm run build 6 | ``` 7 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # EIP2333 Tool 2 | 3 | A tool for generating EIP2333 BLS12-381 keys. 4 | 5 | ## Online Version 6 | 7 | https://iancoleman.io/eip2333/ 8 | 9 | ## Standalone offline version 10 | 11 | Download `eip2333-standalone.html` from 12 | [the releases](https://github.com/iancoleman/eip2333-tool/releases). 13 | 14 | Open the file in a browser by double clicking it. 15 | 16 | This can be compiled from source using the command `python compile.py` 17 | 18 | # License 19 | 20 | This tool is released under the terms of the MIT license. See LICENSE for 21 | more information or see https://opensource.org/licenses/MIT. 22 | -------------------------------------------------------------------------------- /src/css/app.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-bottom: 32px; 3 | } 4 | .version { 5 | position: absolute; 6 | top: 5px; 7 | right: 5px; 8 | } 9 | .languages a { 10 | padding-left: 10px; 11 | } 12 | .languages a:nth-of-type(1) { 13 | margin-left: -12px; 14 | padding-left: 0; 15 | } 16 | .no-border { 17 | border: 0; 18 | box-shadow: inset 0 1px 1px rgba(0,0,0,.0); 19 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.0); 20 | } 21 | .mono { 22 | font-family: mono; 23 | } 24 | #mnemonic { 25 | word-break: keep-all; 26 | } 27 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EIP2333 - BLS12-381 Key Generator 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |

EIP2333 Key Generator

17 |
18 |

19 | It's safest to use this tool offline, 20 | see how. 21 |

22 |

v0.3.0

23 |
24 |
25 |
26 |

Key Derivation

27 |
28 |
29 |
30 |
31 |

32 | EIP2333 Keys can be generated from a BIP39 mnemonic, or a seed, or a master secret key. 33 |

34 |

35 | For more info see the 36 | EIP2333 spec. 37 |

38 |
39 |
40 |
41 | 42 |
43 |
44 |
45 | Generate a random mnemonic: 46 | 47 | 54 | words, or enter your own below. 55 | 60 |
61 |
62 |
63 |
64 |
65 | 66 |
67 |
68 | English 69 | 日本語 70 | Español 71 | 中文(简体) 72 | 中文(繁體) 73 | Français 74 | Italiano 75 | 한국어 76 | Čeština 77 | 78 |
79 |
80 |
81 |
82 | 83 |
84 | 85 |
86 |
87 |
88 | 89 |
90 | 91 |
92 |
93 |
94 |
95 | 96 |
97 | 98 |
99 |
100 |
101 |
102 | 103 |
104 | 105 |
106 |
107 |
108 | 109 |
110 | 111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |

Derived Keys

119 |
120 |
121 | 122 |
123 | 124 |
125 |
126 |
127 |
128 |
129 | 130 |
131 |

132 | Simple child keys (click to use) 133 | m/i 134 |

135 |

136 | EIP2334 Validator key paths: 137 |

138 | 152 |
153 |
154 |
155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 |
PathPublic KeySecret Key
166 |
167 | Show 168 | 169 | 170 | starting at index 171 | 172 | (leave blank to generate from next index) 173 |
174 |
175 |
176 |
177 |
178 |
179 |

Offline Use

180 |

181 | You can use this tool without having to be online. 182 |

183 |

184 | In your browser, select file save-as, and save this page 185 | as a file. 186 |

187 |

188 | Double-click that file to open it in a browser 189 | on any offline computer. 190 |

191 |

192 | Alternatively, download the file from the latest GitHub release 193 | - 194 | https://github.com/iancoleman/eip2333-tool/releases/latest/ 195 |

196 |

This project is 100% open-source code

197 |

198 | Get the source code from the repository 199 | - 200 | 201 | https://github.com/iancoleman/eip2333-tool 202 | 203 |

204 |

Libraries

205 |

206 | This tool uses several third-party libraries, all 207 | open source. 208 |

209 |

210 | The list of libraries used by this tool can be found in 211 | 212 | libs/package.json 213 | 214 |

215 |

216 | The list of all dependencies of those libraries can be found in 217 | 218 | libs/package-lock.json 219 | 220 |

221 |

222 | 223 | paulmillr/bls12-381-keygen 224 | 225 |

226 |

227 | 228 | bitcoinjs/bip39 229 | 230 |

231 |

232 | 233 | paulmillr/noble-bls12-381 234 | 235 |

236 |
237 |
238 |
239 | 240 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | -------------------------------------------------------------------------------- /src/js/app.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | let DOM = {}; 4 | let currentTableIndex = -1; 5 | 6 | function init() { 7 | loadDom(); 8 | setEvents(); 9 | } 10 | 11 | function loadDom() { 12 | DOM.generate = byId("generate"); 13 | DOM.masterPublicKey = byId("master-public-key"); 14 | DOM.masterSecretKey = byId("master-secret-key"); 15 | DOM.mnemonic = byId("mnemonic"); 16 | DOM.passphrase = byId("passphrase"); 17 | DOM.strength = byId("strength"); 18 | DOM.seed = byId("seed"); 19 | DOM.derivedKeys = byId("derived-keys"); 20 | DOM.keyRow = byId("key-row"); 21 | DOM.path = byId("path"); 22 | DOM.suggestedPaths = document.querySelectorAll(".suggested-path"); 23 | DOM.moreRows = byId("more-rows"); 24 | DOM.numRows = byId("num-rows"); 25 | DOM.startIndex = byId("start-index"); 26 | DOM.languages = document.querySelectorAll(".languages a"); 27 | } 28 | 29 | function setEvents() { 30 | debounce(DOM.mnemonic, "input", mnemonicChanged); 31 | DOM.generate.addEventListener("click", generate); 32 | debounce(DOM.passphrase, "input", processMnemonic); 33 | debounce(DOM.seed, "input", seedChanged); 34 | debounce(DOM.masterSecretKey, "input", masterSecretKeyChanged); 35 | debounce(DOM.path, "input", pathChanged); 36 | DOM.moreRows.addEventListener("click", showRows); 37 | DOM.suggestedPaths.forEach(function(e, i) { 38 | e.addEventListener("click", setSuggestedPath); 39 | }); 40 | DOM.languages.forEach(function(e, i) { 41 | e.addEventListener("click", languageChanged); 42 | }); 43 | } 44 | 45 | // Event handlers 46 | function generate(e, language) { 47 | if (e) { 48 | e.preventDefault(); 49 | } 50 | if (!language) { 51 | language = getLanguage(); 52 | } 53 | libs.bip39.setDefaultWordlist(language); 54 | let strength = parseInt(DOM.strength.value); 55 | let mnemonic = libs.bip39.generateMnemonic(strength); 56 | DOM.mnemonic.value = mnemonic; 57 | processMnemonic(); 58 | } 59 | 60 | function mnemonicChanged(e) { 61 | e.preventDefault(); 62 | processMnemonic(); 63 | } 64 | 65 | function languageChanged(e) { 66 | let hasMnemonic = DOM.mnemonic.value.length > 0; 67 | if (hasMnemonic) { 68 | fromLang = libs.bip39.getDefaultWordlist(); 69 | let toLang = e.target.getAttribute("href").substring(1); 70 | libs.bip39.setDefaultWordlist(toLang); 71 | let oldMnemonic = DOM.mnemonic.value; 72 | newMnemonic = convertMnemonicLanguage(oldMnemonic, fromLang, toLang); 73 | DOM.mnemonic.value = newMnemonic; 74 | processMnemonic(); 75 | } 76 | else { 77 | let toLang = e.target.getAttribute("href").substring(1); 78 | generate(null, toLang); 79 | } 80 | } 81 | 82 | function processMnemonic() { 83 | let mnemonic = DOM.mnemonic.value.trim(); 84 | // TODO verify? 85 | let passphrase = DOM.passphrase.value; 86 | seed = libs.bip39.mnemonicToSeedSync(mnemonic, passphrase); 87 | let seedHex = bytesToHex(seed); 88 | DOM.seed.value = seedHex; 89 | seedChanged(); 90 | } 91 | 92 | function seedChanged(e) { 93 | // warn user before erasing an existing mnemonic 94 | if (e && DOM.mnemonic.value.length > 0) { 95 | if (!confirm("This will erase any existing mnemonic and passphrase. Continue?")) { 96 | processMnemonic(); // revert seed from previous mnemonic+passphrase 97 | return; 98 | } 99 | DOM.mnemonic.value = ""; 100 | DOM.passphrase.value = ""; 101 | } 102 | let seedHex = DOM.seed.value; 103 | let seed = hexToBytes(seedHex); 104 | let masterSecretKey = libs.blskeygen.deriveMaster(seed); 105 | DOM.masterSecretKey.value = bytesToHex(masterSecretKey).padStart(64, "0"); 106 | masterSecretKeyChanged(); 107 | } 108 | 109 | function masterSecretKeyChanged(e) { 110 | // warn user before erasing any existing data 111 | if (e && DOM.seed.value.length > 0) { 112 | if (!confirm("This will erase any existing mnemonic, passphrase and seed. Continue?")) { 113 | seedChanged(); // revert master secret key from previous seed 114 | return; 115 | } 116 | DOM.mnemonic.value = ""; 117 | DOM.passphrase.value = ""; 118 | DOM.seed.value = ""; 119 | } 120 | let masterSecretKey = hexToBytes(DOM.masterSecretKey.value); 121 | let masterPublicKey = libs.noblebls.getPublicKey(masterSecretKey); 122 | DOM.masterPublicKey.value = bytesToHex(masterPublicKey).padStart(96, "0"); 123 | clearTable(); 124 | showRows(); 125 | } 126 | 127 | function pathChanged(e) { 128 | if (e) { 129 | e.preventDefault(); 130 | } 131 | clearTable(); 132 | showRows(); 133 | } 134 | 135 | function setSuggestedPath(e) { 136 | e.preventDefault(); 137 | let path = e.target.textContent; 138 | DOM.path.value = path; 139 | pathChanged(); 140 | } 141 | 142 | function showRows() { 143 | let rowsToAdd = parseInt(DOM.numRows.value); 144 | let startIndex = parseInt(DOM.startIndex.value) || currentTableIndex + 1; 145 | let masterSecretKey = hexToBytes(DOM.masterSecretKey.value); 146 | // TODO validate masterSecretKey 147 | let template = DOM.keyRow.innerHTML; 148 | let path = DOM.path.value; 149 | for (let i=startIndex; i -1) { 184 | return language; 185 | } 186 | } 187 | return "english"; 188 | } 189 | 190 | function byId(id) { 191 | return document.getElementById(id); 192 | } 193 | 194 | // https://stackoverflow.com/a/34356351 195 | function hexToBytes(hex) { 196 | let bytes = new Uint8Array(hex.length/2); 197 | for (let c = 0; c < hex.length; c += 2) 198 | bytes[c/2] = parseInt(hex.substr(c, 2), 16); 199 | return bytes; 200 | } 201 | function bytesToHex(bytes) { 202 | for (var hex = [], i = 0; i < bytes.length; i++) { 203 | var current = bytes[i] < 0 ? bytes[i] + 256 : bytes[i]; 204 | hex.push((current >>> 4).toString(16)); 205 | hex.push((current & 0xF).toString(16)); 206 | } 207 | return hex.join(""); 208 | } 209 | 210 | function clearTable() { 211 | DOM.derivedKeys.innerHTML = ""; 212 | currentTableIndex = -1; 213 | DOM.startIndex.value = "" 214 | } 215 | 216 | function getIndices(path) { 217 | let indices = []; 218 | let bits = path.split("/"); 219 | for (let i=0; i=0.10.0" 132 | } 133 | }, 134 | "node_modules/process-nextick-args": { 135 | "version": "2.0.1", 136 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 137 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 138 | }, 139 | "node_modules/readable-stream": { 140 | "version": "2.3.7", 141 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 142 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 143 | "dependencies": { 144 | "core-util-is": "~1.0.0", 145 | "inherits": "~2.0.3", 146 | "isarray": "~1.0.0", 147 | "process-nextick-args": "~2.0.0", 148 | "safe-buffer": "~5.1.1", 149 | "string_decoder": "~1.1.1", 150 | "util-deprecate": "~1.0.1" 151 | } 152 | }, 153 | "node_modules/rimraf": { 154 | "version": "2.7.1", 155 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 156 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 157 | "dependencies": { 158 | "glob": "^7.1.3" 159 | }, 160 | "bin": { 161 | "rimraf": "bin.js" 162 | } 163 | }, 164 | "node_modules/safe-buffer": { 165 | "version": "5.1.2", 166 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 167 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 168 | }, 169 | "node_modules/selenium-webdriver": { 170 | "version": "4.0.0-beta.1", 171 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.1.tgz", 172 | "integrity": "sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ==", 173 | "dependencies": { 174 | "jszip": "^3.5.0", 175 | "rimraf": "^2.7.1", 176 | "tmp": "^0.2.1", 177 | "ws": "^7.3.1" 178 | }, 179 | "engines": { 180 | "node": ">= 10.15.0" 181 | } 182 | }, 183 | "node_modules/set-immediate-shim": { 184 | "version": "1.0.1", 185 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 186 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 187 | "engines": { 188 | "node": ">=0.10.0" 189 | } 190 | }, 191 | "node_modules/string_decoder": { 192 | "version": "1.1.1", 193 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 194 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 195 | "dependencies": { 196 | "safe-buffer": "~5.1.0" 197 | } 198 | }, 199 | "node_modules/tmp": { 200 | "version": "0.2.1", 201 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 202 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 203 | "dependencies": { 204 | "rimraf": "^3.0.0" 205 | }, 206 | "engines": { 207 | "node": ">=8.17.0" 208 | } 209 | }, 210 | "node_modules/tmp/node_modules/rimraf": { 211 | "version": "3.0.2", 212 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 213 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 214 | "dependencies": { 215 | "glob": "^7.1.3" 216 | }, 217 | "bin": { 218 | "rimraf": "bin.js" 219 | }, 220 | "funding": { 221 | "url": "https://github.com/sponsors/isaacs" 222 | } 223 | }, 224 | "node_modules/util-deprecate": { 225 | "version": "1.0.2", 226 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 227 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 228 | }, 229 | "node_modules/wrappy": { 230 | "version": "1.0.2", 231 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 232 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 233 | }, 234 | "node_modules/ws": { 235 | "version": "7.4.4", 236 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", 237 | "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", 238 | "engines": { 239 | "node": ">=8.3.0" 240 | }, 241 | "peerDependencies": { 242 | "bufferutil": "^4.0.1", 243 | "utf-8-validate": "^5.0.2" 244 | }, 245 | "peerDependenciesMeta": { 246 | "bufferutil": { 247 | "optional": true 248 | }, 249 | "utf-8-validate": { 250 | "optional": true 251 | } 252 | } 253 | } 254 | }, 255 | "dependencies": { 256 | "balanced-match": { 257 | "version": "1.0.0", 258 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 259 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 260 | }, 261 | "brace-expansion": { 262 | "version": "1.1.11", 263 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 264 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 265 | "requires": { 266 | "balanced-match": "^1.0.0", 267 | "concat-map": "0.0.1" 268 | } 269 | }, 270 | "concat-map": { 271 | "version": "0.0.1", 272 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 273 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 274 | }, 275 | "core-util-is": { 276 | "version": "1.0.2", 277 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 278 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 279 | }, 280 | "fs.realpath": { 281 | "version": "1.0.0", 282 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 283 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 284 | }, 285 | "glob": { 286 | "version": "7.1.6", 287 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 288 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 289 | "requires": { 290 | "fs.realpath": "^1.0.0", 291 | "inflight": "^1.0.4", 292 | "inherits": "2", 293 | "minimatch": "^3.0.4", 294 | "once": "^1.3.0", 295 | "path-is-absolute": "^1.0.0" 296 | } 297 | }, 298 | "immediate": { 299 | "version": "3.0.6", 300 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", 301 | "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" 302 | }, 303 | "inflight": { 304 | "version": "1.0.6", 305 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 306 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 307 | "requires": { 308 | "once": "^1.3.0", 309 | "wrappy": "1" 310 | } 311 | }, 312 | "inherits": { 313 | "version": "2.0.4", 314 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 315 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 316 | }, 317 | "isarray": { 318 | "version": "1.0.0", 319 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 320 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 321 | }, 322 | "jszip": { 323 | "version": "3.6.0", 324 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz", 325 | "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==", 326 | "requires": { 327 | "lie": "~3.3.0", 328 | "pako": "~1.0.2", 329 | "readable-stream": "~2.3.6", 330 | "set-immediate-shim": "~1.0.1" 331 | } 332 | }, 333 | "lie": { 334 | "version": "3.3.0", 335 | "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", 336 | "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", 337 | "requires": { 338 | "immediate": "~3.0.5" 339 | } 340 | }, 341 | "minimatch": { 342 | "version": "3.0.4", 343 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 344 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 345 | "requires": { 346 | "brace-expansion": "^1.1.7" 347 | } 348 | }, 349 | "once": { 350 | "version": "1.4.0", 351 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 352 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 353 | "requires": { 354 | "wrappy": "1" 355 | } 356 | }, 357 | "pako": { 358 | "version": "1.0.11", 359 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 360 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" 361 | }, 362 | "path-is-absolute": { 363 | "version": "1.0.1", 364 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 365 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 366 | }, 367 | "process-nextick-args": { 368 | "version": "2.0.1", 369 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 370 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 371 | }, 372 | "readable-stream": { 373 | "version": "2.3.7", 374 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 375 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 376 | "requires": { 377 | "core-util-is": "~1.0.0", 378 | "inherits": "~2.0.3", 379 | "isarray": "~1.0.0", 380 | "process-nextick-args": "~2.0.0", 381 | "safe-buffer": "~5.1.1", 382 | "string_decoder": "~1.1.1", 383 | "util-deprecate": "~1.0.1" 384 | } 385 | }, 386 | "rimraf": { 387 | "version": "2.7.1", 388 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 389 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 390 | "requires": { 391 | "glob": "^7.1.3" 392 | } 393 | }, 394 | "safe-buffer": { 395 | "version": "5.1.2", 396 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 397 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 398 | }, 399 | "selenium-webdriver": { 400 | "version": "4.0.0-beta.1", 401 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-beta.1.tgz", 402 | "integrity": "sha512-DJ10z6Yk+ZBaLrt1CLElytQ/FOayx29ANKDtmtyW1A6kCJx3+dsc5fFMOZxwzukDniyYsC3OObT5pUAsgkjpxQ==", 403 | "requires": { 404 | "jszip": "^3.5.0", 405 | "rimraf": "^2.7.1", 406 | "tmp": "^0.2.1", 407 | "ws": "^7.3.1" 408 | } 409 | }, 410 | "set-immediate-shim": { 411 | "version": "1.0.1", 412 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 413 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" 414 | }, 415 | "string_decoder": { 416 | "version": "1.1.1", 417 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 418 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 419 | "requires": { 420 | "safe-buffer": "~5.1.0" 421 | } 422 | }, 423 | "tmp": { 424 | "version": "0.2.1", 425 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 426 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 427 | "requires": { 428 | "rimraf": "^3.0.0" 429 | }, 430 | "dependencies": { 431 | "rimraf": { 432 | "version": "3.0.2", 433 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 434 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 435 | "requires": { 436 | "glob": "^7.1.3" 437 | } 438 | } 439 | } 440 | }, 441 | "util-deprecate": { 442 | "version": "1.0.2", 443 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 444 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 445 | }, 446 | "wrappy": { 447 | "version": "1.0.2", 448 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 449 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 450 | }, 451 | "ws": { 452 | "version": "7.4.4", 453 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", 454 | "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", 455 | "requires": {} 456 | } 457 | } 458 | } 459 | -------------------------------------------------------------------------------- /tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "selenium-webdriver": "^4.0.0-beta.1" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/readme.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | ```sh 4 | npm install --global jasmine 5 | npm install selenium-webdriver 6 | # make sure the correct selenium driver is installed, eg chromedriver or geckodriver 7 | ``` 8 | 9 | # Run tests 10 | 11 | ``` 12 | jasmine spec/tests.js 13 | ``` 14 | -------------------------------------------------------------------------------- /tests/spec/support/jasmine.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec_dir": "spec", 3 | "spec_files": [ 4 | "**/*[sS]pec.js" 5 | ], 6 | "helpers": [ 7 | "helpers/**/*.js" 8 | ], 9 | "stopSpecOnExpectationFailure": false, 10 | "random": false 11 | } 12 | -------------------------------------------------------------------------------- /tests/spec/tests.js: -------------------------------------------------------------------------------- 1 | // Usage: 2 | // cd /path/to/repo/tests 3 | // jasmine spec/tests.js 4 | // 5 | // see /path/to/repo/tests/readme.md for more info 6 | 7 | // USER SPECIFIED OPTIONS 8 | var browser = process.env.BROWSER; //"firefox"; // or "chrome" 9 | if (!browser) { 10 | console.log("Browser can be set via environment variable, eg"); 11 | console.log("BROWSER=firefox jasmine spec/tests.js"); 12 | console.log("Options for BROWSER are firefox chrome"); 13 | console.log("Using default browser: chrome"); 14 | browser = "chrome"; 15 | } 16 | else { 17 | console.log("Using browser: " + browser); 18 | } 19 | 20 | // Globals 21 | 22 | var webdriver = require('selenium-webdriver'); 23 | var By = webdriver.By; 24 | var Key = webdriver.Key; 25 | var until = webdriver.until; 26 | var newDriver = null; 27 | var driver = null; 28 | var generateDelay = 1500; // milliseconds 29 | 30 | // url uses file:// scheme 31 | var path = require('path') 32 | var parentDir = path.resolve(process.cwd(), '..', 'src', 'index.html'); 33 | var url = "file://" + parentDir; 34 | if (browser == "firefox") { 35 | // TODO loading local html in firefox is broken 36 | console.log("Loading local html in firefox is broken, see https://stackoverflow.com/q/46367054"); 37 | console.log("You must run a server in this case, ie do this:"); 38 | console.log("$ cd /path/to/eip2333-tool/src"); 39 | console.log("$ python -m http.server"); 40 | url = "http://localhost:8000"; 41 | } 42 | 43 | // Variables dependent on specific browser selection 44 | 45 | if (browser == "firefox") { 46 | var firefox = require('selenium-webdriver/firefox'); 47 | var options = new firefox.Options().setBinary(firefox.Channel.NIGHTLY); 48 | options.addArguments("-headless"); 49 | newDriver = function() { 50 | return new webdriver.Builder() 51 | .forBrowser('firefox') 52 | .setFirefoxOptions(options) 53 | .build(); 54 | } 55 | } 56 | else if (browser == "chrome") { 57 | var chrome = require('selenium-webdriver/chrome'); 58 | newDriver = function() { 59 | return new webdriver.Builder() 60 | .forBrowser('chrome') 61 | .setChromeOptions(new chrome.Options().addArguments("headless")) 62 | .build(); 63 | } 64 | } 65 | 66 | // Tests 67 | 68 | describe('EIP2333 Tool Tests', function() { 69 | 70 | beforeEach(function(done) { 71 | driver = newDriver(); 72 | driver.get(url).then(done); 73 | }); 74 | 75 | // Close the website after each test is run (so that it is opened fresh each time) 76 | afterEach(function(done) { 77 | driver.quit().then(done); 78 | }); 79 | 80 | // BEGIN TESTS 81 | 82 | // Page initially loads with blank phrase 83 | it('Should load the page', function(done) { 84 | driver.findElement(By.css('#mnemonic')) 85 | .getAttribute('value').then(function(value) { 86 | expect(value).toBe(''); 87 | done(); 88 | }); 89 | }); 90 | 91 | // Page has text 92 | it('Should have text on the page', function(done) { 93 | driver.findElement(By.css('body')) 94 | .getText() 95 | .then(function(text) { 96 | var textToFind = "EIP2333 Keys can be generated from a BIP39 mnemonic, or a seed, or a master secret key."; 97 | expect(text).toContain(textToFind); 98 | done(); 99 | }); 100 | }); 101 | 102 | // Entering mnemonic generates keys 103 | it('Should have a list of keys', function(done) { 104 | driver.findElement(By.css('#mnemonic')) 105 | .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); 106 | driver.sleep(generateDelay).then(function() { 107 | driver.findElements(By.css('.public')) 108 | .then(function(els) { 109 | expect(els.length).toBe(20); 110 | done(); 111 | }) 112 | }); 113 | }); 114 | 115 | // Generate button generates random mnemonic 116 | it('Should be able to generate a random mnemonic', function(done) { 117 | // initial phrase is blank 118 | driver.findElement(By.css('#mnemonic')) 119 | .getAttribute("value") 120 | .then(function(phrase) { 121 | expect(phrase.length).toBe(0); 122 | // press generate 123 | driver.findElement(By.css('#generate')).click(); 124 | driver.sleep(generateDelay).then(function() { 125 | // new phrase is not blank 126 | driver.findElement(By.css('#mnemonic')) 127 | .getAttribute("value") 128 | .then(function(phrase) { 129 | expect(phrase.length).toBeGreaterThan(0); 130 | done(); 131 | }); 132 | }); 133 | }); 134 | }); 135 | 136 | // Mnemonic length can be customized 137 | it('Should allow custom length mnemonics', function(done) { 138 | // set strength to 12 words, 128 bits 139 | driver.executeScript(function() { 140 | document.querySelectorAll("#strength option[selected]")[0].removeAttribute("selected"); 141 | document.querySelectorAll("#strength option[value='128']")[0].setAttribute("selected", true); 142 | }); 143 | driver.findElement(By.css('#generate')).click(); 144 | driver.sleep(generateDelay).then(function() { 145 | driver.findElement(By.css('#mnemonic')) 146 | .getAttribute("value") 147 | .then(function(phrase) { 148 | var words = phrase.split(/\s+/g); 149 | expect(words.length).toBe(12); 150 | done(); 151 | }); 152 | }); 153 | }); 154 | 155 | // EIP2333 Test Case 0 156 | // https://eips.ethereum.org/EIPS/eip-2333#test-cases 157 | it('Passes EIP2333 Test Case 0', function(done) { 158 | driver.findElement(By.css('#mnemonic')) 159 | .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); 160 | driver.findElement(By.css('#passphrase')) 161 | .sendKeys('TREZOR'); 162 | driver.sleep(generateDelay).then(function() { 163 | driver.findElements(By.css('#seed')).then(function(seedEl) { 164 | seedEl[0].getAttribute("value").then(function(seed) { 165 | expect(seed).toBe("c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04"); 166 | driver.findElements(By.css('#master-secret-key')).then(function(mskEl) { 167 | mskEl[0].getAttribute("value").then(function(msk) { 168 | expect(msk).toBe("0d7359d57963ab8fbbde1852dcf553fedbc31f464d80ee7d40ae683122b45070"); 169 | driver.findElements(By.css('.path')).then(function(paths) { 170 | paths[0].getText().then(function(path) { 171 | expect(path).toBe("m/0"); 172 | driver.findElements(By.css('.secret')).then(function(sks) { 173 | sks[0].getText().then(function(sk) { 174 | expect(sk).toBe("2d18bd6c14e6d15bf8b5085c9b74f3daae3b03cc2014770a599d8c1539e50f8e"); 175 | done(); 176 | }); 177 | }); 178 | }); 179 | }); 180 | }); 181 | }); 182 | }); 183 | }); 184 | }); 185 | }); 186 | 187 | // EIP2333 Test Case 1 188 | // https://eips.ethereum.org/EIPS/eip-2333#test-cases 189 | it('Passes EIP2333 Test Case 1', function(done) { 190 | driver.findElement(By.css('#seed')) 191 | .sendKeys('3141592653589793238462643383279502884197169399375105820974944592'); 192 | driver.sleep(generateDelay).then(function() { 193 | driver.findElement(By.css('#start-index')) 194 | .sendKeys('3141592653'); 195 | driver.findElement(By.css('#num-rows')) 196 | .clear(); 197 | driver.findElement(By.css('#num-rows')) 198 | .sendKeys('1'); 199 | driver.findElement(By.css('#more-rows')) 200 | .click(); 201 | driver.findElements(By.css('#master-secret-key')).then(function(mskEl) { 202 | mskEl[0].getAttribute("value").then(function(msk) { 203 | expect(msk).toBe("41c9e07822b092a93fd6797396338c3ada4170cc81829fdfce6b5d34bd5e7ec7"); 204 | driver.findElements(By.css('.path')).then(function(paths) { 205 | paths[paths.length-1].getText().then(function(path) { 206 | expect(path).toBe("m/3141592653"); 207 | driver.findElements(By.css('.secret')).then(function(sks) { 208 | sks[sks.length-1].getText().then(function(sk) { 209 | expect(sk).toBe("384843fad5f3d777ea39de3e47a8f999ae91f89e42bffa993d91d9782d152a0f"); 210 | done(); 211 | }); 212 | }); 213 | }); 214 | }); 215 | }); 216 | }); 217 | }); 218 | }); 219 | 220 | // EIP2333 Test Case 2 221 | // https://eips.ethereum.org/EIPS/eip-2333#test-cases 222 | it('Passes EIP2333 Test Case 2', function(done) { 223 | driver.findElement(By.css('#seed')) 224 | .sendKeys('0099FF991111002299DD7744EE3355BBDD8844115566CC55663355668888CC00'); 225 | driver.sleep(generateDelay).then(function() { 226 | driver.findElement(By.css('#start-index')) 227 | .sendKeys('4294967295'); 228 | driver.findElement(By.css('#num-rows')) 229 | .clear(); 230 | driver.findElement(By.css('#num-rows')) 231 | .sendKeys('1'); 232 | driver.findElement(By.css('#more-rows')) 233 | .click(); 234 | driver.findElements(By.css('#master-secret-key')).then(function(mskEl) { 235 | mskEl[0].getAttribute("value").then(function(msk) { 236 | expect(msk).toBe("3cfa341ab3910a7d00d933d8f7c4fe87c91798a0397421d6b19fd5b815132e80"); 237 | driver.findElements(By.css('.path')).then(function(paths) { 238 | paths[paths.length-1].getText().then(function(path) { 239 | expect(path).toBe("m/4294967295"); 240 | driver.findElements(By.css('.secret')).then(function(sks) { 241 | sks[sks.length-1].getText().then(function(sk) { 242 | expect(sk).toBe("40e86285582f35b28821340f6a53b448588efa575bc4d88c32ef8567b8d9479b"); 243 | done(); 244 | }); 245 | }); 246 | }); 247 | }); 248 | }); 249 | }); 250 | }); 251 | }); 252 | 253 | // EIP2333 Test Case 3 254 | // https://eips.ethereum.org/EIPS/eip-2333#test-cases 255 | it('Passes EIP2333 Test Case 3', function(done) { 256 | driver.findElement(By.css('#seed')) 257 | .sendKeys('d4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3'); 258 | driver.sleep(generateDelay).then(function() { 259 | driver.findElement(By.css('#start-index')) 260 | .sendKeys('42'); 261 | driver.findElement(By.css('#num-rows')) 262 | .clear(); 263 | driver.findElement(By.css('#num-rows')) 264 | .sendKeys('1'); 265 | driver.findElement(By.css('#more-rows')) 266 | .click(); 267 | driver.findElements(By.css('#master-secret-key')).then(function(mskEl) { 268 | mskEl[0].getAttribute("value").then(function(msk) { 269 | expect(msk).toBe("2a0e28ffa5fbbe2f8e7aad4ed94f745d6bf755c51182e119bb1694fe61d3afca"); 270 | driver.findElements(By.css('.path')).then(function(paths) { 271 | paths[paths.length-1].getText().then(function(path) { 272 | expect(path).toBe("m/42"); 273 | driver.findElements(By.css('.secret')).then(function(sks) { 274 | sks[sks.length-1].getText().then(function(sk) { 275 | expect(sk).toBe("455c0dc9fccb3395825d92a60d2672d69416be1c2578a87a7a3d3ced11ebb88d"); 276 | done(); 277 | }); 278 | }); 279 | }); 280 | }); 281 | }); 282 | }); 283 | }); 284 | }); 285 | 286 | // Secret key is left padded correctly 287 | it('Secret key is left padded correctly', function(done) { 288 | driver.findElement(By.css('#mnemonic')) 289 | .sendKeys('ride start reform mouse struggle catch poet setup slight wife decrease pass foster essence tennis'); 290 | driver.sleep(generateDelay).then(function() { 291 | driver.findElements(By.css('.secret')).then(function(sks) { 292 | sks[13].getText().then(function(sk) { 293 | expect(sk).not.toBe("e018421ddc2f1530403a00a5fe5f3c0ed2cf49ad8e200f97c6ac51afbaef86"); 294 | expect(sk).toBe("00e018421ddc2f1530403a00a5fe5f3c0ed2cf49ad8e200f97c6ac51afbaef86"); 295 | done(); 296 | }); 297 | }); 298 | }); 299 | }); 300 | 301 | // Selecting a language without an existing mnemonic will generate a random one 302 | // in that language 303 | it('generates a random mnemonic if blank and a language is selected', function(done) { 304 | driver.findElement(By.css("a[href='#korean']")) 305 | .click(); 306 | driver.sleep(generateDelay).then(function() { 307 | driver.findElements(By.css('#mnemonic')).then(function(mnemonicEl) { 308 | mnemonicEl[0].getAttribute("value").then(function(mnemonic) { 309 | // A mnemonic is generated 310 | expect(mnemonic.length).toBeGreaterThan(0); 311 | // Korean mnemonics do not contain characters a-z 312 | expect(mnemonic.match(/[a-z]+/)).toBeNull(); 313 | done(); 314 | }); 315 | }); 316 | }); 317 | }); 318 | 319 | // Changing language keeps the same index for each word 320 | it('changing language keeps the same index for each word', function(done) { 321 | driver.findElement(By.css('#mnemonic')) 322 | .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); 323 | driver.findElement(By.css("a[href='#italian']")) 324 | .click(); 325 | driver.findElements(By.css('#mnemonic')).then(function(mnemonicEl) { 326 | mnemonicEl[0].getAttribute("value").then(function(mnemonic) { 327 | expect(mnemonic).toBe("abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abaco abete"); 328 | done(); 329 | }); 330 | }); 331 | }); 332 | 333 | // Changing language changes the seed 334 | it('changing language changes the seed', function(done) { 335 | driver.findElement(By.css('#mnemonic')) 336 | .sendKeys('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'); 337 | driver.findElements(By.css('#seed')).then(function(seedEl) { 338 | seedEl[0].getAttribute("value").then(function(originalSeed) { 339 | driver.findElement(By.css("a[href='#italian']")) 340 | .click(); 341 | driver.findElements(By.css('#seed')).then(function(newSeedEl) { 342 | newSeedEl[0].getAttribute("value").then(function(newSeed) { 343 | expect(newSeed).not.toBe(originalSeed); 344 | done(); 345 | }); 346 | }); 347 | }); 348 | }); 349 | }); 350 | 351 | 352 | // Github issue 2 353 | // https://github.com/iancoleman/eip2333-tool/issues/2 354 | // Mnemonic gives invalid master secret key, 63 chars 355 | it('shows the correct secret key that does not work in v0.1.2 in github releases', function(done) { 356 | driver.findElement(By.css('#mnemonic')) 357 | .sendKeys('enough fever tattoo rich walnut engage spin course example witness loan exhaust retire always brush'); 358 | driver.sleep(generateDelay).then(function() { 359 | driver.findElements(By.css('#master-secret-key')).then(function(mskEl) { 360 | mskEl[0].getAttribute("value").then(function(msk) { 361 | expect(msk).toBe("0073427a557244603962453d4c3971646d560333a0d1518619399419e006c34b"); 362 | done(); 363 | }); 364 | }); 365 | }); 366 | }); 367 | 368 | }); 369 | --------------------------------------------------------------------------------