This commit is contained in:
Olivier Gagnon 2021-10-11 16:38:50 -04:00
parent 828c9c2de6
commit 8f13363466
13 changed files with 63421 additions and 2643 deletions

@ -99,7 +99,6 @@ module.exports = {
"no-catch-shadow": ["error"], "no-catch-shadow": ["error"],
"no-class-assign": ["error"], "no-class-assign": ["error"],
"no-compare-neg-zero": ["error"], "no-compare-neg-zero": ["error"],
"no-cond-assign": ["off", "except-parens"],
"no-confusing-arrow": ["error"], "no-confusing-arrow": ["error"],
"no-console": ["off"], "no-console": ["off"],
"no-const-assign": ["error"], "no-const-assign": ["error"],

@ -1,18 +1,18 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"/> <meta charset="utf-8" />
<title>Bitburner</title> <title>Bitburner</title>
<link rel="apple-touch-icon" sizes="180x180" href="dist/apple-touch-icon.png"/> <link rel="apple-touch-icon" sizes="180x180" href="dist/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="dist/favicon-32x32.png"/> <link rel="icon" type="image/png" sizes="32x32" href="dist/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="dist/favicon-16x16.png"/> <link rel="icon" type="image/png" sizes="16x16" href="dist/favicon-16x16.png" />
<link rel="manifest" href="dist/site.webmanifest"/> <link rel="manifest" href="dist/site.webmanifest" />
<link rel="mask-icon" href="dist/safari-pinned-tab.svg" color="#000000"/> <link rel="mask-icon" href="dist/safari-pinned-tab.svg" color="#000000" />
<meta name="apple-mobile-web-app-title" content="Bitburner"/> <meta name="apple-mobile-web-app-title" content="Bitburner" />
<meta name="application-name" content="Bitburner"/> <meta name="application-name" content="Bitburner" />
<meta name="msapplication-TileColor" content="#000000"/> <meta name="msapplication-TileColor" content="#000000" />
<meta name="msapplication-config" content="dist/browserconfig.xml"/> <meta name="msapplication-config" content="dist/browserconfig.xml" />
<meta name="theme-color" content="#ffffff"/> <meta name="theme-color" content="#ffffff" />
<!-- Google Analytics --> <!-- Google Analytics -->
<script> <script>
@ -30,12 +30,12 @@
m.parentNode.insertBefore(a, m); m.parentNode.insertBefore(a, m);
})(window, document, "script", "https://www.google-analytics.com/analytics.js", "ga"); })(window, document, "script", "https://www.google-analytics.com/analytics.js", "ga");
</script> </script>
<script> <script>
ga("create", "UA-100157497-1", "auto"); ga("create", "UA-100157497-1", "auto");
ga("send", "pageview"); ga("send", "pageview");
</script> </script>
<style> <style>
body { body {
background-color: black; background-color: black;
@ -49,9 +49,12 @@
display: none; /* for Chrome, Safari, and Opera */ display: none; /* for Chrome, Safari, and Opera */
} }
</style> </style>
<link rel="shortcut icon" href="favicon.ico"></head> <link rel="shortcut icon" href="favicon.ico" />
</head>
<body> <body>
<div id="root"/> <div id="root" />
<script type="text/javascript" src="dist/vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body> <script type="text/javascript" src="dist/vendor.bundle.js"></script>
<script type="text/javascript" src="main.bundle.js"></script>
</body>
<!-- http://plaza.dsolver.ca/m/hydroflame4418 --> <!-- http://plaza.dsolver.ca/m/hydroflame4418 -->
</html> </html>

File diff suppressed because one or more lines are too long

4737
main.css

File diff suppressed because it is too large Load Diff

