@libp2p/utils 6.7.2 → 7.0.0-049bfa0fa
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/README.md +16 -1
- package/dist/index.min.js +7 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/abstract-message-stream.d.ts +129 -0
- package/dist/src/abstract-message-stream.d.ts.map +1 -0
- package/dist/src/abstract-message-stream.js +393 -0
- package/dist/src/abstract-message-stream.js.map +1 -0
- package/dist/src/abstract-multiaddr-connection.d.ts +26 -0
- package/dist/src/abstract-multiaddr-connection.d.ts.map +1 -0
- package/dist/src/abstract-multiaddr-connection.js +66 -0
- package/dist/src/abstract-multiaddr-connection.js.map +1 -0
- package/dist/src/abstract-stream-muxer.d.ts +53 -0
- package/dist/src/abstract-stream-muxer.d.ts.map +1 -0
- package/dist/src/abstract-stream-muxer.js +169 -0
- package/dist/src/abstract-stream-muxer.js.map +1 -0
- package/dist/src/abstract-stream.d.ts +14 -130
- package/dist/src/abstract-stream.d.ts.map +1 -1
- package/dist/src/abstract-stream.js +39 -321
- package/dist/src/abstract-stream.js.map +1 -1
- package/dist/src/errors.d.ts +8 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +8 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/get-thin-waist-addresses.browser.d.ts +1 -1
- package/dist/src/get-thin-waist-addresses.browser.d.ts.map +1 -1
- package/dist/src/get-thin-waist-addresses.browser.js +4 -3
- package/dist/src/get-thin-waist-addresses.browser.js.map +1 -1
- package/dist/src/get-thin-waist-addresses.d.ts +1 -1
- package/dist/src/get-thin-waist-addresses.d.ts.map +1 -1
- package/dist/src/get-thin-waist-addresses.js +7 -9
- package/dist/src/get-thin-waist-addresses.js.map +1 -1
- package/dist/src/index.d.ts +31 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +31 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/length-prefixed-decoder.d.ts +37 -0
- package/dist/src/length-prefixed-decoder.d.ts.map +1 -0
- package/dist/src/length-prefixed-decoder.js +64 -0
- package/dist/src/length-prefixed-decoder.js.map +1 -0
- package/dist/src/message-queue.d.ts +61 -0
- package/dist/src/message-queue.d.ts.map +1 -0
- package/dist/src/message-queue.js +93 -0
- package/dist/src/message-queue.js.map +1 -0
- package/dist/src/mock-muxer.d.ts +57 -0
- package/dist/src/mock-muxer.d.ts.map +1 -0
- package/dist/src/mock-muxer.js +204 -0
- package/dist/src/mock-muxer.js.map +1 -0
- package/dist/src/mock-stream.d.ts +31 -0
- package/dist/src/mock-stream.d.ts.map +1 -0
- package/dist/src/mock-stream.js +69 -0
- package/dist/src/mock-stream.js.map +1 -0
- package/dist/src/multiaddr/get-net-config.d.ts +55 -0
- package/dist/src/multiaddr/get-net-config.d.ts.map +1 -0
- package/dist/src/multiaddr/get-net-config.js +54 -0
- package/dist/src/multiaddr/get-net-config.js.map +1 -0
- package/dist/src/multiaddr/index.d.ts +7 -0
- package/dist/src/multiaddr/index.d.ts.map +1 -0
- package/dist/src/multiaddr/index.js +7 -0
- package/dist/src/multiaddr/index.js.map +1 -0
- package/dist/src/multiaddr/is-global-unicast.d.ts.map +1 -1
- package/dist/src/multiaddr/is-global-unicast.js +8 -9
- package/dist/src/multiaddr/is-global-unicast.js.map +1 -1
- package/dist/src/multiaddr/is-link-local.d.ts.map +1 -1
- package/dist/src/multiaddr/is-link-local.js +11 -16
- package/dist/src/multiaddr/is-link-local.js.map +1 -1
- package/dist/src/multiaddr/is-loopback.d.ts.map +1 -1
- package/dist/src/multiaddr/is-loopback.js +12 -5
- package/dist/src/multiaddr/is-loopback.js.map +1 -1
- package/dist/src/multiaddr/is-network-address.d.ts.map +1 -1
- package/dist/src/multiaddr/is-network-address.js +4 -16
- package/dist/src/multiaddr/is-network-address.js.map +1 -1
- package/dist/src/multiaddr/is-private.d.ts.map +1 -1
- package/dist/src/multiaddr/is-private.js +9 -10
- package/dist/src/multiaddr/is-private.js.map +1 -1
- package/dist/src/multiaddr/utils.d.ts +5 -0
- package/dist/src/multiaddr/utils.d.ts.map +1 -0
- package/dist/src/multiaddr/utils.js +32 -0
- package/dist/src/multiaddr/utils.js.map +1 -0
- package/dist/src/multiaddr-connection-pair.d.ts +25 -0
- package/dist/src/multiaddr-connection-pair.d.ts.map +1 -0
- package/dist/src/multiaddr-connection-pair.js +103 -0
- package/dist/src/multiaddr-connection-pair.js.map +1 -0
- package/dist/src/queue/index.d.ts +3 -6
- package/dist/src/queue/index.d.ts.map +1 -1
- package/dist/src/queue/index.js +20 -4
- package/dist/src/queue/index.js.map +1 -1
- package/dist/src/rate-limiter.d.ts +1 -15
- package/dist/src/rate-limiter.d.ts.map +1 -1
- package/dist/src/rate-limiter.js +1 -14
- package/dist/src/rate-limiter.js.map +1 -1
- package/dist/src/stream-pair.d.ts +42 -0
- package/dist/src/stream-pair.d.ts.map +1 -0
- package/dist/src/stream-pair.js +40 -0
- package/dist/src/stream-pair.js.map +1 -0
- package/dist/src/stream-utils.d.ts +191 -0
- package/dist/src/stream-utils.d.ts.map +1 -0
- package/dist/src/stream-utils.js +370 -0
- package/dist/src/stream-utils.js.map +1 -0
- package/package.json +15 -162
- package/src/abstract-message-stream.ts +553 -0
- package/src/abstract-multiaddr-connection.ts +93 -0
- package/src/abstract-stream-muxer.ts +239 -0
- package/src/abstract-stream.ts +51 -464
- package/src/errors.ts +10 -0
- package/src/get-thin-waist-addresses.browser.ts +5 -4
- package/src/get-thin-waist-addresses.ts +8 -12
- package/src/index.ts +31 -1
- package/src/length-prefixed-decoder.ts +98 -0
- package/src/message-queue.ts +156 -0
- package/src/mock-muxer.ts +304 -0
- package/src/mock-stream.ts +101 -0
- package/src/multiaddr/get-net-config.ts +112 -0
- package/src/multiaddr/index.ts +6 -0
- package/src/multiaddr/is-global-unicast.ts +8 -11
- package/src/multiaddr/is-link-local.ts +11 -20
- package/src/multiaddr/is-loopback.ts +12 -7
- package/src/multiaddr/is-network-address.ts +4 -19
- package/src/multiaddr/is-private.ts +9 -14
- package/src/multiaddr/utils.ts +46 -0
- package/src/multiaddr-connection-pair.ts +147 -0
- package/src/queue/index.ts +24 -11
- package/src/rate-limiter.ts +3 -30
- package/src/stream-pair.ts +90 -0
- package/src/stream-utils.ts +865 -0
- package/dist/src/abort-options.d.ts +0 -7
- package/dist/src/abort-options.d.ts.map +0 -1
- package/dist/src/abort-options.js +0 -14
- package/dist/src/abort-options.js.map +0 -1
- package/dist/src/array-equals.d.ts +0 -24
- package/dist/src/array-equals.d.ts.map +0 -1
- package/dist/src/array-equals.js +0 -31
- package/dist/src/array-equals.js.map +0 -1
- package/dist/src/close-source.d.ts +0 -4
- package/dist/src/close-source.d.ts.map +0 -1
- package/dist/src/close-source.js +0 -11
- package/dist/src/close-source.js.map +0 -1
- package/dist/src/close.d.ts +0 -21
- package/dist/src/close.d.ts.map +0 -1
- package/dist/src/close.js +0 -49
- package/dist/src/close.js.map +0 -1
- package/dist/src/merge-options.d.ts +0 -7
- package/dist/src/merge-options.d.ts.map +0 -1
- package/dist/src/merge-options.js +0 -128
- package/dist/src/merge-options.js.map +0 -1
- package/dist/src/multiaddr/is-ip-based.d.ts +0 -6
- package/dist/src/multiaddr/is-ip-based.d.ts.map +0 -1
- package/dist/src/multiaddr/is-ip-based.js +0 -18
- package/dist/src/multiaddr/is-ip-based.js.map +0 -1
- package/dist/src/stream-to-ma-conn.d.ts +0 -23
- package/dist/src/stream-to-ma-conn.d.ts.map +0 -1
- package/dist/src/stream-to-ma-conn.js +0 -75
- package/dist/src/stream-to-ma-conn.js.map +0 -1
- package/dist/typedoc-urls.json +0 -147
- package/src/abort-options.ts +0 -20
- package/src/array-equals.ts +0 -34
- package/src/close-source.ts +0 -14
- package/src/close.ts +0 -65
- package/src/merge-options.ts +0 -161
- package/src/multiaddr/is-ip-based.ts +0 -21
- package/src/stream-to-ma-conn.ts +0 -106
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
+
export interface IP4NetConfig {
|
|
3
|
+
type: 'ip4';
|
|
4
|
+
host: string;
|
|
5
|
+
protocol?: 'tcp' | 'udp';
|
|
6
|
+
port?: number;
|
|
7
|
+
cidr?: number;
|
|
8
|
+
sni?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IP6NetConfig {
|
|
11
|
+
type: 'ip6';
|
|
12
|
+
host: string;
|
|
13
|
+
protocol?: 'tcp' | 'udp';
|
|
14
|
+
port?: number;
|
|
15
|
+
zone?: string;
|
|
16
|
+
cidr?: string;
|
|
17
|
+
sni?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface DNSNetConfig {
|
|
20
|
+
type: 'dns';
|
|
21
|
+
host: string;
|
|
22
|
+
protocol?: 'tcp' | 'udp';
|
|
23
|
+
port: number;
|
|
24
|
+
cidr?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface DNS4NetConfig {
|
|
27
|
+
type: 'dns4';
|
|
28
|
+
host: string;
|
|
29
|
+
protocol?: 'tcp' | 'udp';
|
|
30
|
+
port: number;
|
|
31
|
+
cidr?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface DNS6NetConfig {
|
|
34
|
+
type: 'dns6';
|
|
35
|
+
host: string;
|
|
36
|
+
protocol?: 'tcp' | 'udp';
|
|
37
|
+
port: number;
|
|
38
|
+
cidr?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface DNSAddrNetConfig {
|
|
41
|
+
type: 'dnsaddr';
|
|
42
|
+
host: string;
|
|
43
|
+
protocol?: 'tcp' | 'udp';
|
|
44
|
+
port: number;
|
|
45
|
+
cidr?: number;
|
|
46
|
+
}
|
|
47
|
+
export type NetConfig = IP4NetConfig | IP6NetConfig | DNSNetConfig | DNS4NetConfig | DNS6NetConfig | DNSAddrNetConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Returns host/port/etc information for multiaddrs, if it is available.
|
|
50
|
+
*
|
|
51
|
+
* It will throw if the passed multiaddr does not start with a network address,
|
|
52
|
+
* e.g. a IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address
|
|
53
|
+
*/
|
|
54
|
+
export declare function getNetConfig(ma: Multiaddr): NetConfig;
|
|
55
|
+
//# sourceMappingURL=get-net-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-net-config.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/get-net-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAErH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAE,EAAE,EAAE,SAAS,GAAG,SAAS,CAiDtD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { InvalidParametersError } from '@libp2p/interface';
|
|
2
|
+
/**
|
|
3
|
+
* Returns host/port/etc information for multiaddrs, if it is available.
|
|
4
|
+
*
|
|
5
|
+
* It will throw if the passed multiaddr does not start with a network address,
|
|
6
|
+
* e.g. a IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address
|
|
7
|
+
*/
|
|
8
|
+
export function getNetConfig(ma) {
|
|
9
|
+
const components = ma.getComponents();
|
|
10
|
+
const config = {};
|
|
11
|
+
let index = 0;
|
|
12
|
+
if (components[index]?.name === 'ip6zone') {
|
|
13
|
+
config.zone = `${components[index].value}`;
|
|
14
|
+
index++;
|
|
15
|
+
}
|
|
16
|
+
if (components[index].name === 'ip4' || components[index].name === 'ip6') {
|
|
17
|
+
config.type = components[index].name;
|
|
18
|
+
config.host = components[index].value;
|
|
19
|
+
index++;
|
|
20
|
+
}
|
|
21
|
+
else if (components[index].name === 'dns' || components[index].name === 'dns4' || components[index].name === 'dns6') {
|
|
22
|
+
config.type = components[index].name;
|
|
23
|
+
config.host = components[index].value;
|
|
24
|
+
index++;
|
|
25
|
+
}
|
|
26
|
+
else if (components[index].name === 'dnsaddr') {
|
|
27
|
+
config.type = components[index].name;
|
|
28
|
+
config.host = `_dnsaddr.${components[index].value}`;
|
|
29
|
+
index++;
|
|
30
|
+
}
|
|
31
|
+
if (components[index]?.name === 'tcp' || components[index]?.name === 'udp') {
|
|
32
|
+
config.protocol = components[index].name === 'tcp' ? 'tcp' : 'udp';
|
|
33
|
+
config.port = parseInt(`${components[index].value}`);
|
|
34
|
+
index++;
|
|
35
|
+
}
|
|
36
|
+
if (components[index]?.name === 'ipcidr') {
|
|
37
|
+
if (config.type === 'ip4') {
|
|
38
|
+
config.cidr = parseInt(`${components[index].value}`);
|
|
39
|
+
}
|
|
40
|
+
else if (config.type === 'ip6') {
|
|
41
|
+
config.cidr = `${components[index].value}`;
|
|
42
|
+
}
|
|
43
|
+
index++;
|
|
44
|
+
}
|
|
45
|
+
if (config.type == null || config.host == null) {
|
|
46
|
+
throw new InvalidParametersError(`Multiaddr ${ma} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);
|
|
47
|
+
}
|
|
48
|
+
if (components[index]?.name === 'tls' && components[index + 1]?.name === 'sni') {
|
|
49
|
+
config.sni = components[index + 1].value;
|
|
50
|
+
index += 2;
|
|
51
|
+
}
|
|
52
|
+
return config;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=get-net-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-net-config.js","sourceRoot":"","sources":["../../../src/multiaddr/get-net-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './get-net-config.ts';
|
|
2
|
+
export * from './is-global-unicast.js';
|
|
3
|
+
export * from './is-link-local.js';
|
|
4
|
+
export * from './is-loopback.js';
|
|
5
|
+
export * from './is-network-address.js';
|
|
6
|
+
export * from './is-private.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/multiaddr/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-global-unicast.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"is-global-unicast.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAavD"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { cidrContains } from '@chainsafe/netmask';
|
|
2
|
-
import {
|
|
2
|
+
import { getNetConfig } from "./get-net-config.js";
|
|
3
3
|
/**
|
|
4
4
|
* Check if a given multiaddr is an IPv6 global unicast address
|
|
5
5
|
*/
|
|
6
6
|
export function isGlobalUnicast(ma) {
|
|
7
7
|
try {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
}
|
|
8
|
+
const config = getNetConfig(ma);
|
|
9
|
+
switch (config.type) {
|
|
10
|
+
case 'ip6':
|
|
11
|
+
return cidrContains('2000::/3', config.host);
|
|
12
|
+
default:
|
|
13
|
+
return false;
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
catch {
|
|
17
|
+
return false;
|
|
18
18
|
}
|
|
19
|
-
return false;
|
|
20
19
|
}
|
|
21
20
|
//# sourceMappingURL=is-global-unicast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-global-unicast.js","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"is-global-unicast.js","sourceRoot":"","sources":["../../../src/multiaddr/is-global-unicast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAE,EAAa;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YAC9C;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-link-local.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"is-link-local.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,WAAW,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAenD"}
|
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getNetConfig } from "./get-net-config.js";
|
|
2
2
|
/**
|
|
3
3
|
* Check if a given multiaddr is a link-local address
|
|
4
4
|
*/
|
|
5
5
|
export function isLinkLocal(ma) {
|
|
6
6
|
try {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return value.startsWith('169.254.');
|
|
16
|
-
}
|
|
17
|
-
if (code === CODE_IP6) {
|
|
18
|
-
return value.toLowerCase().startsWith('fe80');
|
|
19
|
-
}
|
|
7
|
+
const config = getNetConfig(ma);
|
|
8
|
+
switch (config.type) {
|
|
9
|
+
case 'ip4':
|
|
10
|
+
return config.host.startsWith('169.254.');
|
|
11
|
+
case 'ip6':
|
|
12
|
+
return config.host.toLowerCase().startsWith('fe80');
|
|
13
|
+
default:
|
|
14
|
+
return false;
|
|
20
15
|
}
|
|
21
16
|
}
|
|
22
|
-
catch {
|
|
17
|
+
catch (err) {
|
|
18
|
+
return false;
|
|
23
19
|
}
|
|
24
|
-
return false;
|
|
25
20
|
}
|
|
26
21
|
//# sourceMappingURL=is-link-local.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-link-local.js","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"is-link-local.js","sourceRoot":"","sources":["../../../src/multiaddr/is-link-local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAE,EAAa;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC3C,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACrD;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAclD"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { isLoopbackAddr } from 'is-loopback-addr';
|
|
2
|
-
import {
|
|
2
|
+
import { getNetConfig } from "./get-net-config.js";
|
|
3
3
|
/**
|
|
4
4
|
* Check if a given multiaddr is a loopback address.
|
|
5
5
|
*/
|
|
6
6
|
export function isLoopback(ma) {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
try {
|
|
8
|
+
const config = getNetConfig(ma);
|
|
9
|
+
switch (config.type) {
|
|
10
|
+
case 'ip4':
|
|
11
|
+
case 'ip6':
|
|
12
|
+
return isLoopbackAddr(config.host);
|
|
13
|
+
default:
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
9
18
|
return false;
|
|
10
19
|
}
|
|
11
|
-
const { address } = ma.nodeAddress();
|
|
12
|
-
return isLoopbackAddr(address);
|
|
13
20
|
}
|
|
14
21
|
//# sourceMappingURL=is-loopback.js.map
|
|
@@ -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;AACjD,OAAO,EAAE,
|
|
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,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,EAAa;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK,CAAC;YACX,KAAK,KAAK;gBACR,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpC;gBACE,OAAO,KAAK,CAAA;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-network-address.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"is-network-address.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAQxD"}
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const NETWORK_CODECS = [
|
|
3
|
-
CODE_IP4,
|
|
4
|
-
CODE_IP6,
|
|
5
|
-
CODE_DNS,
|
|
6
|
-
CODE_DNS4,
|
|
7
|
-
CODE_DNS6,
|
|
8
|
-
CODE_DNSADDR
|
|
9
|
-
];
|
|
1
|
+
import { getNetConfig } from "./get-net-config.js";
|
|
10
2
|
/**
|
|
11
3
|
* Check if a given multiaddr is a network address
|
|
12
4
|
*/
|
|
13
5
|
export function isNetworkAddress(ma) {
|
|
14
6
|
try {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
return NETWORK_CODECS.includes(code);
|
|
20
|
-
}
|
|
7
|
+
getNetConfig(ma);
|
|
8
|
+
return true;
|
|
21
9
|
}
|
|
22
10
|
catch {
|
|
11
|
+
return false;
|
|
23
12
|
}
|
|
24
|
-
return false;
|
|
25
13
|
}
|
|
26
14
|
//# sourceMappingURL=is-network-address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-network-address.js","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"is-network-address.js","sourceRoot":"","sources":["../../../src/multiaddr/is-network-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAE,EAAa;IAC7C,IAAI,CAAC;QACH,YAAY,CAAC,EAAE,CAAC,CAAA;QAEhB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAcjD"}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import { isPrivateIp } from '../private-ip.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getNetConfig } from "./get-net-config.js";
|
|
3
3
|
/**
|
|
4
4
|
* Check if a given multiaddr starts with a private address
|
|
5
5
|
*/
|
|
6
6
|
export function isPrivate(ma) {
|
|
7
7
|
try {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const config = getNetConfig(ma);
|
|
9
|
+
switch (config.type) {
|
|
10
|
+
case 'ip4':
|
|
11
|
+
case 'ip6':
|
|
12
|
+
return isPrivateIp(config.host) ?? false;
|
|
13
|
+
default:
|
|
14
|
+
return config.host === 'localhost';
|
|
11
15
|
}
|
|
12
|
-
const [[, value]] = ma.stringTuples();
|
|
13
|
-
if (value == null) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
return isPrivateIp(value) ?? false;
|
|
17
16
|
}
|
|
18
17
|
catch {
|
|
18
|
+
return false;
|
|
19
19
|
}
|
|
20
|
-
return true;
|
|
21
20
|
}
|
|
22
21
|
//# sourceMappingURL=is-private.js.map
|
|
@@ -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;AAC9C,OAAO,EAAE,
|
|
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,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAE,EAAa;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAE/B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,KAAK,CAAC;YACX,KAAK,KAAK;gBACR,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAA;YAC1C;gBACE,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,CAAA;QACtC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { NetConfig } from './get-net-config.ts';
|
|
2
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
3
|
+
export declare function getIpFromMultiaddr(ma: Multiaddr): string | undefined;
|
|
4
|
+
export declare function netConfigToMultiaddr(config: NetConfig, port?: number | string, host?: string): Multiaddr;
|
|
5
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/multiaddr/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,wBAAgB,kBAAkB,CAAE,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAarE;AAED,wBAAgB,oBAAoB,CAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CA0BzG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CODE_IP4, CODE_IP6, CODE_IP6ZONE, multiaddr } from '@multiformats/multiaddr';
|
|
2
|
+
export function getIpFromMultiaddr(ma) {
|
|
3
|
+
const components = ma.getComponents();
|
|
4
|
+
let index = 0;
|
|
5
|
+
if (components[0]?.code === CODE_IP6ZONE) {
|
|
6
|
+
index++;
|
|
7
|
+
}
|
|
8
|
+
if (components[index]?.code !== CODE_IP4 && components[index]?.code !== CODE_IP6) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
return components[index]?.value;
|
|
12
|
+
}
|
|
13
|
+
export function netConfigToMultiaddr(config, port, host) {
|
|
14
|
+
const parts = [
|
|
15
|
+
config.type,
|
|
16
|
+
host ?? config.host
|
|
17
|
+
];
|
|
18
|
+
if (config.protocol != null) {
|
|
19
|
+
const p = port ?? config.port;
|
|
20
|
+
if (p != null) {
|
|
21
|
+
parts.push(config.protocol, p);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (config.type === 'ip6' && config.zone != null) {
|
|
25
|
+
parts.unshift('ip6zone', config.zone);
|
|
26
|
+
}
|
|
27
|
+
if (config.cidr != null) {
|
|
28
|
+
parts.push('ipcidr', config.cidr);
|
|
29
|
+
}
|
|
30
|
+
return multiaddr(`/${parts.join('/')}`);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/multiaddr/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAIrF,MAAM,UAAU,kBAAkB,CAAE,EAAa;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,EAAE,CAAA;IACrC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;QACzC,KAAK,EAAE,CAAA;IACT,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAM;IACR,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAE,MAAiB,EAAE,IAAsB,EAAE,IAAa;IAC5F,MAAM,KAAK,GAA2B;QACpC,MAAM,CAAC,IAAI;QACX,IAAI,IAAI,MAAM,CAAC,IAAI;KACpB,CAAA;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,CAAA;QAE7B,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CACR,MAAM,CAAC,QAAQ,EACf,CAAC,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MessageQueue } from './message-queue.ts';
|
|
2
|
+
import type { AbstractMultiaddrConnectionInit } from './abstract-multiaddr-connection.ts';
|
|
3
|
+
import type { MessageQueueEvents, MessageQueueInit } from './message-queue.ts';
|
|
4
|
+
import type { Logger, MultiaddrConnection, MessageStreamDirection, TypedEventTarget } from '@libp2p/interface';
|
|
5
|
+
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
6
|
+
interface MockMultiaddrConnectionMessages extends MessageQueueEvents {
|
|
7
|
+
close: Event;
|
|
8
|
+
pause: Event;
|
|
9
|
+
resume: Event;
|
|
10
|
+
}
|
|
11
|
+
export interface MockMultiaddrConnectionInit extends AbstractMultiaddrConnectionInit {
|
|
12
|
+
id: string;
|
|
13
|
+
log: Logger;
|
|
14
|
+
direction: MessageStreamDirection;
|
|
15
|
+
local: MessageQueue<MockMultiaddrConnectionMessages>;
|
|
16
|
+
remote: TypedEventTarget<MockMultiaddrConnectionMessages>;
|
|
17
|
+
remoteAddr: Multiaddr;
|
|
18
|
+
}
|
|
19
|
+
export interface MultiaddrConnectionPairOptions extends MessageQueueInit {
|
|
20
|
+
outbound?: Partial<MockMultiaddrConnectionInit>;
|
|
21
|
+
inbound?: Partial<MockMultiaddrConnectionInit>;
|
|
22
|
+
}
|
|
23
|
+
export declare function multiaddrConnectionPair(opts?: MultiaddrConnectionPairOptions): [MultiaddrConnection, MultiaddrConnection];
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=multiaddr-connection-pair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiaddr-connection-pair.d.ts","sourceRoot":"","sources":["../../src/multiaddr-connection-pair.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,KAAK,EAAgB,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC5H,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,UAAU,+BAAgC,SAAQ,kBAAkB;IAClE,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,2BAA4B,SAAQ,+BAA+B;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,sBAAsB,CAAA;IACjC,KAAK,EAAE,YAAY,CAAC,+BAA+B,CAAC,CAAA;IACpD,MAAM,EAAE,gBAAgB,CAAC,+BAA+B,CAAC,CAAA;IACzD,UAAU,EAAE,SAAS,CAAA;CACtB;AA8ED,MAAM,WAAW,8BAA+B,SAAQ,gBAAgB;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAA;CAC/C;AAED,wBAAgB,uBAAuB,CAAE,IAAI,GAAE,8BAAmC,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAoC9H"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { StreamMessageEvent } from '@libp2p/interface';
|
|
2
|
+
import { defaultLogger } from '@libp2p/logger';
|
|
3
|
+
import { multiaddr } from '@multiformats/multiaddr';
|
|
4
|
+
import { pEvent } from 'p-event';
|
|
5
|
+
import { raceSignal } from 'race-signal';
|
|
6
|
+
import { AbstractMultiaddrConnection } from "./abstract-multiaddr-connection.js";
|
|
7
|
+
import { MessageQueue } from "./message-queue.js";
|
|
8
|
+
let multiaddrConnectionId = 0;
|
|
9
|
+
class MockMultiaddrConnection extends AbstractMultiaddrConnection {
|
|
10
|
+
local;
|
|
11
|
+
remote;
|
|
12
|
+
constructor(init) {
|
|
13
|
+
super(init);
|
|
14
|
+
this.local = init.local;
|
|
15
|
+
this.remote = init.remote;
|
|
16
|
+
this.local.addEventListener('drain', () => {
|
|
17
|
+
this.safeDispatchEvent('drain');
|
|
18
|
+
});
|
|
19
|
+
this.remote.addEventListener('message', (evt) => {
|
|
20
|
+
if (this.status !== 'open') {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.onData(evt.data);
|
|
24
|
+
});
|
|
25
|
+
this.remote.addEventListener('reset', (evt) => {
|
|
26
|
+
if (this.status !== 'open') {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.onRemoteReset();
|
|
30
|
+
});
|
|
31
|
+
this.remote.addEventListener('close', (evt) => {
|
|
32
|
+
this.onTransportClosed();
|
|
33
|
+
});
|
|
34
|
+
this.remote.addEventListener('pause', (evt) => {
|
|
35
|
+
this.local.pause();
|
|
36
|
+
});
|
|
37
|
+
this.remote.addEventListener('resume', (evt) => {
|
|
38
|
+
this.local.resume();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
sendData(data) {
|
|
42
|
+
const canSendMore = this.local.send(new StreamMessageEvent(data));
|
|
43
|
+
return {
|
|
44
|
+
sentBytes: data.byteLength,
|
|
45
|
+
canSendMore
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
sendReset() {
|
|
49
|
+
this.local.send(new Event('reset'));
|
|
50
|
+
}
|
|
51
|
+
async sendClose(options) {
|
|
52
|
+
if (this.local.needsDrain) {
|
|
53
|
+
await pEvent(this.local, 'drain', {
|
|
54
|
+
signal: options?.signal
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return raceSignal(new Promise((resolve, reject) => {
|
|
58
|
+
this.local.send(new Event('close'));
|
|
59
|
+
this.local.onIdle().then(resolve, reject);
|
|
60
|
+
}), options?.signal);
|
|
61
|
+
}
|
|
62
|
+
sendPause() {
|
|
63
|
+
this.local.send(new Event('pause'));
|
|
64
|
+
}
|
|
65
|
+
sendResume() {
|
|
66
|
+
this.local.send(new Event('resume'));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export function multiaddrConnectionPair(opts = {}) {
|
|
70
|
+
const inboundId = `${multiaddrConnectionId++}`;
|
|
71
|
+
const outboundId = `${multiaddrConnectionId++}`;
|
|
72
|
+
const outboundLog = defaultLogger().forComponent(`libp2p:mock-maconn:outbound:${inboundId}`);
|
|
73
|
+
const inboundLog = defaultLogger().forComponent(`libp2p:mock-maconn:inbound:${outboundId}`);
|
|
74
|
+
const targetA = new MessageQueue({
|
|
75
|
+
...opts,
|
|
76
|
+
log: outboundLog
|
|
77
|
+
});
|
|
78
|
+
const targetB = new MessageQueue({
|
|
79
|
+
...opts,
|
|
80
|
+
log: inboundLog
|
|
81
|
+
});
|
|
82
|
+
return [
|
|
83
|
+
new MockMultiaddrConnection({
|
|
84
|
+
...opts.outbound,
|
|
85
|
+
id: outboundId,
|
|
86
|
+
direction: 'outbound',
|
|
87
|
+
local: targetA,
|
|
88
|
+
remote: targetB,
|
|
89
|
+
remoteAddr: opts?.outbound?.remoteAddr ?? multiaddr(`/ip4/127.0.0.1/tcp/${outboundId}`),
|
|
90
|
+
log: outboundLog
|
|
91
|
+
}),
|
|
92
|
+
new MockMultiaddrConnection({
|
|
93
|
+
...opts.inbound,
|
|
94
|
+
id: inboundId,
|
|
95
|
+
direction: 'inbound',
|
|
96
|
+
local: targetB,
|
|
97
|
+
remote: targetA,
|
|
98
|
+
remoteAddr: opts?.inbound?.remoteAddr ?? multiaddr(`/ip4/127.0.0.1/tcp/${inboundId}`),
|
|
99
|
+
log: inboundLog
|
|
100
|
+
})
|
|
101
|
+
];
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=multiaddr-connection-pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiaddr-connection-pair.js","sourceRoot":"","sources":["../../src/multiaddr-connection-pair.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,12 +75,6 @@ export interface QueueEvents<JobReturnType, JobOptions extends AbortOptions = Ab
|
|
|
75
75
|
* A job has finished successfully
|
|
76
76
|
*/
|
|
77
77
|
completed: CustomEvent<JobReturnType>;
|
|
78
|
-
/**
|
|
79
|
-
* A job has failed
|
|
80
|
-
*
|
|
81
|
-
* @deprecated Listen for the 'failure' event instead - it gives more context and is generally more useful, this event will be removed in a future release
|
|
82
|
-
*/
|
|
83
|
-
error: CustomEvent<Error>;
|
|
84
78
|
/**
|
|
85
79
|
* Emitted just after `"completed", a job has finished successfully - this
|
|
86
80
|
* event gives access to the job and it's result
|
|
@@ -104,9 +98,12 @@ export declare class Queue<JobReturnType = unknown, JobOptions extends AbortOpti
|
|
|
104
98
|
queue: Array<Job<JobOptions, JobReturnType>>;
|
|
105
99
|
private pending;
|
|
106
100
|
private readonly sort?;
|
|
101
|
+
private paused;
|
|
107
102
|
constructor(init?: QueueInit<JobReturnType, JobOptions>);
|
|
108
103
|
emitEmpty(): void;
|
|
109
104
|
emitIdle(): void;
|
|
105
|
+
pause(): void;
|
|
106
|
+
resume(): void;
|
|
110
107
|
private tryToStartAnother;
|
|
111
108
|
private enqueue;
|
|
112
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/queue/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE9D,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,SAAS,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IACtF;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;CAClD;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AAErE,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI;IACzF,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,YAAY,GAAG,YAAY;IACxE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,eAAe,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IAC5F,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IACnC,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,eAAe,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IAC5F,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IACnC,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,WAAW,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IACxF;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IAEnB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;IAEjB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAElB;;OAEG;IACH,GAAG,EAAE,WAAW,CAAA;IAEhB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;IAEjB;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IAErC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/queue/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE9D,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,SAAS,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IACtF;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;CAClD;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AAErE,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI;IACzF,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,YAAY,GAAG,YAAY;IACxE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,eAAe,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IAC5F,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IACnC,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,eAAe,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IAC5F,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IACnC,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,WAAW,CAAC,aAAa,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY;IACxF;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IAEnB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;IAEjB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAElB;;OAEG;IACH,GAAG,EAAE,WAAW,CAAA;IAEhB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAA;IAEjB;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IAErC;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;IAEhE;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;CACjE;AAED;;;;;GAKG;AACH,qBAAa,KAAK,CAAC,aAAa,GAAG,OAAO,EAAE,UAAU,SAAS,YAAY,GAAG,YAAY,CAAE,SAAQ,iBAAiB,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACpJ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;IACnD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAA4C;IAClE,OAAO,CAAC,MAAM,CAAS;gBAEV,IAAI,GAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAM;IA2B5D,SAAS,IAAK,IAAI;IAQlB,QAAQ,IAAK,IAAI;IAQjB,KAAK,IAAK,IAAI;IAId,MAAM,IAAK,IAAI;IASf,OAAO,CAAC,iBAAiB;IAsDzB,OAAO,CAAC,OAAO;IAQf;;OAEG;IACG,GAAG,CAAE,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAoCpG;;OAEG;IACH,KAAK,IAAK,IAAI;IAId;;OAEG;IACH,KAAK,IAAK,IAAI;IAQd;;;;OAIG;IACG,OAAO,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD;;;;;;;;;;OAUG;IACG,cAAc,CAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3E;;;;;;;OAOG;IACG,MAAM,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD;;OAEG;IACH,IAAI,IAAI,IAAK,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,OAAO,IAAK,MAAM,CAErB;IAED;;;;;;;;;OASG;IACK,WAAW,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;CAuD3F"}
|