@libp2p/interface 0.1.3-f9d1c072 → 0.1.4-346ff5a2
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 +5 -15
- package/dist/src/events.browser.d.ts +3 -0
- package/dist/src/events.browser.d.ts.map +1 -0
- package/dist/src/events.browser.js +3 -0
- package/dist/src/events.browser.js.map +1 -0
- package/dist/src/events.d.ts +16 -1
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/events.js +14 -6
- package/dist/src/events.js.map +1 -1
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/peer-discovery/index.d.ts +2 -2
- package/dist/src/peer-discovery/index.d.ts.map +1 -1
- package/dist/src/pubsub/index.d.ts +3 -3
- package/dist/src/pubsub/index.d.ts.map +1 -1
- package/dist/src/topology/index.d.ts +13 -0
- package/dist/src/topology/index.d.ts.map +1 -1
- package/dist/src/transport/index.d.ts +2 -2
- package/dist/src/transport/index.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/events.browser.ts +2 -0
- package/src/events.ts +31 -1
- package/src/index.ts +7 -2
- package/src/peer-discovery/index.ts +2 -2
- package/src/pubsub/index.ts +3 -3
- package/src/topology/index.ts +15 -0
- package/src/transport/index.ts +2 -2
package/README.md
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# @libp2p/interface <!-- omit in toc -->
|
|
2
|
-
|
|
3
1
|
[](http://libp2p.io/)
|
|
4
2
|
[](https://discuss.libp2p.io)
|
|
5
3
|
[](https://codecov.io/gh/libp2p/js-libp2p)
|
|
@@ -7,21 +5,13 @@
|
|
|
7
5
|
|
|
8
6
|
> The interface implemented by a libp2p node
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- [Install](#install)
|
|
13
|
-
- [Browser `<script>` tag](#browser-script-tag)
|
|
14
|
-
- [API Docs](#api-docs)
|
|
15
|
-
- [License](#license)
|
|
16
|
-
- [Contribution](#contribution)
|
|
17
|
-
|
|
18
|
-
## Install
|
|
8
|
+
# Install
|
|
19
9
|
|
|
20
10
|
```console
|
|
21
11
|
$ npm i @libp2p/interface
|
|
22
12
|
```
|
|
23
13
|
|
|
24
|
-
|
|
14
|
+
## Browser `<script>` tag
|
|
25
15
|
|
|
26
16
|
Loading this module through a script tag will make it's exports available as `Libp2pInterface` in the global namespace.
|
|
27
17
|
|
|
@@ -29,17 +19,17 @@ Loading this module through a script tag will make it's exports available as `Li
|
|
|
29
19
|
<script src="https://unpkg.com/@libp2p/interface/dist/index.min.js"></script>
|
|
30
20
|
```
|
|
31
21
|
|
|
32
|
-
|
|
22
|
+
# API Docs
|
|
33
23
|
|
|
34
24
|
- <https://libp2p.github.io/js-libp2p/modules/_libp2p_interface.html>
|
|
35
25
|
|
|
36
|
-
|
|
26
|
+
# License
|
|
37
27
|
|
|
38
28
|
Licensed under either of
|
|
39
29
|
|
|
40
30
|
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
|
|
41
31
|
- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
|
|
42
32
|
|
|
43
|
-
|
|
33
|
+
# Contribution
|
|
44
34
|
|
|
45
35
|
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.browser.d.ts","sourceRoot":"","sources":["../../src/events.browser.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,wBAAgB,eAAe,IAAK,IAAI,CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.browser.js","sourceRoot":"","sources":["../../src/events.browser.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,UAAU,eAAe,KAAW,CAAC"}
|
package/dist/src/events.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { setMaxListeners as nodeSetMaxListeners } from 'events';
|
|
1
3
|
export interface EventCallback<EventType> {
|
|
2
4
|
(evt: EventType): void;
|
|
3
5
|
}
|
|
@@ -13,7 +15,18 @@ export type EventHandler<EventType> = EventCallback<EventType> | EventObject<Eve
|
|
|
13
15
|
* https://github.com/microsoft/TypeScript/issues/299
|
|
14
16
|
* etc
|
|
15
17
|
*/
|
|
16
|
-
export
|
|
18
|
+
export interface TypedEventTarget<EventMap extends Record<string, any>> extends EventTarget {
|
|
19
|
+
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void;
|
|
20
|
+
listenerCount(type: string): number;
|
|
21
|
+
removeEventListener<K extends keyof EventMap>(type: K, listener?: EventHandler<EventMap[K]> | null, options?: boolean | EventListenerOptions): void;
|
|
22
|
+
removeEventListener(type: string, listener?: EventHandler<Event>, options?: boolean | EventListenerOptions): void;
|
|
23
|
+
safeDispatchEvent<Detail>(type: keyof EventMap, detail: CustomEventInit<Detail>): boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* An implementation of a typed event target
|
|
27
|
+
* etc
|
|
28
|
+
*/
|
|
29
|
+
export declare class TypedEventEmitter<EventMap extends Record<string, any>> extends EventTarget implements TypedEventTarget<EventMap> {
|
|
17
30
|
#private;
|
|
18
31
|
listenerCount(type: string): number;
|
|
19
32
|
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -25,4 +38,6 @@ export declare const CustomEvent: {
|
|
|
25
38
|
new <T>(type: string, eventInitDict?: CustomEventInit<T> | undefined): CustomEvent<T>;
|
|
26
39
|
prototype: CustomEvent<any>;
|
|
27
40
|
};
|
|
41
|
+
export { TypedEventEmitter as EventEmitter };
|
|
42
|
+
export declare const setMaxListeners: typeof nodeSetMaxListeners;
|
|
28
43
|
//# sourceMappingURL=events.d.ts.map
|
package/dist/src/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,SAAS;IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE;AACpE,MAAM,WAAW,WAAW,CAAC,SAAS;IAAI,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAAE;AACjF,MAAM,MAAM,YAAY,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAOvF;;;;;;;GAOG;AACH,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAE/D,MAAM,WAAW,aAAa,CAAC,SAAS;IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE;AACpE,MAAM,WAAW,WAAW,CAAC,SAAS;IAAI,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAAE;AACjF,MAAM,MAAM,YAAY,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAOvF;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB,CAAE,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,WAAW;IAC1F,gBAAgB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAAA;IAElJ,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAEpC,mBAAmB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAAA;IAEnJ,mBAAmB,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAAA;IAElH,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;CAC1F;AAED;;;GAGG;AACH,qBAAa,iBAAiB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,WAAY,YAAW,gBAAgB,CAAC,QAAQ,CAAC;;IAG5H,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAUpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAiBlJ,mBAAmB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;IAcnJ,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,OAAO;IAerC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO;CAG1F;AAoBD,eAAO,MAAM,WAAW;;;CAAgD,CAAA;AAGxE,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,CAAA;AAG5C,eAAO,MAAM,eAAe,EAAE,OAAO,mBAMpC,CAAA"}
|
package/dist/src/events.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
+
import { setMaxListeners as nodeSetMaxListeners } from 'events';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* https://github.com/microsoft/TypeScript/issues/28357
|
|
5
|
-
* https://github.com/microsoft/TypeScript/issues/43477
|
|
6
|
-
* https://github.com/microsoft/TypeScript/issues/299
|
|
3
|
+
* An implementation of a typed event target
|
|
7
4
|
* etc
|
|
8
5
|
*/
|
|
9
|
-
export class
|
|
6
|
+
export class TypedEventEmitter extends EventTarget {
|
|
10
7
|
#listeners = new Map();
|
|
11
8
|
listenerCount(type) {
|
|
12
9
|
const listeners = this.#listeners.get(type);
|
|
@@ -67,4 +64,15 @@ class CustomEventPolyfill extends Event {
|
|
|
67
64
|
}
|
|
68
65
|
}
|
|
69
66
|
export const CustomEvent = globalThis.CustomEvent ?? CustomEventPolyfill;
|
|
67
|
+
// TODO: remove this in v1
|
|
68
|
+
export { TypedEventEmitter as EventEmitter };
|
|
69
|
+
// create a setMaxListeners that doesn't break browser usage
|
|
70
|
+
export const setMaxListeners = (n, ...eventTargets) => {
|
|
71
|
+
try {
|
|
72
|
+
nodeSetMaxListeners(n, ...eventTargets);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// swallow error, gulp
|
|
76
|
+
}
|
|
77
|
+
};
|
|
70
78
|
//# sourceMappingURL=events.js.map
|
package/dist/src/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AA+B/D;;;GAGG;AACH,MAAM,OAAO,iBAAwD,SAAQ,WAAW;IACtF,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEvC,aAAa,CAAE,IAAY;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,OAAO,CAAC,CAAA;SACT;QAED,OAAO,SAAS,CAAC,MAAM,CAAA;IACzB,CAAC;IAGD,gBAAgB,CAAE,IAAY,EAAE,QAA6B,EAAE,OAA2C;QACxG,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE/C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,GAAG,EAAE,CAAA;YACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SAChC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK;SACxE,CAAC,CAAA;IACJ,CAAC;IAGD,mBAAmB,CAAE,IAAY,EAAE,QAA8B,EAAE,OAAwC;QACzG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC,CAAA;QAErE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAM;SACP;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,aAAa,CAAE,KAAY;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAEzC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO,MAAM,CAAA;SACd;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAErC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,iBAAiB,CAAS,IAAoB,EAAE,MAA+B;QAC7E,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAS,IAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5E,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,mBAA6B,SAAQ,KAAK;IAC9C,2FAA2F;IACpF,MAAM,CAAG;IAEhB,YAAa,OAAe,EAAE,IAAgC;QAC5D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACpB,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,mBAAmB,CAAA;AAExE,0BAA0B;AAC1B,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,CAAA;AAE5C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAA+B,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE;IAChF,IAAI;QACF,mBAAmB,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAA;KACxC;IAAC,MAAM;QACN,sBAAsB;KACvB;AACH,CAAC,CAAA"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { Connection, NewStreamOptions, Stream } from './connection/index.js';
|
|
17
17
|
import type { ContentRouting } from './content-routing/index.js';
|
|
18
|
-
import type {
|
|
18
|
+
import type { TypedEventTarget } from './events.js';
|
|
19
19
|
import type { KeyChain } from './keychain/index.js';
|
|
20
20
|
import type { Metrics } from './metrics/index.js';
|
|
21
21
|
import type { PeerId } from './peer-id/index.js';
|
|
@@ -87,6 +87,10 @@ export interface IdentifyResult {
|
|
|
87
87
|
* If sent by the remote peer this is the deserialized signed peer record
|
|
88
88
|
*/
|
|
89
89
|
signedPeerRecord?: SignedPeerRecord;
|
|
90
|
+
/**
|
|
91
|
+
* The connection that the identify protocol ran over
|
|
92
|
+
*/
|
|
93
|
+
connection: Connection;
|
|
90
94
|
}
|
|
91
95
|
/**
|
|
92
96
|
* Once you have a libp2p instance, you can listen to several events it emits,
|
|
@@ -271,7 +275,7 @@ export interface PendingDial {
|
|
|
271
275
|
/**
|
|
272
276
|
* Libp2p nodes implement this interface.
|
|
273
277
|
*/
|
|
274
|
-
export interface Libp2p<T extends ServiceMap = ServiceMap> extends Startable,
|
|
278
|
+
export interface Libp2p<T extends ServiceMap = ServiceMap> extends Startable, TypedEventTarget<Libp2pEvents<T>> {
|
|
275
279
|
/**
|
|
276
280
|
* The PeerId is a unique identifier for a node on the network.
|
|
277
281
|
*
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,SAAS,EAAE,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;OAGG;IACH,WAAW,EAAE,SAAS,EAAE,CAAA;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAA;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAA;IAExB;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAC7D;;;;;;;;;;;OAWG;IACH,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAEvC;;;;;;;;;;;OAWG;IACH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAEnC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAEtC;;;;;;;;;;;;;OAaG;IACH,eAAe,EAAE,WAAW,CAAC,cAAc,CAAC,CAAA;IAE5C;;;;;;;;;OASG;IACH,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAEtC;;;;;;;;;;;;;OAaG;IACH,kBAAkB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAE3C;;OAEG;IACH,qBAAqB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAE5C;;OAEG;IACH,iBAAiB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAExC;;;;OAIG;IACH,kBAAkB,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAA;IAE7C;;;OAGG;IACH,iBAAiB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAE1C;;;OAGG;IACH,kBAAkB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IAE3C;;;;;;;;OAQG;IACH,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/B;;;;;;;;OAQG;IACH,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAEzE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAA;IAEzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;OAIG;IACH,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7G;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,SAAS,CAAA;IAEpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,EAAE,WAAW,CAAA;IAExB;;;;;;;;;;;;;OAaG;IACH,cAAc,EAAE,cAAc,CAAA;IAE9B;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,QAAQ,CAAA;IAElB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,SAAS,EAAE,CAAA;IAE5B;;;;;;;;;OASG;IACH,YAAY,IAAI,MAAM,EAAE,CAAA;IAExB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAA;IAE7C;;;;;;;;;;OAUG;IACH,YAAY,IAAI,WAAW,EAAE,CAAA;IAE7B;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE,CAAA;IAEpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEzF;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/H;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1G;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAErD;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/D;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEvE;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjJ,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TypedEventTarget } from '../events.js';
|
|
2
2
|
import type { PeerInfo } from '../peer-info/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Any object that implements this Symbol as a property should return a
|
|
@@ -23,6 +23,6 @@ export declare const peerDiscovery: unique symbol;
|
|
|
23
23
|
export interface PeerDiscoveryEvents {
|
|
24
24
|
'peer': CustomEvent<PeerInfo>;
|
|
25
25
|
}
|
|
26
|
-
export interface PeerDiscovery extends
|
|
26
|
+
export interface PeerDiscovery extends TypedEventTarget<PeerDiscoveryEvents> {
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,eAAuC,CAAA;AAEjE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB,CAAC,mBAAmB,CAAC;CAAG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Stream } from '../connection/index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TypedEventTarget } from '../events.js';
|
|
3
3
|
import type { PeerId } from '../peer-id/index.js';
|
|
4
4
|
import type { Pushable } from 'it-pushable';
|
|
5
5
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
@@ -55,7 +55,7 @@ export interface PubSubRPC {
|
|
|
55
55
|
subscriptions: PubSubRPCSubscription[];
|
|
56
56
|
messages: PubSubRPCMessage[];
|
|
57
57
|
}
|
|
58
|
-
export interface PeerStreams extends
|
|
58
|
+
export interface PeerStreams extends TypedEventTarget<PeerStreamEvents> {
|
|
59
59
|
id: PeerId;
|
|
60
60
|
protocol: string;
|
|
61
61
|
outboundStream?: Pushable<Uint8ArrayList>;
|
|
@@ -126,7 +126,7 @@ export declare enum TopicValidatorResult {
|
|
|
126
126
|
export interface TopicValidatorFn {
|
|
127
127
|
(peer: PeerId, message: Message): TopicValidatorResult | Promise<TopicValidatorResult>;
|
|
128
128
|
}
|
|
129
|
-
export interface PubSub<Events extends Record<string, any> = PubSubEvents> extends
|
|
129
|
+
export interface PubSub<Events extends Record<string, any> = PubSubEvents> extends TypedEventTarget<Events> {
|
|
130
130
|
/**
|
|
131
131
|
* The global signature policy controls whether or not we sill send and receive
|
|
132
132
|
* signed or unsigned messages.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pubsub/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pubsub/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,eAAe,CAAA;AAEtC;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,iBAAiB,CAAA;AAE1C,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,GAAG,OAAO,YAAY,CAAA;AAErE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,UAAU,CAAA;IACrB,GAAG,EAAE,UAAU,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,eAAe,CAAA;AAErD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,GAAG,CAAC,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,qBAAqB,EAAE,CAAA;IACtC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB,CAAC,gBAAgB,CAAC;IACrE,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAA;IAC7C,UAAU,EAAE,OAAO,CAAA;IAEnB,KAAK,IAAI,IAAI,CAAA;IACb,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAAA;IAC7C,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;IAClE,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;CACxE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAEtB;;OAEG;IACH,qBAAqB,CAAC,EAAE,eAAe,CAAA;IAEvC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,qBAAqB,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAA;IAC1D,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,oBAAY,oBAAoB;IAC9B;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACvF;AAED,MAAM,WAAW,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,CAAE,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IACzG;;;;;;OAMG;IACH,qBAAqB,EAAE,OAAO,UAAU,GAAG,OAAO,YAAY,CAAA;IAE9D;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAA;IAErB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAE9C,QAAQ,IAAI,MAAM,EAAE,CAAA;IAEpB;;;;;;OAMG;IACH,SAAS,IAAI,MAAM,EAAE,CAAA;IAErB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAEhC;;;;;;;;OAQG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAEvC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;CACjE;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IACpC,iBAAiB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IACrC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;CAC5B"}
|
|
@@ -3,7 +3,20 @@ import type { PeerId } from '../peer-id/index.js';
|
|
|
3
3
|
export interface Topology {
|
|
4
4
|
min?: number;
|
|
5
5
|
max?: number;
|
|
6
|
+
/**
|
|
7
|
+
* If true, invoke `onConnect` for this topology on transient (e.g. short-lived
|
|
8
|
+
* and/or data-limited) connections. (default: false)
|
|
9
|
+
*/
|
|
10
|
+
notifyOnTransient?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Invoked when a new connection is opened to a peer that supports the
|
|
13
|
+
* registered protocol
|
|
14
|
+
*/
|
|
6
15
|
onConnect?(peerId: PeerId, conn: Connection): void;
|
|
16
|
+
/**
|
|
17
|
+
* Invoked when the last connection to a peer that supports the registered
|
|
18
|
+
* protocol closes
|
|
19
|
+
*/
|
|
7
20
|
onDisconnect?(peerId: PeerId): void;
|
|
8
21
|
}
|
|
9
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/topology/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/topology/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;OAGG;IACH,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IAElD;;;OAGG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Connection, MultiaddrConnection } from '../connection/index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TypedEventTarget } from '../events.js';
|
|
3
3
|
import type { AbortOptions } from '../index.js';
|
|
4
4
|
import type { StreamMuxerFactory } from '../stream-muxer/index.js';
|
|
5
5
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
@@ -9,7 +9,7 @@ export interface ListenerEvents {
|
|
|
9
9
|
'error': CustomEvent<Error>;
|
|
10
10
|
'close': CustomEvent;
|
|
11
11
|
}
|
|
12
|
-
export interface Listener extends
|
|
12
|
+
export interface Listener extends TypedEventTarget<ListenerEvents> {
|
|
13
13
|
/**
|
|
14
14
|
* Start a listener
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IACrC,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAC3B,OAAO,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,QAAS,SAAQ,gBAAgB,CAAC,cAAc,CAAC;IAChE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C;;OAEG;IACH,QAAQ,IAAI,SAAS,EAAE,CAAA;IACvB;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,eAAO,MAAM,MAAM,eAAkC,CAAA;AAErD,MAAM,WAAW,iBAAiB;IAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE;AAErE,MAAM,WAAW,eAAe;IAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAA;CAAE;AAE3E,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,CAAC,MAAM,CAAC,EAAE,IAAI,CAAA;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAE9D;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,QAAQ,CAAA;IAExD;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE3D;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB;;OAEG;IACH,SAAS,IAAI;IAEb;;OAEG;IACH,QAAQ,IAAA;CACT;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEzF;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACzF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/interface",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4-346ff5a2",
|
|
4
4
|
"description": "The interface implemented by a libp2p node",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/interface#readme",
|
|
@@ -39,6 +39,9 @@
|
|
|
39
39
|
"!dist/test",
|
|
40
40
|
"!**/*.tsbuildinfo"
|
|
41
41
|
],
|
|
42
|
+
"browser": {
|
|
43
|
+
"events": "./dist/src/events.browser.js"
|
|
44
|
+
},
|
|
42
45
|
"exports": {
|
|
43
46
|
".": {
|
|
44
47
|
"types": "./dist/src/index.d.ts",
|
package/src/events.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { setMaxListeners as nodeSetMaxListeners } from 'events'
|
|
2
|
+
|
|
1
3
|
export interface EventCallback<EventType> { (evt: EventType): void }
|
|
2
4
|
export interface EventObject<EventType> { handleEvent: EventCallback<EventType> }
|
|
3
5
|
export type EventHandler<EventType> = EventCallback<EventType> | EventObject<EventType>
|
|
@@ -15,7 +17,23 @@ interface Listener {
|
|
|
15
17
|
* https://github.com/microsoft/TypeScript/issues/299
|
|
16
18
|
* etc
|
|
17
19
|
*/
|
|
18
|
-
export
|
|
20
|
+
export interface TypedEventTarget <EventMap extends Record<string, any>> extends EventTarget {
|
|
21
|
+
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void
|
|
22
|
+
|
|
23
|
+
listenerCount (type: string): number
|
|
24
|
+
|
|
25
|
+
removeEventListener<K extends keyof EventMap>(type: K, listener?: EventHandler<EventMap[K]> | null, options?: boolean | EventListenerOptions): void
|
|
26
|
+
|
|
27
|
+
removeEventListener (type: string, listener?: EventHandler<Event>, options?: boolean | EventListenerOptions): void
|
|
28
|
+
|
|
29
|
+
safeDispatchEvent<Detail>(type: keyof EventMap, detail: CustomEventInit<Detail>): boolean
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* An implementation of a typed event target
|
|
34
|
+
* etc
|
|
35
|
+
*/
|
|
36
|
+
export class TypedEventEmitter<EventMap extends Record<string, any>> extends EventTarget implements TypedEventTarget<EventMap> {
|
|
19
37
|
#listeners = new Map<any, Listener[]>()
|
|
20
38
|
|
|
21
39
|
listenerCount (type: string): number {
|
|
@@ -98,3 +116,15 @@ class CustomEventPolyfill<T = any> extends Event {
|
|
|
98
116
|
}
|
|
99
117
|
|
|
100
118
|
export const CustomEvent = globalThis.CustomEvent ?? CustomEventPolyfill
|
|
119
|
+
|
|
120
|
+
// TODO: remove this in v1
|
|
121
|
+
export { TypedEventEmitter as EventEmitter }
|
|
122
|
+
|
|
123
|
+
// create a setMaxListeners that doesn't break browser usage
|
|
124
|
+
export const setMaxListeners: typeof nodeSetMaxListeners = (n, ...eventTargets) => {
|
|
125
|
+
try {
|
|
126
|
+
nodeSetMaxListeners(n, ...eventTargets)
|
|
127
|
+
} catch {
|
|
128
|
+
// swallow error, gulp
|
|
129
|
+
}
|
|
130
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import type { Connection, NewStreamOptions, Stream } from './connection/index.js'
|
|
18
18
|
import type { ContentRouting } from './content-routing/index.js'
|
|
19
|
-
import type {
|
|
19
|
+
import type { TypedEventTarget } from './events.js'
|
|
20
20
|
import type { KeyChain } from './keychain/index.js'
|
|
21
21
|
import type { Metrics } from './metrics/index.js'
|
|
22
22
|
import type { PeerId } from './peer-id/index.js'
|
|
@@ -99,6 +99,11 @@ export interface IdentifyResult {
|
|
|
99
99
|
* If sent by the remote peer this is the deserialized signed peer record
|
|
100
100
|
*/
|
|
101
101
|
signedPeerRecord?: SignedPeerRecord
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The connection that the identify protocol ran over
|
|
105
|
+
*/
|
|
106
|
+
connection: Connection
|
|
102
107
|
}
|
|
103
108
|
|
|
104
109
|
/**
|
|
@@ -303,7 +308,7 @@ export interface PendingDial {
|
|
|
303
308
|
/**
|
|
304
309
|
* Libp2p nodes implement this interface.
|
|
305
310
|
*/
|
|
306
|
-
export interface Libp2p<T extends ServiceMap = ServiceMap> extends Startable,
|
|
311
|
+
export interface Libp2p<T extends ServiceMap = ServiceMap> extends Startable, TypedEventTarget<Libp2pEvents<T>> {
|
|
307
312
|
/**
|
|
308
313
|
* The PeerId is a unique identifier for a node on the network.
|
|
309
314
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TypedEventTarget } from '../events.js'
|
|
2
2
|
import type { PeerInfo } from '../peer-info/index.js'
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -26,4 +26,4 @@ export interface PeerDiscoveryEvents {
|
|
|
26
26
|
'peer': CustomEvent<PeerInfo>
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export interface PeerDiscovery extends
|
|
29
|
+
export interface PeerDiscovery extends TypedEventTarget<PeerDiscoveryEvents> {}
|
package/src/pubsub/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Stream } from '../connection/index.js'
|
|
2
|
-
import type {
|
|
2
|
+
import type { TypedEventTarget } from '../events.js'
|
|
3
3
|
import type { PeerId } from '../peer-id/index.js'
|
|
4
4
|
import type { Pushable } from 'it-pushable'
|
|
5
5
|
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
@@ -65,7 +65,7 @@ export interface PubSubRPC {
|
|
|
65
65
|
messages: PubSubRPCMessage[]
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export interface PeerStreams extends
|
|
68
|
+
export interface PeerStreams extends TypedEventTarget<PeerStreamEvents> {
|
|
69
69
|
id: PeerId
|
|
70
70
|
protocol: string
|
|
71
71
|
outboundStream?: Pushable<Uint8ArrayList>
|
|
@@ -152,7 +152,7 @@ export interface TopicValidatorFn {
|
|
|
152
152
|
(peer: PeerId, message: Message): TopicValidatorResult | Promise<TopicValidatorResult>
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
export interface PubSub<Events extends Record<string, any> = PubSubEvents> extends
|
|
155
|
+
export interface PubSub<Events extends Record<string, any> = PubSubEvents> extends TypedEventTarget<Events> {
|
|
156
156
|
/**
|
|
157
157
|
* The global signature policy controls whether or not we sill send and receive
|
|
158
158
|
* signed or unsigned messages.
|
package/src/topology/index.ts
CHANGED
|
@@ -5,6 +5,21 @@ export interface Topology {
|
|
|
5
5
|
min?: number
|
|
6
6
|
max?: number
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* If true, invoke `onConnect` for this topology on transient (e.g. short-lived
|
|
10
|
+
* and/or data-limited) connections. (default: false)
|
|
11
|
+
*/
|
|
12
|
+
notifyOnTransient?: boolean
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Invoked when a new connection is opened to a peer that supports the
|
|
16
|
+
* registered protocol
|
|
17
|
+
*/
|
|
8
18
|
onConnect?(peerId: PeerId, conn: Connection): void
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Invoked when the last connection to a peer that supports the registered
|
|
22
|
+
* protocol closes
|
|
23
|
+
*/
|
|
9
24
|
onDisconnect?(peerId: PeerId): void
|
|
10
25
|
}
|
package/src/transport/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Connection, MultiaddrConnection } from '../connection/index.js'
|
|
2
|
-
import type {
|
|
2
|
+
import type { TypedEventTarget } from '../events.js'
|
|
3
3
|
import type { AbortOptions } from '../index.js'
|
|
4
4
|
import type { StreamMuxerFactory } from '../stream-muxer/index.js'
|
|
5
5
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
@@ -11,7 +11,7 @@ export interface ListenerEvents {
|
|
|
11
11
|
'close': CustomEvent
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export interface Listener extends
|
|
14
|
+
export interface Listener extends TypedEventTarget<ListenerEvents> {
|
|
15
15
|
/**
|
|
16
16
|
* Start a listener
|
|
17
17
|
*/
|