aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/.gitignore63
-rw-r--r--server/README.md1
-rw-r--r--server/package-lock.json396
-rw-r--r--server/package.json34
-rw-r--r--server/src/commands/admin/addmod.js2
-rw-r--r--server/src/commands/admin/listusers.js2
-rw-r--r--server/src/commands/admin/reload.js3
-rw-r--r--server/src/commands/admin/saveconfig.js2
-rw-r--r--server/src/commands/admin/shout.js4
-rw-r--r--server/src/commands/core/changenick.js2
-rw-r--r--server/src/commands/core/chat.js4
-rw-r--r--server/src/commands/core/disconnect.js4
-rw-r--r--server/src/commands/core/help.js4
-rw-r--r--server/src/commands/core/invite.js4
-rw-r--r--server/src/commands/core/join.js4
-rw-r--r--server/src/commands/core/morestats.js4
-rw-r--r--server/src/commands/core/move.js4
-rw-r--r--server/src/commands/core/showcase.js53
-rw-r--r--server/src/commands/core/stats.js4
-rw-r--r--server/src/commands/mod/ban.js2
-rw-r--r--server/src/commands/mod/kick.js4
-rw-r--r--server/src/commands/mod/unban.js4
-rw-r--r--server/src/core/rateLimiter.js4
-rw-r--r--server/src/core/server.js2
-rw-r--r--server/src/managers/commands.js2
-rw-r--r--server/src/managers/config.js2
-rw-r--r--server/src/managers/imports-manager.js2
-rw-r--r--server/src/managers/stats.js2
28 files changed, 13 insertions, 605 deletions
diff --git a/server/.gitignore b/server/.gitignore
deleted file mode 100644
index 46de862..0000000
--- a/server/.gitignore
+++ /dev/null
@@ -1,63 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# Typescript v1 declaration files
-typings/
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-
-# next.js build output
-.next
-
-config/ \ No newline at end of file
diff --git a/server/README.md b/server/README.md
deleted file mode 100644
index 292daab..0000000
--- a/server/README.md
+++ /dev/null
@@ -1 +0,0 @@
-(TODO)
diff --git a/server/package-lock.json b/server/package-lock.json
deleted file mode 100644
index 8a8228d..0000000
--- a/server/package-lock.json
+++ /dev/null
@@ -1,396 +0,0 @@
-{
- "name": "hack.chat-v2",
- "version": "2.0.1",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
- },
- "async-limiter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "requires": {
- "core-js": "2.5.3",
- "regenerator-runtime": "0.11.1"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "bindings": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
- "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "chalk": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
- "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
- "requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
- "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
- },
- "common-tags": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz",
- "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "core-js": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
- "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4="
- },
- "cycle": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
- "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
- },
- "dateformat": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
- },
- "deasync": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.12.tgz",
- "integrity": "sha512-gpacYo8FBZh3INBp2KOtrQp9kCO5faHvOmEZx3/cZTr3Mm8/kAYs7/Ws3E3OAH0ApBNK6Y6N+7+Dka2Zn2Fldw==",
- "requires": {
- "bindings": "1.2.1",
- "nan": "2.9.2"
- }
- },
- "deep-equal": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz",
- "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0="
- },
- "didyoumean2": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/didyoumean2/-/didyoumean2-1.3.0.tgz",
- "integrity": "sha1-bjT0AUM1HJIGlulyO7oB/8C5ZAI=",
- "requires": {
- "leven": "2.1.0",
- "lodash": "4.17.5"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "eyes": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
- "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
- },
- "fs-extra": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
- "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "4.0.0",
- "universalify": "0.1.1"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "i": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
- "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "requires": {
- "graceful-fs": "4.1.11"
- }
- },
- "leven": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
- "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA="
- },
- "lodash": {
- "version": "4.17.5",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
- "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "1.1.11"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
- },
- "nan": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz",
- "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw=="
- },
- "ncp": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
- "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "pkginfo": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
- "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8="
- },
- "prompt": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz",
- "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=",
- "requires": {
- "colors": "1.1.2",
- "pkginfo": "0.4.1",
- "read": "1.0.7",
- "revalidator": "0.1.8",
- "utile": "0.3.0",
- "winston": "2.1.1"
- }
- },
- "read": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
- "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
- "requires": {
- "mute-stream": "0.0.7"
- }
- },
- "readdir-recursive": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/readdir-recursive/-/readdir-recursive-0.0.4.tgz",
- "integrity": "sha1-mvQ1q6nFi9gNvclIi025up8SMB8="
- },
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
- },
- "revalidator": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
- "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs="
- },
- "rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
- "requires": {
- "glob": "7.1.2"
- }
- },
- "stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
- },
- "supports-color": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
- "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
- "requires": {
- "has-flag": "3.0.0"
- }
- },
- "universalify": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
- "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
- },
- "utile": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz",
- "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=",
- "requires": {
- "async": "0.9.2",
- "deep-equal": "0.2.2",
- "i": "0.3.6",
- "mkdirp": "0.5.1",
- "ncp": "1.0.1",
- "rimraf": "2.6.2"
- }
- },
- "winston": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
- "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=",
- "requires": {
- "async": "1.0.0",
- "colors": "1.0.3",
- "cycle": "1.0.3",
- "eyes": "0.1.8",
- "isstream": "0.1.2",
- "pkginfo": "0.3.1",
- "stack-trace": "0.0.10"
- },
- "dependencies": {
- "async": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
- "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
- },
- "colors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
- },
- "pkginfo": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
- "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE="
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "ws": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-5.0.0.tgz",
- "integrity": "sha512-XXG4S0b771C68AeTHebBsJJBZMguxj7Em+D657RViuj6ppRd3tfuOhIK8eGwZGNb76C8MjQfCTfH2NN50rJN4w==",
- "requires": {
- "async-limiter": "1.0.0"
- }
- }
- }
-}
diff --git a/server/package.json b/server/package.json
deleted file mode 100644
index 8417c13..0000000
--- a/server/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "hack.chat-v2",
- "version": "2.0.1",
- "description": "a minimal distraction free chat application",
- "main": "main.js",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/hack-chat/main.git"
- },
- "engines": {
- "node": ">= 8.10.0",
- "npm": ">= 5.7.1"
- },
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
- "start": "node server.js",
- "config": "node src/scripts/configure.js",
- "debug": "node src/scripts/debug.js",
- "dev": "node src/scripts/debug.js"
- },
- "author": "Marzavec",
- "license": "WTFPL",
- "dependencies": {
- "chalk": "^2.3.2",
- "common-tags": "^1.7.2",
- "dateformat": "^3.0.3",
- "deasync": "^0.1.12",
- "didyoumean2": "^1.3.0",
- "fs-extra": "^5.0.0",
- "prompt": "^1.0.0",
- "readdir-recursive": "0.0.4",
- "ws": "^5.0.0"
- }
-}
diff --git a/server/src/commands/admin/addmod.js b/server/src/commands/admin/addmod.js
index e9dde2c..4c13b22 100644
--- a/server/src/commands/admin/addmod.js
+++ b/server/src/commands/admin/addmod.js
@@ -2,8 +2,6 @@
Description: Adds the target trip to the mod list then elevates the uType
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType != 'admin') {
// ignore if not admin
diff --git a/server/src/commands/admin/listusers.js b/server/src/commands/admin/listusers.js
index 226b000..a539a3c 100644
--- a/server/src/commands/admin/listusers.js
+++ b/server/src/commands/admin/listusers.js
@@ -2,8 +2,6 @@
Description: Outputs all current channels and their user nicks
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType != 'admin') {
// ignore if not admin
diff --git a/server/src/commands/admin/reload.js b/server/src/commands/admin/reload.js
index 387ae97..e2cfbe6 100644
--- a/server/src/commands/admin/reload.js
+++ b/server/src/commands/admin/reload.js
@@ -2,8 +2,6 @@
Description: Clears and resets the command modules, outputting any errors
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType != 'admin') {
// ignore if not admin
@@ -34,3 +32,4 @@ exports.info = {
name: 'reload',
description: '(Re)loads any new commands into memory, outputs errors if any'
};
+
diff --git a/server/src/commands/admin/saveconfig.js b/server/src/commands/admin/saveconfig.js
index 0c4e0c9..ed3a312 100644
--- a/server/src/commands/admin/saveconfig.js
+++ b/server/src/commands/admin/saveconfig.js
@@ -2,8 +2,6 @@
Description: Writes any changes to the config to the disk
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType != 'admin') {
// ignore if not admin
diff --git a/server/src/commands/admin/shout.js b/server/src/commands/admin/shout.js
index 736134a..1358dd9 100644
--- a/server/src/commands/admin/shout.js
+++ b/server/src/commands/admin/shout.js
@@ -2,8 +2,6 @@
Description: Emmits a server-wide message as `info`
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType != 'admin') {
// ignore if not admin
@@ -22,4 +20,4 @@ exports.info = {
name: 'shout',
usage: 'shout {text}',
description: 'Displays passed text to every client connected'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/changenick.js b/server/src/commands/core/changenick.js
index 6b2932c..4041bb0 100644
--- a/server/src/commands/core/changenick.js
+++ b/server/src/commands/core/changenick.js
@@ -2,8 +2,6 @@
Description: Generates a semi-unique channel name then broadcasts it to each client
*/
-'use strict';
-
const verifyNickname = (nick) => {
return /^[a-zA-Z0-9_]{1,24}$/.test(nick);
};
diff --git a/server/src/commands/core/chat.js b/server/src/commands/core/chat.js
index ee45425..bce6adb 100644
--- a/server/src/commands/core/chat.js
+++ b/server/src/commands/core/chat.js
@@ -2,8 +2,6 @@
Description: Rebroadcasts any `text` to all clients in a `channel`
*/
-'use strict';
-
const parseText = (text) => {
if (typeof text !== 'string') {
return false;
@@ -61,4 +59,4 @@ exports.info = {
name: 'chat',
usage: 'chat {text}',
description: 'Broadcasts passed `text` field to the calling users channel'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/disconnect.js b/server/src/commands/core/disconnect.js
index 1a9c635..9b54214 100644
--- a/server/src/commands/core/disconnect.js
+++ b/server/src/commands/core/disconnect.js
@@ -4,8 +4,6 @@
by a client to have the connection severed.
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.channel) {
server.broadcast({
@@ -20,4 +18,4 @@ exports.run = async (core, server, socket, data) => {
exports.info = {
name: 'disconnect',
description: 'Event handler or force disconnect (if your into that kind of thing)'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/help.js b/server/src/commands/core/help.js
index 71cc745..7f63d3d 100644
--- a/server/src/commands/core/help.js
+++ b/server/src/commands/core/help.js
@@ -2,8 +2,6 @@
Description: Outputs the current command module list or command categories
*/
-'use strict';
-
const stripIndents = require('common-tags').stripIndents;
exports.run = async (core, server, socket, data) => {
@@ -48,4 +46,4 @@ exports.info = {
name: 'help',
usage: 'help ([ type:categories] | [category:<category name> | command:<command name> ])',
description: 'Outputs information about the servers current protocol'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/invite.js b/server/src/commands/core/invite.js
index bd85812..bcf9097 100644
--- a/server/src/commands/core/invite.js
+++ b/server/src/commands/core/invite.js
@@ -2,8 +2,6 @@
Description: Generates a semi-unique channel name then broadcasts it to each client
*/
-'use strict';
-
const verifyNickname = (nick) => {
return /^[a-zA-Z0-9_]{1,24}$/.test(nick);
};
@@ -64,4 +62,4 @@ exports.info = {
name: 'invite',
usage: 'invite {nick}',
description: 'Generates a unique (more or less) room name and passes it to two clients'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/join.js b/server/src/commands/core/join.js
index 82b48d2..f2b2c9d 100644
--- a/server/src/commands/core/join.js
+++ b/server/src/commands/core/join.js
@@ -2,8 +2,6 @@
Description: Initial entry point, applies `channel` and `nick` to the calling socket
*/
-'use strict';
-
const crypto = require('crypto');
const hash = (password) => {
@@ -134,4 +132,4 @@ exports.info = {
name: 'join',
usage: 'join {channel} {nick}',
description: 'Place calling socket into target channel with target nick & broadcast event to channel'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/morestats.js b/server/src/commands/core/morestats.js
index d8bc23d..5510cb1 100644
--- a/server/src/commands/core/morestats.js
+++ b/server/src/commands/core/morestats.js
@@ -2,8 +2,6 @@
Description: Outputs more info than the legacy stats command
*/
-'use strict';
-
const stripIndents = require('common-tags').stripIndents;
const formatTime = (time) => {
@@ -52,4 +50,4 @@ exports.run = async (core, server, socket, data) => {
exports.info = {
name: 'morestats',
description: 'Sends back current server stats to the calling client'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/move.js b/server/src/commands/core/move.js
index 862025c..c5efafd 100644
--- a/server/src/commands/core/move.js
+++ b/server/src/commands/core/move.js
@@ -2,8 +2,6 @@
Description: Generates a semi-unique channel name then broadcasts it to each client
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (server._police.frisk(socket.remoteAddress, 6)) {
server.reply({
@@ -82,4 +80,4 @@ exports.info = {
name: 'move',
usage: 'move {channel}',
description: 'This will change the current channel to the new one provided'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/core/showcase.js b/server/src/commands/core/showcase.js
deleted file mode 100644
index 5eca4a2..0000000
--- a/server/src/commands/core/showcase.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- Description: This is a template module that should not be on prod
-*/
-
-'use strict';
-
-// you can require() modules here
-
-// this function will only be only in the scope of the module
-const createReply = (echoInput) => {
- if (echoInput.length > 100)
- echoInput = 'HOW ABOUT NO?';
-
- return `You want me to echo: ${echoInput}?`
-};
-
-/*
- `exports.run()` is required and will always be passed (core, server, socket, data)
-
- be sure it's async too
- this is the main function that will run when called
-*/
-exports.run = async (core, server, socket, data) => {
-
- server.reply({
- cmd: 'info',
- text: `SHOWCASE MODULE: ${core.showcase} - ${createReply(data.echo)}`
- }, socket);
-
-};
-
-/*
- `exports.init()` is optional, and will only be run when the module is loaded into memory
- it will always be passed a reference to the global core class
- note: this will fire again if a reload is issued, keep that in mind
-*/
-exports.init = (core) => {
- if (typeof core.showcase === 'undefined') {
- core.showcase = 'init is a handy place to put global data by assigning it to `core`';
- }
-}
-
-// optional, if `data.echo` is missing `exports.run()` will never be called & the user will be alerted
-// remember; this will only verify that the data is not undefined, not the type of data
-exports.requiredData = ['echo'];
-
-// optional parameters are marked, all others are required
-exports.info = {
- name: 'showcase', // actual command name
- aliases: ['templateModule'], // optional, an array of other names this module can be executed by
- usage: 'showcase {echo}', // used for help output, can be ommited if no parameters are required
- description: 'Simple command module template & info' // used for help output
-};
diff --git a/server/src/commands/core/stats.js b/server/src/commands/core/stats.js
index a1abddb..b9dc002 100644
--- a/server/src/commands/core/stats.js
+++ b/server/src/commands/core/stats.js
@@ -2,8 +2,6 @@
Description: Legacy stats output, kept for compatibility, outputs user and channel count
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
let ips = {};
let channels = {};
@@ -31,4 +29,4 @@ exports.run = async (core, server, socket, data) => {
exports.info = {
name: 'stats',
description: 'Sends back legacy server stats to the calling client'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/mod/ban.js b/server/src/commands/mod/ban.js
index 409217a..e19efc2 100644
--- a/server/src/commands/mod/ban.js
+++ b/server/src/commands/mod/ban.js
@@ -2,8 +2,6 @@
Description: Adds the target socket's ip to the ratelimiter
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType == 'user') {
// ignore if not mod or admin
diff --git a/server/src/commands/mod/kick.js b/server/src/commands/mod/kick.js
index f32eaf5..157592d 100644
--- a/server/src/commands/mod/kick.js
+++ b/server/src/commands/mod/kick.js
@@ -2,8 +2,6 @@
Description: Forces a change on the target socket's channel, then broadcasts event
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType === 'user') {
// ignore if not mod or admin
@@ -77,4 +75,4 @@ exports.info = {
name: 'kick',
usage: 'kick {nick}',
description: 'Silently forces target client(s) into another channel. `nick` may be string or array of strings'
-};
+}; \ No newline at end of file
diff --git a/server/src/commands/mod/unban.js b/server/src/commands/mod/unban.js
index 2406644..e82f0b9 100644
--- a/server/src/commands/mod/unban.js
+++ b/server/src/commands/mod/unban.js
@@ -2,8 +2,6 @@
Description: Removes a target ip from the ratelimiter
*/
-'use strict';
-
exports.run = async (core, server, socket, data) => {
if (socket.uType == 'user') {
// ignore if not mod or admin
@@ -54,4 +52,4 @@ exports.info = {
name: 'unban',
usage: 'unban {[ip || hash]}',
description: 'Removes target ip from the ratelimiter'
-};
+}; \ No newline at end of file
diff --git a/server/src/core/rateLimiter.js b/server/src/core/rateLimiter.js
index 0d94ef2..0c2a384 100644
--- a/server/src/core/rateLimiter.js
+++ b/server/src/core/rateLimiter.js
@@ -8,15 +8,13 @@
*
*/
-'use strict';
-
class Police {
/**
* Create a ratelimiter instance.
*/
constructor () {
this._records = {};
- this._halflife = 30000; // ms
+ this._halflife = 30 * 1000; // milliseconds
this._threshold = 25;
this._hashes = [];
}
diff --git a/server/src/core/server.js b/server/src/core/server.js
index 9bea738..855aeba 100644
--- a/server/src/core/server.js
+++ b/server/src/core/server.js
@@ -7,8 +7,6 @@
*
*/
-'use strict';
-
const wsServer = require('ws').Server;
const socketReady = require('ws').OPEN;
const crypto = require('crypto');
diff --git a/server/src/managers/commands.js b/server/src/managers/commands.js
index 569206d..c38fb4d 100644
--- a/server/src/managers/commands.js
+++ b/server/src/managers/commands.js
@@ -7,8 +7,6 @@
*
*/
-'use strict';
-
const path = require('path');
const chalk = require('chalk');
const didYouMean = require('didyoumean2');
diff --git a/server/src/managers/config.js b/server/src/managers/config.js
index 1848cac..2865d00 100644
--- a/server/src/managers/config.js
+++ b/server/src/managers/config.js
@@ -8,8 +8,6 @@
*
*/
-'use strict';
-
const stripIndents = require('common-tags').stripIndents;
const dateFormat = require('dateformat');
const chalk = require('chalk');
diff --git a/server/src/managers/imports-manager.js b/server/src/managers/imports-manager.js
index f4096b7..d8b2144 100644
--- a/server/src/managers/imports-manager.js
+++ b/server/src/managers/imports-manager.js
@@ -7,8 +7,6 @@
*
*/
-'use strict';
-
const read = require('readdir-recursive');
const path = require('path');
diff --git a/server/src/managers/stats.js b/server/src/managers/stats.js
index c3b6f9f..20f1ae3 100644
--- a/server/src/managers/stats.js
+++ b/server/src/managers/stats.js
@@ -7,8 +7,6 @@
*
*/
-'use strict';
-
class Stats {
/**
* Create a stats instance.