@dimzxzzx07/mc-headless 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -0
- package/dist/core/ConfigHandler.d.ts +12 -0
- package/dist/core/ConfigHandler.d.ts.map +1 -0
- package/dist/core/ConfigHandler.js +118 -0
- package/dist/core/ConfigHandler.js.map +1 -0
- package/dist/core/JavaChecker.d.ts +8 -0
- package/dist/core/JavaChecker.d.ts.map +1 -0
- package/dist/core/JavaChecker.js +68 -0
- package/dist/core/JavaChecker.js.map +1 -0
- package/dist/core/MinecraftServer.d.ts +28 -0
- package/dist/core/MinecraftServer.d.ts.map +1 -0
- package/dist/core/MinecraftServer.js +312 -0
- package/dist/core/MinecraftServer.js.map +1 -0
- package/dist/core/ServerManager.d.ts +30 -0
- package/dist/core/ServerManager.d.ts.map +1 -0
- package/dist/core/ServerManager.js +203 -0
- package/dist/core/ServerManager.js.map +1 -0
- package/dist/engines/Downloader.d.ts +16 -0
- package/dist/engines/Downloader.d.ts.map +1 -0
- package/dist/engines/Downloader.js +159 -0
- package/dist/engines/Downloader.js.map +1 -0
- package/dist/engines/FabricEngine.d.ts +11 -0
- package/dist/engines/FabricEngine.d.ts.map +1 -0
- package/dist/engines/FabricEngine.js +70 -0
- package/dist/engines/FabricEngine.js.map +1 -0
- package/dist/engines/ForgeEngine.d.ts +11 -0
- package/dist/engines/ForgeEngine.d.ts.map +1 -0
- package/dist/engines/ForgeEngine.js +84 -0
- package/dist/engines/ForgeEngine.js.map +1 -0
- package/dist/engines/PaperEngine.d.ts +11 -0
- package/dist/engines/PaperEngine.d.ts.map +1 -0
- package/dist/engines/PaperEngine.js +88 -0
- package/dist/engines/PaperEngine.js.map +1 -0
- package/dist/engines/ServerEngine.d.ts +10 -0
- package/dist/engines/ServerEngine.d.ts.map +1 -0
- package/dist/engines/ServerEngine.js +3 -0
- package/dist/engines/ServerEngine.js.map +1 -0
- package/dist/engines/VanillaEngine.d.ts +11 -0
- package/dist/engines/VanillaEngine.d.ts.map +1 -0
- package/dist/engines/VanillaEngine.js +70 -0
- package/dist/engines/VanillaEngine.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -0
- package/dist/platforms/BedrockServer.d.ts +30 -0
- package/dist/platforms/BedrockServer.d.ts.map +1 -0
- package/dist/platforms/BedrockServer.js +301 -0
- package/dist/platforms/BedrockServer.js.map +1 -0
- package/dist/platforms/GeyserBridge.d.ts +9 -0
- package/dist/platforms/GeyserBridge.d.ts.map +1 -0
- package/dist/platforms/GeyserBridge.js +98 -0
- package/dist/platforms/GeyserBridge.js.map +1 -0
- package/dist/platforms/JavaServer.d.ts +27 -0
- package/dist/platforms/JavaServer.d.ts.map +1 -0
- package/dist/platforms/JavaServer.js +237 -0
- package/dist/platforms/JavaServer.js.map +1 -0
- package/dist/types/index.d.ts +80 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/FileUtils.d.ts +20 -0
- package/dist/utils/FileUtils.d.ts.map +1 -0
- package/dist/utils/FileUtils.js +172 -0
- package/dist/utils/FileUtils.js.map +1 -0
- package/dist/utils/Logger.d.ts +26 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +91 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/PropertiesParser.d.ts +7 -0
- package/dist/utils/PropertiesParser.d.ts.map +1 -0
- package/dist/utils/PropertiesParser.js +124 -0
- package/dist/utils/PropertiesParser.js.map +1 -0
- package/dist/utils/SystemDetector.d.ts +14 -0
- package/dist/utils/SystemDetector.d.ts.map +1 -0
- package/dist/utils/SystemDetector.js +152 -0
- package/dist/utils/SystemDetector.js.map +1 -0
- package/package.json +51 -0
- package/src/core/ConfigHandler.ts +136 -0
- package/src/core/JavaChecker.ts +71 -0
- package/src/core/MinecraftServer.ts +326 -0
- package/src/core/ServerManager.ts +196 -0
- package/src/engines/Downloader.ts +144 -0
- package/src/engines/FabricEngine.ts +49 -0
- package/src/engines/ForgeEngine.ts +65 -0
- package/src/engines/PaperEngine.ts +68 -0
- package/src/engines/ServerEngine.ts +10 -0
- package/src/engines/VanillaEngine.ts +49 -0
- package/src/index.ts +83 -0
- package/src/platforms/BedrockServer.ts +311 -0
- package/src/platforms/GeyserBridge.ts +83 -0
- package/src/platforms/JavaServer.ts +241 -0
- package/src/scripts/detect-os.sh +56 -0
- package/src/scripts/install-java.sh +38 -0
- package/src/types/index.ts +89 -0
- package/src/utils/FileUtils.ts +162 -0
- package/src/utils/Logger.ts +97 -0
- package/src/utils/PropertiesParser.ts +126 -0
- package/src/utils/SystemDetector.ts +127 -0
- package/tsconfig.json +23 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FileUtils = void 0;
|
|
37
|
+
const fs = __importStar(require("fs-extra"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const tar = __importStar(require("tar"));
|
|
40
|
+
const AdmZip = require('adm-zip');
|
|
41
|
+
const Logger_1 = require("./Logger");
|
|
42
|
+
class FileUtils {
|
|
43
|
+
static logger = Logger_1.Logger.getInstance();
|
|
44
|
+
static async ensureDir(dir) {
|
|
45
|
+
await fs.ensureDir(dir);
|
|
46
|
+
}
|
|
47
|
+
static async writeFile(filePath, data) {
|
|
48
|
+
await fs.ensureDir(path.dirname(filePath));
|
|
49
|
+
await fs.writeFile(filePath, data);
|
|
50
|
+
}
|
|
51
|
+
static async readFile(filePath) {
|
|
52
|
+
return fs.readFile(filePath);
|
|
53
|
+
}
|
|
54
|
+
static async fileExists(filePath) {
|
|
55
|
+
return fs.pathExists(filePath);
|
|
56
|
+
}
|
|
57
|
+
static async deleteFile(filePath) {
|
|
58
|
+
if (await fs.pathExists(filePath)) {
|
|
59
|
+
await fs.remove(filePath);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
static async deleteFolder(folderPath) {
|
|
63
|
+
if (await fs.pathExists(folderPath)) {
|
|
64
|
+
await fs.remove(folderPath);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static async copyFile(source, destination) {
|
|
68
|
+
await fs.ensureDir(path.dirname(destination));
|
|
69
|
+
await fs.copy(source, destination);
|
|
70
|
+
}
|
|
71
|
+
static async moveFile(source, destination) {
|
|
72
|
+
await fs.ensureDir(path.dirname(destination));
|
|
73
|
+
await fs.move(source, destination, { overwrite: true });
|
|
74
|
+
}
|
|
75
|
+
static async listFiles(dir, pattern) {
|
|
76
|
+
if (!await fs.pathExists(dir)) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
const files = await fs.readdir(dir);
|
|
80
|
+
if (pattern) {
|
|
81
|
+
return files.filter(f => pattern.test(f));
|
|
82
|
+
}
|
|
83
|
+
return files;
|
|
84
|
+
}
|
|
85
|
+
static async getFileSize(filePath) {
|
|
86
|
+
const stat = await fs.stat(filePath);
|
|
87
|
+
return stat.size;
|
|
88
|
+
}
|
|
89
|
+
static async extractZip(zipPath, destPath) {
|
|
90
|
+
this.logger.debug(`Extracting ${zipPath} to ${destPath}`);
|
|
91
|
+
try {
|
|
92
|
+
const zip = new AdmZip(zipPath);
|
|
93
|
+
zip.extractAllTo(destPath, true);
|
|
94
|
+
this.logger.debug('Extraction complete');
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
this.logger.error('Failed to extract zip:', error);
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
static async extractTar(tarPath, destPath) {
|
|
102
|
+
this.logger.debug(`Extracting ${tarPath} to ${destPath}`);
|
|
103
|
+
try {
|
|
104
|
+
await tar.extract({
|
|
105
|
+
file: tarPath,
|
|
106
|
+
cwd: destPath
|
|
107
|
+
});
|
|
108
|
+
this.logger.debug('Extraction complete');
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
this.logger.error('Failed to extract tar:', error);
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
static async createBackup(sourcePath, backupPath) {
|
|
116
|
+
this.logger.info(`Creating backup of ${sourcePath} to ${backupPath}`);
|
|
117
|
+
await fs.ensureDir(path.dirname(backupPath));
|
|
118
|
+
if (await fs.pathExists(sourcePath)) {
|
|
119
|
+
await fs.copy(sourcePath, backupPath);
|
|
120
|
+
const size = await this.getFileSize(backupPath);
|
|
121
|
+
this.logger.success(`Backup created: ${backupPath} (${size} bytes)`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.logger.warning(`Source path not found: ${sourcePath}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
static async writeProperties(filePath, properties) {
|
|
128
|
+
const lines = [];
|
|
129
|
+
for (const [key, value] of Object.entries(properties)) {
|
|
130
|
+
if (value !== undefined && value !== null) {
|
|
131
|
+
lines.push(`${key}=${value}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
await this.writeFile(filePath, lines.join('\n'));
|
|
135
|
+
this.logger.debug(`Properties written to ${filePath}`);
|
|
136
|
+
}
|
|
137
|
+
static async readProperties(filePath) {
|
|
138
|
+
if (!await this.fileExists(filePath)) {
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
const content = await fs.readFile(filePath, 'utf8');
|
|
142
|
+
const properties = {};
|
|
143
|
+
for (const line of content.split('\n')) {
|
|
144
|
+
const trimmed = line.trim();
|
|
145
|
+
if (trimmed && !trimmed.startsWith('#')) {
|
|
146
|
+
const eq = trimmed.indexOf('=');
|
|
147
|
+
if (eq > 0) {
|
|
148
|
+
const key = trimmed.substring(0, eq).trim();
|
|
149
|
+
const value = trimmed.substring(eq + 1).trim();
|
|
150
|
+
properties[key] = value;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return properties;
|
|
155
|
+
}
|
|
156
|
+
static async ensureServerStructure(config) {
|
|
157
|
+
const folders = [
|
|
158
|
+
config.folders.addons,
|
|
159
|
+
config.folders.mods,
|
|
160
|
+
config.folders.plugins,
|
|
161
|
+
config.folders.world,
|
|
162
|
+
path.join(process.cwd(), 'logs'),
|
|
163
|
+
path.join(process.cwd(), 'backups')
|
|
164
|
+
];
|
|
165
|
+
for (const folder of folders) {
|
|
166
|
+
await this.ensureDir(folder);
|
|
167
|
+
}
|
|
168
|
+
this.logger.debug('Server structure created');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
exports.FileUtils = FileUtils;
|
|
172
|
+
//# sourceMappingURL=FileUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileUtils.js","sourceRoot":"","sources":["../../src/utils/FileUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare enum LogLevel {
|
|
2
|
+
DEBUG = 0,
|
|
3
|
+
INFO = 1,
|
|
4
|
+
SUCCESS = 2,
|
|
5
|
+
WARNING = 3,
|
|
6
|
+
ERROR = 4,
|
|
7
|
+
NONE = 5
|
|
8
|
+
}
|
|
9
|
+
export declare class Logger {
|
|
10
|
+
private static instance;
|
|
11
|
+
private logLevel;
|
|
12
|
+
private logFile;
|
|
13
|
+
private fs;
|
|
14
|
+
private constructor();
|
|
15
|
+
static getInstance(): Logger;
|
|
16
|
+
setLogLevel(level: LogLevel): void;
|
|
17
|
+
setLogFile(filePath: string): void;
|
|
18
|
+
private log;
|
|
19
|
+
debug(message: string, ...args: any[]): void;
|
|
20
|
+
info(message: string, ...args: any[]): void;
|
|
21
|
+
success(message: string, ...args: any[]): void;
|
|
22
|
+
warning(message: string, ...args: any[]): void;
|
|
23
|
+
error(message: string, ...args: any[]): void;
|
|
24
|
+
banner(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ;IAChB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,OAAO,IAAI;IACX,OAAO,IAAI;IACX,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,EAAE,CAAM;IAEhB,OAAO;WAMO,WAAW,IAAI,MAAM;IAO5B,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIlC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC,OAAO,CAAC,GAAG;IAiCJ,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,MAAM,IAAI,IAAI;CAKxB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Logger = exports.LogLevel = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
var LogLevel;
|
|
9
|
+
(function (LogLevel) {
|
|
10
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
11
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
12
|
+
LogLevel[LogLevel["SUCCESS"] = 2] = "SUCCESS";
|
|
13
|
+
LogLevel[LogLevel["WARNING"] = 3] = "WARNING";
|
|
14
|
+
LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
|
|
15
|
+
LogLevel[LogLevel["NONE"] = 5] = "NONE";
|
|
16
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
17
|
+
class Logger {
|
|
18
|
+
static instance;
|
|
19
|
+
logLevel = LogLevel.INFO;
|
|
20
|
+
logFile = null;
|
|
21
|
+
fs;
|
|
22
|
+
constructor() {
|
|
23
|
+
try {
|
|
24
|
+
this.fs = require('fs-extra');
|
|
25
|
+
}
|
|
26
|
+
catch { }
|
|
27
|
+
}
|
|
28
|
+
static getInstance() {
|
|
29
|
+
if (!Logger.instance) {
|
|
30
|
+
Logger.instance = new Logger();
|
|
31
|
+
}
|
|
32
|
+
return Logger.instance;
|
|
33
|
+
}
|
|
34
|
+
setLogLevel(level) {
|
|
35
|
+
this.logLevel = level;
|
|
36
|
+
}
|
|
37
|
+
setLogFile(filePath) {
|
|
38
|
+
this.logFile = filePath;
|
|
39
|
+
}
|
|
40
|
+
log(level, message, ...args) {
|
|
41
|
+
if (level < this.logLevel)
|
|
42
|
+
return;
|
|
43
|
+
const timestamp = new Date().toISOString();
|
|
44
|
+
const levelName = LogLevel[level];
|
|
45
|
+
let coloredMessage = '';
|
|
46
|
+
switch (level) {
|
|
47
|
+
case LogLevel.DEBUG:
|
|
48
|
+
coloredMessage = chalk_1.default.gray(`[${timestamp}] [${levelName}] ${message}`);
|
|
49
|
+
break;
|
|
50
|
+
case LogLevel.INFO:
|
|
51
|
+
coloredMessage = chalk_1.default.cyan(`[${timestamp}] [${levelName}] ${message}`);
|
|
52
|
+
break;
|
|
53
|
+
case LogLevel.SUCCESS:
|
|
54
|
+
coloredMessage = chalk_1.default.green(`[${timestamp}] [${levelName}] ${message}`);
|
|
55
|
+
break;
|
|
56
|
+
case LogLevel.WARNING:
|
|
57
|
+
coloredMessage = chalk_1.default.yellow(`[${timestamp}] [${levelName}] ${message}`);
|
|
58
|
+
break;
|
|
59
|
+
case LogLevel.ERROR:
|
|
60
|
+
coloredMessage = chalk_1.default.red(`[${timestamp}] [${levelName}] ${message}`);
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
console.log(coloredMessage, ...args);
|
|
64
|
+
if (this.logFile && this.fs) {
|
|
65
|
+
const logMessage = `[${timestamp}] [${levelName}] ${message} ${args.map(a => JSON.stringify(a)).join(' ')}\n`;
|
|
66
|
+
this.fs.appendFileSync(this.logFile, logMessage);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
debug(message, ...args) {
|
|
70
|
+
this.log(LogLevel.DEBUG, message, ...args);
|
|
71
|
+
}
|
|
72
|
+
info(message, ...args) {
|
|
73
|
+
this.log(LogLevel.INFO, message, ...args);
|
|
74
|
+
}
|
|
75
|
+
success(message, ...args) {
|
|
76
|
+
this.log(LogLevel.SUCCESS, message, ...args);
|
|
77
|
+
}
|
|
78
|
+
warning(message, ...args) {
|
|
79
|
+
this.log(LogLevel.WARNING, message, ...args);
|
|
80
|
+
}
|
|
81
|
+
error(message, ...args) {
|
|
82
|
+
this.log(LogLevel.ERROR, message, ...args);
|
|
83
|
+
}
|
|
84
|
+
banner() {
|
|
85
|
+
console.log(chalk_1.default.cyan(`
|
|
86
|
+
Mc Headless - Powered By Dimzxzzx07
|
|
87
|
+
`));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.Logger = Logger;
|
|
91
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,6CAAW,CAAA;IACX,6CAAW,CAAA;IACX,yCAAS,CAAA;IACT,uCAAQ,CAAA;AACZ,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB;AAED,MAAa,MAAM;IACP,MAAM,CAAC,QAAQ,CAAS;IACxB,QAAQ,GAAa,QAAQ,CAAC,IAAI,CAAC;IACnC,OAAO,GAAkB,IAAI,CAAC;IAC9B,EAAE,CAAM;IAEhB;QACI,IAAI,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAEM,WAAW,CAAC,KAAe;QAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEM,UAAU,CAAC,QAAgB;QAC9B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,GAAG,IAAW;QACxD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO;QAElC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC,KAAK;gBACf,cAAc,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;gBACxE,MAAM;YACV,KAAK,QAAQ,CAAC,IAAI;gBACd,cAAc,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;gBACxE,MAAM;YACV,KAAK,QAAQ,CAAC,OAAO;gBACjB,cAAc,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,QAAQ,CAAC,OAAO;gBACjB,cAAc,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;gBAC1E,MAAM;YACV,KAAK,QAAQ,CAAC,KAAK;gBACf,cAAc,GAAG,eAAK,CAAC,GAAG,CAAC,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;gBACvE,MAAM;QACd,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,SAAS,MAAM,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9G,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEM,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QACvC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,GAAG,IAAW;QAC1C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,GAAG,IAAW;QAC1C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM;QACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC;;SAEtB,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AArFD,wBAqFC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class PropertiesParser {
|
|
2
|
+
static parse(content: string): Record<string, string>;
|
|
3
|
+
static stringify(properties: Record<string, any>): string;
|
|
4
|
+
static generateServerProperties(config: any): Record<string, any>;
|
|
5
|
+
static generateBedrockProperties(config: any): Record<string, any>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=PropertiesParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertiesParser.d.ts","sourceRoot":"","sources":["../../src/utils/PropertiesParser.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;WACX,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;WAmB9C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;WAYlD,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;WA8D1D,yBAAyB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA+B5E"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PropertiesParser = void 0;
|
|
4
|
+
class PropertiesParser {
|
|
5
|
+
static parse(content) {
|
|
6
|
+
const properties = {};
|
|
7
|
+
const lines = content.split('\n');
|
|
8
|
+
for (const line of lines) {
|
|
9
|
+
const trimmed = line.trim();
|
|
10
|
+
if (trimmed && !trimmed.startsWith('#')) {
|
|
11
|
+
const eqIndex = trimmed.indexOf('=');
|
|
12
|
+
if (eqIndex > 0) {
|
|
13
|
+
const key = trimmed.substring(0, eqIndex).trim();
|
|
14
|
+
const value = trimmed.substring(eqIndex + 1).trim();
|
|
15
|
+
properties[key] = value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return properties;
|
|
20
|
+
}
|
|
21
|
+
static stringify(properties) {
|
|
22
|
+
const lines = [];
|
|
23
|
+
for (const [key, value] of Object.entries(properties)) {
|
|
24
|
+
if (value !== undefined && value !== null) {
|
|
25
|
+
lines.push(`${key}=${value}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return lines.join('\n');
|
|
29
|
+
}
|
|
30
|
+
static generateServerProperties(config) {
|
|
31
|
+
return {
|
|
32
|
+
'allow-flight': false,
|
|
33
|
+
'allow-nether': true,
|
|
34
|
+
'broadcast-console-to-ops': true,
|
|
35
|
+
'broadcast-rcon-to-ops': true,
|
|
36
|
+
'difficulty': config.world.difficulty,
|
|
37
|
+
'enable-command-block': false,
|
|
38
|
+
'enable-jmx-monitoring': false,
|
|
39
|
+
'enable-query': false,
|
|
40
|
+
'enable-rcon': false,
|
|
41
|
+
'enable-status': true,
|
|
42
|
+
'enforce-secure-profile': true,
|
|
43
|
+
'enforce-whitelist': false,
|
|
44
|
+
'entity-broadcast-range-percentage': 100,
|
|
45
|
+
'force-gamemode': false,
|
|
46
|
+
'function-permission-level': 2,
|
|
47
|
+
'gamemode': config.world.gamemode,
|
|
48
|
+
'generate-structures': true,
|
|
49
|
+
'generator-settings': '',
|
|
50
|
+
'hardcore': config.world.hardcore,
|
|
51
|
+
'hide-online-players': false,
|
|
52
|
+
'initial-disabled-packs': '',
|
|
53
|
+
'initial-enabled-packs': 'vanilla',
|
|
54
|
+
'level-name': config.world.levelName,
|
|
55
|
+
'level-seed': config.world.seed || '',
|
|
56
|
+
'level-type': 'minecraft\\:normal',
|
|
57
|
+
'max-chained-neighbor-updates': 1000000,
|
|
58
|
+
'max-players': config.world.maxPlayers,
|
|
59
|
+
'max-tick-time': 60000,
|
|
60
|
+
'max-world-size': 29999984,
|
|
61
|
+
'motd': config.network.motd,
|
|
62
|
+
'network-compression-threshold': 256,
|
|
63
|
+
'online-mode': config.network.onlineMode,
|
|
64
|
+
'op-permission-level': 4,
|
|
65
|
+
'player-idle-timeout': 0,
|
|
66
|
+
'prevent-proxy-connections': false,
|
|
67
|
+
'pvp': true,
|
|
68
|
+
'query.port': 25565,
|
|
69
|
+
'rate-limit': 0,
|
|
70
|
+
'rcon.password': '',
|
|
71
|
+
'rcon.port': 25575,
|
|
72
|
+
'require-resource-pack': false,
|
|
73
|
+
'resource-pack': '',
|
|
74
|
+
'resource-pack-id': '',
|
|
75
|
+
'resource-pack-prompt': '',
|
|
76
|
+
'resource-pack-sha1': '',
|
|
77
|
+
'server-ip': config.network.ip,
|
|
78
|
+
'server-port': config.network.port,
|
|
79
|
+
'simulation-distance': config.world.viewDistance,
|
|
80
|
+
'spawn-animals': true,
|
|
81
|
+
'spawn-monsters': true,
|
|
82
|
+
'spawn-npcs': true,
|
|
83
|
+
'spawn-protection': 16,
|
|
84
|
+
'sync-chunk-writes': true,
|
|
85
|
+
'text-filtering-config': '',
|
|
86
|
+
'use-native-transport': true,
|
|
87
|
+
'view-distance': config.world.viewDistance,
|
|
88
|
+
'white-list': false
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
static generateBedrockProperties(config) {
|
|
92
|
+
return {
|
|
93
|
+
'server-name': config.network.motd.replace(/§./g, ''),
|
|
94
|
+
'gamemode': config.world.gamemode,
|
|
95
|
+
'difficulty': config.world.difficulty,
|
|
96
|
+
'allow-cheats': false,
|
|
97
|
+
'max-players': config.world.maxPlayers,
|
|
98
|
+
'online-mode': config.network.onlineMode,
|
|
99
|
+
'white-list': false,
|
|
100
|
+
'server-port': config.network.bedrockPort || 19132,
|
|
101
|
+
'server-portv6': 19133,
|
|
102
|
+
'level-name': config.world.levelName,
|
|
103
|
+
'level-seed': config.world.seed || '',
|
|
104
|
+
'level-type': 'DEFAULT',
|
|
105
|
+
'enable-query': true,
|
|
106
|
+
'enable-rcon': false,
|
|
107
|
+
'rcon-port': 25575,
|
|
108
|
+
'rcon-password': '',
|
|
109
|
+
'max-threads': 8,
|
|
110
|
+
'tick-distance': 4,
|
|
111
|
+
'default-player-permission-level': 'member',
|
|
112
|
+
'texturepack-required': false,
|
|
113
|
+
'content-log-file-enabled': false,
|
|
114
|
+
'compression-threshold': 1,
|
|
115
|
+
'server-authoritative-movement': 'server-auth',
|
|
116
|
+
'player-movement-score-threshold': 20,
|
|
117
|
+
'player-movement-distance-threshold': 0.3,
|
|
118
|
+
'player-movement-duration-threshold-in-ms': 500,
|
|
119
|
+
'correct-player-movement': false
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.PropertiesParser = PropertiesParser;
|
|
124
|
+
//# sourceMappingURL=PropertiesParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertiesParser.js","sourceRoot":"","sources":["../../src/utils/PropertiesParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type OSType = 'linux' | 'darwin' | 'windows' | 'android' | 'unknown';
|
|
2
|
+
export type DistroType = 'ubuntu' | 'debian' | 'centos' | 'fedora' | 'arch' | 'termux' | 'unknown';
|
|
3
|
+
export declare class SystemDetector {
|
|
4
|
+
static getOS(): OSType;
|
|
5
|
+
static getDistro(): DistroType;
|
|
6
|
+
static hasJava(): boolean;
|
|
7
|
+
static getJavaVersion(): string | null;
|
|
8
|
+
static getArch(): string;
|
|
9
|
+
static getTotalMemory(): number;
|
|
10
|
+
static getCPUCores(): number;
|
|
11
|
+
static getSystemInfo(): any;
|
|
12
|
+
static getJavaInstallCommand(): string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=SystemDetector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemDetector.d.ts","sourceRoot":"","sources":["../../src/utils/SystemDetector.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnG,qBAAa,cAAc;WACT,KAAK,IAAI,MAAM;WAiBf,SAAS,IAAI,UAAU;WAsBvB,OAAO,IAAI,OAAO;WASlB,cAAc,IAAI,MAAM,GAAG,IAAI;WAU/B,OAAO,IAAI,MAAM;WAIjB,cAAc,IAAI,MAAM;WAIxB,WAAW,IAAI,MAAM;WAIrB,aAAa,IAAI,GAAG;WAepB,qBAAqB,IAAI,MAAM;CAkChD"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SystemDetector = void 0;
|
|
37
|
+
const child_process_1 = require("child_process");
|
|
38
|
+
const os = __importStar(require("os"));
|
|
39
|
+
class SystemDetector {
|
|
40
|
+
static getOS() {
|
|
41
|
+
const platform = os.platform();
|
|
42
|
+
if (platform === 'linux') {
|
|
43
|
+
if (process.env.TERMUX_VERSION || process.env.PREFIX === '/data/data/com.termux/files/usr') {
|
|
44
|
+
return 'android';
|
|
45
|
+
}
|
|
46
|
+
return 'linux';
|
|
47
|
+
}
|
|
48
|
+
else if (platform === 'darwin') {
|
|
49
|
+
return 'darwin';
|
|
50
|
+
}
|
|
51
|
+
else if (platform === 'win32') {
|
|
52
|
+
return 'windows';
|
|
53
|
+
}
|
|
54
|
+
return 'unknown';
|
|
55
|
+
}
|
|
56
|
+
static getDistro() {
|
|
57
|
+
const osType = this.getOS();
|
|
58
|
+
if (osType === 'android') {
|
|
59
|
+
return 'termux';
|
|
60
|
+
}
|
|
61
|
+
if (osType === 'linux') {
|
|
62
|
+
try {
|
|
63
|
+
const osRelease = (0, child_process_1.execSync)('cat /etc/os-release').toString();
|
|
64
|
+
if (osRelease.includes('Ubuntu'))
|
|
65
|
+
return 'ubuntu';
|
|
66
|
+
if (osRelease.includes('Debian'))
|
|
67
|
+
return 'debian';
|
|
68
|
+
if (osRelease.includes('CentOS'))
|
|
69
|
+
return 'centos';
|
|
70
|
+
if (osRelease.includes('Fedora'))
|
|
71
|
+
return 'fedora';
|
|
72
|
+
if (osRelease.includes('Arch'))
|
|
73
|
+
return 'arch';
|
|
74
|
+
}
|
|
75
|
+
catch { }
|
|
76
|
+
}
|
|
77
|
+
return 'unknown';
|
|
78
|
+
}
|
|
79
|
+
static hasJava() {
|
|
80
|
+
try {
|
|
81
|
+
(0, child_process_1.execSync)('java -version', { stdio: 'ignore' });
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
static getJavaVersion() {
|
|
89
|
+
try {
|
|
90
|
+
const output = (0, child_process_1.execSync)('java -version 2>&1').toString();
|
|
91
|
+
const match = output.match(/version "([^"]+)"/);
|
|
92
|
+
return match ? match[1] : null;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
static getArch() {
|
|
99
|
+
return os.arch();
|
|
100
|
+
}
|
|
101
|
+
static getTotalMemory() {
|
|
102
|
+
return os.totalmem() / (1024 * 1024 * 1024);
|
|
103
|
+
}
|
|
104
|
+
static getCPUCores() {
|
|
105
|
+
return os.cpus().length;
|
|
106
|
+
}
|
|
107
|
+
static getSystemInfo() {
|
|
108
|
+
return {
|
|
109
|
+
os: this.getOS(),
|
|
110
|
+
distro: this.getDistro(),
|
|
111
|
+
arch: this.getArch(),
|
|
112
|
+
memoryGB: this.getTotalMemory(),
|
|
113
|
+
cpuCores: this.getCPUCores(),
|
|
114
|
+
hostname: os.hostname(),
|
|
115
|
+
platform: os.platform(),
|
|
116
|
+
release: os.release(),
|
|
117
|
+
hasJava: this.hasJava(),
|
|
118
|
+
javaVersion: this.getJavaVersion()
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
static getJavaInstallCommand() {
|
|
122
|
+
const osType = this.getOS();
|
|
123
|
+
const distro = this.getDistro();
|
|
124
|
+
if (osType === 'android') {
|
|
125
|
+
return 'pkg install openjdk-17 -y';
|
|
126
|
+
}
|
|
127
|
+
if (osType === 'linux') {
|
|
128
|
+
switch (distro) {
|
|
129
|
+
case 'ubuntu':
|
|
130
|
+
case 'debian':
|
|
131
|
+
return 'apt update && apt install openjdk-17-jre-headless -y';
|
|
132
|
+
case 'centos':
|
|
133
|
+
return 'yum install java-17-openjdk-headless -y';
|
|
134
|
+
case 'fedora':
|
|
135
|
+
return 'dnf install java-17-openjdk-headless -y';
|
|
136
|
+
case 'arch':
|
|
137
|
+
return 'pacman -S jre17-openjdk-headless --noconfirm';
|
|
138
|
+
default:
|
|
139
|
+
return 'echo "Please install Java 17 manually"';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (osType === 'darwin') {
|
|
143
|
+
return 'brew install openjdk@17';
|
|
144
|
+
}
|
|
145
|
+
if (osType === 'windows') {
|
|
146
|
+
return 'Please download Java 17 from https://adoptium.net';
|
|
147
|
+
}
|
|
148
|
+
return 'echo "Unable to determine Java installation command"';
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.SystemDetector = SystemDetector;
|
|
152
|
+
//# sourceMappingURL=SystemDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemDetector.js","sourceRoot":"","sources":["../../src/utils/SystemDetector.ts"],"names":[],"mappings":"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"}
|