From 204d55d51476f049c82ab6c41924c76bb9449c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Ryb=C3=A1rsky?= Date: Sun, 12 Jun 2022 09:38:38 +0200 Subject: [PATCH] do some things --- commands/append.js | 20 ++ commands/append.js.map | 1 + commands/append.ts | 16 ++ commands/cat.js | 24 ++ commands/cat.js.map | 1 + commands/cat.ts | 22 ++ commands/cd.js | 46 ++++ commands/cd.js.map | 1 + commands/cd.ts | 55 +++++ commands/clear.js | 9 + commands/clear.js.map | 1 + commands/clear.ts | 5 + commands/commands.js | 422 +++++++--------------------------- commands/commands.js.map | 2 +- commands/commands.ts | 456 +++++++------------------------------ commands/cp.js | 26 +++ commands/cp.js.map | 1 + commands/cp.ts | 22 ++ commands/echo.js | 11 + commands/echo.js.map | 1 + commands/echo.ts | 7 + commands/exec.js | 37 +++ commands/exec.js.map | 1 + commands/exec.ts | 36 +++ commands/exit.ts | 0 commands/help.js | 29 +++ commands/help.js.map | 1 + commands/help.ts | 25 ++ commands/loadsess.js | 23 ++ commands/loadsess.js.map | 1 + commands/loadsess.ts | 20 ++ commands/ls.js | 21 ++ commands/ls.js.map | 1 + commands/ls.ts | 20 ++ commands/man.js | 73 ++++++ commands/man.js.map | 1 + commands/man.ts | 69 ++++++ commands/mkdir.js | 21 ++ commands/mkdir.js.map | 1 + commands/mkdir.ts | 20 ++ commands/mv.js | 27 +++ commands/mv.js.map | 1 + commands/mv.ts | 23 ++ commands/overwrite.js | 19 ++ commands/overwrite.js.map | 1 + commands/overwrite.ts | 15 ++ commands/pwd.js | 11 + commands/pwd.js.map | 1 + commands/pwd.ts | 7 + commands/rm.js | 21 ++ commands/rm.js.map | 1 + commands/rm.ts | 18 ++ commands/rmdir.js | 21 ++ commands/rmdir.js.map | 1 + commands/rmdir.ts | 18 ++ commands/savesess.js | 29 +++ commands/savesess.js.map | 1 + commands/savesess.ts | 31 +++ commands/screenshot.js | 11 + commands/screenshot.js.map | 1 + commands/screenshot.ts | 8 + commands/spam.js | 24 ++ commands/spam.js.map | 1 + commands/spam.ts | 21 ++ commands/touch.js | 16 ++ commands/touch.js.map | 1 + commands/touch.ts | 13 ++ commands/wee.js | 10 + commands/wee.js.map | 1 + commands/wee.ts | 6 + commands/woo.js | 10 + commands/woo.js.map | 1 + commands/woo.ts | 6 + index.html | 116 ---------- index.js | 11 +- index.js.map | 2 +- index.ts | 17 +- website/index.html | 15 ++ website/jquery.js | 2 + website/script.js | 75 ++++++ website/style.css | 23 ++ 81 files changed, 1342 insertions(+), 844 deletions(-) create mode 100644 commands/append.js create mode 100644 commands/append.js.map create mode 100644 commands/cat.js create mode 100644 commands/cat.js.map create mode 100644 commands/cd.js create mode 100644 commands/cd.js.map create mode 100644 commands/clear.js create mode 100644 commands/clear.js.map create mode 100644 commands/cp.js create mode 100644 commands/cp.js.map create mode 100644 commands/echo.js create mode 100644 commands/echo.js.map create mode 100644 commands/exec.js create mode 100644 commands/exec.js.map delete mode 100644 commands/exit.ts create mode 100644 commands/help.js create mode 100644 commands/help.js.map create mode 100644 commands/loadsess.js create mode 100644 commands/loadsess.js.map create mode 100644 commands/loadsess.ts create mode 100644 commands/ls.js create mode 100644 commands/ls.js.map create mode 100644 commands/man.js create mode 100644 commands/man.js.map create mode 100644 commands/mkdir.js create mode 100644 commands/mkdir.js.map create mode 100644 commands/mv.js create mode 100644 commands/mv.js.map create mode 100644 commands/overwrite.js create mode 100644 commands/overwrite.js.map create mode 100644 commands/pwd.js create mode 100644 commands/pwd.js.map create mode 100644 commands/rm.js create mode 100644 commands/rm.js.map create mode 100644 commands/rmdir.js create mode 100644 commands/rmdir.js.map create mode 100644 commands/savesess.js create mode 100644 commands/savesess.js.map create mode 100644 commands/savesess.ts create mode 100644 commands/screenshot.js create mode 100644 commands/screenshot.js.map create mode 100644 commands/spam.js create mode 100644 commands/spam.js.map create mode 100644 commands/touch.js create mode 100644 commands/touch.js.map create mode 100644 commands/wee.js create mode 100644 commands/wee.js.map create mode 100644 commands/wee.ts create mode 100644 commands/woo.js create mode 100644 commands/woo.js.map create mode 100644 commands/woo.ts delete mode 100644 index.html create mode 100644 website/index.html create mode 100644 website/jquery.js create mode 100644 website/script.js create mode 100644 website/style.css diff --git a/commands/append.js b/commands/append.js new file mode 100644 index 0000000..63f3ae1 --- /dev/null +++ b/commands/append.js @@ -0,0 +1,20 @@ +"use strict"; +exports.__esModule = true; +exports.append = void 0; +function append(args, curdir) { + var buf = ""; + if (args.length == 0) { + buf += "append: missing operand\n"; + } + else { + if (curdir[args[0]] == undefined) { + curdir[args[0]] = ""; + } + for (var i = 1; i < args.length; i++) { + curdir[args[0]] += args[i] + "\n"; + } + } + return buf; +} +exports.append = append; +//# sourceMappingURL=append.js.map \ No newline at end of file diff --git a/commands/append.js.map b/commands/append.js.map new file mode 100644 index 0000000..596149c --- /dev/null +++ b/commands/append.js.map @@ -0,0 +1 @@ +{"version":3,"file":"append.js","sourceRoot":"","sources":["append.ts"],"names":[],"mappings":";;;AAAA,SAAS,MAAM,CAAC,IAAkB,EAAE,MAAU;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,2BAA2B,CAAC;KACtC;SACI;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SACxB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SACrC;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,wBAAM"} \ No newline at end of file diff --git a/commands/append.ts b/commands/append.ts index e69de29..2f7aef5 100644 --- a/commands/append.ts +++ b/commands/append.ts @@ -0,0 +1,16 @@ +function append(args:Array, curdir:any):string { + var buf = ""; + if (args.length == 0) { + buf += "append: missing operand\n"; + } + else { + if (curdir[args[0]] == undefined) { + curdir[args[0]] = ""; + } + for (let i = 1; i < args.length; i++) { + curdir[args[0]] += args[i] + "\n"; + } + } + return buf; +} +export { append }; \ No newline at end of file diff --git a/commands/cat.js b/commands/cat.js new file mode 100644 index 0000000..544cefe --- /dev/null +++ b/commands/cat.js @@ -0,0 +1,24 @@ +"use strict"; +exports.__esModule = true; +exports.cat = void 0; +function cat(args, curdir) { + var buf = ""; + if (args.length == 0) { + buf += "cat: missing operand\n"; + } + else { + var file = args[0]; + if (curdir[file] == undefined) { + buf += "cat: " + file + ": No such file or directory\n"; + } + else if (typeof curdir[file] == "string") { + buf += curdir[file] + "\n"; + } + else { + buf += "cat: " + file + ": Is not a file\n"; + } + } + return buf; +} +exports.cat = cat; +//# sourceMappingURL=cat.js.map \ No newline at end of file diff --git a/commands/cat.js.map b/commands/cat.js.map new file mode 100644 index 0000000..e96c4b0 --- /dev/null +++ b/commands/cat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cat.js","sourceRoot":"","sources":["cat.ts"],"names":[],"mappings":";;;AACA,SAAS,GAAG,CAAC,IAAkB,EAAE,MAAU;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,wBAAwB,CAAC;KACnC;SACI;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;YAC3B,GAAG,IAAI,OAAO,GAAG,IAAI,GAAG,+BAA+B,CAAC;SAC3D;aAEI,IAAG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;YACrC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAC9B;aACG;YACA,GAAG,IAAI,OAAO,GAAG,IAAI,GAAG,mBAAmB,CAAC;SAC/C;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,kBAAG"} \ No newline at end of file diff --git a/commands/cat.ts b/commands/cat.ts index e69de29..552afa7 100644 --- a/commands/cat.ts +++ b/commands/cat.ts @@ -0,0 +1,22 @@ +import { Socket } from 'socket.io'; +function cat(args:Array, curdir:any):string { + var buf = ""; + if (args.length == 0) { + buf += "cat: missing operand\n"; + } + else { + let file = args[0]; + if (curdir[file] == undefined) { + buf += "cat: " + file + ": No such file or directory\n"; + } + //check if type string + else if(typeof curdir[file] == "string") { + buf += curdir[file] + "\n"; + } + else{ + buf += "cat: " + file + ": Is not a file\n"; + } + } + return buf; +} +export { cat }; \ No newline at end of file diff --git a/commands/cd.js b/commands/cd.js new file mode 100644 index 0000000..404b1ac --- /dev/null +++ b/commands/cd.js @@ -0,0 +1,46 @@ +"use strict"; +exports.__esModule = true; +exports.cd = void 0; +function cd(args, curdir, socket, filesystem, curdirx) { + var buf = ""; + if (args.length == 0) { + buf += "Please specify a directory.\n"; + } + else { + if (args[0] == "..") { + if (curdirx[socket.id].length > 0) { + var sync = "filesystem[socket.id]"; + for (var i = 0; i < curdirx[socket.id].length; i++) { + sync += "['" + curdirx[socket.id][i] + "']"; + } + sync += " = curdir[socket.id];"; + console.log(sync); + eval(sync); + curdirx[socket.id].pop(); + var cmdexec = "curdir[socket.id] = filesystem[socket.id]"; + for (var i = 0; i < curdirx[socket.id].length; i++) { + cmdexec += "[(curdirx[socket.id][" + i + "])]"; + } + eval(cmdexec); + } + } + else { + if (curdir[socket.id][args[0]] != undefined) { + if (typeof curdir[socket.id][args[0]] == "object") { + curdir[socket.id] = curdir[socket.id][args[0]]; + buf += "Changed directory to " + args[0] + "\n"; + curdirx[socket.id].push(args[0]); + } + else { + buf += "cd: " + args[0] + ": Is not a directory\n"; + } + } + else { + buf += "Directory " + args[0] + " does not exist.\n"; + } + } + } + return buf; +} +exports.cd = cd; +//# sourceMappingURL=cd.js.map \ No newline at end of file diff --git a/commands/cd.js.map b/commands/cd.js.map new file mode 100644 index 0000000..c303fd7 --- /dev/null +++ b/commands/cd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cd.js","sourceRoot":"","sources":["cd.ts"],"names":[],"mappings":";;;AAEA,SAAS,EAAE,CAAC,IAAkB,EAAE,MAAU,EAAE,MAAa,EAAE,UAAc,EAAE,OAAqB;IAC5F,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,+BAA+B,CAAC;KAE1C;SACI;QACD,IAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAIhB,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAE/B,IAAI,IAAI,GAAG,uBAAuB,CAAC;gBACnC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/C,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBAC/C;gBACD,IAAI,IAAI,uBAAuB,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;gBAGzB,IAAI,OAAO,GAAG,2CAA2C,CAAC;gBAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAChD,OAAO,IAAI,uBAAuB,GAAG,CAAC,GAAG,KAAK,CAAC;iBAClD;gBACD,IAAI,CAAC,OAAO,CAAC,CAAC;aACjB;SACJ;aACI;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;gBAEzC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;oBAC/C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,GAAG,IAAI,uBAAuB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBAChD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC;qBACG;oBACA,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC;iBACtD;aAEJ;iBACI;gBACD,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;aAExD;SACJ;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,gBAAE"} \ No newline at end of file diff --git a/commands/cd.ts b/commands/cd.ts index e69de29..d01cb99 100644 --- a/commands/cd.ts +++ b/commands/cd.ts @@ -0,0 +1,55 @@ +import { Socket } from 'socket.io'; + +function cd(args:Array, curdir:any, socket:Socket, filesystem:any, curdirx:Array):string { + var buf = ""; + if (args.length == 0) { + buf += "Please specify a directory.\n"; + + } + else { + if(args[0] == "..") { + //go up one directory + //recursively scan filesystem until we find curdir and then set curdir to its parent + //check curdirx is not empty + if (curdirx[socket.id].length > 0) { + //pop off last element + var sync = "filesystem[socket.id]"; + for(let i = 0; i < curdirx[socket.id].length; i++) { + sync += "['" + curdirx[socket.id][i] + "']"; + } + sync += " = curdir[socket.id];"; + console.log(sync); + eval(sync); + curdirx[socket.id].pop(); + //curdir = filesystem[socket.id][(curdirx[socket.id][0])][(curdirx[socket.id][1])].......; + //i know i shouldnt use eval but I don't know any other way to do this + var cmdexec = "curdir[socket.id] = filesystem[socket.id]"; + //syncing = write curdir to a path in the filesystem + for (let i = 0; i < curdirx[socket.id].length; i++) { + cmdexec += "[(curdirx[socket.id][" + i + "])]"; + } + eval(cmdexec); + } + } + else { + if (curdir[socket.id][args[0]] != undefined) { + //check if type dict + if (typeof curdir[socket.id][args[0]] == "object") { + curdir[socket.id] = curdir[socket.id][args[0]]; + buf += "Changed directory to " + args[0] + "\n"; + curdirx[socket.id].push(args[0]); + } + else{ + buf += "cd: " + args[0] + ": Is not a directory\n"; + } + + } + else { + buf += "Directory " + args[0] + " does not exist.\n"; + + } + } + } + return buf; +} +export { cd }; \ No newline at end of file diff --git a/commands/clear.js b/commands/clear.js new file mode 100644 index 0000000..779121a --- /dev/null +++ b/commands/clear.js @@ -0,0 +1,9 @@ +"use strict"; +exports.__esModule = true; +exports.clear = void 0; +function clear(buffer) { + buffer = ""; + return ""; +} +exports.clear = clear; +//# sourceMappingURL=clear.js.map \ No newline at end of file diff --git a/commands/clear.js.map b/commands/clear.js.map new file mode 100644 index 0000000..3353f86 --- /dev/null +++ b/commands/clear.js.map @@ -0,0 +1 @@ +{"version":3,"file":"clear.js","sourceRoot":"","sources":["clear.ts"],"names":[],"mappings":";;;AAAA,SAAS,KAAK,CAAC,MAAa;IACxB,MAAM,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;AACd,CAAC;AACQ,sBAAK"} \ No newline at end of file diff --git a/commands/clear.ts b/commands/clear.ts index e69de29..adca431 100644 --- a/commands/clear.ts +++ b/commands/clear.ts @@ -0,0 +1,5 @@ +function clear(buffer:string):string { + buffer = ""; + return ""; +} +export { clear }; \ No newline at end of file diff --git a/commands/commands.js b/commands/commands.js index 40726cf..bc22b2b 100644 --- a/commands/commands.js +++ b/commands/commands.js @@ -1,367 +1,99 @@ "use strict"; exports.__esModule = true; exports.resolveCommand = void 0; -var SerAny = require('serialize-anything'); -var fs = require('fs'); +var append_1 = require("./append"); +var cat_1 = require("./cat"); +var cd_1 = require("./cd"); +var clear_1 = require("./clear"); +var cp_1 = require("./cp"); +var echo_1 = require("./echo"); +var exec_1 = require("./exec"); +var help_1 = require("./help"); +var loadsess_1 = require("./loadsess"); +var ls_1 = require("./ls"); +var man_1 = require("./man"); +var mkdir_1 = require("./mkdir"); +var mv_1 = require("./mv"); +var overwrite_1 = require("./overwrite"); +var pwd_1 = require("./pwd"); +var rm_1 = require("./rm"); +var rmdir_1 = require("./rmdir"); +var savesess_1 = require("./savesess"); +var screenshot_1 = require("./screenshot"); +var spam_1 = require("./spam"); +var touch_1 = require("./touch"); +var wee_1 = require("./wee"); +var woo_1 = require("./woo"); function resolveCommand(commandname, socket, args, buffer, sessions, filesystem, curdir, curdirx) { switch (commandname) { case "help": - buffer[socket.id] += "Available commands:\n"; - buffer[socket.id] += "help - shows this help\n"; - buffer[socket.id] += "clear - clears the console\n"; - buffer[socket.id] += "exit - exits the console\n"; - buffer[socket.id] += "ls - lists the files in the current directory\n"; - buffer[socket.id] += "cd - changes the current directory\n"; - buffer[socket.id] += "echo - prints the arguments\n"; - buffer[socket.id] += "mkdir - creates a new directory\n"; - buffer[socket.id] += "cat - prints the contents of a file\n"; - buffer[socket.id] += "touch - creates a new file\n"; - buffer[socket.id] += "rm - removes a file\n"; - buffer[socket.id] += "mv - moves a file\n"; - buffer[socket.id] += "cp - copies a file\n"; - buffer[socket.id] += "rmdir - removes a directory\n"; - buffer[socket.id] += "pwd - prints the current directory\n"; - buffer[socket.id] += "exec - executes a file\n"; - buffer[socket.id] += "spam - spams the console\n"; - buffer[socket.id] += "overwrite - overwrites the file with data\n"; - buffer[socket.id] += "append - appends the arguments to a file\n"; - buffer[socket.id] += "screenshot - takes a screenshot\n"; - buffer[socket.id] += "man - display longer help\n"; - buffer[socket.id] += "tree - display directory tree"; + buffer[socket.id] += (0, help_1.help)(); break; case "man": - if (args.length == 0) { - buffer[socket.id] += "Missing arguments"; - } - switch (args[0]) { - case "help": - buffer[socket.id] += "Prints the list of available commands\n"; - break; - case "clear": - buffer[socket.id] += "Clears the console\n"; - break; - case "exit": - buffer[socket.id] += "Exits the console\n"; - break; - case "ls": - buffer[socket.id] += "Lists the files in the current directory, also displays if file or directory\n"; - break; - case "cd": - buffer[socket.id] += "Changes the current directory\n"; - break; - case "echo": - buffer[socket.id] += "Prints the arguments to the console\n"; - break; - case "mkdir": - buffer[socket.id] += "Creates a new directory in the current directory\n"; - break; - case "cat": - buffer[socket.id] += "Prints the contents of a file out to the console\n"; - break; - case "touch": - buffer[socket.id] += "Creates a new file in the current directory\n"; - break; - case "rm": - buffer[socket.id] += "Removes a file from the current directory\n"; - break; - case "mv": - buffer[socket.id] += "Moves a file from one directory to another\n"; - break; - case "cp": - buffer[socket.id] += "Copies a file from one directory to another\n"; - break; - case "rmdir": - buffer[socket.id] += "Removes a directory from the current directory\n"; - break; - case "pwd": - buffer[socket.id] += "Prints the current directory out to the console\n"; - break; - case "exec": - buffer[socket.id] += "Executes a file in the console, you can \'t use \"exit\" and \"exec\" commands\n"; - break; - case "spam": - buffer[socket.id] += "Spams the console with a message\n"; - break; - case "overwrite": - buffer[socket.id] += "Overwrites a file with from arguments\n"; - break; - case "append": - buffer[socket.id] += "Appends the arguments to a file\n"; - break; - case "screenshot": - buffer[socket.id] += "Takes a screenshot of the console and saves it to a file\n"; - break; - case "man": - buffer[socket.id] += "This manual databank\n"; - break; - default: - buffer[socket.id] += "No such command\n"; - } - break; - case "savesess": - if (args.length == 2) { - if (args[0] == "kryptic") { - sessions[args[1]] = []; - sessions[args[1]]["buffer"] = buffer[socket.id].slice(); - sessions[args[1]]["filesystem"] = JSON.parse(JSON.stringify(filesystem[socket.id])); - sessions[args[1]]["curdir"] = JSON.parse(JSON.stringify(curdir[socket.id])); - var data = SerAny.serialize(sessions); - fs.writeFileSync("./sessions.json", data); - buffer[socket.id] += "Session saved.\n"; - } - else { - buffer[socket.id] += "Invalid command."; - } - } - else { - buffer[socket.id] += "Invalid command."; - } - break; - case "loadsess": - if (args.length == 1) { - sessions = SerAny.deserialize(fs.readFileSync("./sessions.json")); - if (sessions[args[0]] != undefined) { - filesystem[socket.id] = sessions[args[0]]["filesystem"]; - curdir[socket.id] = sessions[args[0]]["curdir"]; - buffer[socket.id] = sessions[args[0]]["buffer"]; - buffer[socket.id] += "Session loaded.\n"; - } - } - else { - } - break; - case "wee": - buffer[socket.id] += "woo\n"; - break; - case "woo": - buffer[socket.id] += "wee\n"; + buffer[socket.id] += (0, man_1.man)(args); break; case "screenshot": - curdir[socket.id][args[0]] = buffer[socket.id]; - buffer[socket.id] += "Screenshot saved to " + args[0] + "\n"; + buffer[socket.id] += (0, screenshot_1.screenshot)(args, curdir, buffer, socket); break; case "append": - if (args.length == 0) { - buffer[socket.id] += "append: missing operand\n"; - } - else { - if (curdir[socket.id][args[0]] == undefined) { - curdir[socket.id][args[0]] = ""; - } - for (var i = 1; i < args.length; i++) { - curdir[socket.id][args[0]] += args[i] + "\n"; - } - } - break; - case "rm": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "string") { - delete curdir[socket.id][args[0]]; - buffer[socket.id] += "File " + args[0] + " removed\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a file\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "mv": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "string") { - curdir[socket.id][args[1]] = curdir[socket.id][args[0]]; - delete curdir[socket.id][args[0]]; - buffer[socket.id] += "File " + args[0] + " moved to " + args[1] + "\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a file\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "cp": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "string") { - curdir[socket.id][args[1]] = curdir[socket.id][args[0]].slice(0); - buffer[socket.id] += "File " + args[0] + " copied to " + args[1] + "\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a file\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "rmdir": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "object") { - delete curdir[socket.id][args[0]]; - buffer[socket.id] += "Directory " + args[0] + " removed\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a directory\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "spam": - for (var i = 0; i < parseInt(args[0]); i++) { - buffer[socket.id] += args.slice(1).join(" ") + "\n"; - } - break; - case "touch": - if (args.length == 0) { - buffer[socket.id] += "touch: missing operand\n"; - } - else { - curdir[socket.id][args[0]] = ""; - } + buffer[socket.id] += (0, append_1.append)(args, curdir[socket.id]); break; case "overwrite": - if (args.length == 0) { - buffer[socket.id] += "overwrite: missing operand\n"; - } - else { - curdir[socket.id][args[0]] = ""; - for (var i = 1; i < args.length; i++) { - curdir[socket.id][args[0]] += args[i] + " "; - } - } + buffer[socket.id] += (0, overwrite_1.overwrite)(args, curdir[socket.id]); break; - case "cat": - if (args.length == 0) { - buffer[socket.id] += "cat: missing operand\n"; - } - else { - var file = args[0]; - if (curdir[socket.id][file] == undefined) { - buffer[socket.id] += "cat: " + file + ": No such file or directory\n"; - } - else if (typeof curdir[socket.id][file] == "string") { - buffer[socket.id] += curdir[socket.id][file] + "\n"; - } - else { - buffer[socket.id] += "cat: " + file + ": Is not a file\n"; - } - } + case "rm": + buffer[socket.id] += (0, rm_1.rm)(args, curdir, socket); break; - case "echo": - buffer[socket.id] += args.join(' '); - buffer[socket.id] += "\n"; + case "mv": + buffer[socket.id] += (0, mv_1.mv)(args, curdir[socket.id]); break; - case "clear": - buffer[socket.id] = ""; - break; - case "exit": - buffer[socket.id] = ""; - buffer[socket.id] += "Bye!\n"; - socket.disconnect(); - break; - case "exec": - if (args.length == 0) { - buffer[socket.id] += "exec: missing operand\n"; - } - else { - var file = args[0]; - if (curdir[socket.id][file] == undefined) { - buffer[socket.id] += "exec: " + file + ": No such file or directory\n"; - } - else if (typeof curdir[socket.id][file] == "string") { - var commands = curdir[socket.id][file].split("\n"); - for (var i = 0; i < commands.length; i++) { - var exploded = commands[i].split(" "); - var commandx = exploded[0]; - var bannedcommands = ["exec", "exit"]; - if (!bannedcommands.includes(commandx)) { - var argsx = exploded.slice(1); - resolveCommand(commandx, socket, argsx, buffer, sessions, filesystem, curdir, curdirx); - } - else { - buffer[socket.id] += "Error: " + commandx + " is a restricted command\n"; - } - } - } - else { - buffer[socket.id] += "exec: " + file + ": Is not a file\n"; - } - } - break; - case "ls": - buffer[socket.id] += "Files in the current directory:\n"; - for (var key in curdir[socket.id]) { - if (typeof curdir[socket.id][key] == "string") { - buffer[socket.id] += key + " (file)\n"; - } - else if (typeof curdir[socket.id][key] == "object") { - buffer[socket.id] += key + " (directory)\n"; - } - else { - buffer[socket.id] += key + " (unknown)\n"; - } - } - break; - case "cd": - if (args.length == 0) { - buffer[socket.id] += "Please specify a directory.\n"; - } - else { - if (args[0] == "..") { - if (curdirx[socket.id].length > 0) { - var sync = "filesystem[socket.id]"; - for (var i = 0; i < curdirx[socket.id].length; i++) { - sync += "['" + curdirx[socket.id][i] + "']"; - } - sync += " = curdir[socket.id];"; - console.log(sync); - eval(sync); - curdirx[socket.id].pop(); - var cmdexec = "curdir[socket.id] = filesystem[socket.id]"; - for (var i = 0; i < curdirx[socket.id].length; i++) { - cmdexec += "[(curdirx[socket.id][" + i + "])]"; - } - eval(cmdexec); - } - } - else { - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "object") { - curdir[socket.id] = curdir[socket.id][args[0]]; - buffer[socket.id] += "Changed directory to " + args[0] + "\n"; - curdirx[socket.id].push(args[0]); - } - else { - buffer[socket.id] += "cd: " + args[0] + ": Is not a directory\n"; - } - } - else { - buffer[socket.id] += "Directory " + args[0] + " does not exist.\n"; - } - } - } - break; - case "pwd": - var curdirasstring = curdirx[socket.id].join("/"); - buffer[socket.id] += "Current directory: " + curdirasstring + "\n"; + case "cp": + buffer[socket.id] += (0, cp_1.cp)(args, curdir[socket.id]); break; case "mkdir": - if (args.length == 0) { - buffer[socket.id] += "Please specify a directory.\n"; - } - else { - if (curdir[socket.id][args[0]]) { - buffer[socket.id] += "Directory " + args[0] + " already exists.\n"; - } - else { - curdir[socket.id][args[0]] = {}; - buffer[socket.id] += "Created directory " + args[0] + "\n"; - } - } + buffer[socket.id] += (0, mkdir_1.mkdir)(args, curdir[socket.id]); + break; + case "rmdir": + buffer[socket.id] += (0, rmdir_1.rmdir)(args, curdir, socket); + break; + case "touch": + buffer[socket.id] += (0, touch_1.touch)(args, curdir, socket); + break; + case "cat": + buffer[socket.id] += (0, cat_1.cat)(args, curdir[socket.id]); + break; + case "exec": + buffer[socket.id] += (0, exec_1.exec)(args, curdir, socket, buffer, sessions, filesystem, curdirx); + break; + case "ls": + buffer[socket.id] += (0, ls_1.ls)(curdir[socket.id]); + break; + case "cd": + buffer[socket.id] += (0, cd_1.cd)(args, curdir, socket, filesystem, curdirx); + break; + case "pwd": + buffer[socket.id] += (0, pwd_1.pwd)(curdirx[socket.id]); + break; + case "echo": + buffer[socket.id] += (0, echo_1.echo)(args); + break; + case "clear": + buffer[socket.id] += (0, clear_1.clear)(buffer[socket.id]); + break; + case "savesess": + buffer[socket.id] += (0, savesess_1.savesess)(args, sessions, filesystem, curdir, buffer, socket); + break; + case "loadsess": + buffer[socket.id] += (0, loadsess_1.loadsess)(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id]); + break; + case "wee": + buffer[socket.id] += (0, wee_1.wee)(); + break; + case "woo": + buffer[socket.id] += (0, woo_1.woo)(); + break; + case "spam": + buffer[socket.id] += (0, spam_1.spam)(args); break; default: buffer[socket.id] += "Invalid command.\n"; diff --git a/commands/commands.js.map b/commands/commands.js.map index d2b0732..9f49f06 100644 --- a/commands/commands.js.map +++ b/commands/commands.js.map @@ -1 +1 @@ -{"version":3,"file":"commands.js","sourceRoot":"","sources":["commands.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"commands.js","sourceRoot":"","sources":["commands.ts"],"names":[],"mappings":";;;AACA,mCAAkC;AAClC,6BAA4B;AAC5B,2BAA0B;AAC1B,iCAAgC;AAChC,2BAA0B;AAC1B,+BAA8B;AAC9B,+BAA8B;AAC9B,+BAA8B;AAC9B,uCAAsC;AACtC,2BAA0B;AAC1B,6BAA4B;AAC5B,iCAAgC;AAChC,2BAA0B;AAC1B,yCAAwC;AACxC,6BAA4B;AAC5B,2BAA0B;AAC1B,iCAAgC;AAChC,uCAAsC;AACtC,2CAA0C;AAC1C,+BAA8B;AAC9B,iCAAgC;AAChC,6BAA4B;AAC5B,6BAA4B;AAC5B,SAAS,cAAc,CAAC,WAAkB,EAAE,MAAa,EAAE,IAAa,EAAE,MAA+B,EAAE,QAAY,EAAE,UAAc,EAAE,MAAU,EAAE,OAAW;IAC5J,QAAQ,WAAW,EAAE;QACjB,KAAK,MAAM;YACP,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,WAAI,GAAE,CAAC;YAC5B,MAAM;QACV,KAAK,KAAK;YACN,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,SAAG,EAAC,IAAI,CAAC,CAAC;YAC/B,MAAM;QACV,KAAK,YAAY;YACb,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,uBAAU,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,eAAM,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM;QACV,KAAK,WAAW;YACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,qBAAS,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM;QACV,KAAK,IAAI;YACL,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,OAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM;QACV,KAAK,IAAI;YACL,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,OAAE,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,IAAI;YACL,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,OAAE,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,OAAO;YACR,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,aAAK,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM;QACN,KAAK,OAAO;YACR,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,aAAK,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,OAAO;YACR,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,aAAK,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM;QACV,KAAK,KAAK;YACN,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,SAAG,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM;QACV,KAAK,MAAM;YACP,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,WAAI,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACvF,MAAM;QACV,KAAK,IAAI;YACL,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,OAAE,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM;QACV,KAAK,IAAI;YACL,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,OAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM;QACV,KAAK,KAAK;YACN,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,SAAG,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM;QACV,KAAK,MAAM;YACP,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,WAAI,EAAC,IAAI,CAAC,CAAC;YAChC,MAAM;QACV,KAAK,OAAO;YACR,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,aAAK,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM;QACV,KAAK,UAAU;YACX,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,mBAAQ,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAClF,MAAM;QACV,KAAK,UAAU;YACX,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,mBAAQ,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3G,MAAM;QACV,KAAK,KAAK;YACN,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,SAAG,GAAE,CAAC;YAC3B,MAAM;QACV,KAAK,KAAK;YACN,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,SAAG,GAAE,CAAC;YAC3B,MAAM;QACV,KAAK,MAAM;YACX,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAA,WAAI,EAAC,IAAI,CAAC,CAAC;YAChC,MAAM;QAEN;YACI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC;KACjD;IACD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;AAC7B,CAAC;AACO,wCAAc"} \ No newline at end of file diff --git a/commands/commands.ts b/commands/commands.ts index f8fee26..71aa7af 100644 --- a/commands/commands.ts +++ b/commands/commands.ts @@ -1,398 +1,98 @@ import { Socket } from 'socket.io'; -const SerAny = require('serialize-anything'); -var fs = require('fs'); +import { append } from './append'; +import { cat } from './cat'; +import { cd } from './cd'; +import { clear } from './clear'; +import { cp } from './cp'; +import { echo } from './echo'; +import { exec } from './exec'; +import { help } from './help'; +import { loadsess } from './loadsess'; +import { ls } from './ls'; +import { man } from './man'; +import { mkdir } from './mkdir'; +import { mv } from './mv'; +import { overwrite } from './overwrite'; +import { pwd } from './pwd'; +import { rm } from './rm'; +import { rmdir } from './rmdir'; +import { savesess } from './savesess'; +import { screenshot } from './screenshot'; +import { spam } from './spam'; +import { touch } from './touch'; +import { wee } from './wee'; +import { woo } from './woo'; function resolveCommand(commandname:string, socket:Socket, args:string[], buffer:{ [id: string]: string }, sessions:any, filesystem:any, curdir:any, curdirx:any) { switch (commandname) { case "help": - buffer[socket.id] += "Available commands:\n"; - buffer[socket.id] += "help - shows this help\n"; - buffer[socket.id] += "clear - clears the console\n"; - buffer[socket.id] += "exit - exits the console\n"; - buffer[socket.id] += "ls - lists the files in the current directory\n"; - buffer[socket.id] += "cd - changes the current directory\n"; - buffer[socket.id] += "echo - prints the arguments\n"; - buffer[socket.id] += "mkdir - creates a new directory\n"; - buffer[socket.id] += "cat - prints the contents of a file\n"; - buffer[socket.id] += "touch - creates a new file\n"; - buffer[socket.id] += "rm - removes a file\n"; - buffer[socket.id] += "mv - moves a file\n"; - buffer[socket.id] += "cp - copies a file\n"; - buffer[socket.id] += "rmdir - removes a directory\n"; - buffer[socket.id] += "pwd - prints the current directory\n"; - buffer[socket.id] += "exec - executes a file\n"; - buffer[socket.id] += "spam - spams the console\n"; - buffer[socket.id] += "overwrite - overwrites the file with data\n"; - buffer[socket.id] += "append - appends the arguments to a file\n"; - buffer[socket.id] += "screenshot - takes a screenshot\n"; - buffer[socket.id] += "man - display longer help\n"; - buffer[socket.id] += "tree - display directory tree"; + buffer[socket.id] += help(); break; case "man": - if(args.length == 0){ - buffer[socket.id] += "Missing arguments" - } - switch (args[0]){ - case "help": - buffer[socket.id] += "Prints the list of available commands\n"; - break; - case "clear": - buffer[socket.id] += "Clears the console\n"; - break; - case "exit": - buffer[socket.id] += "Exits the console\n"; - break; - case "ls": - buffer[socket.id] += "Lists the files in the current directory, also displays if file or directory\n"; - break; - case "cd": - buffer[socket.id] += "Changes the current directory\n"; - break; - case "echo": - buffer[socket.id] += "Prints the arguments to the console\n"; - break; - case "mkdir": - buffer[socket.id] += "Creates a new directory in the current directory\n"; - break; - case "cat": - buffer[socket.id] += "Prints the contents of a file out to the console\n"; - break; - case "touch": - buffer[socket.id] += "Creates a new file in the current directory\n"; - break; - case "rm": - buffer[socket.id] += "Removes a file from the current directory\n"; - break; - case "mv": - buffer[socket.id] += "Moves a file from one directory to another\n"; - break; - case "cp": - buffer[socket.id] += "Copies a file from one directory to another\n"; - break; - case "rmdir": - buffer[socket.id] += "Removes a directory from the current directory\n"; - break; - case "pwd": - buffer[socket.id] += "Prints the current directory out to the console\n"; - break; - case "exec": - buffer[socket.id] += "Executes a file in the console, you can \'t use \"exit\" and \"exec\" commands\n"; - break; - case "spam": - buffer[socket.id] += "Spams the console with a message\n"; - break; - case "overwrite": - buffer[socket.id] += "Overwrites a file with from arguments\n"; - break; - case "append": - buffer[socket.id] += "Appends the arguments to a file\n"; - break; - case "screenshot": - buffer[socket.id] += "Takes a screenshot of the console and saves it to a file\n"; - break; - case "man": - buffer[socket.id] += "This manual databank\n" - break - default: - buffer[socket.id] += "No such command\n" - } - break; - case "savesess": - if (args.length == 2) { - if (args[0] == "kryptic") { - sessions[args[1]] = []; - sessions[args[1]]["buffer"] = buffer[socket.id].slice(); - sessions[args[1]]["filesystem"] = JSON.parse(JSON.stringify(filesystem[socket.id])); - sessions[args[1]]["curdir"] = JSON.parse(JSON.stringify(curdir[socket.id])); - var data = SerAny.serialize(sessions); - //write all sessions to a single file called sessions.json - fs.writeFileSync("./sessions.json", data); - - buffer[socket.id] += "Session saved.\n"; - } - else { - buffer[socket.id] += "Invalid command."; - } - } - else { - buffer[socket.id] += "Invalid command."; - } - break; - case "loadsess": - if (args.length == 1) { - sessions = SerAny.deserialize(fs.readFileSync("./sessions.json")); - if(sessions[args[0]] != undefined) { - filesystem[socket.id] = sessions[args[0]]["filesystem"]; - curdir[socket.id] = sessions[args[0]]["curdir"]; - buffer[socket.id] = sessions[args[0]]["buffer"]; - buffer[socket.id] += "Session loaded.\n"; - } - } - else { - - } - break; - case "wee": - buffer[socket.id] += "woo\n"; - break; - case "woo": - buffer[socket.id] += "wee\n"; - break; - //implement more commands + buffer[socket.id] += man(args); + break; //implement more commands case "screenshot": - curdir[socket.id][args[0]] = buffer[socket.id]; - buffer[socket.id] += "Screenshot saved to " + args[0] + "\n"; - + buffer[socket.id] += screenshot(args, curdir, buffer, socket); break; case "append": - if (args.length == 0) { - buffer[socket.id] += "append: missing operand\n"; - } - else { - if (curdir[socket.id][args[0]] == undefined) { - curdir[socket.id][args[0]] = ""; - } - for (let i = 1; i < args.length; i++) { - curdir[socket.id][args[0]] += args[i] + "\n"; - } - } - break; - case "rm": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "string") { - delete curdir[socket.id][args[0]]; - buffer[socket.id] += "File " + args[0] + " removed\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a file\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "mv": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "string") { - curdir[socket.id][args[1]] = curdir[socket.id][args[0]]; - delete curdir[socket.id][args[0]]; - buffer[socket.id] += "File " + args[0] + " moved to " + args[1] + "\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a file\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "cp": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "string") { - curdir[socket.id][args[1]] = curdir[socket.id][args[0]].slice(0); - buffer[socket.id] += "File " + args[0] + " copied to " + args[1] + "\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a file\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "rmdir": - if (curdir[socket.id][args[0]] != undefined) { - if (typeof curdir[socket.id][args[0]] == "object") { - delete curdir[socket.id][args[0]]; - buffer[socket.id] += "Directory " + args[0] + " removed\n"; - } - else { - buffer[socket.id] += "Error: " + args[0] + " is not a directory\n"; - } - } - else { - buffer[socket.id] += "Error: " + args[0] + " does not exist\n"; - } - break; - case "spam": - //spam arguments times from first argument - for (let i = 0; i < parseInt(args[0]); i++) { - buffer[socket.id] += args.slice(1).join(" ") + "\n"; - } - break; - case "touch": - if (args.length == 0) { - buffer[socket.id] += "touch: missing operand\n"; - } - else { - curdir[socket.id][args[0]] = ""; - } - + buffer[socket.id] += append(args, curdir[socket.id]); break; case "overwrite": - if (args.length == 0) { - buffer[socket.id] += "overwrite: missing operand\n"; - } - else { - curdir[socket.id][args[0]] = ""; - for (let i = 1; i < args.length; i++) { - curdir[socket.id][args[0]] += args[i] + " "; - } - } + buffer[socket.id] += overwrite(args, curdir[socket.id]); break; - case "cat": - if (args.length == 0) { - buffer[socket.id] += "cat: missing operand\n"; - } - else { - let file = args[0]; - if (curdir[socket.id][file] == undefined) { - buffer[socket.id] += "cat: " + file + ": No such file or directory\n"; - } - //check if type string - else if(typeof curdir[socket.id][file] == "string") { - buffer[socket.id] += curdir[socket.id][file] + "\n"; - } - else{ - buffer[socket.id] += "cat: " + file + ": Is not a file\n"; - } - } - + case "rm": + buffer[socket.id] += rm(args, curdir, socket); break; - case "echo": - buffer[socket.id] += args.join(' '); - buffer[socket.id] += "\n"; + case "mv": + buffer[socket.id] += mv(args, curdir[socket.id]); break; - case "clear": - buffer[socket.id] = ""; - - break; - case "exit": - buffer[socket.id] = ""; - buffer[socket.id] += "Bye!\n"; - - socket.disconnect(); - break; - case "exec": - if (args.length == 0) { - buffer[socket.id] += "exec: missing operand\n"; - } - else { - let file = args[0]; - if (curdir[socket.id][file] == undefined) { - buffer[socket.id] += "exec: " + file + ": No such file or directory\n"; - } - //check if type string - else if(typeof curdir[socket.id][file] == "string") { - //split string into array of commands - let commands = curdir[socket.id][file].split("\n"); - for (let i = 0; i < commands.length; i++) { - let exploded = commands[i].split(" "); - let commandx = exploded[0]; - let bannedcommands = ["exec", "exit"]; - if (!bannedcommands.includes(commandx)) { - let argsx = exploded.slice(1); - resolveCommand(commandx, socket, argsx, buffer, sessions, filesystem, curdir, curdirx); - } - else{ - buffer[socket.id] += "Error: " + commandx + " is a restricted command\n"; - } - } - } - else{ - buffer[socket.id] += "exec: " + file + ": Is not a file\n"; - } - } - break; - case "ls": - buffer[socket.id] += "Files in the current directory:\n"; - //list only first level files - for (var key in curdir[socket.id]) { - //buffer[socket.id] += key + "\n"; - //also print if it is a directory or file - if (typeof curdir[socket.id][key] == "string") { - buffer[socket.id] += key + " (file)\n"; - } - else if (typeof curdir[socket.id][key] == "object") { - buffer[socket.id] += key + " (directory)\n"; - } - else { - buffer[socket.id] += key + " (unknown)\n"; - } - } - - break; - case "cd": - if (args.length == 0) { - buffer[socket.id] += "Please specify a directory.\n"; - - } - else { - if(args[0] == "..") { - //go up one directory - //recursively scan filesystem until we find curdir and then set curdir to its parent - //check curdirx is not empty - if (curdirx[socket.id].length > 0) { - //pop off last element - var sync = "filesystem[socket.id]"; - for(let i = 0; i < curdirx[socket.id].length; i++) { - sync += "['" + curdirx[socket.id][i] + "']"; - } - sync += " = curdir[socket.id];"; - console.log(sync); - eval(sync); - curdirx[socket.id].pop(); - //curdir = filesystem[socket.id][(curdirx[socket.id][0])][(curdirx[socket.id][1])].......; - //i know i shouldnt use eval but I don't know any other way to do this - var cmdexec = "curdir[socket.id] = filesystem[socket.id]"; - //syncing = write curdir to a path in the filesystem - for (let i = 0; i < curdirx[socket.id].length; i++) { - cmdexec += "[(curdirx[socket.id][" + i + "])]"; - } - eval(cmdexec); - } - } - else { - if (curdir[socket.id][args[0]] != undefined) { - //check if type dict - if (typeof curdir[socket.id][args[0]] == "object") { - curdir[socket.id] = curdir[socket.id][args[0]]; - buffer[socket.id] += "Changed directory to " + args[0] + "\n"; - curdirx[socket.id].push(args[0]); - } - else{ - buffer[socket.id] += "cd: " + args[0] + ": Is not a directory\n"; - } - - } - else { - buffer[socket.id] += "Directory " + args[0] + " does not exist.\n"; - - } - } - } - break; - case "pwd": - var curdirasstring = curdirx[socket.id].join("/"); - buffer[socket.id] += "Current directory: " + curdirasstring + "\n"; - + case "cp": + buffer[socket.id] += cp(args, curdir[socket.id]); break; case "mkdir": - if (args.length == 0) { - buffer[socket.id] += "Please specify a directory.\n"; - - } - else { - if (curdir[socket.id][args[0]]) { - buffer[socket.id] += "Directory " + args[0] + " already exists.\n"; - - } - else { - curdir[socket.id][args[0]] = {}; - buffer[socket.id] += "Created directory " + args[0] + "\n"; - - } - } + buffer[socket.id] += mkdir(args, curdir[socket.id]); + break; + case "rmdir": + buffer[socket.id] += rmdir(args, curdir, socket); break; + case "touch": + buffer[socket.id] += touch(args, curdir, socket); + break; + case "cat": + buffer[socket.id] += cat(args, curdir[socket.id]); + break; + case "exec": + buffer[socket.id] += exec(args, curdir, socket, buffer, sessions, filesystem, curdirx); + break; + case "ls": + buffer[socket.id] += ls(curdir[socket.id]); + break; + case "cd": + buffer[socket.id] += cd(args, curdir, socket, filesystem, curdirx); + break; + case "pwd": + buffer[socket.id] += pwd(curdirx[socket.id]); + break; + case "echo": + buffer[socket.id] += echo(args); + break; + case "clear": + buffer[socket.id] += clear(buffer[socket.id]); + break; + case "savesess": + buffer[socket.id] += savesess(args, sessions, filesystem, curdir, buffer, socket); + break; + case "loadsess": + buffer[socket.id] += loadsess(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id]); + break; + case "wee": + buffer[socket.id] += wee(); + break; + case "woo": + buffer[socket.id] += woo(); + break; + case "spam": + buffer[socket.id] += spam(args); + break; //invalid command default: buffer[socket.id] += "Invalid command.\n"; diff --git a/commands/cp.js b/commands/cp.js new file mode 100644 index 0000000..8cf99b5 --- /dev/null +++ b/commands/cp.js @@ -0,0 +1,26 @@ +"use strict"; +exports.__esModule = true; +exports.cp = void 0; +function cp(args, curdir) { + var buf = ""; + if (args.length == 2) { + if (curdir[args[0]] != undefined) { + if (typeof curdir[args[0]] == "string") { + curdir[args[1]] = curdir[args[0]].slice(0); + buf += "File " + args[0] + " copied to " + args[1] + "\n"; + } + else { + buf += "Error: " + args[0] + " is not a file\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + } + else { + buf += "Wrong number of arguments.\n"; + } + return buf; +} +exports.cp = cp; +//# sourceMappingURL=cp.js.map \ No newline at end of file diff --git a/commands/cp.js.map b/commands/cp.js.map new file mode 100644 index 0000000..ec241ae --- /dev/null +++ b/commands/cp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cp.js","sourceRoot":"","sources":["cp.ts"],"names":[],"mappings":";;;AAAA,SAAS,EAAE,CAAC,IAAkB,EAAE,MAAU;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QACjB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;YAC9B,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC7D;iBACI;gBACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;aACnD;SACJ;aACI;YACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;SACpD;KACJ;SACI;QACD,GAAG,IAAI,8BAA8B,CAAC;KACzC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,gBAAE"} \ No newline at end of file diff --git a/commands/cp.ts b/commands/cp.ts index e69de29..425fa39 100644 --- a/commands/cp.ts +++ b/commands/cp.ts @@ -0,0 +1,22 @@ +function cp(args:Array, curdir:any):string { + var buf = ""; + if(args.length == 2) { + if (curdir[args[0]] != undefined) { + if (typeof curdir[args[0]] == "string") { + curdir[args[1]] = curdir[args[0]].slice(0); + buf += "File " + args[0] + " copied to " + args[1] + "\n"; + } + else { + buf += "Error: " + args[0] + " is not a file\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + } + else { + buf += "Wrong number of arguments.\n"; + } + return buf; +} +export { cp }; \ No newline at end of file diff --git a/commands/echo.js b/commands/echo.js new file mode 100644 index 0000000..e641799 --- /dev/null +++ b/commands/echo.js @@ -0,0 +1,11 @@ +"use strict"; +exports.__esModule = true; +exports.echo = void 0; +function echo(args) { + var buf = ""; + buf += args.join(' '); + buf += "\n"; + return buf; +} +exports.echo = echo; +//# sourceMappingURL=echo.js.map \ No newline at end of file diff --git a/commands/echo.js.map b/commands/echo.js.map new file mode 100644 index 0000000..17bf44c --- /dev/null +++ b/commands/echo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"echo.js","sourceRoot":"","sources":["echo.ts"],"names":[],"mappings":";;;AAAA,SAAS,IAAI,CAAC,IAAmB;IAC7B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,GAAG,IAAI,IAAI,CAAC;IACZ,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,oBAAI"} \ No newline at end of file diff --git a/commands/echo.ts b/commands/echo.ts index e69de29..321c952 100644 --- a/commands/echo.ts +++ b/commands/echo.ts @@ -0,0 +1,7 @@ +function echo(args: Array): string { + var buf = ""; + buf += args.join(' '); + buf += "\n"; + return buf; +} +export { echo }; \ No newline at end of file diff --git a/commands/exec.js b/commands/exec.js new file mode 100644 index 0000000..4d8dffe --- /dev/null +++ b/commands/exec.js @@ -0,0 +1,37 @@ +"use strict"; +exports.__esModule = true; +exports.exec = void 0; +var commands_1 = require("./commands"); +function exec(args, curdir, socket, buffer, sessions, filesystem, curdirx) { + var buf = ""; + if (args.length == 0) { + buf += "exec: missing operand\n"; + } + else { + var file = args[0]; + if (curdir[socket.id][file] == undefined) { + buf += "exec: " + file + ": No such file or directory\n"; + } + else if (typeof curdir[socket.id][file] == "string") { + var commands = curdir[socket.id][file].split("\n"); + for (var i = 0; i < commands.length; i++) { + var exploded = commands[i].split(" "); + var commandx = exploded[0]; + var bannedcommands = ["exec", "exit"]; + if (!bannedcommands.includes(commandx)) { + var argsx = exploded.slice(1); + (0, commands_1.resolveCommand)(commandx, socket, argsx, buffer, sessions, filesystem, curdir, curdirx); + } + else { + buf += "Error: " + commandx + " is a restricted command\n"; + } + } + } + else { + buf += "exec: " + file + ": Is not a file\n"; + } + } + return buf; +} +exports.exec = exec; +//# sourceMappingURL=exec.js.map \ No newline at end of file diff --git a/commands/exec.js.map b/commands/exec.js.map new file mode 100644 index 0000000..b1ba421 --- /dev/null +++ b/commands/exec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exec.js","sourceRoot":"","sources":["exec.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAE1C,SAAS,IAAI,CAAC,IAAkB,EAAE,MAAU,EAAE,MAAa,EAAE,MAA+B,EAAE,QAAY,EAAE,UAAc,EAAE,OAAqB;IAC7I,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,yBAAyB,CAAC;KACpC;SACI;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;YACtC,GAAG,IAAI,QAAQ,GAAG,IAAI,GAAG,+BAA+B,CAAC;SAC5D;aAEI,IAAG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;YAEhD,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACpC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAA,yBAAc,EAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC1F;qBACG;oBACA,GAAG,IAAI,SAAS,GAAG,QAAQ,GAAG,4BAA4B,CAAC;iBAC9D;aACJ;SACJ;aACG;YACA,GAAG,IAAI,QAAQ,GAAG,IAAI,GAAG,mBAAmB,CAAC;SAChD;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACO,oBAAI"} \ No newline at end of file diff --git a/commands/exec.ts b/commands/exec.ts index e69de29..a927456 100644 --- a/commands/exec.ts +++ b/commands/exec.ts @@ -0,0 +1,36 @@ +import {resolveCommand} from "./commands"; +import {Socket} from "socket.io"; +function exec(args:Array, curdir:any, socket:Socket, buffer:{ [id: string]: string }, sessions:any, filesystem:any, curdirx:Array):string { + var buf = ""; + if (args.length == 0) { + buf += "exec: missing operand\n"; + } + else { + let file = args[0]; + if (curdir[socket.id][file] == undefined) { + buf += "exec: " + file + ": No such file or directory\n"; + } + //check if type string + else if(typeof curdir[socket.id][file] == "string") { + //split string into array of commands + let commands = curdir[socket.id][file].split("\n"); + for (let i = 0; i < commands.length; i++) { + let exploded = commands[i].split(" "); + let commandx = exploded[0]; + let bannedcommands = ["exec", "exit"]; + if (!bannedcommands.includes(commandx)) { + let argsx = exploded.slice(1); + resolveCommand(commandx, socket, argsx, buffer, sessions, filesystem, curdir, curdirx); + } + else{ + buf += "Error: " + commandx + " is a restricted command\n"; + } + } + } + else{ + buf += "exec: " + file + ": Is not a file\n"; + } + } + return buf; +} +export {exec}; \ No newline at end of file diff --git a/commands/exit.ts b/commands/exit.ts deleted file mode 100644 index e69de29..0000000 diff --git a/commands/help.js b/commands/help.js new file mode 100644 index 0000000..85b19e1 --- /dev/null +++ b/commands/help.js @@ -0,0 +1,29 @@ +"use strict"; +exports.__esModule = true; +exports.help = void 0; +function help() { + var buf = ""; + buf += "Available commands:\n"; + buf += "help - shows this help\n"; + buf += "clear - clears the console\n"; + buf += "ls - lists the files in the current directory\n"; + buf += "cd - changes the current directory\n"; + buf += "echo - prints the arguments\n"; + buf += "mkdir - creates a new directory\n"; + buf += "cat - prints the contents of a file\n"; + buf += "touch - creates a new file\n"; + buf += "rm - removes a file\n"; + buf += "mv - moves a file\n"; + buf += "cp - copies a file\n"; + buf += "rmdir - removes a directory\n"; + buf += "pwd - prints the current directory\n"; + buf += "exec - executes a file\n"; + buf += "spam - spams the console\n"; + buf += "overwrite - overwrites the file with data\n"; + buf += "append - appends the arguments to a file\n"; + buf += "screenshot - takes a screenshot\n"; + buf += "man - display longer help\n"; + return buf; +} +exports.help = help; +//# sourceMappingURL=help.js.map \ No newline at end of file diff --git a/commands/help.js.map b/commands/help.js.map new file mode 100644 index 0000000..1f2852f --- /dev/null +++ b/commands/help.js.map @@ -0,0 +1 @@ +{"version":3,"file":"help.js","sourceRoot":"","sources":["help.ts"],"names":[],"mappings":";;;AAAA,SAAS,IAAI;IACT,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,0BAA0B,CAAC;IAClC,GAAG,IAAI,8BAA8B,CAAC;IACtC,GAAG,IAAI,iDAAiD,CAAC;IACzD,GAAG,IAAI,sCAAsC,CAAC;IAC9C,GAAG,IAAI,+BAA+B,CAAC;IACvC,GAAG,IAAI,mCAAmC,CAAC;IAC3C,GAAG,IAAI,uCAAuC,CAAC;IAC/C,GAAG,IAAI,8BAA8B,CAAC;IACtC,GAAG,IAAI,uBAAuB,CAAC;IAC/B,GAAG,IAAI,qBAAqB,CAAC;IAC7B,GAAG,IAAI,sBAAsB,CAAC;IAC9B,GAAG,IAAI,+BAA+B,CAAC;IACvC,GAAG,IAAI,sCAAsC,CAAC;IAC9C,GAAG,IAAI,0BAA0B,CAAC;IAClC,GAAG,IAAI,4BAA4B,CAAC;IACpC,GAAG,IAAI,6CAA6C,CAAC;IACrD,GAAG,IAAI,4CAA4C,CAAC;IACpD,GAAG,IAAI,mCAAmC,CAAC;IAC3C,GAAG,IAAI,6BAA6B,CAAC;IACrC,OAAO,GAAG,CAAC;AACf,CAAC;AACO,oBAAI"} \ No newline at end of file diff --git a/commands/help.ts b/commands/help.ts index e69de29..8076726 100644 --- a/commands/help.ts +++ b/commands/help.ts @@ -0,0 +1,25 @@ +function help(): string { + var buf = ""; + buf += "Available commands:\n"; + buf += "help - shows this help\n"; + buf += "clear - clears the console\n"; + buf += "ls - lists the files in the current directory\n"; + buf += "cd - changes the current directory\n"; + buf += "echo - prints the arguments\n"; + buf += "mkdir - creates a new directory\n"; + buf += "cat - prints the contents of a file\n"; + buf += "touch - creates a new file\n"; + buf += "rm - removes a file\n"; + buf += "mv - moves a file\n"; + buf += "cp - copies a file\n"; + buf += "rmdir - removes a directory\n"; + buf += "pwd - prints the current directory\n"; + buf += "exec - executes a file\n"; + buf += "spam - spams the console\n"; + buf += "overwrite - overwrites the file with data\n"; + buf += "append - appends the arguments to a file\n"; + buf += "screenshot - takes a screenshot\n"; + buf += "man - display longer help\n"; + return buf; +} +export {help}; diff --git a/commands/loadsess.js b/commands/loadsess.js new file mode 100644 index 0000000..c3351b9 --- /dev/null +++ b/commands/loadsess.js @@ -0,0 +1,23 @@ +"use strict"; +exports.__esModule = true; +exports.loadsess = void 0; +var fs = require('fs'); +var SerAny = require('serialize-anything'); +function loadsess(args, sessions, filesystem, curdir, buffer) { + var buf = ""; + if (args.length == 1) { + sessions = SerAny.deserialize(fs.readFileSync("./sessions.json")); + if (sessions[args[0]] != undefined) { + filesystem = sessions[args[0]]["filesystem"]; + curdir = sessions[args[0]]["curdir"]; + buffer = sessions[args[0]]["buffer"]; + buf += "Session loaded.\n"; + } + } + else { + buf += "Wrong number of arguments."; + } + return buf; +} +exports.loadsess = loadsess; +//# sourceMappingURL=loadsess.js.map \ No newline at end of file diff --git a/commands/loadsess.js.map b/commands/loadsess.js.map new file mode 100644 index 0000000..cdfde28 --- /dev/null +++ b/commands/loadsess.js.map @@ -0,0 +1 @@ +{"version":3,"file":"loadsess.js","sourceRoot":"","sources":["loadsess.ts"],"names":[],"mappings":";;;AAAA,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,IAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE7C,SAAS,QAAQ,CAAC,IAAkB,EAAE,QAAY,EAAE,UAAc,EAAE,MAAU,EAAE,MAAa;IACzF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClE,IAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;YAC/B,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrC,GAAG,IAAI,mBAAmB,CAAC;SAC9B;KACJ;SACI;QACD,GAAG,IAAI,4BAA4B,CAAC;KACvC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,4BAAQ"} \ No newline at end of file diff --git a/commands/loadsess.ts b/commands/loadsess.ts new file mode 100644 index 0000000..9dd4108 --- /dev/null +++ b/commands/loadsess.ts @@ -0,0 +1,20 @@ +var fs = require('fs'); +const SerAny = require('serialize-anything'); +import { Socket } from 'socket.io'; +function loadsess(args:Array, sessions:any, filesystem:any, curdir:any, buffer:string ):string { + var buf = ""; + if (args.length == 1) { + sessions = SerAny.deserialize(fs.readFileSync("./sessions.json")); + if(sessions[args[0]] != undefined) { + filesystem = sessions[args[0]]["filesystem"]; + curdir = sessions[args[0]]["curdir"]; + buffer = sessions[args[0]]["buffer"]; + buf += "Session loaded.\n"; + } + } + else { + buf += "Wrong number of arguments."; + } + return buf; +} +export { loadsess }; \ No newline at end of file diff --git a/commands/ls.js b/commands/ls.js new file mode 100644 index 0000000..1c29689 --- /dev/null +++ b/commands/ls.js @@ -0,0 +1,21 @@ +"use strict"; +exports.__esModule = true; +exports.ls = void 0; +function ls(curdir) { + var buf = ""; + buf += "Files in the current directory:\n"; + for (var key in curdir) { + if (typeof curdir[key] == "string") { + buf += key + " (file)\n"; + } + else if (typeof curdir[key] == "object") { + buf += key + " (directory)\n"; + } + else { + buf += key + " (unknown)\n"; + } + } + return buf; +} +exports.ls = ls; +//# sourceMappingURL=ls.js.map \ No newline at end of file diff --git a/commands/ls.js.map b/commands/ls.js.map new file mode 100644 index 0000000..dd48552 --- /dev/null +++ b/commands/ls.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ls.js","sourceRoot":"","sources":["ls.ts"],"names":[],"mappings":";;;AAAA,SAAS,EAAE,CAAC,MAAU;IAClB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,mCAAmC,CAAC;IAE3C,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QAGpB,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;YAChC,GAAG,IAAI,GAAG,GAAG,WAAW,CAAC;SAC5B;aACI,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;YACrC,GAAG,IAAI,GAAG,GAAG,gBAAgB,CAAC;SACjC;aACI;YACD,GAAG,IAAI,GAAG,GAAG,cAAc,CAAC;SAC/B;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,gBAAE"} \ No newline at end of file diff --git a/commands/ls.ts b/commands/ls.ts index e69de29..fe5fef6 100644 --- a/commands/ls.ts +++ b/commands/ls.ts @@ -0,0 +1,20 @@ +function ls(curdir:any):string { + var buf = ""; + buf += "Files in the current directory:\n"; + //list only first level files + for (var key in curdir) { + //buf += key + "\n"; + //also print if it is a directory or file + if (typeof curdir[key] == "string") { + buf += key + " (file)\n"; + } + else if (typeof curdir[key] == "object") { + buf += key + " (directory)\n"; + } + else { + buf += key + " (unknown)\n"; + } + } + return buf; +} +export { ls }; \ No newline at end of file diff --git a/commands/man.js b/commands/man.js new file mode 100644 index 0000000..8fe8a75 --- /dev/null +++ b/commands/man.js @@ -0,0 +1,73 @@ +"use strict"; +exports.__esModule = true; +exports.man = void 0; +function man(args) { + var buf = ""; + if (args.length == 0) { + buf += "Missing arguments"; + } + switch (args[0]) { + case "help": + buf += "\'help\' Prints the list of available commands\n"; + break; + case "clear": + buf += "\'clear\' Clears the console\n"; + break; + case "ls": + buf += "\'ls\' Lists the files in the current directory, also displays if file or directory\n"; + break; + case "cd": + buf += "\'cd (dirname/..)\' Changes the current directory\n"; + break; + case "echo": + buf += "\'echo (arg1) (arg2) .....\' Prints the arguments to the console\n"; + break; + case "mkdir": + buf += "\'mkdir (dirname)\' Creates a new directory in the current directory\n"; + break; + case "cat": + buf += "\'cat (filename)\' Prints the contents of a file out to the console\n"; + break; + case "touch": + buf += "\'touch (filename)\' Creates a new file in the current directory\n"; + break; + case "rm": + buf += "\'rm (filename)\' Removes a file from the current directory\n"; + break; + case "mv": + buf += "\'mv (filename from) (filename to)\' Moves a file from one directory to another\n"; + break; + case "cp": + buf += "\'cp (filename from) (filename to)\' Copies a file from one directory to another\n"; + break; + case "rmdir": + buf += "\'rmdir (dirname)\' Removes a directory from the current directory\n"; + break; + case "pwd": + buf += "\'pwd\' Prints the current directory out to the console\n"; + break; + case "exec": + buf += "\'exec (filename)\' Executes a file in the console, you can \'t use \"exit\" and \"exec\" commands\n"; + break; + case "spam": + buf += "\'spam (number) (arg1) (arg2) .......\' Spams the console with a message from arguments\n"; + break; + case "overwrite": + buf += "\'overwrite (filename) (arg1) (arg2) .......\' Overwrites a file with from arguments\n"; + break; + case "append": + buf += "\'append (filename) (arg1) (arg2) .......\' Appends the arguments to a file\n"; + break; + case "screenshot": + buf += "\'screenshot (filename)\' Takes a screenshot of the console and saves it to a file\n"; + break; + case "man": + buf += "\'screenshot (command)\' This manual databank\n"; + break; + default: + buf += "No such command\n"; + } + return buf; +} +exports.man = man; +//# sourceMappingURL=man.js.map \ No newline at end of file diff --git a/commands/man.js.map b/commands/man.js.map new file mode 100644 index 0000000..c4f4a5a --- /dev/null +++ b/commands/man.js.map @@ -0,0 +1 @@ +{"version":3,"file":"man.js","sourceRoot":"","sources":["man.ts"],"names":[],"mappings":";;;AAAA,SAAS,GAAG,CAAC,IAAmB;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAC;QAChB,GAAG,IAAI,mBAAmB,CAAA;KAC7B;IACD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAC;QACZ,KAAK,MAAM;YACP,GAAG,IAAI,kDAAkD,CAAC;YAC1D,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,gCAAgC,CAAC;YACxC,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,uFAAuF,CAAC;YAC/F,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,qDAAqD,CAAC;YAC7D,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,oEAAoE,CAAC;YAC5E,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,wEAAwE,CAAC;YAChF,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,uEAAuE,CAAC;YAC/E,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,oEAAoE,CAAC;YAC5E,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,+DAA+D,CAAC;YACvE,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,mFAAmF,CAAC;YAC3F,MAAM;QACV,KAAK,IAAI;YACL,GAAG,IAAI,oFAAoF,CAAC;YAC5F,MAAM;QACV,KAAK,OAAO;YACR,GAAG,IAAI,sEAAsE,CAAC;YAC9E,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,2DAA2D,CAAC;YACnE,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,sGAAsG,CAAC;YAC9G,MAAM;QACV,KAAK,MAAM;YACP,GAAG,IAAI,2FAA2F,CAAC;YACnG,MAAM;QACV,KAAK,WAAW;YACZ,GAAG,IAAI,wFAAwF,CAAC;YAChG,MAAM;QACV,KAAK,QAAQ;YACT,GAAG,IAAI,+EAA+E,CAAC;YACvF,MAAM;QACV,KAAK,YAAY;YACb,GAAG,IAAI,sFAAsF,CAAC;YAC9F,MAAM;QACV,KAAK,KAAK;YACN,GAAG,IAAI,iDAAiD,CAAA;YACxD,MAAK;QACT;YACI,GAAG,IAAI,mBAAmB,CAAA;KACjC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACO,kBAAG"} \ No newline at end of file diff --git a/commands/man.ts b/commands/man.ts index e69de29..87118d9 100644 --- a/commands/man.ts +++ b/commands/man.ts @@ -0,0 +1,69 @@ +function man(args: Array):string{ + var buf = ""; + if(args.length == 0){ + buf += "Missing arguments" + } + switch (args[0]){ + case "help": + buf += "\'help\' Prints the list of available commands\n"; + break; + case "clear": + buf += "\'clear\' Clears the console\n"; + break; + case "ls": + buf += "\'ls\' Lists the files in the current directory, also displays if file or directory\n"; + break; + case "cd": + buf += "\'cd (dirname/..)\' Changes the current directory\n"; + break; + case "echo": + buf += "\'echo (arg1) (arg2) .....\' Prints the arguments to the console\n"; + break; + case "mkdir": + buf += "\'mkdir (dirname)\' Creates a new directory in the current directory\n"; + break; + case "cat": + buf += "\'cat (filename)\' Prints the contents of a file out to the console\n"; + break; + case "touch": + buf += "\'touch (filename)\' Creates a new file in the current directory\n"; + break; + case "rm": + buf += "\'rm (filename)\' Removes a file from the current directory\n"; + break; + case "mv": + buf += "\'mv (filename from) (filename to)\' Moves a file from one directory to another\n"; + break; + case "cp": + buf += "\'cp (filename from) (filename to)\' Copies a file from one directory to another\n"; + break; + case "rmdir": + buf += "\'rmdir (dirname)\' Removes a directory from the current directory\n"; + break; + case "pwd": + buf += "\'pwd\' Prints the current directory out to the console\n"; + break; + case "exec": + buf += "\'exec (filename)\' Executes a file in the console, you can \'t use \"exit\" and \"exec\" commands\n"; + break; + case "spam": + buf += "\'spam (number) (arg1) (arg2) .......\' Spams the console with a message from arguments\n"; + break; + case "overwrite": + buf += "\'overwrite (filename) (arg1) (arg2) .......\' Overwrites a file with from arguments\n"; + break; + case "append": + buf += "\'append (filename) (arg1) (arg2) .......\' Appends the arguments to a file\n"; + break; + case "screenshot": + buf += "\'screenshot (filename)\' Takes a screenshot of the console and saves it to a file\n"; + break; + case "man": + buf += "\'screenshot (command)\' This manual databank\n" + break + default: + buf += "No such command\n" + } + return buf; +} +export {man}; \ No newline at end of file diff --git a/commands/mkdir.js b/commands/mkdir.js new file mode 100644 index 0000000..d38b182 --- /dev/null +++ b/commands/mkdir.js @@ -0,0 +1,21 @@ +"use strict"; +exports.__esModule = true; +exports.mkdir = void 0; +function mkdir(args, curdir) { + var buf = ""; + if (args.length == 0) { + buf += "Please specify a directory.\n"; + } + else { + if (curdir[args[0]]) { + buf += "Directory " + args[0] + " already exists.\n"; + } + else { + curdir[args[0]] = {}; + buf += "Created directory " + args[0] + "\n"; + } + } + return buf; +} +exports.mkdir = mkdir; +//# sourceMappingURL=mkdir.js.map \ No newline at end of file diff --git a/commands/mkdir.js.map b/commands/mkdir.js.map new file mode 100644 index 0000000..162b21b --- /dev/null +++ b/commands/mkdir.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mkdir.js","sourceRoot":"","sources":["mkdir.ts"],"names":[],"mappings":";;;AAAA,SAAS,KAAK,CAAC,IAAkB,EAAE,MAAU;IACzC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,+BAA+B,CAAC;KAE1C;SACI;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACjB,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;SAExD;aACI;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,GAAG,IAAI,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAEhD;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,sBAAK"} \ No newline at end of file diff --git a/commands/mkdir.ts b/commands/mkdir.ts index e69de29..476907e 100644 --- a/commands/mkdir.ts +++ b/commands/mkdir.ts @@ -0,0 +1,20 @@ +function mkdir(args:Array, curdir:any):string { + var buf = ""; + if (args.length == 0) { + buf += "Please specify a directory.\n"; + + } + else { + if (curdir[args[0]]) { + buf += "Directory " + args[0] + " already exists.\n"; + + } + else { + curdir[args[0]] = {}; + buf += "Created directory " + args[0] + "\n"; + + } + } + return buf; +} +export { mkdir }; \ No newline at end of file diff --git a/commands/mv.js b/commands/mv.js new file mode 100644 index 0000000..c4e21f9 --- /dev/null +++ b/commands/mv.js @@ -0,0 +1,27 @@ +"use strict"; +exports.__esModule = true; +exports.mv = void 0; +function mv(args, curdir) { + var buf = ""; + if (args.length == 2) { + if (curdir[args[0]] != undefined) { + if (typeof curdir[args[0]] == "string") { + curdir[args[1]] = curdir[args[0]]; + delete curdir[args[0]]; + buf += "File " + args[0] + " moved to " + args[1] + "\n"; + } + else { + buf += "Error: " + args[0] + " is not a file\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + } + else { + buf += "Wrong number of arguments.\n"; + } + return buf; +} +exports.mv = mv; +//# sourceMappingURL=mv.js.map \ No newline at end of file diff --git a/commands/mv.js.map b/commands/mv.js.map new file mode 100644 index 0000000..528f6b4 --- /dev/null +++ b/commands/mv.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mv.js","sourceRoot":"","sources":["mv.ts"],"names":[],"mappings":";;;AAAA,SAAS,EAAE,CAAC,IAAkB,EAAE,MAAU;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;YAC9B,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC5D;iBACI;gBACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;aACnD;SACJ;aACI;YACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;SACpD;KACJ;SACI;QACD,GAAG,IAAI,8BAA8B,CAAC;KACzC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,gBAAE"} \ No newline at end of file diff --git a/commands/mv.ts b/commands/mv.ts index e69de29..8c6bfee 100644 --- a/commands/mv.ts +++ b/commands/mv.ts @@ -0,0 +1,23 @@ +function mv(args:Array, curdir:any){ + var buf = ""; + if (args.length == 2) { + if (curdir[args[0]] != undefined) { + if (typeof curdir[args[0]] == "string") { + curdir[args[1]] = curdir[args[0]]; + delete curdir[args[0]]; + buf += "File " + args[0] + " moved to " + args[1] + "\n"; + } + else { + buf += "Error: " + args[0] + " is not a file\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + } + else { + buf += "Wrong number of arguments.\n"; + } + return buf; +} +export { mv }; \ No newline at end of file diff --git a/commands/overwrite.js b/commands/overwrite.js new file mode 100644 index 0000000..eab96ff --- /dev/null +++ b/commands/overwrite.js @@ -0,0 +1,19 @@ +"use strict"; +exports.__esModule = true; +exports.overwrite = void 0; +function overwrite(args, curdir) { + var buf = ""; + if (args.length == 0) { + buf += "overwrite: missing operand\n"; + } + else { + curdir[args[0]] = ""; + for (var i = 1; i < args.length; i++) { + curdir[args[0]] += args[i] + " "; + } + buf += "File " + args[0] + " overwritten\n"; + } + return buf; +} +exports.overwrite = overwrite; +//# sourceMappingURL=overwrite.js.map \ No newline at end of file diff --git a/commands/overwrite.js.map b/commands/overwrite.js.map new file mode 100644 index 0000000..83d512a --- /dev/null +++ b/commands/overwrite.js.map @@ -0,0 +1 @@ +{"version":3,"file":"overwrite.js","sourceRoot":"","sources":["overwrite.ts"],"names":[],"mappings":";;;AAAA,SAAS,SAAS,CAAC,IAAkB,EAAE,MAAU;IAC7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,8BAA8B,CAAC;KACzC;SACI;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;SACpC;QACD,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;KAC/C;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,8BAAS"} \ No newline at end of file diff --git a/commands/overwrite.ts b/commands/overwrite.ts index e69de29..576d526 100644 --- a/commands/overwrite.ts +++ b/commands/overwrite.ts @@ -0,0 +1,15 @@ +function overwrite(args:Array, curdir:any){ + var buf = ""; + if (args.length == 0) { + buf += "overwrite: missing operand\n"; + } + else { + curdir[args[0]] = ""; + for (let i = 1; i < args.length; i++) { + curdir[args[0]] += args[i] + " "; + } + buf += "File " + args[0] + " overwritten\n"; + } + return buf; +} +export { overwrite }; \ No newline at end of file diff --git a/commands/pwd.js b/commands/pwd.js new file mode 100644 index 0000000..fdc1232 --- /dev/null +++ b/commands/pwd.js @@ -0,0 +1,11 @@ +"use strict"; +exports.__esModule = true; +exports.pwd = void 0; +function pwd(curdirx) { + var buf = ""; + var curdirasstring = curdirx.join("/"); + buf += "Current directory: " + curdirasstring + "\n"; + return buf; +} +exports.pwd = pwd; +//# sourceMappingURL=pwd.js.map \ No newline at end of file diff --git a/commands/pwd.js.map b/commands/pwd.js.map new file mode 100644 index 0000000..2a3f79e --- /dev/null +++ b/commands/pwd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pwd.js","sourceRoot":"","sources":["pwd.ts"],"names":[],"mappings":";;;AAAA,SAAS,GAAG,CAAC,OAAqB;IAC9B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,GAAG,IAAI,qBAAqB,GAAG,cAAc,GAAG,IAAI,CAAC;IACrD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,kBAAG"} \ No newline at end of file diff --git a/commands/pwd.ts b/commands/pwd.ts index e69de29..bfce3dc 100644 --- a/commands/pwd.ts +++ b/commands/pwd.ts @@ -0,0 +1,7 @@ +function pwd(curdirx:Array):string { + var buf = ""; + var curdirasstring = curdirx.join("/"); + buf += "Current directory: " + curdirasstring + "\n"; + return buf; +} +export { pwd }; \ No newline at end of file diff --git a/commands/rm.js b/commands/rm.js new file mode 100644 index 0000000..750cd4a --- /dev/null +++ b/commands/rm.js @@ -0,0 +1,21 @@ +"use strict"; +exports.__esModule = true; +exports.rm = void 0; +function rm(args, curdir, socket) { + var buf = ""; + if (curdir[socket.id][args[0]] != undefined) { + if (typeof curdir[socket.id][args[0]] == "string") { + delete curdir[socket.id][args[0]]; + buf += "File " + args[0] + " removed\n"; + } + else { + buf += "Error: " + args[0] + " is not a file\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + return buf; +} +exports.rm = rm; +//# sourceMappingURL=rm.js.map \ No newline at end of file diff --git a/commands/rm.js.map b/commands/rm.js.map new file mode 100644 index 0000000..df380a2 --- /dev/null +++ b/commands/rm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rm.js","sourceRoot":"","sources":["rm.ts"],"names":[],"mappings":";;;AACA,SAAS,EAAE,CAAC,IAAkB,EAAE,MAAU,EAAE,MAAa;IACrD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;QACzC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;SAC3C;aACI;YACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;SACnD;KACJ;SACI;QACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;KACpD;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,gBAAE"} \ No newline at end of file diff --git a/commands/rm.ts b/commands/rm.ts index e69de29..9548e33 100644 --- a/commands/rm.ts +++ b/commands/rm.ts @@ -0,0 +1,18 @@ +import { Socket } from "socket.io"; +function rm(args:Array, curdir:any, socket:Socket):string { + var buf = ""; + if (curdir[socket.id][args[0]] != undefined) { + if (typeof curdir[socket.id][args[0]] == "string") { + delete curdir[socket.id][args[0]]; + buf += "File " + args[0] + " removed\n"; + } + else { + buf += "Error: " + args[0] + " is not a file\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + return buf; +} +export { rm }; \ No newline at end of file diff --git a/commands/rmdir.js b/commands/rmdir.js new file mode 100644 index 0000000..8404b27 --- /dev/null +++ b/commands/rmdir.js @@ -0,0 +1,21 @@ +"use strict"; +exports.__esModule = true; +exports.rmdir = void 0; +function rmdir(args, curdir, socket) { + var buf = ""; + if (curdir[socket.id][args[0]] != undefined) { + if (typeof curdir[socket.id][args[0]] == "object") { + delete curdir[socket.id][args[0]]; + buf += "Directory " + args[0] + " removed\n"; + } + else { + buf += "Error: " + args[0] + " is not a directory\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + return buf; +} +exports.rmdir = rmdir; +//# sourceMappingURL=rmdir.js.map \ No newline at end of file diff --git a/commands/rmdir.js.map b/commands/rmdir.js.map new file mode 100644 index 0000000..6200c68 --- /dev/null +++ b/commands/rmdir.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rmdir.js","sourceRoot":"","sources":["rmdir.ts"],"names":[],"mappings":";;;AACA,SAAS,KAAK,CAAC,IAAkB,EAAE,MAAU,EAAE,MAAa;IACxD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE;QACzC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;SAChD;aACI;YACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC;SACxD;KACJ;SACI;QACD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;KACpD;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,sBAAK"} \ No newline at end of file diff --git a/commands/rmdir.ts b/commands/rmdir.ts index e69de29..03c0649 100644 --- a/commands/rmdir.ts +++ b/commands/rmdir.ts @@ -0,0 +1,18 @@ +import {Socket} from "socket.io"; +function rmdir(args:Array, curdir:any, socket:Socket):string { + var buf = ""; + if (curdir[socket.id][args[0]] != undefined) { + if (typeof curdir[socket.id][args[0]] == "object") { + delete curdir[socket.id][args[0]]; + buf += "Directory " + args[0] + " removed\n"; + } + else { + buf += "Error: " + args[0] + " is not a directory\n"; + } + } + else { + buf += "Error: " + args[0] + " does not exist\n"; + } + return buf; +} +export { rmdir }; \ No newline at end of file diff --git a/commands/savesess.js b/commands/savesess.js new file mode 100644 index 0000000..43803d1 --- /dev/null +++ b/commands/savesess.js @@ -0,0 +1,29 @@ +"use strict"; +exports.__esModule = true; +exports.savesess = void 0; +var fs = require('fs'); +var SerAny = require('serialize-anything'); +function savesess(args, sessions, filesystem, curdir, buffer, socket) { + var buf = ""; + var pwd = process.env.PWD || "kryptic"; + if (args.length == 2) { + if (args[0] == pwd) { + sessions[args[1]] = []; + sessions[args[1]]["buffer"] = buffer[socket.id].replace(new RegExp(pwd, 'g'), "[REDACTED]"); + sessions[args[1]]["filesystem"] = JSON.parse(JSON.stringify(filesystem[socket.id])); + sessions[args[1]]["curdir"] = JSON.parse(JSON.stringify(curdir[socket.id])); + var data = SerAny.serialize(sessions); + fs.writeFileSync("./sessions.json", data); + buf += "Session saved.\n"; + } + else { + buf += "Wrong password."; + } + } + else { + buf += "Wrong number of arguments."; + } + return buf; +} +exports.savesess = savesess; +//# sourceMappingURL=savesess.js.map \ No newline at end of file diff --git a/commands/savesess.js.map b/commands/savesess.js.map new file mode 100644 index 0000000..ea08515 --- /dev/null +++ b/commands/savesess.js.map @@ -0,0 +1 @@ +{"version":3,"file":"savesess.js","sourceRoot":"","sources":["savesess.ts"],"names":[],"mappings":";;;AAAA,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,IAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE7C,SAAS,QAAQ,CAAC,IAAkB,EAAE,QAAY,EAAE,UAAc,EAAE,MAAU,EAAE,MAA+B,EAAE,MAAa;IAC1H,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;YAChB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAGvB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEtC,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAE1C,GAAG,IAAI,kBAAkB,CAAC;SAC7B;aACI;YACD,GAAG,IAAI,iBAAiB,CAAC;SAC5B;KACJ;SACI;QACD,GAAG,IAAI,4BAA4B,CAAC;KACvC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,4BAAQ"} \ No newline at end of file diff --git a/commands/savesess.ts b/commands/savesess.ts new file mode 100644 index 0000000..7deb257 --- /dev/null +++ b/commands/savesess.ts @@ -0,0 +1,31 @@ +var fs = require('fs'); +const SerAny = require('serialize-anything'); +import { Socket } from 'socket.io'; +function savesess(args:Array, sessions:any, filesystem:any, curdir:any, buffer:{ [id: string]: string }, socket:Socket):string { + var buf = ""; + //get password from environment variable or use kryptic + let pwd = process.env.PWD || "kryptic"; + if (args.length == 2) { + if (args[0] == pwd) { + sessions[args[1]] = []; + //sessions[args[1]]["buffer"] = buffer[socket.id]; + //replace all occurences of passord with [REDACTED] + sessions[args[1]]["buffer"] = buffer[socket.id].replace(new RegExp(pwd, 'g'), "[REDACTED]"); + sessions[args[1]]["filesystem"] = JSON.parse(JSON.stringify(filesystem[socket.id])); + sessions[args[1]]["curdir"] = JSON.parse(JSON.stringify(curdir[socket.id])); + var data = SerAny.serialize(sessions); + //write all sessions to a single file called sessions.json + fs.writeFileSync("./sessions.json", data); + + buf += "Session saved.\n"; + } + else { + buf += "Wrong password."; + } + } + else { + buf += "Wrong number of arguments."; + } + return buf; +} +export { savesess }; \ No newline at end of file diff --git a/commands/screenshot.js b/commands/screenshot.js new file mode 100644 index 0000000..b14f491 --- /dev/null +++ b/commands/screenshot.js @@ -0,0 +1,11 @@ +"use strict"; +exports.__esModule = true; +exports.screenshot = void 0; +function screenshot(args, curdir, buffer, socket) { + var buf = ""; + curdir[socket.id][args[0]] = buffer[socket.id]; + buf += "Screenshot saved to " + args[0] + "\n"; + return buf; +} +exports.screenshot = screenshot; +//# sourceMappingURL=screenshot.js.map \ No newline at end of file diff --git a/commands/screenshot.js.map b/commands/screenshot.js.map new file mode 100644 index 0000000..a4e0489 --- /dev/null +++ b/commands/screenshot.js.map @@ -0,0 +1 @@ +{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["screenshot.ts"],"names":[],"mappings":";;;AACA,SAAS,UAAU,CAAC,IAAkB,EAAE,MAAU,EAAE,MAA+B,EAAE,MAAa;IAC9F,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/C,GAAG,IAAI,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,gCAAU"} \ No newline at end of file diff --git a/commands/screenshot.ts b/commands/screenshot.ts index e69de29..343c2d6 100644 --- a/commands/screenshot.ts +++ b/commands/screenshot.ts @@ -0,0 +1,8 @@ +import {Socket} from 'socket.io'; +function screenshot(args:Array, curdir:any, buffer:{ [id: string]: string }, socket:Socket):string { + var buf = ""; + curdir[socket.id][args[0]] = buffer[socket.id]; + buf += "Screenshot saved to " + args[0] + "\n"; + return buf; +} +export { screenshot }; \ No newline at end of file diff --git a/commands/spam.js b/commands/spam.js new file mode 100644 index 0000000..2609ef5 --- /dev/null +++ b/commands/spam.js @@ -0,0 +1,24 @@ +"use strict"; +exports.__esModule = true; +exports.spam = void 0; +function spam(args) { + var buf = ""; + var numtimes = parseInt(args[0]); + if (isNaN(numtimes)) { + buf += "Error: " + args[0] + " is not a number\n"; + } + else if (numtimes < 0) { + buf += "Error: " + args[0] + " is negative\n"; + } + else if (numtimes > 100) { + buf += "Error: " + args[0] + " is too large\n"; + } + else { + for (var i = 0; i < numtimes; i++) { + buf += args.slice(1).join(" ") + "\n"; + } + return buf; + } +} +exports.spam = spam; +//# sourceMappingURL=spam.js.map \ No newline at end of file diff --git a/commands/spam.js.map b/commands/spam.js.map new file mode 100644 index 0000000..78d928b --- /dev/null +++ b/commands/spam.js.map @@ -0,0 +1 @@ +{"version":3,"file":"spam.js","sourceRoot":"","sources":["spam.ts"],"names":[],"mappings":";;;AAAA,SAAS,IAAI,CAAC,IAAkB;IAC5B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,IAAG,KAAK,CAAC,QAAQ,CAAC,EAAE;QAChB,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;KACrD;SACI,IAAI,QAAQ,GAAG,CAAC,EAAE;QACnB,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;KACjD;SACI,IAAK,QAAQ,GAAG,GAAG,EAAE;QACtB,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;KAClD;SACI;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC/B,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACzC;QACD,OAAO,GAAG,CAAC;KACd;AACL,CAAC;AACQ,oBAAI"} \ No newline at end of file diff --git a/commands/spam.ts b/commands/spam.ts index e69de29..825a5fe 100644 --- a/commands/spam.ts +++ b/commands/spam.ts @@ -0,0 +1,21 @@ +function spam(args:Array):string { + var buf = ""; + var numtimes = parseInt(args[0]); + if(isNaN(numtimes)) { + buf += "Error: " + args[0] + " is not a number\n"; + } + else if (numtimes < 0) { + buf += "Error: " + args[0] + " is negative\n"; + } + else if (numtimes > 100) { + buf += "Error: " + args[0] + " is too large\n"; + } + else { + //spam arguments times from first argument + for (let i = 0; i < numtimes; i++) { + buf += args.slice(1).join(" ") + "\n"; + } + return buf; + } +} +export { spam }; \ No newline at end of file diff --git a/commands/touch.js b/commands/touch.js new file mode 100644 index 0000000..e5eb9b1 --- /dev/null +++ b/commands/touch.js @@ -0,0 +1,16 @@ +"use strict"; +exports.__esModule = true; +exports.touch = void 0; +function touch(args, curdir, socket) { + var buf = ""; + if (args.length == 0) { + buf += "touch: missing operand\n"; + } + else { + curdir[socket.id][args[0]] = ""; + buf += "File " + args[0] + " created\n"; + } + return buf; +} +exports.touch = touch; +//# sourceMappingURL=touch.js.map \ No newline at end of file diff --git a/commands/touch.js.map b/commands/touch.js.map new file mode 100644 index 0000000..d224a9f --- /dev/null +++ b/commands/touch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"touch.js","sourceRoot":"","sources":["touch.ts"],"names":[],"mappings":";;;AACA,SAAS,KAAK,CAAC,IAAkB,EAAE,MAAU,EAAE,MAAa;IACxD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,GAAG,IAAI,0BAA0B,CAAC;KACrC;SACI;QACD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChC,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;KAC3C;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,sBAAK"} \ No newline at end of file diff --git a/commands/touch.ts b/commands/touch.ts index e69de29..983d81e 100644 --- a/commands/touch.ts +++ b/commands/touch.ts @@ -0,0 +1,13 @@ +import {Socket} from 'socket.io'; +function touch(args:Array, curdir:any, socket:Socket):string { + var buf = ""; + if (args.length == 0) { + buf += "touch: missing operand\n"; + } + else { + curdir[socket.id][args[0]] = ""; + buf += "File " + args[0] + " created\n"; + } + return buf; +} +export { touch }; \ No newline at end of file diff --git a/commands/wee.js b/commands/wee.js new file mode 100644 index 0000000..288e1c5 --- /dev/null +++ b/commands/wee.js @@ -0,0 +1,10 @@ +"use strict"; +exports.__esModule = true; +exports.wee = void 0; +function wee() { + var buf = ""; + buf += "Woo!\n"; + return buf; +} +exports.wee = wee; +//# sourceMappingURL=wee.js.map \ No newline at end of file diff --git a/commands/wee.js.map b/commands/wee.js.map new file mode 100644 index 0000000..7b70d53 --- /dev/null +++ b/commands/wee.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wee.js","sourceRoot":"","sources":["wee.ts"],"names":[],"mappings":";;;AAAA,SAAS,GAAG;IACR,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,QAAQ,CAAC;IAChB,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,kBAAG"} \ No newline at end of file diff --git a/commands/wee.ts b/commands/wee.ts new file mode 100644 index 0000000..45fdcc5 --- /dev/null +++ b/commands/wee.ts @@ -0,0 +1,6 @@ +function wee(): string { + var buf = ""; + buf += "Woo!\n"; + return buf; +} +export { wee }; \ No newline at end of file diff --git a/commands/woo.js b/commands/woo.js new file mode 100644 index 0000000..88c185d --- /dev/null +++ b/commands/woo.js @@ -0,0 +1,10 @@ +"use strict"; +exports.__esModule = true; +exports.woo = void 0; +function woo() { + var buf = ""; + buf += "Wee!\n"; + return buf; +} +exports.woo = woo; +//# sourceMappingURL=woo.js.map \ No newline at end of file diff --git a/commands/woo.js.map b/commands/woo.js.map new file mode 100644 index 0000000..527fbe4 --- /dev/null +++ b/commands/woo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"woo.js","sourceRoot":"","sources":["woo.ts"],"names":[],"mappings":";;;AAAA,SAAS,GAAG;IACR,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,IAAI,QAAQ,CAAC;IAChB,OAAO,GAAG,CAAC;AACf,CAAC;AACQ,kBAAG"} \ No newline at end of file diff --git a/commands/woo.ts b/commands/woo.ts new file mode 100644 index 0000000..8259928 --- /dev/null +++ b/commands/woo.ts @@ -0,0 +1,6 @@ +function woo(): string { + var buf = ""; + buf += "Wee!\n"; + return buf; +} +export { woo }; \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index f823d1d..0000000 --- a/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - -
- -
- - \ No newline at end of file diff --git a/index.js b/index.js index 7889603..a6a2f82 100644 --- a/index.js +++ b/index.js @@ -9,7 +9,16 @@ var Server = require("socket.io").Server; var io = new Server(server); var commands_1 = require("./commands/commands"); app.get('/', function (req, res) { - res.sendFile(__dirname + '/index.html'); + res.sendFile(__dirname + '/website/index.html'); +}); +app.get("/script.js", function (req, res) { + res.sendFile(__dirname + '/website/script.js'); +}); +app.get("/style.css", function (req, res) { + res.sendFile(__dirname + '/website/style.css'); +}); +app.get("/jquery.js", function (req, res) { + res.sendFile(__dirname + '/website/jquery.js'); }); var buffer = {}; var filesystem = {}; diff --git a/index.js.map b/index.js.map index 7cbd629..4c350cf 100644 --- a/index.js.map +++ b/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/index.ts b/index.ts index 1622ff3..9367203 100644 --- a/index.ts +++ b/index.ts @@ -12,8 +12,21 @@ const io = new Server(server); import { resolveCommand } from './commands/commands'; app.get('/', (req:Request, res:Response) => { - res.sendFile(__dirname + '/index.html'); - }); + res.sendFile(__dirname + '/website/index.html'); + } +); +app.get("/script.js", (req:Request, res:Response) => { + res.sendFile(__dirname + '/website/script.js'); + } +); +app.get("/style.css", (req:Request, res:Response) => { + res.sendFile(__dirname + '/website/style.css'); + } +); +app.get("/jquery.js", (req:Request, res:Response) => { + res.sendFile(__dirname + '/website/jquery.js'); + } +); //initialize buffer //var buffer = []; //add type for typescript diff --git a/website/index.html b/website/index.html new file mode 100644 index 0000000..b88ee18 --- /dev/null +++ b/website/index.html @@ -0,0 +1,15 @@ + + + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/website/jquery.js b/website/jquery.js new file mode 100644 index 0000000..c4c6022 --- /dev/null +++ b/website/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 -1){ + console.innerHTML = console.innerHTML.replace("\u2800", "\u2588"); + } + else{ + console.innerHTML = console.innerHTML.replace("\u2588", "\u2800"); + } +} +setInterval(flash, 500); \ No newline at end of file diff --git a/website/style.css b/website/style.css new file mode 100644 index 0000000..152fcf1 --- /dev/null +++ b/website/style.css @@ -0,0 +1,23 @@ +.error { + color: red; +} +#console { + background: #000; + width: 99%; + color: #0F0; + margin: 0; + border-color: #00AC00; +} +#consolecont{ + width: 100%; + height: 100%; + overflow: auto; +} +body{ + width: 100%; + height: 100%; + margin: 0; +} +*{ + background-color: #000; +} \ No newline at end of file