Initial commit

This commit is contained in:
2025-10-22 22:08:30 +02:00
commit db61d35c44
33 changed files with 1548 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigurationManager = void 0;
var fs_extra_1 = require("fs-extra");
var path_1 = require("path");
var DefaultConfiguration_1 = require("./DefaultConfiguration");
var PREFIX = '[ConfigurationManager]';
var ConfigurationManager = /** @class */ (function () {
function ConfigurationManager(Main) {
this._Main = Main;
}
ConfigurationManager.prototype.load = function () {
return __awaiter(this, void 0, void 0, function () {
var configPath, configExists, config, _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
console.log(PREFIX, 'Loading');
return [4 /*yield*/, (0, fs_extra_1.ensureDir)((0, path_1.join)(this._Main.dataPath))];
case 1:
_b.sent();
configPath = (0, path_1.join)(this._Main.dataPath, 'config.json');
return [4 /*yield*/, (0, fs_extra_1.pathExists)(configPath)];
case 2:
configExists = _b.sent();
if (!!configExists) return [3 /*break*/, 4];
return [4 /*yield*/, (0, fs_extra_1.writeFile)(configPath, JSON.stringify(DefaultConfiguration_1.DefaultConfiguration, null, 4))];
case 3:
_b.sent();
this._Main.Config = DefaultConfiguration_1.DefaultConfiguration;
console.log(PREFIX, 'Written default configuration');
return [3 /*break*/, 7];
case 4: return [4 /*yield*/, (0, fs_extra_1.readJSON)(configPath)];
case 5:
config = _b.sent();
_a = this._Main;
return [4 /*yield*/, this.validateConfig(config)];
case 6:
_a.Config = _b.sent();
console.log(PREFIX, 'Loaded configuration');
_b.label = 7;
case 7: return [2 /*return*/];
}
});
});
};
ConfigurationManager.prototype.validateConfig = function (config) {
return __awaiter(this, void 0, void 0, function () {
var normalizedConfig, hasChanges, configPath;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
normalizedConfig = this.normalizeConfig(config, DefaultConfiguration_1.DefaultConfiguration);
hasChanges = JSON.stringify(config) !== JSON.stringify(normalizedConfig);
if (!hasChanges) return [3 /*break*/, 2];
this._Main.Config = normalizedConfig;
configPath = (0, path_1.join)(this._Main.dataPath, 'config.json');
return [4 /*yield*/, (0, fs_extra_1.writeFile)(configPath, JSON.stringify(normalizedConfig, null, 4))];
case 1:
_a.sent();
console.log(PREFIX, 'Configuration updated and saved');
_a.label = 2;
case 2: return [2 /*return*/, normalizedConfig];
}
});
});
};
ConfigurationManager.prototype.normalizeConfig = function (current, template) {
var _this = this;
if (template === null || template === undefined) {
return template;
}
if (typeof template !== 'object' || Array.isArray(template)) {
if (current !== null &&
current !== undefined &&
typeof current === typeof template) {
if (Array.isArray(template) && Array.isArray(current)) {
if (template.length > 0 &&
typeof template[0] === 'object' &&
!Array.isArray(template[0])) {
return current.map(function (item) {
return _this.normalizeConfig(item, template[0]);
});
}
return current;
}
return current;
}
return template;
}
var result = {};
for (var key in template) {
if (template.hasOwnProperty(key)) {
result[key] = this.normalizeConfig(current === null || current === void 0 ? void 0 : current[key], template[key]);
}
}
return result;
};
return ConfigurationManager;
}());
exports.ConfigurationManager = ConfigurationManager;
//# sourceMappingURL=ConfigurationManager.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ConfigurationManager.js","sourceRoot":"","sources":["../../src/Configuration/ConfigurationManager.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultConfiguration = void 0;
exports.DefaultConfiguration = {
socketServer: {
port: 6301,
},
executable: {
path: '',
arguments: [],
},
};
//# sourceMappingURL=DefaultConfiguration.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"DefaultConfiguration.js","sourceRoot":"","sources":["../../src/Configuration/DefaultConfiguration.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAW;IAC3C,YAAY,EAAE;QACb,IAAI,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACX,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,EAAE;KACb;CACD,CAAC"}

