From 5673708f76a9a7cdc6afa88499c4cba475ff2225 Mon Sep 17 00:00:00 2001 From: Expand-sys Date: Sun, 9 May 2021 10:19:26 +1000 Subject: [PATCH 1/4] fixed registration - wasnt using process.env.BANKAPIURL for the postuser function --- helpers/functions.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/helpers/functions.js b/helpers/functions.js index 6fe4000..479be83 100644 --- a/helpers/functions.js +++ b/helpers/functions.js @@ -3,8 +3,9 @@ const got = require('got'); async function postUser(name, password){ + console.log(process.env.BANKAPIURL) try{ - const {body} = await got.post('https://ccash.ryzerth.com/BankF/user',{ + const {body} = await got.post(process.env.BANKAPIURL+'BankF/user',{ json:{ name: name, init_pass: password @@ -16,9 +17,6 @@ async function postUser(name, password){ } catch(err){ console.log(err) } - - console.log(body) - return body.value } From ae24d51c9a13ee9a84cb847cc7871b5ee912ddc1 Mon Sep 17 00:00:00 2001 From: Expand-sys Date: Sun, 9 May 2021 10:26:04 +1000 Subject: [PATCH 2/4] removed vulnerable packages --- package-lock.json | 927 +--------------------------------------------- package.json | 4 +- 2 files changed, 2 insertions(+), 929 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6ba8419..3301176 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,6 @@ "license": "ISC", "dependencies": { "connect-flash": "^0.1.1", - "cote": "^1.0.2", "dotenv": "^8.2.0", "express": "^4.17.1", "express-messages": "^1.0.1", @@ -21,12 +20,11 @@ "mongoose": "^5.12.5", "path": "^0.12.7", "pug": "^3.0.2", - "socket.io": "^2.4.1", "url": "^0.11.0", "validator": "^13.5.2" }, "engines": { - "node": "15.x" + "node": "16.x" } }, "node_modules/@babel/helper-validator-identifier": { @@ -55,33 +53,6 @@ "to-fast-properties": "^2.0.0" } }, - "node_modules/@dashersw/axon": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@dashersw/axon/-/axon-2.0.5.tgz", - "integrity": "sha512-e7az6UOh/1JqLvzg2GPhP3n47QMQal3Qg2a2497JwY7dlbSKUg4dQmnRyKWNjFz0FHjranUjKvX6J6NAV3Sm/Q==", - "dependencies": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "configurable": "0.0.1", - "debug": "*", - "escape-regexp": "0.0.1" - }, - "engines": { - "node": ">= 0.11.8" - } - }, - "node_modules/@dashersw/node-discover": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@dashersw/node-discover/-/node-discover-1.0.4.tgz", - "integrity": "sha512-OblARM345ECaTSSFQcuWUl+7/uhOjhKBIA0G0CbOPbUzwF3cqBbl2R0E9tulnsLk3XB6Zpmja0TZIU5ClKF6LA==", - "dependencies": { - "redis": "^2.7.1", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=0.4.1 <0.5.0 || >=0.6.9" - } - }, "node_modules/@sindresorhus/is": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", @@ -181,34 +152,11 @@ "node": ">=0.4.0" } }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "node_modules/amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" - }, - "node_modules/amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", - "dependencies": { - "amp": "0.3.1" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -219,14 +167,6 @@ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } - }, "node_modules/babel-walk": { "version": "3.0.0-canary-5", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", @@ -238,27 +178,6 @@ "node": ">= 10.0.0" } }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, "node_modules/bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", @@ -268,11 +187,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, "node_modules/bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -359,14 +273,6 @@ "is-regex": "^1.0.3" } }, - "node_modules/charm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", - "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", - "dependencies": { - "inherits": "^2.0.1" - } - }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -375,34 +281,6 @@ "mimic-response": "^1.0.0" } }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "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==" - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "node_modules/configurable": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/configurable/-/configurable-0.0.1.tgz", - "integrity": "sha1-R9dbcntRtOuEwdra/j+CQDE4M7E=" - }, "node_modules/connect-flash": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz", @@ -457,25 +335,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "node_modules/cote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cote/-/cote-1.0.2.tgz", - "integrity": "sha512-2wj+dKvJcmLQqONRx47SyBBanIxwtbF/YlMhR4Iu+Zegjgmqpt4sen1X+f5zsqHFvj7PQAaH3sGNqg1OjpHoIg==", - "dependencies": { - "@dashersw/axon": "2.0.5", - "@dashersw/node-discover": "^1.0.4", - "charm": "1.0.2", - "colors": "1.4.0", - "eventemitter2": "6.0.0", - "lodash": "^4.17.20", - "portfinder": "1.0.25", - "socket.io": "^2.3.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=v10.0.0" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -551,11 +410,6 @@ "node": ">=8" } }, - "node_modules/double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -577,92 +431,11 @@ "once": "^1.4.0" } }, - "node_modules/engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz", - "integrity": "sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==", - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "node_modules/escape-regexp": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz", - "integrity": "sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ=" - }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -671,11 +444,6 @@ "node": ">= 0.6" } }, - "node_modules/eventemitter2": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.0.0.tgz", - "integrity": "sha512-ZuNWHD7S7IoikyEmx35vPU8H1W0L+oi644+4mSTg7nwXvBQpIwQL7DPjYUF0VMB0jPkNMo3MqD07E7MYrkFmjQ==" - }, "node_modules/express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -875,24 +643,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-binary2/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, "node_modules/has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", @@ -952,11 +702,6 @@ "node": ">=0.10.0" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -1167,22 +912,6 @@ "node": ">=4" } }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/mongodb": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", @@ -1382,16 +1111,6 @@ "node": ">=8" } }, - "node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -1419,32 +1138,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "node_modules/portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/portfinder/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -1680,32 +1373,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/redis": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", - "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", - "dependencies": { - "double-ended-queue": "^2.1.0-0", - "redis-commands": "^1.2.0", - "redis-parser": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "node_modules/redis-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", - "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regexp-clone": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", @@ -1815,113 +1482,6 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, - "node_modules/socket.io": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "node_modules/socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "dependencies": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "dependencies": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -1947,11 +1507,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -2034,14 +1589,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/validator": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", @@ -2085,43 +1632,10 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "node_modules/ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } }, "dependencies": { @@ -2145,27 +1659,6 @@ "to-fast-properties": "^2.0.0" } }, - "@dashersw/axon": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@dashersw/axon/-/axon-2.0.5.tgz", - "integrity": "sha512-e7az6UOh/1JqLvzg2GPhP3n47QMQal3Qg2a2497JwY7dlbSKUg4dQmnRyKWNjFz0FHjranUjKvX6J6NAV3Sm/Q==", - "requires": { - "amp": "~0.3.1", - "amp-message": "~0.1.1", - "configurable": "0.0.1", - "debug": "*", - "escape-regexp": "0.0.1" - } - }, - "@dashersw/node-discover": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@dashersw/node-discover/-/node-discover-1.0.4.tgz", - "integrity": "sha512-OblARM345ECaTSSFQcuWUl+7/uhOjhKBIA0G0CbOPbUzwF3cqBbl2R0E9tulnsLk3XB6Zpmja0TZIU5ClKF6LA==", - "requires": { - "redis": "^2.7.1", - "uuid": "^3.3.2" - } - }, "@sindresorhus/is": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", @@ -2247,34 +1740,11 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "amp": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", - "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=" - }, - "amp-message": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", - "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", - "requires": { - "amp": "0.3.1" - } - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -2285,14 +1755,6 @@ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, "babel-walk": { "version": "3.0.0-canary-5", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", @@ -2301,21 +1763,6 @@ "@babel/types": "^7.9.6" } }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, "bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", @@ -2325,11 +1772,6 @@ "safe-buffer": "^5.1.1" } }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -2398,14 +1840,6 @@ "is-regex": "^1.0.3" } }, - "charm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.2.tgz", - "integrity": "sha1-it02cVOm2aWBMxBSxAkJkdqZXjU=", - "requires": { - "inherits": "^2.0.1" - } - }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -2414,31 +1848,6 @@ "mimic-response": "^1.0.0" } }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "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==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "configurable": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/configurable/-/configurable-0.0.1.tgz", - "integrity": "sha1-R9dbcntRtOuEwdra/j+CQDE4M7E=" - }, "connect-flash": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz", @@ -2481,22 +1890,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "cote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cote/-/cote-1.0.2.tgz", - "integrity": "sha512-2wj+dKvJcmLQqONRx47SyBBanIxwtbF/YlMhR4Iu+Zegjgmqpt4sen1X+f5zsqHFvj7PQAaH3sGNqg1OjpHoIg==", - "requires": { - "@dashersw/axon": "2.0.5", - "@dashersw/node-discover": "^1.0.4", - "charm": "1.0.2", - "colors": "1.4.0", - "eventemitter2": "6.0.0", - "lodash": "^4.17.20", - "portfinder": "1.0.25", - "socket.io": "^2.3.0", - "uuid": "^3.3.3" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2550,11 +1943,6 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" }, - "double-ended-queue": { - "version": "2.1.0-0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", - "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2573,99 +1961,16 @@ "once": "^1.4.0" } }, - "engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "engine.io-client": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz", - "integrity": "sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==", - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "escape-regexp": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz", - "integrity": "sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ=" - }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "eventemitter2": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.0.0.tgz", - "integrity": "sha512-ZuNWHD7S7IoikyEmx35vPU8H1W0L+oi644+4mSTg7nwXvBQpIwQL7DPjYUF0VMB0jPkNMo3MqD07E7MYrkFmjQ==" - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -2824,26 +2129,6 @@ "function-bind": "^1.1.1" } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", @@ -2888,11 +2173,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -3058,19 +2338,6 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, "mongodb": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", @@ -3199,16 +2466,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz", "integrity": "sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==" }, - "parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -3233,31 +2490,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -3466,26 +2698,6 @@ "util-deprecate": "~1.0.1" } }, - "redis": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", - "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", - "requires": { - "double-ended-queue": "^2.1.0-0", - "redis-commands": "^1.2.0", - "redis-parser": "^2.6.0" - } - }, - "redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "redis-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", - "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=" - }, "regexp-clone": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", @@ -3585,117 +2797,6 @@ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, - "socket.io": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - } - } - }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -3718,11 +2819,6 @@ "safe-buffer": "~5.1.0" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -3787,11 +2883,6 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, "validator": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", @@ -3823,26 +2914,10 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", - "requires": {} - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" } } } diff --git a/package.json b/package.json index 0cdb9ee..94bd68a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "dependencies": { "connect-flash": "^0.1.1", - "cote": "^1.0.2", "dotenv": "^8.2.0", "express": "^4.17.1", "express-messages": "^1.0.1", @@ -13,7 +12,6 @@ "mongoose": "^5.12.5", "path": "^0.12.7", "pug": "^3.0.2", - "socket.io": "^2.4.1", "url": "^0.11.0", "validator": "^13.5.2" }, @@ -35,6 +33,6 @@ }, "homepage": "https://github.com/Expand-sys/ccashfrontend#readme", "engines": { - "node": "15.x" + "node": "16.x" } } From 14561307b96ea3d62dc3f0787b9a15cad0b6f7f3 Mon Sep 17 00:00:00 2001 From: Expand-sys Date: Sun, 9 May 2021 10:29:13 +1000 Subject: [PATCH 3/4] linted som shiz --- config/admin.js | 14 +- config/auth.js | 12 +- helpers/functions.js | 35 +-- index.js | 685 ++++++++++++++++++++++-------------------- routes/admin.js | 387 ++++++++++++------------ routes/marketplace.js | 328 ++++++++++---------- routes/settings.js | 91 +++--- schemas/inventory.js | 134 +++++---- schemas/item.js | 31 +- schemas/listing.js | 41 ++- schemas/log.js | 25 +- 11 files changed, 903 insertions(+), 880 deletions(-) diff --git a/config/admin.js b/config/admin.js index 7f597eb..3fccbc1 100644 --- a/config/admin.js +++ b/config/admin.js @@ -1,12 +1,12 @@ module.exports = { - checkAdmin : function(req,res, next) { - if(req.session.admin != false) { - if(req.session.admin != undefined){ + checkAdmin: function (req, res, next) { + if (req.session.admin != false) { + if (req.session.admin != undefined) { return next(); } } - req.flash('error_msg' , 'admins only'); - res.redirect('/'); -} -} + req.flash("error_msg", "admins only"); + res.redirect("/"); + }, +}; diff --git a/config/auth.js b/config/auth.js index 57e806a..b0b2565 100644 --- a/config/auth.js +++ b/config/auth.js @@ -1,9 +1,9 @@ module.exports = { - ensureAuthenticated : function(req,res,next) { - if(req.session.user != undefined) { + ensureAuthenticated: function (req, res, next) { + if (req.session.user != undefined) { return next(); } - req.flash('error_msg' , 'please login to view this resource'); - res.redirect('/login'); -} -} + req.flash("error_msg", "please login to view this resource"); + res.redirect("/login"); + }, +}; diff --git a/helpers/functions.js b/helpers/functions.js index 479be83..bbadebc 100644 --- a/helpers/functions.js +++ b/helpers/functions.js @@ -1,24 +1,19 @@ -const got = require('got'); +const got = require("got"); - - -async function postUser(name, password){ - console.log(process.env.BANKAPIURL) - try{ - const {body} = await got.post(process.env.BANKAPIURL+'BankF/user',{ - json:{ - name: name, - init_pass: password - }, - responseType:'json' - - }) - return body - } catch(err){ - console.log(err) +async function postUser(name, password) { + console.log(process.env.BANKAPIURL); + try { + const { body } = await got.post(process.env.BANKAPIURL + "BankF/user", { + json: { + name: name, + init_pass: password, + }, + responseType: "json", + }); + return body; + } catch (err) { + console.log(err); } } - - -module.exports = { postUser } +module.exports = { postUser }; diff --git a/index.js b/index.js index 9b1320c..0c365ea 100644 --- a/index.js +++ b/index.js @@ -1,449 +1,476 @@ -const express = require('express'); -const path = require('path'); -const https = require('https') -const got = require('got') -const bodyParser = require('body-parser') -const expressValidator = require('express-validator'); -const flash = require ('connect-flash'); -const session = require('express-session'); -const {postUser} = require('./helpers/functions.js') -const {ensureAuthenticated} = require("./config/auth.js") +const express = require("express"); +const path = require("path"); +const https = require("https"); +const got = require("got"); +const bodyParser = require("body-parser"); +const expressValidator = require("express-validator"); +const flash = require("connect-flash"); +const session = require("express-session"); +const { postUser } = require("./helpers/functions.js"); +const { ensureAuthenticated } = require("./config/auth.js"); const app = express(); -const MemoryStore = require('memorystore')(session) -const url = require('url') -const dotenv = require('dotenv'); -const fs = require('fs'); -let Log = require('./schemas/log.js'); -const mongoose = require('mongoose') +const MemoryStore = require("memorystore")(session); +const url = require("url"); +const dotenv = require("dotenv"); +const fs = require("fs"); +let Log = require("./schemas/log.js"); +const mongoose = require("mongoose"); dotenv.config(); -//mongodb connection - - - -app.set('views', path.join(__dirname, 'views')); -app.set('view engine', 'pug'); +app.set("views", path.join(__dirname, "views")); +app.set("view engine", "pug"); app.use(flash()); -app.use(require('connect-flash')()); -app.use(express.static(path.join(__dirname, 'public'))); -app.use(express.json()) -app.use(bodyParser.urlencoded({ - extended: true -})); -app.use(function(req, res, next) { - res.locals.messages = require('express-messages')(req, res); +app.use(require("connect-flash")()); +app.use(express.static(path.join(__dirname, "public"))); +app.use(express.json()); +app.use( + bodyParser.urlencoded({ + extended: true, + }) +); +app.use(function (req, res, next) { + res.locals.messages = require("express-messages")(req, res); next(); }); -app.set('trust proxy', 1) // trust first proxy -let secure = false -if(process.env.SECURE=='true'||process.env.SECURE=='True'||process.env.SECURE=='TRUE'){secure = true} -let setup = false -if(process.env.SETUP=='true'||process.env.SETUP=='True'||process.env.SETUP=='TRUE'){setup=true} -app.use(session({ - secret: 'fuck shit cunt', - resave: true, - store: new MemoryStore({ - checkPeriod: 86400000 // prune expired entries every 24h +app.set("trust proxy", 1); // trust first proxy +let secure = false; +if ( + process.env.SECURE == "true" || + process.env.SECURE == "True" || + process.env.SECURE == "TRUE" +) { + secure = true; +} +let setup = false; +if ( + process.env.SETUP == "true" || + process.env.SETUP == "True" || + process.env.SETUP == "TRUE" +) { + setup = true; +} +app.use( + session({ + secret: "fuck shit cunt", + resave: true, + store: new MemoryStore({ + checkPeriod: 86400000, // prune expired entries every 24h }), - saveUninitialized: true, - cookie: { secure: secure, maxAge: 86400000 }, -})) -app.use(expressValidator({ - errorFormatter: function(param, msg, value) { - var namespace = param.split('.') - , root = namespace.shift() - , formParam = root; + saveUninitialized: true, + cookie: { secure: secure, maxAge: 86400000 }, + }) +); +app.use( + expressValidator({ + errorFormatter: function (param, msg, value) { + var namespace = param.split("."), + root = namespace.shift(), + formParam = root; - while(namespace.length){ - formParam += '[' + namespace.shift() + ']'; - } - return{ - param : formParam, - msg : msg, - value : value + while (namespace.length) { + formParam += "[" + namespace.shift() + "]"; + } + return { + param: formParam, + msg: msg, + value: value, }; + }, + }) +); +app.post("/setup", async function (req, res) { + console.log(req.body); + let { mongo, url, banksecure, marketplace } = req.body; + process.env.MONGO = mongo; + process.env.MARKETPLACE = false; + if (marketplace) { + process.env.MARKETPLACE = true; } -})); -app.post('/setup', async function(req, res){ - - - console.log(req.body) - let {mongo, url, banksecure, marketplace} = req.body; - process.env.MONGO = mongo - process.env.MARKETPLACE = false - if(marketplace){ - process.env.MARKETPLACE = true + if (!url.endsWith("/")) { + url = url + "/"; } - if(!url.endsWith('/')){ - url=url+"/" + process.env.BANKAPIURL = url; + process.env.SECURE = false; + if (!banksecure) { + banksecure = false; + process.env.SECURE = false; } - process.env.BANKAPIURL =url - process.env.SECURE = false - if(!banksecure){ - banksecure = false - process.env.SECURE = false - } - process.env.SETUP = true - fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true') + process.env.SETUP = true; + fs.writeFileSync( + ".env", + "BANKAPIURL=" + + process.env.BANKAPIURL + + "\n" + + "SECURE=" + + process.env.SECURE + + "\n" + + "MARKETPLACE=" + + process.env.MARKETPLACE + + "\n" + + "MONGO=" + + process.env.MONGO + + "\nSETUP=true" + ); dotenv.config(); - if(process.env.MARKETPLACE){ - mongoose.connect(process.env.MONGO,{ + if (process.env.MARKETPLACE) { + mongoose.connect(process.env.MONGO, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true, }); let db = mongoose.connection; - db.once('open', function(){ - console.log('Connected to MongoDB'); - }) + db.once("open", function () { + console.log("Connected to MongoDB"); + }); //check for DB errors - db.on('error', function(err){ + db.on("error", function (err) { console.log(err); }); } - res.redirect('/') -}) -app.get('/', async function(req, res){ - if(!process.env.SETUP){ - res.render('setup') - }else{ - + res.redirect("/"); +}); +app.get("/", async function (req, res) { + if (!process.env.SETUP) { + res.render("setup"); + } else { let checkalive; - try{ - checkalive = await got(process.env.BANKAPIURL+'BankF/help') - } catch(err){ - console.log(err) - + try { + checkalive = await got(process.env.BANKAPIURL + "BankF/help"); + } catch (err) { + console.log(err); } let alive = false; - try{ - if(checkalive.body){ - alive = true + try { + if (checkalive.body) { + alive = true; } - }catch(err){ - console.log(err) + } catch (err) { + console.log(err); } - res.render('index', { + res.render("index", { user: req.session.user, admin: req.session.admin, alive: alive, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } }); -app.get('/BankF', ensureAuthenticated, async function(req, res){ +app.get("/BankF", ensureAuthenticated, async function (req, res) { let successes = []; - if(req.session.sucess == true){ - successes.push({ msg: "Transfer successful"}) + if (req.session.sucess == true) { + successes.push({ msg: "Transfer successful" }); } - let admin - try{ + let admin; + try { admin = req.session.admin; - }catch(err){ - console.log(err) + } catch (err) { + console.log(err); } - let balance = 0 - try{ - balance = await got(process.env.BANKAPIURL+'BankF/'+req.session.user+'/bal') - balance = JSON.parse(balance.body) - } catch(err){ - console.log(err) + let balance = 0; + try { + balance = await got( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal" + ); + balance = JSON.parse(balance.body); + } catch (err) { + console.log(err); } - let logsent - let logrec - console.log('start '+Date.now()) - try{ - logsent = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + let logsent; + let logrec; + console.log("start " + Date.now()); + try { + logsent = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - try{ - logrec = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + try { + logrec = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - console.log(logrec.timings) - console.log("query finished "+Date.now()) - logsent = logsent.body.value + console.log(logrec.timings); + console.log("query finished " + Date.now()); + logsent = logsent.body.value; - if(logsent == 1 || logsent == -1 || logsent == null){ - logsent = undefined - }else{ - logsent = await logsent.filter(({ from }) => from === req.session.user) + if (logsent == 1 || logsent == -1 || logsent == null) { + logsent = undefined; + } else { + logsent = await logsent.filter(({ from }) => from === req.session.user); } - logrec = logrec.body.value - if(logrec === 1 || logrec === -1 || logrec === null){ - logrec = undefined - } else{ - logrec = await logrec.filter(({ to }) => to === req.session.user) + logrec = logrec.body.value; + if (logrec === 1 || logrec === -1 || logrec === null) { + logrec = undefined; + } else { + logrec = await logrec.filter(({ to }) => to === req.session.user); } - for( i in logrec){ - logrec[i].time = Date(logrec[i].time) + for (i in logrec) { + logrec[i].time = Date(logrec[i].time); } - for( i in logsent){ - logsent[i].time = Date(logsent[i].time) + for (i in logsent) { + logsent[i].time = Date(logsent[i].time); } - console.log("begin render " + Date.now()) - res.render('bankf',{ - logrec:logrec, - logsent:logsent, + console.log("begin render " + Date.now()); + res.render("bankf", { + logrec: logrec, + logsent: logsent, user: req.session.user, balance: balance.value, user: req.session.user, admin: req.session.admin, sucesses: successes, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); }); - -app.post('/sendfunds', async function(req, res){ +app.post("/sendfunds", async function (req, res) { let balance = 0; - try{ - balance = await got(process.env.BANKAPIURL+'BankF/'+req.session.user+'/bal') - balance = JSON.parse(balance.body) - } catch(err){ - console.log(err) + try { + balance = await got( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal" + ); + balance = JSON.parse(balance.body); + } catch (err) { + console.log(err); } - let {amount, name, senderpass} = req.body - let a_name = req.session.user + let { amount, name, senderpass } = req.body; + let a_name = req.session.user; let successes = []; let errors = []; - let result = {} - result = await got.post(process.env.BANKAPIURL+'BankF/sendfunds',{ - json:{ + let result = {}; + result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", { + json: { a_name: a_name, b_name: name, amount: parseInt(amount), - attempt: senderpass + attempt: senderpass, }, - responseType:'json' - }) - if(result.body.value == true || result.body.value){ + responseType: "json", + }); + if (result.body.value == true || result.body.value) { req.session.success = true; //post details - res.redirect('/BankF') + res.redirect("/BankF"); } else { - errors.push({msg: "Transfer Unsuccessful"}) + errors.push({ msg: "Transfer Unsuccessful" }); - let logsent - let logrec + let logsent; + let logrec; - try{ - logsent = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + try { + logsent = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - try{ - logrec = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + try { + logrec = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - logsent = logsent.body.value - console.log(logsent) - if(logsent == 1|| logsent == -1 || logsent == null){ - logsent = undefined - }else{ - logsent = await logsent.filter(({ from }) => from === req.session.user) + logsent = logsent.body.value; + console.log(logsent); + if (logsent == 1 || logsent == -1 || logsent == null) { + logsent = undefined; + } else { + logsent = await logsent.filter(({ from }) => from === req.session.user); } - logrec = logrec.body.value - if(logrec == 1 || logrec == -1 || logrec == null){ - logrec = undefined - } else{ - logrec = await logrec.filter(({ to }) => to === req.session.user) + logrec = logrec.body.value; + if (logrec == 1 || logrec == -1 || logrec == null) { + logrec = undefined; + } else { + logrec = await logrec.filter(({ to }) => to === req.session.user); } - for( i in logrec){ - let d = new Date(logrec[i].time) - logrec[i].time = d + for (i in logrec) { + let d = new Date(logrec[i].time); + logrec[i].time = d; } - for( i in logsent){ - let d = new Date(logsent[i].time) - logsent[i].time = d + for (i in logsent) { + let d = new Date(logsent[i].time); + logsent[i].time = d; } - res.render("bankf",{ - - logsent:logsent, - logrec:logrec, - errors:errors, + res.render("bankf", { + logsent: logsent, + logrec: logrec, + errors: errors, successes: successes, - balance:balance.value, + balance: balance.value, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } -}) +}); -app.post('/register', async function(req, res){ - var {name, password, password2} = req.body; +app.post("/register", async function (req, res) { + var { name, password, password2 } = req.body; - let checkuser = await got(process.env.BANKAPIURL+'BankF/contains/'+name) - checkuser = JSON.parse(checkuser.body).value + let checkuser = await got(process.env.BANKAPIURL + "BankF/contains/" + name); + checkuser = JSON.parse(checkuser.body).value; let errors = []; let successes = []; - if(checkuser == false){ - if(!name || !password || !password2) { - errors.push({msg : "please fill in all fields"}); + if (checkuser == false) { + if (!name || !password || !password2) { + errors.push({ msg: "please fill in all fields" }); } - if(password !== password2) { - errors.push({msg : "Passwords don't match"}); + if (password !== password2) { + errors.push({ msg: "Passwords don't match" }); } - if(password.length < 6 ) { - errors.push({msg : 'Password must be at least 6 characters'}) + if (password.length < 6) { + errors.push({ msg: "Password must be at least 6 characters" }); } - if(errors[0]){ - res.render('register', { - errors:errors, - marketplace: process.env.MARKETPLACE - }) + if (errors[0]) { + res.render("register", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); } else { - if(postUser(name, password)){ - successes.push({msg:"User Registered Please Log In"}) - res.render('login',{ - errors:errors, + if (postUser(name, password)) { + successes.push({ msg: "User Registered Please Log In" }); + res.render("login", { + errors: errors, successes: successes, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } } } else { - errors.push({msg: "User already exists"}) - res.render('register',{ - errors:errors, - marketplace: process.env.MARKETPLACE - }) + errors.push({ msg: "User already exists" }); + res.render("register", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); } -}) +}); -app.post('/login', async function(req, res){ - if(req.session.user){ - res.redirect("/") +app.post("/login", async function (req, res) { + if (req.session.user) { + res.redirect("/"); } - let {name,password} = req.body + let { name, password } = req.body; let adminTest; let errors = []; - try{ - adminTest = await got.post(process.env.BANKAPIURL+'BankF/admin/vpass',{ - json:{ + try { + adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", { + json: { attempt: password, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - req.session.password = password - if(adminTest.body.value == undefined){ - res.redirect('/') - }else{ - req.session.admin = adminTest.body.value - req.session.adminp = password - let verified - try{ - verified = await got.post(process.env.BANKAPIURL+'BankF/vpass', { - json:{ + req.session.password = password; + if (adminTest.body.value == undefined) { + res.redirect("/"); + } else { + req.session.admin = adminTest.body.value; + req.session.adminp = password; + let verified; + try { + verified = await got.post(process.env.BANKAPIURL + "BankF/vpass", { + json: { name: name, - attempt: password + attempt: password, }, - responseType:'json' - - }) - - - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } finally { - console.log(verified.body.value) - if(verified.body.value == 0){ - errors.push({msg: 'Password wrong'}) - res.render('login',{ - errors:errors, - marketplace: process.env.MARKETPLACE - }) - }else if(verified.body.value == 1){ + console.log(verified.body.value); + if (verified.body.value == 0) { + errors.push({ msg: "Password wrong" }); + res.render("login", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); + } else if (verified.body.value == 1) { req.session.user = name; - req.session.password = password - res.redirect('/BankF') + req.session.password = password; + res.redirect("/BankF"); } else { - errors.push({msg: 'User not found'}) - res.render('login',{ - errors:errors, - marketplace: process.env.MARKETPLACE - }) + errors.push({ msg: "User not found" }); + res.render("login", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); } } - } - //res.redirect('/login') -}) - - -let admin = require('./routes/admin'); -app.use('/admin', admin); - -let settings = require('./routes/settings'); -app.use('/settings', settings) - -let marketplace = require('./routes/marketplace') -app.use('/marketplace', marketplace) - - -app.get('/logout', function(req, res){ - req.session.regenerate(function(err) { - res.render('login', { - marketplace: process.env.MARKETPLACE - }) - }) }); +let admin = require("./routes/admin"); +app.use("/admin", admin); -app.get('/login', function(req, res){ - req.session.regenerate(function(err) { - res.render('login', { +let settings = require("./routes/settings"); +app.use("/settings", settings); + +let marketplace = require("./routes/marketplace"); +app.use("/marketplace", marketplace); + +app.get("/logout", function (req, res) { + req.session.regenerate(function (err) { + res.render("login", { + marketplace: process.env.MARKETPLACE, + }); + }); +}); + +app.get("/login", function (req, res) { + req.session.regenerate(function (err) { + res.render("login", { user: req.session.user, - marketplace: process.env.MARKETPLACE - }) - }) + marketplace: process.env.MARKETPLACE, + }); + }); }); -app.get('/register', function(req, res){ - res.render('register', { +app.get("/register", function (req, res) { + res.render("register", { user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) - + marketplace: process.env.MARKETPLACE, + }); }); - - -app.listen(process.env.PORT || 3000, function(){ - console.log('Server started on port 3000...'); +app.listen(process.env.PORT || 3000, function () { + console.log("Server started on port 3000..."); }); diff --git a/routes/admin.js b/routes/admin.js index c5672f2..e7451f8 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -1,268 +1,285 @@ -const express = require('express'); +const express = require("express"); const router = express.Router(); -const path = require('path'); -const {ensureAuthenticated} = require("../config/auth.js") -const {checkAdmin} = require ("../config/admin.js") -const pug = require('pug'); -const flash = require ('connect-flash'); -const expressValidator = require('express-validator'); -const session = require('express-session'); -const {postUser} = require('../helpers/functions.js') -const got = require('got') -const MemoryStore = require('memorystore')(session) -const fs = require('fs'); -const mongoose = require('mongoose') -console.log('Sen was here') +const path = require("path"); +const { ensureAuthenticated } = require("../config/auth.js"); +const { checkAdmin } = require("../config/admin.js"); +const pug = require("pug"); +const flash = require("connect-flash"); +const expressValidator = require("express-validator"); +const session = require("express-session"); +const { postUser } = require("../helpers/functions.js"); +const got = require("got"); +const MemoryStore = require("memorystore")(session); +const fs = require("fs"); +const mongoose = require("mongoose"); +console.log("Sen was here"); - - - - -function mongo(){ - if(process.env.MONGO){ - console.log(process.env.MONGO) - mongoose.connect(process.env.MONGO,{ +function mongo() { + if (process.env.MONGO) { + console.log(process.env.MONGO); + mongoose.connect(process.env.MONGO, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true, }); let db = mongoose.connection; - db.once('open', function(){ - console.log('Connected to MongoDB'); - }) + db.once("open", function () { + console.log("Connected to MongoDB"); + }); //check for DB errors - db.on('error', function(err){ + db.on("error", function (err) { console.log(err); }); } } - - - - - -router.get('/', checkAdmin, function(req, res){ - res.render('adminsettings', { +router.get("/", checkAdmin, function (req, res) { + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) - + marketplace: process.env.MARKETPLACE, + }); }); - -router.post('/user',checkAdmin , async function(req,res){ - let {name, init_pass, init_bal, password2} = req.body - let contains = await got(process.env.BANKAPIURL+'BankF/contains/'+name) - contains = JSON.parse(contains.body).value +router.post("/user", checkAdmin, async function (req, res) { + let { name, init_pass, init_bal, password2 } = req.body; + let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name); + contains = JSON.parse(contains.body).value; let errors = []; let successes = []; - if(contains == true){ - errors.push({msg: 'User already exists'}) - res.render('adminsettings',{ - errors:errors - }) - }else { - if(!name || !init_pass || !init_bal || !password2) { - errors.push({msg : "please fill in all fields"}); + if (contains == true) { + errors.push({ msg: "User already exists" }); + res.render("adminsettings", { + errors: errors, + }); + } else { + if (!name || !init_pass || !init_bal || !password2) { + errors.push({ msg: "please fill in all fields" }); } //check if match - if(init_pass !== password2) { - errors.push({msg : "Passwords don't match"}); + if (init_pass !== password2) { + errors.push({ msg: "Passwords don't match" }); } //check if password is more than 6 characters - if(init_pass.length < 6 ) { - errors.push({msg : 'Password must be at least 6 characters'}) + if (init_pass.length < 6) { + errors.push({ msg: "Password must be at least 6 characters" }); } let post; let successes = []; - try{ - post = await got.post(process.env.BANKAPIURL+'BankF/admin/user',{ - json:{ + try { + post = await got.post(process.env.BANKAPIURL + "BankF/admin/user", { + json: { name: name, attempt: req.session.adminp, init_bal: parseInt(init_bal), init_pass: init_pass, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - if(post.body.value == true){ - successes.push({msg: "Account Creation Successful"}) + if (post.body.value == true) { + successes.push({ msg: "Account Creation Successful" }); } } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, - marketplace: process.env.MARKETPLACE - }) -}) + marketplace: process.env.MARKETPLACE, + }); +}); - -router.post('/baluser',checkAdmin , async function(req,res){ - let {name} = req.body +router.post("/baluser", checkAdmin, async function (req, res) { + let { name } = req.body; let balance; let successes = []; let errors = []; - try{ - balance = await got(process.env.BANKAPIURL+'BankF/'+name+'/bal') - balance = JSON.parse(balance.body) - } catch(err){ - console.log(err) + try { + balance = await got(process.env.BANKAPIURL + "BankF/" + name + "/bal"); + balance = JSON.parse(balance.body); + } catch (err) { + console.log(err); } - if(balance.value == -1 || balance.value == undefined){ - errors.push({msg: "User not found"}) - }else{ - successes.push({msg: "User: "+name+" has "+balance.value+" monies"}) + if (balance.value == -1 || balance.value == undefined) { + errors.push({ msg: "User not found" }); + } else { + successes.push({ + msg: "User: " + name + " has " + balance.value + " monies", + }); } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, errors: errors, - marketplace: process.env.MARKETPLACE - }) -}) + marketplace: process.env.MARKETPLACE, + }); +}); - -router.post('/bal',checkAdmin , async function(req,res){ - let {name, amount} = req.body +router.post("/bal", checkAdmin, async function (req, res) { + let { name, amount } = req.body; let patch; let successes = []; - try{ - patch = await got.patch(process.env.BANKAPIURL+'BankF/admin/'+name+'/bal',{ - json:{ - name: name, - attempt: req.session.adminp, - amount: parseInt(amount), - }, - responseType:'json' - }) - } catch(err){ - console.log(err) + try { + patch = await got.patch( + process.env.BANKAPIURL + "BankF/admin/" + name + "/bal", + { + json: { + name: name, + attempt: req.session.adminp, + amount: parseInt(amount), + }, + responseType: "json", + } + ); + } catch (err) { + console.log(err); } - if(patch.body.value == true){ - successes.push({msg: "Change Funds Successful"}) + if (patch.body.value == true) { + successes.push({ msg: "Change Funds Successful" }); } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, - marketplace: process.env.MARKETPLACE - }) -}) -router.post('/userdelete', checkAdmin, async function(req,res){ - let {name, attempt} = req.body - console.log(name) - let contains = await got(process.env.BANKAPIURL+'BankF/contains/'+name) - contains = JSON.parse(contains.body).value + marketplace: process.env.MARKETPLACE, + }); +}); +router.post("/userdelete", checkAdmin, async function (req, res) { + let { name, attempt } = req.body; + console.log(name); + let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name); + contains = JSON.parse(contains.body).value; let deleteUser; let successes = []; let errors = []; - if(attempt != req.session.adminp){ - errors.push({msg:"Wrong Admin Password"}) + if (attempt != req.session.adminp) { + errors.push({ msg: "Wrong Admin Password" }); } - console.log(contains) - if(contains == true){ - deleteUser = got.delete(process.env.BANKAPIURL+'BankF/admin/user',{ - json:{ + console.log(contains); + if (contains == true) { + deleteUser = got.delete(process.env.BANKAPIURL + "BankF/admin/user", { + json: { name: name, attempt: attempt, }, - responseType:'json' - }) - successes.push({msg: "User Deletion Successful"}) - } else{ - errors.push({msg: "User Deletion Failed, User Not Found"}) + responseType: "json", + }); + successes.push({ msg: "User Deletion Successful" }); + } else { + errors.push({ msg: "User Deletion Failed, User Not Found" }); } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, errors: errors, - marketplace: process.env.MARKETPLACE - }) -}) -router.post('/destroyallsessions', checkAdmin, async function(req,res) { - let {attempt} = req.body; - let adminTest - let errors = [] - try{ - adminTest = await got.post(process.env.BANKAPIURL+'BankF/admin/vpass',{ - json:{ + marketplace: process.env.MARKETPLACE, + }); +}); +router.post("/destroyallsessions", checkAdmin, async function (req, res) { + let { attempt } = req.body; + let adminTest; + let errors = []; + try { + adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", { + json: { attempt: attempt, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - console.log(adminTest.body.value) - if(adminTest){ - req.sessionStore.clear(function(err){ - console.log(err) - }) - res.redirect('/') - }else{ - errors.push({msg: "failed admin password check"}) - res.render("adminsettings",{ + console.log(adminTest.body.value); + if (adminTest) { + req.sessionStore.clear(function (err) { + console.log(err); + }); + res.redirect("/"); + } else { + errors.push({ msg: "failed admin password check" }); + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, errors: errors, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); + } +}); + +router.post("/changebackend", checkAdmin, async function (req, res) { + let { url } = req.body; + if (!url.endsWith("/")) { + url = url + "/"; + } + process.env.BANKAPIURL = url; + fs.writeFileSync( + ".env", + "BANKAPIURL=" + + process.env.BANKAPIURL + + "\n" + + "SECURE=" + + process.env.SECURE + + "\n" + + "MARKETPLACE=" + + process.env.MARKETPLACE + + "\n" + + "MONGO=" + + process.env.MONGO + + "\nSETUP=true" + ); + res.redirect("../"); +}); +router.post("/mongodb", checkAdmin, async function (req, res) { + let { url } = req.body; + process.env.MONGO = url; + + if (process.env.MONGO.length < 3) { + process.env.MARKETPLACE = false; + console.log("false"); + } else { + process.env.MARKETPLACE = true; + console.log("true"); + } + fs.writeFileSync( + ".env", + "BANKAPIURL=" + + process.env.BANKAPIURL + + "\n" + + "SECURE=" + + process.env.SECURE + + "\n" + + "MARKETPLACE=" + + process.env.MARKETPLACE + + "\n" + + "MONGO=" + + process.env.MONGO + + "\nSETUP=true" + ); + try { + mongo(); + } catch (e) { + console.log(e); } -}) - - - - -router.post('/changebackend', checkAdmin, async function(req,res){ - let {url} = req.body; - if(!url.endsWith('/')){ - url = url+'/' - } - process.env.BANKAPIURL = url - fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true') - res.redirect('../') -}) -router.post('/mongodb', checkAdmin, async function(req,res){ - let {url} = req.body; - process.env.MONGO = url - - if(process.env.MONGO.length < 3){ - process.env.MARKETPLACE = false - console.log("false") - }else { process.env.MARKETPLACE = true;console.log("true")} - fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true') - try{ - mongo() - }catch(e){ - console.log(e) - } - - res.redirect('../') -}) -router.post('/close', checkAdmin, async function(req,res){ - let {attempt} = req.body; + res.redirect("../"); +}); +router.post("/close", checkAdmin, async function (req, res) { + let { attempt } = req.body; let close; - close = got.post(process.env.BANKAPIURL+'BankF/admin/close', { - json:{ + close = got.post(process.env.BANKAPIURL + "BankF/admin/close", { + json: { attempt: attempt, }, - responseType:'json' - }) - res.redirect('../') -}) - - + responseType: "json", + }); + res.redirect("../"); +}); module.exports = router; diff --git a/routes/marketplace.js b/routes/marketplace.js index 3f8666c..b1eb76a 100644 --- a/routes/marketplace.js +++ b/routes/marketplace.js @@ -1,224 +1,213 @@ -const express = require('express') -const router = express.Router() -const bodyParser = require('body-parser') -const session = require('express-session'); -const mongoose = require('mongoose') -const dotenv = require('dotenv'); -const got = require('got'); -const {ensureAuthenticated} = require("../config/auth.js") -let db +const express = require("express"); +const router = express.Router(); +const bodyParser = require("body-parser"); +const session = require("express-session"); +const mongoose = require("mongoose"); +const dotenv = require("dotenv"); +const got = require("got"); +const { ensureAuthenticated } = require("../config/auth.js"); +let db; - - -function mongo(){ - if(process.env.MONGO){ - console.log(process.env.MONGO) - mongoose.connect(process.env.MONGO,{ +function mongo() { + if (process.env.MONGO) { + console.log(process.env.MONGO); + mongoose.connect(process.env.MONGO, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true, }); let db = mongoose.connection; - db.once('open', function(){ - console.log('Connected to MongoDB'); - }) + db.once("open", function () { + console.log("Connected to MongoDB"); + }); //check for DB errors - db.on('error', function(err){ + db.on("error", function (err) { console.log(err); }); } } -mongo() +mongo(); +let Item = require("../schemas/item"); +let Listing = require("../schemas/listing"); +let Inventory = require("../schemas/inventory"); -let Item = require('../schemas/item') -let Listing = require('../schemas/listing') -let Inventory = require('../schemas/inventory') - -router.all('*', function(req, res, next) { - console.log(req.method, req.url); - next(); +router.all("*", function (req, res, next) { + console.log(req.method, req.url); + next(); }); -router.get('/', function(req, res) { - let columns = [0,1,2,3] - Item.find({}, function(err, items){ - if(err){ +router.get("/", function (req, res) { + let columns = [0, 1, 2, 3]; + Item.find({}, function (err, items) { + if (err) { console.log(err); } else { - res.render('marketplace', { - columns:columns, + res.render("marketplace", { + columns: columns, items: items, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE + marketplace: process.env.MARKETPLACE, }); } - }) + }); }); - -router.get('/marketdash', ensureAuthenticated, function(req,res){ - Inventory.findOne({user:req.session.user}, async function(err, inventory){ - if(!inventory){ - let newinv = new Inventory; - newinv.user = req.session.user - newinv.save(function(err){ - if(err){ +router.get("/marketdash", ensureAuthenticated, function (req, res) { + Inventory.findOne({ user: req.session.user }, async function ( + err, + inventory + ) { + if (!inventory) { + let newinv = new Inventory(); + newinv.user = req.session.user; + newinv.save(function (err) { + if (err) { console.log(err); return; - } else{ - console.log("created new inventory for "+req.session.user) + } else { + console.log("created new inventory for " + req.session.user); } - }) + }); } - res.render('marketdash',{ - user:req.session.user, - admin:req.session.admin, - inventory:inventory, - marketplace: process.env.MARKETPLACE - }) - }) + res.render("marketdash", { + user: req.session.user, + admin: req.session.admin, + inventory: inventory, + marketplace: process.env.MARKETPLACE, + }); + }); +}); +router.get("/:id", function (req, res) { + Item.findById(req.params.id, function (err, item) { + Listing.find({ foreignid: req.params.id }, function (err, listings) { + console.log(listings); -}) - -router.get('/:id',function(req, res){ - Item.findById(req.params.id, function(err, item){ - Listing.find({foreignid: req.params.id}, function(err, listings){ - console.log(listings) - - - res.render('item', { + res.render("item", { listings: listings, - user:req.session.user, - admin:req.session.admin, - item:item, - marketplace: process.env.MARKETPLACE + user: req.session.user, + admin: req.session.admin, + item: item, + marketplace: process.env.MARKETPLACE, }); - }) - }); -}) - -router.get('/:id/list',ensureAuthenticated, function(req,res){ - Item.findById(req.params.id, function(err, item){ - res.render('itemlist', { - user:req.session.user, - admin:req.session.admin, - item:item, - marketplace: process.env.MARKETPLACE }); }); -}) -router.get('/:id/buy',ensureAuthenticated, function(req,res){ - Listing.find({foreignid: req.params.id}, function(err, listings){ - console.log(listings) +}); - - res.render('itembuy', { - listings:listings, - user:req.session.user, - admin:req.session.admin, - marketplace: process.env.MARKETPLACE +router.get("/:id/list", ensureAuthenticated, function (req, res) { + Item.findById(req.params.id, function (err, item) { + res.render("itemlist", { + user: req.session.user, + admin: req.session.admin, + item: item, + marketplace: process.env.MARKETPLACE, }); }); -}) +}); +router.get("/:id/buy", ensureAuthenticated, function (req, res) { + Listing.find({ foreignid: req.params.id }, function (err, listings) { + console.log(listings); + res.render("itembuy", { + listings: listings, + user: req.session.user, + admin: req.session.admin, + marketplace: process.env.MARKETPLACE, + }); + }); +}); - - - - -router.post('/:id/list',ensureAuthenticated, async function(req,res){ - let body = req.body - let item = JSON.parse(req.body.item) - console.log(item) +router.post("/:id/list", ensureAuthenticated, async function (req, res) { + let body = req.body; + let item = JSON.parse(req.body.item); + console.log(item); let listing = new Listing(); - listing.itemId = item.itemId - listing.meta = item.meta - listing.name = item.name - listing.foreignid = item._id - listing.price = body.price - listing.amount = body.amount - listing.seller = req.session.user - listing.save(function(err){ - if(err){ + listing.itemId = item.itemId; + listing.meta = item.meta; + listing.name = item.name; + listing.foreignid = item._id; + listing.price = body.price; + listing.amount = body.amount; + listing.seller = req.session.user; + listing.save(function (err) { + if (err) { console.log(err); return; - } else{ - console.log("added "+ listing.name+" from "+listing.seller) - } - }) - let inventory = await Inventory.findOne({user:req.session.user}).exec() - if( inventory == null){ - let newinv = new Inventory; - newinv.user = req.session.user - newinv.listings = listing; - newinv.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("created new inventory for "+req.session.user) - } - }) - } else { - inventory.listings.push(listing) - inventory.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("pushed new listing") - } - }) - } - res.redirect('/marketplace/marketdash') -}) -router.post('/:id/buy',async function(req, res){ - Listing.findOne({_id: req.params.id}, async function(err, listing){ - - let inventory = await Inventory.findOne({user:req.session.user}).exec() - if(inventory == null){ - let newinv = new Inventory; - newinv.user = req.session.user - newinv.purchases = listing; - newinv.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("created new inventory for "+req.session.user) - } - }) } else { - inventory.purchases.push(listing) - inventory.save(function(err){ - if(err){ + console.log("added " + listing.name + " from " + listing.seller); + } + }); + let inventory = await Inventory.findOne({ user: req.session.user }).exec(); + if (inventory == null) { + let newinv = new Inventory(); + newinv.user = req.session.user; + newinv.listings = listing; + newinv.save(function (err) { + if (err) { + console.log(err); + return; + } else { + console.log("created new inventory for " + req.session.user); + } + }); + } else { + inventory.listings.push(listing); + inventory.save(function (err) { + if (err) { + console.log(err); + return; + } else { + console.log("pushed new listing"); + } + }); + } + res.redirect("/marketplace/marketdash"); +}); +router.post("/:id/buy", async function (req, res) { + Listing.findOne({ _id: req.params.id }, async function (err, listing) { + let inventory = await Inventory.findOne({ user: req.session.user }).exec(); + if (inventory == null) { + let newinv = new Inventory(); + newinv.user = req.session.user; + newinv.purchases = listing; + newinv.save(function (err) { + if (err) { console.log(err); return; - } else{ - console.log("pushed new purchase") + } else { + console.log("created new inventory for " + req.session.user); } - }) + }); + } else { + inventory.purchases.push(listing); + inventory.save(function (err) { + if (err) { + console.log(err); + return; + } else { + console.log("pushed new purchase"); + } + }); } - Listing.findOneAndRemove({_id:req.params.id}).exec() - transfer = got.post(process.env.BANKAPIURL+'BankF/sendfunds',{ - json:{ + Listing.findOneAndRemove({ _id: req.params.id }).exec(); + transfer = got.post(process.env.BANKAPIURL + "BankF/sendfunds", { + json: { a_name: req.session.user, b_name: listing.seller, - amount: parseInt(listing.amount*listing.price), - attempt: req.session.password + amount: parseInt(listing.amount * listing.price), + attempt: req.session.password, }, - responseType:'json' - }) - res.redirect("/marketplace/marketdash") - }) -}) + responseType: "json", + }); + res.redirect("/marketplace/marketdash"); + }); +}); // this thingy here populates the database with minecraft items only use once otherwise you are gonna flood your database /*router.get('/populatedb', async function(req,res){ @@ -242,7 +231,4 @@ router.post('/:id/buy',async function(req, res){ } })*/ - - - -module.exports = router +module.exports = router; diff --git a/routes/settings.js b/routes/settings.js index 8139588..f8256ab 100644 --- a/routes/settings.js +++ b/routes/settings.js @@ -1,75 +1,70 @@ -const express = require('express'); +const express = require("express"); const router = express.Router(); -const path = require('path'); -const {ensureAuthenticated} = require("../config/auth.js") -const {checkAdmin} = require ("../config/admin.js") -var pug = require('pug'); -const flash = require ('connect-flash'); -const expressValidator = require('express-validator'); -const session = require('express-session'); -const {postUser} = require('../helpers/functions.js') -const got = require('got') +const path = require("path"); +const { ensureAuthenticated } = require("../config/auth.js"); +const { checkAdmin } = require("../config/admin.js"); +var pug = require("pug"); +const flash = require("connect-flash"); +const expressValidator = require("express-validator"); +const session = require("express-session"); +const { postUser } = require("../helpers/functions.js"); +const got = require("got"); -router.get('/',ensureAuthenticated , function(req, res){ - res.render('settings', { +router.get("/", ensureAuthenticated, function (req, res) { + res.render("settings", { user: req.session.user, admin: req.session.admin, - }) - + }); }); -router.post('/pass', ensureAuthenticated, async function(req, res){ - let {attempt, new_pass, password2} = req.body +router.post("/pass", ensureAuthenticated, async function (req, res) { + let { attempt, new_pass, password2 } = req.body; let patch; let successes = []; let errors = []; - if(!attempt || !new_pass || !password2) { - errors.push({msg : "please fill in all fields"}); + if (!attempt || !new_pass || !password2) { + errors.push({ msg: "please fill in all fields" }); } //check if match - if(new_pass !== password2) { - errors.push({msg : "Passwords don't match"}); + if (new_pass !== password2) { + errors.push({ msg: "Passwords don't match" }); } //check if password is more than 6 characters - if(new_pass.length < 6 ) { - errors.push({msg : 'Password must be at least 6 characters'}) + if (new_pass.length < 6) { + errors.push({ msg: "Password must be at least 6 characters" }); } - if(errors[0]){ - res.render('settings', { - errors:errors, + if (errors[0]) { + res.render("settings", { + errors: errors, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } - try{ - patch = await got.patch('https://ccash.ryzerth.com/BankF/changepass',{ - json:{ + try { + patch = await got.patch("https://ccash.ryzerth.com/BankF/changepass", { + json: { name: req.session.user, attempt: attempt, new_pass: new_pass, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - console.log(patch) - if(patch.body.value == true){ - successes.push({msg: "Change Password Successful, Please Login Again"}) + console.log(patch); + if (patch.body.value == true) { + successes.push({ msg: "Change Password Successful, Please Login Again" }); } - req.session.regenerate(function(err) { - res.render('login', { + req.session.regenerate(function (err) { + res.render("login", { successes: successes, - errors:errors, - marketplace: process.env.MARKETPLACE - }) - }) -}) - - - - + errors: errors, + marketplace: process.env.MARKETPLACE, + }); + }); +}); module.exports = router; diff --git a/schemas/inventory.js b/schemas/inventory.js index 7856b01..cb5cfd4 100644 --- a/schemas/inventory.js +++ b/schemas/inventory.js @@ -1,72 +1,78 @@ -const mongoose = require('mongoose'); -const Listing = require("./listing.js") - +const mongoose = require("mongoose"); +const Listing = require("./listing.js"); const InventorySchema = mongoose.Schema({ - user:{ + user: { type: String, required: true, }, - listings:[{ - itemId:{ - type: Number, - required: true, + listings: [ + { + itemId: { + type: Number, + required: true, + }, + meta: { + type: Number, + required: false, + }, + name: { + type: String, + required: true, + }, + foreignid: { + type: String, + required: true, + }, + price: { + type: Number, + required: true, + }, + amount: { + type: Number, + required: true, + }, + seller: { + type: String, + required: true, + }, }, - meta:{ - type: Number, - required: false + ], + purchases: [ + { + itemId: { + type: Number, + required: true, + }, + meta: { + type: Number, + required: false, + }, + name: { + type: String, + required: true, + }, + foreignid: { + type: String, + required: true, + }, + price: { + type: Number, + required: true, + }, + amount: { + type: Number, + required: true, + }, + seller: { + type: String, + required: true, + }, }, - name:{ - type: String, - required: true - }, - foreignid:{ - type: String, - required: true, - }, - price:{ - type:Number, - required: true - }, - amount:{ - type: Number, - required:true - }, - seller:{ - type:String, - required:true, - } - }], - purchases:[{ - itemId:{ - type: Number, - required: true, - }, - meta:{ - type: Number, - required: false - }, - name:{ - type: String, - required: true - }, - foreignid:{ - type: String, - required: true, - }, - price:{ - type:Number, - required: true - }, - amount:{ - type: Number, - required:true - }, - seller:{ - type:String, - required:true, - } - }], -}) + ], +}); -const Inventory = module.exports = mongoose.model('Inventory', InventorySchema); +const Inventory = (module.exports = mongoose.model( + "Inventory", + InventorySchema +)); diff --git a/schemas/item.js b/schemas/item.js index 651cb7c..7daec33 100644 --- a/schemas/item.js +++ b/schemas/item.js @@ -1,27 +1,26 @@ -const mongoose = require('mongoose'); - +const mongoose = require("mongoose"); const ItemSchema = mongoose.Schema({ - itemId:{ + itemId: { type: Number, required: true, }, - meta:{ + meta: { type: Number, - required: false + required: false, }, - name:{ - type: String, - required: true - }, - text_type:{ + name: { type: String, required: true, }, - price:{ - type:Number, - required: false - } -}) + text_type: { + type: String, + required: true, + }, + price: { + type: Number, + required: false, + }, +}); -const Item = module.exports = mongoose.model('Item', ItemSchema); +const Item = (module.exports = mongoose.model("Item", ItemSchema)); diff --git a/schemas/listing.js b/schemas/listing.js index d030fd8..eb2b565 100644 --- a/schemas/listing.js +++ b/schemas/listing.js @@ -1,35 +1,34 @@ -const mongoose = require('mongoose'); - +const mongoose = require("mongoose"); const ListingSchema = mongoose.Schema({ - itemId:{ + itemId: { type: Number, required: true, }, - meta:{ + meta: { type: Number, - required: false + required: false, }, - name:{ - type: String, - required: true - }, - foreignid:{ + name: { type: String, required: true, }, - price:{ - type:Number, - required: true + foreignid: { + type: String, + required: true, }, - amount:{ + price: { type: Number, - required:true + required: true, }, - seller:{ - type:String, - required:true, - } -}) + amount: { + type: Number, + required: true, + }, + seller: { + type: String, + required: true, + }, +}); -const Listing = module.exports = mongoose.model('Listing', ListingSchema); +const Listing = (module.exports = mongoose.model("Listing", ListingSchema)); diff --git a/schemas/log.js b/schemas/log.js index 08876f2..c8024da 100644 --- a/schemas/log.js +++ b/schemas/log.js @@ -1,24 +1,23 @@ -const mongoose = require('mongoose'); - +const mongoose = require("mongoose"); const LogSchema = mongoose.Schema({ - sender:{ + sender: { type: String, required: true, }, - receiver:{ + receiver: { type: String, - required: true + required: true, }, - amount:{ + amount: { type: Number, - required: true + required: true, }, - date:{ - type:Date, + date: { + type: Date, default: Date(), - required: true - } -}) + required: true, + }, +}); -const Log = module.exports = mongoose.model('Log', LogSchema); +const Log = (module.exports = mongoose.model("Log", LogSchema)); From 8844d44577d6ee1cc49bf73deeeb4581778c1fc8 Mon Sep 17 00:00:00 2001 From: Expand-sys Date: Tue, 18 May 2021 07:39:23 +1000 Subject: [PATCH 4/4] fixed times displaying incorrectly - forgot to use date constructer instead of date function --- index.js | 7 +++++-- routes/admin.js | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 0c365ea..67b5460 100644 --- a/index.js +++ b/index.js @@ -210,6 +210,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) { console.log(logrec.timings); console.log("query finished " + Date.now()); logsent = logsent.body.value; + console.log(logsent); if (logsent == 1 || logsent == -1 || logsent == null) { logsent = undefined; @@ -223,10 +224,12 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) { logrec = await logrec.filter(({ to }) => to === req.session.user); } for (i in logrec) { - logrec[i].time = Date(logrec[i].time); + logrec[i].time = new Date(logrec[i].time); + console.log(logrec[i].time); } for (i in logsent) { - logsent[i].time = Date(logsent[i].time); + logsent[i].time = new Date(logsent[i].time); + console.log(logsent[i].time); } console.log("begin render " + Date.now()); res.render("bankf", { diff --git a/routes/admin.js b/routes/admin.js index e7451f8..16902c8 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -140,7 +140,7 @@ router.post("/bal", checkAdmin, async function (req, res) { } catch (err) { console.log(err); } - if (patch.body.value == true) { + if ((await patch.body.value) == true) { successes.push({ msg: "Change Funds Successful" }); } res.render("adminsettings", {