"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _os() { const data = _interopRequireDefault(require("os")); _os = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function priority(name) { if (name.startsWith('en') || name.startsWith('eth')) { return 0; } if (name.startsWith('wlan')) { return 1; } return 2; } function isLoopback(addr) { return /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || /^fe80::1$/.test(addr) || /^::1$/.test(addr) || /^::$/.test(addr); } function loopback(family = 'IPv4') { if (family === 'IPv4') { return '127.0.0.1'; } else if (family === 'IPv6') { return 'fe80::1'; } else { throw new Error('IP family must be IPv4 or IPv6'); } } function address(family = 'IPv4') { const interfaces = _os().default.networkInterfaces(); const sortedInterfaces = Object.keys(interfaces).sort(function (a, b) { return priority(a) - priority(b); }); const all = sortedInterfaces.map(function (nic) { const addresses = interfaces[nic].filter(details => details.family === family && !isLoopback(details.address)); return addresses.length ? addresses[0].address : undefined; }).filter(Boolean); return all.length ? all[0] : loopback(family); } var _default = { address }; exports.default = _default; //# sourceMappingURL=__sourcemaps__/ip.js.map