79
dist/Main.js vendored Normal file
View File

@@ -0,0 +1,79 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Main = void 0;
var path_1 = require("path");
var ConfigurationManager_1 = require("./Configuration/ConfigurationManager");
var os_1 = require("os");
var SocketServer_1 = require("./SocketServer");
var processWatcher_1 = require("./processWatcher");
var Utils_1 = require("./Utils");
var Main = /** @class */ (function () {
function Main() {
this.dataPath = (0, path_1.join)((0, os_1.homedir)(), 'MorphixProductions', 'NTSHControl', 'CameraRunner');
this.ConfigurationManager = new ConfigurationManager_1.ConfigurationManager(this);
this.SocketServer = new SocketServer_1.SocketServer(this);
this.ProcessWatcher = new processWatcher_1.ProcessWatcher(this);
}
Main.prototype.start = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.ConfigurationManager.load()];
case 1:
_a.sent();
return [4 /*yield*/, this.SocketServer.listen()];
case 2:
_a.sent();
return [4 /*yield*/, (0, Utils_1.delay)(5000)];
case 3:
_a.sent();
return [4 /*yield*/, this.ProcessWatcher.start()];
case 4:
_a.sent();
return [2 /*return*/];
}
});
});
};
return Main;
}());
exports.Main = Main;
var _Main = new Main();
_Main.start();
//# sourceMappingURL=Main.js.map

1
dist/Main.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Main.js","sourceRoot":"","sources":["../src/Main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA4B;AAC5B,6EAG8C;AAC9C,yBAA6B;AAC7B,+CAA8C;AAC9C,mDAAkD;AAClD,iCAAgC;AAEhC;IAAA;QACC,aAAQ,GAAG,IAAA,WAAI,EACd,IAAA,YAAO,GAAE,EACT,oBAAoB,EACpB,aAAa,EACb,cAAc,CACd,CAAC;QAEF,yBAAoB,GAAG,IAAI,2CAAoB,CAAC,IAAI,CAAC,CAAC;QACtD,iBAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,CAAC;QACtC,mBAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;IAY3C,CAAC;IARM,oBAAK,GAAX;;;;4BACC,qBAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAA;;wBAAtC,SAAsC,CAAC;wBACvC,qBAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAA;;wBAAhC,SAAgC,CAAC;wBAEjC,qBAAM,IAAA,aAAK,EAAC,IAAI,CAAC,EAAA;;wBAAjB,SAAiB,CAAC;wBAElB,qBAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAA;;wBAAjC,SAAiC,CAAC;;;;;KAClC;IACF,WAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,oBAAI;AAwBjB,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,KAAK,CAAC,KAAK,EAAE,CAAC"}

49
dist/Reboot.js vendored Normal file
View File

@@ -0,0 +1,49 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.reboot = reboot;
var child_process_1 = require("child_process");
function reboot() {
if (process.platform === 'win32') {
return rebootWindows();
}
else if (process.platform === 'linux') {
return rebootLinux();
}
return Promise.resolve({
succeed: false,
message: 'Platform not supported',
});
}
function rebootWindows() {
return new Promise(function (resolve, reject) {
(0, child_process_1.exec)('shutdown /r /t 3', function (error, stdout, stderr) {
if (error) {
console.error("Error shutting down Windows: ".concat(error.message));
return resolve({ succeed: false, message: error.message });
}
if (stderr) {
console.error("Error shutting down Windows: ".concat(stderr));
return resolve({ succeed: false, message: stderr });
}
console.log("Windows shutdown command executed: ".concat(stdout));
resolve({ succeed: true });
});
});
}
function rebootLinux() {
return new Promise(function (resolve, reject) {
(0, child_process_1.exec)('shutdown -r now', function (error, stdout, stderr) {
if (error) {
console.error("Error shutting down Linux: ".concat(error.message));
return resolve({ succeed: false, message: error.message });
}
if (stderr) {
console.error("Error shutting down Linux: ".concat(stderr));
return resolve({ succeed: false, message: stderr });
}
console.log("Linux shutdown command executed: ".concat(stdout));
resolve({ succeed: true });
});
});
}
//# sourceMappingURL=Reboot.js.map

