Add ESM Module #252

Merged
Sirherobrine23 merged 1 commits from ESM_Module into main 2021-11-29 19:32:40 +00:00
8 changed files with 8458 additions and 68 deletions

13
.cjs2esm.js Normal file
View File

@ -0,0 +1,13 @@
module.exports = {
input: ["src"],
output: "esm",
forceDirectory: null,
modules: [],
extension: {
use: "js",
ignore: [],
},
addModuleEntry: false,
addPackageJson: true,
filesWithShebang: [],
};

View File

@ -28,7 +28,7 @@ jobs:
NODE_AUTH_TOKEN: '${{ secrets.NPM_ORG_TOKEN }}' NODE_AUTH_TOKEN: '${{ secrets.NPM_ORG_TOKEN }}'
- name: Remove Dev Versions - name: Remove Dev Versions
run: npm run remove_dev_versions run: npm run cirelease
env: env:
NODE_AUTH_TOKEN: '${{ secrets.NPM_ORG_TOKEN }}' NODE_AUTH_TOKEN: '${{ secrets.NPM_ORG_TOKEN }}'

1
.gitignore vendored
View File

@ -11,3 +11,4 @@ the-bds-maneger-core-*.tgz
.husky .husky
Servers Servers
.Build/Releases.json .Build/Releases.json
esm/

63
index_esm.js Normal file
View File

@ -0,0 +1,63 @@
// Mount Module Oject
const ModuleExport = {}
import package_json from "./package.json";
import BdsManegerInfo from "./BdsManegerInfo.json";
const BdsManegerCoreJSONs = {
Package: package_json,
Extra: BdsManegerInfo
};
ModuleExport.version = package_json.version;
ModuleExport.ExtraJSON = BdsManegerCoreJSONs;
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Settings");
import BdsSettings from "./esm/lib/BdsSettings";
ModuleExport.BdsSettings = BdsSettings;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Settings");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Token");
import BdsToken from "./esm/lib/Token";
ModuleExport.BdsToken = BdsToken;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Token");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: System Info");
import BdsSystemInfo from "./esm/lib/BdsSystemInfo";
ModuleExport.BdsSystemInfo = BdsSystemInfo;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: System Info");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Network");
import BdsNetwork from "./esm/lib/BdsNetwork";
ModuleExport.BdsNetwork = BdsNetwork;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Network");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Backups");
import BdsBackup from "./esm/BdsBackup";
ModuleExport.BdsBackup = BdsBackup;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Backups");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Server Settings");
import BdsServerSettings from "./esm/BdsServerSettings";
ModuleExport.BdsServerSettings = BdsServerSettings;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Server Settings");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Download Server");
import BdsDownload from "./esm/BdsDownload";
ModuleExport.BdsDownload = BdsDownload;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Download Server");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Check And Kill");
import BdsCkeckKill from "./esm/BdsCkeckKill";
ModuleExport.BdsCkeckKill = BdsCkeckKill;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Check And Kill");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: API");
import BdsManegerAPI from "./esm/api";
ModuleExport.BdsManegerAPI = BdsManegerAPI;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: API");
if (process.env.ShowLoadTime) console.time("Bds Maneger Core: Server Maneger");
import BdsManegerServer from "./esm/BdsManegerServer";
ModuleExport.BdsManegerServer = BdsManegerServer;
if (process.env.ShowLoadTime) console.timeEnd("Bds Maneger Core: Server Maneger");
if (process.env.ShowLoadTime) console.log("Bds Maneger Core: Complete");

