ip-utilties 1.1.1 → 1.2.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ip-utilties",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
package/src/ip.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  const ipv4 = {
2
+ name: "IPv4",
2
3
  factory: Uint8Array,
3
4
  normalize(address) {
4
5
  return address;
@@ -12,6 +13,7 @@ const ipv4 = {
12
13
  };
13
14
 
14
15
  const ipv6 = {
16
+ name: "IPv6",
15
17
  factory: Uint16Array,
16
18
  normalize(address) {
17
19
  const parts = address.split(":");
@@ -140,6 +142,15 @@ export function isIPv6(address) {
140
142
  return _is(ipv6, address);
141
143
  }
142
144
 
145
+ /**
146
+ * IP address family for a given address.
147
+ * @param {string|Uint8Array|Uint16Array} address
148
+ * @return {string|undefined}
149
+ */
150
+ export function familyIP(address) {
151
+ return _family(address)?.name
152
+ }
153
+
143
154
  function _family(address) {
144
155
  return [ipv4, ipv6].find(d => _is(d, address));
145
156
  }
package/types/ip.d.mts CHANGED
@@ -6,6 +6,12 @@ export function decodeIPv4(address: any, length: any): string;
6
6
  export function decodeIP(address: any, length: any): string;
7
7
  export function isIPv4(address: any): boolean;
8
8
  export function isIPv6(address: any): boolean;
9
+ /**
10
+ * IP address family for a given address.
11
+ * @param {string|Uint8Array|Uint16Array} address
12
+ * @return {string|undefined}
13
+ */
14
+ export function familyIP(address: string | Uint8Array | Uint16Array): string | undefined;
9
15
  export function asBigInt(address: any): any;
10
16
  export function prefixIP(address: any, length: any): string;
11
17
  export function rangeIP(address: any, prefix: any, lowerAdd?: number, upperReduce?: number): any[];