1
dist/Reboot.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Reboot.js","sourceRoot":"","sources":["../src/Reboot.ts"],"names":[],"mappings":";;AAEA,wBAWC;AAbD,+CAAqC;AAErC,SAAgB,MAAM;IACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,aAAa,EAAE,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,WAAW,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,wBAAwB;KACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACrB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,kBAAkB,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,uCAAgC,KAAK,CAAC,OAAO,CAAE,CAC/C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,uCAAgC,MAAM,CAAE,CAAC,CAAC;gBACxD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,6CAAsC,MAAM,CAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IACnB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,iBAAiB,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,qCAA8B,KAAK,CAAC,OAAO,CAAE,CAC7C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,qCAA8B,MAAM,CAAE,CAAC,CAAC;gBACtD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2CAAoC,MAAM,CAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC"}

49
dist/Shutdown.js vendored Normal file
View File

@@ -0,0 +1,49 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.shutdown = shutdown;
var child_process_1 = require("child_process");
function shutdown() {
if (process.platform === 'win32') {
return shutdownWindows();
}
else if (process.platform === 'linux') {
return shutdownLinux();
}
return Promise.resolve({
succeed: false,
message: 'Platform not supported',
});
}
function shutdownWindows() {
return new Promise(function (resolve, reject) {
(0, child_process_1.exec)('shutdown /s /t 3', function (error, stdout, stderr) {
if (error) {
console.error("Error shutting down Windows: ".concat(error.message));
return resolve({ succeed: false, message: error.message });
}
if (stderr) {
console.error("Error shutting down Windows: ".concat(stderr));
return resolve({ succeed: false, message: stderr });
}
console.log("Windows shutdown command executed: ".concat(stdout));
resolve({ succeed: true });
});
});
}
function shutdownLinux() {
return new Promise(function (resolve, reject) {
(0, child_process_1.exec)('shutdown now', function (error, stdout, stderr) {
if (error) {
console.error("Error shutting down Linux: ".concat(error.message));
return resolve({ succeed: false, message: error.message });
}
if (stderr) {
console.error("Error shutting down Linux: ".concat(stderr));
return resolve({ succeed: false, message: stderr });
}
console.log("Linux shutdown command executed: ".concat(stdout));
resolve({ succeed: true });
});
});
}
//# sourceMappingURL=Shutdown.js.map

1
dist/Shutdown.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Shutdown.js","sourceRoot":"","sources":["../src/Shutdown.ts"],"names":[],"mappings":";;AAEA,4BAWC;AAbD,+CAAqC;AAErC,SAAgB,QAAQ;IACvB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,eAAe,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,aAAa,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,wBAAwB;KACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,kBAAkB,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,uCAAgC,KAAK,CAAC,OAAO,CAAE,CAC/C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,uCAAgC,MAAM,CAAE,CAAC,CAAC;gBACxD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,6CAAsC,MAAM,CAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACrB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,cAAc,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,qCAA8B,KAAK,CAAC,OAAO,CAAE,CAC7C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,qCAA8B,MAAM,CAAE,CAAC,CAAC;gBACtD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2CAAoC,MAAM,CAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC"}

87
dist/SocketServer.js vendored Normal file
View File

