UNPKG

@vectorx/cloud-toolkit

Version:

VectorX Cloud Toolkit

86 lines (85 loc) 3.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDeviceInfo = getDeviceInfo; exports.deviceUA = deviceUA; exports.machineId = machineId; const child_process_1 = require("child_process"); const crypto_1 = require("crypto"); const os_1 = __importDefault(require("os")); const guid = { darwin: "ioreg -rd1 -c IOPlatformExpertDevice", win32: "%windir%\\System32\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid", linux: "( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :", }; function hash(guid) { return (0, crypto_1.createHash)("sha256").update(guid).digest("hex"); } function expose(result) { switch (process.platform) { case "darwin": return result .split("IOPlatformUUID")[1] .split("\n")[0] .replace(/\=|\s+|\"/gi, "") .toLowerCase(); case "win32": return result .toString() .split("REG_SZ")[1] .replace(/\r+|\n+|\s+/gi, "") .toLowerCase(); case "linux": return result .toString() .replace(/\r+|\n+|\s+/gi, "") .toLowerCase(); default: throw new Error(`Unsupported platform: ${process.platform}`); } } function getOsVersion() { var _a, _b; try { if (process.platform === "darwin") { return (_a = (0, child_process_1.execSync)("sw_vers -productVersion", { encoding: "utf-8" })) === null || _a === void 0 ? void 0 : _a.trim(); } return (_b = os_1.default.release()) === null || _b === void 0 ? void 0 : _b.trim(); } catch (error) { } return ""; } function formatCupSpeed(speed, arch) { var _a; const num = Number(speed); if (arch === "arm64" && num < 100) { return Number((_a = (num * 100)) === null || _a === void 0 ? void 0 : _a.toFixed(0)); } return Number(num === null || num === void 0 ? void 0 : num.toFixed(0)); } function getDeviceInfo() { var _a, _b; const cpus = os_1.default.cpus(); const cpuInfo = cpus === null || cpus === void 0 ? void 0 : cpus[0]; const result = { os_platform: ((_b = (_a = process.platform) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.toUpperCase()) + process.platform.slice(1), os_arch: process.arch, cpu_speed: formatCupSpeed(cpuInfo === null || cpuInfo === void 0 ? void 0 : cpuInfo.speed, process.arch), cpu_model: cpuInfo === null || cpuInfo === void 0 ? void 0 : cpuInfo.model, machine_memory: Math.round(os_1.default.totalmem() / 1024 / 1024), os_version: getOsVersion(), }; return result; } function deviceUA() { return Object.assign(Object.assign({}, getDeviceInfo()), { login_user: hash(os_1.default.userInfo().username || process.env.username), node_version: process.version }); } function machineId() { try { return expose((0, child_process_1.execSync)(guid[process.platform]).toString()); } catch (error) { } return JSON.stringify(deviceUA()); }