8325
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -7,17 +7,18 @@
"description": "Scripts to manage minecraft server's", "description": "Scripts to manage minecraft server's",
"private": false, "private": false,
"main": "index.js", "main": "index.js",
"exports": {
"require": "./index.js",
"import": "./index_esm.js"
},
"scripts": { "scripts": {
"start": "node bin/bds_maneger.js -s", "install": "cjs2esm",
"start:telegram": "node bin/telegram_bot.js -e js", "start": "node bin/bds_maneger.js -sk",
"stop": "node -p 'console.log(require(\"./\").kill());'",
"test": "mocha --exit .test/*.js", "test": "mocha --exit .test/*.js",
"ci": "node .Build/test/ci.js", "ci": "node .Build/test/ci.js",
"eslint": "eslint --debug .", "eslint": "eslint --debug --fix .",
"eslint:fix": "eslint --debug --fix .",
"nexe": "echo Nexe Removed from Bds Maneger Core && exit 1",
"Docker": "docker-compose build && docker-compose up", "Docker": "docker-compose build && docker-compose up",
"remove_dev_versions": "node .Build/RemoveVersions.js" "cirelease": "node .Build/RemoveVersions.js"
}, },
"bin": { "bin": {
"bds_maneger": "bin/BdsManeger.js" "bds_maneger": "bin/BdsManeger.js"
@ -80,9 +81,10 @@
"devDependencies": { "devDependencies": {
"@actions/core": "^1.5.0", "@actions/core": "^1.5.0",
"chai": "^4.3.4", "chai": "^4.3.4",
"cjs2esm": "^2.0.2",
"eslint": "^8.0.0", "eslint": "^8.0.0",
"json-schema": ">=0.4.0",
"mocha": "^9.1.3", "mocha": "^9.1.3",
"nodemon": "^2.0.12", "nodemon": "^2.0.12"
"json-schema": ">=0.4.0"
} }
} }

View File

