@libp2p/utils 6.6.2 → 6.6.3-aa25d38ab
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/dist/index.min.js +1 -0
- package/dist/index.min.js.map +7 -0
- package/dist/src/abstract-stream.d.ts +1 -1
- package/dist/src/abstract-stream.d.ts.map +1 -1
- package/dist/src/abstract-stream.js +6 -7
- package/dist/src/abstract-stream.js.map +1 -1
- package/dist/src/adaptive-timeout.d.ts +2 -3
- package/dist/src/adaptive-timeout.d.ts.map +1 -1
- package/dist/src/adaptive-timeout.js +1 -1
- package/dist/src/adaptive-timeout.js.map +1 -1
- package/dist/src/debounce.js.map +1 -1
- package/dist/src/filters/cuckoo-filter.d.ts +1 -1
- package/dist/src/filters/cuckoo-filter.d.ts.map +1 -1
- package/dist/src/filters/cuckoo-filter.js.map +1 -1
- package/dist/src/filters/fingerprint.d.ts +1 -1
- package/dist/src/filters/fingerprint.d.ts.map +1 -1
- package/dist/src/filters/scalable-cuckoo-filter.d.ts +1 -1
- package/dist/src/filters/scalable-cuckoo-filter.d.ts.map +1 -1
- package/dist/src/filters/scalable-cuckoo-filter.js.map +1 -1
- package/dist/src/ip-port-to-multiaddr.d.ts +1 -1
- package/dist/src/ip-port-to-multiaddr.d.ts.map +1 -1
- package/dist/src/ip-port-to-multiaddr.js +1 -1
- package/dist/src/ip-port-to-multiaddr.js.map +1 -1
- package/dist/src/merge-options.d.ts +7 -0
- package/dist/src/merge-options.d.ts.map +1 -0
- package/dist/src/merge-options.js +128 -0
- package/dist/src/merge-options.js.map +1 -0
- package/dist/src/private-ip.d.ts.map +1 -1
- package/dist/src/private-ip.js +12 -6
- package/dist/src/private-ip.js.map +1 -1
- package/dist/src/queue/index.d.ts +11 -9
- package/dist/src/queue/index.d.ts.map +1 -1
- package/dist/src/queue/index.js +17 -10
- package/dist/src/queue/index.js.map +1 -1
- package/dist/src/repeating-task.d.ts +1 -1
- package/dist/src/repeating-task.d.ts.map +1 -1
- package/dist/src/repeating-task.js +1 -3
- package/dist/src/repeating-task.js.map +1 -1
- package/dist/src/stream-to-ma-conn.js.map +1 -1
- package/package.json +20 -22
- package/src/abstract-stream.ts +11 -10
- package/src/adaptive-timeout.ts +3 -3
- package/src/debounce.ts +2 -2
- package/src/filters/cuckoo-filter.ts +2 -1
- package/src/filters/fingerprint.ts +1 -1
- package/src/filters/scalable-cuckoo-filter.ts +4 -2
- package/src/ip-port-to-multiaddr.ts +3 -2
- package/src/merge-options.ts +161 -0
- package/src/private-ip.ts +2 -6
- package/src/queue/index.ts +31 -19
- package/src/repeating-task.ts +6 -9
- package/src/stream-to-ma-conn.ts +4 -4
- package/dist/typedoc-urls.json +0 -141
package/dist/src/queue/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AbortError, TypedEventEmitter } from '@libp2p/interface';
|
|
2
2
|
import { pushable } from 'it-pushable';
|
|
3
3
|
import { raceEvent } from 'race-event';
|
|
4
|
+
import { debounce } from '../debounce.js';
|
|
4
5
|
import { QueueFullError } from '../errors.js';
|
|
5
6
|
import { Job } from './job.js';
|
|
6
7
|
/**
|
|
@@ -33,20 +34,26 @@ export class Queue extends TypedEventEmitter {
|
|
|
33
34
|
}
|
|
34
35
|
this.sort = init.sort;
|
|
35
36
|
this.queue = [];
|
|
37
|
+
this.emitEmpty = debounce(this.emitEmpty.bind(this), 1);
|
|
38
|
+
this.emitIdle = debounce(this.emitIdle.bind(this), 1);
|
|
39
|
+
}
|
|
40
|
+
emitEmpty() {
|
|
41
|
+
if (this.size !== 0) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.safeDispatchEvent('empty');
|
|
45
|
+
}
|
|
46
|
+
emitIdle() {
|
|
47
|
+
if (this.running !== 0) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.safeDispatchEvent('idle');
|
|
36
51
|
}
|
|
37
52
|
tryToStartAnother() {
|
|
38
53
|
if (this.size === 0) {
|
|
39
|
-
|
|
40
|
-
// result before the "empty" event fires
|
|
41
|
-
queueMicrotask(() => {
|
|
42
|
-
this.safeDispatchEvent('empty');
|
|
43
|
-
});
|
|
54
|
+
this.emitEmpty();
|
|
44
55
|
if (this.running === 0) {
|
|
45
|
-
|
|
46
|
-
// result before the "idle" event fires
|
|
47
|
-
queueMicrotask(() => {
|
|
48
|
-
this.safeDispatchEvent('idle');
|
|
49
|
-
});
|
|
56
|
+
this.emitIdle();
|
|
50
57
|
}
|
|
51
58
|
return false;
|
|
52
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAiH9B;;;;;GAKG;AACH,MAAM,OAAO,KAA+E,SAAQ,iBAAyD;IACpJ,WAAW,CAAQ;IACnB,OAAO,CAAQ;IACf,KAAK,CAAuC;IAC3C,OAAO,CAAQ;IACN,IAAI,CAA6C;IAElE,YAAa,OAA6C,EAAE;QAC1D,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,CAAA;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAA;QACvD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;QAEhB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE;gBACjD,SAAS,EAAE,GAAG,EAAE;oBACd,OAAO;wBACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;wBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;qBACzC,CAAA;gBACH,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/queue/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export interface RepeatingTask {
|
|
|
14
14
|
* Update the amount of time a task will run before the passed abort signal
|
|
15
15
|
* will fire.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* This only affects the next iteration of the task, if it is currently
|
|
18
18
|
* running, that run will not be interrupted.
|
|
19
19
|
*/
|
|
20
20
|
setTimeout(ms: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeating-task.d.ts","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAA;IAEb;;OAEG;IACH,IAAI,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"repeating-task.d.ts","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAA;IAEb;;OAEG;IACH,IAAI,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAwEpJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeating-task.js","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAkDtC,MAAM,UAAU,aAAa,CAAE,EAAoD,EAAE,QAAgB,EAAE,OAA8B;IACnI,IAAI,OAAsC,CAAA;IAC1C,IAAI,kBAAmC,CAAA;IAEvC,SAAS,OAAO;QACd,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAA;QAED,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3F,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,gCAAgC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa;YACb,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,OAAO;QACL,WAAW,EAAE,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"repeating-task.js","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAkDtC,MAAM,UAAU,aAAa,CAAE,EAAoD,EAAE,QAAgB,EAAE,OAA8B;IACnI,IAAI,OAAsC,CAAA;IAC1C,IAAI,kBAAmC,CAAA;IAEvC,SAAS,OAAO;QACd,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAA;QAED,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3F,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,gCAAgC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa;YACb,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,OAAO;QACL,WAAW,EAAE,CAAC,EAAE,EAAQ,EAAE;YACxB,QAAQ,GAAG,EAAE,CAAA;YAEb,mBAAmB;YACnB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,UAAU,EAAE,CAAC,EAAE,EAAQ,EAAE;YACvB,OAAO,KAAK,EAAE,CAAA;YACd,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,KAAK,EAAE,GAAS,EAAE;YAChB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YAED,OAAO,GAAG,IAAI,CAAA;YACd,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;YAC1C,eAAe,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAEpD,UAAU;YACV,IAAI,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;gBACrC,cAAc,CAAC,GAAG,EAAE;oBAClB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAS,EAAE;YACf,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,kBAAkB,EAAE,KAAK,EAAE,CAAA;YAC3B,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-to-ma-conn.js","sourceRoot":"","sources":["../../src/stream-to-ma-conn.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAsB9B;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAE,KAAuB;IAC3D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAE1D,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,WAAW,GAAG,KAAK,CAAA;IAEvB,wEAAwE;IACxE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"stream-to-ma-conn.js","sourceRoot":"","sources":["../../src/stream-to-ma-conn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/utils",
|
|
3
|
-
"version": "6.6.
|
|
3
|
+
"version": "6.6.3-aa25d38ab",
|
|
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",
|
|
@@ -105,6 +105,10 @@
|
|
|
105
105
|
"types": "./dist/src/link-local-ip.d.ts",
|
|
106
106
|
"import": "./dist/src/link-local-ip.js"
|
|
107
107
|
},
|
|
108
|
+
"./merge-options": {
|
|
109
|
+
"types": "./dist/src/merge-options.d.ts",
|
|
110
|
+
"import": "./dist/src/merge-options.js"
|
|
111
|
+
},
|
|
108
112
|
"./moving-average": {
|
|
109
113
|
"types": "./dist/src/moving-average.d.ts",
|
|
110
114
|
"import": "./dist/src/moving-average.js"
|
|
@@ -170,13 +174,6 @@
|
|
|
170
174
|
"import": "./dist/src/tracked-map.js"
|
|
171
175
|
}
|
|
172
176
|
},
|
|
173
|
-
"eslintConfig": {
|
|
174
|
-
"extends": "ipfs",
|
|
175
|
-
"parserOptions": {
|
|
176
|
-
"project": true,
|
|
177
|
-
"sourceType": "module"
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
177
|
"scripts": {
|
|
181
178
|
"clean": "aegir clean",
|
|
182
179
|
"lint": "aegir lint",
|
|
@@ -192,46 +189,47 @@
|
|
|
192
189
|
"test:electron-main": "aegir test -t electron-main"
|
|
193
190
|
},
|
|
194
191
|
"dependencies": {
|
|
195
|
-
"@chainsafe/is-ip": "^2.0
|
|
192
|
+
"@chainsafe/is-ip": "^2.1.0",
|
|
196
193
|
"@chainsafe/netmask": "^2.0.0",
|
|
197
|
-
"@libp2p/crypto": "
|
|
198
|
-
"@libp2p/interface": "
|
|
199
|
-
"@libp2p/logger": "
|
|
200
|
-
"@multiformats/multiaddr": "^12.
|
|
194
|
+
"@libp2p/crypto": "5.1.2-aa25d38ab",
|
|
195
|
+
"@libp2p/interface": "2.10.0-aa25d38ab",
|
|
196
|
+
"@libp2p/logger": "5.1.16-aa25d38ab",
|
|
197
|
+
"@multiformats/multiaddr": "^12.4.0",
|
|
201
198
|
"@sindresorhus/fnv1a": "^3.1.0",
|
|
202
199
|
"any-signal": "^4.1.1",
|
|
203
200
|
"delay": "^6.0.0",
|
|
204
201
|
"get-iterator": "^2.0.1",
|
|
205
202
|
"is-loopback-addr": "^2.0.2",
|
|
206
|
-
"
|
|
203
|
+
"is-plain-obj": "^4.1.0",
|
|
204
|
+
"it-foreach": "^2.1.3",
|
|
207
205
|
"it-pipe": "^3.0.1",
|
|
208
206
|
"it-pushable": "^3.2.3",
|
|
209
207
|
"it-stream-types": "^2.0.2",
|
|
210
208
|
"netmask": "^2.0.2",
|
|
211
209
|
"p-defer": "^4.0.1",
|
|
212
210
|
"race-event": "^1.3.0",
|
|
213
|
-
"race-signal": "^1.1.
|
|
211
|
+
"race-signal": "^1.1.3",
|
|
214
212
|
"uint8arraylist": "^2.4.8",
|
|
215
213
|
"uint8arrays": "^5.1.0"
|
|
216
214
|
},
|
|
217
215
|
"devDependencies": {
|
|
218
|
-
"@libp2p/peer-id": "
|
|
216
|
+
"@libp2p/peer-id": "5.1.3-aa25d38ab",
|
|
219
217
|
"@types/netmask": "^2.0.5",
|
|
220
|
-
"aegir": "^
|
|
218
|
+
"aegir": "^47.0.6",
|
|
221
219
|
"benchmark": "^2.1.4",
|
|
222
220
|
"delay": "^6.0.0",
|
|
223
|
-
"it-all": "^3.0.
|
|
224
|
-
"it-drain": "^3.0.
|
|
221
|
+
"it-all": "^3.0.8",
|
|
222
|
+
"it-drain": "^3.0.9",
|
|
225
223
|
"it-pair": "^2.0.6",
|
|
226
|
-
"sinon": "^
|
|
224
|
+
"sinon": "^20.0.0",
|
|
227
225
|
"sinon-ts": "^2.0.0",
|
|
228
226
|
"wherearewe": "^2.0.1"
|
|
229
227
|
},
|
|
230
|
-
"sideEffects": false,
|
|
231
228
|
"browser": {
|
|
232
229
|
"./dist/src/get-thin-waist-addresses.js": "./dist/src/get-thin-waist-addresses.browser.js"
|
|
233
230
|
},
|
|
234
231
|
"react-native": {
|
|
235
232
|
"./dist/src/get-thin-waist-addresses.js": "./dist/src/get-thin-waist-addresses.js"
|
|
236
|
-
}
|
|
233
|
+
},
|
|
234
|
+
"sideEffects": false
|
|
237
235
|
}
|
package/src/abstract-stream.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { StreamResetError, StreamStateError } from '@libp2p/interface'
|
|
2
|
-
import {
|
|
3
|
-
import defer
|
|
4
|
-
import pDefer from 'p-defer'
|
|
2
|
+
import { pushable } from 'it-pushable'
|
|
3
|
+
import defer from 'p-defer'
|
|
5
4
|
import { raceSignal } from 'race-signal'
|
|
6
5
|
import { Uint8ArrayList } from 'uint8arraylist'
|
|
7
6
|
import { closeSource } from './close-source.js'
|
|
8
7
|
import type { AbortOptions, Direction, ReadStatus, Stream, StreamStatus, StreamTimeline, WriteStatus } from '@libp2p/interface'
|
|
9
8
|
import type { Logger } from '@libp2p/logger'
|
|
9
|
+
import type { Pushable } from 'it-pushable'
|
|
10
10
|
import type { Source } from 'it-stream-types'
|
|
11
|
+
import type { DeferredPromise } from 'p-defer'
|
|
11
12
|
|
|
12
13
|
const DEFAULT_SEND_CLOSE_WRITE_TIMEOUT = 5000
|
|
13
14
|
|
|
@@ -35,7 +36,7 @@ export interface AbstractStreamInit {
|
|
|
35
36
|
/**
|
|
36
37
|
* Invoked when the stream ends
|
|
37
38
|
*/
|
|
38
|
-
onEnd?(err?: Error
|
|
39
|
+
onEnd?(err?: Error): void
|
|
39
40
|
|
|
40
41
|
/**
|
|
41
42
|
* Invoked when the readable end of the stream is closed
|
|
@@ -99,7 +100,7 @@ export abstract class AbstractStream implements Stream {
|
|
|
99
100
|
private readonly closed: DeferredPromise<void>
|
|
100
101
|
private endErr: Error | undefined
|
|
101
102
|
private readonly streamSource: Pushable<Uint8ArrayList>
|
|
102
|
-
private readonly onEnd?: (err?: Error
|
|
103
|
+
private readonly onEnd?: (err?: Error) => void
|
|
103
104
|
private readonly onCloseRead?: () => void
|
|
104
105
|
private readonly onCloseWrite?: () => void
|
|
105
106
|
private readonly onReset?: () => void
|
|
@@ -127,10 +128,10 @@ export abstract class AbstractStream implements Stream {
|
|
|
127
128
|
this.sendCloseWriteTimeout = init.sendCloseWriteTimeout ?? DEFAULT_SEND_CLOSE_WRITE_TIMEOUT
|
|
128
129
|
|
|
129
130
|
this.onEnd = init.onEnd
|
|
130
|
-
this.onCloseRead = init
|
|
131
|
-
this.onCloseWrite = init
|
|
132
|
-
this.onReset = init
|
|
133
|
-
this.onAbort = init
|
|
131
|
+
this.onCloseRead = init.onCloseRead
|
|
132
|
+
this.onCloseWrite = init.onCloseWrite
|
|
133
|
+
this.onReset = init.onReset
|
|
134
|
+
this.onAbort = init.onAbort
|
|
134
135
|
|
|
135
136
|
this.source = this.streamSource = pushable<Uint8ArrayList>({
|
|
136
137
|
onEnd: (err) => {
|
|
@@ -183,7 +184,7 @@ export abstract class AbstractStream implements Stream {
|
|
|
183
184
|
const res = this.sendData(data, options)
|
|
184
185
|
|
|
185
186
|
if (isPromise(res)) {
|
|
186
|
-
this.sendingData =
|
|
187
|
+
this.sendingData = defer()
|
|
187
188
|
await res
|
|
188
189
|
this.sendingData.resolve()
|
|
189
190
|
this.sendingData = undefined
|
package/src/adaptive-timeout.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { setMaxListeners } from '@libp2p/interface'
|
|
2
|
-
import { anySignal
|
|
2
|
+
import { anySignal } from 'any-signal'
|
|
3
3
|
import { MovingAverage } from './moving-average.js'
|
|
4
4
|
import type { MetricGroup, Metrics } from '@libp2p/interface'
|
|
5
|
+
import type { ClearableSignal } from 'any-signal'
|
|
5
6
|
|
|
6
7
|
export const DEFAULT_TIMEOUT_MULTIPLIER = 1.2
|
|
7
8
|
export const DEFAULT_FAILURE_MULTIPLIER = 2
|
|
8
|
-
export const DEFAULT_MIN_TIMEOUT =
|
|
9
|
+
export const DEFAULT_MIN_TIMEOUT = 5000
|
|
9
10
|
|
|
10
11
|
export interface AdaptiveTimeoutSignal extends ClearableSignal {
|
|
11
12
|
start: number
|
|
@@ -16,7 +17,6 @@ export interface AdaptiveTimeoutInit {
|
|
|
16
17
|
metricName?: string
|
|
17
18
|
metrics?: Metrics
|
|
18
19
|
interval?: number
|
|
19
|
-
initialValue?: number
|
|
20
20
|
timeoutMultiplier?: number
|
|
21
21
|
failureMultiplier?: number
|
|
22
22
|
minTimeout?: number
|
package/src/debounce.ts
CHANGED
|
@@ -21,8 +21,8 @@ export function debounce (func: () => void | Promise<void>, wait: number): Debou
|
|
|
21
21
|
clearTimeout(timeout)
|
|
22
22
|
timeout = setTimeout(later, wait)
|
|
23
23
|
}
|
|
24
|
-
output.start = () => {}
|
|
25
|
-
output.stop = () => {
|
|
24
|
+
output.start = (): void => {}
|
|
25
|
+
output.stop = (): void => {
|
|
26
26
|
clearTimeout(timeout)
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
2
2
|
import { Bucket } from './bucket.js'
|
|
3
3
|
import { Fingerprint, MAX_FINGERPRINT_SIZE } from './fingerprint.js'
|
|
4
|
-
import { fnv1a
|
|
4
|
+
import { fnv1a } from './hashes.js'
|
|
5
5
|
import { getRandomInt } from './utils.js'
|
|
6
|
+
import type { Hash } from './hashes.js'
|
|
6
7
|
import type { Filter } from './index.js'
|
|
7
8
|
|
|
8
9
|
const maxCuckooCount = 500
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
2
|
-
import { CuckooFilter, optimize
|
|
3
|
-
import { fnv1a
|
|
2
|
+
import { CuckooFilter, optimize } from './cuckoo-filter.js'
|
|
3
|
+
import { fnv1a } from './hashes.js'
|
|
4
4
|
import { getRandomInt } from './utils.js'
|
|
5
|
+
import type { CuckooFilterInit } from './cuckoo-filter.js'
|
|
6
|
+
import type { Hash } from './hashes.js'
|
|
5
7
|
import type { Filter } from './index.js'
|
|
6
8
|
|
|
7
9
|
export interface ScalableCuckooFilterInit extends CuckooFilterInit {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { isIPv4, isIPv6 } from '@chainsafe/is-ip'
|
|
2
2
|
import { InvalidParametersError } from '@libp2p/interface'
|
|
3
|
-
import {
|
|
3
|
+
import { multiaddr } from '@multiformats/multiaddr'
|
|
4
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Transform an IP, Port pair into a multiaddr
|
|
7
8
|
*/
|
|
8
9
|
export function ipPortToMultiaddr (ip: string, port: number | string): Multiaddr {
|
|
9
10
|
if (typeof ip !== 'string') {
|
|
10
|
-
throw new InvalidParametersError(`invalid ip provided: ${ip}`)
|
|
11
|
+
throw new InvalidParametersError(`invalid ip provided: ${ip}`)
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
if (typeof port === 'string') {
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import isOptionObject from 'is-plain-obj'
|
|
2
|
+
|
|
3
|
+
const { hasOwnProperty } = Object.prototype
|
|
4
|
+
const { propertyIsEnumerable } = Object
|
|
5
|
+
const defineProperty = (object: any, name: any, value: any): void => {
|
|
6
|
+
Object.defineProperty(object, name, {
|
|
7
|
+
value,
|
|
8
|
+
writable: true,
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const globalThis = this
|
|
15
|
+
const defaultMergeOptions = {
|
|
16
|
+
concatArrays: false,
|
|
17
|
+
ignoreUndefined: false
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const getEnumerableOwnPropertyKeys = (value: any): any[] => {
|
|
21
|
+
const keys = []
|
|
22
|
+
|
|
23
|
+
for (const key in value) {
|
|
24
|
+
if (hasOwnProperty.call(value, key)) {
|
|
25
|
+
keys.push(key)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* istanbul ignore else */
|
|
30
|
+
if (Object.getOwnPropertySymbols) {
|
|
31
|
+
const symbols = Object.getOwnPropertySymbols(value)
|
|
32
|
+
|
|
33
|
+
for (const symbol of symbols) {
|
|
34
|
+
if (propertyIsEnumerable.call(value, symbol)) {
|
|
35
|
+
keys.push(symbol)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return keys
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function clone <T> (value: T): T
|
|
44
|
+
function clone <T> (value: T[]): T[]
|
|
45
|
+
function clone (value: any): any {
|
|
46
|
+
if (Array.isArray(value)) {
|
|
47
|
+
return cloneArray(value)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (isOptionObject(value)) {
|
|
51
|
+
return cloneOptionObject(value)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return value
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function cloneArray <T> (array: T[]): T[] {
|
|
58
|
+
const result = array.slice(0, 0)
|
|
59
|
+
|
|
60
|
+
getEnumerableOwnPropertyKeys(array).forEach(key => {
|
|
61
|
+
defineProperty(result, key, clone(array[key]))
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
return result
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function cloneOptionObject (object: any): any {
|
|
68
|
+
const result = Object.getPrototypeOf(object) === null ? Object.create(null) : {}
|
|
69
|
+
|
|
70
|
+
getEnumerableOwnPropertyKeys(object).forEach(key => {
|
|
71
|
+
defineProperty(result, key, clone(object[key]))
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
return result
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const mergeKeys = (merged: any, source: any, keys: any[], config: any): any => {
|
|
78
|
+
keys.forEach(key => {
|
|
79
|
+
if (typeof source[key] === 'undefined' && config.ignoreUndefined) {
|
|
80
|
+
return
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Do not recurse into prototype chain of merged
|
|
84
|
+
if (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {
|
|
85
|
+
defineProperty(merged, key, merge(merged[key], source[key], config))
|
|
86
|
+
} else {
|
|
87
|
+
defineProperty(merged, key, clone(source[key]))
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
return merged
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)
|
|
96
|
+
*/
|
|
97
|
+
const concatArrays = (merged: any, source: any, config: any): any => {
|
|
98
|
+
let result = merged.slice(0, 0)
|
|
99
|
+
let resultIndex = 0;
|
|
100
|
+
|
|
101
|
+
[merged, source].forEach(array => {
|
|
102
|
+
const indices: any[] = []
|
|
103
|
+
|
|
104
|
+
// `result.concat(array)` with cloning
|
|
105
|
+
for (let k = 0; k < array.length; k++) {
|
|
106
|
+
if (!hasOwnProperty.call(array, k)) {
|
|
107
|
+
continue
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
indices.push(String(k))
|
|
111
|
+
|
|
112
|
+
if (array === merged) {
|
|
113
|
+
// Already cloned
|
|
114
|
+
defineProperty(result, resultIndex++, array[k])
|
|
115
|
+
} else {
|
|
116
|
+
defineProperty(result, resultIndex++, clone(array[k]))
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Merge non-index keys
|
|
121
|
+
result = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => !indices.includes(key)), config)
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
return result
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function merge (merged: any, source: any, config: any): any {
|
|
128
|
+
if (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {
|
|
129
|
+
return concatArrays(merged, source, config)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (!isOptionObject(source) || !isOptionObject(merged)) {
|
|
133
|
+
return clone(source)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Port of `merge-options` to typescript
|
|
141
|
+
*
|
|
142
|
+
* @see https://github.com/schnittstabil/merge-options/pull/28
|
|
143
|
+
*/
|
|
144
|
+
export function mergeOptions (this: any, ...options: any[]): any {
|
|
145
|
+
const config = merge(clone(defaultMergeOptions), (this !== globalThis && this) || {}, defaultMergeOptions)
|
|
146
|
+
let merged = { _: {} }
|
|
147
|
+
|
|
148
|
+
for (const option of options) {
|
|
149
|
+
if (option === undefined) {
|
|
150
|
+
continue
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (!isOptionObject(option)) {
|
|
154
|
+
throw new TypeError('`' + option + '` is not an Option Object')
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
merged = merge(merged, { _: option }, config)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return merged._
|
|
161
|
+
}
|
package/src/private-ip.ts
CHANGED
|
@@ -32,7 +32,7 @@ const NETMASK_RANGES = PRIVATE_IP_RANGES.map(ipRange => new Netmask(ipRange))
|
|
|
32
32
|
|
|
33
33
|
function ipv4Check (ipAddr: string): boolean {
|
|
34
34
|
for (const r of NETMASK_RANGES) {
|
|
35
|
-
if (r.contains(ipAddr)) return true
|
|
35
|
+
if (r.contains(ipAddr)) { return true }
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
return false
|
|
@@ -89,9 +89,5 @@ function ipv6Check (ipAddr: string): boolean {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
export function isPrivateIp (ip: string): boolean | undefined {
|
|
92
|
-
if (isIPv4(ip)) return ipv4Check(ip)
|
|
93
|
-
else if (isIpv4MappedIpv6(ip)) return ipv4MappedIpv6Check(ip)
|
|
94
|
-
else if (isIpv4EmbeddedIpv6(ip)) return ipv4EmbeddedIpv6Check(ip)
|
|
95
|
-
else if (isIPv6(ip)) return ipv6Check(ip)
|
|
96
|
-
else return undefined
|
|
92
|
+
if (isIPv4(ip)) { return ipv4Check(ip) } else if (isIpv4MappedIpv6(ip)) { return ipv4MappedIpv6Check(ip) } else if (isIpv4EmbeddedIpv6(ip)) { return ipv4EmbeddedIpv6Check(ip) } else if (isIPv6(ip)) { return ipv6Check(ip) } else { return undefined }
|
|
97
93
|
}
|