aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitignore (renamed from server/.gitignore)2
-rw-r--r--package-lock.json (renamed from server/package-lock.json)2
-rw-r--r--package.json (renamed from server/package.json)13
-rw-r--r--server/README.md1
-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/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
-rw-r--r--templateCommand.js (renamed from server/src/commands/core/showcase.js)4
28 files changed, 22 insertions, 71 deletions
diff --git a/server/.gitignore b/.gitignore
index 46de862..4bf93f7 100644
--- a/server/.gitignore
+++ b/.gitignore
@@ -60,4 +60,4 @@ typings/
# next.js build output
.next
-config/ \ No newline at end of file
+server/config/ \ No newline at end of file
diff --git a/server/package-lock.json b/package-lock.json
index 8a8228d..df5ebe8 100644
--- a/server/package-lock.json
+++ b/package-lock.json
@@ -393,4 +393,4 @@
}
}
}
-}
+} \ No newline at end of file
diff --git a/server/package.json b/package.json
index 8417c13..6ce7271 100644
--- a/server/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "hack.chat-v2",
"version": "2.0.1",
"description": "a minimal distraction free chat application",
- "main": "main.js",
+ "main": "server/main.js",
"repository": {
"type": "git",
"url": "git+https://github.com/hack-chat/main.git"
@@ -12,11 +12,10 @@
"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"
+ "start": "node server/main.js",
+ "config": "node server/src/scripts/configure.js",
+ "debug": "node server/src/scripts/debug.js",
+ "dev": "node server/src/scripts/debug.js"
},
"author": "Marzavec",
"license": "WTFPL",
@@ -31,4 +30,4 @@
"readdir-recursive": "0.0.4",
"ws": "^5.0.0"
}
-}
+} \ 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/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/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.
diff --git a/server/src/commands/core/showcase.js b/templateCommand.js
index 5eca4a2..90b9aa3 100644
--- a/server/src/commands/core/showcase.js
+++ b/templateCommand.js
@@ -2,8 +2,6 @@
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
@@ -50,4 +48,4 @@ exports.info = {
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
-};
+}; \ No newline at end of file