@ -2,433 +2,366 @@ const numSpaces = 4;
const maxLineLength = 160; const maxLineLength = 160;
module.exports = { module.exports = {
"env": { env: {
"es6": true, es6: true,
"node": true node: true,
},
extends: "eslint:recommended",
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
}, },
"extends": "eslint:recommended", ecmaVersion: 8,
"parserOptions": { sourceType: "module",
"ecmaFeatures": { },
"experimentalObjectRestSpread": true rules: {
}, "accessor-pairs": [
"ecmaVersion": 8, "error",
"sourceType": "module" {
}, getWithoutSet: false,
"rules": { setWithoutGet: true,
"accessor-pairs": [ },
"error", ],
{ "array-bracket-newline": ["error"],
"getWithoutSet": false, "array-bracket-spacing": ["error"],
"setWithoutGet": true "array-callback-return": ["error"],
} "array-element-newline": ["error"],
], "arrow-body-style": ["error"],
"array-bracket-newline": ["error"], "arrow-parens": ["error"],
"array-bracket-spacing": ["error"], "arrow-spacing": ["error"],
"array-callback-return": ["error"], "block-scoped-var": ["error"],
"array-element-newline": ["error"], "block-spacing": ["error"],
"arrow-body-style": ["error"], "brace-style": ["error"],
"arrow-parens": ["error"], "callback-return": ["error"],
"arrow-spacing": ["error"], camelcase: ["error"],
"block-scoped-var": ["error"], "capitalized-comments": ["error"],
"block-spacing": ["error"], "class-methods-use-this": ["error"],
"brace-style": ["error"], "comma-dangle": ["error"],
"callback-return": ["error"], "comma-spacing": ["error"],
"camelcase": ["error"], "comma-style": ["error", "last"],
"capitalized-comments": ["error"], complexity: ["error"],
"class-methods-use-this": ["error"], "computed-property-spacing": ["error", "never"],
"comma-dangle": ["error"], "consistent-return": ["error"],
"comma-spacing": ["error"], "consistent-this": ["error"],
"comma-style": [ "constructor-super": ["error"],
"error", curly: ["error"],
"last" "default-case": ["error"],
], "dot-location": ["error", "property"],
"complexity": ["error"], "dot-notation": ["error"],
"computed-property-spacing": [ "eol-last": ["error"],
"error", eqeqeq: ["error"],
"never" "for-direction": ["error"],
], "func-call-spacing": ["error"],
"consistent-return": ["error"], "func-name-matching": ["error"],
"consistent-this": ["error"], "func-names": ["error", "never"],
"constructor-super": ["error"], "func-style": ["error"],
"curly": ["error"], "function-paren-newline": ["error"],
"default-case": ["error"], "generator-star-spacing": ["error", "before"],
"dot-location": [ "getter-return": [
"error", "error",
"property" {
], allowImplicit: false,
"dot-notation": ["error"], },
"eol-last": ["error"], ],
"eqeqeq": ["error"], "global-require": ["error"],
"for-direction": ["error"], "guard-for-in": ["error"],
"func-call-spacing": ["error"], "handle-callback-err": ["error"],
"func-name-matching": ["error"], "id-blacklist": ["error"],
"func-names": [ "id-length": ["error"],
"error", "id-match": ["error"],
"never" "implicit-arrow-linebreak": ["error", "beside"],
], indent: [
"func-style": ["error"], "error",
"function-paren-newline": ["error"], numSpaces,
"generator-star-spacing": [ {
"error", SwitchCase: 1,
"before" },
], ],
"getter-return": [ "init-declarations": ["error"],
"error", "jsx-quotes": ["error"],
{ "key-spacing": ["error"],
"allowImplicit": false "keyword-spacing": ["error"],
} "line-comment-position": ["error"],
], "linebreak-style": ["error", "windows"],
"global-require": ["error"], "lines-around-comment": ["error"],
"guard-for-in": ["error"], "lines-between-class-members": ["error"],
"handle-callback-err": ["error"], "max-depth": ["error"],
"id-blacklist": ["error"], "max-len": ["error", maxLineLength],
"id-length": ["error"], "max-lines": [
"id-match": ["error"], "error",
"implicit-arrow-linebreak": [ {
"error", skipBlankLines: true,
"beside" skipComments: true,
], },
"indent": [ ],
"error", "max-nested-callbacks": ["error"],
numSpaces, "max-params": ["error"],
{ "max-statements": ["error"],
"SwitchCase": 1 "max-statements-per-line": ["error"],
} "multiline-comment-style": ["off", "starred-block"],
], "multiline-ternary": ["error", "never"],
"init-declarations": ["error"], "new-cap": ["error"],
"jsx-quotes": ["error"], "new-parens": ["error"],
"key-spacing": ["error"], // TODO: configure this...
"keyword-spacing": ["error"], "newline-before-return": ["error"],
"line-comment-position": ["error"], "newline-per-chained-call": ["error"],
"linebreak-style": [ "no-alert": ["error"],
"error", "no-array-constructor": ["error"],
"windows" "no-await-in-loop": ["error"],
], "no-bitwise": ["error"],
"lines-around-comment": ["error"], "no-buffer-constructor": ["error"],
"lines-between-class-members": ["error"], "no-caller": ["error"],
"max-depth": ["error"], "no-case-declarations": ["error"],
"max-len": [ "no-catch-shadow": ["error"],
"error", "no-class-assign": ["error"],
maxLineLength "no-compare-neg-zero": ["error"],
], "no-cond-assign": ["error", "except-parens"],
"max-lines": [ "no-confusing-arrow": ["error"],
"error", "no-console": ["error"],
{ "no-const-assign": ["error"],
"skipBlankLines": true, "no-constant-condition": [
"skipComments": true "error",
} {
], checkLoops: false,
"max-nested-callbacks": ["error"], },
"max-params": ["error"], ],
"max-statements": ["error"], "no-continue": ["off"],
"max-statements-per-line": ["error"], "no-control-regex": ["error"],
"multiline-comment-style": [ "no-debugger": ["error"],
"off", "no-delete-var": ["error"],
"starred-block" "no-div-regex": ["error"],
], "no-dupe-args": ["error"],
"multiline-ternary": [ "no-dupe-class-members": ["error"],
"error", "no-dupe-keys": ["error"],
"never" "no-duplicate-case": ["error"],
], "no-duplicate-imports": [
"new-cap": ["error"], "error",
"new-parens": ["error"], {
// TODO: configure this... includeExports: true,
"newline-before-return": ["error"], },
"newline-per-chained-call": ["error"], ],
"no-alert": ["error"], "no-else-return": ["error"],
"no-array-constructor": ["error"], "no-empty": [
"no-await-in-loop": ["error"], "error",
"no-bitwise": ["error"], {
"no-buffer-constructor": ["error"], allowEmptyCatch: false,
"no-caller": ["error"], },
"no-case-declarations": ["error"], ],
"no-catch-shadow": ["error"], "no-empty-character-class": ["error"],
"no-class-assign": ["error"], "no-empty-function": ["error"],
"no-compare-neg-zero": ["error"], "no-empty-pattern": ["error"],
"no-cond-assign": [ "no-eq-null": ["error"],
"error", "no-eval": ["error"],
"except-parens" "no-ex-assign": ["error"],
], "no-extend-native": ["error"],
"no-confusing-arrow": ["error"], "no-extra-bind": ["error"],
"no-console": ["error"], "no-extra-boolean-cast": ["error"],
"no-const-assign": ["error"], "no-extra-label": ["error"],
"no-constant-condition": [ "no-extra-parens": [
"error", "error",
{ "all",
"checkLoops": false {
} conditionalAssign: false,
], },
"no-continue": ["off"], ],
"no-control-regex": ["error"], "no-extra-semi": ["error"],
"no-debugger": ["error"], "no-fallthrough": ["error"],
"no-delete-var": ["error"], "no-floating-decimal": ["error"],
"no-div-regex": ["error"], "no-func-assign": ["error"],
"no-dupe-args": ["error"], "no-global-assign": ["error"],
"no-dupe-class-members": ["error"], "no-implicit-coercion": ["error"],
"no-dupe-keys": ["error"], "no-implicit-globals": ["error"],
"no-duplicate-case": ["error"], "no-implied-eval": ["error"],
"no-duplicate-imports": [ "no-inline-comments": ["error"],
"error", "no-inner-declarations": ["error", "both"],
{ "no-invalid-regexp": ["error"],
"includeExports": true "no-invalid-this": ["error"],
} "no-irregular-whitespace": [
], "error",
"no-else-return": ["error"], {
"no-empty": [ skipComments: false,
"error", skipRegExps: false,
{ skipStrings: false,
"allowEmptyCatch": false skipTemplates: false,
} },
], ],
"no-empty-character-class": ["error"], "no-iterator": ["error"],
"no-empty-function": ["error"], "no-label-var": ["error"],
"no-empty-pattern": ["error"], "no-labels": ["error"],
"no-eq-null": ["error"], "no-lone-blocks": ["error"],
"no-eval": ["error"], "no-lonely-if": ["error"],
"no-ex-assign": ["error"], "no-loop-func": ["error"],
"no-extend-native": ["error"], "no-magic-numbers": [
"no-extra-bind": ["error"], "error",
"no-extra-boolean-cast": ["error"], {
"no-extra-label": ["error"], ignore: [-1, 0, 1],
"no-extra-parens": [ ignoreArrayIndexes: true,
"error", },
"all", ],
{ "no-mixed-operators": ["error"],
"conditionalAssign": false "no-mixed-requires": ["error"],
} "no-mixed-spaces-and-tabs": ["error"],
], "no-multi-assign": ["error"],
"no-extra-semi": ["error"], "no-multi-spaces": ["error"],
"no-fallthrough": ["error"], "no-multi-str": ["error"],
"no-floating-decimal": ["error"], "no-multiple-empty-lines": [
"no-func-assign": ["error"], "error",
"no-global-assign": ["error"], {
"no-implicit-coercion": ["error"], max: 1,
"no-implicit-globals": ["error"], },
"no-implied-eval": ["error"], ],
"no-inline-comments": ["error"], "no-native-reassign": ["error"],
"no-inner-declarations": [ "no-negated-condition": ["error"],
"error", "no-negated-in-lhs": ["error"],
"both" "no-nested-ternary": ["error"],
], "no-new": ["error"],
"no-invalid-regexp": ["error"], "no-new-func": ["error"],
"no-invalid-this": ["error"], "no-new-object": ["error"],
"no-irregular-whitespace": [ "no-new-require": ["error"],
"error", "no-new-symbol": ["error"],
{ "no-new-wrappers": ["error"],
"skipComments": false, "no-obj-calls": ["error"],
"skipRegExps": false, "no-octal": ["error"],
"skipStrings": false, "no-octal-escape": ["error"],
"skipTemplates": false "no-param-reassign": ["error"],
} "no-path-concat": ["error"],
], "no-plusplus": [
"no-iterator": ["error"], "error",
"no-label-var": ["error"], {
"no-labels": ["error"], allowForLoopAfterthoughts: true,
"no-lone-blocks": ["error"], },
"no-lonely-if": ["error"], ],
"no-loop-func": ["error"], "no-process-env": ["error"],
"no-magic-numbers": [ "no-process-exit": ["error"],
"error", "no-proto": ["error"],
{ "no-prototype-builtins": ["error"],
"ignore": [ "no-redeclare": ["error"],
-1, "no-regex-spaces": ["error"],
0, "no-restricted-globals": ["error"],
1 "no-restricted-imports": ["error"],
], "no-restricted-modules": ["error"],
"ignoreArrayIndexes": true "no-restricted-properties": [
} "error",
], {
"no-mixed-operators": ["error"], message: "'log' is too general, use an appropriate level when logging.",
"no-mixed-requires": ["error"], object: "console",
"no-mixed-spaces-and-tabs": ["error"], property: "log",
"no-multi-assign": ["error"], },
"no-multi-spaces": ["error"], ],
"no-multi-str": ["error"], "no-restricted-syntax": ["error"],
"no-multiple-empty-lines": [ "no-return-assign": ["error"],
"error", "no-return-await": ["error"],
{ "no-script-url": ["error"],
"max": 1 "no-self-assign": [
} "error",
], {
"no-native-reassign": ["error"], props: false,
"no-negated-condition": ["error"], },
"no-negated-in-lhs": ["error"], ],
"no-nested-ternary": ["error"], "no-self-compare": ["error"],
"no-new": ["error"], "no-sequences": ["error"],
"no-new-func": ["error"], "no-shadow": ["error"],
"no-new-object": ["error"], "no-shadow-restricted-names": ["error"],
"no-new-require": ["error"], "no-spaced-func": ["error"],
"no-new-symbol": ["error"], "no-sparse-arrays": ["error"],
"no-new-wrappers": ["error"], "no-sync": ["error"],
"no-obj-calls": ["error"], "no-tabs": ["error"],
"no-octal": ["error"], "no-template-curly-in-string": ["error"],
"no-octal-escape": ["error"], "no-ternary": ["off"],
"no-param-reassign": ["error"], "no-this-before-super": ["error"],
"no-path-concat": ["error"], "no-throw-literal": ["error"],
"no-plusplus": [ "no-trailing-spaces": ["error"],
"error", "no-undef": ["error"],
{ "no-undef-init": ["error"],
"allowForLoopAfterthoughts": true "no-undefined": ["error"],
} "no-underscore-dangle": ["error"],
], "no-unexpected-multiline": ["error"],
"no-process-env": ["error"], "no-unmodified-loop-condition": ["error"],
"no-process-exit": ["error"], "no-unneeded-ternary": ["error"],
"no-proto": ["error"], "no-unreachable": ["error"],
"no-prototype-builtins": ["error"], "no-unsafe-finally": ["error"],
"no-redeclare": ["error"], "no-unsafe-negation": ["error"],
"no-regex-spaces": ["error"], "no-unused-expressions": ["error"],
"no-restricted-globals": ["error"], "no-unused-labels": ["error"],
"no-restricted-imports": ["error"], "no-unused-vars": ["error"],
"no-restricted-modules": ["error"], "no-use-before-define": ["error"],
"no-restricted-properties": [ "no-useless-call": ["error"],
"error", "no-useless-computed-key": ["error"],
{ "no-useless-concat": ["error"],
"message": "'log' is too general, use an appropriate level when logging.", "no-useless-constructor": ["error"],
"object": "console", "no-useless-escape": ["error"],
"property": "log" "no-useless-rename": [
} "error",
], {
"no-restricted-syntax": ["error"], ignoreDestructuring: false,
"no-return-assign": ["error"], ignoreExport: false,
"no-return-await": ["error"], ignoreImport: false,
"no-script-url": ["error"], },
"no-self-assign": [ ],
"error", "no-useless-return": ["error"],
{ "no-var": ["error"],
"props": false "no-void": ["error"],
} "no-warning-comments": ["error"],
], "no-whitespace-before-property": ["error"],
"no-self-compare": ["error"], "no-with": ["error"],
"no-sequences": ["error"], "nonblock-statement-body-position": ["error", "below"],
"no-shadow": ["error"], "object-curly-newline": ["error"],
"no-shadow-restricted-names": ["error"], "object-curly-spacing": ["error"],
"no-spaced-func": ["error"], "object-property-newline": ["error"],
"no-sparse-arrays": ["error"], "object-shorthand": ["error"],
"no-sync": ["error"], "one-var": ["off"],
"no-tabs": ["error"], "one-var-declaration-per-line": ["error"],
"no-template-curly-in-string": ["error"], "operator-assignment": ["error"],
"no-ternary": ["off"], "operator-linebreak": ["error", "none"],
"no-this-before-super": ["error"], "padded-blocks": ["off"],
"no-throw-literal": ["error"], "padding-line-between-statements": ["error"],
"no-trailing-spaces": ["error"], "prefer-arrow-callback": ["error"],
"no-undef": ["error"], "prefer-const": ["error"],
"no-undef-init": ["error"], "prefer-destructuring": ["off"],
"no-undefined": ["error"], "prefer-numeric-literals": ["error"],
"no-underscore-dangle": ["error"], "prefer-promise-reject-errors": ["off"],
"no-unexpected-multiline": ["error"], "prefer-reflect": ["error"],
"no-unmodified-loop-condition": ["error"], "prefer-rest-params": ["error"],
"no-unneeded-ternary": ["error"], "prefer-spread": ["error"],
"no-unreachable": ["error"], "prefer-template": ["error"],
"no-unsafe-finally": ["error"], "quote-props": ["error"],
"no-unsafe-negation": ["error"], quotes: ["error"],
"no-unused-expressions": ["error"], radix: ["error", "as-needed"],
"no-unused-labels": ["error"], "require-await": ["error"],
"no-unused-vars": ["error"], "require-jsdoc": ["off"],
"no-use-before-define": ["error"], "require-yield": ["error"],
"no-useless-call": ["error"], "rest-spread-spacing": ["error", "never"],
"no-useless-computed-key": ["error"], semi: ["error"],
"no-useless-concat": ["error"], "semi-spacing": ["error"],
"no-useless-constructor": ["error"], "semi-style": ["error", "last"],
"no-useless-escape": ["error"], "sort-imports": ["error"],
"no-useless-rename": [ "sort-keys": ["error"],
"error", "sort-vars": ["error"],
{ "space-before-blocks": ["error"],
"ignoreDestructuring": false, "space-before-function-paren": ["off"],
"ignoreExport": false, "space-in-parens": ["error"],
"ignoreImport": false "space-infix-ops": ["error"],
} "space-unary-ops": ["error"],
], "spaced-comment": ["error"],
"no-useless-return": ["error"], strict: ["error"],
"no-var": ["error"], "switch-colon-spacing": [
"no-void": ["error"], "error",
"no-warning-comments": ["error"], {
"no-whitespace-before-property": ["error"], after: true,
"no-with": ["error"], before: false,
"nonblock-statement-body-position": [ },
"error", ],
"below" "symbol-description": ["error"],
], "template-curly-spacing": ["error"],
"object-curly-newline": ["error"], "template-tag-spacing": ["error"],
"object-curly-spacing": ["error"], "unicode-bom": ["error", "never"],
"object-property-newline": ["error"], "use-isnan": ["error"],
"object-shorthand": ["error"], "valid-jsdoc": ["error"],
"one-var": ["off"], "valid-typeof": ["error"],
"one-var-declaration-per-line": ["error"], "vars-on-top": ["error"],
"operator-assignment": ["error"], "wrap-iife": ["error", "any"],
"operator-linebreak": [ "wrap-regex": ["error"],
"error", "yield-star-spacing": ["error", "before"],
"none" yoda: ["error", "never"],
], },
"padded-blocks": ["off"],
"padding-line-between-statements": ["error"],
"prefer-arrow-callback": ["error"],
"prefer-const": ["error"],
"prefer-destructuring": ["off"],
"prefer-numeric-literals": ["error"],
"prefer-promise-reject-errors": ["off"],
"prefer-reflect": ["error"],
"prefer-rest-params": ["error"],
"prefer-spread": ["error"],
"prefer-template": ["error"],
"quote-props": ["error"],
"quotes": ["error"],
"radix": [
"error",
"as-needed"
],
"require-await": ["error"],
"require-jsdoc": ["off"],
"require-yield": ["error"],
"rest-spread-spacing": [
"error",
"never"
],
"semi": ["error"],
"semi-spacing": ["error"],
"semi-style": [
"error",
"last"
],
"sort-imports": ["error"],
"sort-keys": ["error"],
"sort-vars": ["error"],
"space-before-blocks": ["error"],
"space-before-function-paren": ["off"],
"space-in-parens": ["error"],
"space-infix-ops": ["error"],
"space-unary-ops": ["error"],
"spaced-comment": ["error"],
"strict": ["error"],
"switch-colon-spacing": [
"error",
{
"after": true,
"before": false
}
],
"symbol-description": ["error"],
"template-curly-spacing": ["error"],
"template-tag-spacing": ["error"],
"unicode-bom": [
"error",
"never"
],
"use-isnan": ["error"],
"valid-jsdoc": ["error"],
"valid-typeof": ["error"],
"vars-on-top": ["error"],
"wrap-iife": [
"error",
"any"
],
"wrap-regex": ["error"],
"yield-star-spacing": [
"error",
"before"
],
"yoda": [
"error",
"never"
]
}
}; };