@@ -0,0 +1,87 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SocketServer = void 0;
var socket_io_1 = require("socket.io");
var Reboot_1 = require("./Reboot");
var PREFIX = '[SocketServer]';
var SocketServer = /** @class */ (function () {
function SocketServer(Main) {
this._Main = Main;
this.prepare();
}
SocketServer.prototype.prepare = function () {
var _this = this;
this.socket = new socket_io_1.Server();
this.socket.on('connection', function (socket) {
socket.on('getStatus', function (callback) {
if (typeof callback !== 'function')
return;
callback(_this._Main.ProcessWatcher.getStatus());
});
socket.on('restart', function (callback) {
if (typeof callback !== 'function')
return;
callback(_this._Main.ProcessWatcher.requestRestart());
});
socket.on('reboot', function (callback) { return __awaiter(_this, void 0, void 0, function () {
var _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
if (typeof callback !== 'function')
return [2 /*return*/];
_a = callback;
return [4 /*yield*/, (0, Reboot_1.reboot)()];
case 1:
_a.apply(void 0, [_b.sent()]);
return [2 /*return*/];
}
});
}); });
});
};
SocketServer.prototype.listen = function () {
var port = this._Main.Config.socketServer.port;
this.socket.listen(port);
console.log(PREFIX, "Listening on port http://127.0.0.1:".concat(port));
};
return SocketServer;
}());
exports.SocketServer = SocketServer;
//# sourceMappingURL=SocketServer.js.map

1
dist/SocketServer.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"SocketServer.js","sourceRoot":"","sources":["../src/SocketServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA6D;AAE7D,mCAAkC;AAElC,IAAM,MAAM,GAAG,gBAAgB,CAAC;AAChC;IAKC,sBAAY,IAAU;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAEO,8BAAO,GAAf;QAAA,iBAsCC;QArCA,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAc,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,UAAC,MAAc;YAC3C,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,QAAkB;gBACzC,IAAI,OAAO,QAAQ,KAAK,UAAU;oBAAE,OAAO;gBAE3C,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CACR,SAAS,EACT,UACC,QAGU;gBAEV,IAAI,OAAO,QAAQ,KAAK,UAAU;oBAAE,OAAO;gBAE3C,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC;YACtD,CAAC,CACD,CAAC;YAEF,MAAM,CAAC,EAAE,CACR,QAAQ,EACR,UACC,QAGU;;;;;4BAEV,IAAI,OAAO,QAAQ,KAAK,UAAU;gCAAE,sBAAO;4BAE3C,KAAA,QAAQ,CAAA;4BAAC,qBAAM,IAAA,eAAM,GAAE,EAAA;;4BAAvB,kBAAS,SAAc,EAAC,CAAC;;;;iBACzB,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,6BAAM,GAAN;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,6CAAsC,IAAI,CAAE,CAAC,CAAC;IACnE,CAAC;IACF,mBAAC;AAAD,CAAC,AAxDD,IAwDC;AAxDY,oCAAY"}

22
dist/SocketWerver.js vendored Normal file
View File

@@ -0,0 +1,22 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebServer = void 0;
var socket_io_1 = require("socket.io");
var PREFIX = '[WebServer]';
var WebServer = /** @class */ (function () {
function WebServer(Main) {
this._Main = Main;
this.prepare();
}
WebServer.prototype.prepare = function () {
this.socket = new socket_io_1.Server();
};
WebServer.prototype.listen = function () {
var port = this._Main.Config.webServer.port;
this.socket.listen(port);
console.log(PREFIX, "Listening on port http://127.0.0.1:".concat(port));
};
return WebServer;
}());
exports.WebServer = WebServer;
//# sourceMappingURL=SocketWerver.js.map

1
dist/SocketWerver.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"SocketWerver.js","sourceRoot":"","sources":["../src/SocketWerver.ts"],"names":[],"mappings":";;;AAAA,uCAA6D;AAG7D,IAAM,MAAM,GAAG,aAAa,CAAC;AAC7B;IAKC,mBAAY,IAAU;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAEO,2BAAO,GAAf;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAc,EAAE,CAAC;IACpC,CAAC;IAED,0BAAM,GAAN;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,6CAAsC,IAAI,CAAE,CAAC,CAAC;IACnE,CAAC;IACF,gBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,8BAAS"}

