UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 1.37 kB
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getMachineId=exports.getMacAddresses=exports.formatHash=void 0;const crypto_1=__importDefault(require("crypto")),os_1=__importDefault(require("os")),AltoError_1=require("../Errors/AltoError");function formatHash(e){return`${e.substring(0,8)}-${e.substring(8,16)}-${e.substring(16,24)}-${e.substring(24)}`}function getMacAddresses(){try{return getMacAddressesFromOS().reduce(flattenArrayReducer,[]).filter(addressesFilter)}catch(e){throw new AltoError_1.AltoError("Unable to get mac addresses from OS",e)}}function getMachineId(){try{const e=os_1.default.cpus().map(e=>e.model).join(":");return createMD5Hash(`${e}|${os_1.default.totalmem()}|${getMacAddresses()}`)}catch(e){throw new AltoError_1.AltoError("Unable to generate machine Id",e)}}function createMD5Hash(e){return crypto_1.default.createHash("md5").update(e).digest("hex")}function getMacAddressesFromOS(){return Object.values(os_1.default.networkInterfaces()).filter(e=>!!e).map(e=>e.map(e=>e.mac))}function flattenArrayReducer(e,r){return e.concat(r)}function addressesFilter(e,r,t){return r===t.indexOf(e)&&"00:00:00:00:00:00"!==e}exports.formatHash=formatHash,exports.getMacAddresses=getMacAddresses,exports.getMachineId=getMachineId;