@ -8,66 +8,74 @@ const path = require("path");
const exec = require("child_process").exec; const exec = require("child_process").exec;
const semver = require("./semver"); const semver = require("./semver");
const getPackageJson = () => new Promise((resolve, reject) => { const getPackageJson = () =>
new Promise((resolve, reject) => {
try { try {
/* eslint-disable-next-line global-require */ /* eslint-disable-next-line global-require */
resolve(require(path.resolve(process.cwd(), "package.json"))); resolve(require(path.resolve(process.cwd(), "package.json")));
} catch (error) { } catch (error) {
reject(error); reject(error);
} }
}); });
const getEngines = (data) => new Promise((resolve, reject) => { const getEngines = (data) =>
new Promise((resolve, reject) => {
let versions = null; let versions = null;
if (data.engines) { if (data.engines) {
versions = data.engines; versions = data.engines;
} }
if (versions) { if (versions) {
resolve(versions); resolve(versions);
} else { } else {
reject("Missing or improper 'engines' property in 'package.json'"); reject("Missing or improper 'engines' property in 'package.json'");
} }
}); });
const checkNpmVersion = (engines) => new Promise((resolve, reject) => { const checkNpmVersion = (engines) =>
new Promise((resolve, reject) => {
exec("npm -v", (error, stdout, stderr) => { exec("npm -v", (error, stdout, stderr) => {
if (error) { if (error) {
reject(`Unable to find NPM version\n${stderr}`); reject(`Unable to find NPM version\n${stderr}`);
} }
const npmVersion = stdout.trim(); const npmVersion = stdout.trim();
const engineVersion = engines.npm || ">=0"; const engineVersion = engines.npm || ">=0";
if (semver.satisfies(npmVersion, engineVersion)) { if (semver.satisfies(npmVersion, engineVersion)) {
resolve(); resolve();
} else { } else {
reject(`Incorrect npm version\n'package.json' specifies "${engineVersion}", you are currently running "${npmVersion}".`); reject(
} `Incorrect npm version\n'package.json' specifies "${engineVersion}", you are currently running "${npmVersion}".`,
);
}
}); });
}); });
const checkNodeVersion = (engines) => new Promise((resolve, reject) => { const checkNodeVersion = (engines) =>
new Promise((resolve, reject) => {
const nodeVersion = process.version.substring(1); const nodeVersion = process.version.substring(1);
if (semver.satisfies(nodeVersion, engines.node)) { if (semver.satisfies(nodeVersion, engines.node)) {
resolve(engines); resolve(engines);
} else { } else {
reject(`Incorrect node version\n'package.json' specifies "${engines.node}", you are currently running "${process.version}".`); reject(
`Incorrect node version\n'package.json' specifies "${engines.node}", you are currently running "${process.version}".`,
);
} }
}); });
getPackageJson() getPackageJson()
.then(getEngines) .then(getEngines)
.then(checkNodeVersion) .then(checkNodeVersion)
.then(checkNpmVersion) .then(checkNpmVersion)
.then( .then(
() => true, () => true,
(error) => { (error) => {
// Specifically disable these as the error message gets lost in the normal unhandled output. // Specifically disable these as the error message gets lost in the normal unhandled output.
/* eslint-disable no-console, no-process-exit */ /* eslint-disable no-console, no-process-exit */
console.error(error); console.error(error);
process.exit(1); process.exit(1);
} },
); );

