@libp2p/utils 6.5.2-d98cc46e4 → 6.5.3-2a3cec922

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.
@@ -0,0 +1,6 @@
1
+ import type { Multiaddr } from '@multiformats/multiaddr';
2
+ /**
3
+ * Check if a given multiaddr is IP-based
4
+ */
5
+ export declare function isIpBased(ma: Multiaddr): boolean;
6
+ //# sourceMappingURL=is-ip-based.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip-based.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-ip-based.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD;;GAEG;AACH,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAUjD"}
@@ -0,0 +1,15 @@
1
+ const CODEC_IP4 = 0x04;
2
+ const CODEC_IP6 = 0x29;
3
+ /**
4
+ * Check if a given multiaddr is IP-based
5
+ */
6
+ export function isIpBased(ma) {
7
+ try {
8
+ const [[codec]] = ma.stringTuples();
9
+ return codec === CODEC_IP4 || codec === CODEC_IP6;
10
+ }
11
+ catch {
12
+ }
13
+ return false;
14
+ }
15
+ //# sourceMappingURL=is-ip-based.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-ip-based.js","sourceRoot":"","sources":["../../../src/multiaddr/is-ip-based.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,SAAS,GAAG,IAAI,CAAA;AAEtB;;GAEG;AACH,MAAM,UAAU,SAAS,CAAE,EAAa;IACtC,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;QAEnC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-loopback.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,UAAU,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAIlD"}
1
+ {"version":3,"file":"is-loopback.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,UAAU,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CASlD"}
@@ -1,8 +1,13 @@
1
1
  import { isLoopbackAddr } from 'is-loopback-addr';
2
+ import { isIpBased } from './is-ip-based.js';
2
3
  /**
3
4
  * Check if a given multiaddr is a loopback address.
4
5
  */
5
6
  export function isLoopback(ma) {
7
+ if (!isIpBased(ma)) {
8
+ // not an IP based multiaddr, cannot be private
9
+ return false;
10
+ }
6
11
  const { address } = ma.nodeAddress();
7
12
  return isLoopbackAddr(address);
8
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"is-loopback.js","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,EAAa;IACvC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IAEpC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"is-loopback.js","sourceRoot":"","sources":["../../../src/multiaddr/is-loopback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,EAAa;IACvC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QACnB,+CAA+C;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IAEpC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Multiaddr } from '@multiformats/multiaddr';
2
+ /**
3
+ * Check if a given multiaddr is a network address
4
+ */
5
+ export declare function isNetworkAddress(ma: Multiaddr): boolean;
6
+ //# sourceMappingURL=is-network-address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-network-address.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAkBxD;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAUxD"}
@@ -0,0 +1,27 @@
1
+ const CODEC_IP4 = 0x04;
2
+ const CODEC_IP6 = 0x29;
3
+ const CODEC_DNS = 0x35;
4
+ const CODEC_DNS4 = 0x36;
5
+ const CODEC_DNS6 = 0x37;
6
+ const CODEC_DNSADDR = 0x38;
7
+ const NETWORK_CODECS = [
8
+ CODEC_IP4,
9
+ CODEC_IP6,
10
+ CODEC_DNS,
11
+ CODEC_DNS4,
12
+ CODEC_DNS6,
13
+ CODEC_DNSADDR
14
+ ];
15
+ /**
16
+ * Check if a given multiaddr is a network address
17
+ */
18
+ export function isNetworkAddress(ma) {
19
+ try {
20
+ const [[codec]] = ma.stringTuples();
21
+ return NETWORK_CODECS.includes(codec);
22
+ }
23
+ catch {
24
+ }
25
+ return false;
26
+ }
27
+ //# sourceMappingURL=is-network-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-network-address.js","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,aAAa,GAAG,IAAI,CAAA;AAE1B,MAAM,cAAc,GAAG;IACrB,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,aAAa;CACd,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAE,EAAa;IAC7C,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;QAEnC,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-private.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-private.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AASxD;;GAEG;AACH,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAoBjD"}
1
+ {"version":3,"file":"is-private.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-private.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,SAAS,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAmBjD"}
@@ -1,25 +1,19 @@
1
1
  import { isPrivateIp } from '../private-ip.js';