@ -11,6 +11,7 @@ const BasicCommands = require("./ManegerServer/BasicCommands");
const ServerSessions = {}; const ServerSessions = {};
module.exports.GetSessions = () => ServerSessions; module.exports.GetSessions = () => ServerSessions;
module.exports.GetSessionsArray = () => Object.keys(ServerSessions).map(key => ServerSessions[key]);
const PlayersCallbacks = []; const PlayersCallbacks = [];
module.exports.RegisterPlayerGlobalyCallbacks = function RegisterPlayerGlobalyCallbacks(callback){ module.exports.RegisterPlayerGlobalyCallbacks = function RegisterPlayerGlobalyCallbacks(callback){
@ -235,7 +236,6 @@ module.exports.StartServer = function start() {
// Return // Return
ServerSessions[returnFuntion.uuid] = returnFuntion; ServerSessions[returnFuntion.uuid] = returnFuntion;
module.exports.BdsRun = returnFuntion;
return returnFuntion; return returnFuntion;
} }

View File

@ -17,12 +17,13 @@ const fileUpload = require("express-fileupload");
const pretty = require("express-prettify"); const pretty = require("express-prettify");
const cors = require("cors"); const cors = require("cors");
const express_rate_limit = require("express-rate-limit"); const express_rate_limit = require("express-rate-limit");
const request_ip = require("request-ip");
app.use(cors()); app.use(cors());
app.use(bodyParser.json()); /* https://github.com/github/fetch/issues/323#issuecomment-331477498 */ app.use(bodyParser.json()); /* https://github.com/github/fetch/issues/323#issuecomment-331477498 */
app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.urlencoded({ extended: true }));
app.use(pretty({always: true, spaces: 2})); app.use(pretty({always: true, spaces: 2}));
app.use(fileUpload({limits: { fileSize: 512 * 1024 }})); app.use(fileUpload({limits: { fileSize: 512 * 1024 }}));
app.use(require("request-ip").mw()); app.use(request_ip.mw());
app.use(express_rate_limit({ app.use(express_rate_limit({
windowMs: 1 * 60 * 1000, // 1 minutes windowMs: 1 * 60 * 1000, // 1 minutes
max: 500 // limit each IP to 500 requests per windowMs max: 500 // limit each IP to 500 requests per windowMs
@ -311,14 +312,13 @@ app.get("/players/kick", CheckToken, (req, res) => {
const { Player = "Sirherobrine", Text = "You have been removed from the Server" } = req.query; const { Player = "Sirherobrine", Text = "You have been removed from the Server" } = req.query;
// Kick player // Kick player
const RunnerServer = require("./BdsManegerServer").BdsRun; const Sessions = require("./BdsManegerServer").GetSessionsArray();
try { if (Sessions.length > 0) {
RunnerServer.kick(Player, Text); Sessions.forEach(RunnerServer => RunnerServer.kick(Player, Text));
res.json({ success: true }); return res.json({ success: true });
} catch (error) { } else {
res.status(400).json({ res.status(400).json({
error: "Server nots Run", error: "Server nots Run"
text: `${error}`
}); });
} }
}); });
@ -328,16 +328,14 @@ app.get("/players/ban", CheckToken, (req, res) => {
const { Player = "Sirherobrine" } = req.query; const { Player = "Sirherobrine" } = req.query;
// Ban player // Ban player
const RunnerServer = require("./BdsManegerServer").BdsRun; const Sessions = require("./BdsManegerServer").GetSessionsArray();
try { if (Sessions.length > 0) {
RunnerServer.ban(Player); Sessions.forEach(RunnerServer => RunnerServer.ban(Player));
res.json({ success: true }); return res.sendStatus(200);
} catch (error) {
res.status(400).json({
error: "Server nots Run",
text: `${error}`
});
} }
res.status(400).json({
error: "Server nots Run"
});
}); });
// Op player // Op player
@ -345,16 +343,14 @@ app.get("/players/op", CheckToken, CheckToken, (req, res) => {
const { Player = "Sirherobrine" } = req.query; const { Player = "Sirherobrine" } = req.query;
// Op player // Op player
const RunnerServer = require("./BdsManegerServer").BdsRun; const Sessions = require("./BdsManegerServer").GetSessionsArray();
try { if (Sessions.length > 0) {
RunnerServer.op(Player); Sessions.forEach(RunnerServer => RunnerServer.op(Player));
res.json({ success: true }); return res.sendStatus(200);
} catch (error) {
res.status(400).json({
error: "Server nots Run",
text: `${error}`
});
} }
res.status(400).json({
error: "Server nots Run"
});
}); });
// Deop player // Deop player
@ -362,16 +358,14 @@ app.get("/players/deop", (req, res) => {
const { Player = "Sirherobrine" } = req.query; const { Player = "Sirherobrine" } = req.query;
// Deop player // Deop player
const RunnerServer = require("./BdsManegerServer").BdsRun; const Sessions = require("./BdsManegerServer").GetSessionsArray();
try { if (Sessions.length > 0) {
RunnerServer.deop(Player); Sessions.forEach(RunnerServer => RunnerServer.deop(Player));
res.json({ success: true }); return res.sendStatus(200);
} catch (error) {
res.status(400).json({
error: "Server nots Run",
text: `${error}`
});
} }
res.status(400).json({
error: "Server nots Run"
});
}); });
// Say to Server // Say to Server
@ -379,16 +373,14 @@ app.get("/players/say", CheckToken, (req, res) => {
const { Text = "Hello Server" } = req.query; const { Text = "Hello Server" } = req.query;
// Say to Server // Say to Server
const RunnerServer = require("./BdsManegerServer").BdsRun; const Sessions = require("./BdsManegerServer").GetSessionsArray();
try { if (Sessions.length > 0) {
RunnerServer.say(Text); Sessions.forEach(RunnerServer => RunnerServer.say(Text));
res.json({ success: true }); return res.sendStatus(200);
} catch (error) {
res.status(400).json({
error: "Server nots Run",
text: `${error}`
});
} }
res.status(400).json({
error: "Server nots Run"
});
}); });
// Tp player // Tp player
@ -396,20 +388,14 @@ app.get("/players/tp", (req, res) => {
const { Player = "Sirherobrine", X = 0, Y = 0, Z = 0 } = req.query; const { Player = "Sirherobrine", X = 0, Y = 0, Z = 0 } = req.query;
// Tp player // Tp player
const RunnerServer = require("./BdsManegerServer").BdsRun; const Sessions = require("./BdsManegerServer").GetSessionsArray();
try { if (Sessions.length > 0) {
RunnerServer.tp(Player, { Sessions.forEach(RunnerServer => RunnerServer.tp(Player, X, Y, Z));
x: X, return res.sendStatus(200);
y: Y,
z: Z
});
res.json({ success: true });
} catch (error) {
res.status(400).json({
error: "Server nots Run",
text: `${error}`
});
} }
res.status(400).json({
error: "Server nots Run"
});
}); });
// Export API Routes // Export API Routes