diff --git a/package-lock.json b/package-lock.json index 66626fdca..8a78086de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,11 @@ { "name": "bitburner", - "version": "0.56.0", + "version": "0.58.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "bitburner", - "version": "0.56.0", + "version": "0.58.0", "hasInstallScript": true, "license": "SEE LICENSE IN license.txt", "dependencies": { @@ -17,7 +16,6 @@ "@mui/material": "^5.0.3", "@mui/styles": "^5.0.1", "@types/escodegen": "^0.0.7", - "@types/js-beautify": "^1.13.2", "@types/numeral": "0.0.25", "@types/react": "^17.0.21", "@types/react-dom": "^17.0.9", @@ -36,6 +34,7 @@ "monaco-editor": "^0.27.0", "notistack": "^2.0.2", "numeral": "2.0.6", + "raw-loader": "^4.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-draggable": "^4.4.4", @@ -63,7 +62,6 @@ "html-webpack-plugin": "^3.2.0", "http-server": "^13.0.1", "jest": "^27.1.0", - "js-beautify": "^1.5.10", "jsdom": "^15.0.0", "lodash": "^4.17.21", "mini-css-extract-plugin": "^0.4.1", @@ -3716,16 +3714,10 @@ "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/js-beautify": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@types/js-beautify/-/js-beautify-1.13.3.tgz", - "integrity": "sha512-ucIPw5gmNyvRKi6mpeojlqp+T+6ZBJeU+kqMDnIEDlijEU4QhLTon90sZ3cz9HZr+QTwXILjNsMZImzA7+zuJA==" - }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, "node_modules/@types/lodash": { "version": "4.14.175", @@ -4083,7 +4075,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, "dependencies": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -4093,26 +4084,22 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" }, "node_modules/@webassemblyjs/helper-code-frame": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, "dependencies": { "@webassemblyjs/wast-printer": "1.9.0" } @@ -4120,14 +4107,12 @@ "node_modules/@webassemblyjs/helper-fsm": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" }, "node_modules/@webassemblyjs/helper-module-context": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0" } @@ -4135,14 +4120,12 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -4154,7 +4137,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -4163,7 +4145,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -4171,14 +4152,12 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -4194,7 +4173,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -4207,7 +4185,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -4219,7 +4196,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -4233,7 +4209,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/floating-point-hex-parser": "1.9.0", @@ -4247,7 +4222,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -4257,14 +4231,12 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/abab": { "version": "2.0.5", @@ -4272,12 +4244,6 @@ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -4379,7 +4345,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4395,7 +4360,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, "peerDependencies": { "ajv": ">=5.0.0" } @@ -4404,7 +4368,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -4481,7 +4444,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, + "devOptional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4493,8 +4456,7 @@ "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "node_modules/arch": { "version": "2.2.0", @@ -4553,7 +4515,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4562,7 +4523,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4571,7 +4531,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4610,7 +4569,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4669,7 +4627,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -4680,14 +4637,12 @@ "node_modules/asn1.js/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" @@ -4705,14 +4660,12 @@ "node_modules/assert/node_modules/inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" }, "node_modules/assert/node_modules/util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, "dependencies": { "inherits": "2.0.1" } @@ -4721,7 +4674,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4748,7 +4700,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "devOptional": true }, "node_modules/async-limiter": { "version": "1.0.1", @@ -4775,7 +4727,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, "bin": { "atob": "bin/atob.js" }, @@ -5076,14 +5027,12 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -5101,7 +5050,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -5113,7 +5061,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -5168,7 +5115,6 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, "engines": { "node": "*" } @@ -5177,7 +5123,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -5186,7 +5132,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" @@ -5201,14 +5146,12 @@ "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "node_modules/body-parser": { "version": "1.19.0", @@ -5295,7 +5238,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5305,7 +5247,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "devOptional": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -5316,8 +5258,7 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "node_modules/browser-process-hrtime": { "version": "1.0.0", @@ -5329,7 +5270,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -5343,7 +5283,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -5354,7 +5293,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -5366,7 +5304,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" @@ -5376,7 +5313,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, "dependencies": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", @@ -5393,7 +5329,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5407,7 +5342,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -5427,7 +5361,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -5436,7 +5369,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, "dependencies": { "pako": "~1.0.5" } @@ -5476,7 +5408,6 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -5517,8 +5448,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/buffer-indexof": { "version": "1.1.1", @@ -5529,20 +5459,17 @@ "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "node_modules/buffer/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "node_modules/bytes": { "version": "3.0.0", @@ -5557,7 +5484,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -5707,7 +5633,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, + "devOptional": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5727,14 +5653,12 @@ "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, "engines": { "node": ">=6.0" } @@ -5755,7 +5679,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -5771,7 +5694,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -5786,7 +5708,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -5798,7 +5719,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -5810,7 +5730,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -5821,14 +5740,12 @@ "node_modules/class-utils/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/class-utils/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -5840,7 +5757,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -5852,7 +5768,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -5866,7 +5781,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5999,7 +5913,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -6075,8 +5988,7 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "node_modules/compare-version": { "version": "0.1.2", @@ -6090,8 +6002,7 @@ "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "node_modules/compressible": { "version": "2.0.18", @@ -6141,14 +6052,12 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "engines": [ "node >= 0.8" ], @@ -6162,14 +6071,12 @@ "node_modules/concat-stream/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/concat-stream/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6184,7 +6091,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -6194,6 +6100,7 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "optional": true, "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -6203,7 +6110,8 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "optional": true }, "node_modules/connect-history-api-fallback": { "version": "1.6.0", @@ -6218,7 +6126,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, "dependencies": { "date-now": "^0.1.4" } @@ -6226,8 +6133,7 @@ "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "node_modules/content-disposition": { "version": "0.5.3", @@ -6277,7 +6183,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -6291,7 +6196,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6311,7 +6215,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -6323,7 +6226,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6407,7 +6309,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -6416,14 +6317,12 @@ "node_modules/create-ecdh/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -6436,7 +6335,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -6488,7 +6386,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -6639,8 +6536,7 @@ "node_modules/cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, "node_modules/cypress": { "version": "8.6.0", @@ -6816,8 +6712,7 @@ "node_modules/date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, "node_modules/dayjs": { "version": "1.10.7", @@ -6859,7 +6754,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, "engines": { "node": ">=0.10" } @@ -7066,7 +6960,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -7202,7 +7095,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -7251,7 +7143,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -7261,8 +7152,7 @@ "node_modules/diffie-hellman/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/dir-glob": { "version": "3.0.1", @@ -7341,7 +7231,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, "engines": { "node": ">=0.4", "npm": ">=1.2" @@ -7372,7 +7261,6 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -7383,14 +7271,12 @@ "node_modules/duplexify/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/duplexify/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7405,7 +7291,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -7420,36 +7305,6 @@ "safer-buffer": "^2.1.0" } }, - "node_modules/editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "bin": { - "editorconfig": "bin/editorconfig" - } - }, - "node_modules/editorconfig/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/editorconfig/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7636,7 +7491,6 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -7650,8 +7504,7 @@ "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emittery": { "version": "0.8.1", @@ -7675,7 +7528,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, "engines": { "node": ">= 4" } @@ -7693,7 +7545,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -7702,7 +7553,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -7715,14 +7565,12 @@ "node_modules/enhanced-resolve/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/enhanced-resolve/node_modules/memory-fs": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -7735,7 +7583,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7750,7 +7597,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -7780,7 +7626,6 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, "dependencies": { "prr": "~1.0.1" }, @@ -8284,7 +8129,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -8296,7 +8140,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, "engines": { "node": ">=4.0" } @@ -8357,7 +8200,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -8378,7 +8220,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -8432,7 +8273,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -8450,7 +8290,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -8459,7 +8298,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -8471,7 +8309,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -8483,7 +8320,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -8495,7 +8331,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -8506,14 +8341,12 @@ "node_modules/expand-brackets/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/expand-brackets/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -8525,7 +8358,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -8537,7 +8369,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -8551,7 +8382,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8560,7 +8390,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8568,8 +8397,7 @@ "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/expand-tilde": { "version": "2.0.2", @@ -8699,7 +8527,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -8712,7 +8539,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -8731,7 +8557,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -8743,7 +8568,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -8755,7 +8579,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8792,8 +8615,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.7", @@ -8814,8 +8636,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -8864,8 +8685,7 @@ "node_modules/figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, "node_modules/figures": { "version": "3.2.0", @@ -8912,7 +8732,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, "optional": true }, "node_modules/filename-reserved-regex": { @@ -8945,7 +8764,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -9243,7 +9062,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -9252,14 +9070,12 @@ "node_modules/flush-write-stream/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/flush-write-stream/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9274,7 +9090,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -9303,7 +9118,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9524,7 +9338,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "dependencies": { "map-cache": "^0.2.2" }, @@ -9551,7 +9364,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -9560,14 +9372,12 @@ "node_modules/from2/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/from2/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9582,7 +9392,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -9612,7 +9421,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -9623,14 +9431,12 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -9805,7 +9611,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9838,7 +9643,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "devOptional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -10057,8 +9862,7 @@ "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "node_modules/handle-thing": { "version": "2.0.1", @@ -10148,7 +9952,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -10162,7 +9965,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -10174,14 +9976,12 @@ "node_modules/has-values/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -10193,7 +9993,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -10205,7 +10004,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -10217,7 +10015,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -10231,7 +10028,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10245,7 +10041,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -10265,7 +10060,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -10274,7 +10068,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -10293,7 +10086,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -10745,8 +10537,7 @@ "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "node_modules/https-proxy-agent": { "version": "5.0.0", @@ -10791,7 +10582,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -10810,8 +10600,7 @@ "node_modules/iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "node_modules/ignore": { "version": "5.1.8", @@ -10870,7 +10659,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -10887,14 +10675,12 @@ "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -10978,7 +10764,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -11023,7 +10808,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -11086,7 +10871,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -11113,7 +10897,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -11142,7 +10925,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, @@ -11154,7 +10936,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -11181,7 +10963,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -11226,7 +11008,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -11292,7 +11074,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -11407,7 +11188,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -11427,8 +11207,7 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "node_modules/isbinaryfile": { "version": "3.0.3", @@ -11452,7 +11231,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -13688,61 +13466,6 @@ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" }, - "node_modules/js-beautify": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", - "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", - "dev": true, - "dependencies": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "nopt": "^5.0.0" - }, - "bin": { - "css-beautify": "js/bin/css-beautify.js", - "html-beautify": "js/bin/html-beautify.js", - "js-beautify": "js/bin/js-beautify.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/js-beautify/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/js-beautify/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -13858,8 +13581,7 @@ "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -13875,8 +13597,7 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -13900,7 +13621,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, "dependencies": { "minimist": "^1.2.0" }, @@ -14083,7 +13803,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14202,7 +13921,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } @@ -14211,7 +13929,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -14491,16 +14208,6 @@ "node": ">=0.10.0" } }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "node_modules/lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -14538,7 +14245,6 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14553,7 +14259,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "dependencies": { "object-visit": "^1.0.0" }, @@ -14631,7 +14336,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -14663,7 +14367,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -14672,14 +14375,12 @@ "node_modules/memory-fs/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/memory-fs/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14694,7 +14395,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -14751,7 +14451,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -14763,8 +14462,7 @@ "node_modules/miller-rabin/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/mime": { "version": "1.6.0", @@ -14851,20 +14549,17 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -14881,7 +14576,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -14899,7 +14593,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -14916,7 +14609,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, "dependencies": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -14930,7 +14622,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14950,7 +14641,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -14986,14 +14676,12 @@ "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, "optional": true }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -15029,8 +14717,7 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/nice-try": { "version": "1.0.5", @@ -15066,7 +14753,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, "dependencies": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -15096,20 +14782,17 @@ "node_modules/node-libs-browser/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/node-libs-browser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "node_modules/node-libs-browser/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15124,7 +14807,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -15133,7 +14815,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -15142,7 +14823,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -15197,7 +14877,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -15322,7 +15002,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -15336,7 +15015,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -15348,7 +15026,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -15359,14 +15036,12 @@ "node_modules/object-copy/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/object-copy/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -15378,7 +15053,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -15392,7 +15066,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15401,7 +15074,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -15447,7 +15119,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "dependencies": { "isobject": "^3.0.0" }, @@ -15494,7 +15165,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -15533,7 +15203,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -15642,8 +15311,7 @@ "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "node_modules/ospath": { "version": "1.2.2", @@ -15730,7 +15398,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, "engines": { "node": ">=6" } @@ -15744,7 +15411,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, "dependencies": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -15754,14 +15420,12 @@ "node_modules/parallel-transform/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/parallel-transform/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15776,7 +15440,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -15805,7 +15468,6 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", @@ -15871,7 +15533,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15879,14 +15540,13 @@ "node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "devOptional": true }, "node_modules/path-exists": { "version": "4.0.0", @@ -15901,7 +15561,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15947,7 +15606,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -15980,7 +15638,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -16146,7 +15804,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -16234,7 +15891,6 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, "engines": { "node": ">= 0.6.0" } @@ -16256,8 +15912,7 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "node_modules/prompts": { "version": "2.4.2", @@ -16291,7 +15946,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true + "dev": true, + "optional": true }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -16315,8 +15971,7 @@ "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "node_modules/ps-tree": { "version": "1.2.0", @@ -16333,12 +15988,6 @@ "node": ">= 0.10" } }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -16349,7 +15998,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -16362,14 +16010,12 @@ "node_modules/public-encrypt/node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -16379,7 +16025,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -16390,7 +16035,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -16400,7 +16044,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, "engines": { "node": ">=6" } @@ -16419,7 +16062,6 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, "engines": { "node": ">=0.4.x" } @@ -16428,7 +16070,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, "engines": { "node": ">=0.4.x" } @@ -16469,7 +16110,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -16478,7 +16118,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -16517,6 +16156,52 @@ "node": ">= 0.8" } }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/raw-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/raw-loader/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/rcedit": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", @@ -16718,7 +16403,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -16730,7 +16414,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -16774,7 +16458,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -16868,7 +16551,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "devOptional": true }, "node_modules/renderkid": { "version": "2.0.7", @@ -16991,7 +16674,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -17000,7 +16682,6 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, "engines": { "node": ">=0.10" } @@ -17207,8 +16888,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "deprecated": "https://github.com/lydell/resolve-url#deprecated" }, "node_modules/responselike": { "version": "1.0.2", @@ -17236,7 +16916,6 @@ "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, "engines": { "node": ">=0.12" } @@ -17299,7 +16978,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -17350,7 +17028,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, "dependencies": { "aproba": "^1.1.1" } @@ -17376,7 +17053,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "dependencies": { "ret": "~0.1.10" } @@ -17384,8 +17060,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/saxes": { "version": "3.1.11", @@ -17412,7 +17087,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -17629,7 +17303,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -17644,7 +17317,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -17656,7 +17328,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -17664,8 +17335,7 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "node_modules/setprototypeof": { "version": "1.1.1", @@ -17677,7 +17347,6 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -17721,12 +17390,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "node_modules/signal-exit": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", @@ -17799,7 +17462,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -17818,7 +17480,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -17832,7 +17493,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -17844,7 +17504,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "dependencies": { "kind-of": "^3.2.0" }, @@ -17855,14 +17514,12 @@ "node_modules/snapdragon-util/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -17874,7 +17531,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -17883,7 +17539,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -17895,7 +17550,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -17907,7 +17561,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -17919,7 +17572,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -17930,14 +17582,12 @@ "node_modules/snapdragon/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/snapdragon/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -17949,7 +17599,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -17961,7 +17610,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -17975,7 +17623,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -17984,7 +17631,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -17992,14 +17638,12 @@ "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/snapdragon/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -18041,8 +17685,7 @@ "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "node_modules/source-map": { "version": "0.7.3", @@ -18057,7 +17700,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -18070,7 +17712,6 @@ "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -18080,7 +17721,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -18088,8 +17728,7 @@ "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, "node_modules/spdx-correct": { "version": "3.1.1", @@ -18233,7 +17872,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "dependencies": { "extend-shallow": "^3.0.0" }, @@ -18374,7 +18012,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -18387,7 +18024,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -18399,7 +18035,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -18411,7 +18046,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -18422,14 +18056,12 @@ "node_modules/static-extend/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/static-extend/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -18441,7 +18073,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -18453,7 +18084,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -18467,7 +18097,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -18494,7 +18123,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, "dependencies": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -18503,14 +18131,12 @@ "node_modules/stream-browserify/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/stream-browserify/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -18525,7 +18151,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -18543,7 +18168,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -18553,7 +18177,6 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -18565,14 +18188,12 @@ "node_modules/stream-http/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/stream-http/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -18587,7 +18208,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -18595,14 +18215,12 @@ "node_modules/stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, "node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "node_modules/string-length": { "version": "4.0.2", @@ -18890,7 +18508,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, "engines": { "node": ">=6" } @@ -18915,7 +18532,6 @@ "version": "4.8.0", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -18932,7 +18548,6 @@ "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -18955,7 +18570,6 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -18978,7 +18592,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -18992,7 +18605,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "dependencies": { "locate-path": "^3.0.0" }, @@ -19004,7 +18616,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -19024,7 +18635,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, "engines": { "node": ">=4" } @@ -19033,7 +18643,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -19046,7 +18655,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -19055,7 +18663,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -19068,7 +18675,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, "dependencies": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -19089,7 +18695,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -19104,7 +18709,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "dependencies": { "p-limit": "^2.0.0" }, @@ -19116,7 +18720,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, "engines": { "node": ">=4" } @@ -19125,7 +18728,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, "engines": { "node": ">=6" } @@ -19134,7 +18736,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, "dependencies": { "find-up": "^3.0.0" }, @@ -19146,7 +18747,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -19158,7 +18758,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -19172,7 +18771,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, "bin": { "semver": "bin/semver" } @@ -19181,7 +18779,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -19190,7 +18787,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19199,7 +18795,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, "dependencies": { "figgy-pudding": "^3.5.1" } @@ -19207,20 +18802,17 @@ "node_modules/terser-webpack-plugin/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/terser/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19287,7 +18879,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -19296,14 +18887,12 @@ "node_modules/through2/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -19318,7 +18907,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -19333,7 +18921,6 @@ "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, "dependencies": { "setimmediate": "^1.0.4" }, @@ -19367,8 +18954,7 @@ "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -19382,7 +18968,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -19393,14 +18978,12 @@ "node_modules/to-object-path/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -19421,7 +19004,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -19436,7 +19018,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -19526,8 +19108,7 @@ "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, "node_modules/tunnel": { "version": "0.0.6", @@ -19606,8 +19187,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", @@ -19733,7 +19313,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -19748,7 +19327,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19757,7 +19335,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, "dependencies": { "unique-slug": "^2.0.0" } @@ -19766,7 +19343,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, "dependencies": { "imurmurhash": "^0.1.4" } @@ -19793,7 +19369,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -19806,7 +19381,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -19820,7 +19394,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "dependencies": { "isarray": "1.0.0" }, @@ -19832,7 +19405,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19840,8 +19412,7 @@ "node_modules/unset-value/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/untildify": { "version": "4.0.0", @@ -19856,7 +19427,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, + "devOptional": true, "engines": { "node": ">=4", "yarn": "*" @@ -19872,7 +19443,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -19881,14 +19451,12 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true + "deprecated": "Please see https://github.com/lydell/urix#deprecated" }, "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -19925,14 +19493,12 @@ "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -19941,7 +19507,6 @@ "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, "dependencies": { "inherits": "2.0.3" } @@ -19964,8 +19529,7 @@ "node_modules/util/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "node_modules/utila": { "version": "0.4.0", @@ -20054,8 +19618,7 @@ "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, "node_modules/w3c-hr-time": { "version": "1.0.2", @@ -20124,7 +19687,6 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" @@ -20138,7 +19700,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, "optional": true, "dependencies": { "chokidar": "^2.1.8" @@ -20148,7 +19709,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, "optional": true, "dependencies": { "micromatch": "^3.1.4", @@ -20159,7 +19719,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, "optional": true, "dependencies": { "remove-trailing-separator": "^1.0.1" @@ -20172,7 +19731,6 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, "optional": true, "engines": { "node": ">=0.10.0" @@ -20182,7 +19740,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "optional": true, "dependencies": { "arr-flatten": "^1.1.0", @@ -20204,7 +19761,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" @@ -20218,7 +19774,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, "optional": true, "dependencies": { "anymatch": "^2.0.0", @@ -20241,7 +19796,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "optional": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -20257,7 +19811,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" @@ -20271,7 +19824,6 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -20289,7 +19841,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, "optional": true, "dependencies": { "is-glob": "^3.1.0", @@ -20300,7 +19851,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, "optional": true, "dependencies": { "is-extglob": "^2.1.0" @@ -20313,7 +19863,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, "optional": true, "dependencies": { "binary-extensions": "^1.0.0" @@ -20326,14 +19875,12 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, "optional": true }, "node_modules/watchpack-chokidar2/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "optional": true, "engines": { "node": ">=0.10.0" @@ -20343,7 +19890,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" @@ -20356,7 +19902,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" @@ -20369,14 +19914,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, "optional": true }, "node_modules/watchpack-chokidar2/node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "optional": true, "dependencies": { "arr-diff": "^4.0.0", @@ -20401,7 +19944,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "optional": true, "dependencies": { "core-util-is": "~1.0.0", @@ -20417,7 +19959,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.11", @@ -20432,7 +19973,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "optional": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -20442,7 +19982,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "optional": true, "dependencies": { "is-number": "^3.0.0", @@ -20471,7 +20010,6 @@ "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -21561,7 +21099,6 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -21571,7 +21108,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -21580,7 +21116,6 @@ "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -21592,7 +21127,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -21613,7 +21147,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -21625,7 +21158,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -21638,7 +21170,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -21653,7 +21184,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -21664,14 +21194,12 @@ "node_modules/webpack/node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/webpack/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -21680,7 +21208,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -21692,7 +21219,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -21704,7 +21230,6 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -21728,7 +21253,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -21742,7 +21266,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -21854,7 +21377,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, "dependencies": { "errno": "~0.1.7" } @@ -21912,8 +21434,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -21981,7 +21502,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, "engines": { "node": ">=0.4" } @@ -21989,14 +21509,7 @@ "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "node_modules/yaml": { "version": "1.10.2", @@ -24615,16 +24128,10 @@ "@types/istanbul-lib-report": "*" } }, - "@types/js-beautify": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@types/js-beautify/-/js-beautify-1.13.3.tgz", - "integrity": "sha512-ucIPw5gmNyvRKi6mpeojlqp+T+6ZBJeU+kqMDnIEDlijEU4QhLTon90sZ3cz9HZr+QTwXILjNsMZImzA7+zuJA==" - }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, "@types/lodash": { "version": "4.14.175", @@ -24894,7 +24401,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, "requires": { "@webassemblyjs/helper-module-context": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -24904,26 +24410,22 @@ "@webassemblyjs/floating-point-hex-parser": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" }, "@webassemblyjs/helper-api-error": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" }, "@webassemblyjs/helper-buffer": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" }, "@webassemblyjs/helper-code-frame": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, "requires": { "@webassemblyjs/wast-printer": "1.9.0" } @@ -24931,14 +24433,12 @@ "@webassemblyjs/helper-fsm": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" }, "@webassemblyjs/helper-module-context": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0" } @@ -24946,14 +24446,12 @@ "@webassemblyjs/helper-wasm-bytecode": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" }, "@webassemblyjs/helper-wasm-section": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -24965,7 +24463,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } @@ -24974,7 +24471,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, "requires": { "@xtuc/long": "4.2.2" } @@ -24982,14 +24478,12 @@ "@webassemblyjs/utf8": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" }, "@webassemblyjs/wasm-edit": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -25005,7 +24499,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-wasm-bytecode": "1.9.0", @@ -25018,7 +24511,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-buffer": "1.9.0", @@ -25030,7 +24522,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-api-error": "1.9.0", @@ -25044,7 +24535,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/floating-point-hex-parser": "1.9.0", @@ -25058,7 +24548,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/wast-parser": "1.9.0", @@ -25068,14 +24557,12 @@ "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "abab": { "version": "2.0.5", @@ -25083,12 +24570,6 @@ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -25163,7 +24644,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -25175,14 +24655,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, "requires": {} }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "requires": {} }, "ansi-colors": { @@ -25230,7 +24708,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, + "devOptional": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -25239,8 +24717,7 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "arch": { "version": "2.2.0", @@ -25283,20 +24760,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-equal": { "version": "1.0.0", @@ -25325,8 +24799,7 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "asar": { "version": "3.1.0", @@ -25370,7 +24843,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -25381,8 +24853,7 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -25390,7 +24861,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, "requires": { "object-assign": "^4.1.1", "util": "0.10.3" @@ -25399,14 +24869,12 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, "requires": { "inherits": "2.0.1" } @@ -25422,8 +24890,7 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "astral-regex": { "version": "2.0.0", @@ -25444,7 +24911,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "devOptional": true }, "async-limiter": { "version": "1.0.1", @@ -25467,8 +24934,7 @@ "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "author-regex": { "version": "1.0.0", @@ -25696,14 +25162,12 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -25718,7 +25182,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -25728,8 +25191,7 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "basic-auth": { "version": "1.1.0", @@ -25763,20 +25225,18 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "devOptional": true }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, "optional": true, "requires": { "file-uri-to-path": "1.0.0" @@ -25791,14 +25251,12 @@ "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "body-parser": { "version": "1.19.0", @@ -25878,7 +25336,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -25888,7 +25345,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "devOptional": true, "requires": { "fill-range": "^7.0.1" } @@ -25896,8 +25353,7 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browser-process-hrtime": { "version": "1.0.0", @@ -25909,7 +25365,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -25923,7 +25378,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -25934,7 +25388,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -25946,7 +25399,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, "requires": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" @@ -25956,7 +25408,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", @@ -25973,7 +25424,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -25983,14 +25433,12 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -26001,7 +25449,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, "requires": { "pako": "~1.0.5" } @@ -26031,7 +25478,6 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -26041,8 +25487,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -26077,8 +25522,7 @@ "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "buffer-indexof": { "version": "1.1.1", @@ -26089,14 +25533,12 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "bytes": { "version": "3.0.0", @@ -26108,7 +25550,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -26225,7 +25666,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, + "devOptional": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -26240,14 +25681,12 @@ "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" }, "chromium-pickle-js": { "version": "0.2.0", @@ -26265,7 +25704,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -26281,7 +25719,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -26293,7 +25730,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -26302,7 +25738,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -26311,7 +25746,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -26321,14 +25755,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -26337,7 +25769,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -26348,7 +25779,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -26358,8 +25788,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -26463,7 +25892,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -26524,8 +25952,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "compare-version": { "version": "0.1.2", @@ -26536,8 +25963,7 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "compressible": { "version": "2.0.18", @@ -26583,14 +26009,12 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -26601,14 +26025,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -26623,7 +26045,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -26635,6 +26056,7 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "optional": true, "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -26644,7 +26066,8 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "optional": true } } }, @@ -26658,7 +26081,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, "requires": { "date-now": "^0.1.4" } @@ -26666,8 +26088,7 @@ "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "content-disposition": { "version": "0.5.3", @@ -26708,7 +26129,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -26722,7 +26142,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -26736,7 +26155,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -26746,8 +26164,7 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "3.18.3", @@ -26807,7 +26224,6 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -26816,8 +26232,7 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -26825,7 +26240,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -26838,7 +26252,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -26874,7 +26287,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -26993,8 +26405,7 @@ "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, "cypress": { "version": "8.6.0", @@ -27137,8 +26548,7 @@ "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, "dayjs": { "version": "1.10.7", @@ -27168,8 +26578,7 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "3.3.0", @@ -27330,7 +26739,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -27434,7 +26842,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -27474,7 +26881,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -27484,8 +26890,7 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -27559,8 +26964,7 @@ "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "domexception": { "version": "1.0.1", @@ -27587,7 +26991,6 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -27598,14 +27001,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -27620,7 +27021,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -27637,32 +27037,6 @@ "safer-buffer": "^2.1.0" } }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -27817,7 +27191,6 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -27831,8 +27204,7 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -27851,8 +27223,7 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "encodeurl": { "version": "1.0.2", @@ -27864,7 +27235,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -27873,7 +27243,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -27883,14 +27252,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "memory-fs": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -27900,7 +27267,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -27915,7 +27281,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -27941,7 +27306,6 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, "requires": { "prr": "~1.0.1" } @@ -28310,7 +27674,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "requires": { "estraverse": "^5.2.0" }, @@ -28318,8 +27681,7 @@ "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" } } }, @@ -28369,8 +27731,7 @@ "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "eventsource": { "version": "1.1.0", @@ -28385,7 +27746,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -28427,7 +27787,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -28442,7 +27801,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -28451,7 +27809,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -28460,7 +27817,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -28469,7 +27825,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -28478,7 +27833,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -28488,14 +27842,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -28504,7 +27856,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -28515,7 +27866,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -28525,20 +27875,17 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -28656,7 +28003,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -28666,7 +28012,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -28682,7 +28027,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -28691,7 +28035,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -28699,8 +28042,7 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, @@ -28725,8 +28067,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.7", @@ -28744,8 +28085,7 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -28791,8 +28131,7 @@ "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, "figures": { "version": "3.2.0", @@ -28829,7 +28168,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, "optional": true }, "filename-reserved-regex": { @@ -28853,7 +28191,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "devOptional": true, "requires": { "to-regex-range": "^5.0.1" } @@ -29103,7 +28441,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -29112,14 +28449,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -29134,7 +28469,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -29150,8 +28484,7 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "forever-agent": { "version": "0.6.1", @@ -29301,7 +28634,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -29322,7 +28654,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -29331,14 +28662,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -29353,7 +28682,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -29382,7 +28710,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", @@ -29393,14 +28720,12 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "function-bind": { @@ -29541,8 +28866,7 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getos": { "version": "3.2.1", @@ -29574,7 +28898,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "devOptional": true, "requires": { "is-glob": "^4.0.1" } @@ -29745,8 +29069,7 @@ "graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "handle-thing": { "version": "2.0.1", @@ -29808,7 +29131,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -29819,7 +29141,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -29828,14 +29149,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -29844,7 +29163,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -29855,7 +29173,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -29866,7 +29183,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, "requires": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -29877,7 +29193,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -29887,14 +29202,12 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -29905,7 +29218,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -29921,7 +29233,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -30317,8 +29628,7 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "https-proxy-agent": { "version": "5.0.0", @@ -30353,14 +29663,12 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { "version": "5.1.8", @@ -30402,8 +29710,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", @@ -30414,14 +29721,12 @@ "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -30487,7 +29792,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -30520,7 +29824,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "requires": { "binary-extensions": "^2.0.0" } @@ -30562,7 +29866,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -30580,7 +29883,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -30597,7 +29899,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -30606,7 +29907,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "devOptional": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -30624,7 +29925,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "requires": { "is-extglob": "^2.1.1" } @@ -30654,7 +29955,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "devOptional": true }, "is-number-object": { "version": "1.0.6", @@ -30701,7 +30002,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -30776,8 +30076,7 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "is-wsl": { "version": "2.2.0", @@ -30791,8 +30090,7 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isbinaryfile": { "version": "3.0.3", @@ -30812,8 +30110,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", @@ -32488,43 +31785,6 @@ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" }, - "js-beautify": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", - "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", - "dev": true, - "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "nopt": "^5.0.0" - }, - "dependencies": { - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -32613,8 +31873,7 @@ "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-parse-even-better-errors": { "version": "2.3.1", @@ -32630,8 +31889,7 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -32655,7 +31913,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, "requires": { "minimist": "^1.2.0" } @@ -32824,8 +32081,7 @@ "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "kleur": { "version": "3.0.3", @@ -32915,14 +32171,12 @@ "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" }, "loader-utils": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -33133,16 +32387,6 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -33170,8 +32414,7 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { "version": "0.1.0", @@ -33183,7 +32426,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -33240,7 +32482,6 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -33266,7 +32507,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -33275,14 +32515,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -33297,7 +32535,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -33347,7 +32584,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -33356,8 +32592,7 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -33421,20 +32656,17 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -33448,7 +32680,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -33463,7 +32694,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -33477,7 +32707,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -33491,7 +32720,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -33505,7 +32733,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -33537,14 +32764,12 @@ "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, "optional": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -33574,8 +32799,7 @@ "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "nice-try": { "version": "1.0.5", @@ -33608,7 +32832,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -33638,20 +32861,17 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -33666,7 +32886,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -33677,7 +32896,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" }, @@ -33685,8 +32903,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } } @@ -33727,7 +32944,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "devOptional": true }, "normalize-url": { "version": "4.5.1", @@ -33808,7 +33025,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -33819,7 +33035,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -33828,7 +33043,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -33836,14 +33050,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" } @@ -33852,7 +33064,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -33862,8 +33073,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -33871,7 +33081,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -33904,7 +33113,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "requires": { "isobject": "^3.0.0" } @@ -33936,7 +33144,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -33966,7 +33173,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -34052,8 +33258,7 @@ "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "ospath": { "version": "1.2.2", @@ -34112,8 +33317,7 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pako": { "version": "1.0.11", @@ -34124,7 +33328,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, "requires": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -34134,14 +33337,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -34156,7 +33357,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -34184,7 +33384,6 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, "requires": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", @@ -34234,20 +33433,18 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "devOptional": true }, "path-exists": { "version": "4.0.0", @@ -34258,8 +33455,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -34296,7 +33492,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -34326,7 +33521,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "devOptional": true }, "pify": { "version": "2.3.0", @@ -34453,8 +33648,7 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.2.1", @@ -34513,8 +33707,7 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, "process-nextick-args": { "version": "2.0.1", @@ -34530,8 +33723,7 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "prompts": { "version": "2.4.2", @@ -34564,7 +33756,8 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true + "dev": true, + "optional": true }, "proxy-addr": { "version": "2.0.7", @@ -34585,8 +33778,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "ps-tree": { "version": "1.2.0", @@ -34597,12 +33789,6 @@ "event-stream": "=3.3.4" } }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -34613,7 +33799,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -34626,8 +33811,7 @@ "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -34635,7 +33819,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -34645,7 +33828,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -34656,7 +33838,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -34667,8 +33848,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", @@ -34679,14 +33859,12 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, "querystringify": { "version": "2.2.0", @@ -34710,7 +33888,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -34719,7 +33896,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -34751,6 +33927,35 @@ } } }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, "rcedit": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz", @@ -34906,7 +34111,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -34918,7 +34122,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "requires": { "picomatch": "^2.2.1" } @@ -34956,7 +34160,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -35025,7 +34228,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "devOptional": true }, "renderkid": { "version": "2.0.7", @@ -35115,14 +34318,12 @@ "repeat-element": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "request": { "version": "2.88.2", @@ -35283,8 +34484,7 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { "version": "1.0.2", @@ -35308,8 +34508,7 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { "version": "0.12.0", @@ -35352,7 +34551,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -35386,7 +34584,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, "requires": { "aproba": "^1.1.1" } @@ -35409,7 +34606,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "requires": { "ret": "~0.1.10" } @@ -35417,8 +34613,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "saxes": { "version": "3.1.11", @@ -35442,7 +34637,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -35630,7 +34824,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -35642,7 +34835,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -35650,16 +34842,14 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.1.1", @@ -35671,7 +34861,6 @@ "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -35703,12 +34892,6 @@ "object-inspect": "^1.9.0" } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", @@ -35768,7 +34951,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -35784,7 +34966,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -35793,7 +34974,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -35802,7 +34982,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -35811,7 +34990,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -35820,7 +34998,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -35830,14 +35007,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -35846,7 +35021,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -35857,7 +35031,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -35867,26 +35040,22 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -35894,7 +35063,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -35905,7 +35073,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -35916,7 +35083,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -35924,14 +35090,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -35977,8 +35141,7 @@ "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "source-map": { "version": "0.7.3", @@ -35990,7 +35153,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -36003,7 +35165,6 @@ "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -36012,16 +35173,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, "spdx-correct": { "version": "3.1.1", @@ -36140,7 +35299,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -36245,7 +35403,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -36255,7 +35412,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -36264,7 +35420,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -36273,7 +35428,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -36283,14 +35437,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -36299,7 +35451,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -36310,7 +35461,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -36320,8 +35470,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -36341,7 +35490,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -36350,14 +35498,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -36372,7 +35518,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -36392,7 +35537,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -36402,7 +35546,6 @@ "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -36414,14 +35557,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -36436,7 +35577,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -36446,14 +35586,12 @@ "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "string-length": { "version": "4.0.2", @@ -36673,8 +35811,7 @@ "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, "terminal-link": { "version": "2.1.1", @@ -36690,7 +35827,6 @@ "version": "4.8.0", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -36700,14 +35836,12 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -36715,7 +35849,6 @@ "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -36732,7 +35865,6 @@ "version": "12.0.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, "requires": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -36755,7 +35887,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -36766,7 +35897,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -36775,7 +35905,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -36788,14 +35917,12 @@ "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -36805,7 +35932,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "requires": { "yallist": "^3.0.2" } @@ -36814,7 +35940,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -36824,7 +35949,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -36842,7 +35966,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -36851,7 +35974,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -36859,20 +35981,17 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, "requires": { "find-up": "^3.0.0" } @@ -36881,7 +36000,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -36890,7 +36008,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, "requires": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -36900,14 +36017,12 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, "requires": { "randombytes": "^2.1.0" } @@ -36915,14 +36030,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "ssri": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, "requires": { "figgy-pudding": "^3.5.1" } @@ -36930,8 +36043,7 @@ "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } } }, @@ -36990,7 +36102,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -36999,14 +36110,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -37021,7 +36130,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -37038,7 +36146,6 @@ "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, "requires": { "setimmediate": "^1.0.4" } @@ -37066,8 +36173,7 @@ "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, "to-fast-properties": { "version": "2.0.0", @@ -37078,7 +36184,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -37086,14 +36191,12 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -37110,7 +36213,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -37122,7 +36224,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "requires": { "is-number": "^7.0.0" } @@ -37193,8 +36295,7 @@ "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, "tunnel": { "version": "0.0.6", @@ -37252,8 +36353,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typedarray-to-buffer": { "version": "3.1.5", @@ -37347,7 +36447,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -37358,8 +36457,7 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, @@ -37367,7 +36465,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, "requires": { "unique-slug": "^2.0.0" } @@ -37376,7 +36473,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, "requires": { "imurmurhash": "^0.1.4" } @@ -37397,7 +36493,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -37407,7 +36502,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -37418,7 +36512,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } @@ -37428,14 +36521,12 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, @@ -37449,7 +36540,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true + "devOptional": true }, "upper-case": { "version": "1.1.3", @@ -37461,7 +36552,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -37469,14 +36559,12 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -37485,8 +36573,7 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, @@ -37518,14 +36605,12 @@ "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, "requires": { "inherits": "2.0.3" }, @@ -37533,8 +36618,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, @@ -37626,8 +36710,7 @@ "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, "w3c-hr-time": { "version": "1.0.2", @@ -37692,7 +36775,6 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", @@ -37704,7 +36786,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, "optional": true, "requires": { "chokidar": "^2.1.8" @@ -37714,7 +36795,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, "optional": true, "requires": { "micromatch": "^3.1.4", @@ -37725,7 +36805,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" @@ -37737,14 +36816,12 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, "optional": true }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "optional": true, "requires": { "arr-flatten": "^1.1.0", @@ -37763,7 +36840,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" @@ -37775,7 +36851,6 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, "optional": true, "requires": { "anymatch": "^2.0.0", @@ -37796,7 +36871,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "optional": true, "requires": { "extend-shallow": "^2.0.1", @@ -37809,7 +36883,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" @@ -37821,7 +36894,6 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, "optional": true, "requires": { "bindings": "^1.5.0", @@ -37832,7 +36904,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, "optional": true, "requires": { "is-glob": "^3.1.0", @@ -37843,7 +36914,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, "optional": true, "requires": { "is-extglob": "^2.1.0" @@ -37855,7 +36925,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, "optional": true, "requires": { "binary-extensions": "^1.0.0" @@ -37865,21 +36934,18 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, "optional": true }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "optional": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" @@ -37889,7 +36955,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" @@ -37901,14 +36966,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, "optional": true }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "optional": true, "requires": { "arr-diff": "^4.0.0", @@ -37930,7 +36993,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -37946,7 +37008,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.11", @@ -37958,7 +37019,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -37968,7 +37028,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "optional": true, "requires": { "is-number": "^3.0.0", @@ -37996,7 +37055,6 @@ "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -38026,14 +37084,12 @@ "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -38051,7 +37107,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -38062,7 +37117,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -38072,7 +37126,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -38084,7 +37137,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -38094,20 +37146,17 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -38116,7 +37165,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -38127,7 +37175,6 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -38148,7 +37195,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, "requires": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -38159,7 +37205,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -38998,7 +38043,6 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -39007,8 +38051,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -39097,7 +38140,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, "requires": { "errno": "~0.1.7" } @@ -39142,8 +38184,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", @@ -39190,20 +38231,12 @@ "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yaml": { "version": "1.10.2", diff --git a/package.json b/package.json index 966756b09..f2764a63f 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "monaco-editor": "^0.27.0", "notistack": "^2.0.2", "numeral": "2.0.6", + "raw-loader": "^4.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-draggable": "^4.4.4", diff --git a/src/DarkWeb/DarkWebItems.ts b/src/DarkWeb/DarkWebItems.ts index 55319201b..e8bf43bb5 100644 --- a/src/DarkWeb/DarkWebItems.ts +++ b/src/DarkWeb/DarkWebItems.ts @@ -3,17 +3,18 @@ import { IMap } from "../types"; import { Programs } from "../Programs/Programs"; export const DarkWebItems: IMap = { - BruteSSHProgram: new DarkWebItem(Programs.BruteSSHProgram.name, 500e3, "Opens up SSH Ports"), - FTPCrackProgram: new DarkWebItem(Programs.FTPCrackProgram.name, 1500e3, "Opens up FTP Ports"), - RelaySMTPProgram: new DarkWebItem(Programs.RelaySMTPProgram.name, 5e6, "Opens up SMTP Ports"), - HTTPWormProgram: new DarkWebItem(Programs.HTTPWormProgram.name, 30e6, "Opens up HTTP Ports"), - SQLInjectProgram: new DarkWebItem(Programs.SQLInjectProgram.name, 250e6, "Opens up SQL Ports"), - DeepscanV1: new DarkWebItem(Programs.DeepscanV1.name, 500000, "Enables 'scan-analyze' with a depth up to 5"), - DeepscanV2: new DarkWebItem(Programs.DeepscanV2.name, 25e6, "Enables 'scan-analyze' with a depth up to 10"), - AutolinkProgram: new DarkWebItem(Programs.AutoLink.name, 1e6, "Enables direct connect via 'scan-analyze'"), + BruteSSHProgram: new DarkWebItem(Programs.BruteSSHProgram.name, 500e3, "Opens up SSH Ports."), + FTPCrackProgram: new DarkWebItem(Programs.FTPCrackProgram.name, 1500e3, "Opens up FTP Ports."), + RelaySMTPProgram: new DarkWebItem(Programs.RelaySMTPProgram.name, 5e6, "Opens up SMTP Ports."), + HTTPWormProgram: new DarkWebItem(Programs.HTTPWormProgram.name, 30e6, "Opens up HTTP Ports."), + SQLInjectProgram: new DarkWebItem(Programs.SQLInjectProgram.name, 250e6, "Opens up SQL Ports."), + DeepscanV1: new DarkWebItem(Programs.DeepscanV1.name, 500000, "Enables 'scan-analyze' with a depth up to 5."), + DeepscanV2: new DarkWebItem(Programs.DeepscanV2.name, 25e6, "Enables 'scan-analyze' with a depth up to 10."), + AutolinkProgram: new DarkWebItem(Programs.AutoLink.name, 1e6, "Enables direct connect via 'scan-analyze.'"), ServerProfilerProgram: new DarkWebItem( Programs.ServerProfiler.name, 1e6, - "Displays hacking and Netscript-related information about a server", + "Displays hacking and Netscript-related information about a server.", ), + FormulasProgram: new DarkWebItem(Programs.Formulas.name, 1e9, "Unlock access to the formulas API."), }; diff --git a/src/DevMenu/ui/Augmentations.tsx b/src/DevMenu/ui/Augmentations.tsx index 6ace92fcc..3927ac5fd 100644 --- a/src/DevMenu/ui/Augmentations.tsx +++ b/src/DevMenu/ui/Augmentations.tsx @@ -30,7 +30,7 @@ export function Augmentations(props: IProps): React.ReactElement { } function queueAllAugs(): void { - for (const augName of Object.keys(AugmentationNames)) { + for (const augName of Object.values(AugmentationNames)) { props.player.queueAugmentation(augName); } } diff --git a/src/Programs/data/ProgramsMetadata.ts b/src/Programs/data/ProgramsMetadata.ts index e0e9c34f1..66fe5c88b 100644 --- a/src/Programs/data/ProgramsMetadata.ts +++ b/src/Programs/data/ProgramsMetadata.ts @@ -190,7 +190,7 @@ export const programsMetadata: IProgramCreationParams[] = [ time: CONSTANTS.MillisecondsPerQuarterHour, }, run: (router: IRouter, terminal: ITerminal): void => { - terminal.error("This executable cannot be run."); + terminal.print("This executable cannot be run."); terminal.print("DeepscanV1.exe lets you run 'scan-analyze' with a depth up to 5."); }, }, @@ -204,7 +204,7 @@ export const programsMetadata: IProgramCreationParams[] = [ time: CONSTANTS.MillisecondsPer2Hours, }, run: (router: IRouter, terminal: ITerminal): void => { - terminal.error("This executable cannot be run."); + terminal.print("This executable cannot be run."); terminal.print("DeepscanV2.exe lets you run 'scan-analyze' with a depth up to 10."); }, }, @@ -268,11 +268,25 @@ export const programsMetadata: IProgramCreationParams[] = [ time: CONSTANTS.MillisecondsPerQuarterHour, }, run: (router: IRouter, terminal: ITerminal): void => { - terminal.error("This executable cannot be run."); + terminal.print("This executable cannot be run."); terminal.print("AutoLink.exe lets you automatically connect to other servers when using 'scan-analyze'."); terminal.print("When using scan-analyze, click on a server's hostname to connect to it."); }, }, + { + key: "Formulas", + name: "Formulas.exe", + create: { + level: 1000, + tooltip: "This program allows you to use the formulas API", + req: requireHackingLevel(1000), + time: CONSTANTS.MillisecondsPer4Hours, + }, + run: (router: IRouter, terminal: ITerminal): void => { + terminal.print("This executable cannot be run."); + terminal.print("Formulas.exe lets you use the formulas API."); + }, + }, { key: "BitFlume", name: "b1t_flum3.exe", diff --git a/src/ScriptEditor/NetscriptDefinitions.ts b/src/ScriptEditor/NetscriptDefinitions.ts index f0b2749b8..0e4aea32e 100644 --- a/src/ScriptEditor/NetscriptDefinitions.ts +++ b/src/ScriptEditor/NetscriptDefinitions.ts @@ -1,554 +1,581 @@ -export const libSource = ` - type Host = string; type Script = string; type StockSymbol = - | "ECP" - | "MGCP" - | "BLD" - | "CLRK" - | "OMTK" - | "FSIG" - | "KGI" - | "FLCM" - | "STM" - | "DCOMM" - | "HLS" - | "VITA" - | "ICRS" - | "UNV" - | "AERO" - | "OMN" - | "SLRS" - | "GPH" - | "NVMD" - | "WDS" - | "LXO" - | "RHOC" - | "APHE" - | "SYSC" - | "CTK" - | "NTLK" - | "OMGA" - | "FNS" - | "SGC" - | "JGN" - | "CTYS" - | "MDYN" - | "TITN"; + | "ECP" + | "MGCP" + | "BLD" + | "CLRK" + | "OMTK" + | "FSIG" + | "KGI" + | "FLCM" + | "STM" + | "DCOMM" + | "HLS" + | "VITA" + | "ICRS" + | "UNV" + | "AERO" + | "OMN" + | "SLRS" + | "GPH" + | "NVMD" + | "WDS" + | "LXO" + | "RHOC" + | "APHE" + | "SYSC" + | "CTK" + | "NTLK" + | "OMGA" + | "FNS" + | "SGC" + | "JGN" + | "CTYS" + | "MDYN" + | "TITN"; type OrderType = "limitbuy" | "limitsell" | "stopbuy" | "stopsell"; type OrderPos = "long" | "short"; -type University = - | "Summit University" - | "Rothman University" - | "ZB Institute Of Technology"; +type University = "Summit University" | "Rothman University" | "ZB Institute Of Technology"; type UniversityCourse = - | "Study Computer Science" - | "Data Strucures" - | "Networks" - | "Algorithms" - | "Management" - | "Leadership"; -type Gym = - | "Crush Fitness Gym" - | "Snap Fitness Gym" - | "Iron Gym" - | "Powerhouse Gym" - | "Millenium Fitness Gym"; + | "Study Computer Science" + | "Data Strucures" + | "Networks" + | "Algorithms" + | "Management" + | "Leadership"; +type Gym = "Crush Fitness Gym" | "Snap Fitness Gym" | "Iron Gym" | "Powerhouse Gym" | "Millenium Fitness Gym"; type GymStat = "str" | "def" | "dex" | "agi"; -type City = - | "Aevum" - | "Chongqing" - | "Sector-12" - | "New Tokyo" - | "Ishima" - | "Volhaven"; +type City = "Aevum" | "Chongqing" | "Sector-12" | "New Tokyo" | "Ishima" | "Volhaven"; type PurchaseableProgram = - | "brutessh.exe" - | "ftpcrack.exe" - | "relaysmtp.exe" - | "httpworm.exe" - | "sqlinject.exe" - | "deepscanv1.exe" - | "deepscanv2.exe" - | "autolink.exe"; + | "brutessh.exe" + | "ftpcrack.exe" + | "relaysmtp.exe" + | "httpworm.exe" + | "sqlinject.exe" + | "deepscanv1.exe" + | "deepscanv2.exe" + | "autolink.exe"; type CreatableProgram = PurchaseableProgram | "serverprofiler.exe"; type CompanyName = - // Sector-12 - | "MegaCorp" - | "BladeIndustries" - | "FourSigma" - | "IcarusMicrosystems" - | "UniversalEnergy" - | "DeltaOne" - | "CIA" - | "NSA" - | "AlphaEnterprises" - | "CarmichaelSecurity" - | "FoodNStuff" - | "JoesGuns" + // Sector-12 + | "MegaCorp" + | "BladeIndustries" + | "FourSigma" + | "IcarusMicrosystems" + | "UniversalEnergy" + | "DeltaOne" + | "CIA" + | "NSA" + | "AlphaEnterprises" + | "CarmichaelSecurity" + | "FoodNStuff" + | "JoesGuns" - // Aevum - | "ECorp" - | "BachmanAndAssociates" - | "ClarkeIncorporated" - | "OmniTekIncorporated" - | "FulcrumTechnologies" - | "GalacticCybersystems" - | "AeroCorp" - | "WatchdogSecurity" - | "RhoConstruction" - | "AevumPolice" - | "NetLinkTechnologies" + // Aevum + | "ECorp" + | "BachmanAndAssociates" + | "ClarkeIncorporated" + | "OmniTekIncorporated" + | "FulcrumTechnologies" + | "GalacticCybersystems" + | "AeroCorp" + | "WatchdogSecurity" + | "RhoConstruction" + | "AevumPolice" + | "NetLinkTechnologies" - // Volhaven - | "NWO" - | "HeliosLabs" - | "OmniaCybersystems" - | "LexoCorp" - | "SysCoreSecurities" - | "CompuTek" + // Volhaven + | "NWO" + | "HeliosLabs" + | "OmniaCybersystems" + | "LexoCorp" + | "SysCoreSecurities" + | "CompuTek" - // Chongqing - | "KuaiGongInternational" - | "SolarisSpaceSystems" + // Chongqing + | "KuaiGongInternational" + | "SolarisSpaceSystems" - // Ishima - | "StormTechnologies" - | "NovaMedical" - | "OmegaSoftware" + // Ishima + | "StormTechnologies" + | "NovaMedical" + | "OmegaSoftware" - // New Tokyo - | "DefComm" - | "VitaLife" - | "GlobalPharmaceuticals" - | "NoodleBar"; + // New Tokyo + | "DefComm" + | "VitaLife" + | "GlobalPharmaceuticals" + | "NoodleBar"; type CompanyField = - | "software" - | "software consultant" - | "it" - | "security engineer" - | "network engineer" - | "business" - | "business consultant" - | "security" - | "agent" - | "employee" - | "part-time employee" - | "waiter" - | "part-time waiter"; + | "software" + | "software consultant" + | "it" + | "security engineer" + | "network engineer" + | "business" + | "business consultant" + | "security" + | "agent" + | "employee" + | "part-time employee" + | "waiter" + | "part-time waiter"; type FactionName = - | "Illuminati" - | "Daedalus" - | "The Covenant" - | "ECorp" - | "MegaCorp" - | "Bachman & Associates" - | "Blade Industries" - | "NWO" - | "Clarke Incorporated" - | "OmniTek Incorporated" - | "Four Sigma" - | "KuaiGong International" - | "Fulcrum Secret Technologies" - | "BitRunners" - | "The Black Hand" - | "NiteSec" - | "Aevum" - | "Chongqing" - | "Ishima" - | "New Tokyo" - | "Sector-12" - | "Volhaven" - | "Speakers for the Dead" - | "The Dark Army" - | "The Syndicate" - | "Silhouette" - | "Tetrads" - | "Slum Snakes" - | "Netburners" - | "Tian Di Hui" - | "CyberSec" - | "Bladeburners"; + | "Illuminati" + | "Daedalus" + | "The Covenant" + | "ECorp" + | "MegaCorp" + | "Bachman & Associates" + | "Blade Industries" + | "NWO" + | "Clarke Incorporated" + | "OmniTek Incorporated" + | "Four Sigma" + | "KuaiGong International" + | "Fulcrum Secret Technologies" + | "BitRunners" + | "The Black Hand" + | "NiteSec" + | "Aevum" + | "Chongqing" + | "Ishima" + | "New Tokyo" + | "Sector-12" + | "Volhaven" + | "Speakers for the Dead" + | "The Dark Army" + | "The Syndicate" + | "Silhouette" + | "Tetrads" + | "Slum Snakes" + | "Netburners" + | "Tian Di Hui" + | "CyberSec" + | "Bladeburners"; type GangName = - | "Slum Snakes" - | "Tetrads" - | "The Syndicate" - | "The Dark Army" - | "Speakers for the Dead" - | "NiteSec" - | "The Black Hand"; + | "Slum Snakes" + | "Tetrads" + | "The Syndicate" + | "The Dark Army" + | "Speakers for the Dead" + | "NiteSec" + | "The Black Hand"; type FactionWork = "hacking" | "field" | "security"; type Crime = - | "shoplift" - | "rob store" - | "mug" - | "larceny" - | "deal drugs" - | "bond forgery" - | "traffick arms" - | "homicide" - | "grand theft auto" - | "kidnap" - | "assassinate" - | "heist"; + | "shoplift" + | "rob store" + | "mug" + | "larceny" + | "deal drugs" + | "bond forgery" + | "traffick arms" + | "homicide" + | "grand theft auto" + | "kidnap" + | "assassinate" + | "heist"; type AugmentName = - | "Augmented Targeting I" - | "Augmented Targeting II" - | "Augmented Targeting III" - | "Synthetic Heart" - | "Synfibril Muscle" - | "Combat Rib I" - | "Combat Rib II" - | "Combat Rib III" - | "Nanofiber Weave" - | "NEMEAN Subdermal Weave" - | "Wired Reflexes" - | "Graphene Bone Lacings" - | "Bionic Spine" - | "Graphene Bionic Spine Upgrade" - | "Bionic Legs" - | "Graphene Bionic Legs Upgrade" - | "Speech Processor Implant" - | "TITN-41 Gene-Modification Injection" - | "Enhanced Social Interaction Implant" - | "BitWire" - | "Artificial Bio-neural Network Implant" - | "Artificial Synaptic Potentiation" - | "Enhanced Myelin Sheathing" - | "Synaptic Enhancement Implant" - | "Neural-Retention Enhancement" - | "DataJack" - | "Embedded Netburner Module" - | "Embedded Netburner Module Core Implant" - | "Embedded Netburner Module Core V2 Upgrade" - | "Embedded Netburner Module Core V3 Upgrade" - | "Embedded Netburner Module Analyze Engine" - | "Embedded Netburner Module Direct Memory Access Upgrade" - | "Neuralstimulator" - | "Neural Accelerator" - | "Cranial Signal Processors - Gen I" - | "Cranial Signal Processors - Gen II" - | "Cranial Signal Processors - Gen III" - | "Cranial Signal Processors - Gen IV" - | "Cranial Signal Processors - Gen V" - | "Neuronal Densification" - | "Nuoptimal Nootropic Injector Implant" - | "Speech Enhancement" - | "FocusWire" - | "PC Direct-Neural Interface" - | "PC Direct-Neural Interface Optimization Submodule" - | "PC Direct-Neural Interface NeuroNet Injector" - | "ADR-V1 Pheromone Gene" - | "ADR-V2 Pheromone Gene" - | "The Shadow's Simulacrum" - | "Hacknet Node CPU Architecture Neural-Upload" - | "Hacknet Node Cache Architecture Neural-Upload" - | "Hacknet Node NIC Architecture Neural-Upload" - | "Hacknet Node Kernel Direct-Neural Interface" - | "Hacknet Node Core Direct-Neural Interface" - | "NeuroFlux Governor" - | "Neurotrainer I" - | "Neurotrainer II" - | "Neurotrainer III" - | "HyperSight Corneal Implant" - | "LuminCloaking-V1 Skin Implant" - | "LuminCloaking-V2 Skin Implant" - | "HemoRecirculator" - | "SmartSonar Implant" - | "Power Recirculation Core" - | "QLink" - | "The Red Pill" - | "SPTN-97 Gene Modification" - | "ECorp HVMind Implant" - | "CordiARC Fusion Reactor" - | "SmartJaw" - | "Neotra" - | "Xanipher" - | "nextSENS Gene Modification" - | "OmniTek InfoLoad" - | "Photosynthetic Cells" - | "BitRunners Neurolink" - | "The Black Hand" - | "CRTX42-AA Gene Modification" - | "Neuregen Gene Modification" - | "CashRoot Starter Kit" - | "NutriGen Implant" - | "INFRARET Enhancement" - | "DermaForce Particle Barrier" - | "Graphene BranchiBlades Upgrade" - | "Graphene Bionic Arms Upgrade" - | "BrachiBlades" - | "Bionic Arms" - | "Social Negotiation Assistant (S.N.A)" - | "EsperTech Bladeburner Eyewear" - | "EMS-4 Recombination" - | "ORION-MKIV Shoulder" - | "Hyperion Plasma Cannon V1" - | "Hyperion Plasma Cannon V2" - | "GOLEM Serum" - | "Vangelis Virus" - | "Vangelis Virus 3.0" - | "I.N.T.E.R.L.I.N.K.E.D" - | "Blade's Runners" - | "BLADE-51b Tesla Armor" - | "BLADE-51b Tesla Armor: Power Cells Upgrade" - | "BLADE-51b Tesla Armor: Energy Shielding Upgrade" - | "BLADE-51b Tesla Armor: Unibeam Upgrade" - | "BLADE-51b Tesla Armor: Omnibeam Upgrade" - | "BLADE-51b Tesla Armor: IPU Upgrade" - | "The Blade's Simulacrum"; + | "Augmented Targeting I" + | "Augmented Targeting II" + | "Augmented Targeting III" + | "Synthetic Heart" + | "Synfibril Muscle" + | "Combat Rib I" + | "Combat Rib II" + | "Combat Rib III" + | "Nanofiber Weave" + | "NEMEAN Subdermal Weave" + | "Wired Reflexes" + | "Graphene Bone Lacings" + | "Bionic Spine" + | "Graphene Bionic Spine Upgrade" + | "Bionic Legs" + | "Graphene Bionic Legs Upgrade" + | "Speech Processor Implant" + | "TITN-41 Gene-Modification Injection" + | "Enhanced Social Interaction Implant" + | "BitWire" + | "Artificial Bio-neural Network Implant" + | "Artificial Synaptic Potentiation" + | "Enhanced Myelin Sheathing" + | "Synaptic Enhancement Implant" + | "Neural-Retention Enhancement" + | "DataJack" + | "Embedded Netburner Module" + | "Embedded Netburner Module Core Implant" + | "Embedded Netburner Module Core V2 Upgrade" + | "Embedded Netburner Module Core V3 Upgrade" + | "Embedded Netburner Module Analyze Engine" + | "Embedded Netburner Module Direct Memory Access Upgrade" + | "Neuralstimulator" + | "Neural Accelerator" + | "Cranial Signal Processors - Gen I" + | "Cranial Signal Processors - Gen II" + | "Cranial Signal Processors - Gen III" + | "Cranial Signal Processors - Gen IV" + | "Cranial Signal Processors - Gen V" + | "Neuronal Densification" + | "Nuoptimal Nootropic Injector Implant" + | "Speech Enhancement" + | "FocusWire" + | "PC Direct-Neural Interface" + | "PC Direct-Neural Interface Optimization Submodule" + | "PC Direct-Neural Interface NeuroNet Injector" + | "ADR-V1 Pheromone Gene" + | "ADR-V2 Pheromone Gene" + | "The Shadow's Simulacrum" + | "Hacknet Node CPU Architecture Neural-Upload" + | "Hacknet Node Cache Architecture Neural-Upload" + | "Hacknet Node NIC Architecture Neural-Upload" + | "Hacknet Node Kernel Direct-Neural Interface" + | "Hacknet Node Core Direct-Neural Interface" + | "NeuroFlux Governor" + | "Neurotrainer I" + | "Neurotrainer II" + | "Neurotrainer III" + | "HyperSight Corneal Implant" + | "LuminCloaking-V1 Skin Implant" + | "LuminCloaking-V2 Skin Implant" + | "HemoRecirculator" + | "SmartSonar Implant" + | "Power Recirculation Core" + | "QLink" + | "The Red Pill" + | "SPTN-97 Gene Modification" + | "ECorp HVMind Implant" + | "CordiARC Fusion Reactor" + | "SmartJaw" + | "Neotra" + | "Xanipher" + | "nextSENS Gene Modification" + | "OmniTek InfoLoad" + | "Photosynthetic Cells" + | "BitRunners Neurolink" + | "The Black Hand" + | "CRTX42-AA Gene Modification" + | "Neuregen Gene Modification" + | "CashRoot Starter Kit" + | "NutriGen Implant" + | "INFRARET Enhancement" + | "DermaForce Particle Barrier" + | "Graphene BranchiBlades Upgrade" + | "Graphene Bionic Arms Upgrade" + | "BrachiBlades" + | "Bionic Arms" + | "Social Negotiation Assistant (S.N.A)" + | "EsperTech Bladeburner Eyewear" + | "EMS-4 Recombination" + | "ORION-MKIV Shoulder" + | "Hyperion Plasma Cannon V1" + | "Hyperion Plasma Cannon V2" + | "GOLEM Serum" + | "Vangelis Virus" + | "Vangelis Virus 3.0" + | "I.N.T.E.R.L.I.N.K.E.D" + | "Blade's Runners" + | "BLADE-51b Tesla Armor" + | "BLADE-51b Tesla Armor: Power Cells Upgrade" + | "BLADE-51b Tesla Armor: Energy Shielding Upgrade" + | "BLADE-51b Tesla Armor: Unibeam Upgrade" + | "BLADE-51b Tesla Armor: Omnibeam Upgrade" + | "BLADE-51b Tesla Armor: IPU Upgrade" + | "The Blade's Simulacrum"; interface CrimeStats { - /** Number representing the difficulty of the crime. Used for success chance calculations */ - difficulty: number; - /** Amount of karma lost for SUCCESSFULLY committing this crime */ - karma: number; - /** How many people die as a result of this crime */ - kills: number; - /** How much money is given */ - money: number; - /** Name of crime */ - name: number; - /** Milliseconds it takes to attempt the crime */ - time: number; - /** Description of the crime activity */ - type: string; - /** hacking level impact on success change of the crime */ - hacking_success_weight: number; - /** strength level impact on success change of the crime */ - strength_success_weight: number; - /** defense level impact on success change of the crime */ - defense_success_weight: number; - /** dexterity level impact on success change of the crime */ - dexterity_success_weight: number; - /** agility level impact on success change of the crime */ - agility_success_weight: number; - /** charisma level impact on success change of the crime */ - charisma_success_weight: number; - /** hacking exp gained from crime */ - hacking_exp: number; - /** strength exp gained from crime */ - strength_exp: number; - /** defense exp gained from crime */ - defense_exp: number; - /** dexterity exp gained from crime */ - dexterity_exp: number; - /** agility exp gained from crime */ - agility_exp: number; - /** charisma exp gained from crime */ - charisma_exp: number; - /** intelligence exp gained from crime */ - intelligence_exp: number; + /** Number representing the difficulty of the crime. Used for success chance calculations */ + difficulty: number; + /** Amount of karma lost for SUCCESSFULLY committing this crime */ + karma: number; + /** How many people die as a result of this crime */ + kills: number; + /** How much money is given */ + money: number; + /** Name of crime */ + name: number; + /** Milliseconds it takes to attempt the crime */ + time: number; + /** Description of the crime activity */ + type: string; + /** hacking level impact on success change of the crime */ + hacking_success_weight: number; + /** strength level impact on success change of the crime */ + strength_success_weight: number; + /** defense level impact on success change of the crime */ + defense_success_weight: number; + /** dexterity level impact on success change of the crime */ + dexterity_success_weight: number; + /** agility level impact on success change of the crime */ + agility_success_weight: number; + /** charisma level impact on success change of the crime */ + charisma_success_weight: number; + /** hacking exp gained from crime */ + hacking_exp: number; + /** strength exp gained from crime */ + strength_exp: number; + /** defense exp gained from crime */ + defense_exp: number; + /** dexterity exp gained from crime */ + dexterity_exp: number; + /** agility exp gained from crime */ + agility_exp: number; + /** charisma exp gained from crime */ + charisma_exp: number; + /** intelligence exp gained from crime */ + intelligence_exp: number; } interface AugmentationStats { - /** Multipler to hacking skill */ - hacking_mult?: number; - /** Multipler to strength skill */ - strength_mult?: number; - /** Multipler to defense skill */ - defense_mult?: number; - /** Multipler to dexterity skill */ - dexterity_mult?: number; - /** Multipler to agility skill */ - agility_mult?: number; - /** Multipler to charisma skill */ - charisma_mult?: number; - /** Multipler to hacking experience gain rate */ - hacking_exp_mult?: number; - /** Multipler to strength experience gain rate */ - strength_exp_mult?: number; - /** Multipler to defense experience gain rate */ - defense_exp_mult?: number; - /** Multipler to dexterity experience gain rate */ - dexterity_exp_mult?: number; - /** Multipler to agility experience gain rate */ - agility_exp_mult?: number; - /** Multipler to charisma experience gain rate */ - charisma_exp_mult?: number; - /** Multipler to chance of successfully performing a hack */ - hacking_chance_mult?: number; - /** Multipler to hacking speed */ - hacking_speed_mult?: number; - /** Multipler to amount of money the player gains from hacking */ - hacking_money_mult?: number; - /** Multipler to amount of money injected into servers using {@link grow()} */ - hacking_grow_mult?: number; - /** Multipler to amount of reputation gained when working */ - company_rep_mult?: number; - /** Multipler to amount of reputation gained when working */ - faction_rep_mult?: number; - /** Multipler to amount of money gained from crimes */ - crime_money_mult?: number; - /** Multipler to crime success rate */ - crime_success_mult?: number; - /** Multipler to amount of money gained from working */ - work_money_mult?: number; - /** Multipler to amount of money produced by Hacknet Nodes */ - hacknet_node_money_mult?: number; - /** Multipler to cost of purchasing a Hacknet Node */ - hacknet_node_purchase_cost_mult?: number; - /** Multipler to cost of ram for a Hacknet Node */ - hacknet_node_ram_cost_mult?: number; - /** Multipler to cost of core for a Hacknet Node */ - hacknet_node_core_cost_mult?: number; - /** Multipler to cost of leveling up a Hacknet Node */ - hacknet_node_level_cost_mult?: number; - /** Multipler to Bladeburner max stamina */ - bladeburner_max_stamina_mult?: number; - /** Multipler to Bladeburner stamina gain rate */ - bladeburner_stamina_gain_mult?: number; - /** Multipler to effectiveness in Bladeburner Field Analysis */ - bladeburner_analysis_mult?: number; - /** Multipler to success chance in Bladeburner contracts/operations */ - bladeburner_success_chance_mult?: number; + /** Multipler to hacking skill */ + hacking_mult?: number; + /** Multipler to strength skill */ + strength_mult?: number; + /** Multipler to defense skill */ + defense_mult?: number; + /** Multipler to dexterity skill */ + dexterity_mult?: number; + /** Multipler to agility skill */ + agility_mult?: number; + /** Multipler to charisma skill */ + charisma_mult?: number; + /** Multipler to hacking experience gain rate */ + hacking_exp_mult?: number; + /** Multipler to strength experience gain rate */ + strength_exp_mult?: number; + /** Multipler to defense experience gain rate */ + defense_exp_mult?: number; + /** Multipler to dexterity experience gain rate */ + dexterity_exp_mult?: number; + /** Multipler to agility experience gain rate */ + agility_exp_mult?: number; + /** Multipler to charisma experience gain rate */ + charisma_exp_mult?: number; + /** Multipler to chance of successfully performing a hack */ + hacking_chance_mult?: number; + /** Multipler to hacking speed */ + hacking_speed_mult?: number; + /** Multipler to amount of money the player gains from hacking */ + hacking_money_mult?: number; + /** Multipler to amount of money injected into servers using {@link grow()} */ + hacking_grow_mult?: number; + /** Multipler to amount of reputation gained when working */ + company_rep_mult?: number; + /** Multipler to amount of reputation gained when working */ + faction_rep_mult?: number; + /** Multipler to amount of money gained from crimes */ + crime_money_mult?: number; + /** Multipler to crime success rate */ + crime_success_mult?: number; + /** Multipler to amount of money gained from working */ + work_money_mult?: number; + /** Multipler to amount of money produced by Hacknet Nodes */ + hacknet_node_money_mult?: number; + /** Multipler to cost of purchasing a Hacknet Node */ + hacknet_node_purchase_cost_mult?: number; + /** Multipler to cost of ram for a Hacknet Node */ + hacknet_node_ram_cost_mult?: number; + /** Multipler to cost of core for a Hacknet Node */ + hacknet_node_core_cost_mult?: number; + /** Multipler to cost of leveling up a Hacknet Node */ + hacknet_node_level_cost_mult?: number; + /** Multipler to Bladeburner max stamina */ + bladeburner_max_stamina_mult?: number; + /** Multipler to Bladeburner stamina gain rate */ + bladeburner_stamina_gain_mult?: number; + /** Multipler to effectiveness in Bladeburner Field Analysis */ + bladeburner_analysis_mult?: number; + /** Multipler to success chance in Bladeburner contracts/operations */ + bladeburner_success_chance_mult?: number; } interface BasicHGWOptions { - /** Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. */ - threads: number; + /** Number of threads to use for this function. Must be less than or equal to the number of threads the script is running with. */ + threads: number; } interface CodingAttemptOptions { - /** If truthy, then the function will return a string that states the contract’s reward when it is successfully solved. */ - returnReward: boolean; + /** If truthy, then the function will return a string that states the contract’s reward when it is successfully solved. */ + returnReward: boolean; } interface AugmentPair { - /** augmentation name */ - name: AugmentName; - /** augmentation cost */ - cost: number; + /** augmentation name */ + name: AugmentName; + /** augmentation cost */ + cost: number; } interface StockOrderObject { - /** Number of shares */ - shares: number; - /** Price per share */ - price: number; - /** Order type */ - type: "Limit Buy Order" | "Limit Sell Order" | "Stop Buy Order" | "Stop Buy Order"; - /** Order position */ - position: "S" | "L"; + /** Number of shares */ + shares: number; + /** Price per share */ + price: number; + /** Order type */ + type: "Limit Buy Order" | "Limit Sell Order" | "Stop Buy Order" | "Stop Buy Order"; + /** Order position */ + position: "S" | "L"; } type StockOrder = { - /** Stock Symbol */ - [key in StockSymbol]?: StockOrderObject[]; + /** Stock Symbol */ + [key in StockSymbol]?: StockOrderObject[]; }; interface ProcessInfo { - /** Script name. */ - filename: Script; - /** Number of threads script is running with */ - threads: number; - /** Script's arguments */ - args: string[]; + /** Script name. */ + filename: Script; + /** Number of threads script is running with */ + threads: number; + /** Script's arguments */ + args: string[]; } interface HackingMultipliers { - /** Player's hacking chance multiplier. */ - chance: number; - /** Player's hacking speed multiplier. */ - speed: number; - /** Player's hacking money stolen multiplier. */ - money: number; - /** Player's hacking growth multiplier */ - growth: number; + /** Player's hacking chance multiplier. */ + chance: number; + /** Player's hacking speed multiplier. */ + speed: number; + /** Player's hacking money stolen multiplier. */ + money: number; + /** Player's hacking growth multiplier */ + growth: number; } interface HacknetMultipliers { - /** Player's hacknet production multiplier */ - production: number; - /** Player's hacknet purchase cost multiplier */ - purchaseCost: number; - /** Player's hacknet ram cost multiplier */ - ramCost: number; - /** Player's hacknet core cost multiplier */ - coreCost: number; - /** Player's hacknet level cost multiplier */ - levelCost: number; + /** Player's hacknet production multiplier */ + production: number; + /** Player's hacknet purchase cost multiplier */ + purchaseCost: number; + /** Player's hacknet ram cost multiplier */ + ramCost: number; + /** Player's hacknet core cost multiplier */ + coreCost: number; + /** Player's hacknet level cost multiplier */ + levelCost: number; +} + +interface Server { + // How many CPU cores this server has. Maximum of 8. + // Currently, this only affects hacking missions + cpuCores: number; + + // Flag indicating whether the FTP port is open + ftpPortOpen: boolean; + + // Flag indicating whether player has admin/root access to this server + hasAdminRights: boolean; + + // Hostname. Must be unique + hostname: string; + + // Flag indicating whether HTTP Port is open + httpPortOpen: boolean; + + // IP Address. Must be unique + ip: string; + + // Flag indicating whether player is curently connected to this server + isConnectedTo: boolean; + + // RAM (GB) available on this server + maxRam: number; + + // Name of company/faction/etc. that this server belongs to. + // Optional, not applicable to all Servers + organizationName: string; + + // RAM (GB) used. i.e. unavailable RAM + ramUsed: number; + + // Flag indicating whether SMTP Port is open + smtpPortOpen: boolean; + + // Flag indicating whether SQL Port is open + sqlPortOpen: boolean; + + // Flag indicating whether the SSH Port is open + sshPortOpen: boolean; } interface BitNodeMultipliers { - /** Influences how quickly the player's agility level (not exp) scales */ - AgilityLevelMultiplier: number; - /** Influences the base cost to purchase an augmentation. */ - AugmentationMoneyCost: number; - /** Influences the base rep the player must have with a faction to purchase an augmentation. */ - AugmentationRepCost: number; - /** Influences how quickly the player can gain rank within Bladeburner. */ - BladeburnerRank: number; - /** Influences the cost of skill levels from Bladeburner. */ - BladeburnerSkillCost: number; - /** Influences how quickly the player's charisma level (not exp) scales */ - CharismaLevelMultiplier: number; - /** Influences the experience gained for each ability when a player completes a class. */ - ClassGymExpGain: number; - /** Influences the amount of money gained from completing Coding Contracts */ - CodingContractMoney: number; - /** Influences the experience gained for each ability when the player completes working their job. */ - CompanyWorkExpGain: number; - /** Influences how much money the player earns when completing working their job. */ - CompanyWorkMoney: number; - /** Influences the valuation of corporations created by the player. */ - CorporationValuation: number; - /** Influences the base experience gained for each ability when the player commits a crime. */ - CrimeExpGain: number; - /** Influences the base money gained when the player commits a crime. */ - CrimeMoney: number; - /** Influences how many Augmentations you need in order to get invited to the Daedalus faction */ - DaedalusAugsRequirement: number; - /** Influences how quickly the player's defense level (not exp) scales */ - DefenseLevelMultiplier: number; - /** Influences how quickly the player's dexterity level (not exp) scales */ - DexterityLevelMultiplier: number; - /** Influences how much rep the player gains in each faction simply by being a member. */ - FactionPassiveRepGain: number; - /** Influences the experience gained for each ability when the player completes work for a Faction. */ - FactionWorkExpGain: number; - /** Influences how much rep the player gains when performing work for a faction. */ - FactionWorkRepGain: number; - /** Influences how much it costs to unlock the stock market's 4S Market Data API */ - FourSigmaMarketDataApiCost: number; - /** Influences how much it costs to unlock the stock market's 4S Market Data (NOT API) */ - FourSigmaMarketDataCost: number; - /** Influences the experienced gained when hacking a server. */ - HackExpGain: number; - /** Influences how quickly the player's hacking level (not experience) scales */ - HackingLevelMultiplier: number; - /** Influences how much money is produced by Hacknet Nodes and the hash rate of Hacknet Servers (unlocked in BitNode-9) */ - HacknetNodeMoney: number; - /** Influences how much money it costs to upgrade your home computer's RAM */ - HomeComputerRamCost: number; - /** Influences how much money is gained when the player infiltrates a company. */ - InfiltrationMoney: number; - /** Influences how much rep the player can gain from factions when selling stolen documents and secrets */ - InfiltrationRep: number; - /** Influences how much money can be stolen from a server when the player performs a hack against it through the Terminal. */ - ManualHackMoney: number; - /** Influence how much it costs to purchase a server */ - PurchasedServerCost: number; - /** Influences the maximum number of purchased servers you can have */ - PurchasedServerLimit: number; - /** Influences the maximum allowed RAM for a purchased server */ - PurchasedServerMaxRam: number; - /** Influences the minimum favor the player must have with a faction before they can donate to gain rep. */ - RepToDonateToFaction: number; - /** Influences how much money can be stolen from a server when a script performs a hack against it. */ - ScriptHackMoney: number; - /** Influences the growth percentage per cycle against a server. */ - ServerGrowthRate: number; - /** Influences the maxmimum money that a server can grow to. */ - ServerMaxMoney: number; - /** Influences the initial money that a server starts with. */ - ServerStartingMoney: number; - /** Influences the initial security level (hackDifficulty) of a server. */ - ServerStartingSecurity: number; - /** Influences the weaken amount per invocation against a server. */ - ServerWeakenRate: number; - /** Influences how quickly the player's strength level (not exp) scales */ - StrengthLevelMultiplier: number; + /** Influences how quickly the player's agility level (not exp) scales */ + AgilityLevelMultiplier: number; + /** Influences the base cost to purchase an augmentation. */ + AugmentationMoneyCost: number; + /** Influences the base rep the player must have with a faction to purchase an augmentation. */ + AugmentationRepCost: number; + /** Influences how quickly the player can gain rank within Bladeburner. */ + BladeburnerRank: number; + /** Influences the cost of skill levels from Bladeburner. */ + BladeburnerSkillCost: number; + /** Influences how quickly the player's charisma level (not exp) scales */ + CharismaLevelMultiplier: number; + /** Influences the experience gained for each ability when a player completes a class. */ + ClassGymExpGain: number; + /** Influences the amount of money gained from completing Coding Contracts */ + CodingContractMoney: number; + /** Influences the experience gained for each ability when the player completes working their job. */ + CompanyWorkExpGain: number; + /** Influences how much money the player earns when completing working their job. */ + CompanyWorkMoney: number; + /** Influences the valuation of corporations created by the player. */ + CorporationValuation: number; + /** Influences the base experience gained for each ability when the player commits a crime. */ + CrimeExpGain: number; + /** Influences the base money gained when the player commits a crime. */ + CrimeMoney: number; + /** Influences how many Augmentations you need in order to get invited to the Daedalus faction */ + DaedalusAugsRequirement: number; + /** Influences how quickly the player's defense level (not exp) scales */ + DefenseLevelMultiplier: number; + /** Influences how quickly the player's dexterity level (not exp) scales */ + DexterityLevelMultiplier: number; + /** Influences how much rep the player gains in each faction simply by being a member. */ + FactionPassiveRepGain: number; + /** Influences the experience gained for each ability when the player completes work for a Faction. */ + FactionWorkExpGain: number; + /** Influences how much rep the player gains when performing work for a faction. */ + FactionWorkRepGain: number; + /** Influences how much it costs to unlock the stock market's 4S Market Data API */ + FourSigmaMarketDataApiCost: number; + /** Influences how much it costs to unlock the stock market's 4S Market Data (NOT API) */ + FourSigmaMarketDataCost: number; + /** Influences the experienced gained when hacking a server. */ + HackExpGain: number; + /** Influences how quickly the player's hacking level (not experience) scales */ + HackingLevelMultiplier: number; + /** Influences how much money is produced by Hacknet Nodes and the hash rate of Hacknet Servers (unlocked in BitNode-9) */ + HacknetNodeMoney: number; + /** Influences how much money it costs to upgrade your home computer's RAM */ + HomeComputerRamCost: number; + /** Influences how much money is gained when the player infiltrates a company. */ + InfiltrationMoney: number; + /** Influences how much rep the player can gain from factions when selling stolen documents and secrets */ + InfiltrationRep: number; + /** Influences how much money can be stolen from a server when the player performs a hack against it through the Terminal. */ + ManualHackMoney: number; + /** Influence how much it costs to purchase a server */ + PurchasedServerCost: number; + /** Influences the maximum number of purchased servers you can have */ + PurchasedServerLimit: number; + /** Influences the maximum allowed RAM for a purchased server */ + PurchasedServerMaxRam: number; + /** Influences the minimum favor the player must have with a faction before they can donate to gain rep. */ + RepToDonateToFaction: number; + /** Influences how much money can be stolen from a server when a script performs a hack against it. */ + ScriptHackMoney: number; + /** Influences the growth percentage per cycle against a server. */ + ServerGrowthRate: number; + /** Influences the maxmimum money that a server can grow to. */ + ServerMaxMoney: number; + /** Influences the initial money that a server starts with. */ + ServerStartingMoney: number; + /** Influences the initial security level (hackDifficulty) of a server. */ + ServerStartingSecurity: number; + /** Influences the weaken amount per invocation against a server. */ + ServerWeakenRate: number; + /** Influences how quickly the player's strength level (not exp) scales */ + StrengthLevelMultiplier: number; } /** * A port is implemented as a sort of serialized queue, @@ -563,3979 +590,4114 @@ type Port = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 type Handle = string | Port; interface NodeStats { - /** Node's name ("hacknet-node-5") */ - name: string; - /** Node's level */ - level: number; - /** Node's RAM */ - ram: number; - /** Node's number of cores */ - cores: number; - /** Cache level. Only applicable for Hacknet Servers */ - cache: number; - /** Hash Capacity provided by this Node. Only applicable for Hacknet Servers */ - hashCapacity: number; - /** Node's production per second */ - production: number; - /** Number of seconds since Node has been purchased */ - timeOnline: number; - /** Total number of money Node has produced */ - totalProduction: number; + /** Node's name ("hacknet-node-5") */ + name: string; + /** Node's level */ + level: number; + /** Node's RAM */ + ram: number; + /** Node's number of cores */ + cores: number; + /** Cache level. Only applicable for Hacknet Servers */ + cache: number; + /** Hash Capacity provided by this Node. Only applicable for Hacknet Servers */ + hashCapacity: number; + /** Node's production per second */ + production: number; + /** Number of seconds since Node has been purchased */ + timeOnline: number; + /** Total number of money Node has produced */ + totalProduction: number; } type HashUpgrades = - | "Sell for Money" - | "Sell for Corporation Funds" - | "Reduce Minimum Security" - | "Increase Maximum Money" - | "Improve Studying" - | "Improve Gym Training" - | "Exchange for Corporation Research" - | "Exchange for Bladeburner Rank" - | "Exchange for Bladeburner SP" - | "Generate Coding Contract"; + | "Sell for Money" + | "Sell for Corporation Funds" + | "Reduce Minimum Security" + | "Increase Maximum Money" + | "Improve Studying" + | "Improve Gym Training" + | "Exchange for Corporation Research" + | "Exchange for Bladeburner Rank" + | "Exchange for Bladeburner SP" + | "Generate Coding Contract"; interface PlayerStats { - /** Hacking level */ - hacking: number; - /** Strength level */ - strength: number; - /** Defense level */ - defense: number; - /** Dexterity level */ - dexterity: number; - /** Agility level */ - agility: number; - /** Chraisma level */ - charisma: number; - /** Intelligence level */ - intelligence: number; + /** Hacking level */ + hacking: number; + /** Strength level */ + strength: number; + /** Defense level */ + defense: number; + /** Dexterity level */ + dexterity: number; + /** Agility level */ + agility: number; + /** Chraisma level */ + charisma: number; + /** Intelligence level */ + intelligence: number; } interface CharacterMult { - /** Agility stat */ - agility: number; - /** Agility exp */ - agilityExp: number; - /** Company reputation */ - companyRep: number; - /** Money earned from crimes */ - crimeMoney: number; - /** Crime success chance */ - crimeSuccess: number; - /** Defense stat */ - defense: number; - /** Defense exp */ - defenseExp: number; - /** Dexterity stat */ - dexterity: number; - /** Dexterity exp */ - dexterityExp: number; - /** Faction reputation */ - factionRep: number; - /** Hacking stat */ - hacking: number; - /** Hacking exp */ - hackingExp: number; - /** Strength stat */ - strength: number; - /** Strength exp */ - strengthExp: number; - /** Money earned from jobs */ - workMoney: number; + /** Agility stat */ + agility: number; + /** Agility exp */ + agilityExp: number; + /** Company reputation */ + companyRep: number; + /** Money earned from crimes */ + crimeMoney: number; + /** Crime success chance */ + crimeSuccess: number; + /** Defense stat */ + defense: number; + /** Defense exp */ + defenseExp: number; + /** Dexterity stat */ + dexterity: number; + /** Dexterity exp */ + dexterityExp: number; + /** Faction reputation */ + factionRep: number; + /** Hacking stat */ + hacking: number; + /** Hacking exp */ + hackingExp: number; + /** Strength stat */ + strength: number; + /** Strength exp */ + strengthExp: number; + /** Money earned from jobs */ + workMoney: number; } interface CharacterInfo { - /** Current BitNode number */ - bitnode: number; - /** Name of city you are currently in */ - city: City; - /** Array of factions you are currently a member of */ - factions: FactionName[]; - /** Current health points */ - hp: number; - /** Array of all companies at which you have jobs */ - company: CompanyName[]; - /** Array of job positions for all companies you are employed at. Same order as 'jobs' */ - jobTitle: CompanyField[]; - /** Maximum health points */ - maxHp: number; - /** Boolean indicating whether or not you have a tor router */ - tor: boolean; - /** Object with many of the player's multipliers from Augmentations/Source Files */ - mult: CharacterMult; - /** Timed worked in ms */ - timeWorked: number; - /** Hacking experience earned so far from work */ - workHackExpGain: number; - /** Str experience earned so far from work */ - workStrExpGain: number; - /** Def experience earned so far from work */ - workDefExpGain: number; - /** Dex experience earned so far from work */ - workDexExpGain: number; - /** Agi experience earned so far from work */ - workAgiExpGain: number; - /** Cha experience earned so far from work */ - workChaExpGain: number; - /** Reputation earned so far from work, if applicable */ - workRepGain: number; - /** Money earned so far from work, if applicable */ - workMoneyGain: number; + /** Current BitNode number */ + bitnode: number; + /** Name of city you are currently in */ + city: City; + /** Array of factions you are currently a member of */ + factions: FactionName[]; + /** Current health points */ + hp: number; + /** Array of all companies at which you have jobs */ + company: CompanyName[]; + /** Array of job positions for all companies you are employed at. Same order as 'jobs' */ + jobTitle: CompanyField[]; + /** Maximum health points */ + maxHp: number; + /** Boolean indicating whether or not you have a tor router */ + tor: boolean; + /** Object with many of the player's multipliers from Augmentations/Source Files */ + mult: CharacterMult; + /** Timed worked in ms */ + timeWorked: number; + /** Hacking experience earned so far from work */ + workHackExpGain: number; + /** Str experience earned so far from work */ + workStrExpGain: number; + /** Def experience earned so far from work */ + workDefExpGain: number; + /** Dex experience earned so far from work */ + workDexExpGain: number; + /** Agi experience earned so far from work */ + workAgiExpGain: number; + /** Cha experience earned so far from work */ + workChaExpGain: number; + /** Reputation earned so far from work, if applicable */ + workRepGain: number; + /** Money earned so far from work, if applicable */ + workMoneyGain: number; } interface SleeveWorkGains { - /** hacking exp gained from work */ - workHackExpGain: number; - /** strength exp gained from work */ - workStrExpGain: number; - /** defense exp gained from work, */ - workDefExpGain: number; - /** dexterity exp gained from work */ - workDexExpGain: number; - /** agility exp gained from work */ - workAgiExpGain: number; - /** charisma exp gained from work */ - workChaExpGain: number; - /** money gained from work */ - workMoneyGain: number; + /** hacking exp gained from work */ + workHackExpGain: number; + /** strength exp gained from work */ + workStrExpGain: number; + /** defense exp gained from work, */ + workDefExpGain: number; + /** dexterity exp gained from work */ + workDexExpGain: number; + /** agility exp gained from work */ + workAgiExpGain: number; + /** charisma exp gained from work */ + workChaExpGain: number; + /** money gained from work */ + workMoneyGain: number; } interface SourceFileLvl { - /** The number of the source file */ - n: 1|2|3|4|5|6|7|8|9|10|11|12; - /** The level of the source file */ - lvl: number; + /** The number of the source file */ + n: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12; + /** The level of the source file */ + lvl: number; } -type BladeburnerContracts = - | "Tracking" - | "Bounty Hunter" - | "Retirement"; +type BladeburnerContracts = "Tracking" | "Bounty Hunter" | "Retirement"; type BladeburnerOperations = - | "Investigation" - | "Undercover Operation" - | "Sting Operation" - | "Raid" - | "Stealth Retirement Operation" - | "Assassination"; + | "Investigation" + | "Undercover Operation" + | "Sting Operation" + | "Raid" + | "Stealth Retirement Operation" + | "Assassination"; type BladeburnerBlackOps = - | "Operation Typhoon" - | "Operation Zero" - | "Operation X" - | "Operation Titan" - | "Operation Ares" - | "Operation Archangel" - | "Operation Juggernaut" - | "Operation Red Dragon" - | "Operation K" - | "Operation Deckard" - | "Operation Tyrell" - | "Operation Wallace" - | "Operation Shoulder of Orion" - | "Operation Hyron" - | "Operation Morpheus" - | "Operation Ion Storm" - | "Operation Annihilus" - | "Operation Ultron" - | "Operation Centurion" - | "Operation Vindictus" - | "Operation Daedalus"; + | "Operation Typhoon" + | "Operation Zero" + | "Operation X" + | "Operation Titan" + | "Operation Ares" + | "Operation Archangel" + | "Operation Juggernaut" + | "Operation Red Dragon" + | "Operation K" + | "Operation Deckard" + | "Operation Tyrell" + | "Operation Wallace" + | "Operation Shoulder of Orion" + | "Operation Hyron" + | "Operation Morpheus" + | "Operation Ion Storm" + | "Operation Annihilus" + | "Operation Ultron" + | "Operation Centurion" + | "Operation Vindictus" + | "Operation Daedalus"; type BladeburnerGenActions = - | "Training" - | "Field Analysis" - | "Recruitment" - | "Diplomacy" - | "Hyperbolic Regeneration Chamber"; + | "Training" + | "Field Analysis" + | "Recruitment" + | "Diplomacy" + | "Hyperbolic Regeneration Chamber"; type BladeburnerSkills = - | "Blade's Intuition" - | "Cloak" - | "Marksman" - | "Weapon Proficiency" - | "Short-Circuit" - | "Digital Observer" - | "Tracer" - | "Overclock" - | "Reaper" - | "Evasive System" - | "Datamancer" - | "Cyber's Edge" - | "Hands of Midas" - | "Hyperdrive"; + | "Blade's Intuition" + | "Cloak" + | "Marksman" + | "Weapon Proficiency" + | "Short-Circuit" + | "Digital Observer" + | "Tracer" + | "Overclock" + | "Reaper" + | "Evasive System" + | "Datamancer" + | "Cyber's Edge" + | "Hands of Midas" + | "Hyperdrive"; -type BladeburnerActTypes = - | "contracts" - | "operations" - | "black ops" - | "general"; +type BladeburnerActTypes = "contracts" | "operations" | "black ops" | "general"; interface BladeburnerCurAction { - /** Type of Action */ - type: BladeburnerActTypes | "Idle"; - /** Name of Action */ - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps; + /** Type of Action */ + type: BladeburnerActTypes | "Idle"; + /** Name of Action */ + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps; } type CodingContractTypes = - | "Find Largest Prime Factor" - | "Subarray with Maximum Sum" - | "Total Ways to Sum" - | "Spiralize Matrix" - | "Array Jumping Game" - | "Merge Overlapping Intervals" - | "Generate IP Addresses" - | "Algorithmic Stock Trader I" - | "Algorithmic Stock Trader II" - | "Algorithmic Stock Trader III" - | "Algorithmic Stock Trader IV" - | "Minimum Path Sum in a Triangle" - | "Unique Paths in a Grid I" - | "Unique Paths in a Grid II" - | "Sanitize Parentheses in Expression" - | "Find All Valid Math Expressions"; + | "Find Largest Prime Factor" + | "Subarray with Maximum Sum" + | "Total Ways to Sum" + | "Spiralize Matrix" + | "Array Jumping Game" + | "Merge Overlapping Intervals" + | "Generate IP Addresses" + | "Algorithmic Stock Trader I" + | "Algorithmic Stock Trader II" + | "Algorithmic Stock Trader III" + | "Algorithmic Stock Trader IV" + | "Minimum Path Sum in a Triangle" + | "Unique Paths in a Grid I" + | "Unique Paths in a Grid II" + | "Sanitize Parentheses in Expression" + | "Find All Valid Math Expressions"; interface GangGenInfo { - /** Name of faction that the gang belongs to ("Slum Snakes", etc.) */ - faction: GangName; - /** Boolean indicating whether or not its a hacking gang */ - isHacking: boolean; - /** Money earned per second */ - moneyGainRate: number; - /** Gang's power for territory warfare */ - power: number; - /** Gang's respect */ - respect: number; - /** Respect earned per second */ - respectGainRate: number; - /** Amount of territory held. Returned in decimal form, not percentage */ - territory: number; - /** Clash chance. Returned in decimal form, not percentage */ - territoryClashChance: number; - /** Gang's wanted level */ - wantedLevel: number; - /** Wanted level gained/lost per second (negative for losses) */ - wantedLevelGainRate: number; + /** Name of faction that the gang belongs to ("Slum Snakes", etc.) */ + faction: GangName; + /** Boolean indicating whether or not its a hacking gang */ + isHacking: boolean; + /** Money earned per second */ + moneyGainRate: number; + /** Gang's power for territory warfare */ + power: number; + /** Gang's respect */ + respect: number; + /** Respect earned per second */ + respectGainRate: number; + /** Amount of territory held. Returned in decimal form, not percentage */ + territory: number; + /** Clash chance. Returned in decimal form, not percentage */ + territoryClashChance: number; + /** Gang's wanted level */ + wantedLevel: number; + /** Wanted level gained/lost per second (negative for losses) */ + wantedLevelGainRate: number; } interface GangOtherInfoObject { - /** Gang power */ - power: number; - /** Gang territory, in decimal form */ - territory: number; + /** Gang power */ + power: number; + /** Gang territory, in decimal form */ + territory: number; } type GangOtherInfo = { - /** Stock Symbol */ - [key in GangName]: GangOtherInfoObject[]; + /** Stock Symbol */ + [key in GangName]: GangOtherInfoObject[]; }; type GangEquipment = - | "Baseball Bat" - | "Katana" - | "Glock 18C" - | "P90C" - | "Steyr AUG" - | "AK-47" - | "M15A10 Assault Rifle" - | "AWM Sniper Rifle" - | "Bulletproof Vest" - | "Full Body Armor" - | "Liquid Body Armor" - | "Graphene Plating Armor" - | "Ford Flex V20" - | "ATX1070 Superbike" - | "Mercedes-Benz S9001" - | "White Ferrari" - | "NUKE Rootkit" - | "Soulstealer Rootkit" - | "Demon Rootkit" - | "Hmap Node" - | "Jack the Ripper"; + | "Baseball Bat" + | "Katana" + | "Glock 18C" + | "P90C" + | "Steyr AUG" + | "AK-47" + | "M15A10 Assault Rifle" + | "AWM Sniper Rifle" + | "Bulletproof Vest" + | "Full Body Armor" + | "Liquid Body Armor" + | "Graphene Plating Armor" + | "Ford Flex V20" + | "ATX1070 Superbike" + | "Mercedes-Benz S9001" + | "White Ferrari" + | "NUKE Rootkit" + | "Soulstealer Rootkit" + | "Demon Rootkit" + | "Hmap Node" + | "Jack the Ripper"; -type GangEquipmentType = - | "Weapon" - | "Armor" - | "Vehicle" - | "Rootkit" - | "Augmentation"; +type GangEquipmentType = "Weapon" | "Armor" | "Vehicle" | "Rootkit" | "Augmentation"; type GangAugmentations = - | "Bionic Arms" - | "Bionic Legs" - | "Bionic Spine" - | "BrachiBlades" - | "Nanofiber Weave" - | "Synthetic Heart" - | "Synfibril Muscle" - | "BitWire" - | "Neuralstimulator" - | "DataJack" - | "Graphene Bone Lacings"; + | "Bionic Arms" + | "Bionic Legs" + | "Bionic Spine" + | "BrachiBlades" + | "Nanofiber Weave" + | "Synthetic Heart" + | "Synfibril Muscle" + | "BitWire" + | "Neuralstimulator" + | "DataJack" + | "Graphene Bone Lacings"; type GangTasks = - | "Unassigned" - | "Ransomware" - | "Phishing" - | "Identity Theft" - | "DDoS Attacks" - | "Plant Virus" - | "Fraud & Counterfeiting" - | "Money Laundering" - | "Cyberterrorism" - | "Ethical Hacking" - | "Mug People" - | "Deal Drugs" - | "Strongarm Civilians" - | "Run a Con" - | "Armed Robbery" - | "Traffick Illegal Arms" - | "Threaten & Blackmail" - | "Human Trafficking" - | "Terrorism" - | "Vigilante Justice" - | "Train Combat" - | "Train Hacking" - | "Train Charisma" - | "Territory Warfare"; + | "Unassigned" + | "Ransomware" + | "Phishing" + | "Identity Theft" + | "DDoS Attacks" + | "Plant Virus" + | "Fraud & Counterfeiting" + | "Money Laundering" + | "Cyberterrorism" + | "Ethical Hacking" + | "Mug People" + | "Deal Drugs" + | "Strongarm Civilians" + | "Run a Con" + | "Armed Robbery" + | "Traffick Illegal Arms" + | "Threaten & Blackmail" + | "Human Trafficking" + | "Terrorism" + | "Vigilante Justice" + | "Train Combat" + | "Train Hacking" + | "Train Charisma" + | "Territory Warfare"; interface GangTasksStats { - /** Task name */ - name: GangTasks; - /** Task Description */ - desc: string; - /** Is a task of a hacking gang */ - isHacking: boolean; - /** Is a task of a combat gang */ - isCombat: boolean; - /** Base respect earned */ - baseRespect: number; - /** Base wanted earned */ - baseWanted: number; - /** Base money earned */ - baseMoney: number; - /** Hacking skill impact on task scaling */ - hackWeight: number; - /** Stength skill impact on task scaling */ - strWeight: number; - /** Defense skill impact on task scaling */ - defWeight: number; - /** Dexterity skill impact on task scaling */ - dexWeight: number; - /** Agility skill impact on task scaling */ - agiWeight: number; - /** Charisma skill impact on task scaling */ - chaWeight: number; - /** Number representing the difficulty of the task */ - difficulty: number; - /** Territory impact on task scaling */ - territory: GangTasksTerritory; + /** Task name */ + name: GangTasks; + /** Task Description */ + desc: string; + /** Is a task of a hacking gang */ + isHacking: boolean; + /** Is a task of a combat gang */ + isCombat: boolean; + /** Base respect earned */ + baseRespect: number; + /** Base wanted earned */ + baseWanted: number; + /** Base money earned */ + baseMoney: number; + /** Hacking skill impact on task scaling */ + hackWeight: number; + /** Stength skill impact on task scaling */ + strWeight: number; + /** Defense skill impact on task scaling */ + defWeight: number; + /** Dexterity skill impact on task scaling */ + dexWeight: number; + /** Agility skill impact on task scaling */ + agiWeight: number; + /** Charisma skill impact on task scaling */ + chaWeight: number; + /** Number representing the difficulty of the task */ + difficulty: number; + /** Territory impact on task scaling */ + territory: GangTasksTerritory; } interface GangEquipmentStats { - /** Strength multiplier */ - str: number; - /** Defense multiplier */ - def: number; - /** Dexterity multiplier */ - dex: number; - /** Agility multiplier */ - agi: number; - /** Charisma multiplier */ - cha: number; - /** Hacking multiplier */ - hack: number; + /** Strength multiplier */ + str: number; + /** Defense multiplier */ + def: number; + /** Dexterity multiplier */ + dex: number; + /** Agility multiplier */ + agi: number; + /** Charisma multiplier */ + cha: number; + /** Hacking multiplier */ + hack: number; } interface GangTasksTerritory { - /** Money gain impact on task scaling */ - money: number; - /** Respect gain impact on task scaling */ - respect: number; - /** Wanted gain impact on task scaling */ - wanted: number; + /** Money gain impact on task scaling */ + money: number; + /** Respect gain impact on task scaling */ + respect: number; + /** Wanted gain impact on task scaling */ + wanted: number; } interface GangMemberInfo { - /** Agility stat */ - agility: number; - /** Agility multiplier from equipment. Decimal form */ - agilityEquipMult: number; - /** Agility multiplier from ascension. Decimal form */ - agilityAscensionMult: number; - /** Array of names of all owned Augmentations */ - augmentations: GangAugmentations[]; - /** Charisma stat */ - charisma: number; - /** Charisma multiplier from equipment. Decimal form */ - charismaEquipMult: number; - /** Charisma multiplier from ascension. Decimal form */ - charismaAscensionMult: number; - /** Defense stat */ - defense: number; - /** Defense multiplier from equipment. Decimal form */ - defenseEquipMult: number; - /** Defense multiplier from ascension. Decimal form */ - defenseAscensionMult: number; - /** Dexterity stat */ - dexterity: number; - /** Dexterity multiplier from equipment. Decimal form */ - dexterityEquipMult: number; - /** Dexterity multiplier from ascension. Decimal form */ - dexterityAscensionMult: number; - /** Array of names of all owned Non-Augmentation Equipment */ - equipment: GangEquipment[]; - /** Hacking stat */ - hacking: number; - /** Hacking multiplier from equipment. Decimal form */ - hackingEquipMult: number; - /** Hacking multiplier from ascension. Decimal form */ - hackingAscensionMult: number; - /** Strength stat */ - strength: number; - /** Strength multiplier from equipment. Decimal form */ - strengthEquipMult: number; - /** Strength multiplier from ascension. Decimal form */ - strengthAscensionMult: number; - /** Name of currently assigned task */ - task: GangTasks; + /** Agility stat */ + agility: number; + /** Agility multiplier from equipment. Decimal form */ + agilityEquipMult: number; + /** Agility multiplier from ascension. Decimal form */ + agilityAscensionMult: number; + /** Array of names of all owned Augmentations */ + augmentations: GangAugmentations[]; + /** Charisma stat */ + charisma: number; + /** Charisma multiplier from equipment. Decimal form */ + charismaEquipMult: number; + /** Charisma multiplier from ascension. Decimal form */ + charismaAscensionMult: number; + /** Defense stat */ + defense: number; + /** Defense multiplier from equipment. Decimal form */ + defenseEquipMult: number; + /** Defense multiplier from ascension. Decimal form */ + defenseAscensionMult: number; + /** Dexterity stat */ + dexterity: number; + /** Dexterity multiplier from equipment. Decimal form */ + dexterityEquipMult: number; + /** Dexterity multiplier from ascension. Decimal form */ + dexterityAscensionMult: number; + /** Array of names of all owned Non-Augmentation Equipment */ + equipment: GangEquipment[]; + /** Hacking stat */ + hacking: number; + /** Hacking multiplier from equipment. Decimal form */ + hackingEquipMult: number; + /** Hacking multiplier from ascension. Decimal form */ + hackingAscensionMult: number; + /** Strength stat */ + strength: number; + /** Strength multiplier from equipment. Decimal form */ + strengthEquipMult: number; + /** Strength multiplier from ascension. Decimal form */ + strengthAscensionMult: number; + /** Name of currently assigned task */ + task: GangTasks; } interface GangMemberAscension { - /** Amount of respect lost from ascending */ - respect: number; - /** Hacking multiplier gained from ascending. Decimal form */ - hack: number; - /** Strength multiplier gained from ascending. Decimal form */ - str: number; - /** Defense multiplier gained from ascending. Decimal form */ - def: number; - /** Dexterity multiplier gained from ascending. Decimal form */ - dex: number; - /** Agility multiplier gained from ascending. Decimal form */ - agi: number; - /** Charisma multiplier gained from ascending. Decimal form */ - cha: number; + /** Amount of respect lost from ascending */ + respect: number; + /** Hacking multiplier gained from ascending. Decimal form */ + hack: number; + /** Strength multiplier gained from ascending. Decimal form */ + str: number; + /** Defense multiplier gained from ascending. Decimal form */ + def: number; + /** Dexterity multiplier gained from ascending. Decimal form */ + dex: number; + /** Agility multiplier gained from ascending. Decimal form */ + agi: number; + /** Charisma multiplier gained from ascending. Decimal form */ + cha: number; } interface SleeveStats { - /** current shock of the sleeve [0-100] */ - shock: 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20 - |21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37 - |38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54 - |55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71 - |72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88 - |89|90|91|92|93|94|95|96|97|98|99|100; - /** current sync of the sleeve [0-100] */ - sync: 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20 - |21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37 - |38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54 - |55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71 - |72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88 - |89|90|91|92|93|94|95|96|97|98|99|100; - /** current hacking skill of the sleeve */ - hacking_skill: number; - /** current strength of the sleeve */ - strength: number; - /** current defense of the sleeve */ - defense: number; - /** current dexterity of the sleeve */ - dexterity: number; - /** current agility of the sleeve */ - agility: number; - /** current charisma of the sleeve */ - charisma: number; + /** current shock of the sleeve [0-100] */ + shock: + | 0 + | 1 + | 2 + | 3 + | 4 + | 5 + | 6 + | 7 + | 8 + | 9 + | 10 + | 11 + | 12 + | 13 + | 14 + | 15 + | 16 + | 17 + | 18 + | 19 + | 20 + | 21 + | 22 + | 23 + | 24 + | 25 + | 26 + | 27 + | 28 + | 29 + | 30 + | 31 + | 32 + | 33 + | 34 + | 35 + | 36 + | 37 + | 38 + | 39 + | 40 + | 41 + | 42 + | 43 + | 44 + | 45 + | 46 + | 47 + | 48 + | 49 + | 50 + | 51 + | 52 + | 53 + | 54 + | 55 + | 56 + | 57 + | 58 + | 59 + | 60 + | 61 + | 62 + | 63 + | 64 + | 65 + | 66 + | 67 + | 68 + | 69 + | 70 + | 71 + | 72 + | 73 + | 74 + | 75 + | 76 + | 77 + | 78 + | 79 + | 80 + | 81 + | 82 + | 83 + | 84 + | 85 + | 86 + | 87 + | 88 + | 89 + | 90 + | 91 + | 92 + | 93 + | 94 + | 95 + | 96 + | 97 + | 98 + | 99 + | 100; + /** current sync of the sleeve [0-100] */ + sync: + | 0 + | 1 + | 2 + | 3 + | 4 + | 5 + | 6 + | 7 + | 8 + | 9 + | 10 + | 11 + | 12 + | 13 + | 14 + | 15 + | 16 + | 17 + | 18 + | 19 + | 20 + | 21 + | 22 + | 23 + | 24 + | 25 + | 26 + | 27 + | 28 + | 29 + | 30 + | 31 + | 32 + | 33 + | 34 + | 35 + | 36 + | 37 + | 38 + | 39 + | 40 + | 41 + | 42 + | 43 + | 44 + | 45 + | 46 + | 47 + | 48 + | 49 + | 50 + | 51 + | 52 + | 53 + | 54 + | 55 + | 56 + | 57 + | 58 + | 59 + | 60 + | 61 + | 62 + | 63 + | 64 + | 65 + | 66 + | 67 + | 68 + | 69 + | 70 + | 71 + | 72 + | 73 + | 74 + | 75 + | 76 + | 77 + | 78 + | 79 + | 80 + | 81 + | 82 + | 83 + | 84 + | 85 + | 86 + | 87 + | 88 + | 89 + | 90 + | 91 + | 92 + | 93 + | 94 + | 95 + | 96 + | 97 + | 98 + | 99 + | 100; + /** current hacking skill of the sleeve */ + hacking_skill: number; + /** current strength of the sleeve */ + strength: number; + /** current defense of the sleeve */ + defense: number; + /** current dexterity of the sleeve */ + dexterity: number; + /** current agility of the sleeve */ + agility: number; + /** current charisma of the sleeve */ + charisma: number; } interface SleeveInformation { - /** location of the sleeve */ - city: City; - /** current hp of the sleeve */ - hp: number; - /** max hp of the sleeve */ - maxHp: number; - /** jobs available to the sleeve */ - jobs: string[]; - /** job titles available to the sleeve */ - jobTitle: CompanyField[]; - /** does this sleeve have access to the tor router */ - tor: boolean; - /** sleeve multipliers */ - mult: CharacterMult; - /** time spent on the current task in milliseconds */ - timeWorked: number; - /** earnings synchronized to other sleeves */ - earningsForSleeves: SleeveWorkGains; - /** earnings synchronized to the player */ - earningsForPlayer: SleeveWorkGains; - /** earnings for this sleeve */ - earningsForTask: SleeveWorkGains; - /** faction or company reputation gained for the current task */ - workRepGain: number; + /** location of the sleeve */ + city: City; + /** current hp of the sleeve */ + hp: number; + /** max hp of the sleeve */ + maxHp: number; + /** jobs available to the sleeve */ + jobs: string[]; + /** job titles available to the sleeve */ + jobTitle: CompanyField[]; + /** does this sleeve have access to the tor router */ + tor: boolean; + /** sleeve multipliers */ + mult: CharacterMult; + /** time spent on the current task in milliseconds */ + timeWorked: number; + /** earnings synchronized to other sleeves */ + earningsForSleeves: SleeveWorkGains; + /** earnings synchronized to the player */ + earningsForPlayer: SleeveWorkGains; + /** earnings for this sleeve */ + earningsForTask: SleeveWorkGains; + /** faction or company reputation gained for the current task */ + workRepGain: number; } interface SleeveTask { - /** task type */ - task: string; - /** crime currently attempting, if any */ - crime: Crime | ""; - /** location of the task, if any */ - location: City | ""; - /** stat being trained at the gym, if any */ - gymStatType: GymStat | ""; - /** faction work type being performed, if any */ - factionWorkType: FactionWork | ""; + /** task type */ + task: string; + /** crime currently attempting, if any */ + crime: Crime | ""; + /** location of the task, if any */ + location: City | ""; + /** stat being trained at the gym, if any */ + gymStatType: GymStat | ""; + /** faction work type being performed, if any */ + factionWorkType: FactionWork | ""; } interface TIX { + /** + * Returns an array of the symbols of the tradable stocks + * + * @ramCost 2 GB + * @returns {string[]} Array of the symbols of the tradable stocks. + */ + getSymbols(): StockSymbol[]; - /** - * Returns an array of the symbols of the tradable stocks - * - * @ramCost 2 GB - * @returns {string[]} Array of the symbols of the tradable stocks. - */ - getSymbols (): StockSymbol[]; + /** + * Returns the price of a stock, given its symbol (NOT the company name). + * The symbol is a sequence of two to four capital letters. + * + * The stock’s price is the average of its bid and ask price + * + * @example + * \`\`\`js + * getPrice("FISG"); + * \`\`\` + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @returns {number} The price of a stock. + */ + getPrice(sym: StockSymbol): number; - /** - * Returns the price of a stock, given its symbol (NOT the company name). - * The symbol is a sequence of two to four capital letters. - * - * The stock’s price is the average of its bid and ask price - * - * @example - * \`\`\`js - * getPrice("FISG"); - * \`\`\` - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @returns {number} The price of a stock. - */ - getPrice (sym: StockSymbol): number; + /** + * Given a stock’s symbol (NOT the company name), returns the ask price of that stock. + * The symbol is a sequence of two to four capital letters. + * + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @returns {number} The ask price of a stock. + */ + getAskPrice(sym: StockSymbol): number; - /** - * Given a stock’s symbol (NOT the company name), returns the ask price of that stock. - * The symbol is a sequence of two to four capital letters. - * - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @returns {number} The ask price of a stock. - */ - getAskPrice (sym: StockSymbol): number; + /** + * Given a stock’s symbol (NOT the company name), returns the bid price of that stock. + * The symbol is a sequence of two to four capital letters. + * + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @returns {number} The bid price of a stock. + */ + getBidPrice(sym: StockSymbol): number; - /** - * Given a stock’s symbol (NOT the company name), returns the bid price of that stock. - * The symbol is a sequence of two to four capital letters. - * - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @returns {number} The bid price of a stock. - */ - getBidPrice (sym: StockSymbol): number; + /** + * Returns an array of four elements that represents the player’s position in a stock. + * + * The first element is the returned array is the number of shares the player owns of + * the stock in the Long position. The second element in the array is the average price + * of the player’s shares in the Long position. + * + * The third element in the array is the number of shares the player owns of the stock + * in the Short position. The fourth element in the array is the average price of the + * player’s Short position. + * + * All elements in the returned array are numeric. + * + * @example + * \`\`\`js + * pos = getPosition("ECP"); + * shares = pos[0]; + * avgPx = pos[1]; + * sharesShort = pos[2]; + * avgPxShort = pos[3]; + * \`\`\` + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @returns {[number,number,number,number]} Array of four elements that represents the player’s position in a stock. + */ + getPosition(sym: StockSymbol): [number, number, number, number]; - /** - * Returns an array of four elements that represents the player’s position in a stock. - * - * The first element is the returned array is the number of shares the player owns of - * the stock in the Long position. The second element in the array is the average price - * of the player’s shares in the Long position. - * - * The third element in the array is the number of shares the player owns of the stock - * in the Short position. The fourth element in the array is the average price of the - * player’s Short position. - * - * All elements in the returned array are numeric. - * - * @example - * \`\`\`js - * pos = getPosition("ECP"); - * shares = pos[0]; - * avgPx = pos[1]; - * sharesShort = pos[2]; - * avgPxShort = pos[3]; - * \`\`\` - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @returns {[number,number,number,number]} Array of four elements that represents the player’s position in a stock. - */ - getPosition (sym: StockSymbol): [number, number, number, number]; + /** + * Returns the maximum number of shares that the stock has. + * This is the maximum amount of the stock that can be purchased + * in both the Long and Short positions combined. + * + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @returns {number} Maximum number of shares that the stock has. + */ + getMaxShares(sym: StockSymbol): number; - /** - * Returns the maximum number of shares that the stock has. - * This is the maximum amount of the stock that can be purchased - * in both the Long and Short positions combined. - * - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @returns {number} Maximum number of shares that the stock has. - */ - getMaxShares (sym: StockSymbol): number; + /** + * Calculates and returns how much it would cost to buy a given number of shares of a stock. + * This takes into account spread, large transactions influencing the price of the stock and commission fees. + * + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares to purchase. + * @param {string} posType Specifies whether the order is a “Long” or “Short” position. + * @returns {number} Cost to buy a given number of shares of a stock. + */ + getPurchaseCost(sym: StockSymbol, shares: number, posType: OrderPos): number; - /** - * Calculates and returns how much it would cost to buy a given number of shares of a stock. - * This takes into account spread, large transactions influencing the price of the stock and commission fees. - * - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares to purchase. - * @param {string} posType Specifies whether the order is a “Long” or “Short” position. - * @returns {number} Cost to buy a given number of shares of a stock. - */ - getPurchaseCost (sym: StockSymbol, shares: Number, posType: OrderPos): number; + /** + * Calculates and returns how much you would gain from selling a given number of shares of a stock. + * This takes into account spread, large transactions influencing the price of the stock and commission fees. + * + * @ramCost 2 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares to sell. + * @param {string} posType Specifies whether the order is a “Long” or “Short” position. + * @returns {number} Gain from selling a given number of shares of a stock. + */ + getSaleGain(sym: StockSymbol, shares: number, posType: OrderPos): number; - /** - * Calculates and returns how much you would gain from selling a given number of shares of a stock. - * This takes into account spread, large transactions influencing the price of the stock and commission fees. - * - * @ramCost 2 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares to sell. - * @param {string} posType Specifies whether the order is a “Long” or “Short” position. - * @returns {number} Gain from selling a given number of shares of a stock. - */ - getSaleGain (sym: StockSymbol, shares: Number, posType: OrderPos): number; + /** + * Attempts to purchase shares of a stock using a Market Order. + * + * If the player does not have enough money to purchase the specified number of shares, + * then no shares will be purchased. Remember that every transaction on the stock exchange + * costs a certain commission fee. + * + * If this function successfully purchases the shares, it will return the stock price at which + * each share was purchased. Otherwise, it will return 0. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares to purchased. Must be positive. Will be rounded to nearest integer. + * @returns {number} The stock price at which each share was purchased, otherwise 0 if the shares weren't purchased. + */ + buy(sym: StockSymbol, shares: number): number; + /** + * Attempts to sell shares of a stock using a Market Order. + * + * If the specified number of shares in the function exceeds the amount that the player + * actually owns, then this function will sell all owned shares. Remember that every + * transaction on the stock exchange costs a certain commission fee. + * + * The net profit made from selling stocks with this function is reflected in the script’s + * statistics. This net profit is calculated as: + * + * shares * (sell_price - average_price_of_purchased_shares) + * + * If the sale is successful, this function will return the stock price at + * which each share was sold. Otherwise, it will return 0. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares to sell. Must be positive. Will be rounded to nearest integer. + * @returns {number} The stock price at which each share was sold, otherwise 0 if the shares weren't sold. + */ + sell(sym: StockSymbol, shares: number): number; - /** - * Attempts to purchase shares of a stock using a Market Order. - * - * If the player does not have enough money to purchase the specified number of shares, - * then no shares will be purchased. Remember that every transaction on the stock exchange - * costs a certain commission fee. - * - * If this function successfully purchases the shares, it will return the stock price at which - * each share was purchased. Otherwise, it will return 0. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares to purchased. Must be positive. Will be rounded to nearest integer. - * @returns {number} The stock price at which each share was purchased, otherwise 0 if the shares weren't purchased. - */ - buy (sym: StockSymbol, shares: number): number; + /** + * Attempts to purchase a short position of a stock using a Market Order. + * + * The ability to short a stock is **not** immediately available to the player and + * must be unlocked later on in the game. + * + * If the player does not have enough money to purchase the specified number of shares, + * then no shares will be purchased. Remember that every transaction on the stock exchange + * costs a certain commission fee. + * + * If the purchase is successful, this function will return the stock price at which each + * share was purchased. Otherwise, it will return 0. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares to short. Must be positive. Will be rounded to nearest integer. + * @returns {number} The stock price at which each share was purchased, otherwise 0 if the shares weren't purchased. + */ + short(sym: StockSymbol, shares: number): number; - /** - * Attempts to sell shares of a stock using a Market Order. - * - * If the specified number of shares in the function exceeds the amount that the player - * actually owns, then this function will sell all owned shares. Remember that every - * transaction on the stock exchange costs a certain commission fee. - * - * The net profit made from selling stocks with this function is reflected in the script’s - * statistics. This net profit is calculated as: - * - * shares * (sell_price - average_price_of_purchased_shares) - * - * If the sale is successful, this function will return the stock price at - * which each share was sold. Otherwise, it will return 0. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares to sell. Must be positive. Will be rounded to nearest integer. - * @returns {number} The stock price at which each share was sold, otherwise 0 if the shares weren't sold. - */ - sell (sym: StockSymbol, shares: number): number; + /** + * Attempts to sell a short position of a stock using a Market Order. + * + * The ability to short a stock is **not** immediately available to the player and + * must be unlocked later on in the game. + * + * If the specified number of shares exceeds the amount that the player actually owns, + * then this function will sell all owned shares. Remember that every transaction on + * the stock exchange costs a certain commission fee. + * + * If the sale is successful, this function will return the stock price at which each + * share was sold. Otherwise it will return 0. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares to sell. Must be positive. Will be rounded to nearest integer. + * @returns {number} The stock price at which each share was sold, otherwise 0 if the shares weren't sold. + */ + sellShort(sym: StockSymbol, shares: number): number; - /** - * Attempts to purchase a short position of a stock using a Market Order. - * - * The ability to short a stock is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * If the player does not have enough money to purchase the specified number of shares, - * then no shares will be purchased. Remember that every transaction on the stock exchange - * costs a certain commission fee. - * - * If the purchase is successful, this function will return the stock price at which each - * share was purchased. Otherwise, it will return 0. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares to short. Must be positive. Will be rounded to nearest integer. - * @returns {number} The stock price at which each share was purchased, otherwise 0 if the shares weren't purchased. - */ - short (sym: StockSymbol, shares: number): number; + /** + * Places an order on the stock market. This function only works for Limit and Stop Orders. + * + * The ability to place limit and stop orders is **not** immediately available to the player and + * must be unlocked later on in the game. + * + * Returns true if the order is successfully placed, and false otherwise. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares for order. Must be positive. Will be rounded to nearest integer. + * @param {number} price Execution price for the order. + * @param {string} type Type of order. + * @param {string} pos Specifies whether the order is a “Long” or “Short” position. + * @returns {boolean} True if the order is successfully placed, and false otherwise. + */ + placeOrder(sym: StockSymbol, shares: number, price: number, type: OrderType, pos: OrderPos): boolean; - /** - * Attempts to sell a short position of a stock using a Market Order. - * - * The ability to short a stock is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * If the specified number of shares exceeds the amount that the player actually owns, - * then this function will sell all owned shares. Remember that every transaction on - * the stock exchange costs a certain commission fee. - * - * If the sale is successful, this function will return the stock price at which each - * share was sold. Otherwise it will return 0. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares to sell. Must be positive. Will be rounded to nearest integer. - * @returns {number} The stock price at which each share was sold, otherwise 0 if the shares weren't sold. - */ - sellShort (sym: StockSymbol, shares: number): number; + /** + * Cancels an oustanding Limit or Stop order on the stock market. + * + * The ability to use limit and stop orders is **not** immediately available to the player and + * must be unlocked later on in the game. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @param {number} shares Number of shares for order. Must be positive. Will be rounded to nearest integer. + * @param {number} price Execution price for the order. + * @param {string} type Type of order. + * @param {string} pos Specifies whether the order is a “Long” or “Short” position. + */ + cancelOrder(sym: StockSymbol, shares: number, price: number, type: OrderType, pos: OrderPos): void; - /** - * Places an order on the stock market. This function only works for Limit and Stop Orders. - * - * The ability to place limit and stop orders is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * Returns true if the order is successfully placed, and false otherwise. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares for order. Must be positive. Will be rounded to nearest integer. - * @param {number} price Execution price for the order. - * @param {string} type Type of order. - * @param {string} pos Specifies whether the order is a “Long” or “Short” position. - * @returns {boolean} True if the order is successfully placed, and false otherwise. - */ - placeOrder ( - sym: StockSymbol, - shares: number, - price: number, - type: OrderType, - pos: OrderPos, - ): boolean; + /** + * Returns your order book for the stock market. + * + * This is an object containing information for all the Limit and Stop Orders you have in the stock market. + * The object has the following structure: + * + * \`\`\`js + * { + * StockSymbol1: [ // Array of orders for this stock + * { + * shares: Order quantity + * price: Order price + * type: Order type + * position: Either "L" or "S" for Long or Short position + * }, + * { + * ... + * }, + * ... + * ], + * StockSymbol2: [ // Array of orders for this stock + * ... + * ], + * ... + * } + * \`\`\` + * The “Order type” property can have one of the following four values: + * * “Limit Buy Order” + * * “Limit Sell Order” + * * “Stop Buy Order” + * * “Stop Sell Order” + * Note that the order book will only contain information for stocks that you actually have orders in. + * + * @example + * \`\`\`js + * "If you do not have orders in Nova Medical (NVMD), then the returned object will not have a “NVMD” property." + * { + * ECP: [ + * { + * shares: 5, + * price: 100,000 + * type: "Stop Buy Order", + * position: "S", + * }, + * { + * shares: 25, + * price: 125,000 + * type: "Limit Sell Order", + * position: "L", + * }, + * ], + * SYSC: [ + * { + * shares: 100, + * price: 10,000 + * type: "Limit Buy Order", + * position: "L", + * }, + * ], + * } + * \`\`\` + * @ramCost 2.5 GB + * @returns {object} Object containing information for all the Limit and Stop Orders you have in the stock market. + */ + getOrders(): StockOrder; - /** - * Cancels an oustanding Limit or Stop order on the stock market. - * - * The ability to use limit and stop orders is **not** immediately available to the player and - * must be unlocked later on in the game. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @param {number} shares Number of shares for order. Must be positive. Will be rounded to nearest integer. - * @param {number} price Execution price for the order. - * @param {string} type Type of order. - * @param {string} pos Specifies whether the order is a “Long” or “Short” position. - */ - cancelOrder ( - sym: StockSymbol, - shares: number, - price: number, - type: OrderType, - pos: OrderPos, - ): void; + /** + * Returns the volatility of the specified stock. + * + * Volatility represents the maximum percentage by which a stock’s price can change every tick. + * The volatility is returned as a decimal value, NOT a percentage + * (e.g. if a stock has a volatility of 3%, then this function will return 0.03, NOT 3). + * + * In order to use this function, you must first purchase access to the Four Sigma (4S) Market Data TIX API. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @returns {number} Volatility of the specified stock. + */ + getVolatility(sym: StockSymbol): number; - /** - * Returns your order book for the stock market. - * - * This is an object containing information for all the Limit and Stop Orders you have in the stock market. - * The object has the following structure: - * - * \`\`\`js - * { - * StockSymbol1: [ // Array of orders for this stock - * { - * shares: Order quantity - * price: Order price - * type: Order type - * position: Either "L" or "S" for Long or Short position - * }, - * { - * ... - * }, - * ... - * ], - * StockSymbol2: [ // Array of orders for this stock - * ... - * ], - * ... - * } - * \`\`\` - * The “Order type” property can have one of the following four values: - * * “Limit Buy Order” - * * “Limit Sell Order” - * * “Stop Buy Order” - * * “Stop Sell Order” - * Note that the order book will only contain information for stocks that you actually have orders in. - * - * @example - * \`\`\`js - * "If you do not have orders in Nova Medical (NVMD), then the returned object will not have a “NVMD” property." - * { - * ECP: [ - * { - * shares: 5, - * price: 100,000 - * type: "Stop Buy Order", - * position: "S", - * }, - * { - * shares: 25, - * price: 125,000 - * type: "Limit Sell Order", - * position: "L", - * }, - * ], - * SYSC: [ - * { - * shares: 100, - * price: 10,000 - * type: "Limit Buy Order", - * position: "L", - * }, - * ], - * } - * \`\`\` - * @ramCost 2.5 GB - * @returns {object} Object containing information for all the Limit and Stop Orders you have in the stock market. - */ - getOrders (): StockOrder; + /** + * Returns the probability that the specified stock’s price will increase (as opposed to decrease) during the next tick. + * + * The probability is returned as a decimal value, NOT a percentage + * (e.g. if a stock has a 60% chance of increasing, then this function will return 0.6, NOT 60). + * + * In other words, if this function returned 0.30 for a stock, then this means that the stock’s price has a + * 30% chance of increasing and a 70% chance of decreasing during the next tick. + * + * In order to use this function, you must first purchase access to the Four Sigma (4S) Market Data TIX API. + * + * @ramCost 2.5 GB + * @param {string} sym Stock symbol. + * @returns {number} Probability that the specified stock’s price will increase (as opposed to decrease) during the next tick. + */ + getForecast(sym: StockSymbol): number; - /** - * Returns the volatility of the specified stock. - * - * Volatility represents the maximum percentage by which a stock’s price can change every tick. - * The volatility is returned as a decimal value, NOT a percentage - * (e.g. if a stock has a volatility of 3%, then this function will return 0.03, NOT 3). - * - * In order to use this function, you must first purchase access to the Four Sigma (4S) Market Data TIX API. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @returns {number} Volatility of the specified stock. - */ - getVolatility (sym: StockSymbol): number; + /** + * Purchase 4S Market Data Access. + * + * Returns true if you successfully purchased it or if you already have access. Returns false otherwise. + * + * @ramCost 2.5 GB + * @returns {boolean} True if you successfully purchased it or if you already have access, false otherwise. + */ + purchase4SMarketData(): boolean; - /** - * Returns the probability that the specified stock’s price will increase (as opposed to decrease) during the next tick. - * - * The probability is returned as a decimal value, NOT a percentage - * (e.g. if a stock has a 60% chance of increasing, then this function will return 0.6, NOT 60). - * - * In other words, if this function returned 0.30 for a stock, then this means that the stock’s price has a - * 30% chance of increasing and a 70% chance of decreasing during the next tick. - * - * In order to use this function, you must first purchase access to the Four Sigma (4S) Market Data TIX API. - * - * @ramCost 2.5 GB - * @param {string} sym Stock symbol. - * @returns {number} Probability that the specified stock’s price will increase (as opposed to decrease) during the next tick. - */ - getForecast (sym: StockSymbol): number; - - /** - * Purchase 4S Market Data Access. - * - * Returns true if you successfully purchased it or if you already have access. Returns false otherwise. - * - * @ramCost 2.5 GB - * @returns {boolean} True if you successfully purchased it or if you already have access, false otherwise. - */ - purchase4SMarketData (): boolean; - - /** - * Purchase 4S Market Data TIX API Access. - * - * Returns true if you successfully purchased it or if you already have access. Returns false otherwise. - * - * @ramCost 2.5 GB - * @returns {boolean} True if you successfully purchased it or if you already have access, false otherwise. - */ - purchase4SMarketDataTixApi (): boolean; + /** + * Purchase 4S Market Data TIX API Access. + * + * Returns true if you successfully purchased it or if you already have access. Returns false otherwise. + * + * @ramCost 2.5 GB + * @returns {boolean} True if you successfully purchased it or if you already have access, false otherwise. + */ + purchase4SMarketDataTixApi(): boolean; } interface Singularity { - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically set you to start taking a course at a university. - * If you are already in the middle of some “working” action (such as working at a - * company, for a faction, or on a program), then running this function will automatically - * cancel that action and give you your earnings. - * - * The cost and experience gains for all of these universities and classes are the same as - * if you were to manually visit and take these classes. - * - * @ramCost 2 GB - * @singularity Level 1 - * @param {string} universityName Name of university. You must be in the correct city for whatever university you specify. - * @param {string} courseName Name of course. - * @returns {boolean} True if actions is successfully started, false otherwise. - */ - universityCourse ( - universityName: University, - courseName: UniversityCourse, - ): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically set you to start taking a course at a university. + * If you are already in the middle of some “working” action (such as working at a + * company, for a faction, or on a program), then running this function will automatically + * cancel that action and give you your earnings. + * + * The cost and experience gains for all of these universities and classes are the same as + * if you were to manually visit and take these classes. + * + * @ramCost 2 GB + * @singularity Level 1 + * @param {string} universityName Name of university. You must be in the correct city for whatever university you specify. + * @param {string} courseName Name of course. + * @returns {boolean} True if actions is successfully started, false otherwise. + */ + universityCourse(universityName: University, courseName: UniversityCourse): boolean; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically set you to start working out at a gym to train - * a particular stat. If you are already in the middle of some “working” action - * (such as working at a company, for a faction, or on a program), then running - * this function will automatically cancel that action and give you your earnings. - * - * The cost and experience gains for all of these gyms are the same as if you were - * to manually visit these gyms and train - * - * @ramCost 2 GB - * @singularity Level 1 - * @param {string} gymName Name of gym. You must be in the correct city for whatever gym you specify. - * @param {string} stat The stat you want to train. - * @returns {boolean} True if actions is successfully started, false otherwise. - */ - gymWorkout (gymName: Gym, stat: GymStat): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically set you to start working out at a gym to train + * a particular stat. If you are already in the middle of some “working” action + * (such as working at a company, for a faction, or on a program), then running + * this function will automatically cancel that action and give you your earnings. + * + * The cost and experience gains for all of these gyms are the same as if you were + * to manually visit these gyms and train + * + * @ramCost 2 GB + * @singularity Level 1 + * @param {string} gymName Name of gym. You must be in the correct city for whatever gym you specify. + * @param {string} stat The stat you want to train. + * @returns {boolean} True if actions is successfully started, false otherwise. + */ + gymWorkout(gymName: Gym, stat: GymStat): boolean; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function allows the player to travel to any city. The cost for using this - * function is the same as the cost for traveling through the Travel Agency. - * - * @ramCost 2 GB - * @singularity Level 1 - * @param {string} city City to travel to. - * @returns {boolean} True if actions is successful, false otherwise. - */ - travelToCity (city: City): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function allows the player to travel to any city. The cost for using this + * function is the same as the cost for traveling through the Travel Agency. + * + * @ramCost 2 GB + * @singularity Level 1 + * @param {string} city City to travel to. + * @returns {boolean} True if actions is successful, false otherwise. + */ + travelToCity(city: City): boolean; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function allows you to automatically purchase a TOR router. The cost for - * purchasing a TOR router using this function is the same as if you were to - * manually purchase one. - * - * @ramCost 2 GB - * @singularity Level 1 - * @returns {boolean} True if actions is successful, false otherwise. - */ - purchaseTor (): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function allows you to automatically purchase a TOR router. The cost for + * purchasing a TOR router using this function is the same as if you were to + * manually purchase one. + * + * @ramCost 2 GB + * @singularity Level 1 + * @returns {boolean} True if actions is successful, false otherwise. + */ + purchaseTor(): boolean; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function allows you to automatically purchase programs. You MUST have a - * TOR router in order to use this function. The cost of purchasing programs - * using this function is the same as if you were purchasing them through the Dark - * Web using the Terminal buy command. - * - * @example - * \`\`\`js - * purchaseProgram("brutessh.exe"); - * \`\`\` - * @ramCost 2 GB - * @singularity Level 1 - * @param {string} programName Name of program to purchase. - * @returns {boolean} True if the specified program is purchased, and false otherwise. - */ - purchaseProgram (programName: PurchaseableProgram): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function allows you to automatically purchase programs. You MUST have a + * TOR router in order to use this function. The cost of purchasing programs + * using this function is the same as if you were purchasing them through the Dark + * Web using the Terminal buy command. + * + * @example + * \`\`\`js + * purchaseProgram("brutessh.exe"); + * \`\`\` + * @ramCost 2 GB + * @singularity Level 1 + * @param {string} programName Name of program to purchase. + * @returns {boolean} True if the specified program is purchased, and false otherwise. + */ + purchaseProgram(programName: PurchaseableProgram): boolean; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns an object with the Player’s stats. - * - * @example - * \`\`\`js - * res = getStats(); - * print('My charisma level is: ' + res.charisma); - * \`\`\` - * @ramCost 0.5 GB - * @singularity Level 1 - * @returns {object} Object with the Player’s stats. - */ - getStats (): PlayerStats; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns an object with the Player’s stats. + * + * @example + * \`\`\`js + * res = getStats(); + * print('My charisma level is: ' + res.charisma); + * \`\`\` + * @ramCost 0.5 GB + * @singularity Level 1 + * @returns {object} Object with the Player’s stats. + */ + getStats(): PlayerStats; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns an object with various information about your character. - * - * @ramCost 0.5 GB - * @singularity Level 1 - * @returns {object} Object with various information about your character. - */ - getCharacterInformation (): CharacterInfo; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns an object with various information about your character. + * + * @ramCost 0.5 GB + * @singularity Level 1 + * @returns {object} Object with various information about your character. + */ + getCharacterInformation(): CharacterInfo; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns a boolean indicating whether or not the player is currently performing an - * ‘action’. These actions include working for a company/faction, studying at a univeristy, - * working out at a gym, creating a program, committing a crime, or carrying out a Hacking Mission. - * - * @ramCost 0.5 GB - * @singularity Level 1 - * @returns {boolean} True if the player is currently performing an ‘action’, false otherwise. - */ - isBusy (): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns a boolean indicating whether or not the player is currently performing an + * ‘action’. These actions include working for a company/faction, studying at a univeristy, + * working out at a gym, creating a program, committing a crime, or carrying out a Hacking Mission. + * + * @ramCost 0.5 GB + * @singularity Level 1 + * @returns {boolean} True if the player is currently performing an ‘action’, false otherwise. + */ + isBusy(): boolean; - /** - * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function is used to end whatever ‘action’ the player is currently performing. - * The player will receive whatever money/experience/etc. he has earned from that action. - * - * The actions that can be stopped with this function are: - * - * * Studying at a university - * * Working for a company/faction - * * Creating a program - * * Committing a Crime - * - * This function will return true if the player’s action was ended. - * It will return false if the player was not performing an action when this function was called. - * - * @ramCost 1 GB - * @singularity Level 1 - * @returns {boolean} True if the player’s action was ended, false if the player was not performing an action. - */ - stopAction (): boolean; + /** + * If you are not in BitNode-4, then you must have Level 1 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function is used to end whatever ‘action’ the player is currently performing. + * The player will receive whatever money/experience/etc. he has earned from that action. + * + * The actions that can be stopped with this function are: + * + * * Studying at a university + * * Working for a company/faction + * * Creating a program + * * Committing a Crime + * + * This function will return true if the player’s action was ended. + * It will return false if the player was not performing an action when this function was called. + * + * @ramCost 1 GB + * @singularity Level 1 + * @returns {boolean} True if the player’s action was ended, false if the player was not performing an action. + */ + stopAction(): boolean; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will upgrade amount of RAM on the player’s home computer. The cost is - * the same as if you were to do it manually. - * - * This function will return true if the player’s home computer RAM is successfully upgraded, and false otherwise. - * - * @ramCost 3 GB - * @singularity Level 2 - * @returns {boolean} True if the player’s home computer RAM is successfully upgraded, and false otherwise. - */ - upgradeHomeRam (): boolean; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will upgrade amount of RAM on the player’s home computer. The cost is + * the same as if you were to do it manually. + * + * This function will return true if the player’s home computer RAM is successfully upgraded, and false otherwise. + * + * @ramCost 3 GB + * @singularity Level 2 + * @returns {boolean} True if the player’s home computer RAM is successfully upgraded, and false otherwise. + */ + upgradeHomeRam(): boolean; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns the cost of upgrading the player’s home computer RAM. - * - * @ramCost 1.5 GB - * @singularity Level 2 - * @returns {number} Cost of upgrading the player’s home computer RAM. - */ - getUpgradeHomeRamCost (): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns the cost of upgrading the player’s home computer RAM. + * + * @ramCost 1.5 GB + * @singularity Level 2 + * @returns {number} Cost of upgrading the player’s home computer RAM. + */ + getUpgradeHomeRamCost(): number; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically set you to start working at the company - * at which you are employed. If you are already in the middle of some “working” - * action (such as working for a faction, training at a gym, or creating a program), - * then running this function will automatically cancel that action and give you - * your earnings. - * - * This function will return true if the player starts working, and false otherwise. - * - * Note that when you are working for a company, you will not actually receive your earnings (reputation, money, experience) until you FINISH the action. - * - * @example - * \`\`\`js - * //If you only want to work until you get 100,000 company reputation. One small hack to get around this is to continuously restart the action to receive your earnings: - * while (getCompanyRep(COMPANY HERE) < VALUE) { - * workForCompany(); - * sleep(60000); - * } - * //This way, your company reputation will be updated every minute. - * \`\`\` - * @ramCost 3 GB - * @singularity Level 2 - * @param {string} [companyName] Name of company to work for. Must be an exact match. Optional. If not specified, this argument defaults to the last job that you worked - * @returns {boolean} True if the player starts working, and false otherwise. - */ - workForCompany (companyName?: CompanyName): boolean; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically set you to start working at the company + * at which you are employed. If you are already in the middle of some “working” + * action (such as working for a faction, training at a gym, or creating a program), + * then running this function will automatically cancel that action and give you + * your earnings. + * + * This function will return true if the player starts working, and false otherwise. + * + * Note that when you are working for a company, you will not actually receive your earnings (reputation, money, experience) until you FINISH the action. + * + * @example + * \`\`\`js + * //If you only want to work until you get 100,000 company reputation. One small hack to get around this is to continuously restart the action to receive your earnings: + * while (getCompanyRep(COMPANY HERE) < VALUE) { + * workForCompany(); + * sleep(60000); + * } + * //This way, your company reputation will be updated every minute. + * \`\`\` + * @ramCost 3 GB + * @singularity Level 2 + * @param {string} [companyName] Name of company to work for. Must be an exact match. Optional. If not specified, this argument defaults to the last job that you worked + * @returns {boolean} True if the player starts working, and false otherwise. + */ + workForCompany(companyName?: CompanyName): boolean; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically try to apply to the specified company - * for a position in the specified field. This function can also be used to - * apply for promotions by specifying the company and field you are already - * employed at. - * - * This function will return true if you successfully get a job/promotion, - * and false otherwise. Note that if you are trying to use this function to - * apply for a promotion and you don’t get one, it will return false. - * - * @ramCost 3 GB - * @singularity Level 2 - * @param {string} companyName Name of company to apply to. - * @param {string} field Field to which you want to apply. - * @returns {boolean} True if the player successfully get a job/promotion, and false otherwise. - */ - applyToCompany (companyName: CompanyName, field: CompanyField): boolean; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically try to apply to the specified company + * for a position in the specified field. This function can also be used to + * apply for promotions by specifying the company and field you are already + * employed at. + * + * This function will return true if you successfully get a job/promotion, + * and false otherwise. Note that if you are trying to use this function to + * apply for a promotion and you don’t get one, it will return false. + * + * @ramCost 3 GB + * @singularity Level 2 + * @param {string} companyName Name of company to apply to. + * @param {string} field Field to which you want to apply. + * @returns {boolean} True if the player successfully get a job/promotion, and false otherwise. + */ + applyToCompany(companyName: CompanyName, field: CompanyField): boolean; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will return the amount of reputation you have at the specified company. - * If the company passed in as an argument is invalid, -1 will be returned. - * - * @ramCost 1 GB - * @singularity Level 2 - * @param {string} companyName Name of the company. - * @returns {number} Amount of reputation you have at the specified company. - */ - getCompanyRep (companyName: CompanyName): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will return the amount of reputation you have at the specified company. + * If the company passed in as an argument is invalid, -1 will be returned. + * + * @ramCost 1 GB + * @singularity Level 2 + * @param {string} companyName Name of the company. + * @returns {number} Amount of reputation you have at the specified company. + */ + getCompanyRep(companyName: CompanyName): number; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will return the amount of favor you have at the specified company. - * If the company passed in as an argument is invalid, -1 will be returned. - * - * @ramCost 1 GB - * @singularity Level 2 - * @param {string} companyName Name of the company. - * @returns {number} Amount of favor you have at the specified company. - */ - getCompanyFavor (companyName: CompanyName): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will return the amount of favor you have at the specified company. + * If the company passed in as an argument is invalid, -1 will be returned. + * + * @ramCost 1 GB + * @singularity Level 2 + * @param {string} companyName Name of the company. + * @returns {number} Amount of favor you have at the specified company. + */ + getCompanyFavor(companyName: CompanyName): number; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will return the amount of favor you will gain for the specified - * company when you reset by installing Augmentations. - * - * @ramCost 0.75 GB - * @singularity Level 2 - * @param {string} companyName Name of the company. - * @returns {number} Amount of favor you gain at the specified company when you reset by installing Augmentations. - */ - getCompanyFavorGain (companyName: CompanyName): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will return the amount of favor you will gain for the specified + * company when you reset by installing Augmentations. + * + * @ramCost 0.75 GB + * @singularity Level 2 + * @param {string} companyName Name of the company. + * @returns {number} Amount of favor you gain at the specified company when you reset by installing Augmentations. + */ + getCompanyFavorGain(companyName: CompanyName): number; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns an array with the name of all Factions you currently have oustanding invitations from. - * - * @ramCost 3 GB - * @singularity Level 2 - * @returns {string[]} Array with the name of all Factions you currently have oustanding invitations from. - */ - checkFactionInvitations (): FactionName[]; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns an array with the name of all Factions you currently have oustanding invitations from. + * + * @ramCost 3 GB + * @singularity Level 2 + * @returns {string[]} Array with the name of all Factions you currently have oustanding invitations from. + */ + checkFactionInvitations(): FactionName[]; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically accept an invitation from a faction and join it. - * - * @ramCost 3 GB - * @singularity Level 2 - * @param {string} faction Name of faction to join. - * @returns {boolean} True if player joined the faction, and false otherwise. - */ - joinFaction (faction: FactionName): boolean; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically accept an invitation from a faction and join it. + * + * @ramCost 3 GB + * @singularity Level 2 + * @param {string} faction Name of faction to join. + * @returns {boolean} True if player joined the faction, and false otherwise. + */ + joinFaction(faction: FactionName): boolean; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically set you to start working for the specified faction. - * Obviously, you must be a member of the faction or else this function will fail. If - * you are already in the middle of some “working” action (such as working for a company, - * training at a gym, or creating a program), then running this function will automatically - * cancel that action and give you your earnings. - * - * This function will return true if you successfully start working for the specified faction, and false otherwise. - * - * Note that when you are working for a faction, you will not actually receive your earnings (reputation, experience) until you FINISH the action. - * - * @example - * \`\`\`js - * //If you only want to work until you get 100,000 faction reputation. One small hack to get around this is to continuously restart the action to receive your earnings: - * while (getFactionRep(FACTION NAME) < VALUE) { - * workForFaction(FACNAME, WORKTYPE); - * sleep(60000); - * } - * //This way, your faction reputation will be updated every minute. - * \`\`\` - * @ramCost 3 GB - * @singularity Level 2 - * @param {string} faction Name of faction to work for. - * @param {string} workType Type of work to perform for the faction. - * @returns {boolean} True if the player starts working, and false otherwise. - */ - workForFaction (faction: FactionName, workType: FactionWork): boolean; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically set you to start working for the specified faction. + * Obviously, you must be a member of the faction or else this function will fail. If + * you are already in the middle of some “working” action (such as working for a company, + * training at a gym, or creating a program), then running this function will automatically + * cancel that action and give you your earnings. + * + * This function will return true if you successfully start working for the specified faction, and false otherwise. + * + * Note that when you are working for a faction, you will not actually receive your earnings (reputation, experience) until you FINISH the action. + * + * @example + * \`\`\`js + * //If you only want to work until you get 100,000 faction reputation. One small hack to get around this is to continuously restart the action to receive your earnings: + * while (getFactionRep(FACTION NAME) < VALUE) { + * workForFaction(FACNAME, WORKTYPE); + * sleep(60000); + * } + * //This way, your faction reputation will be updated every minute. + * \`\`\` + * @ramCost 3 GB + * @singularity Level 2 + * @param {string} faction Name of faction to work for. + * @param {string} workType Type of work to perform for the faction. + * @returns {boolean} True if the player starts working, and false otherwise. + */ + workForFaction(faction: FactionName, workType: FactionWork): boolean; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns the amount of reputation you have for the specified faction. - * - * @ramCost 1 GB - * @singularity Level 2 - * @param {string} faction Name of faction to work for. - * @returns {number} Amount of reputation you have for the specified faction. - */ - getFactionRep (faction: FactionName): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns the amount of reputation you have for the specified faction. + * + * @ramCost 1 GB + * @singularity Level 2 + * @param {string} faction Name of faction to work for. + * @returns {number} Amount of reputation you have for the specified faction. + */ + getFactionRep(faction: FactionName): number; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns the amount of favor you have for the specified faction. - * - * @ramCost 1 GB - * @singularity Level 2 - * @param {string} faction Name of faction. - * @returns {number} Amount of favor you have for the specified faction. - */ - getFactionFavor (faction: FactionName): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns the amount of favor you have for the specified faction. + * + * @ramCost 1 GB + * @singularity Level 2 + * @param {string} faction Name of faction. + * @returns {number} Amount of favor you have for the specified faction. + */ + getFactionFavor(faction: FactionName): number; - /** - * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns the amount of favor you will gain for the specified - * faction when you reset by installing Augmentations. - * - * @ramCost 0.75 GB - * @singularity Level 2 - * @param {string} faction Name of faction. - * @returns {number} Amount of favor you will gain for the specified faction when you reset by installing Augmentations. - */ - getFactionFavorGain (faction: FactionName): number; + /** + * If you are not in BitNode-4, then you must have Level 2 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns the amount of favor you will gain for the specified + * faction when you reset by installing Augmentations. + * + * @ramCost 0.75 GB + * @singularity Level 2 + * @param {string} faction Name of faction. + * @returns {number} Amount of favor you will gain for the specified faction when you reset by installing Augmentations. + */ + getFactionFavorGain(faction: FactionName): number; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Attempts to donate money to the specified faction in exchange for reputation. - * Returns true if you successfully donate the money, and false otherwise. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} faction Name of faction to donate to. - * @param {string} amount Amount of money to donate. - * @returns {boolean} True if the money was donated, and false otherwise. - */ - donateToFaction (faction: FactionName, amount: number): boolean; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Attempts to donate money to the specified faction in exchange for reputation. + * Returns true if you successfully donate the money, and false otherwise. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} faction Name of faction to donate to. + * @param {string} amount Amount of money to donate. + * @returns {boolean} True if the money was donated, and false otherwise. + */ + donateToFaction(faction: FactionName, amount: number): boolean; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically set you to start working on creating the - * specified program. If you are already in the middle of some “working” action - * (such as working for a company, training at a gym, or taking a course), then - * running this function will automatically cancel that action and give you your - * earnings. - * - * This function returns true if you successfully start working on the specified program, and false otherwise. - * - * Note that creating a program using this function has the same hacking level requirements as it normally would. These level requirements are: - * * BruteSSH.exe: 50 - * * FTPCrack.exe: 100 - * * relaySMTP.exe: 250 - * * HTTPWorm.exe: 500 - * * SQLInject.exe: 750 - * * DeepscanV1.exe: 75 - * * DeepscanV2.exe: 400 - * * ServerProfiler.exe: 75 - * * AutoLink.exe: 25 - * - * @example - * \`\`\`js - * createProgram(“relaysmtp.exe”); - * \`\`\` - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} program Name of program to create. - * @returns {boolean} True if you successfully start working on the specified program, and false otherwise. - */ - createProgram (program: CreatableProgram): boolean; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically set you to start working on creating the + * specified program. If you are already in the middle of some “working” action + * (such as working for a company, training at a gym, or taking a course), then + * running this function will automatically cancel that action and give you your + * earnings. + * + * This function returns true if you successfully start working on the specified program, and false otherwise. + * + * Note that creating a program using this function has the same hacking level requirements as it normally would. These level requirements are: + * * BruteSSH.exe: 50 + * * FTPCrack.exe: 100 + * * relaySMTP.exe: 250 + * * HTTPWorm.exe: 500 + * * SQLInject.exe: 750 + * * DeepscanV1.exe: 75 + * * DeepscanV2.exe: 400 + * * ServerProfiler.exe: 75 + * * AutoLink.exe: 25 + * + * @example + * \`\`\`js + * createProgram(“relaysmtp.exe”); + * \`\`\` + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} program Name of program to create. + * @returns {boolean} True if you successfully start working on the specified program, and false otherwise. + */ + createProgram(program: CreatableProgram): boolean; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function is used to automatically attempt to commit crimes. - * If you are already in the middle of some ‘working’ action (such - * as working for a company or training at a gym), then running this - * function will automatically cancel that action and give you your - * earnings. - * - * This function returns the number of seconds it takes to attempt the specified - * crime (e.g It takes 60 seconds to attempt the ‘Rob Store’ crime, so running - * \`commitCrime('rob store')\` will return 60). - * - * Warning: I do not recommend using the time returned from this function to try - * and schedule your crime attempts. Instead, I would use the {@link isBusy} Singularity - * function to check whether you have finished attempting a crime. This is because - * although the game sets a certain crime to be X amount of seconds, there is no - * guarantee that your browser will follow that time limit. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} crime Name of crime to attempt. - * @returns {number} True if you successfully start working on the specified program, and false otherwise. - */ - commitCrime (crime: Crime): number; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function is used to automatically attempt to commit crimes. + * If you are already in the middle of some ‘working’ action (such + * as working for a company or training at a gym), then running this + * function will automatically cancel that action and give you your + * earnings. + * + * This function returns the number of seconds it takes to attempt the specified + * crime (e.g It takes 60 seconds to attempt the ‘Rob Store’ crime, so running + * \`commitCrime('rob store')\` will return 60). + * + * Warning: I do not recommend using the time returned from this function to try + * and schedule your crime attempts. Instead, I would use the {@link isBusy} Singularity + * function to check whether you have finished attempting a crime. This is because + * although the game sets a certain crime to be X amount of seconds, there is no + * guarantee that your browser will follow that time limit. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} crime Name of crime to attempt. + * @returns {number} True if you successfully start working on the specified program, and false otherwise. + */ + commitCrime(crime: Crime): number; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns your chance of success at commiting the specified crime. - * The chance is returned as a decimal (i.e. 60% would be returned as 0.6). - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} crime Name of crime. - * @returns {number} Chance of success at commiting the specified crime as a decimal. - */ - getCrimeChance (crime: Crime): number; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns your chance of success at commiting the specified crime. + * The chance is returned as a decimal (i.e. 60% would be returned as 0.6). + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} crime Name of crime. + * @returns {number} Chance of success at commiting the specified crime as a decimal. + */ + getCrimeChance(crime: Crime): number; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns the stats of the crime. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} crime Name of crime. Not case-sensitive - * @returns {number} The stats of the crime. - */ - getCrimeStats (crime: Crime): CrimeStats; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns the stats of the crime. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} crime Name of crime. Not case-sensitive + * @returns {number} The stats of the crime. + */ + getCrimeStats(crime: Crime): CrimeStats; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns an array containing the names (as strings) of all Augmentations you have. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {boolean} [purchased] Specifies whether the returned array should include Augmentations you have purchased but not yet installed. By default, this argument is false which means that the return value will NOT have the purchased Augmentations. - * @returns {string[]} Array containing the names (as strings) of all Augmentations you have. - */ - getOwnedAugmentations (purchased?: boolean): AugmentName[]; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns an array containing the names (as strings) of all Augmentations you have. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {boolean} [purchased] Specifies whether the returned array should include Augmentations you have purchased but not yet installed. By default, this argument is false which means that the return value will NOT have the purchased Augmentations. + * @returns {string[]} Array containing the names (as strings) of all Augmentations you have. + */ + getOwnedAugmentations(purchased?: boolean): AugmentName[]; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns an array of source files - * - * @ramCost 5 GB - * @singularity Level 3 - * @returns {object[]} Array containing an object with number and level of the source file. - */ - getOwnedSourceFiles (): SourceFileLvl[]; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns an array of source files + * + * @ramCost 5 GB + * @singularity Level 3 + * @returns {object[]} Array containing an object with number and level of the source file. + */ + getOwnedSourceFiles(): SourceFileLvl[]; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * Returns an array containing the names (as strings) of all Augmentations - * that are available from the specified faction. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} faction Name of faction. - * @returns {string[]} Array containing the names of all Augmentations. - */ - getAugmentationsFromFaction (faction: FactionName): AugmentName[]; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * Returns an array containing the names (as strings) of all Augmentations + * that are available from the specified faction. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} faction Name of faction. + * @returns {string[]} Array containing the names of all Augmentations. + */ + getAugmentationsFromFaction(faction: FactionName): AugmentName[]; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns an array with the names of the prerequisite Augmentation(s) for the specified Augmentation. - * If there are no prerequisites, a blank array is returned. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} augName Name of Augmentation. - * @returns {string[]} Array with the names of the prerequisite Augmentation(s) for the specified Augmentation. - */ - getAugmentationPrereq (augName: AugmentName): AugmentName[]; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns an array with the names of the prerequisite Augmentation(s) for the specified Augmentation. + * If there are no prerequisites, a blank array is returned. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} augName Name of Augmentation. + * @returns {string[]} Array with the names of the prerequisite Augmentation(s) for the specified Augmentation. + */ + getAugmentationPrereq(augName: AugmentName): AugmentName[]; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns an array with two elements that gives the cost for - * the specified Augmentation. The first element in the returned array is the - * reputation requirement of the Augmentation, and the second element is the - * money cost. - * - * If an invalid Augmentation name is passed in for the augName argument, this - * function will return the array [-1, -1]. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} augName Name of Augmentation. - * @returns {[number, number]} Array with first element as a reputation requirement and second element as the money cost. - */ - getAugmentationCost (augName: AugmentName): [number, number]; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns an array with two elements that gives the cost for + * the specified Augmentation. The first element in the returned array is the + * reputation requirement of the Augmentation, and the second element is the + * money cost. + * + * If an invalid Augmentation name is passed in for the augName argument, this + * function will return the array [-1, -1]. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} augName Name of Augmentation. + * @returns {[number, number]} Array with first element as a reputation requirement and second element as the money cost. + */ + getAugmentationCost(augName: AugmentName): [number, number]; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will try to purchase the specified Augmentation through the given Faction. - * - * This function will return true if the Augmentation is successfully purchased, and false otherwise. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} faction Name of faction to purchase Augmentation from. - * @param {string} augmnet Name of Augmentation to purchase. - * @returns {boolean} True if the Augmentation is successfully purchased, and false otherwise. - */ - purchaseAugmentation (faction: FactionName, augmnet: AugmentName): boolean; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will try to purchase the specified Augmentation through the given Faction. + * + * This function will return true if the Augmentation is successfully purchased, and false otherwise. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} faction Name of faction to purchase Augmentation from. + * @param {string} augmnet Name of Augmentation to purchase. + * @returns {boolean} True if the Augmentation is successfully purchased, and false otherwise. + */ + purchaseAugmentation(faction: FactionName, augmnet: AugmentName): boolean; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function returns augmentation stats. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} name Name of Augmentation. CASE-SENSITIVE. - * @returns {object} Augmentation stats. - */ - getAugmentationStats (name: AugmentName): AugmentationStats; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function returns augmentation stats. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} name Name of Augmentation. CASE-SENSITIVE. + * @returns {object} Augmentation stats. + */ + getAugmentationStats(name: AugmentName): AugmentationStats; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will automatically install your Augmentations, resetting the game as usual. - * - * @ramCost 5 GB - * @singularity Level 3 - * @param {string} cbScript Optional callback script. This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. - */ - installAugmentations (cbScript?: Script): void; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will automatically install your Augmentations, resetting the game as usual. + * + * @ramCost 5 GB + * @singularity Level 3 + * @param {string} cbScript Optional callback script. This is a script that will automatically be run after Augmentations are installed (after the reset). This script will be run with no arguments and 1 thread. It must be located on your home computer. + */ + installAugmentations(cbScript?: Script): void; - /** - * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. - * - * This function will perform a reset even if you don’t have any augmentation installed. - * - * @ramCost 5 GB - * @singularity Level 3 - */ - softReset (): void; + /** + * If you are not in BitNode-4, then you must have Level 3 of Source-File 4 in order to use this function and the RAM cost is doubled. + * + * This function will perform a reset even if you don’t have any augmentation installed. + * + * @ramCost 5 GB + * @singularity Level 3 + */ + softReset(): void; } interface HackNet { - /** - * Returns the number of Hacknet Nodes you own. - * - * @ramCost 0 GB - * @returns {number} number of hacknet nodes. - */ - numNodes (): number; + /** + * Returns the number of Hacknet Nodes you own. + * + * @ramCost 0 GB + * @returns {number} number of hacknet nodes. + */ + numNodes(): number; - /** - * Purchases a new Hacknet Node. Returns a number with the index of the - * Hacknet Node. This index is equivalent to the number at the end of - * the Hacknet Node’s name (e.g The Hacknet Node named \`hacknet-node-4\` - * will have an index of 4). - * - * If the player cannot afford to purchase a new Hacknet Node then the function will return -1. - * - * @ramCost 0 GB - * @returns {number} The index of the Hacknet Node or if the player cannot afford to purchase a new Hacknet Node the function will return -1. - */ - purchaseNode (): number; + /** + * Purchases a new Hacknet Node. Returns a number with the index of the + * Hacknet Node. This index is equivalent to the number at the end of + * the Hacknet Node’s name (e.g The Hacknet Node named \`hacknet-node-4\` + * will have an index of 4). + * + * If the player cannot afford to purchase a new Hacknet Node then the function will return -1. + * + * @ramCost 0 GB + * @returns {number} The index of the Hacknet Node or if the player cannot afford to purchase a new Hacknet Node the function will return -1. + */ + purchaseNode(): number; - /** - * Returns the cost of purchasing a new Hacknet Node. - * - * @ramCost 0 GB - * @returns {number} Cost of purchasing a new Hacknet Node. - */ - getPurchaseNodeCost (): number; + /** + * Returns the cost of purchasing a new Hacknet Node. + * + * @ramCost 0 GB + * @returns {number} Cost of purchasing a new Hacknet Node. + */ + getPurchaseNodeCost(): number; - /** - * Returns an object containing a variety of stats about the specified Hacknet Node. - * - * Note that for Hacknet Nodes, production refers to the amount of money the node generates. - * For Hacknet Servers (the upgraded version of Hacknet Nodes), production refers to the - * amount of hashes the node generates. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node - * @returns {object} Object containing a variety of stats about the specified Hacknet Node. - */ - getNodeStats (index: number): NodeStats; + /** + * Returns an object containing a variety of stats about the specified Hacknet Node. + * + * Note that for Hacknet Nodes, production refers to the amount of money the node generates. + * For Hacknet Servers (the upgraded version of Hacknet Nodes), production refers to the + * amount of hashes the node generates. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node + * @returns {object} Object containing a variety of stats about the specified Hacknet Node. + */ + getNodeStats(index: number): NodeStats; - /** - * Tries to upgrade the level of the specified Hacknet Node by n. - * - * Returns true if the Hacknet Node’s level is successfully upgraded by n - * or if it is upgraded by some positive amount and the Node reaches its max level. - * - * Returns false otherwise. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of levels to purchase. Must be positive. Rounded to nearest integer. - * @returns {boolean} True if the Hacknet Node’s level is successfully upgraded, false otherwise. - */ - upgradeLevel (index: number, n: number): boolean; + /** + * Tries to upgrade the level of the specified Hacknet Node by n. + * + * Returns true if the Hacknet Node’s level is successfully upgraded by n + * or if it is upgraded by some positive amount and the Node reaches its max level. + * + * Returns false otherwise. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of levels to purchase. Must be positive. Rounded to nearest integer. + * @returns {boolean} True if the Hacknet Node’s level is successfully upgraded, false otherwise. + */ + upgradeLevel(index: number, n: number): boolean; - /** - * Tries to upgrade the specified Hacknet Node’s RAM n times. - * Note that each upgrade doubles the Node’s RAM. - * So this is equivalent to multiplying the Node’s RAM by 2 n. - * - * Returns true if the Hacknet Node’s RAM is successfully upgraded n times - * or if it is upgraded some positive number of times and the Node reaches it max RAM. - * - * Returns false otherwise. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. - * @returns {boolean} True if the Hacknet Node’s ram is successfully upgraded, false otherwise. - */ - upgradeRam (index: number, n: number): boolean; + /** + * Tries to upgrade the specified Hacknet Node’s RAM n times. + * Note that each upgrade doubles the Node’s RAM. + * So this is equivalent to multiplying the Node’s RAM by 2 n. + * + * Returns true if the Hacknet Node’s RAM is successfully upgraded n times + * or if it is upgraded some positive number of times and the Node reaches it max RAM. + * + * Returns false otherwise. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. + * @returns {boolean} True if the Hacknet Node’s ram is successfully upgraded, false otherwise. + */ + upgradeRam(index: number, n: number): boolean; - /** - * Tries to purchase n cores for the specified Hacknet Node. - * - * Returns true if it successfully purchases n cores for the Hacknet Node - * or if it purchases some positive amount and the Node reaches its max number of cores. - * - * Returns false otherwise. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of cores to purchase. Must be positive. Rounded to nearest integer. - * @returns {boolean} True if the Hacknet Node’s cores are successfully purchased, false otherwise. - */ - upgradeCore (index: number, n: number): boolean; + /** + * Tries to purchase n cores for the specified Hacknet Node. + * + * Returns true if it successfully purchases n cores for the Hacknet Node + * or if it purchases some positive amount and the Node reaches its max number of cores. + * + * Returns false otherwise. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of cores to purchase. Must be positive. Rounded to nearest integer. + * @returns {boolean} True if the Hacknet Node’s cores are successfully purchased, false otherwise. + */ + upgradeCore(index: number, n: number): boolean; - /** - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Tries to upgrade the specified Hacknet Server’s cache n times. - * - * Returns true if it successfully upgrades the Server’s cache n times, - * or if it purchases some positive amount and the Server reaches its max cache level. - * - * Returns false otherwise. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of cache levels to purchase. Must be positive. Rounded to nearest integer. - * @returns {boolean} True if the Hacknet Node’s cores are successfully purchased, false otherwise. - */ - upgradeCache (index: number, n: number): boolean; + /** + * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + * + * Tries to upgrade the specified Hacknet Server’s cache n times. + * + * Returns true if it successfully upgrades the Server’s cache n times, + * or if it purchases some positive amount and the Server reaches its max cache level. + * + * Returns false otherwise. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of cache levels to purchase. Must be positive. Rounded to nearest integer. + * @returns {boolean} True if the Hacknet Node’s cores are successfully purchased, false otherwise. + */ + upgradeCache(index: number, n: number): boolean; - /** - * Returns the cost of upgrading the specified Hacknet Node by n levels. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of levels to upgrade. Must be positive. Rounded to nearest integer. - * @returns {number} Cost of upgrading the specified Hacknet Node. - */ - getLevelUpgradeCost (index: number, n: number): number; + /** + * Returns the cost of upgrading the specified Hacknet Node by n levels. + * + * If an invalid value for n is provided, then this function returns 0. + * If the specified Hacknet Node is already at max level, then Infinity is returned. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of levels to upgrade. Must be positive. Rounded to nearest integer. + * @returns {number} Cost of upgrading the specified Hacknet Node. + */ + getLevelUpgradeCost(index: number, n: number): number; - /** - * Returns the cost of upgrading the RAM of the specified Hacknet Node n times. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. - * @returns {number} Cost of upgrading the specified Hacknet Node's ram. - */ - getRamUpgradeCost (index: number, n: number): number; + /** + * Returns the cost of upgrading the RAM of the specified Hacknet Node n times. + * + * If an invalid value for n is provided, then this function returns 0. + * If the specified Hacknet Node is already at max level, then Infinity is returned. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of times to upgrade RAM. Must be positive. Rounded to nearest integer. + * @returns {number} Cost of upgrading the specified Hacknet Node's ram. + */ + getRamUpgradeCost(index: number, n: number): number; - /** - * Returns the cost of upgrading the number of cores of the specified Hacknet Node by n. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of times to upgrade cores. Must be positive. Rounded to nearest integer. - * @returns {number} Cost of upgrading the specified Hacknet Node's number of cores. - */ - getCoreUpgradeCost (index: number, n: number): number; + /** + * Returns the cost of upgrading the number of cores of the specified Hacknet Node by n. + * + * If an invalid value for n is provided, then this function returns 0. + * If the specified Hacknet Node is already at max level, then Infinity is returned. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of times to upgrade cores. Must be positive. Rounded to nearest integer. + * @returns {number} Cost of upgrading the specified Hacknet Node's number of cores. + */ + getCoreUpgradeCost(index: number, n: number): number; - /** - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the cost of upgrading the cache level of the specified Hacknet Server by n. - * - * If an invalid value for n is provided, then this function returns 0. - * If the specified Hacknet Node is already at max level, then Infinity is returned. - * - * @ramCost 0 GB - * @param {number} index Index/Identifier of Hacknet Node. - * @param {number} n Number of times to upgrade cache. Must be positive. Rounded to nearest integer. - * @returns {number} Cost of upgrading the specified Hacknet Node's cache. - */ - getCacheUpgradeCost (index: number, n: number): number; + /** + * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + * + * Returns the cost of upgrading the cache level of the specified Hacknet Server by n. + * + * If an invalid value for n is provided, then this function returns 0. + * If the specified Hacknet Node is already at max level, then Infinity is returned. + * + * @ramCost 0 GB + * @param {number} index Index/Identifier of Hacknet Node. + * @param {number} n Number of times to upgrade cache. Must be positive. Rounded to nearest integer. + * @returns {number} Cost of upgrading the specified Hacknet Node's cache. + */ + getCacheUpgradeCost(index: number, n: number): number; - /** - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the number of hashes you have. - * - * @ramCost 0 GB - * @returns {number} Number of hashes you have. - */ - numHashes (): number; + /** + * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + * + * Returns the number of hashes you have. + * + * @ramCost 0 GB + * @returns {number} Number of hashes you have. + */ + numHashes(): number; - /** - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Returns the number of hashes required for the specified upgrade. The name of the upgrade must be an exact match. - * - * @example - * \`\`\`js - * var upgradeName = "Sell for Corporation Funds"; - * if (hacknet.numHashes() > hacknet.hashCost(upgradeName)) { - * hacknet.spendHashes(upgName); - * } - * \`\`\` - * @ramCost 0 GB - * @param {string} upgName Name of the upgrade of Hacknet Node. - * @returns {number} Number of hashes required for the specified upgrade. - */ - hashCost (upgName: HashUpgrades): number; + /** + * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + * + * Returns the number of hashes required for the specified upgrade. The name of the upgrade must be an exact match. + * + * @example + * \`\`\`js + * var upgradeName = "Sell for Corporation Funds"; + * if (hacknet.numHashes() > hacknet.hashCost(upgradeName)) { + * hacknet.spendHashes(upgName); + * } + * \`\`\` + * @ramCost 0 GB + * @param {string} upgName Name of the upgrade of Hacknet Node. + * @returns {number} Number of hashes required for the specified upgrade. + */ + hashCost(upgName: HashUpgrades): number; - /** - * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). - * - * Spend the hashes generated by your Hacknet Servers on an upgrade. - * Returns a boolean value - true if the upgrade is successfully purchased, and false otherwise. - * - * The name of the upgrade must be an exact match. - * The \`upgTarget\` argument is used for upgrades such as \`Reduce Minimum Security\`, which applies to a specific server. - * In this case, the \`upgTarget\` argument must be the hostname of the server. - * - * @example - * \`\`\`js - * hacknet.spendHashes("Sell for Corporation Funds"); - * hacknet.spendHashes("Increase Maximum Money", "foodnstuff"); - * \`\`\` - * @ramCost 0 GB - * @param {string} upgName Name of the upgrade of Hacknet Node. - * @param {string} [upgTarget] Object to which upgrade applies. Required for certain upgrades. - * @returns {boolean} True if the upgrade is successfully purchased, and false otherwise.. - */ - spendHashes (upgName: HashUpgrades, upgTarget?: Host): boolean; + /** + * This function is only applicable for Hacknet Servers (the upgraded version of a Hacknet Node). + * + * Spend the hashes generated by your Hacknet Servers on an upgrade. + * Returns a boolean value - true if the upgrade is successfully purchased, and false otherwise. + * + * The name of the upgrade must be an exact match. + * The \`upgTarget\` argument is used for upgrades such as \`Reduce Minimum Security\`, which applies to a specific server. + * In this case, the \`upgTarget\` argument must be the hostname of the server. + * + * @example + * \`\`\`js + * hacknet.spendHashes("Sell for Corporation Funds"); + * hacknet.spendHashes("Increase Maximum Money", "foodnstuff"); + * \`\`\` + * @ramCost 0 GB + * @param {string} upgName Name of the upgrade of Hacknet Node. + * @param {string} [upgTarget] Object to which upgrade applies. Required for certain upgrades. + * @returns {boolean} True if the upgrade is successfully purchased, and false otherwise.. + */ + spendHashes(upgName: HashUpgrades, upgTarget?: Host): boolean; } interface BladeBurner { - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an array of strings containing the names of all Bladeburner contracts. - * - * @ramCost 0.4 GB - * @returns {string[]} Array of strings containing the names of all Bladeburner contracts. - */ - getContractNames (): BladeburnerContracts[]; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an array of strings containing the names of all Bladeburner contracts. + * + * @ramCost 0.4 GB + * @returns {string[]} Array of strings containing the names of all Bladeburner contracts. + */ + getContractNames(): BladeburnerContracts[]; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an array of strings containing the names of all Bladeburner operations. - * - * @ramCost 0.4 GB - * @returns {string[]} Array of strings containing the names of all Bladeburner operations. - */ - getOperationNames (): BladeburnerOperations[]; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an array of strings containing the names of all Bladeburner operations. + * + * @ramCost 0.4 GB + * @returns {string[]} Array of strings containing the names of all Bladeburner operations. + */ + getOperationNames(): BladeburnerOperations[]; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an array of strings containing the names of all Bladeburner Black Ops. - * - * @ramCost 0.4 GB - * @returns {string[]} Array of strings containing the names of all Bladeburner Black Ops. - */ - getBlackOpNames (): BladeburnerBlackOps[]; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an array of strings containing the names of all Bladeburner Black Ops. + * + * @ramCost 0.4 GB + * @returns {string[]} Array of strings containing the names of all Bladeburner Black Ops. + */ + getBlackOpNames(): BladeburnerBlackOps[]; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an array of strings containing the names of all general Bladeburner actions. - * - * @ramCost 0.4 GB - * @returns {string[]} Array of strings containing the names of all general Bladeburner actions. - */ - getGeneralActionNames (): BladeburnerGenActions[]; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an array of strings containing the names of all general Bladeburner actions. + * + * @ramCost 0.4 GB + * @returns {string[]} Array of strings containing the names of all general Bladeburner actions. + */ + getGeneralActionNames(): BladeburnerGenActions[]; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an array of strings containing the names of all general Bladeburner skills. - * - * @ramCost 0.4 GB - * @returns {string[]} Array of strings containing the names of all general Bladeburner skills. - */ - getSkillNames (): BladeburnerSkills[]; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an array of strings containing the names of all general Bladeburner skills. + * + * @ramCost 0.4 GB + * @returns {string[]} Array of strings containing the names of all general Bladeburner skills. + */ + getSkillNames(): BladeburnerSkills[]; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Attempts to start the specified Bladeburner action. - * Returns true if the action was started successfully, and false otherwise. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match - * @returns {boolean} True if the action was started successfully, and false otherwise. - */ - startAction ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): boolean; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Attempts to start the specified Bladeburner action. + * Returns true if the action was started successfully, and false otherwise. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match + * @returns {boolean} True if the action was started successfully, and false otherwise. + */ + startAction( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): boolean; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Stops the current Bladeburner action. - * - * @ramCost 2 GB - */ - stopBladeburnerAction (): void; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Stops the current Bladeburner action. + * + * @ramCost 2 GB + */ + stopBladeburnerAction(): void; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an object that represents the player’s current Bladeburner action. - * If the player is not performing an action, the function will return an object with the ‘type’ property set to “Idle”. - * - * @ramCost 1 GB - * @returns {object} Object that represents the player’s current Bladeburner action. - */ - getCurrentAction (): BladeburnerCurAction; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an object that represents the player’s current Bladeburner action. + * If the player is not performing an action, the function will return an object with the ‘type’ property set to “Idle”. + * + * @ramCost 1 GB + * @returns {object} Object that represents the player’s current Bladeburner action. + */ + getCurrentAction(): BladeburnerCurAction; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the number of seconds it takes to complete the specified action - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {number} Number of seconds it takes to complete the specified action. - */ - getActionTime ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the number of seconds it takes to complete the specified action + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {number} Number of seconds it takes to complete the specified action. + */ + getActionTime( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the estimated success chance for the specified action. - * This chance is returned as a decimal value, NOT a percentage - * (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80). - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {number} Estimated success chance for the specified action. - */ - getActionEstimatedSuccessChance ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the estimated success chance for the specified action. + * This chance is returned as a decimal value, NOT a percentage + * (e.g. if you have an estimated success chance of 80%, then this function will return 0.80, NOT 80). + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {number} Estimated success chance for the specified action. + */ + getActionEstimatedSuccessChance( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the average Bladeburner reputation gain for successfully - * completing the specified action. - * Note that this value is an ‘average’ and the real reputation gain may vary slightly from this value. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @param {number} [level] Optional action level at which to calculate the gain - * @returns {number} Average Bladeburner reputation gain for successfully completing the specified action. - */ - getActionRepGain ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, - level: number - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the average Bladeburner reputation gain for successfully + * completing the specified action. + * Note that this value is an ‘average’ and the real reputation gain may vary slightly from this value. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @param {number} [level] Optional action level at which to calculate the gain + * @returns {number} Average Bladeburner reputation gain for successfully completing the specified action. + */ + getActionRepGain( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + level: number, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the remaining count of the specified action. - * - * Note that this is meant to be used for Contracts and Operations. - * This function will return ‘Infinity’ for actions such as Training and Field Analysis. - * This function will return 1 for BlackOps not yet completed regardless of wether - * the player has the required rank to attempt the mission or not. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {number} Remaining count of the specified action. - */ - getActionCountRemaining ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the remaining count of the specified action. + * + * Note that this is meant to be used for Contracts and Operations. + * This function will return ‘Infinity’ for actions such as Training and Field Analysis. + * This function will return 1 for BlackOps not yet completed regardless of wether + * the player has the required rank to attempt the mission or not. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {number} Remaining count of the specified action. + */ + getActionCountRemaining( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the maximum level for this action. - * - * Returns -1 if an invalid action is specified. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {number} Maximum level of the specified action. - */ - getActionMaxLevel ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the maximum level for this action. + * + * Returns -1 if an invalid action is specified. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {number} Maximum level of the specified action. + */ + getActionMaxLevel( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the current level of this action. - * - * Returns -1 if an invalid action is specified. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {number} Current level of the specified action. - */ - getActionCurrentLevel ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the current level of this action. + * + * Returns -1 if an invalid action is specified. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {number} Current level of the specified action. + */ + getActionCurrentLevel( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Return a boolean indicating whether or not this action is currently set to autolevel. - * - * Returns false if an invalid action is specified. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {boolean} True if the action is set to autolevel, and false otherwise. - */ - getActionAutolevel ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): boolean; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Return a boolean indicating whether or not this action is currently set to autolevel. + * + * Returns false if an invalid action is specified. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {boolean} True if the action is set to autolevel, and false otherwise. + */ + getActionAutolevel( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): boolean; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Enable/disable autoleveling for the specified action. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @param {boolean} autoLevel Whether or not to autolevel this action - */ - setActionAutolevel ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, - autoLevel: boolean - ): void; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Enable/disable autoleveling for the specified action. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @param {boolean} autoLevel Whether or not to autolevel this action + */ + setActionAutolevel( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + autoLevel: boolean, + ): void; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Set the level for the specified action. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @param {number} level Level to set this action to. - */ - setActionLevel ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, - level: number - ): void; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Set the level for the specified action. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @param {number} level Level to set this action to. + */ + setActionLevel( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + level: number, + ): void; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the player’s Bladeburner Rank. - * - * @ramCost 4 GB - * @returns {number} Player’s Bladeburner Rank. - */ - getRank (): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the player’s Bladeburner Rank. + * + * @ramCost 4 GB + * @returns {number} Player’s Bladeburner Rank. + */ + getRank(): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the rank required to complete this BlackOp. - * - * Returns -1 if an invalid action is specified. - * - * @ramCost 2 GB - * @param {string} name Name of BlackOp. Must be an exact match. - * @returns {number} Rank required to complete this BlackOp. - */ - getBlackOpRank (name: BladeburnerBlackOps): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the rank required to complete this BlackOp. + * + * Returns -1 if an invalid action is specified. + * + * @ramCost 2 GB + * @param {string} name Name of BlackOp. Must be an exact match. + * @returns {number} Rank required to complete this BlackOp. + */ + getBlackOpRank(name: BladeburnerBlackOps): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the number of Bladeburner skill points you have. - * - * @ramCost 4 GB - * @returns {number} Number of Bladeburner skill points you have. - */ - getSkillPoints (): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the number of Bladeburner skill points you have. + * + * @ramCost 4 GB + * @returns {number} Number of Bladeburner skill points you have. + */ + getSkillPoints(): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * This function returns your level in the specified skill. - * - * The function returns -1 if an invalid skill name is passed in. - * - * @ramCost 4 GB - * @param {string} skillName Name of skill. Case-sensitive and must be an exact match - * @returns {number} Level in the specified skill. - */ - getSkillLevel (name: BladeburnerSkills): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * This function returns your level in the specified skill. + * + * The function returns -1 if an invalid skill name is passed in. + * + * @ramCost 4 GB + * @param {string} skillName Name of skill. Case-sensitive and must be an exact match + * @returns {number} Level in the specified skill. + */ + getSkillLevel(name: BladeburnerSkills): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * This function returns the number of skill points needed to upgrade the specified skill. - * - * The function returns -1 if an invalid skill name is passed in. - * - * @ramCost 4 GB - * @param {string} skillName Name of skill. Case-sensitive and must be an exact match - * @returns {number} Number of skill points needed to upgrade the specified skill. - */ - getSkillUpgradeCost (name: BladeburnerSkills): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * This function returns the number of skill points needed to upgrade the specified skill. + * + * The function returns -1 if an invalid skill name is passed in. + * + * @ramCost 4 GB + * @param {string} skillName Name of skill. Case-sensitive and must be an exact match + * @returns {number} Number of skill points needed to upgrade the specified skill. + */ + getSkillUpgradeCost(name: BladeburnerSkills): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Attempts to upgrade the specified Bladeburner skill. - * - * Returns true if the skill is successfully upgraded, and false otherwise. - * - * @ramCost 4 GB - * @param {string} skillName Name of skill to be upgraded. Case-sensitive and must be an exact match - * @returns {boolean} true if the skill is successfully upgraded, and false otherwise. - */ - upgradeSkill (name: BladeburnerSkills): boolean; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Attempts to upgrade the specified Bladeburner skill. + * + * Returns true if the skill is successfully upgraded, and false otherwise. + * + * @ramCost 4 GB + * @param {string} skillName Name of skill to be upgraded. Case-sensitive and must be an exact match + * @returns {boolean} true if the skill is successfully upgraded, and false otherwise. + */ + upgradeSkill(name: BladeburnerSkills): boolean; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the number of Bladeburner team members you have assigned to the specified action. - * - * Setting a team is only applicable for Operations and BlackOps. This function will return 0 for other action types. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @returns {number} Number of Bladeburner team members that were assigned to the specified action. - */ - getTeamSize ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the number of Bladeburner team members you have assigned to the specified action. + * + * Setting a team is only applicable for Operations and BlackOps. This function will return 0 for other action types. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @returns {number} Number of Bladeburner team members that were assigned to the specified action. + */ + getTeamSize( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Set the team size for the specified Bladeburner action. - * - * Returns the team size that was set, or -1 if the function failed. - * - * @ramCost 4 GB - * @param {string} type Type of action. - * @param {string} name Name of action. Must be an exact match. - * @param {number} size Number of team members to set. Will be converted using Math.round(). - * @returns {number} Number of Bladeburner team members you assigned to the specified action. - */ - setTeamSize ( - type: BladeburnerActTypes, - name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, - size: number - ): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Set the team size for the specified Bladeburner action. + * + * Returns the team size that was set, or -1 if the function failed. + * + * @ramCost 4 GB + * @param {string} type Type of action. + * @param {string} name Name of action. Must be an exact match. + * @param {number} size Number of team members to set. Will be converted using Math.round(). + * @returns {number} Number of Bladeburner team members you assigned to the specified action. + */ + setTeamSize( + type: BladeburnerActTypes, + name: BladeburnerGenActions | BladeburnerContracts | BladeburnerOperations | BladeburnerBlackOps, + size: number, + ): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the estimated number of Synthoids in the specified city, - * or -1 if an invalid city was specified. - * - * @ramCost 4 GB - * @param {string} cityName Name of city. Case-sensitive - * @returns {number} Estimated number of Synthoids in the specified city. - */ - getCityEstimatedPopulation (name: City): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the estimated number of Synthoids in the specified city, + * or -1 if an invalid city was specified. + * + * @ramCost 4 GB + * @param {string} cityName Name of city. Case-sensitive + * @returns {number} Estimated number of Synthoids in the specified city. + */ + getCityEstimatedPopulation(name: City): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the estimated number of Synthoid communities in the specified city, - * or -1 if an invalid city was specified. - * - * @ramCost 4 GB - * @param {string} cityName Name of city. Case-sensitive - * @returns {number} Estimated number of Synthoids communities in the specified city. - */ - getCityEstimatedCommunities (name: City): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the estimated number of Synthoid communities in the specified city, + * or -1 if an invalid city was specified. + * + * @ramCost 4 GB + * @param {string} cityName Name of city. Case-sensitive + * @returns {number} Estimated number of Synthoids communities in the specified city. + */ + getCityEstimatedCommunities(name: City): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the chaos in the specified city, - * or -1 if an invalid city was specified. - * - * @ramCost 4 GB - * @param {string} cityName Name of city. Case-sensitive - * @returns {number} Chaos in the specified city. - */ - getCityChaos (name: City): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the chaos in the specified city, + * or -1 if an invalid city was specified. + * + * @ramCost 4 GB + * @param {string} cityName Name of city. Case-sensitive + * @returns {number} Chaos in the specified city. + */ + getCityChaos(name: City): number; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the city that the player is currently in (for Bladeburner). - * - * @ramCost 4 GB - * @returns {string} City that the player is currently in (for Bladeburner). - */ - getCity (): City; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the city that the player is currently in (for Bladeburner). + * + * @ramCost 4 GB + * @returns {string} City that the player is currently in (for Bladeburner). + */ + getCity(): City; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Attempts to switch to the specified city (for Bladeburner only). - * - * Returns true if successful, and false otherwise - * - * @ramCost 4 GB - * @param {string} cityName Name of city. Case-sensitive - * @returns {boolean} true if successful, and false otherwise - */ - switchCity (name: City): boolean; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Attempts to switch to the specified city (for Bladeburner only). + * + * Returns true if successful, and false otherwise + * + * @ramCost 4 GB + * @param {string} cityName Name of city. Case-sensitive + * @returns {boolean} true if successful, and false otherwise + */ + switchCity(name: City): boolean; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns an array with two elements: - * * [Current stamina, Max stamina] - * @example - * \`\`\`js - * function getStaminaPercentage() { - * let res = bladeburner.getStamina(); - * return res[0] / res[1]; - * } - * \`\`\` - * @ramCost 4 GB - * @returns {[number, number]} Array containing current stamina and max stamina. - */ - getStamina (): [number, number]; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns an array with two elements: + * * [Current stamina, Max stamina] + * @example + * \`\`\`js + * function getStaminaPercentage() { + * let res = bladeburner.getStamina(); + * return res[0] / res[1]; + * } + * \`\`\` + * @ramCost 4 GB + * @returns {[number, number]} Array containing current stamina and max stamina. + */ + getStamina(): [number, number]; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Attempts to join the Bladeburner faction. - * - * Returns true if you successfully join the Bladeburner faction, or if you are already a member. - * - * Returns false otherwise. - * - * @ramCost 4 GB - * @returns {boolean} True if you successfully join the Bladeburner faction, or if you are already a member, false otherwise. - */ - joinBladeburnerFaction (): boolean; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Attempts to join the Bladeburner faction. + * + * Returns true if you successfully join the Bladeburner faction, or if you are already a member. + * + * Returns false otherwise. + * + * @ramCost 4 GB + * @returns {boolean} True if you successfully join the Bladeburner faction, or if you are already a member, false otherwise. + */ + joinBladeburnerFaction(): boolean; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Attempts to join the Bladeburner division. - * - * Returns true if you successfully join the Bladeburner division, or if you are already a member. - * - * Returns false otherwise. - * - * @ramCost 4 GB - * @returns {boolean} True if you successfully join the Bladeburner division, or if you are already a member, false otherwise. - */ - joinBladeburnerDivision (): boolean; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Attempts to join the Bladeburner division. + * + * Returns true if you successfully join the Bladeburner division, or if you are already a member. + * + * Returns false otherwise. + * + * @ramCost 4 GB + * @returns {boolean} True if you successfully join the Bladeburner division, or if you are already a member, false otherwise. + */ + joinBladeburnerDivision(): boolean; - /** - * You have to be employed in the Bladeburner division and be in BitNode-7 - * or have Source-File 7 in order to use this function. - * - * Returns the amount of accumulated “bonus time” (seconds) for the Bladeburner mechanic. - * - * “Bonus time” is accumulated when the game is offline or if the game is inactive in the browser. - * - * “Bonus time” makes the game progress faster, up to 5x the normal speed. - * For example, if an action takes 30 seconds to complete but you’ve accumulated over - * 30 seconds in bonus time, then the action will only take 6 seconds in real life to complete. - * - * @ramCost 0 GB - * @returns {number} Amount of accumulated “bonus time” (seconds) for the Bladeburner mechanic. - */ - getBonusTime (): number; + /** + * You have to be employed in the Bladeburner division and be in BitNode-7 + * or have Source-File 7 in order to use this function. + * + * Returns the amount of accumulated “bonus time” (seconds) for the Bladeburner mechanic. + * + * “Bonus time” is accumulated when the game is offline or if the game is inactive in the browser. + * + * “Bonus time” makes the game progress faster, up to 5x the normal speed. + * For example, if an action takes 30 seconds to complete but you’ve accumulated over + * 30 seconds in bonus time, then the action will only take 6 seconds in real life to complete. + * + * @ramCost 0 GB + * @returns {number} Amount of accumulated “bonus time” (seconds) for the Bladeburner mechanic. + */ + getBonusTime(): number; } interface CodingContract { - /** - * Attempts to solve the Coding Contract with the provided solution. - * - * @ramCost 10 GB - * @param {string|string[]|number}answer Solution for the contract. - * @param {string} fn Filename of the contract. - * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns {boolean} True if the solution was correct, false otherwise. - */ - attempt ( - answer: string | string[] | number, - fn: string, - host?: Host - ): boolean; + /** + * Attempts to solve the Coding Contract with the provided solution. + * + * @ramCost 10 GB + * @param {string|string[]|number}answer Solution for the contract. + * @param {string} fn Filename of the contract. + * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. + * @returns {boolean} True if the solution was correct, false otherwise. + */ + attempt(answer: string | string[] | number, fn: string, host?: Host): boolean; - /** - * Attempts to solve the Coding Contract with the provided solution. - * - * @ramCost 10 GB - * @param {string|string[]|number}answer Solution for the contract. - * @param {string} fn Filename of the contract. - * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. - * @param {object} [opts] Optional parameters for configuring function behavior. - * @returns {boolean} True if the solution was correct, false otherwise. If the returnReward option is configured, then the function will instead return a string. If the contract is successfully solved, the string will contain a description of the contract’s reward. Otherwise, it will be an empty string. - */ - attempt ( - answer: string | string[] | number, - fn: string, - host?: Host, - opts?: CodingAttemptOptions - ): boolean | string; + /** + * Attempts to solve the Coding Contract with the provided solution. + * + * @ramCost 10 GB + * @param {string|string[]|number}answer Solution for the contract. + * @param {string} fn Filename of the contract. + * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. + * @param {object} [opts] Optional parameters for configuring function behavior. + * @returns {boolean} True if the solution was correct, false otherwise. If the returnReward option is configured, then the function will instead return a string. If the contract is successfully solved, the string will contain a description of the contract’s reward. Otherwise, it will be an empty string. + */ + attempt(answer: string | string[] | number, fn: string, host?: Host, opts?: CodingAttemptOptions): boolean | string; - /** - * Returns a name describing the type of problem posed by the Coding Contract. - * (e.g. Find Largest Prime Factor, Total Ways to Sum, etc.) - * - * @ramCost 5 GB - * @param {string} fn Filename of the contract. - * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns {string} Name describing the type of problem posed by the Coding Contract. - */ - getContractType (fn: string, host?: Host): CodingContractTypes; + /** + * Returns a name describing the type of problem posed by the Coding Contract. + * (e.g. Find Largest Prime Factor, Total Ways to Sum, etc.) + * + * @ramCost 5 GB + * @param {string} fn Filename of the contract. + * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. + * @returns {string} Name describing the type of problem posed by the Coding Contract. + */ + getContractType(fn: string, host?: Host): CodingContractTypes; - /** - * Get the full text description for the problem posed by the Coding Contract. - * - * @ramCost 5 GB - * @param {string} fn Filename of the contract. - * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns {string} Contract’s text description. - */ - getDescription (fn: string, host?: Host): string; + /** + * Get the full text description for the problem posed by the Coding Contract. + * + * @ramCost 5 GB + * @param {string} fn Filename of the contract. + * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. + * @returns {string} Contract’s text description. + */ + getDescription(fn: string, host?: Host): string; - /** - * Get the data associated with the specific Coding Contract. - * Note that this is not the same as the contract’s description. - * This is just the data that the contract wants you to act on in order to solve - * - * @ramCost 5 GB - * @param {string} fn Filename of the contract. - * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns {string} The specified contract’s data; - */ - getData (fn: string, host?: Host): string; + /** + * Get the data associated with the specific Coding Contract. + * Note that this is not the same as the contract’s description. + * This is just the data that the contract wants you to act on in order to solve + * + * @ramCost 5 GB + * @param {string} fn Filename of the contract. + * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. + * @returns {string} The specified contract’s data; + */ + getData(fn: string, host?: Host): string; - /** - * Get the number of tries remaining on the contract before it self-destructs. - * - * @ramCost 2 GB - * @param {string} fn Filename of the contract. - * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. - * @returns {number} How many attempts are remaining for the contract; - */ - getNumTriesRemaining (fn: string, host?: Host): number; + /** + * Get the number of tries remaining on the contract before it self-destructs. + * + * @ramCost 2 GB + * @param {string} fn Filename of the contract. + * @param {string} [host] Host or IP of the server containing the contract. Optional. Defaults to current server if not provided. + * @returns {number} How many attempts are remaining for the contract; + */ + getNumTriesRemaining(fn: string, host?: Host): number; } interface Gang { + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the names of all Gang members + * + * @ramCost 1 GB + * @returns {string[]} Names of all Gang members. + */ + getMemberNames(): string[]; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the names of all Gang members - * - * @ramCost 1 GB - * @returns {string[]} Names of all Gang members. - */ - getMemberNames (): string[]; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get general information about the gang. + * + * @ramCost 2 GB + * @returns {object} Object containing general information about the gang. + */ + getGangInformation(): GangGenInfo; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get general information about the gang. - * - * @ramCost 2 GB - * @returns {object} Object containing general information about the gang. - */ - getGangInformation (): GangGenInfo; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get territory and power information about all gangs. + * + * @ramCost 2 GB + * @returns {object} Object containing territory and power information about all gangs. + */ + getOtherGangInformation(): GangOtherInfo; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get territory and power information about all gangs. - * - * @ramCost 2 GB - * @returns {object} Object containing territory and power information about all gangs. - */ - getOtherGangInformation (): GangOtherInfo; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get stat and equipment-related information about a Gang Member + * + * @ramCost 2 GB + * @param {string} name Name of member. + * @returns {object} Object containing stat and equipment-related information about a Gang Member. + */ + getMemberInformation(name: string): GangMemberInfo; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get stat and equipment-related information about a Gang Member - * - * @ramCost 2 GB - * @param {string} name Name of member. - * @returns {object} Object containing stat and equipment-related information about a Gang Member. - */ - getMemberInformation (name: string): GangMemberInfo; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Returns boolean indicating whether a member can currently be recruited + * + * @ramCost 1 GB + * @returns {boolean} True if a member can currently be recruited, false otherwise. + */ + canRecruitMember(): boolean; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Returns boolean indicating whether a member can currently be recruited - * - * @ramCost 1 GB - * @returns {boolean} True if a member can currently be recruited, false otherwise. - */ - canRecruitMember (): boolean; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Attempt to recruit a new gang member. + * + * Possible reasons for failure: + * * Cannot currently recruit a new member + * * There already exists a member with the specified name + * + * @ramCost 2 GB + * @param {string} name Name of member to recruit. + * @returns {boolean} True if the member was successfully recruited, false otherwise. + */ + recruitMember(name: string): boolean; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Attempt to recruit a new gang member. - * - * Possible reasons for failure: - * * Cannot currently recruit a new member - * * There already exists a member with the specified name - * - * @ramCost 2 GB - * @param {string} name Name of member to recruit. - * @returns {boolean} True if the member was successfully recruited, false otherwise. - */ - recruitMember (name: string): boolean; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the name of all valid tasks that Gang members can be assigned to. + * + * @ramCost 1 GB + * @returns {string[]} All valid tasks that Gang members can be assigned to. + */ + getTaskNames(): GangTasks[]; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the name of all valid tasks that Gang members can be assigned to. - * - * @ramCost 1 GB - * @returns {string[]} All valid tasks that Gang members can be assigned to. - */ - getTaskNames (): GangTasks[]; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Attempts to assign the specified Gang Member to the specified task. + * If an invalid task is specified, the Gang member will be set to idle (“Unassigned”). + * + * @ramCost 2 GB + * @param {string} memberName Name of Gang member to assign. + * @param {string} taskName Task to assign. + * @returns {boolean} True if the Gang Member was successfully assigned to the task, false otherwise. + */ + setMemberTask(memberName: string, taskName: GangTasks): boolean; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Attempts to assign the specified Gang Member to the specified task. - * If an invalid task is specified, the Gang member will be set to idle (“Unassigned”). - * - * @ramCost 2 GB - * @param {string} memberName Name of Gang member to assign. - * @param {string} taskName Task to assign. - * @returns {boolean} True if the Gang Member was successfully assigned to the task, false otherwise. - */ - setMemberTask (memberName: string, taskName: GangTasks): boolean; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the stats of a gang task stats. This is typically used to evaluate which action should be executed next. + * + * @ramCost 1 GB + * @param {string} name Name of the task. + * @returns {boolean} Detailed stats of a task. + */ + getTaskStats(name: GangTasks): GangTasksStats; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the stats of a gang task stats. This is typically used to evaluate which action should be executed next. - * - * @ramCost 1 GB - * @param {string} name Name of the task. - * @returns {boolean} Detailed stats of a task. - */ - getTaskStats (name: GangTasks): GangTasksStats; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the name of all possible equipment/upgrades you can purchase for your Gang Members. + * This includes Augmentations. + * + * @ramCost 1 GB + * @returns {string[]} Names of all Equpiment/Augmentations. + */ + getEquipmentNames(): (GangEquipment | GangAugmentations)[]; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the name of all possible equipment/upgrades you can purchase for your Gang Members. - * This includes Augmentations. - * - * @ramCost 1 GB - * @returns {string[]} Names of all Equpiment/Augmentations. - */ - getEquipmentNames (): (GangEquipment | GangAugmentations)[]; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the amount of money it takes to purchase a piece of Equipment or an Augmentation. + * If an invalid Equipment/Augmentation is specified, this function will return Infinity. + * + * @ramCost 2 GB + * @param {string} equipName Name of equipment. + * @returns {number} Cost to purchase the specified Equipment/Augmentation (number). Infinity for invalid arguments + */ + getEquipmentCost(equipName: GangEquipment | GangAugmentations): number; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the amount of money it takes to purchase a piece of Equipment or an Augmentation. - * If an invalid Equipment/Augmentation is specified, this function will return Infinity. - * - * @ramCost 2 GB - * @param {string} equipName Name of equipment. - * @returns {number} Cost to purchase the specified Equipment/Augmentation (number). Infinity for invalid arguments - */ - getEquipmentCost (equipName: GangEquipment | GangAugmentations): number; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the specified equipment type. + * + * @ramCost 2 GB + * @param {string} equipName Name of equipment. + * @returns {number} Type of the equipment. + */ + getEquipmentType(equipName: GangEquipment | GangAugmentations): GangEquipmentType; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the specified equipment type. - * - * @ramCost 2 GB - * @param {string} equipName Name of equipment. - * @returns {number} Type of the equipment. - */ - getEquipmentType ( - equipName: GangEquipment | GangAugmentations - ): GangEquipmentType; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Get the specified equipment stats. + * + * @ramCost 2 GB + * @param {string} equipName Name of equipment. + * @returns {object} A dictionary containing the stats of the equipment. + */ + getEquipmentStats(equipName: GangEquipment | GangAugmentations): GangEquipmentStats; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Get the specified equipment stats. - * - * @ramCost 2 GB - * @param {string} equipName Name of equipment. - * @returns {object} A dictionary containing the stats of the equipment. - */ - getEquipmentStats ( - equipName: GangEquipment | GangAugmentations - ): GangEquipmentStats; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Attempt to purchase the specified Equipment/Augmentation for the specified Gang member. + * + * @ramCost 4 GB + * @param {string} memberName Name of Gang member to purchase the equipment for. + * @param {string} equipName Name of Equipment/Augmentation to purchase. + * @returns {boolean} True if the equipment was successfully purchased. False otherwise + */ + purchaseEquipment(memberName: string, equipName: GangEquipment | GangAugmentations): boolean; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Attempt to purchase the specified Equipment/Augmentation for the specified Gang member. - * - * @ramCost 4 GB - * @param {string} memberName Name of Gang member to purchase the equipment for. - * @param {string} equipName Name of Equipment/Augmentation to purchase. - * @returns {boolean} True if the equipment was successfully purchased. False otherwise - */ - purchaseEquipment (memberName: string, equipName: GangEquipment | GangAugmentations): boolean; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Ascend the specified Gang Member. + * + * @ramCost 4 GB + * @param {string} memberName Name of member to ascend. + * @returns {object} Object with info about the ascension results. + */ + ascendMember(memberName: string): GangMemberAscension; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Ascend the specified Gang Member. - * - * @ramCost 4 GB - * @param {string} memberName Name of member to ascend. - * @returns {object} Object with info about the ascension results. - */ - ascendMember (memberName: string): GangMemberAscension; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Set whether or not the gang should engage in territory warfare + * + * @ramCost 2 GB + * @param {boolean} engage Whether or not to engage in territory warfare. + */ + setTerritoryWarfare(engage: boolean): void; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Set whether or not the gang should engage in territory warfare - * - * @ramCost 2 GB - * @param {boolean} engage Whether or not to engage in territory warfare. - */ - setTerritoryWarfare (engage: boolean): void; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Returns the chance you have to win a clash with the specified gang. The chance is returned in decimal form, not percentage + * + * @ramCost 4 GB + * @param {string} gangName Target gang + * @returns {number} Chance you have to win a clash with the specified gang. + */ + getChanceToWinClash(gangName: GangName): number; - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Returns the chance you have to win a clash with the specified gang. The chance is returned in decimal form, not percentage - * - * @ramCost 4 GB - * @param {string} gangName Target gang - * @returns {number} Chance you have to win a clash with the specified gang. - */ - getChanceToWinClash (gangName: GangName): number; - - /** - * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. - * - * Returns the amount of accumulated “bonus time” (seconds) for the Gang mechanic. - * - * “Bonus time” is accumulated when the game is offline or if the game is inactive in the browser. - * - * “Bonus time” makes the game progress faster, up to 10x the normal speed. - * - * @ramCost 0 GB - * @returns {number} Bonus time for the Gang mechanic in seconds. - */ - getBonusTime (): number; + /** + * If you are not in BitNode-2, then you must have Source-File 2 in order to use this function. + * + * Returns the amount of accumulated “bonus time” (seconds) for the Gang mechanic. + * + * “Bonus time” is accumulated when the game is offline or if the game is inactive in the browser. + * + * “Bonus time” makes the game progress faster, up to 10x the normal speed. + * + * @ramCost 0 GB + * @returns {number} Bonus time for the Gang mechanic in seconds. + */ + getBonusTime(): number; } interface Sleeve { - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return the number of duplicate sleeves the player has. - * - * @ramCost 4 GB - * @returns {number} number of duplicate sleeves the player has. - */ - getNumSleeves (): number; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return the number of duplicate sleeves the player has. + * + * @ramCost 4 GB + * @returns {number} number of duplicate sleeves the player has. + */ + getNumSleeves(): number; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a structure containing the stats of the sleeve. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to get stats of. - * @returns {object} Object containing the stats of the sleeve. - */ - getSleeveStats (sleeveNumber: number): SleeveStats; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a structure containing the stats of the sleeve. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to get stats of. + * @returns {object} Object containing the stats of the sleeve. + */ + getSleeveStats(sleeveNumber: number): SleeveStats; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a struct containing tons of information about this sleeve - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to retrieve information. - * @returns {object} Object containing tons of information about this sleeve. - */ - getInformation (sleeveNumber: number): SleeveInformation; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a struct containing tons of information about this sleeve + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to retrieve information. + * @returns {object} Object containing tons of information about this sleeve. + */ + getInformation(sleeveNumber: number): SleeveInformation; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return the current task that the sleeve is performing. type is set to “Idle” if the sleeve isn’t doing anything. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to retrieve task from. - * @returns {object} Object containing information the current task that the sleeve is performing. - */ - getTask (sleeveNumber: number): SleeveTask; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return the current task that the sleeve is performing. type is set to “Idle” if the sleeve isn’t doing anything. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to retrieve task from. + * @returns {object} Object containing information the current task that the sleeve is performing. + */ + getTask(sleeveNumber: number): SleeveTask; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not this action was set successfully. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to start recovery. - * @returns {boolean} True if this action was set successfully, false otherwise. - */ - setToShockRecovery (sleeveNumber: number): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not this action was set successfully. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to start recovery. + * @returns {boolean} True if this action was set successfully, false otherwise. + */ + setToShockRecovery(sleeveNumber: number): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not this action was set successfully. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to start synchronizing. - * @returns {boolean} True if this action was set successfully, false otherwise. - */ - setToSynchronize (sleeveNumber: number): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not this action was set successfully. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to start synchronizing. + * @returns {boolean} True if this action was set successfully, false otherwise. + */ + setToSynchronize(sleeveNumber: number): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not this action was set successfully. - * - * Returns false if an invalid action is specified. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to start commiting crime. - * @param {string} name Name of the crime. Must be an exact match. - * @returns {boolean} True if this action was set successfully, false otherwise. - */ - setToCommitCrime (sleeveNumber: number, name: Crime): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not this action was set successfully. + * + * Returns false if an invalid action is specified. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to start commiting crime. + * @param {string} name Name of the crime. Must be an exact match. + * @returns {boolean} True if this action was set successfully, false otherwise. + */ + setToCommitCrime(sleeveNumber: number, name: Crime): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not the sleeve started working or this faction. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to work for the faction. - * @param {string} factionName Name of the faction to work for. - * @param {string} factionWorkType Name of the action to perform for this faction. - * @returns {boolean} True if the sleeve started working on this faction, false otherwise. - */ - setToFactionWork (sleeveNumber: number, factionName: FactionName, factionWorkType: FactionWork): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not the sleeve started working or this faction. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to work for the faction. + * @param {string} factionName Name of the faction to work for. + * @param {string} factionWorkType Name of the action to perform for this faction. + * @returns {boolean} True if the sleeve started working on this faction, false otherwise. + */ + setToFactionWork(sleeveNumber: number, factionName: FactionName, factionWorkType: FactionWork): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not the sleeve started working or this company. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to work for the company. - * @param {string} companyName Name of the company to work for. - * @returns {boolean} True if the sleeve started working on this company, false otherwise. - */ - setToCompanyWork (sleeveNumber: number, companyName: CompanyName): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not the sleeve started working or this company. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to work for the company. + * @param {string} companyName Name of the company to work for. + * @returns {boolean} True if the sleeve started working on this company, false otherwise. + */ + setToCompanyWork(sleeveNumber: number, companyName: CompanyName): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not this action was set successfully. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to start taking class. - * @param {string} university Name of the university to attend. - * @param {string} className Name of the class to follow. - * @returns {boolean} True if this action was set successfully, false otherwise. - */ - setToUniversityCourse (sleeveNumber: number, university: University, className: UniversityCourse): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not this action was set successfully. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to start taking class. + * @param {string} university Name of the university to attend. + * @param {string} className Name of the class to follow. + * @returns {boolean} True if this action was set successfully, false otherwise. + */ + setToUniversityCourse(sleeveNumber: number, university: University, className: UniversityCourse): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not the sleeve started working out. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to workout at the gym. - * @param {string} gymName Name of the gym. - * @param {string} stat Name of the stat to train. - * @returns {boolean} True if the sleeve started working out, false otherwise. - */ - setToGymWorkout (sleeveNumber: number, gymName: Gym, stat: GymStat): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not the sleeve started working out. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to workout at the gym. + * @param {string} gymName Name of the gym. + * @param {string} stat Name of the stat to train. + * @returns {boolean} True if the sleeve started working out, false otherwise. + */ + setToGymWorkout(sleeveNumber: number, gymName: Gym, stat: GymStat): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a boolean indicating whether or not the sleeve reached destination. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to travel. - * @param {string} cityName Name of the destination city. - * @returns {boolean} True if the sleeve reached destination, false otherwise. - */ - travel (sleeveNumber: number, cityName: City): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a boolean indicating whether or not the sleeve reached destination. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to travel. + * @param {string} cityName Name of the destination city. + * @returns {boolean} True if the sleeve reached destination, false otherwise. + */ + travel(sleeveNumber: number, cityName: City): boolean; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a list of augmentation names that this sleeve has installed. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to retrieve augmentations from. - * @returns {string[]} List of augmentation names that this sleeve has installed. - */ - getSleeveAugmentations (sleeveNumber: number): AugmentName[]; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a list of augmentation names that this sleeve has installed. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to retrieve augmentations from. + * @returns {string[]} List of augmentation names that this sleeve has installed. + */ + getSleeveAugmentations(sleeveNumber: number): AugmentName[]; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return a list of augmentations that the player can buy for this sleeve. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to retrieve purchasable augmentations from. - * @returns {string[]} List of augmentations that the player can buy for this sleeve. - */ - getSleevePurchasableAugs (sleeveNumber: number): AugmentPair[]; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return a list of augmentations that the player can buy for this sleeve. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to retrieve purchasable augmentations from. + * @returns {string[]} List of augmentations that the player can buy for this sleeve. + */ + getSleevePurchasableAugs(sleeveNumber: number): AugmentPair[]; - /** - * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. - * - * Return true if the aug was purchased and installed on the sleeve. - * - * @ramCost 4 GB - * @param {number} sleeveNumber Index of the sleeve to buy an aug for. - * @param {string} augName Name of the aug to buy. Must be an exact match. - * @returns {boolean} True if the aug was purchased and installed on the sleeve, false otherwise. - */ - purchaseSleeveAug (sleeveNumber: number, augName: AugmentName): boolean; + /** + * If you are not in BitNode-10, then you must have Source-File 10 in order to use this function. + * + * Return true if the aug was purchased and installed on the sleeve. + * + * @ramCost 4 GB + * @param {number} sleeveNumber Index of the sleeve to buy an aug for. + * @param {string} augName Name of the aug to buy. Must be an exact match. + * @returns {boolean} True if the aug was purchased and installed on the sleeve, false otherwise. + */ + purchaseSleeveAug(sleeveNumber: number, augName: AugmentName): boolean; } -interface NS extends Singularity { - - /** - * Not all functions in the Hacknet Node API are immediately available. - * - * Note that none of these functions will write to the script’s logs. - * - * If you want to see what your script is doing you will have to print to the logs yourself. - * - * @ramCost 4 GB - */ - readonly hacknet: HackNet; - /** - * @ramCost 0 GB - */ - readonly bladeburner: BladeBurner; - /** - * @ramCost 0 GB - */ - readonly codingcontract: CodingContract; - /** - * @ramCost 0 GB - */ - readonly gang: Gang; - /** - * @ramCost 0 GB - */ - readonly sleeve: Sleeve; - /** - * @ramCost 0 GB - */ - readonly stock: TIX; - - /** - * Arguments passed into a script can be accessed using a normal - * array using the [] operator (args[0], args[1], etc…). - * - * It is also possible to get the number of arguments that was passed into a script using: - * \`\`\`js - * args.length - * \`\`\` - * WARNING: Do not try to modify the args array. This will break the game. - * - * @ramCost 0 GB - */ - readonly args: any[]; - - /** - * Function that is used to try and hack servers to steal money and gain hacking experience. - * The runtime for this command depends on your hacking level and the target server’s - * security level. In order to hack a server you must first gain root access to that server - * and also have the required hacking level. - * - * A script can hack a server from anywhere. It does not need to be running on the same - * server to hack that server. For example, you can create a script that hacks the \`foodnstuff\` - * server and run that script on any server in the game. - * - * A successful \`hack()\` on a server will raise that server’s security level by 0.002. - * - * @example - * \`\`\`js - * hack("foodnstuff"); - * hack("10.1.2.3"); - * hack("foodnstuff", { threads: 5 }); // Only use 5 threads to hack - * \`\`\` - * @ramCost 0.1 GB - * @param {string} host Hostname or IP of the target server to hack. - * @param {object} [opts] Optional parameters for configuring function behavior. - * @returns {Promise} The amount of money stolen if the hack is successful, and zero otherwise. - */ - hack (host: Host, opts?: BasicHGWOptions): Promise; - - /** - * Use your hacking skills to increase the amount of money available on a server. - * The runtime for this command depends on your hacking level and the target server’s - * security level. When \`grow\` completes, the money available on a target server will - * be increased by a certain, fixed percentage. This percentage is determined by the - * target server’s growth rate (which varies between servers) and security level. Generally, - * higher-level servers have higher growth rates. The getServerGrowth() function can be used - * to obtain a server’s growth rate. - * - * Like {@link hack}, \`grow\` can be called on any server, regardless of where the script is running. - * The grow() command requires root access to the target server, but there is no required hacking - * level to run the command. It also raises the security level of the target server by 0.004. - * - * @example - * \`\`\`js - * grow("foodnstuff"); - * grow("foodnstuff", { threads: 5 }); // Only use 5 threads to grow - * \`\`\` - * @ramCost 0.15 GB - * @param {string} host Hostname or IP of the target server to grow. - * @param {object} [opts] Optional parameters for configuring function behavior. - * @returns {Promise} The number by which the money on the server was multiplied for the growth. - */ - grow (host: Host, opts?: BasicHGWOptions): Promise; - - /** - * Use your hacking skills to attack a server’s security, lowering the server’s security level. - * The runtime for this command depends on your hacking level and the target server’s security - * level. This function lowers the security level of the target server by 0.05. - * - * Like {@link hack} and {@link grow}, \`weaken\` can be called on any server, regardless of - * where the script is running. This command requires root access to the target server, but - * there is no required hacking level to run the command. - * - * @example - * \`\`\`js - * weaken("foodnstuff"); - * weaken("foodnstuff", { threads: 5 }); // Only use 5 threads to weaken - * \`\`\` - * @ramCost 0.15 GB - * @param {string} host Hostname or IP of the target server to weaken. - * @param {object} [opts] Optional parameters for configuring function behavior. - * @returns {Promise} The amount by which the target server’s security level was decreased. This is equivalent to 0.05 multiplied by the number of script threads. - */ - weaken (host: Host, opts?: BasicHGWOptions): Promise; - - /** - * Returns the security decrease that would occur if a weaken with this many threads happened. - * - * @ramCost 1 GB - * @param {number} threads Amount of threads that will be used. - * @param {number} cores Optional. The number of cores of the server that would run weaken. - * @returns {number} The security decrease. - */ - weakenAnalyze (threads: number, cores?: number): number; - - /** - * This function returns the number of script threads you need when running the {@link hack} command - * to steal the specified amount of money from the target server. - * If hackAmount is less than zero or greater than the amount of money available on the server, - * then this function returns -1. - * - * Warning: The value returned by this function isn’t necessarily a whole number. - * - * @example - * \`\`\`js - * //For example, let’s say the foodnstuff server has $10m and you run: - * hackAnalyzeThreads("foodnstuff", 1e6); - * //If this function returns 50, this means that if your next {@link hack} call is run on a script with 50 threads, it will steal $1m from the foodnstuff server. - * \`\`\` - * @ramCost 1 GB - * @param {string} host Hostname or IP of the target server to analyze. - * @param {number} hackAmount Amount of money you want to hack from the server. - * @returns {number} The number of threads needed to {@link hack} the server for hackAmount money. - */ - hackAnalyzeThreads (host: Host, hackAmount: number): number; - - /** - * Returns the percentage of the specified server’s money you will steal with a single hack. - * This value is returned in percentage form, not decimal - * (Netscript functions typically return in decimal form, but not this one). - * - * @example - * \`\`\`js - * //For example, assume the following returns 1: - * hackAnalyzePercent("foodnstuff"); - * //This means that if hack the foodnstuff server, then you will steal 1% of its total money. If you {@link hack} using N threads, then you will steal N% of its total money. - * \`\`\` - * @ramCost 1 GB - * @param {string} host Hostname or IP of the target server. - * @returns {number} The percentage of money you will steal from the target server with a single hack. - */ - hackAnalyzePercent (host: Host): number; - - /** - * Returns the security increase that would occur if a hack with this many threads happened. - * - * @ramCost 1 GB - * @param {number} threads Amount of threads that will be used. - * @returns {number} The security increase. - */ - hackAnalyzeSecurity (threads: number): number; - - /** - * Returns the chance you have of successfully hacking the specified server. - * - * This returned value is in decimal form, not percentage. - * - * @ramCost 1 GB - * @param {string} host Hostname or IP of the target server. - * @returns {number} The chance you have of successfully hacking the target server. - */ - hackChance (host: Host): number; - - /** - * This function returns the number of “growths” needed in order to increase - * the amount of money available on the specified server by the specified amount. - * The specified amount is multiplicative and is in decimal form, not percentage. - * - * Warning: The value returned by this function isn’t necessarily a whole number. - * - * @example - * \`\`\`js - * //For example, if you want to determine how many {@link grow} calls you need to double the amount of money on foodnstuff, you would use: - * growthAnalyze("foodnstuff", 2); - * //If this returns 100, then this means you need to call {@link grow} 100 times in order to double the money (or once with 100 threads). - * \`\`\` - * @ramCost 1 GB - * @param {string} host Hostname or IP of the target server. - * @param {number} growthAmount Multiplicative factor by which the server is grown. Decimal form.. - * @returns {number} The amount of {@link grow} calls needed to grow the specified server by the specified amount - */ - growthAnalyze (host: Host, growthAmount: number): number; - - - /** - * Returns the security increase that would occur if a grow with this many threads happened. - * - * @ramCost 1 GB - * @param {number} threads Amount of threads that will be used. - * @returns {number} The security increase. - */ - growthAnalyzeSecurity (threads: number): number; - - /** - * Suspends the script for n milliseconds. - * - * @ramCost 0 GB - * @param {number} millis Number of milliseconds to sleep. - * @returns {Promise} - */ - sleep (millis: number): Promise; - - /** - * Prints a value or a variable to the script’s logs. - * - * @ramCost 0 GB - * @param {string} msg Value to be printed. - */ - print (msg: string | number | string[] | number[]): void; - - /** - * Prints a value or a variable to the Terminal. - * - * @ramCost 0 GB - * @param {string} msg Value to be printed. - */ - tprint (msg: string | number | string[] | number[]): void; - - /** - * Clears the script’s logs. - * - * @ramCost 0 GB - */ - clearLog (): void; - - /** - * Disables logging for the given function. Logging can be disabled - * for all functions by passing \`ALL\` as the argument. - * - * Note that this does not completely remove all logging functionality. - * This only stops a function from logging when the function is successful. - * If the function fails, it will still log the reason for failure. - * - * Notable functions that cannot have their logs disabled: {@link run}, - * {@link exec}, {@link exit}. - * - * @ramCost 0 GB - * @param {string} fn Name of function for which to disable logging. - */ - disableLog (fn: string): void; - - /** - * Re-enables logging for the given function. If \`ALL\` is passed into this - * function as an argument, then it will revert the effects of disableLog(\`ALL\`). - * - * @ramCost 0 GB - * @param {string} fn Name of function for which to enable logging. - */ - enableLog (fn: string): void; - - /** - * Checks the status of the logging for the given function. - * - * @ramCost 0 GB - * @param {string} fn Name of function to check. - * @returns {boolean} Returns a boolean indicating whether or not logging is enabled for that function (or \`ALL\`) - */ - isLogEnabled (fn: string): boolean; - - /** - * Returns a script’s logs. The logs are returned as an array, where each line is an element in the array. - * The most recently logged line is at the end of the array. - * Note that there is a maximum number of lines that a script stores in its logs. This is configurable in the game’s options. - * If the function is called with no arguments, it will return the current script’s logs. - * - * Otherwise, the fn, hostname/ip, and args… arguments can be used to get the logs from another script. - * Remember that scripts are uniquely identified by both their names and arguments. - * - * @example - * \`\`\`js - * //Get logs from foo.script on the current server that was run with no args - * getScriptLogs("foo.script"); - * \`\`\` - * @example - * \`\`\`js - * //Open logs from foo.script on the foodnstuff server that was run with no args - * getScriptLogs("foo.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //Open logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] - * getScriptLogs("foo.script", "foodnstuff", 1, "test"); - * \`\`\` - * @ramCost 0 GB - * @param {string} [fn] Optional. Filename of script to get logs from. - * @param {string} [host] Optional. Hostname or IP of the server that the script is on. - * @param {...string} [args] Arguments to identify which scripts to get logs for. - * @returns {string[]} Returns an string array, where each line is an element in the array. The most recently logged line is at the end of the array. - */ - getScriptLogs (fn?: Script, host?: Host, ...args: any[]): string[]; - - /** - * Opens a script’s logs. This is functionally the same as the tail Terminal command. - * - * If the function is called with no arguments, it will open the current script’s logs. - * - * Otherwise, the fn, hostname/ip, and args… arguments can be used to get the logs from another script. - * Remember that scripts are uniquely identified by both their names and arguments. - * - * @example - * \`\`\`js - * //Open logs from foo.script on the current server that was run with no args - * tail("foo.script"); - * \`\`\` - * @example - * \`\`\`js - * //Get logs from foo.script on the foodnstuff server that was run with no args - * tail("foo.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //Get logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] - * tail("foo.script", "foodnstuff", 1, "test"); - * \`\`\` - * @ramCost 0 GB - * @param {string} [fn] Optional. Filename of the script being tailed. If omitted, the current script is tailed. - * @param {string} [host] Optional. Hostname or IP of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. - * @param {any[]} ...args Arguments for the script being tailed. - */ - tail (fn?: Script, host?: Host, ...args: any[]): void; - - /** - * Returns an array containing the hostnames or IPs of all servers that are one - * node way from the specified target server. The hostnames/IPs in the returned - * array are strings. - * - * @ramCost 0.2 GB - * @param {string} host Hostname or IP of the server to scan. - * @param {boolean} hostnames Optional boolean specifying whether the function should output hostnames (if true) or IP addresses (if false). - * @returns {string[]} Returns an string of hostnames or IP. - */ - scan (host: Host, hostnames?: boolean): Host[]; - - /** - * Runs the NUKE.exe program on the target server. NUKE.exe must exist on your home computer. - * - * @example - * \`\`\`js - * nuke("foodnstuff"); - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Hostname or IP of the target server. - */ - nuke (host: Host): void; - - /** - * Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist on your home computer. - * - * @example - * \`\`\`js - * brutessh("foodnstuff"); - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Hostname or IP of the target server. - */ - brutessh (host: Host): void; - - /** - * Runs the FTPCrack.exe program on the target server. FTPCrack.exe must exist on your home computer. - * - * @example - * \`\`\`js - * ftpcrack("foodnstuff"); - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Hostname or IP of the target server. - */ - ftpcrack (host: Host): void; - - /** - * Runs the relaySMTP.exe program on the target server. relaySMTP.exe must exist on your home computer. - * - * @example - * \`\`\`js - * relaysmtp("foodnstuff"); - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Hostname or IP of the target server. - */ - relaysmtp (host: Host): void; - - /** - * Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist on your home computer. - * - * @example - * \`\`\`js - * httpworm("foodnstuff"); - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Hostname or IP of the target server. - */ - httpworm (host: Host): void; - - /** - * Runs the SQLInject.exe program on the target server. SQLInject.exe must exist on your home computer. - * - * @example - * \`\`\`js - * sqlinject("foodnstuff"); - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Hostname or IP of the target server. - */ - sqlinject (host: Host): void; - - /** - * Run a script as a separate process. This function can only be used to run scripts located on the - * current server (the server running the script that calls this function). Requires a significant - * amount of RAM to run this command. - * - * If the script was successfully started, then this functions returns the PID of that script. - * Otherwise, it returns 0. - * - * PID stands for Process ID. The PID is a unique identifier for each script. - * The PID will always be a positive integer. - * - * Running this function with a numThreads argument of 0 will return 0 without running the script. - * However, running this function with a negative numThreads argument will cause a runtime error. - * - * @example - * \`\`\`js - * //The simplest way to use the run command is to call it with just the script name. The following example will run ‘foo.script’ single-threaded with no arguments: - * run("foo.script"); - * \`\`\` - * @example - * \`\`\`js - * //The following example will run ‘foo.script’ but with 5 threads instead of single-threaded: - * run("foo.script", 5); - * \`\`\` - * @example - * \`\`\`js - * //This next example will run ‘foo.script’ single-threaded, and will pass the string ‘foodnstuff’ into the script as an argument: - * run("foo.script", 1, 'foodnstuff'); - * \`\`\` - * @ramCost 1 GB - * @param {string} script Filename of script to run. - * @param {number} [numThreads] Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. - * @param {...string} [args] Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument numThreads must be filled in with a value. - * @returns {number} Returns the PID of a successfully started script, and 0 otherwise. - */ - run ( - script: Script, - numThreads?: number, - ...args: string[] - ): number; - - /** - * Run a script as a separate process on a specified server. This is similar to the run function - * except that it can be used to run a script on any server, instead of just the current server. - * - * If the script was successfully started, then this functions returns the PID of that script. - * Otherwise, it returns 0. - * - * PID stands for Process ID. The PID is a unique identifier for each script. - * The PID will always be a positive integer. - * - * Running this function with a numThreads argument of 0 will return 0 without running the script. - * However, running this function with a negative numThreads argument will cause a runtime error. - * - * @example - * \`\`\`js - * //The simplest way to use the exec command is to call it with just the script name and the target server. The following example will try to run generic-hack.script on the foodnstuff server: - * exec("generic-hack.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //The following example will try to run the script generic-hack.script on the joesguns server with 10 threads: - * exec("generic-hack.script", "joesguns", 10); - * \`\`\` - * @example - * \`\`\`js - * //This last example will try to run the script foo.script on the foodnstuff server with 5 threads. It will also pass the number 1 and the string “test” in as arguments to the script: - * exec("foo.script", "foodnstuff", 5, 1, "test"); - * \`\`\` - * @ramCost 1.3 GB - * @param {string} script Filename of script to execute. - * @param {string} host Hostname or IP of the \`target server\` on which to execute the script. - * @param {number} [numThreads] Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. - * @param {...string} [args] Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument numThreads must be filled in with a value. - * @returns {number} Returns the PID of a successfully started script, and 0 otherwise. - */ - exec ( - script: Script, - host: Host, - numThreads?: number, - ...args: string[] - ): number; - - /** - * Terminates the current script, and then after a delay of about 10 seconds it will execute the - * newly-specified script. The purpose of this function is to execute a new script without being - * constrained by the RAM usage of the current one. This function can only be used to run scripts - * on the local server. - * - * Because this function immediately terminates the script, it does not have a return value. - * - * @example - * \`\`\`js - * //The following example will execute the script ‘foo.script’ with 10 threads and the arguments ‘foodnstuff’ and 90: - * spawn('foo.script', 10, 'foodnstuff', 90); - * \`\`\` - * @ramCost 2 GB - * @param {string} script Filename of script to execute. - * @param {string} numThreads Number of threads to spawn new script with. Will be rounded to nearest integer. - * @param {...string} [args] Additional arguments to pass into the new script that is being run. - */ - spawn (script: Script, numThreads?: number, ...args: string[]): void; - - /** - * Kills the script on the target server specified by the script’s name and arguments. - * Remember that scripts are uniquely identified by both their name and arguments. - * For example, if \`foo.script\` is run with the argument 1, then this is not the same as - * \`foo.script\` run with the argument 2, even though they have the same code. - * - * @example - * \`\`\`js - * //The following example will try to kill a script named foo.script on the foodnstuff server that was ran with no arguments: - * kill("foo.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //The following will try to kill a script named foo.script on the current server that was ran with no arguments: - * kill("foo.script", getHostname()); - * \`\`\` - * @example - * \`\`\`js - * //The following will try to kill a script named foo.script on the current server that was ran with the arguments 1 and “foodnstuff”: - * kill("foo.script", getHostname(), 1, "foodnstuff"); - * \`\`\` - * @ramCost 0.5 GB - * @param {string} script Filename of the script to kill - * @param {string} host Hostname or IP of the server on which to kill the script. - * @param {...string} [args] Arguments to identify which script to kill. - * @returns {boolean} True if the script is successfully killed, and false otherwise. - */ - kill (script: Script, host: Host, ...args: string[]): boolean; - - /** - * Kills the script with the specified PID. - * Killing a script by its PID will typically have better performance, - * especially if you have many scripts running. - * If this function successfully kills the specified script, then it will return true. - * Otherwise, it will return false. - * - * @example - * \`\`\`js - * if (kill(10)) { - * print("Killed script with PID 10!"); - * } - * \`\`\` - * @ramCost 0.5 GB - * @param {number} scriptPid PID of the script to kill - * @returns {boolean} True if the script is successfully killed, and false otherwise. - */ - kill (scriptPid: number): boolean; - - /** - * Kills all running scripts on the specified server. This function returns true - * if any scripts were killed, and false otherwise. In other words, it will return - * true if there are any scripts running on the target server. - * - * @ramCost 0.5 GB - * @param host {string} IP or hostname of the server on which to kill all scripts. - * @returns {boolean} True if any scripts were killed, and false otherwise. - */ - killall (host: Host): boolean; - - /** - * Terminates the current script immediately. - * - * @ramCost 0 GB - */ - exit (): void; - - /** - * Copies a script or literature (.lit) file(s) to another server. The files argument can be either a string - * specifying a single file to copy, or an array of strings specifying multiple files to copy. - * - * @example - * \`\`\`js - * //Copies hack-template.script from the current server to foodnstuff: - * scp("hack-template.script", "foodnstuff"); - * \`\`\` - * @ramCost 0.6 GB - * @param {(string|string[])} files Filename or an array of filenames of script/literature files to copy. - * @param {(string|number)} destination Host or IP of the destination server, which is the server to which the file will be copied. - * @returns {boolean} True if the script/literature file is successfully copied over and false otherwise. If the files argument is an array then this function will return true if at least one of the files in the array is successfully copied. - */ - scp (files: string | ReadonlyArray, destination: Host): boolean; - - /** - * Copies a script or literature (.lit) file(s) to another server. The files argument can be either a string - * specifying a single file to copy, or an array of strings specifying multiple files to copy. - * - * @example - * \`\`\`js - * //Copies foo.lit from the helios server to the home computer: - * scp("foo.lit", "helios", "home"); - * \`\`\` - * @example - * \`\`\`js - * //Tries to copy three files from rothman-uni to home computer: - * files = ["foo1.lit", "foo2.script", "foo3.script"]; - * scp(files, "rothman-uni", "home"); - * \`\`\` - * @ramCost 0.6 GB - * @param {(string|string[])} files Filename or an array of filenames of script/literature files to copy. - * @param {(string|number)} source Host or IP of the source server, which is the server from which the file will be copied. This argument is optional and if it’s omitted the source will be the current server. - * @param {(string|number)} destination Host or IP of the destination server, which is the server to which the file will be copied. - * @returns {boolean} True if the script/literature file is successfully copied over and false otherwise. If the files argument is an array then this function will return true if at least one of the files in the array is successfully copied. - */ - scp ( - files: string | ReadonlyArray, - source: | Host, - // tslint:disable-next-line:unified-signatures - destination: Host - ): boolean; - - /** - * Returns an array with the filenames of all files on the specified server - * (as strings). The returned array is sorted in alphabetic order. - * - * @ramCost 0.2 GB - * @param {string} host Host or IP of the target server. - * @param {string} grep A substring to search for in the filename. - * @returns {string[]} Array with the filenames of all files on the specified server. - */ - ls (host: Host, grep?: string): string[]; - - /** - * Returns an array with general information about all scripts running on the specified target server. - * - * @example - * \`\`\`js - * //(using NetscriptJS (Netscript 2.0)) - * export async function main(ns) { - * const ps = ns.ps("home"); - * for (let i = 0; i < ps.length; ++i) { - * ns.tprint(ps[i].filename + ' ' + ps[i].threads); - * ns.tprint(ps[i].args); - * } - * } - * \`\`\` - * @ramCost 0.2 GB - * @param {string} host Host or IP address of the target server. If not specified, it will be the current server’s IP by default. - * @returns {object} Array with general information about all scripts running on the specified target server. - */ - ps (host?: Host): ProcessInfo[]; - - /** - * Returns a boolean indicating whether or not the player has root access to the specified target server. - * - * @example - * \`\`\`js - * if (hasRootAccess("foodnstuff") == false) { - * nuke("foodnstuff"); - * } - * \`\`\` - * @ramCost 0.05 GB - * @param {string} host Host or IP of the target server - * @returns {boolean} True if player has root access to the specified target server, and false otherwise. - */ - hasRootAccess (host: Host): boolean; - - /** - * Returns a string with the hostname of the server that the script is running on. - * - * @ramCost 0.05 GB - * @returns {string} Hostname of the server that the script is on. - */ - getHostname (): Host; - - /** - * Returns the player’s current hacking level. - * - * @ramCost 0.05 GB - * @returns {number} Player’s current hacking level - */ - getHackingLevel (): number; - - /** - * Returns an object containing the Player’s hacking related multipliers. - * These multipliers are returned in fractional forms, not percentages - * (e.g. 1.5 instead of 150%). - * - * @example - * \`\`\`js - * //Example of how this can be used: - * mults = getHackingMultipliers(); - * print(mults.chance); - * print(mults.growth); - * \`\`\` - * @ramCost 4 GB - * @returns {object} Object containing the Player’s hacking related multipliers. - */ - getHackingMultipliers (): HackingMultipliers; - - /** - * Returns an object containing the Player’s hacknet related multipliers. - * These multipliers are returned in fractional forms, not percentages - * (e.g. 1.5 instead of 150%). - * - * @example - * \`\`\`js - * //Example of how this can be used: - * mults = getHacknetMultipliers(); - * print(mults.production); - * print(mults.purchaseCost); - * \`\`\` - * @ramCost 4 GB - * @returns {object} Object containing the Player’s hacknet related multipliers. - */ - getHacknetMultipliers (): HacknetMultipliers; - - /** - * Returns a server object for the given server. Defaults to the running script's server if host is not specified. - * - * @ramCost 2 GB - * @param {string} [host] Optional. Hostname or IP for the requested server object. - * @returns {Server} The requested server object. - */ - getServer (host?: Host): Server; - - - /** - * Returns the amount of money available on a server. - * Running this function on the home computer will return the player’s money. - * - * @example - * \`\`\`js - * getServerMoneyAvailable("foodnstuff"); - * getServerMoneyAvailable("home"); //Returns player's money - * \`\`\` - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server - * @returns {number} Amount of money available on the server. - */ - getServerMoneyAvailable (host: Host): number; - - /** - * Returns the maximum amount of money that can be available on a server. - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} Maximum amount of money available on the server. - */ - getServerMaxMoney (host: Host): number; - - /** - * Returns the server’s instrinsic “growth parameter”. This growth - * parameter is a number between 1 and 100 that represents how - * quickly the server’s money grows. This parameter affects the - * percentage by which the server’s money is increased when using the - * {@link grow} function. A higher growth parameter will result in a - * higher percentage increase from {@link grow}. - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} Parameter that affects the percentage by which the server’s money is increased when using the {@link grow} function. - */ - getServerGrowth (host: Host): number; - - /** - * Returns the security level of the target server. A server’s security - * level is denoted by a number, typically between 1 and 100 - * (but it can go above 100). - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} Security level of the target server. - */ - getServerSecurityLevel (host: Host): number; - - /** - * Returns the base security level of the target server. This is the security - * level that the server starts out with. This is different than - * {@link getServerSecurityLevel} because {@link getServerSecurityLevel} returns - * the current security level of a server, which can constantly change due to - * {@link hack}, {@link grow}, and {@link weaken}, calls on that server. - * The base security level will stay the same until you reset by - * installing an Augmentation(s). - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} Base security level of the target server. - */ - getServerBaseSecurityLevel (host: Host): number; - - /** - * Returns the minimum security level of the target server. - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} Minimum security level of the target server. - */ - getServerMinSecurityLevel (host: Host): number; - - /** - * Returns the required hacking level of the target server. - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} The required hacking level of the target server. - */ - getServerRequiredHackingLevel (host: Host): number; - - /** - * Returns the number of open ports required to successfully run NUKE.exe on the specified server. - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {number} The number of open ports required to successfully run NUKE.exe on the specified server. - */ - getServerNumPortsRequired (host: Host): number; - - /** - * Returns an array with two elements that gives information about a server’s memory (RAM). - * The first element in the array is the amount of RAM that the server has total (in GB). - * The second element in the array is the amount of RAM that is currently being used on - * the server (in GB). - * - * @example - * \`\`\`js - * res = getServerRam("helios"); - * totalRam = res[0]; - * ramUsed = res[1]; - * \`\`\` - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {[number,number]} Array with total and used memory on the specified server. - */ - getServerRam (host: Host): [number, number]; - - /** - * Returns a boolean denoting whether or not the specified server exists. - * - * @ramCost 0.1 GB - * @param {string} host Host or IP of target server. - * @returns {boolean} True if specified server exists, and false otherwise. - */ - serverExists (host: Host): boolean; - - /** - * Returns a boolean indicating whether the specified file exists on the target server. - * The filename for scripts is case-sensitive, but for other types of files it is not. - * For example, fileExists(“brutessh.exe”) will work fine, even though the actual program - * is named 'BruteSSH.exe'. - * - * If the hostname/ip argument is omitted, then the function will search through the current - * server (the server running the script that calls this function) for the file. - * - * @example - * \`\`\`js - * //The function call will return true if the script named foo.script exists on the foodnstuff server, and false otherwise. - * fileExists("foo.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //The function call will return true if the current server contains the FTPCrack.exe program, and false otherwise. - * fileExists("ftpcrack.exe"); - * \`\`\` - * @ramCost 0.1 GB - * @param {string} filename Filename of file to check. - * @param {(string|number)} [host] Host or IP of target server. This is optional. If it is not specified then the function will use the current server as the target server. - * @returns {boolean} True if specified file exists, and false otherwise. - */ - fileExists (filename: string, host?: Host): boolean; - - /** - * Returns a boolean indicating whether the specified script is running on the target server. - * Remember that a script is uniquely identified by both its name and its arguments. - * - * @example - * \`\`\`js - * //The function call will return true if there is a script named foo.script with no arguments running on the foodnstuff server, and false otherwise: - * isRunning("foo.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //The function call will return true if there is a script named foo.script with no arguments running on the current server, and false otherwise: - * isRunning("foo.script", getHostname()); - * \`\`\` - * @example - * \`\`\`js - * //The function call will return true if there is a script named foo.script running with the arguments 1, 5, and “test” (in that order) on the joesguns server, and false otherwise: - * isRunning("foo.script", "joesguns", 1, 5, "test"); - * \`\`\` - * @ramCost 0.1 GB - * @param {string} script Filename of script to check. This is case-sensitive. - * @param {string} host Host or IP of target server. - * @param {...string} [args] Arguments to specify/identify which scripts to search for. - * @returns {boolean} True if specified script is running on the target server, and false otherwise. - */ - isRunning (script: Script, host: Host, ...args: string[]): boolean; - - /** - * Returns the cost to purchase a server with the specified amount of ram. - * - * @example - * \`\`\`js - * for (i = 1; i <= 20; i++) { - * tprint(i + " -- " + getPurchasedServerCost(Math.pow(2, i))); - * } - * \`\`\` - * @ramCost 0.25 GB - * @param {number} ram Amount of RAM of a potential purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). - * @returns {number} The cost to purchase a server with the specified amount of ram. - */ - getPurchasedServerCost (ram: number): number; - - /** - * Purchased a server with the specified hostname and amount of RAM. - * - * The hostname argument can be any data type, but it will be converted to a string - * and have whitespace removed. Anything that resolves to an empty string will cause - * the function to fail. If there is already a server with the specified hostname, - * then the function will automatically append a number at the end of the hostname - * argument value until it finds a unique hostname. For example, if the script calls - * \`purchaseServer(“foo”, 4)\` but a server named “foo” already exists, the it will - * automatically change the hostname to \`foo-0\`. If there is already a server with the - * hostname \`foo-0\`, then it will change the hostname to \`foo-1\`, and so on. - * - * Note that there is a maximum limit to the amount of servers you can purchase. - * - * Returns the hostname of the newly purchased server as a string. If the function - * fails to purchase a server, then it will return an empty string. The function will - * fail if the arguments passed in are invalid, if the player does not have enough - * money to purchase the specified server, or if the player has exceeded the maximum - * amount of servers. - * - * @example - * \`\`\`js - * ram = 64; - * hn = "pserv-"; - * for (i = 0; i < 5; ++i) { - * purchaseServer(hn + i, ram); - * } - * \`\`\` - * @ramCost 2.25 GB - * @param {string} hostname Host of the purchased server. - * @param {number} ram Amount of RAM of the purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). - * @returns {string} The hostname of the newly purchased server. - */ - purchaseServer (hostname: Host, ram: number): Host | ""; - - /** - * Deletes one of your purchased servers, which is specified by its hostname. - * - * The hostname argument can be any data type, but it will be converted to a string. - * Whitespace is automatically removed from the string. This function will not delete a - * server that still has scripts running on it. - * - * @ramCost 2.25 GB - * @param {string} host Host of the server to delete. - * @returns {boolean} True if successful, and false otherwise. - */ - deleteServer (host: Host): boolean; - - /** - * Returns an array with either the hostnames or IPs of all of the servers you have purchased. - * - * @ramCost 2.25 GB - * @param {boolean} [hostnameMode]. Optional. Defaults to true. Returns hostnames if true, and IPs if false. - * @returns {string[]} Returns an array with either the hostnames or IPs of all of the servers you have purchased. - */ - getPurchasedServers (hostnameMode?: boolean): Host[]; - - /** - * Returns the maximum number of servers you can purchase. - * - * @ramCost 0.05 GB - * @returns {number} Returns the maximum number of servers you can purchase. - */ - getPurchasedServerLimit (): number; - - /** - * Returns the maximum RAM that a purchased server can have. - * - * @ramCost 0.05 GB - * @returns {number} Returns the maximum RAM that a purchased server can have. - */ - getPurchasedServerMaxRam (): number; - - /** - * This function can be used to either write data to a port or to a text file (.txt). - * - * If the first argument is a number between 1 and 20, then it specifies a port and this - * function will write data to that port. The third argument, mode, is not used when writing - * to a port. - * - * If the first argument is a string, then it specifies the name of a text file (.txt) and - * this function will write data to that text file. If the specified text file does not exist, - * then it will be created. The third argument mode, defines how the data will be written to - * the text file. If *mode is set to “w”, then the data is written in “write” mode which means - * that it will overwrite all existing data on the text file. If mode is set to any other value - * then the data will be written in “append” mode which means that the data will be added at the - * end of the text file. - * - * @ramCost 1 GB - * @param {(string|number)} handle Port or text file that will be written to. - * @param {string} data Data to write. - * @param {string} mode Defines the write mode. Only valid when writing to text files. - */ - write (handle: Handle, data?: string | string[] | number, mode?: "w" | "a"): void; - - /** - * Attempts to write data to the specified Netscript Port. - * If the port is full, the data will not be written. - * Otherwise, the data will be written normally. - * - * @ramCost 1 GB - * @param {number} port Port or text file that will be written to. - * @param {string} data Data to write. - * @returns {boolean} True if the data is successfully written to the port, and false otherwise. - */ - tryWrite (port: Handle, data: string | string[] | number): boolean; - - /** - * This function is used to read data from a port or from a text file (.txt). - * - * If the argument port/fn is a number between 1 and 20, then it specifies a - * port and it will read data from that port. A port is a serialized queue. - * This function will remove the first element from that queue and return it. - * If the queue is empty, then the string “NULL PORT DATA” will be returned. - * - * If the argument port/fn is a string, then it specifies the name of a text - * file (.txt) and this function will return the data in the specified text - * file. If the text file does not exist, an empty string will be returned. - * - * @ramCost 1 GB - * @param {(string|number)} handle Port or text file to read from. - * @returns {(string|number|object)} Data in the specified text file or port. - */ - read (handle: Handle): string | number | object; - - /** - * This function is used to peek at the data from a port. It returns the - * first element in the specified port without removing that element. If - * the port is empty, the string “NULL PORT DATA” will be returned. - * - * @ramCost 1 GB - * @param {number} port Port to peek. Must be an integer between 1 and 20. - * @returns {(string|number|object)} Data in the specified port. - */ - peek (port: Port): string | number | object; - - /** - * This function is used to clear data in a Netscript Ports or a text file. - * - * If the port/fn argument is a number between 1 and 20, then it specifies a - * port and will clear it (deleting all data from the underlying queue). - * - * If the port/fn argument is a string, then it specifies the name of a - * text file (.txt) and will delete all data from that text file. - * - * @ramCost 1 GB - * @param {(string|number)} handle Port or text file to clear. - */ - clear (handle: Handle): void; - - /** - * Get a handle to a Netscript Port. - * - * WARNING: Port Handles only work in NetscriptJS (Netscript 2.0). They will not work in Netscript 1.0. - * - * @see https://bitburner.readthedocs.io/en/latest/netscript/netscriptmisc.html#netscript-ports - * @ramCost 10 GB - * @param {number} port Port number. Must be an integer between 1 and 20. - * @returns {Array} Data in the specified port. - */ - getPortHandle (port: Port): any[]; - - /** - * Removes the specified file from the current server. This function works for every file - * type except message (.msg) files. - * - * @ramCost 1 GB - * @param {string} name Filename of file to remove. Must include the extension. - * @param {string} [host] Host or IP Address of the server on which to delete the file. Optional. Defaults to current server. - * @returns {boolean} True if it successfully deletes the file, and false otherwise. - */ - rm (name: string, host?: Host): boolean; - - /** - * Returns a boolean indicating whether any instance of the specified script is running - * on the target server, regardless of its arguments. - * - * This is different than the {@link isRunning} function because it does not try to - * identify a specific instance of a running script by its arguments. - * - * @example - * \`\`\`js - * //The function call will return true if there is any script named foo.script running on the foodnstuff server, and false otherwise: - * scriptRunning("foo.script", "foodnstuff"); - * \`\`\` - * @example - * \`\`\`js - * //The function call will return true if there is any script named “foo.script” running on the current server, and false otherwise: - * scriptRunning("foo.script", getHostname()); - * \`\`\` - * @ramCost 1 GB - * @param {string} script Filename of script to check. This is case-sensitive. - * @param {string} host Host or IP of target server. - * @returns {boolean} True if the specified script is running, and false otherwise. - */ - scriptRunning (script: Script, host: Host): boolean; - - /** - * Kills all scripts with the specified filename on the target server specified by hostname/ip, - * regardless of arguments. - * - * @ramCost 1 GB - * @param {string} script Filename of script to kill. This is case-sensitive. - * @param {string} host Host or IP of target server. - * @returns {boolean} true if one or more scripts were successfully killed, and false if none were. - */ - scriptKill (script: Script, host: Host): boolean; - - /** - * Returns the current script name. - * - * @ramCost 0 GB - * @returns {string} Current script name. - */ - getScriptName (): string; - - /** - * Returns the amount of RAM required to run the specified script on the target server. - * Returns 0 if the script does not exist. - * - * @ramCost 0.1 GB - * @param {string} script Filename of script. This is case-sensitive. - * @param {string} [host] Host or IP of target server the script is located on. This is optional, If it is not specified then the function will se the current server as the target server. - * @returns {string} Amount of RAM required to run the specified script on the target server, and 0 if the script does not exist. - */ - getScriptRam (script: Script, host?: Host): number; - - /** - * Returns the amount of time in seconds it takes to execute the {@link hack} Netscript function on the target server. - * The function takes in an optional hackLvl parameter that can be specified to see what the hack time would be at different hacking levels. - * - * @ramCost 0.05 GB - * @param {string} host Host or IP of target server. - * @param {number} [hackLvl] Optional hacking level for the calculation. Defaults to player’s current hacking level. - * @param {number} [intLvl] Optional intelligence level for the calculation. Defaults to player’s current intelligence level. (Intelligence is unlocked after obtaining Source-File 5). - * @returns {number} Returns the amount of time in seconds it takes to execute the {@link hack} Netscript function. Returns Infinity if called on a Hacknet Server. - */ - getHackTime (host: Host, hackLvl?: number, intLvl?: number): number; - - /** - * Returns the amount of time in seconds it takes to execute the {@link grow} Netscript function on the target server. - * The function takes in an optional hackLvl parameter that can be specified to see what the grow time would be at different hacking levels. - * - * @ramCost 0.05 GB - * @param {string} host Host or IP of target server. - * @param {number} [hackLvl] Optional hacking level for the calculation. Defaults to player’s current hacking level. - * @param {number} [intLvl] Optional intelligence level for the calculation. Defaults to player’s current intelligence level. (Intelligence is unlocked after obtaining Source-File 5). - * @returns {number} Returns the amount of time in seconds it takes to execute the {@link grow} Netscript function. Returns Infinity if called on a Hacknet Server. - */ - getGrowTime (host: Host, hackLvl?: number, intLvl?: number): number; - - /** - * Returns the amount of time in seconds it takes to execute the weaken() Netscript function on the target server. - * The function takes in an optional hackLvl parameter that can be specified to see what the weaken time would be at different hacking levels. - * - * @ramCost 0.05 GB - * @param {string} host Host or IP of target server. - * @param {number} [hackLvl] Optional hacking level for the calculation. Defaults to player’s current hacking level. - * @param {number} [intLvl] Optional intelligence level for the calculation. Defaults to player’s current intelligence level. (Intelligence is unlocked after obtaining Source-File 5). - * @returns {number} Returns the amount of time in seconds it takes to execute the {@link grow} Netscript function. Returns Infinity if called on a Hacknet Server. - */ - getWeakenTime (host: Host, hackLvl?: number, intLvl?: number): number; - - /** - * Returns the amount of income the specified script generates while online - * (when the game is open, does not apply for offline income). Remember that - * a script is uniquely identified by both its name and its arguments. So for - * example if you ran a script with the arguments “foodnstuff” and “5” then - * in order to use this function to get that script’s income you must specify - * those same arguments in the same order in this function call. - * - * This function can also be called with no arguments. - * If called with no arguments, then this function will return an array of two values. - * The first value is the total income ($ / second) of all of your active scripts - * (scripts that are currently running on any server). - * The second value is the total income ($ / second) that you’ve earned from scripts - * since you last installed Augmentations. - * - * @ramCost 0.1 GB - * @param {string} script Filename of script. - * @param {string} host Server on which script is running. - * @param {string} [args] Arguments that the script is running with. - * @returns {(number|[number,number])} Amount of income the specified script generates while online. - */ - getScriptIncome (script: Script, host: Host, ...args: string[]): number | [number, number]; - - /** - * Returns the amount of hacking experience the specified script generates while online - * (when the game is open, does not apply for offline experience gains). Remember that a - * script is uniquely identified by both its name and its arguments. - * - * This function can also return the total experience gain rate of all of your active - * scripts by running the function with no arguments. - * - * @ramCost 0.1 GB - * @param {string} script Filename of script. - * @param {string} host Server on which script is running. - * @param {...string[]} [args] Arguments that the script is running with. - * @returns {number} Amount of hacking experience the specified script generates while online. - */ - getScriptExpGain (script: Script, host: Host, ...args: string[]): number; - - /** - * Returns the amount of time in milliseconds that have passed since you last installed Augmentations. - * - * @ramCost 0.05 GB - * @returns {number} Time in milliseconds that have passed since you last installed Augmentations. - */ - getTimeSinceLastAug (): number; - - /** - * Complete open source JavaScript sprintf implementation - * - * @see https://github.com/alexei/sprintf.js - * @ramCost 0 GB - * @param {string} format String to format. - * @param {...string} args Formating arguments. - * @returns {string} Formated text. - */ - sprintf (format: string, ...args: string[]): string; - - /** - * Complete open source JavaScript sprintf implementation - * - * @see https://github.com/alexei/sprintf.js - * @ramCost 0 GB - * @param {string} format String to format. - * @param {string[]} args Formating arguments. - * @returns {string} Formated text. - */ - vsprintf (format: string, args: string[]): string; - - /** - * Converts a number into a string with the specified formatter. - * This uses the numeraljs library, so the formatters must be compatible with that. - * This is the same function that the game itself uses to display numbers. - * - * @see http://numeraljs.com/ - * @ramCost 0 GB - * @param {number} n Number to format. - * @param {string} format Formatter. - * @returns {string} Formated number. - */ - nFormat (n: number, format: string): number; - - /** - * Prompts the player with a dialog box with two options: “Yes” and “No”. - * This function will return true if the player click “Yes” and false if - * the player clicks “No”. The script’s execution is halted until the player - * selects one of the options. - * - * @ramCost 0 GB - * @param {string} txt Text to appear in the prompt dialog box. - * @returns {Promise} True if the player click “Yes” and false if the player clicks “No”. - */ - prompt (txt: string): Promise; - - /** - * Retrieves data from a URL and downloads it to a file on the specified server. - * The data can only be downloaded to a script (.script, .ns, .js) or a text file (.txt). - * If the file already exists, it will be overwritten by this command. - * Note that it will not be possible to download data from many websites because they - * do not allow cross-origin resource sharing (CORS). - * - * IMPORTANT: This is an asynchronous function that returns a Promise. - * The Promise’s resolved value will be a boolean indicating whether or not the data was - * successfully retrieved from the URL. Because the function is async and returns a Promise, - * it is recommended you use wget in NetscriptJS (Netscript 2.0). - * - * In NetscriptJS, you must preface any call to wget with the await keyword (like you would hack or sleep). - * wget will still work in Netscript 1.0, but the functions execution will not be synchronous - * (i.e. it may not execute when you expect/want it to). - * Furthermore, since Promises are not supported in ES5, - * you will not be able to process the returned value of wget in Netscript 1.0. - * - * @example - * \`\`\`js - * wget("https://raw.githubusercontent.com/danielyxie/bitburner/master/README.md", "game_readme.txt"); - * \`\`\` - * @ramCost 0 GB - * @param {string} url URL to pull data from. - * @param {string} target Filename to write data to. Must be script or text file. - * @param {string} [host] Optional hostname/ip of server for target file. - * @returns {Promise} True if the data was successfully retrieved from the URL, false otherwise. - */ - wget (url: string, target: string, host?: string): Promise; - - /** - * Returns the amount of Faction favor required to be able to donate to a faction. - * - * @ramCost 0.1 GB - * @returns {number} Amount of Faction favor required to be able to donate to a faction. - */ - getFavorToDonate (): number; - - /** - * Returns an object containing the current BitNode multipliers. - * This function requires Source-File 5 in order to run. - * The multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). - * The multipliers represent the difference between the current BitNode and - * the original BitNode (BitNode-1). - * - * For example, if the CrimeMoney multiplier has a value of 0.1, then that means - * that committing crimes in the current BitNode will only give 10% of the money - * you would have received in BitNode-1. - * - * @example - * \`\`\`js - * mults = getBitNodeMultipliers(); - * print(mults.ServerMaxMoney); - * print(mults.HackExpGain); - * \`\`\` - * @ramCost 4 GB - * @returns {object} Object containing the current BitNode multipliers. - */ - getBitNodeMultipliers (url: string, target: string, host: string): BitNodeMultipliers; +export interface NS extends Singularity { + /** + * Not all functions in the Hacknet Node API are immediately available. + * + * Note that none of these functions will write to the script’s logs. + * + * If you want to see what your script is doing you will have to print to the logs yourself. + * + * @ramCost 4 GB + */ + readonly hacknet: HackNet; + /** + * @ramCost 0 GB + */ + readonly bladeburner: BladeBurner; + /** + * @ramCost 0 GB + */ + readonly codingcontract: CodingContract; + /** + * @ramCost 0 GB + */ + readonly gang: Gang; + /** + * @ramCost 0 GB + */ + readonly sleeve: Sleeve; + /** + * @ramCost 0 GB + */ + readonly stock: TIX; + + /** + * Arguments passed into a script can be accessed using a normal + * array using the [] operator (args[0], args[1], etc…). + * + * It is also possible to get the number of arguments that was passed into a script using: + * \`\`\`js + * args.length + * \`\`\` + * WARNING: Do not try to modify the args array. This will break the game. + * + * @ramCost 0 GB + */ + readonly args: any[]; + + /** + * Function that is used to try and hack servers to steal money and gain hacking experience. + * The runtime for this command depends on your hacking level and the target server’s + * security level. In order to hack a server you must first gain root access to that server + * and also have the required hacking level. + * + * A script can hack a server from anywhere. It does not need to be running on the same + * server to hack that server. For example, you can create a script that hacks the \`foodnstuff\` + * server and run that script on any server in the game. + * + * A successful \`hack()\` on a server will raise that server’s security level by 0.002. + * + * @example + * \`\`\`js + * hack("foodnstuff"); + * hack("10.1.2.3"); + * hack("foodnstuff", { threads: 5 }); // Only use 5 threads to hack + * \`\`\` + * @ramCost 0.1 GB + * @param {string} host Hostname or IP of the target server to hack. + * @param {object} [opts] Optional parameters for configuring function behavior. + * @returns {Promise} The amount of money stolen if the hack is successful, and zero otherwise. + */ + hack(host: Host, opts?: BasicHGWOptions): Promise; + + /** + * Use your hacking skills to increase the amount of money available on a server. + * The runtime for this command depends on your hacking level and the target server’s + * security level. When \`grow\` completes, the money available on a target server will + * be increased by a certain, fixed percentage. This percentage is determined by the + * target server’s growth rate (which varies between servers) and security level. Generally, + * higher-level servers have higher growth rates. The getServerGrowth() function can be used + * to obtain a server’s growth rate. + * + * Like {@link hack}, \`grow\` can be called on any server, regardless of where the script is running. + * The grow() command requires root access to the target server, but there is no required hacking + * level to run the command. It also raises the security level of the target server by 0.004. + * + * @example + * \`\`\`js + * grow("foodnstuff"); + * grow("foodnstuff", { threads: 5 }); // Only use 5 threads to grow + * \`\`\` + * @ramCost 0.15 GB + * @param {string} host Hostname or IP of the target server to grow. + * @param {object} [opts] Optional parameters for configuring function behavior. + * @returns {Promise} The number by which the money on the server was multiplied for the growth. + */ + grow(host: Host, opts?: BasicHGWOptions): Promise; + + /** + * Use your hacking skills to attack a server’s security, lowering the server’s security level. + * The runtime for this command depends on your hacking level and the target server’s security + * level. This function lowers the security level of the target server by 0.05. + * + * Like {@link hack} and {@link grow}, \`weaken\` can be called on any server, regardless of + * where the script is running. This command requires root access to the target server, but + * there is no required hacking level to run the command. + * + * @example + * \`\`\`js + * weaken("foodnstuff"); + * weaken("foodnstuff", { threads: 5 }); // Only use 5 threads to weaken + * \`\`\` + * @ramCost 0.15 GB + * @param {string} host Hostname or IP of the target server to weaken. + * @param {object} [opts] Optional parameters for configuring function behavior. + * @returns {Promise} The amount by which the target server’s security level was decreased. This is equivalent to 0.05 multiplied by the number of script threads. + */ + weaken(host: Host, opts?: BasicHGWOptions): Promise; + + /** + * Returns the security decrease that would occur if a weaken with this many threads happened. + * + * @ramCost 1 GB + * @param {number} threads Amount of threads that will be used. + * @param {number} cores Optional. The number of cores of the server that would run weaken. + * @returns {number} The security decrease. + */ + weakenAnalyze(threads: number, cores?: number): number; + + /** + * This function returns the number of script threads you need when running the {@link hack} command + * to steal the specified amount of money from the target server. + * If hackAmount is less than zero or greater than the amount of money available on the server, + * then this function returns -1. + * + * Warning: The value returned by this function isn’t necessarily a whole number. + * + * @example + * \`\`\`js + * //For example, let’s say the foodnstuff server has $10m and you run: + * hackAnalyzeThreads("foodnstuff", 1e6); + * //If this function returns 50, this means that if your next {@link hack} call is run on a script with 50 threads, it will steal $1m from the foodnstuff server. + * \`\`\` + * @ramCost 1 GB + * @param {string} host Hostname or IP of the target server to analyze. + * @param {number} hackAmount Amount of money you want to hack from the server. + * @returns {number} The number of threads needed to {@link hack} the server for hackAmount money. + */ + hackAnalyzeThreads(host: Host, hackAmount: number): number; + + /** + * Returns the percentage of the specified server’s money you will steal with a single hack. + * This value is returned in percentage form, not decimal + * (Netscript functions typically return in decimal form, but not this one). + * + * @example + * \`\`\`js + * //For example, assume the following returns 1: + * hackAnalyzePercent("foodnstuff"); + * //This means that if hack the foodnstuff server, then you will steal 1% of its total money. If you {@link hack} using N threads, then you will steal N% of its total money. + * \`\`\` + * @ramCost 1 GB + * @param {string} host Hostname or IP of the target server. + * @returns {number} The percentage of money you will steal from the target server with a single hack. + */ + hackAnalyzePercent(host: Host): number; + + /** + * Returns the security increase that would occur if a hack with this many threads happened. + * + * @ramCost 1 GB + * @param {number} threads Amount of threads that will be used. + * @returns {number} The security increase. + */ + hackAnalyzeSecurity(threads: number): number; + + /** + * Returns the chance you have of successfully hacking the specified server. + * + * This returned value is in decimal form, not percentage. + * + * @ramCost 1 GB + * @param {string} host Hostname or IP of the target server. + * @returns {number} The chance you have of successfully hacking the target server. + */ + hackChance(host: Host): number; + + /** + * This function returns the number of “growths” needed in order to increase + * the amount of money available on the specified server by the specified amount. + * The specified amount is multiplicative and is in decimal form, not percentage. + * + * Warning: The value returned by this function isn’t necessarily a whole number. + * + * @example + * \`\`\`js + * //For example, if you want to determine how many {@link grow} calls you need to double the amount of money on foodnstuff, you would use: + * growthAnalyze("foodnstuff", 2); + * //If this returns 100, then this means you need to call {@link grow} 100 times in order to double the money (or once with 100 threads). + * \`\`\` + * @ramCost 1 GB + * @param {string} host Hostname or IP of the target server. + * @param {number} growthAmount Multiplicative factor by which the server is grown. Decimal form.. + * @returns {number} The amount of {@link grow} calls needed to grow the specified server by the specified amount + */ + growthAnalyze(host: Host, growthAmount: number): number; + + /** + * Returns the security increase that would occur if a grow with this many threads happened. + * + * @ramCost 1 GB + * @param {number} threads Amount of threads that will be used. + * @returns {number} The security increase. + */ + growthAnalyzeSecurity(threads: number): number; + + /** + * Suspends the script for n milliseconds. + * + * @ramCost 0 GB + * @param {number} millis Number of milliseconds to sleep. + * @returns {Promise} + */ + sleep(millis: number): Promise; + + /** + * Prints a value or a variable to the script’s logs. + * + * @ramCost 0 GB + * @param {string} msg Value to be printed. + */ + print(msg: string | number | string[] | number[]): void; + + /** + * Prints a value or a variable to the Terminal. + * + * @ramCost 0 GB + * @param {string} msg Value to be printed. + */ + tprint(msg: string | number | string[] | number[]): void; + + /** + * Clears the script’s logs. + * + * @ramCost 0 GB + */ + clearLog(): void; + + /** + * Disables logging for the given function. Logging can be disabled + * for all functions by passing \`ALL\` as the argument. + * + * Note that this does not completely remove all logging functionality. + * This only stops a function from logging when the function is successful. + * If the function fails, it will still log the reason for failure. + * + * Notable functions that cannot have their logs disabled: {@link run}, + * {@link exec}, {@link exit}. + * + * @ramCost 0 GB + * @param {string} fn Name of function for which to disable logging. + */ + disableLog(fn: string): void; + + /** + * Re-enables logging for the given function. If \`ALL\` is passed into this + * function as an argument, then it will revert the effects of disableLog(\`ALL\`). + * + * @ramCost 0 GB + * @param {string} fn Name of function for which to enable logging. + */ + enableLog(fn: string): void; + + /** + * Checks the status of the logging for the given function. + * + * @ramCost 0 GB + * @param {string} fn Name of function to check. + * @returns {boolean} Returns a boolean indicating whether or not logging is enabled for that function (or \`ALL\`) + */ + isLogEnabled(fn: string): boolean; + + /** + * Returns a script’s logs. The logs are returned as an array, where each line is an element in the array. + * The most recently logged line is at the end of the array. + * Note that there is a maximum number of lines that a script stores in its logs. This is configurable in the game’s options. + * If the function is called with no arguments, it will return the current script’s logs. + * + * Otherwise, the fn, hostname/ip, and args… arguments can be used to get the logs from another script. + * Remember that scripts are uniquely identified by both their names and arguments. + * + * @example + * \`\`\`js + * //Get logs from foo.script on the current server that was run with no args + * getScriptLogs("foo.script"); + * \`\`\` + * @example + * \`\`\`js + * //Open logs from foo.script on the foodnstuff server that was run with no args + * getScriptLogs("foo.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //Open logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] + * getScriptLogs("foo.script", "foodnstuff", 1, "test"); + * \`\`\` + * @ramCost 0 GB + * @param {string} [fn] Optional. Filename of script to get logs from. + * @param {string} [host] Optional. Hostname or IP of the server that the script is on. + * @param {...string} [args] Arguments to identify which scripts to get logs for. + * @returns {string[]} Returns an string array, where each line is an element in the array. The most recently logged line is at the end of the array. + */ + getScriptLogs(fn?: Script, host?: Host, ...args: any[]): string[]; + + /** + * Opens a script’s logs. This is functionally the same as the tail Terminal command. + * + * If the function is called with no arguments, it will open the current script’s logs. + * + * Otherwise, the fn, hostname/ip, and args… arguments can be used to get the logs from another script. + * Remember that scripts are uniquely identified by both their names and arguments. + * + * @example + * \`\`\`js + * //Open logs from foo.script on the current server that was run with no args + * tail("foo.script"); + * \`\`\` + * @example + * \`\`\`js + * //Get logs from foo.script on the foodnstuff server that was run with no args + * tail("foo.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //Get logs from foo.script on the foodnstuff server that was run with the arguments [1, "test"] + * tail("foo.script", "foodnstuff", 1, "test"); + * \`\`\` + * @ramCost 0 GB + * @param {string} [fn] Optional. Filename of the script being tailed. If omitted, the current script is tailed. + * @param {string} [host] Optional. Hostname or IP of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. + * @param {any[]} ...args Arguments for the script being tailed. + */ + tail(fn?: Script, host?: Host, ...args: any[]): void; + + /** + * Returns an array containing the hostnames or IPs of all servers that are one + * node way from the specified target server. The hostnames/IPs in the returned + * array are strings. + * + * @ramCost 0.2 GB + * @param {string} host Hostname or IP of the server to scan. + * @param {boolean} hostnames Optional boolean specifying whether the function should output hostnames (if true) or IP addresses (if false). + * @returns {string[]} Returns an string of hostnames or IP. + */ + scan(host: Host, hostnames?: boolean): Host[]; + + /** + * Runs the NUKE.exe program on the target server. NUKE.exe must exist on your home computer. + * + * @example + * \`\`\`js + * nuke("foodnstuff"); + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Hostname or IP of the target server. + */ + nuke(host: Host): void; + + /** + * Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist on your home computer. + * + * @example + * \`\`\`js + * brutessh("foodnstuff"); + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Hostname or IP of the target server. + */ + brutessh(host: Host): void; + + /** + * Runs the FTPCrack.exe program on the target server. FTPCrack.exe must exist on your home computer. + * + * @example + * \`\`\`js + * ftpcrack("foodnstuff"); + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Hostname or IP of the target server. + */ + ftpcrack(host: Host): void; + + /** + * Runs the relaySMTP.exe program on the target server. relaySMTP.exe must exist on your home computer. + * + * @example + * \`\`\`js + * relaysmtp("foodnstuff"); + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Hostname or IP of the target server. + */ + relaysmtp(host: Host): void; + + /** + * Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist on your home computer. + * + * @example + * \`\`\`js + * httpworm("foodnstuff"); + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Hostname or IP of the target server. + */ + httpworm(host: Host): void; + + /** + * Runs the SQLInject.exe program on the target server. SQLInject.exe must exist on your home computer. + * + * @example + * \`\`\`js + * sqlinject("foodnstuff"); + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Hostname or IP of the target server. + */ + sqlinject(host: Host): void; + + /** + * Run a script as a separate process. This function can only be used to run scripts located on the + * current server (the server running the script that calls this function). Requires a significant + * amount of RAM to run this command. + * + * If the script was successfully started, then this functions returns the PID of that script. + * Otherwise, it returns 0. + * + * PID stands for Process ID. The PID is a unique identifier for each script. + * The PID will always be a positive integer. + * + * Running this function with a numThreads argument of 0 will return 0 without running the script. + * However, running this function with a negative numThreads argument will cause a runtime error. + * + * @example + * \`\`\`js + * //The simplest way to use the run command is to call it with just the script name. The following example will run ‘foo.script’ single-threaded with no arguments: + * run("foo.script"); + * \`\`\` + * @example + * \`\`\`js + * //The following example will run ‘foo.script’ but with 5 threads instead of single-threaded: + * run("foo.script", 5); + * \`\`\` + * @example + * \`\`\`js + * //This next example will run ‘foo.script’ single-threaded, and will pass the string ‘foodnstuff’ into the script as an argument: + * run("foo.script", 1, 'foodnstuff'); + * \`\`\` + * @ramCost 1 GB + * @param {string} script Filename of script to run. + * @param {number} [numThreads] Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. + * @param {...string} [args] Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument numThreads must be filled in with a value. + * @returns {number} Returns the PID of a successfully started script, and 0 otherwise. + */ + run(script: Script, numThreads?: number, ...args: string[]): number; + + /** + * Run a script as a separate process on a specified server. This is similar to the run function + * except that it can be used to run a script on any server, instead of just the current server. + * + * If the script was successfully started, then this functions returns the PID of that script. + * Otherwise, it returns 0. + * + * PID stands for Process ID. The PID is a unique identifier for each script. + * The PID will always be a positive integer. + * + * Running this function with a numThreads argument of 0 will return 0 without running the script. + * However, running this function with a negative numThreads argument will cause a runtime error. + * + * @example + * \`\`\`js + * //The simplest way to use the exec command is to call it with just the script name and the target server. The following example will try to run generic-hack.script on the foodnstuff server: + * exec("generic-hack.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //The following example will try to run the script generic-hack.script on the joesguns server with 10 threads: + * exec("generic-hack.script", "joesguns", 10); + * \`\`\` + * @example + * \`\`\`js + * //This last example will try to run the script foo.script on the foodnstuff server with 5 threads. It will also pass the number 1 and the string “test” in as arguments to the script: + * exec("foo.script", "foodnstuff", 5, 1, "test"); + * \`\`\` + * @ramCost 1.3 GB + * @param {string} script Filename of script to execute. + * @param {string} host Hostname or IP of the \`target server\` on which to execute the script. + * @param {number} [numThreads] Optional thread count for new script. Set to 1 by default. Will be rounded to nearest integer. + * @param {...string} [args] Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument numThreads must be filled in with a value. + * @returns {number} Returns the PID of a successfully started script, and 0 otherwise. + */ + exec(script: Script, host: Host, numThreads?: number, ...args: string[]): number; + + /** + * Terminates the current script, and then after a delay of about 10 seconds it will execute the + * newly-specified script. The purpose of this function is to execute a new script without being + * constrained by the RAM usage of the current one. This function can only be used to run scripts + * on the local server. + * + * Because this function immediately terminates the script, it does not have a return value. + * + * @example + * \`\`\`js + * //The following example will execute the script ‘foo.script’ with 10 threads and the arguments ‘foodnstuff’ and 90: + * spawn('foo.script', 10, 'foodnstuff', 90); + * \`\`\` + * @ramCost 2 GB + * @param {string} script Filename of script to execute. + * @param {string} numThreads Number of threads to spawn new script with. Will be rounded to nearest integer. + * @param {...string} [args] Additional arguments to pass into the new script that is being run. + */ + spawn(script: Script, numThreads?: number, ...args: string[]): void; + + /** + * Kills the script on the target server specified by the script’s name and arguments. + * Remember that scripts are uniquely identified by both their name and arguments. + * For example, if \`foo.script\` is run with the argument 1, then this is not the same as + * \`foo.script\` run with the argument 2, even though they have the same code. + * + * @example + * \`\`\`js + * //The following example will try to kill a script named foo.script on the foodnstuff server that was ran with no arguments: + * kill("foo.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //The following will try to kill a script named foo.script on the current server that was ran with no arguments: + * kill("foo.script", getHostname()); + * \`\`\` + * @example + * \`\`\`js + * //The following will try to kill a script named foo.script on the current server that was ran with the arguments 1 and “foodnstuff”: + * kill("foo.script", getHostname(), 1, "foodnstuff"); + * \`\`\` + * @ramCost 0.5 GB + * @param {string} script Filename of the script to kill + * @param {string} host Hostname or IP of the server on which to kill the script. + * @param {...string} [args] Arguments to identify which script to kill. + * @returns {boolean} True if the script is successfully killed, and false otherwise. + */ + kill(script: Script, host: Host, ...args: string[]): boolean; + + /** + * Kills the script with the specified PID. + * Killing a script by its PID will typically have better performance, + * especially if you have many scripts running. + * If this function successfully kills the specified script, then it will return true. + * Otherwise, it will return false. + * + * @example + * \`\`\`js + * if (kill(10)) { + * print("Killed script with PID 10!"); + * } + * \`\`\` + * @ramCost 0.5 GB + * @param {number} scriptPid PID of the script to kill + * @returns {boolean} True if the script is successfully killed, and false otherwise. + */ + kill(scriptPid: number): boolean; + + /** + * Kills all running scripts on the specified server. This function returns true + * if any scripts were killed, and false otherwise. In other words, it will return + * true if there are any scripts running on the target server. + * + * @ramCost 0.5 GB + * @param host {string} IP or hostname of the server on which to kill all scripts. + * @returns {boolean} True if any scripts were killed, and false otherwise. + */ + killall(host: Host): boolean; + + /** + * Terminates the current script immediately. + * + * @ramCost 0 GB + */ + exit(): void; + + /** + * Copies a script or literature (.lit) file(s) to another server. The files argument can be either a string + * specifying a single file to copy, or an array of strings specifying multiple files to copy. + * + * @example + * \`\`\`js + * //Copies hack-template.script from the current server to foodnstuff: + * scp("hack-template.script", "foodnstuff"); + * \`\`\` + * @ramCost 0.6 GB + * @param {(string|string[])} files Filename or an array of filenames of script/literature files to copy. + * @param {(string|number)} destination Host or IP of the destination server, which is the server to which the file will be copied. + * @returns {boolean} True if the script/literature file is successfully copied over and false otherwise. If the files argument is an array then this function will return true if at least one of the files in the array is successfully copied. + */ + scp(files: string | ReadonlyArray, destination: Host): boolean; + + /** + * Copies a script or literature (.lit) file(s) to another server. The files argument can be either a string + * specifying a single file to copy, or an array of strings specifying multiple files to copy. + * + * @example + * \`\`\`js + * //Copies foo.lit from the helios server to the home computer: + * scp("foo.lit", "helios", "home"); + * \`\`\` + * @example + * \`\`\`js + * //Tries to copy three files from rothman-uni to home computer: + * files = ["foo1.lit", "foo2.script", "foo3.script"]; + * scp(files, "rothman-uni", "home"); + * \`\`\` + * @ramCost 0.6 GB + * @param {(string|string[])} files Filename or an array of filenames of script/literature files to copy. + * @param {(string|number)} source Host or IP of the source server, which is the server from which the file will be copied. This argument is optional and if it’s omitted the source will be the current server. + * @param {(string|number)} destination Host or IP of the destination server, which is the server to which the file will be copied. + * @returns {boolean} True if the script/literature file is successfully copied over and false otherwise. If the files argument is an array then this function will return true if at least one of the files in the array is successfully copied. + */ + scp( + files: string | ReadonlyArray, + source: Host, + // tslint:disable-next-line:unified-signatures + destination: Host, + ): boolean; + + /** + * Returns an array with the filenames of all files on the specified server + * (as strings). The returned array is sorted in alphabetic order. + * + * @ramCost 0.2 GB + * @param {string} host Host or IP of the target server. + * @param {string} grep A substring to search for in the filename. + * @returns {string[]} Array with the filenames of all files on the specified server. + */ + ls(host: Host, grep?: string): string[]; + + /** + * Returns an array with general information about all scripts running on the specified target server. + * + * @example + * \`\`\`js + * //(using NetscriptJS (Netscript 2.0)) + * export async function main(ns) { + * const ps = ns.ps("home"); + * for (let i = 0; i < ps.length; ++i) { + * ns.tprint(ps[i].filename + ' ' + ps[i].threads); + * ns.tprint(ps[i].args); + * } + * } + * \`\`\` + * @ramCost 0.2 GB + * @param {string} host Host or IP address of the target server. If not specified, it will be the current server’s IP by default. + * @returns {object} Array with general information about all scripts running on the specified target server. + */ + ps(host?: Host): ProcessInfo[]; + + /** + * Returns a boolean indicating whether or not the player has root access to the specified target server. + * + * @example + * \`\`\`js + * if (hasRootAccess("foodnstuff") == false) { + * nuke("foodnstuff"); + * } + * \`\`\` + * @ramCost 0.05 GB + * @param {string} host Host or IP of the target server + * @returns {boolean} True if player has root access to the specified target server, and false otherwise. + */ + hasRootAccess(host: Host): boolean; + + /** + * Returns a string with the hostname of the server that the script is running on. + * + * @ramCost 0.05 GB + * @returns {string} Hostname of the server that the script is on. + */ + getHostname(): Host; + + /** + * Returns the player’s current hacking level. + * + * @ramCost 0.05 GB + * @returns {number} Player’s current hacking level + */ + getHackingLevel(): number; + + /** + * Returns an object containing the Player’s hacking related multipliers. + * These multipliers are returned in fractional forms, not percentages + * (e.g. 1.5 instead of 150%). + * + * @example + * \`\`\`js + * //Example of how this can be used: + * mults = getHackingMultipliers(); + * print(mults.chance); + * print(mults.growth); + * \`\`\` + * @ramCost 4 GB + * @returns {object} Object containing the Player’s hacking related multipliers. + */ + getHackingMultipliers(): HackingMultipliers; + + /** + * Returns an object containing the Player’s hacknet related multipliers. + * These multipliers are returned in fractional forms, not percentages + * (e.g. 1.5 instead of 150%). + * + * @example + * \`\`\`js + * //Example of how this can be used: + * mults = getHacknetMultipliers(); + * print(mults.production); + * print(mults.purchaseCost); + * \`\`\` + * @ramCost 4 GB + * @returns {object} Object containing the Player’s hacknet related multipliers. + */ + getHacknetMultipliers(): HacknetMultipliers; + + /** + * Returns a server object for the given server. Defaults to the running script's server if host is not specified. + * + * @ramCost 2 GB + * @param {string} [host] Optional. Hostname or IP for the requested server object. + * @returns {Server} The requested server object. + */ + getServer(host?: Host): Server; + + /** + * Returns the amount of money available on a server. + * Running this function on the home computer will return the player’s money. + * + * @example + * \`\`\`js + * getServerMoneyAvailable("foodnstuff"); + * getServerMoneyAvailable("home"); //Returns player's money + * \`\`\` + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server + * @returns {number} Amount of money available on the server. + */ + getServerMoneyAvailable(host: Host): number; + + /** + * Returns the maximum amount of money that can be available on a server. + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} Maximum amount of money available on the server. + */ + getServerMaxMoney(host: Host): number; + + /** + * Returns the server’s instrinsic “growth parameter”. This growth + * parameter is a number between 1 and 100 that represents how + * quickly the server’s money grows. This parameter affects the + * percentage by which the server’s money is increased when using the + * {@link grow} function. A higher growth parameter will result in a + * higher percentage increase from {@link grow}. + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} Parameter that affects the percentage by which the server’s money is increased when using the {@link grow} function. + */ + getServerGrowth(host: Host): number; + + /** + * Returns the security level of the target server. A server’s security + * level is denoted by a number, typically between 1 and 100 + * (but it can go above 100). + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} Security level of the target server. + */ + getServerSecurityLevel(host: Host): number; + + /** + * Returns the base security level of the target server. This is the security + * level that the server starts out with. This is different than + * {@link getServerSecurityLevel} because {@link getServerSecurityLevel} returns + * the current security level of a server, which can constantly change due to + * {@link hack}, {@link grow}, and {@link weaken}, calls on that server. + * The base security level will stay the same until you reset by + * installing an Augmentation(s). + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} Base security level of the target server. + */ + getServerBaseSecurityLevel(host: Host): number; + + /** + * Returns the minimum security level of the target server. + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} Minimum security level of the target server. + */ + getServerMinSecurityLevel(host: Host): number; + + /** + * Returns the required hacking level of the target server. + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} The required hacking level of the target server. + */ + getServerRequiredHackingLevel(host: Host): number; + + /** + * Returns the number of open ports required to successfully run NUKE.exe on the specified server. + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {number} The number of open ports required to successfully run NUKE.exe on the specified server. + */ + getServerNumPortsRequired(host: Host): number; + + /** + * Returns an array with two elements that gives information about a server’s memory (RAM). + * The first element in the array is the amount of RAM that the server has total (in GB). + * The second element in the array is the amount of RAM that is currently being used on + * the server (in GB). + * + * @example + * \`\`\`js + * res = getServerRam("helios"); + * totalRam = res[0]; + * ramUsed = res[1]; + * \`\`\` + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {[number,number]} Array with total and used memory on the specified server. + */ + getServerRam(host: Host): [number, number]; + + /** + * Returns a boolean denoting whether or not the specified server exists. + * + * @ramCost 0.1 GB + * @param {string} host Host or IP of target server. + * @returns {boolean} True if specified server exists, and false otherwise. + */ + serverExists(host: Host): boolean; + + /** + * Returns a boolean indicating whether the specified file exists on the target server. + * The filename for scripts is case-sensitive, but for other types of files it is not. + * For example, fileExists(“brutessh.exe”) will work fine, even though the actual program + * is named 'BruteSSH.exe'. + * + * If the hostname/ip argument is omitted, then the function will search through the current + * server (the server running the script that calls this function) for the file. + * + * @example + * \`\`\`js + * //The function call will return true if the script named foo.script exists on the foodnstuff server, and false otherwise. + * fileExists("foo.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //The function call will return true if the current server contains the FTPCrack.exe program, and false otherwise. + * fileExists("ftpcrack.exe"); + * \`\`\` + * @ramCost 0.1 GB + * @param {string} filename Filename of file to check. + * @param {(string|number)} [host] Host or IP of target server. This is optional. If it is not specified then the function will use the current server as the target server. + * @returns {boolean} True if specified file exists, and false otherwise. + */ + fileExists(filename: string, host?: Host): boolean; + + /** + * Returns a boolean indicating whether the specified script is running on the target server. + * Remember that a script is uniquely identified by both its name and its arguments. + * + * @example + * \`\`\`js + * //The function call will return true if there is a script named foo.script with no arguments running on the foodnstuff server, and false otherwise: + * isRunning("foo.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //The function call will return true if there is a script named foo.script with no arguments running on the current server, and false otherwise: + * isRunning("foo.script", getHostname()); + * \`\`\` + * @example + * \`\`\`js + * //The function call will return true if there is a script named foo.script running with the arguments 1, 5, and “test” (in that order) on the joesguns server, and false otherwise: + * isRunning("foo.script", "joesguns", 1, 5, "test"); + * \`\`\` + * @ramCost 0.1 GB + * @param {string} script Filename of script to check. This is case-sensitive. + * @param {string} host Host or IP of target server. + * @param {...string} [args] Arguments to specify/identify which scripts to search for. + * @returns {boolean} True if specified script is running on the target server, and false otherwise. + */ + isRunning(script: Script, host: Host, ...args: string[]): boolean; + + /** + * Returns the cost to purchase a server with the specified amount of ram. + * + * @example + * \`\`\`js + * for (i = 1; i <= 20; i++) { + * tprint(i + " -- " + getPurchasedServerCost(Math.pow(2, i))); + * } + * \`\`\` + * @ramCost 0.25 GB + * @param {number} ram Amount of RAM of a potential purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). + * @returns {number} The cost to purchase a server with the specified amount of ram. + */ + getPurchasedServerCost(ram: number): number; + + /** + * Purchased a server with the specified hostname and amount of RAM. + * + * The hostname argument can be any data type, but it will be converted to a string + * and have whitespace removed. Anything that resolves to an empty string will cause + * the function to fail. If there is already a server with the specified hostname, + * then the function will automatically append a number at the end of the hostname + * argument value until it finds a unique hostname. For example, if the script calls + * \`purchaseServer(“foo”, 4)\` but a server named “foo” already exists, the it will + * automatically change the hostname to \`foo-0\`. If there is already a server with the + * hostname \`foo-0\`, then it will change the hostname to \`foo-1\`, and so on. + * + * Note that there is a maximum limit to the amount of servers you can purchase. + * + * Returns the hostname of the newly purchased server as a string. If the function + * fails to purchase a server, then it will return an empty string. The function will + * fail if the arguments passed in are invalid, if the player does not have enough + * money to purchase the specified server, or if the player has exceeded the maximum + * amount of servers. + * + * @example + * \`\`\`js + * ram = 64; + * hn = "pserv-"; + * for (i = 0; i < 5; ++i) { + * purchaseServer(hn + i, ram); + * } + * \`\`\` + * @ramCost 2.25 GB + * @param {string} hostname Host of the purchased server. + * @param {number} ram Amount of RAM of the purchased server. Must be a power of 2 (2, 4, 8, 16, etc.). Maximum value of 1048576 (2^20). + * @returns {string} The hostname of the newly purchased server. + */ + purchaseServer(hostname: Host, ram: number): Host | ""; + + /** + * Deletes one of your purchased servers, which is specified by its hostname. + * + * The hostname argument can be any data type, but it will be converted to a string. + * Whitespace is automatically removed from the string. This function will not delete a + * server that still has scripts running on it. + * + * @ramCost 2.25 GB + * @param {string} host Host of the server to delete. + * @returns {boolean} True if successful, and false otherwise. + */ + deleteServer(host: Host): boolean; + + /** + * Returns an array with either the hostnames or IPs of all of the servers you have purchased. + * + * @ramCost 2.25 GB + * @param {boolean} [hostnameMode]. Optional. Defaults to true. Returns hostnames if true, and IPs if false. + * @returns {string[]} Returns an array with either the hostnames or IPs of all of the servers you have purchased. + */ + getPurchasedServers(hostnameMode?: boolean): Host[]; + + /** + * Returns the maximum number of servers you can purchase. + * + * @ramCost 0.05 GB + * @returns {number} Returns the maximum number of servers you can purchase. + */ + getPurchasedServerLimit(): number; + + /** + * Returns the maximum RAM that a purchased server can have. + * + * @ramCost 0.05 GB + * @returns {number} Returns the maximum RAM that a purchased server can have. + */ + getPurchasedServerMaxRam(): number; + + /** + * This function can be used to either write data to a port or to a text file (.txt). + * + * If the first argument is a number between 1 and 20, then it specifies a port and this + * function will write data to that port. The third argument, mode, is not used when writing + * to a port. + * + * If the first argument is a string, then it specifies the name of a text file (.txt) and + * this function will write data to that text file. If the specified text file does not exist, + * then it will be created. The third argument mode, defines how the data will be written to + * the text file. If *mode is set to “w”, then the data is written in “write” mode which means + * that it will overwrite all existing data on the text file. If mode is set to any other value + * then the data will be written in “append” mode which means that the data will be added at the + * end of the text file. + * + * @ramCost 1 GB + * @param {(string|number)} handle Port or text file that will be written to. + * @param {string} data Data to write. + * @param {string} mode Defines the write mode. Only valid when writing to text files. + */ + write(handle: Handle, data?: string | string[] | number, mode?: "w" | "a"): void; + + /** + * Attempts to write data to the specified Netscript Port. + * If the port is full, the data will not be written. + * Otherwise, the data will be written normally. + * + * @ramCost 1 GB + * @param {number} port Port or text file that will be written to. + * @param {string} data Data to write. + * @returns {boolean} True if the data is successfully written to the port, and false otherwise. + */ + tryWrite(port: Handle, data: string | string[] | number): boolean; + + /** + * This function is used to read data from a port or from a text file (.txt). + * + * If the argument port/fn is a number between 1 and 20, then it specifies a + * port and it will read data from that port. A port is a serialized queue. + * This function will remove the first element from that queue and return it. + * If the queue is empty, then the string “NULL PORT DATA” will be returned. + * + * If the argument port/fn is a string, then it specifies the name of a text + * file (.txt) and this function will return the data in the specified text + * file. If the text file does not exist, an empty string will be returned. + * + * @ramCost 1 GB + * @param {(string|number)} handle Port or text file to read from. + * @returns {(string|number|object)} Data in the specified text file or port. + */ + read(handle: Handle): string | number | object; + + /** + * This function is used to peek at the data from a port. It returns the + * first element in the specified port without removing that element. If + * the port is empty, the string “NULL PORT DATA” will be returned. + * + * @ramCost 1 GB + * @param {number} port Port to peek. Must be an integer between 1 and 20. + * @returns {(string|number|object)} Data in the specified port. + */ + peek(port: Port): string | number | object; + + /** + * This function is used to clear data in a Netscript Ports or a text file. + * + * If the port/fn argument is a number between 1 and 20, then it specifies a + * port and will clear it (deleting all data from the underlying queue). + * + * If the port/fn argument is a string, then it specifies the name of a + * text file (.txt) and will delete all data from that text file. + * + * @ramCost 1 GB + * @param {(string|number)} handle Port or text file to clear. + */ + clear(handle: Handle): void; + + /** + * Get a handle to a Netscript Port. + * + * WARNING: Port Handles only work in NetscriptJS (Netscript 2.0). They will not work in Netscript 1.0. + * + * @see https://bitburner.readthedocs.io/en/latest/netscript/netscriptmisc.html#netscript-ports + * @ramCost 10 GB + * @param {number} port Port number. Must be an integer between 1 and 20. + * @returns {Array} Data in the specified port. + */ + getPortHandle(port: Port): any[]; + + /** + * Removes the specified file from the current server. This function works for every file + * type except message (.msg) files. + * + * @ramCost 1 GB + * @param {string} name Filename of file to remove. Must include the extension. + * @param {string} [host] Host or IP Address of the server on which to delete the file. Optional. Defaults to current server. + * @returns {boolean} True if it successfully deletes the file, and false otherwise. + */ + rm(name: string, host?: Host): boolean; + + /** + * Returns a boolean indicating whether any instance of the specified script is running + * on the target server, regardless of its arguments. + * + * This is different than the {@link isRunning} function because it does not try to + * identify a specific instance of a running script by its arguments. + * + * @example + * \`\`\`js + * //The function call will return true if there is any script named foo.script running on the foodnstuff server, and false otherwise: + * scriptRunning("foo.script", "foodnstuff"); + * \`\`\` + * @example + * \`\`\`js + * //The function call will return true if there is any script named “foo.script” running on the current server, and false otherwise: + * scriptRunning("foo.script", getHostname()); + * \`\`\` + * @ramCost 1 GB + * @param {string} script Filename of script to check. This is case-sensitive. + * @param {string} host Host or IP of target server. + * @returns {boolean} True if the specified script is running, and false otherwise. + */ + scriptRunning(script: Script, host: Host): boolean; + + /** + * Kills all scripts with the specified filename on the target server specified by hostname/ip, + * regardless of arguments. + * + * @ramCost 1 GB + * @param {string} script Filename of script to kill. This is case-sensitive. + * @param {string} host Host or IP of target server. + * @returns {boolean} true if one or more scripts were successfully killed, and false if none were. + */ + scriptKill(script: Script, host: Host): boolean; + + /** + * Returns the current script name. + * + * @ramCost 0 GB + * @returns {string} Current script name. + */ + getScriptName(): string; + + /** + * Returns the amount of RAM required to run the specified script on the target server. + * Returns 0 if the script does not exist. + * + * @ramCost 0.1 GB + * @param {string} script Filename of script. This is case-sensitive. + * @param {string} [host] Host or IP of target server the script is located on. This is optional, If it is not specified then the function will se the current server as the target server. + * @returns {string} Amount of RAM required to run the specified script on the target server, and 0 if the script does not exist. + */ + getScriptRam(script: Script, host?: Host): number; + + /** + * Returns the amount of time in seconds it takes to execute the {@link hack} Netscript function on the target server. + * The function takes in an optional hackLvl parameter that can be specified to see what the hack time would be at different hacking levels. + * + * @ramCost 0.05 GB + * @param {string} host Host or IP of target server. + * @param {number} [hackLvl] Optional hacking level for the calculation. Defaults to player’s current hacking level. + * @param {number} [intLvl] Optional intelligence level for the calculation. Defaults to player’s current intelligence level. (Intelligence is unlocked after obtaining Source-File 5). + * @returns {number} Returns the amount of time in seconds it takes to execute the {@link hack} Netscript function. Returns Infinity if called on a Hacknet Server. + */ + getHackTime(host: Host, hackLvl?: number, intLvl?: number): number; + + /** + * Returns the amount of time in seconds it takes to execute the {@link grow} Netscript function on the target server. + * The function takes in an optional hackLvl parameter that can be specified to see what the grow time would be at different hacking levels. + * + * @ramCost 0.05 GB + * @param {string} host Host or IP of target server. + * @param {number} [hackLvl] Optional hacking level for the calculation. Defaults to player’s current hacking level. + * @param {number} [intLvl] Optional intelligence level for the calculation. Defaults to player’s current intelligence level. (Intelligence is unlocked after obtaining Source-File 5). + * @returns {number} Returns the amount of time in seconds it takes to execute the {@link grow} Netscript function. Returns Infinity if called on a Hacknet Server. + */ + getGrowTime(host: Host, hackLvl?: number, intLvl?: number): number; + + /** + * Returns the amount of time in seconds it takes to execute the weaken() Netscript function on the target server. + * The function takes in an optional hackLvl parameter that can be specified to see what the weaken time would be at different hacking levels. + * + * @ramCost 0.05 GB + * @param {string} host Host or IP of target server. + * @param {number} [hackLvl] Optional hacking level for the calculation. Defaults to player’s current hacking level. + * @param {number} [intLvl] Optional intelligence level for the calculation. Defaults to player’s current intelligence level. (Intelligence is unlocked after obtaining Source-File 5). + * @returns {number} Returns the amount of time in seconds it takes to execute the {@link grow} Netscript function. Returns Infinity if called on a Hacknet Server. + */ + getWeakenTime(host: Host, hackLvl?: number, intLvl?: number): number; + + /** + * Returns the amount of income the specified script generates while online + * (when the game is open, does not apply for offline income). Remember that + * a script is uniquely identified by both its name and its arguments. So for + * example if you ran a script with the arguments “foodnstuff” and “5” then + * in order to use this function to get that script’s income you must specify + * those same arguments in the same order in this function call. + * + * This function can also be called with no arguments. + * If called with no arguments, then this function will return an array of two values. + * The first value is the total income ($ / second) of all of your active scripts + * (scripts that are currently running on any server). + * The second value is the total income ($ / second) that you’ve earned from scripts + * since you last installed Augmentations. + * + * @ramCost 0.1 GB + * @param {string} script Filename of script. + * @param {string} host Server on which script is running. + * @param {string} [args] Arguments that the script is running with. + * @returns {(number|[number,number])} Amount of income the specified script generates while online. + */ + getScriptIncome(script: Script, host: Host, ...args: string[]): number | [number, number]; + + /** + * Returns the amount of hacking experience the specified script generates while online + * (when the game is open, does not apply for offline experience gains). Remember that a + * script is uniquely identified by both its name and its arguments. + * + * This function can also return the total experience gain rate of all of your active + * scripts by running the function with no arguments. + * + * @ramCost 0.1 GB + * @param {string} script Filename of script. + * @param {string} host Server on which script is running. + * @param {...string[]} [args] Arguments that the script is running with. + * @returns {number} Amount of hacking experience the specified script generates while online. + */ + getScriptExpGain(script: Script, host: Host, ...args: string[]): number; + + /** + * Returns the amount of time in milliseconds that have passed since you last installed Augmentations. + * + * @ramCost 0.05 GB + * @returns {number} Time in milliseconds that have passed since you last installed Augmentations. + */ + getTimeSinceLastAug(): number; + + /** + * Complete open source JavaScript sprintf implementation + * + * @see https://github.com/alexei/sprintf.js + * @ramCost 0 GB + * @param {string} format String to format. + * @param {...string} args Formating arguments. + * @returns {string} Formated text. + */ + sprintf(format: string, ...args: string[]): string; + + /** + * Complete open source JavaScript sprintf implementation + * + * @see https://github.com/alexei/sprintf.js + * @ramCost 0 GB + * @param {string} format String to format. + * @param {string[]} args Formating arguments. + * @returns {string} Formated text. + */ + vsprintf(format: string, args: string[]): string; + + /** + * Converts a number into a string with the specified formatter. + * This uses the numeraljs library, so the formatters must be compatible with that. + * This is the same function that the game itself uses to display numbers. + * + * @see http://numeraljs.com/ + * @ramCost 0 GB + * @param {number} n Number to format. + * @param {string} format Formatter. + * @returns {string} Formated number. + */ + nFormat(n: number, format: string): number; + + /** + * Prompts the player with a dialog box with two options: “Yes” and “No”. + * This function will return true if the player click “Yes” and false if + * the player clicks “No”. The script’s execution is halted until the player + * selects one of the options. + * + * @ramCost 0 GB + * @param {string} txt Text to appear in the prompt dialog box. + * @returns {Promise} True if the player click “Yes” and false if the player clicks “No”. + */ + prompt(txt: string): Promise; + + /** + * Retrieves data from a URL and downloads it to a file on the specified server. + * The data can only be downloaded to a script (.script, .ns, .js) or a text file (.txt). + * If the file already exists, it will be overwritten by this command. + * Note that it will not be possible to download data from many websites because they + * do not allow cross-origin resource sharing (CORS). + * + * IMPORTANT: This is an asynchronous function that returns a Promise. + * The Promise’s resolved value will be a boolean indicating whether or not the data was + * successfully retrieved from the URL. Because the function is async and returns a Promise, + * it is recommended you use wget in NetscriptJS (Netscript 2.0). + * + * In NetscriptJS, you must preface any call to wget with the await keyword (like you would hack or sleep). + * wget will still work in Netscript 1.0, but the functions execution will not be synchronous + * (i.e. it may not execute when you expect/want it to). + * Furthermore, since Promises are not supported in ES5, + * you will not be able to process the returned value of wget in Netscript 1.0. + * + * @example + * \`\`\`js + * wget("https://raw.githubusercontent.com/danielyxie/bitburner/master/README.md", "game_readme.txt"); + * \`\`\` + * @ramCost 0 GB + * @param {string} url URL to pull data from. + * @param {string} target Filename to write data to. Must be script or text file. + * @param {string} [host] Optional hostname/ip of server for target file. + * @returns {Promise} True if the data was successfully retrieved from the URL, false otherwise. + */ + wget(url: string, target: string, host?: string): Promise; + + /** + * Returns the amount of Faction favor required to be able to donate to a faction. + * + * @ramCost 0.1 GB + * @returns {number} Amount of Faction favor required to be able to donate to a faction. + */ + getFavorToDonate(): number; + + /** + * Returns an object containing the current BitNode multipliers. + * This function requires Source-File 5 in order to run. + * The multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). + * The multipliers represent the difference between the current BitNode and + * the original BitNode (BitNode-1). + * + * For example, if the CrimeMoney multiplier has a value of 0.1, then that means + * that committing crimes in the current BitNode will only give 10% of the money + * you would have received in BitNode-1. + * + * @example + * \`\`\`js + * mults = getBitNodeMultipliers(); + * print(mults.ServerMaxMoney); + * print(mults.HackExpGain); + * \`\`\` + * @ramCost 4 GB + * @returns {object} Object containing the current BitNode multipliers. + */ + getBitNodeMultipliers(url: string, target: string, host: string): BitNodeMultipliers; } - -`; diff --git a/src/ScriptEditor/raw-loader.d.ts b/src/ScriptEditor/raw-loader.d.ts new file mode 100644 index 000000000..895957790 --- /dev/null +++ b/src/ScriptEditor/raw-loader.d.ts @@ -0,0 +1,4 @@ +declare module "!!raw-loader!*" { + const contents: { default: string }; + export = contents; +} diff --git a/src/ScriptEditor/ui/ScriptEditorRoot.tsx b/src/ScriptEditor/ui/ScriptEditorRoot.tsx index 951250bc4..58577a27d 100644 --- a/src/ScriptEditor/ui/ScriptEditorRoot.tsx +++ b/src/ScriptEditor/ui/ScriptEditorRoot.tsx @@ -15,7 +15,7 @@ import { calculateRamUsage } from "../../Script/RamCalculations"; import { RamCalculationErrorCode } from "../../Script/RamCalculationErrorCodes"; import { numeralWrapper } from "../../ui/numeralFormat"; import { CursorPositions } from "../CursorPositions"; -import { libSource } from "../NetscriptDefinitions"; + import { NetscriptFunctions } from "../../NetscriptFunctions"; import { WorkerScript } from "../../Netscript/WorkerScript"; import { Settings } from "../../Settings/Settings"; @@ -32,6 +32,8 @@ import TextField from "@mui/material/TextField"; import IconButton from "@mui/material/IconButton"; import SettingsIcon from "@mui/icons-material/Settings"; +import libSource from "!!raw-loader!../NetscriptDefinitions"; + let symbolsLoaded = false; let symbols: string[] = []; export function SetupTextEditor(): void { @@ -327,8 +329,9 @@ export function Root(props: IProps): React.ReactElement { l.language.tokenizer.root.unshift(["this", { token: "this" }]); })(); - monaco.languages.typescript.javascriptDefaults.addExtraLib(libSource, "netscript.d.ts"); - monaco.languages.typescript.typescriptDefaults.addExtraLib(libSource, "netscript.d.ts"); + const source = (libSource + "").replace(/export /g, ""); + monaco.languages.typescript.javascriptDefaults.addExtraLib(source, "netscript.d.ts"); + monaco.languages.typescript.typescriptDefaults.addExtraLib(source, "netscript.d.ts"); loadThemes(monaco); } // 370px 71%, 725px 85.1%, 1085px 90%, 1300px 91.7% diff --git a/tsconfig.json b/tsconfig.json index 5d03b0c9c..fcf8643fb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,7 @@ "target": "es6", "sourceMap": true, "strict": true, - "types": ["cypress", "@testing-library/cypress", "node"] + "types": ["cypress", "@testing-library/cypress", "node", "raw-loader.d.ts"] }, "exclude": ["node_modules"] }