7
dist/Utils.js vendored Normal file
View File

@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.delay = delay;
function delay(duration) {
return new Promise(function (resolve) { return setTimeout(resolve, duration); });
}
//# sourceMappingURL=Utils.js.map

1
dist/Utils.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":";;AAAA,sBAEC;AAFD,SAAgB,KAAK,CAAC,QAAgB;IACrC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAA7B,CAA6B,CAAC,CAAC;AAChE,CAAC"}

22
dist/WebServer.js vendored Normal file
View File

@@ -0,0 +1,22 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebServer = void 0;
var socket_io_1 = require("socket.io");
var PREFIX = '[WebServer]';
var WebServer = /** @class */ (function () {
function WebServer(Main) {
this._Main = Main;
this.prepare();
}
WebServer.prototype.prepare = function () {
this.socket = new socket_io_1.Server();
};
WebServer.prototype.listen = function () {
var port = this._Main.Config.webServer.port;
this.socket.listen(port);
console.log(PREFIX, "Listening on port http://127.0.0.1:".concat(port));
};
return WebServer;
}());
exports.WebServer = WebServer;
//# sourceMappingURL=WebServer.js.map

1
dist/WebServer.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"WebServer.js","sourceRoot":"","sources":["../src/WebServer.ts"],"names":[],"mappings":";;;AAAA,uCAA6D;AAG7D,IAAM,MAAM,GAAG,aAAa,CAAC;AAC7B;IAKC,mBAAY,IAAU;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IAEO,2BAAO,GAAf;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAc,EAAE,CAAC;IACpC,CAAC;IAED,0BAAM,GAAN;QACC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,6CAAsC,IAAI,CAAE,CAAC,CAAC;IACnE,CAAC;IACF,gBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,8BAAS"}

205
dist/processWatcher.js vendored Normal file
View File

@@ -0,0 +1,205 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProcessWatcher = void 0;
var fs_extra_1 = require("fs-extra");
var child_process_1 = require("child_process");
var Utils_1 = require("./Utils");
var PREFIX = '[ProcessWatcher]';
var LOG_OUTPUT = !process.argv.includes('--no-output-log');
var ProcessWatcher = /** @class */ (function () {
function ProcessWatcher(Main) {
this.state = 'STOPPED';
this.startTime = null;
this.output = { current: [], last: [] };
this.restartTriggered = false;
this._Main = Main;
}
ProcessWatcher.prototype.requestRestart = function () {
if (this.state !== 'RUNNING')
return {
succeed: false,
message: 'Cannot restart when process is not running. It is probably restarting already.',
};
this.restart(true);
return { succeed: true };
};
ProcessWatcher.prototype.broadcastState = function () {
this._Main.SocketServer.socket.emit('simpleStatus', {
state: this.state,
message: this.message,
error: this.error,
});
};
ProcessWatcher.prototype.setInfo = function (message, error, state) {
if (state === void 0) { state = 'PROBLEM'; }
this.message = message;
this.error = error;
this.state = state;
this.broadcastState();
this.output.current.push("[".concat(new Date().toLocaleTimeString('nl-NL'), "] [System] [").concat(state, "] ").concat(message !== null && message !== void 0 ? message : error));
if (state == 'PROBLEM' || state == 'STOPPED')
console.warn(PREFIX, message !== null && message !== void 0 ? message : error);
else
console.log(PREFIX, message !== null && message !== void 0 ? message : error);
};
ProcessWatcher.prototype.restart = function () {
return __awaiter(this, arguments, void 0, function (instant) {
if (instant === void 0) { instant = false; }
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (this.restartTriggered)
return [2 /*return*/];
this.restartTriggered = true;
this.startTime = -1;
this.broadcastState();
if (instant)
this.setInfo('Process will restart shortly...', null, 'STOPPED');
if (!(this.process != null)) return [3 /*break*/, 2];
this.process.kill('SIGTERM');
return [4 /*yield*/, (0, Utils_1.delay)(3000)];
case 1:
_a.sent();
if (!this.process.killed && this.process.exitCode === null) {
this.process.kill('SIGKILL');
console.log(PREFIX, 'Sent SIGKILL to process.');
}
_a.label = 2;
case 2:
this.startTime = -1;
if (!!instant) return [3 /*break*/, 4];
this.setInfo("Restarting process in 5 seconds...", null, 'STOPPED');
return [4 /*yield*/, (0, Utils_1.delay)(5000)];
case 3:
_a.sent();
_a.label = 4;
case 4: return [4 /*yield*/, this.start()];
case 5:
_a.sent();
return [2 /*return*/];
}
});
});
};
ProcessWatcher.prototype.start = function () {
var _this = this;
var _a, _b;
this.output.last = __spreadArray([], this.output.current, true);
this.output.current = [];
this.startTime = Date.now();
this.restartTriggered = false;
this.broadcastState();
var path = this._Main.Config.executable.path;
if (path == null || !(0, fs_extra_1.pathExistsSync)(path)) {
this.setInfo('Executable problem', "Executable path is not set or does not exist: ".concat(path));
return;
}
var fileName = path.split(/(\/|\\)/).pop();
this.setInfo("Starting executable: ".concat(fileName), null, 'STARTING');
this.process = (0, child_process_1.spawn)(path, this._Main.Config.executable.arguments, {
stdio: 'pipe',
});
this.process.on('exit', function (code, signal) {
if (_this.restartTriggered)
return;
_this.setInfo('Process exited', "Process exited with code ".concat(code, " and signal ").concat(signal), 'STOPPED');
_this.restart();
});
this.process.on('error', function (err) {
_this.setInfo('Process error', err.message);
_this.restart();
});
(_a = this.process.stdout) === null || _a === void 0 ? void 0 : _a.on('data', function (data) {
var lines = data
.toString()
.trim()
.split('\n')
.filter(function (line) { return line.length > 0; });
lines.forEach(function (line) {
var formattedLine = "[".concat(new Date().toLocaleTimeString('nl-NL'), "] [").concat(fileName, "] ").concat(line);
if (LOG_OUTPUT)
console.log(PREFIX, formattedLine);
_this.output.current.push(formattedLine);
});
});
(_b = this.process.stderr) === null || _b === void 0 ? void 0 : _b.on('data', function (data) {
var lines = data
.toString()
.trim()
.split('\n')
.filter(function (line) { return line.length > 0; });
lines.forEach(function (line) {
var formattedLine = "[".concat(new Date().toLocaleTimeString('nl-NL'), "] [").concat(fileName, "] [ERROR] ").concat(line);
if (LOG_OUTPUT)
console.error(PREFIX, formattedLine);
_this.output.current.push(formattedLine);
});
});
setTimeout(function () {
var _a, _b;
if (_this.process == null ||
((_a = _this.process) === null || _a === void 0 ? void 0 : _a.killed) ||
((_b = _this.process) === null || _b === void 0 ? void 0 : _b.exitCode) != null ||
_this.restartTriggered)
return;
_this.setInfo('Running', '', 'RUNNING');
}, 5000);
};
ProcessWatcher.prototype.getStatus = function () {
return {
state: this.state,
message: this.message,
error: this.error,
startTime: this.startTime,
output: this.output,
};
};
return ProcessWatcher;
}());
exports.ProcessWatcher = ProcessWatcher;
//# sourceMappingURL=processWatcher.js.map

1
dist/processWatcher.js.map vendored Normal file

File diff suppressed because one or more lines are too long