Socket
Socket
Sign inDemoInstall

ip-bigint

Package Overview
Dependencies
0
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.2.0 to 7.2.1

50

index.js
export const max4 = 2n ** 32n - 1n;
export const max6 = 2n ** 128n - 1n;
const isIP = ip => ip.includes(":") ? 6 : ip.includes(".") ? 4 : 0;
export function parseIp(ip) {
const version = isIP(ip);
const version = ip.includes(":") ? 6 : ip.includes(".") ? 4 : 0;
if (!version) throw new Error(`Invalid IP address: ${ip}`);
const result = Object.create(null);
let number = 0n;
let exp = 0n;
const res = Object.create(null);

@@ -18,9 +17,5 @@ if (version === 4) {

}
result.number = number;
result.version = version;
return result;
} else {
if (ip.includes(".")) {
result.ipv4mapped = true;
res.ipv4mapped = true;
ip = ip.split(":").map(part => {

@@ -39,3 +34,3 @@ if (part.includes(".")) {

[, ip, scopeid] = /(.+)%(.+)/.exec(ip);
result.scopeid = scopeid;
res.scopeid = scopeid;
}

@@ -56,7 +51,7 @@

}
}
result.number = number;
result.version = version;
return result;
}
res.number = number;
res.version = version;
return res;
}

@@ -119,29 +114,26 @@

function compressIPv6(parts) {
let longestSequence;
let currentSequence;
let longest, current;
for (const [index, part] of parts.entries()) {
if (part === "0") {
if (!currentSequence) {
currentSequence = new Set([index]);
if (!current) {
current = new Set([index]);
} else {
currentSequence.add(index);
current.add(index);
}
} else {
if (currentSequence) {
if (!longestSequence) {
longestSequence = currentSequence;
} else if (currentSequence.size > longestSequence.size) {
longestSequence = currentSequence;
if (current) {
if (!longest) {
longest = current;
} else if (current.size > longest.size) {
longest = current;
}
currentSequence = null;
current = null;
}
}
}
if (!longestSequence && currentSequence) {
longestSequence = currentSequence;
} else if (currentSequence && currentSequence.size > longestSequence.size) {
longestSequence = currentSequence;
if ((!longest && current) || (current && current.size > longest.size)) {
longest = current;
}
for (const index of longestSequence || []) {
for (const index of longest || []) {
parts[index] = ":";

@@ -148,0 +140,0 @@ }

{
"name": "ip-bigint",
"version": "7.2.0",
"version": "7.2.1",
"description": "Convert IPv4 and IPv6 addresses to native BigInt and vice-versa",

@@ -5,0 +5,0 @@ "author": "silverwind <me@silverwind.io>",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc