libp2p 0.41.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +5 -4
  2. package/dist/index.min.js +58 -0
  3. package/dist/src/address-manager/index.d.ts +8 -0
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/circuit/index.d.ts +11 -1
  7. package/dist/src/circuit/index.d.ts.map +1 -1
  8. package/dist/src/circuit/index.js.map +1 -1
  9. package/dist/src/circuit/transport.d.ts +1 -1
  10. package/dist/src/circuit/transport.d.ts.map +1 -1
  11. package/dist/src/config.js +1 -1
  12. package/dist/src/config.js.map +1 -1
  13. package/dist/src/connection-manager/index.d.ts +9 -28
  14. package/dist/src/connection-manager/index.d.ts.map +1 -1
  15. package/dist/src/connection-manager/index.js +23 -12
  16. package/dist/src/connection-manager/index.js.map +1 -1
  17. package/dist/src/fetch/index.d.ts +14 -0
  18. package/dist/src/fetch/index.d.ts.map +1 -1
  19. package/dist/src/fetch/index.js +14 -0
  20. package/dist/src/fetch/index.js.map +1 -1
  21. package/dist/src/identify/index.d.ts +4 -1
  22. package/dist/src/identify/index.d.ts.map +1 -1
  23. package/dist/src/index.d.ts +123 -137
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +34 -0
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/insecure/index.d.ts +23 -0
  28. package/dist/src/insecure/index.d.ts.map +1 -1
  29. package/dist/src/insecure/index.js +23 -0
  30. package/dist/src/insecure/index.js.map +1 -1
  31. package/dist/src/keychain/index.d.ts +2 -2
  32. package/dist/src/keychain/index.d.ts.map +1 -1
  33. package/dist/src/libp2p.d.ts +5 -2
  34. package/dist/src/libp2p.d.ts.map +1 -1
  35. package/dist/src/libp2p.js +16 -0
  36. package/dist/src/libp2p.js.map +1 -1
  37. package/dist/src/nat-manager.d.ts.map +1 -1
  38. package/dist/src/nat-manager.js +5 -1
  39. package/dist/src/nat-manager.js.map +1 -1
  40. package/dist/src/peer-routing.d.ts +1 -1
  41. package/dist/src/peer-routing.d.ts.map +1 -1
  42. package/dist/src/peer-routing.js +1 -1
  43. package/dist/src/peer-routing.js.map +1 -1
  44. package/dist/src/pnet/index.d.ts +23 -0
  45. package/dist/src/pnet/index.d.ts.map +1 -1
  46. package/dist/src/pnet/index.js +23 -0
  47. package/dist/src/pnet/index.js.map +1 -1
  48. package/dist/src/pnet/key-generator.d.ts +3 -2
  49. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  50. package/dist/src/pnet/key-generator.js +7 -10
  51. package/dist/src/pnet/key-generator.js.map +1 -1
  52. package/dist/src/transport-manager.d.ts +1 -13
  53. package/dist/src/transport-manager.d.ts.map +1 -1
  54. package/dist/src/transport-manager.js +1 -14
  55. package/dist/src/transport-manager.js.map +1 -1
  56. package/package.json +30 -32
  57. package/src/address-manager/index.ts +8 -0
  58. package/src/circuit/index.ts +13 -1
  59. package/src/circuit/transport.ts +1 -1
  60. package/src/config.ts +1 -1
  61. package/src/connection-manager/index.ts +49 -56
  62. package/src/fetch/README.md +7 -2
  63. package/src/fetch/index.ts +14 -0
  64. package/src/identify/index.ts +1 -1
  65. package/src/index.ts +130 -149
  66. package/src/insecure/index.ts +24 -0
  67. package/src/keychain/index.ts +2 -2
  68. package/src/libp2p.ts +22 -2
  69. package/src/nat-manager.ts +6 -1
  70. package/src/peer-routing.ts +2 -2
  71. package/src/pnet/README.md +31 -29
  72. package/src/pnet/index.ts +24 -0
  73. package/src/pnet/key-generator.ts +7 -12
  74. package/src/transport-manager.ts +1 -15
  75. package/src/version.ts +1 -1
@@ -1,184 +1,151 @@
1
- import type { AbortOptions, RecursivePartial } from '@libp2p/interfaces';
2
- import type { EventEmitter } from '@libp2p/interfaces/events';
3
- import type { Startable } from '@libp2p/interfaces/startable';
4
- import type { Multiaddr } from '@multiformats/multiaddr';
5
- import type { FaultTolerance } from './transport-manager.js';
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Use the `createLibp2p` function to create a libp2p node.
5
+ *
6
+ * @example
7
+ *
8
+ * ```typescript
9
+ * import { createLibp2p } from 'libp2p'
10
+ *
11
+ * const node = await createLibp2p({
12
+ * // ...other options
13
+ * })
14
+ * ```
15
+ */
16
+ import type { RecursivePartial } from '@libp2p/interfaces';
17
+ import type { TransportManagerInit } from './transport-manager.js';
6
18
  import type { IdentifyServiceInit } from './identify/index.js';
7
19
  import type { DualDHT } from '@libp2p/interface-dht';
8
20
  import type { Datastore } from 'interface-datastore';
9
- import type { PeerStore, PeerStoreInit } from '@libp2p/interface-peer-store';
21
+ import type { PeerStoreInit } from '@libp2p/interface-peer-store';
10
22
  import type { PeerId } from '@libp2p/interface-peer-id';
11
- import type { AutoRelayConfig, RelayAdvertiseConfig } from './circuit/index.js';
23
+ import type { RelayConfig } from './circuit/index.js';
12
24
  import type { PeerDiscovery } from '@libp2p/interface-peer-discovery';
13
- import type { Connection, ConnectionGater, ConnectionProtector, Stream } from '@libp2p/interface-connection';
25
+ import type { ConnectionGater, ConnectionProtector } from '@libp2p/interface-connection';
14
26
  import type { Transport } from '@libp2p/interface-transport';
15
27
  import type { StreamMuxerFactory } from '@libp2p/interface-stream-muxer';
16
28
  import type { ConnectionEncrypter } from '@libp2p/interface-connection-encrypter';
17
29
  import type { PeerRouting } from '@libp2p/interface-peer-routing';
18
30
  import type { ContentRouting } from '@libp2p/interface-content-routing';
19
31
  import type { PubSub } from '@libp2p/interface-pubsub';
20
- import type { Registrar, StreamHandler, StreamHandlerOptions } from '@libp2p/interface-registrar';
21
- import type { ConnectionManager } from '@libp2p/interface-connection-manager';
22
32
  import type { Metrics } from '@libp2p/interface-metrics';
23
33
  import type { PeerInfo } from '@libp2p/interface-peer-info';
24
- import type { KeyChain } from './keychain/index.js';
25
- import type { ConnectionManagerInit } from './connection-manager/index.js';
26
34
  import type { PingServiceInit } from './ping/index.js';
27
35
  import type { FetchServiceInit } from './fetch/index.js';
28
36
  import type { Components } from './components.js';
29
- export interface PersistentPeerStoreOptions {
30
- threshold?: number;
31
- }
32
- export interface DEKConfig {
33
- keyLength: number;
34
- iterationCount: number;
35
- salt: string;
36
- hash: string;
37
- }
38
- export interface KeychainConfig {
39
- pass?: string;
40
- dek?: DEKConfig;
41
- }
42
- export interface MetricsConfig {
43
- enabled?: boolean;
44
- }
45
- export interface HopConfig {
46
- enabled?: boolean;
47
- active?: boolean;
48
- timeout: number;
49
- }
50
- export interface RelayConfig {
51
- enabled: boolean;
52
- advertise: RelayAdvertiseConfig;
53
- hop: HopConfig;
54
- autoRelay: AutoRelayConfig;
55
- }
56
- export interface NatManagerConfig {
57
- enabled: boolean;
58
- externalAddress?: string;
59
- localAddress?: string;
60
- description?: string;
61
- ttl?: number;
62
- keepAlive: boolean;
63
- gateway?: string;
64
- }
65
- export interface AddressesConfig {
66
- listen: string[];
67
- announce: string[];
68
- noAnnounce: string[];
69
- announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
70
- }
71
- export interface TransportManagerConfig {
72
- faultTolerance?: FaultTolerance;
73
- }
74
- export interface PeerStoreConfig {
75
- persistence?: boolean;
76
- threshold?: number;
77
- }
78
- export interface PeerRoutingConfig {
79
- refreshManager: RefreshManagerConfig;
80
- }
81
- export interface RefreshManagerConfig {
82
- enabled?: boolean;
83
- interval: number;
84
- bootDelay: number;
85
- }
37
+ import type { Libp2p } from '@libp2p/interface-libp2p';
38
+ import type { KeyChainInit } from './keychain/index.js';
39
+ import type { NatManagerInit } from './nat-manager.js';
40
+ import type { AddressManagerInit } from './address-manager/index.js';
41
+ import type { PeerRoutingInit } from './peer-routing.js';
42
+ import type { ConnectionManagerInit } from './connection-manager/index.js';
43
+ /**
44
+ * For Libp2p configurations and modules details read the [Configuration Document](./CONFIGURATION.md).
45
+ */
86
46
  export interface Libp2pInit {
47
+ /**
48
+ * peerId instance (it will be created if not provided)
49
+ */
87
50
  peerId: PeerId;
88
- addresses: AddressesConfig;
51
+ /**
52
+ * Addresses for transport listening and to advertise to the network
53
+ */
54
+ addresses: AddressManagerInit;
55
+ /**
56
+ * libp2p Connection Manager configuration
57
+ */
89
58
  connectionManager: ConnectionManagerInit;
59
+ /**
60
+ * A connection gater can deny new connections based on user criteria
61
+ */
90
62
  connectionGater: Partial<ConnectionGater>;
91
- transportManager: TransportManagerConfig;
63
+ /**
64
+ * libp2p transport manager configuration
65
+ */
66
+ transportManager: TransportManagerInit;
67
+ /**
68
+ * An optional datastore to persist peer information, DHT records, etc.
69
+ *
70
+ * An in-memory datastore will be used if one is not provided.
71
+ */
92
72
  datastore: Datastore;
73
+ /**
74
+ * libp2p PeerStore configuration
75
+ */
93
76
  peerStore: PeerStoreInit;
94
- peerRouting: PeerRoutingConfig;
95
- keychain: KeychainConfig;
96
- nat: NatManagerConfig;
97
- relay: RelayConfig;
98
- identify: IdentifyServiceInit;
99
- ping: PingServiceInit;
100
- fetch: FetchServiceInit;
101
- transports: Array<(components: Components) => Transport>;
102
- streamMuxers?: Array<(components: Components) => StreamMuxerFactory>;
103
- connectionEncryption?: Array<(components: Components) => ConnectionEncrypter>;
104
- peerDiscovery?: Array<(components: Components) => PeerDiscovery>;
105
- peerRouters?: Array<(components: Components) => PeerRouting>;
106
- contentRouters?: Array<(components: Components) => ContentRouting>;
107
- dht?: (components: Components) => DualDHT;
108
- metrics?: (components: Components) => Metrics;
109
- pubsub?: (components: Components) => PubSub;
110
- connectionProtector?: (components: Components) => ConnectionProtector;
111
- }
112
- export interface Libp2pEvents {
113
- 'peer:discovery': CustomEvent<PeerInfo>;
114
- }
115
- export interface Libp2p extends Startable, EventEmitter<Libp2pEvents> {
116
- peerId: PeerId;
117
- peerStore: PeerStore;
118
- peerRouting: PeerRouting;
119
- contentRouting: ContentRouting;
120
- keychain: KeyChain;
121
- connectionManager: ConnectionManager;
122
- registrar: Registrar;
123
- metrics?: Metrics;
124
- pubsub: PubSub;
125
- dht: DualDHT;
126
- /**
127
- * Get a deduplicated list of peer advertising multiaddrs by concatenating
128
- * the listen addresses used by transports with any configured
129
- * announce addresses as well as observed addresses reported by peers.
130
- *
131
- * If Announce addrs are specified, configured listen addresses will be
132
- * ignored though observed addresses will still be included.
77
+ /**
78
+ * libp2p Peer routing service configuration
133
79
  */
134
- getMultiaddrs: () => Multiaddr[];
80
+ peerRouting: PeerRoutingInit;
135
81
  /**
136
- * Return a list of all connections this node has open, optionally filtering
137
- * by a PeerId
82
+ * keychain configuration
138
83
  */
139
- getConnections: (peerId?: PeerId) => Connection[];
84
+ keychain: KeyChainInit;
140
85
  /**
141
- * Return a list of all peers we currently have a connection open to
86
+ * The NAT manager controls uPNP hole punching
142
87
  */
143
- getPeers: () => PeerId[];
88
+ nat: NatManagerInit;
144
89
  /**
145
- * Dials to the provided peer. If successful, the known metadata of the
146
- * peer will be added to the nodes `peerStore`
90
+ * If configured as a relay this node will relay certain
91
+ * types of traffic for other peers
147
92
  */
148
- dial: (peer: PeerId | Multiaddr, options?: AbortOptions) => Promise<Connection>;
93
+ relay: RelayConfig;
149
94
  /**
150
- * Dials to the provided peer and tries to handshake with the given protocols in order.
151
- * If successful, the known metadata of the peer will be added to the nodes `peerStore`,
152
- * and the `MuxedStream` will be returned together with the successful negotiated protocol.
95
+ * libp2p identify protocol options
153
96
  */
154
- dialProtocol: (peer: PeerId | Multiaddr, protocols: string | string[], options?: AbortOptions) => Promise<Stream>;
97
+ identify: IdentifyServiceInit;
155
98
  /**
156
- * Disconnects all connections to the given `peer`
99
+ * libp2p ping protocol options
157
100
  */
158
- hangUp: (peer: PeerId | Multiaddr) => Promise<void>;
101
+ ping: PingServiceInit;
159
102
  /**
160
- * Registers the `handler` for each protocol
103
+ * libp2p fetch protocol options
161
104
  */
162
- handle: (protocol: string | string[], handler: StreamHandler, options?: StreamHandlerOptions) => Promise<void>;
105
+ fetch: FetchServiceInit;
163
106
  /**
164
- * Removes the handler for each protocol. The protocol
165
- * will no longer be supported on streams.
107
+ * An array that must include at least 1 compliant transport
166
108
  */
167
- unhandle: (protocols: string[] | string) => Promise<void>;
109
+ transports: Array<(components: Components) => Transport>;
110
+ streamMuxers?: Array<(components: Components) => StreamMuxerFactory>;
111
+ connectionEncryption?: Array<(components: Components) => ConnectionEncrypter>;
112
+ peerDiscovery?: Array<(components: Components) => PeerDiscovery>;
113
+ peerRouters?: Array<(components: Components) => PeerRouting>;
114
+ contentRouters?: Array<(components: Components) => ContentRouting>;
168
115
  /**
169
- * Pings the given peer in order to obtain the operation latency
116
+ * Pass a DHT implementation to enable DHT operations
170
117
  */
171
- ping: (peer: PeerId | Multiaddr, options?: AbortOptions) => Promise<number>;
118
+ dht?: (components: Components) => DualDHT;
172
119
  /**
173
- * Sends a request to fetch the value associated with the given key from the given peer.
120
+ * A Metrics implementation can be supplied to collect metrics on this node
174
121
  */
175
- fetch: (peer: PeerId | Multiaddr, key: string, options?: AbortOptions) => Promise<Uint8Array | null>;
122
+ metrics?: (components: Components) => Metrics;
176
123
  /**
177
- * Returns the public key for the passed PeerId. If the PeerId is of the 'RSA' type
178
- * this may mean searching the DHT if the key is not present in the KeyStore.
124
+ * If a PubSub implmentation is supplied, PubSub operations will become available
179
125
  */
180
- getPublicKey: (peer: PeerId, options?: AbortOptions) => Promise<Uint8Array>;
126
+ pubsub?: (components: Components) => PubSub;
127
+ /**
128
+ * A ConnectionProtector can be used to create a secure overlay on top of the network using pre-shared keys
129
+ */
130
+ connectionProtector?: (components: Components) => ConnectionProtector;
181
131
  }
132
+ /**
133
+ * Once you have a libp2p instance, you can listen to several events it emits, so that you can be notified of relevant network events.
134
+ */
135
+ export interface Libp2pEvents {
136
+ /**
137
+ * @example
138
+ *
139
+ * ```js
140
+ * libp2p.addEventListener('peer:discovery', (event) => {
141
+ * const peerInfo = event.detail
142
+ * // ...
143
+ * })
144
+ * ```
145
+ */
146
+ 'peer:discovery': CustomEvent<PeerInfo>;
147
+ }
148
+ export type { Libp2p };
182
149
  export type Libp2pOptions = RecursivePartial<Libp2pInit> & {
183
150
  start?: boolean;
184
151
  };
@@ -187,6 +154,25 @@ export type Libp2pOptions = RecursivePartial<Libp2pInit> & {
187
154
  * if one is not passed as part of the options.
188
155
  *
189
156
  * The node will be started unless `start: false` is passed as an option.
157
+ *
158
+ * @example
159
+ *
160
+ * ```js
161
+ * import { createLibp2p } from 'libp2p'
162
+ * import { tcp } from '@libp2p/tcp'
163
+ * import { mplex } from '@libp2p/mplex'
164
+ * import { noise } from '@chainsafe/libp2p-noise'
165
+ *
166
+ * // specify options
167
+ * const options = {
168
+ * transports: [tcp()],
169
+ * streamMuxers: [mplex()],
170
+ * connectionEncryption: [noise()]
171
+ * }
172
+ *
173
+ * // create libp2p
174
+ * const libp2p = await createLibp2p(options)
175
+ * ```
190
176
  */
191
177
  export declare function createLibp2p(options: Libp2pOptions): Promise<Libp2p>;
192
178
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,9 +1,43 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Use the `createLibp2p` function to create a libp2p node.
5
+ *
6
+ * @example
7
+ *
8
+ * ```typescript
9
+ * import { createLibp2p } from 'libp2p'
10
+ *
11
+ * const node = await createLibp2p({
12
+ * // ...other options
13
+ * })
14
+ * ```
15
+ */
1
16
  import { createLibp2pNode } from './libp2p.js';
2
17
  /**
3
18
  * Returns a new instance of the Libp2p interface, generating a new PeerId
4
19
  * if one is not passed as part of the options.
5
20
  *
6
21
  * The node will be started unless `start: false` is passed as an option.
22
+ *
23
+ * @example
24
+ *
25
+ * ```js
26
+ * import { createLibp2p } from 'libp2p'
27
+ * import { tcp } from '@libp2p/tcp'
28
+ * import { mplex } from '@libp2p/mplex'
29
+ * import { noise } from '@chainsafe/libp2p-noise'
30
+ *
31
+ * // specify options
32
+ * const options = {
33
+ * transports: [tcp()],
34
+ * streamMuxers: [mplex()],
35
+ * connectionEncryption: [noise()]
36
+ * }
37
+ *
38
+ * // create libp2p
39
+ * const libp2p = await createLibp2p(options)
40
+ * ```
7
41
  */
8
42
  export async function createLibp2p(options) {
9
43
  const node = await createLibp2pNode(options);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAoN9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,OAAsB;IACxD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE5C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;QAC3B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;KACnB;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA8J9C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,OAAsB;IACxD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE5C,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;QAC3B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;KACnB;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,3 +1,26 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * A connection encrypter that does no connection encryption.
5
+ *
6
+ * This should not be used in production should be used for research purposes only.
7
+ *
8
+ * @example
9
+ *
10
+ * ```typescript
11
+ * import { createLibp2p } from 'libp2p'
12
+ * import { plaintext } from 'libp2p/insecure'
13
+ *
14
+ * // Create a Uint8Array and write the swarm key to it
15
+ * const swarmKey = new Uint8Array(95)
16
+ * generateKey(swarmKey)
17
+ *
18
+ * const node = await createLibp2p({
19
+ * // ...other options
20
+ * connectionEncryption: [plaintext()]
21
+ * })
22
+ * ```
23
+ */
1
24
  import type { ConnectionEncrypter } from '@libp2p/interface-connection-encrypter';
2
25
  export declare function plaintext(): () => ConnectionEncrypter;
3
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/insecure/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,wCAAwC,CAAA;AAmGpG,wBAAgB,SAAS,IAAK,MAAM,mBAAmB,CAEtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/insecure/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,wCAAwC,CAAA;AAmGpG,wBAAgB,SAAS,IAAK,MAAM,mBAAmB,CAEtD"}
@@ -1,3 +1,26 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * A connection encrypter that does no connection encryption.
5
+ *
6
+ * This should not be used in production should be used for research purposes only.
7
+ *
8
+ * @example
9
+ *
10
+ * ```typescript
11
+ * import { createLibp2p } from 'libp2p'
12
+ * import { plaintext } from 'libp2p/insecure'
13
+ *
14
+ * // Create a Uint8Array and write the swarm key to it
15
+ * const swarmKey = new Uint8Array(95)
16
+ * generateKey(swarmKey)
17
+ *
18
+ * const node = await createLibp2p({
19
+ * // ...other options
20
+ * connectionEncryption: [plaintext()]
21
+ * })
22
+ * ```
23
+ */
1
24
  import { logger } from '@libp2p/logger';
2
25
  import { handshake } from 'it-handshake';
3
26
  import * as lp from 'it-length-prefixed';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/insecure/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/insecure/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { CMS } from './cms.js';
2
2
  import type { PeerId } from '@libp2p/interface-peer-id';
3
3
  import type { Startable } from '@libp2p/interfaces/dist/src/startable';
4
4
  import type { Datastore } from 'interface-datastore';
5
- export interface DekOptions {
5
+ export interface DEKConfig {
6
6
  hash: string;
7
7
  salt: string;
8
8
  iterationCount: number;
@@ -10,7 +10,7 @@ export interface DekOptions {
10
10
  }
11
11
  export interface KeyChainInit {
12
12
  pass?: string;
13
- dek?: DekOptions;
13
+ dek?: DEKConfig;
14
14
  }
15
15
  /**
16
16
  * Information about a key.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keychain/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAM9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,UAAU,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AA6DD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACU,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IA+B/D,SAAS;IAIH,KAAK;IAUX,IAAI;IAIJ;;;;;;;OAOG;IACH,IAAI,GAAG,QAUN;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAK,YAAY;IAOvC;;;;;OAKG;IACH,MAAM,KAAK,OAAO;;;;;;;MAEjB;IAED;;;;;;OAMG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0DtF;;;;OAIG;IACG,QAAQ;IAad;;OAEG;IACG,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD;;;;;OAKG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;;;;OAKG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM;IAc7B;;;;;;OAMG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCpE;;OAEG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IA6B/C;;;;;;;OAOG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD/E;;OAEG;IACG,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C/D;;OAEG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBnD;;OAEG;IACG,kBAAkB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAmD3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keychain/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAM9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AA6DD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACU,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IA+B/D,SAAS;IAIH,KAAK;IAUX,IAAI;IAIJ;;;;;;;OAOG;IACH,IAAI,GAAG,QAUN;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAK,YAAY;IAOvC;;;;;OAKG;IACH,MAAM,KAAK,OAAO;;;;;;;MAEjB;IAED;;;;;;OAMG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0DtF;;;;OAIG;IACG,QAAQ;IAad;;OAEG;IACG,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD;;;;;OAKG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;;;;OAKG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM;IAc7B;;;;;;OAMG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCpE;;OAEG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IA6B/C;;;;;;;OAOG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD/E;;OAEG;IACG,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C/D;;OAEG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBnD;;OAEG;IACG,kBAAkB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAmD3D"}
@@ -11,7 +11,7 @@ import type { Connection } from '@libp2p/interface-connection';
11
11
  import type { PeerRouting } from '@libp2p/interface-peer-routing';
12
12
  import type { ContentRouting } from '@libp2p/interface-content-routing';
13
13
  import type { PubSub } from '@libp2p/interface-pubsub';
14
- import type { Registrar, StreamHandler, StreamHandlerOptions } from '@libp2p/interface-registrar';
14
+ import type { Registrar, StreamHandler, StreamHandlerOptions, Topology } from '@libp2p/interface-registrar';
15
15
  import type { ConnectionManager } from '@libp2p/interface-connection-manager';
16
16
  import type { PeerInfo } from '@libp2p/interface-peer-info';
17
17
  import type { Libp2p, Libp2pEvents, Libp2pInit, Libp2pOptions } from './index.js';
@@ -22,7 +22,7 @@ export declare class Libp2pNode extends EventEmitter<Libp2pEvents> implements Li
22
22
  peerId: PeerId;
23
23
  dht: DualDHT;
24
24
  pubsub: PubSub;
25
- identifyService?: IdentifyService;
25
+ identifyService: IdentifyService;
26
26
  fetchService: FetchService;
27
27
  pingService: PingService;
28
28
  components: Components;
@@ -51,6 +51,7 @@ export declare class Libp2pNode extends EventEmitter<Libp2pEvents> implements Li
51
51
  dial(peer: PeerId | Multiaddr, options?: AbortOptions): Promise<Connection>;
52
52
  dialProtocol(peer: PeerId | Multiaddr, protocols: string | string[], options?: AbortOptions): Promise<import("@libp2p/interface-connection").Stream>;
53
53
  getMultiaddrs(): Multiaddr[];
54
+ getProtocols(): string[];
54
55
  hangUp(peer: PeerId | Multiaddr): Promise<void>;
55
56
  /**
56
57
  * Get the public key for the given peer id
@@ -60,6 +61,8 @@ export declare class Libp2pNode extends EventEmitter<Libp2pEvents> implements Li
60
61
  ping(peer: PeerId | Multiaddr, options?: AbortOptions): Promise<number>;
61
62
  handle(protocols: string | string[], handler: StreamHandler, options?: StreamHandlerOptions): Promise<void>;
62
63
  unhandle(protocols: string[] | string): Promise<void>;
64
+ register(protocol: string, topology: Topology): Promise<string>;
65
+ unregister(id: string): void;
63
66
  /**
64
67
  * Called whenever peer discovery services emit `peer` events.
65
68
  * Known peers may be emitted.
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}
@@ -86,6 +86,13 @@ export class Libp2pNode extends EventEmitter {
86
86
  this.components.dialer = new DefaultDialer(this.components, init.connectionManager);
87
87
  // Create the Connection Manager
88
88
  this.connectionManager = this.components.connectionManager = new DefaultConnectionManager(this.components, init.connectionManager);
89
+ // forward connection manager events
90
+ this.components.connectionManager.addEventListener('peer:disconnect', (event) => {
91
+ this.dispatchEvent(new CustomEvent('peer:disconnect', { detail: event.detail }));
92
+ });
93
+ this.components.connectionManager.addEventListener('peer:connect', (event) => {
94
+ this.dispatchEvent(new CustomEvent('peer:connect', { detail: event.detail }));
95
+ });
89
96
  // Create the Registrar
90
97
  this.registrar = this.components.registrar = new DefaultRegistrar(this.components);
91
98
  // Setup the transport manager
@@ -263,6 +270,9 @@ export class Libp2pNode extends EventEmitter {
263
270
  getMultiaddrs() {
264
271
  return this.components.addressManager.getAddresses();
265
272
  }
273
+ getProtocols() {
274
+ return this.components.registrar.getProtocols();
275
+ }
266
276
  async hangUp(peer) {
267
277
  const { id } = getPeer(peer);
268
278
  await this.components.connectionManager.closeConnections(id);
@@ -326,6 +336,12 @@ export class Libp2pNode extends EventEmitter {
326
336
  await this.components.registrar.unhandle(protocol);
327
337
  }));
328
338
  }
339
+ async register(protocol, topology) {
340
+ return await this.registrar.register(protocol, topology);
341
+ }
342
+ unregister(id) {
343
+ this.registrar.unregister(id);
344
+ }
329
345
  /**
330
346
  * Called whenever peer discovery services emit `peer` events.
331
347
  * Known peers may be emitted.