File diff suppressed because it is too large Load Diff

@ -72,7 +72,7 @@ export function SellSharesModal(props: IProps): React.ReactElement {
player.gainMoney(profit); player.gainMoney(profit);
player.recordMoneySource(profit, "corporation"); player.recordMoneySource(profit, "corporation");
props.onClose(); props.onClose();
dialogBoxCreate( dialogBoxCreate(
<> <>
Sold {numeralWrapper.formatMoney(shares)} shares for Sold {numeralWrapper.formatMoney(shares)} shares for
<Money money={profit} />. The corporation's stock price fell to&nbsp; <Money money={corp.sharePrice} /> <Money money={profit} />. The corporation's stock price fell to&nbsp; <Money money={corp.sharePrice} />

@ -10,7 +10,6 @@ import { RunningScript } from "../Script/RunningScript";
import { GetServer } from "../Server/AllServers"; import { GetServer } from "../Server/AllServers";
import { compareArrays } from "../utils/helpers/compareArrays"; import { compareArrays } from "../utils/helpers/compareArrays";
import { roundToTwo } from "../utils/helpers/roundToTwo";
export function killWorkerScript(runningScriptObj: RunningScript, hostname: string, rerenderUi?: boolean): boolean; export function killWorkerScript(runningScriptObj: RunningScript, hostname: string, rerenderUi?: boolean): boolean;
export function killWorkerScript(workerScript: WorkerScript): boolean; export function killWorkerScript(workerScript: WorkerScript): boolean;

@ -713,7 +713,7 @@ function NetscriptFunctions(workerScript: WorkerScript): NS {
const gang = NetscriptGang(Player, workerScript, helper); const gang = NetscriptGang(Player, workerScript, helper);
const sleeve = NetscriptSleeve(Player, workerScript, helper); const sleeve = NetscriptSleeve(Player, workerScript, helper);
const extra = NetscriptExtra(Player, workerScript, helper); const extra = NetscriptExtra(Player, workerScript);
const hacknet = NetscriptHacknet(Player, workerScript, helper); const hacknet = NetscriptHacknet(Player, workerScript, helper);
const functions = { const functions = {

@ -1,4 +1,3 @@
import { INetscriptHelper } from "./INetscriptHelper";
import { WorkerScript } from "../Netscript/WorkerScript"; import { WorkerScript } from "../Netscript/WorkerScript";
import { IPlayer } from "../PersonObjects/IPlayer"; import { IPlayer } from "../PersonObjects/IPlayer";
import { Exploit } from "../Exploits/Exploit"; import { Exploit } from "../Exploits/Exploit";
@ -11,7 +10,7 @@ export interface INetscriptExtra {
bypass(doc: Document): void; bypass(doc: Document): void;
} }
export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript, helper: INetscriptHelper): INetscriptExtra { export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript): INetscriptExtra {
return { return {
heart: { heart: {
// Easter egg function // Easter egg function

@ -77,7 +77,6 @@ export function init(this: IPlayer): void {
} }
export function prestigeAugmentation(this: IPlayer): void { export function prestigeAugmentation(this: IPlayer): void {
const homeComp = this.getHomeComputer();
this.currentServer = SpecialServers.Home; this.currentServer = SpecialServers.Home;
this.numPeopleKilled = 0; this.numPeopleKilled = 0;

@ -1,4 +1,4 @@
export async function loadThemes(monaco: any): Promise<void> { export async function loadThemes(monaco: { editor: any }): Promise<void> {
monaco.editor.defineTheme("monokai", { monaco.editor.defineTheme("monokai", {
base: "vs-dark", base: "vs-dark",
inherit: true, inherit: true,