2
- const CODEC_IP4 = 0x04;
3
- const CODEC_IP6 = 0x29;
4
- const CODEC_DNS = 0x35;
5
- const CODEC_DNS4 = 0x36;
6
- const CODEC_DNS6 = 0x37;
7
- const CODEC_DNSADDR = 0x38;
2
+ import { isIpBased } from './is-ip-based.js';
8
3
  /**
9
4
  * Check if a given multiaddr starts with a private address
10
5
  */
11
6
  export function isPrivate(ma) {
12
7
  try {
13
- const [[codec, value]] = ma.stringTuples();
14
- if (value == null) {
15
- return true;
16
- }
17
- if (codec === CODEC_DNS || codec === CODEC_DNS4 || codec === CODEC_DNS6 || codec === CODEC_DNSADDR) {
8
+ if (!isIpBased(ma)) {
9
+ // not an IP based multiaddr, cannot be private
18
10
  return false;
19
11
  }
20
- if (codec === CODEC_IP4 || codec === CODEC_IP6) {
21
- return isPrivateIp(value) ?? false;
12
+ const [[, value]] = ma.stringTuples();
13
+ if (value == null) {
14
+ return false;
22
15
  }
16
+ return isPrivateIp(value) ?? false;
23
17
  }
24
18
  catch {
25
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"is-private.js","sourceRoot":"","sources":["../../../src/multiaddr/is-private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,aAAa,GAAG,IAAI,CAAA;AAE1B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAE,EAAa;IACtC,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;QAE1C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YACnG,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"is-private.js","sourceRoot":"","sources":["../../../src/multiaddr/is-private.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5C;;GAEG;AACH,MAAM,UAAU,SAAS,CAAE,EAAa;IACtC,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,+CAA+C;YAC/C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAA;QAErC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/utils",
3
- "version": "6.5.2-d98cc46e4",
3
+ "version": "6.5.3-2a3cec922",
4
4
  "description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme",
@@ -108,6 +108,10 @@
108
108
  "types": "./dist/src/multiaddr/is-global-unicast.d.ts",
109
109
  "import": "./dist/src/multiaddr/is-global-unicast.js"
110
110
  },
111
+ "./multiaddr/is-ip-based": {
112
+ "types": "./dist/src/multiaddr/is-ip-based.d.ts",
113
+ "import": "./dist/src/multiaddr/is-ip-based.js"
114
+ },
111
115
  "./multiaddr/is-link-local": {
112
116
  "types": "./dist/src/multiaddr/is-link-local.d.ts",
113
117
  "import": "./dist/src/multiaddr/is-link-local.js"
@@ -116,6 +120,10 @@
116
120
  "types": "./dist/src/multiaddr/is-loopback.d.ts",
117
121
  "import": "./dist/src/multiaddr/is-loopback.js"
118
122
  },
123
+ "./multiaddr/is-network-address": {
124
+ "types": "./dist/src/multiaddr/is-network-address.d.ts",
125
+ "import": "./dist/src/multiaddr/is-network-address.js"
126
+ },
119
127
  "./multiaddr/is-private": {
120
128
  "types": "./dist/src/multiaddr/is-private.d.ts",
121
129
  "import": "./dist/src/multiaddr/is-private.js"
@@ -181,9 +189,9 @@
181
189
  "dependencies": {
182
190
  "@chainsafe/is-ip": "^2.0.2",
183
191
  "@chainsafe/netmask": "^2.0.0",
184
- "@libp2p/crypto": "5.0.12-d98cc46e4",
185
- "@libp2p/interface": "2.6.0-d98cc46e4",
186
- "@libp2p/logger": "5.1.9-d98cc46e4",
192
+ "@libp2p/crypto": "5.0.12-2a3cec922",
193
+ "@libp2p/interface": "2.6.0-2a3cec922",
194
+ "@libp2p/logger": "5.1.9-2a3cec922",
187
195
  "@multiformats/multiaddr": "^12.3.3",
188
196
  "@sindresorhus/fnv1a": "^3.1.0",
189
197
  "any-signal": "^4.1.1",
@@ -197,12 +205,12 @@
197
205
  "netmask": "^2.0.2",
198
206
  "p-defer": "^4.0.1",
199
207
  "race-event": "^1.3.0",
200
- "race-signal": "^1.1.0",
208
+ "race-signal": "^1.1.2",
201
209
  "uint8arraylist": "^2.4.8",
202
210
  "uint8arrays": "^5.1.0"
203
211
  },
204
212
  "devDependencies": {
205
- "@libp2p/peer-id": "5.0.13-d98cc46e4",
213
+ "@libp2p/peer-id": "5.0.13-2a3cec922",
206
214
  "@types/netmask": "^2.0.5",
207
215
  "aegir": "^45.0.5",
208
216
  "benchmark": "^2.1.4",
@@ -0,0 +1,19 @@
1
+ import type { Multiaddr } from '@multiformats/multiaddr'
2
+
3
+ const CODEC_IP4 = 0x04
4
+ const CODEC_IP6 = 0x29
5
+
6
+ /**
7
+ * Check if a given multiaddr is IP-based
8
+ */
9
+ export function isIpBased (ma: Multiaddr): boolean {
10
+ try {
11
+ const [[codec]] = ma.stringTuples()
12
+
13
+ return codec === CODEC_IP4 || codec === CODEC_IP6
14
+ } catch {
15
+
16
+ }
17
+
18
+ return false
19
+ }
@@ -1,10 +1,16 @@
1
1
  import { isLoopbackAddr } from 'is-loopback-addr'
2
+ import { isIpBased } from './is-ip-based.js'
2
3
  import type { Multiaddr } from '@multiformats/multiaddr'
3
4
 
4
5
  /**
5
6
  * Check if a given multiaddr is a loopback address.
6
7
  */
7
8
  export function isLoopback (ma: Multiaddr): boolean {
9
+ if (!isIpBased(ma)) {
10
+ // not an IP based multiaddr, cannot be private
11
+ return false
12
+ }
13
+
8
14
  const { address } = ma.nodeAddress()
9
15
 
10
16
  return isLoopbackAddr(address)
@@ -0,0 +1,32 @@
1
+ import type { Multiaddr } from '@multiformats/multiaddr'
2
+
3
+ const CODEC_IP4 = 0x04
4
+ const CODEC_IP6 = 0x29
5
+ const CODEC_DNS = 0x35
6
+ const CODEC_DNS4 = 0x36
7
+ const CODEC_DNS6 = 0x37
8
+ const CODEC_DNSADDR = 0x38
9
+
10
+ const NETWORK_CODECS = [
11
+ CODEC_IP4,
12
+ CODEC_IP6,
13
+ CODEC_DNS,
14
+ CODEC_DNS4,
15
+ CODEC_DNS6,
16
+ CODEC_DNSADDR
17
+ ]
18
+
19
+ /**
20
+ * Check if a given multiaddr is a network address
21
+ */
22
+ export function isNetworkAddress (ma: Multiaddr): boolean {
23
+ try {
24
+ const [[codec]] = ma.stringTuples()
25
+
26
+ return NETWORK_CODECS.includes(codec)
27
+ } catch {
28
+
29
+ }
30
+
31
+ return false
32
+ }
@@ -1,31 +1,24 @@
1
1
  import { isPrivateIp } from '../private-ip.js'
2
+ import { isIpBased } from './is-ip-based.js'
2
3
  import type { Multiaddr } from '@multiformats/multiaddr'
3
4
 
4
- const CODEC_IP4 = 0x04
5
- const CODEC_IP6 = 0x29
6
- const CODEC_DNS = 0x35
7
- const CODEC_DNS4 = 0x36
8
- const CODEC_DNS6 = 0x37
9
- const CODEC_DNSADDR = 0x38
10
-
11
5
  /**
12
6
  * Check if a given multiaddr starts with a private address
13
7
  */
14
8
  export function isPrivate (ma: Multiaddr): boolean {
15
9
  try {
16
- const [[codec, value]] = ma.stringTuples()
17
-
18
- if (value == null) {
19
- return true
10
+ if (!isIpBased(ma)) {
11
+ // not an IP based multiaddr, cannot be private
12
+ return false
20
13
  }
21
14
 
22
- if (codec === CODEC_DNS || codec === CODEC_DNS4 || codec === CODEC_DNS6 || codec === CODEC_DNSADDR) {
15
+ const [[, value]] = ma.stringTuples()
16
+
17
+ if (value == null) {
23
18
  return false
24
19
  }
25
20
 
26
- if (codec === CODEC_IP4 || codec === CODEC_IP6) {
27
- return isPrivateIp(value) ?? false
28
- }
21
+ return isPrivateIp(value) ?? false
29
22
  } catch {
30
23
 
31
24
  }