libp2p 0.36.2-64bfcee → 0.36.2-a15254f

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 (148) hide show
  1. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  2. package/dist/src/circuit/auto-relay.js +7 -6
  3. package/dist/src/circuit/auto-relay.js.map +1 -1
  4. package/dist/src/circuit/circuit/hop.d.ts +4 -4
  5. package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
  6. package/dist/src/circuit/circuit/hop.js +5 -5
  7. package/dist/src/circuit/circuit/hop.js.map +1 -1
  8. package/dist/src/circuit/circuit/stop.d.ts +3 -3
  9. package/dist/src/circuit/circuit/stop.d.ts.map +1 -1
  10. package/dist/src/circuit/circuit/stop.js.map +1 -1
  11. package/dist/src/circuit/circuit/stream-handler.d.ts +4 -4
  12. package/dist/src/circuit/circuit/stream-handler.d.ts.map +1 -1
  13. package/dist/src/circuit/circuit/stream-handler.js +2 -3
  14. package/dist/src/circuit/circuit/stream-handler.js.map +1 -1
  15. package/dist/src/circuit/circuit/utils.d.ts +2 -2
  16. package/dist/src/circuit/circuit/utils.d.ts.map +1 -1
  17. package/dist/src/circuit/circuit/utils.js.map +1 -1
  18. package/dist/src/circuit/listener.d.ts +3 -3
  19. package/dist/src/circuit/listener.d.ts.map +1 -1
  20. package/dist/src/circuit/listener.js +9 -1
  21. package/dist/src/circuit/listener.js.map +1 -1
  22. package/dist/src/circuit/pb/index.d.ts +42 -164
  23. package/dist/src/circuit/pb/index.d.ts.map +1 -0
  24. package/dist/src/circuit/pb/index.js +67 -523
  25. package/dist/src/circuit/pb/index.js.map +1 -0
  26. package/dist/src/circuit/transport.d.ts.map +1 -1
  27. package/dist/src/circuit/transport.js +6 -4
  28. package/dist/src/circuit/transport.js.map +1 -1
  29. package/dist/src/config.d.ts.map +1 -1
  30. package/dist/src/config.js +5 -7
  31. package/dist/src/config.js.map +1 -1
  32. package/dist/src/connection-manager/auto-dialler.js +4 -4
  33. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  34. package/dist/src/{dialer → connection-manager/dialer}/auto-dialer.d.ts +2 -0
  35. package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +1 -0
  36. package/dist/src/connection-manager/dialer/auto-dialer.js +37 -0
  37. package/dist/src/connection-manager/dialer/auto-dialer.js.map +1 -0
  38. package/dist/src/{dialer → connection-manager/dialer}/dial-request.d.ts +2 -2
  39. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -0
  40. package/dist/src/{dialer → connection-manager/dialer}/dial-request.js +1 -1
  41. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -0
  42. package/dist/src/{dialer → connection-manager/dialer}/index.d.ts +35 -7
  43. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -0
  44. package/dist/src/{dialer → connection-manager/dialer}/index.js +10 -24
  45. package/dist/src/connection-manager/dialer/index.js.map +1 -0
  46. package/dist/src/connection-manager/index.d.ts +55 -26
  47. package/dist/src/connection-manager/index.d.ts.map +1 -1
  48. package/dist/src/connection-manager/index.js +78 -40
  49. package/dist/src/connection-manager/index.js.map +1 -1
  50. package/dist/src/dht/dummy-dht.d.ts +17 -0
  51. package/dist/src/dht/dummy-dht.d.ts.map +1 -0
  52. package/dist/src/dht/dummy-dht.js +39 -0
  53. package/dist/src/dht/dummy-dht.js.map +1 -0
  54. package/dist/src/errors.d.ts +2 -0
  55. package/dist/src/errors.d.ts.map +1 -1
  56. package/dist/src/errors.js +2 -0
  57. package/dist/src/errors.js.map +1 -1
  58. package/dist/src/fetch/index.d.ts.map +1 -1
  59. package/dist/src/fetch/index.js +6 -7
  60. package/dist/src/fetch/index.js.map +1 -1
  61. package/dist/src/fetch/pb/proto.d.ts +20 -128
  62. package/dist/src/fetch/pb/proto.d.ts.map +1 -0
  63. package/dist/src/fetch/pb/proto.js +44 -331
  64. package/dist/src/fetch/pb/proto.js.map +1 -0
  65. package/dist/src/identify/index.d.ts +4 -2
  66. package/dist/src/identify/index.d.ts.map +1 -1
  67. package/dist/src/identify/index.js +12 -12
  68. package/dist/src/identify/index.js.map +1 -1
  69. package/dist/src/identify/pb/message.d.ts +13 -108
  70. package/dist/src/identify/pb/message.d.ts.map +1 -0
  71. package/dist/src/identify/pb/message.js +21 -366
  72. package/dist/src/identify/pb/message.js.map +1 -0
  73. package/dist/src/index.d.ts +11 -25
  74. package/dist/src/index.d.ts.map +1 -1
  75. package/dist/src/index.js.map +1 -1
  76. package/dist/src/insecure/index.d.ts.map +1 -1
  77. package/dist/src/insecure/index.js +5 -2
  78. package/dist/src/insecure/index.js.map +1 -1
  79. package/dist/src/insecure/pb/proto.d.ts +24 -130
  80. package/dist/src/insecure/pb/proto.d.ts.map +1 -0
  81. package/dist/src/insecure/pb/proto.js +46 -388
  82. package/dist/src/insecure/pb/proto.js.map +1 -0
  83. package/dist/src/keychain/index.d.ts +3 -3
  84. package/dist/src/keychain/index.js +2 -2
  85. package/dist/src/keychain/util.d.ts +1 -1
  86. package/dist/src/keychain/util.d.ts.map +1 -1
  87. package/dist/src/libp2p.d.ts +5 -4
  88. package/dist/src/libp2p.d.ts.map +1 -1
  89. package/dist/src/libp2p.js +69 -45
  90. package/dist/src/libp2p.js.map +1 -1
  91. package/dist/src/metrics/stats.d.ts +1 -5
  92. package/dist/src/metrics/stats.d.ts.map +1 -1
  93. package/dist/src/metrics/stats.js.map +1 -1
  94. package/dist/src/ping/index.d.ts.map +1 -1
  95. package/dist/src/ping/index.js +2 -1
  96. package/dist/src/ping/index.js.map +1 -1
  97. package/dist/src/pubsub/dummy-pubsub.d.ts +17 -0
  98. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -0
  99. package/dist/src/pubsub/dummy-pubsub.js +37 -0
  100. package/dist/src/pubsub/dummy-pubsub.js.map +1 -0
  101. package/dist/src/registrar.js +1 -1
  102. package/dist/src/registrar.js.map +1 -1
  103. package/package.json +46 -44
  104. package/src/circuit/auto-relay.ts +8 -6
  105. package/src/circuit/circuit/hop.ts +9 -9
  106. package/src/circuit/circuit/stop.ts +3 -3
  107. package/src/circuit/circuit/stream-handler.ts +5 -6
  108. package/src/circuit/circuit/utils.ts +2 -2
  109. package/src/circuit/listener.ts +17 -4
  110. package/src/circuit/pb/index.proto +1 -1
  111. package/src/circuit/pb/index.ts +88 -0
  112. package/src/circuit/transport.ts +7 -4
  113. package/src/config.ts +5 -7
  114. package/src/connection-manager/auto-dialler.ts +4 -4
  115. package/src/{dialer → connection-manager/dialer}/auto-dialer.ts +23 -4
  116. package/src/{dialer → connection-manager/dialer}/dial-request.ts +4 -4
  117. package/src/{dialer → connection-manager/dialer}/index.ts +46 -39
  118. package/src/connection-manager/index.ts +143 -59
  119. package/src/dht/dummy-dht.ts +51 -0
  120. package/src/errors.ts +2 -0
  121. package/src/fetch/index.ts +7 -8
  122. package/src/fetch/pb/proto.ts +58 -0
  123. package/src/identify/index.ts +14 -14
  124. package/src/identify/pb/message.ts +36 -0
  125. package/src/index.ts +12 -30
  126. package/src/insecure/index.ts +8 -4
  127. package/src/insecure/pb/proto.ts +61 -0
  128. package/src/keychain/index.ts +2 -2
  129. package/src/libp2p.ts +81 -54
  130. package/src/metrics/stats.ts +1 -6
  131. package/src/ping/index.ts +2 -1
  132. package/src/pubsub/dummy-pubsub.ts +51 -0
  133. package/src/registrar.ts +1 -1
  134. package/dist/src/dialer/auto-dialer.d.ts.map +0 -1
  135. package/dist/src/dialer/auto-dialer.js +0 -24
  136. package/dist/src/dialer/auto-dialer.js.map +0 -1
  137. package/dist/src/dialer/dial-request.d.ts.map +0 -1
  138. package/dist/src/dialer/dial-request.js.map +0 -1
  139. package/dist/src/dialer/index.d.ts.map +0 -1
  140. package/dist/src/dialer/index.js.map +0 -1
  141. package/src/circuit/pb/index.d.ts +0 -173
  142. package/src/circuit/pb/index.js +0 -528
  143. package/src/fetch/pb/proto.d.ts +0 -134
  144. package/src/fetch/pb/proto.js +0 -331
  145. package/src/identify/pb/message.d.ts +0 -110
  146. package/src/identify/pb/message.js +0 -369
  147. package/src/insecure/pb/proto.d.ts +0 -134
  148. package/src/insecure/pb/proto.js +0 -388
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/identify/pb/message.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,gBAAgB,CAAC,EAAE,UAAU,CAAA;CAC9B;AAED,yBAAiB,QAAQ,CAAC;IACjB,MAAM,KAAK,iDAUjB,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,KAAG,UAEtC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,QAExC,CAAA;CACF"}
@@ -1,369 +1,24 @@
1
- /*eslint-disable*/
2
- import $protobuf from "protobufjs/minimal.js";
3
-
4
- // Common aliases
5
- const $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
6
-
7
- // Exported root namespace
8
- const $root = $protobuf.roots["libp2p-identify"] || ($protobuf.roots["libp2p-identify"] = {});
9
-
10
- export const Identify = $root.Identify = (() => {
11
-
12
- /**
13
- * Properties of an Identify.
14
- * @exports IIdentify
15
- * @interface IIdentify
16
- * @property {string|null} [protocolVersion] Identify protocolVersion
17
- * @property {string|null} [agentVersion] Identify agentVersion
18
- * @property {Uint8Array|null} [publicKey] Identify publicKey
19
- * @property {Array.<Uint8Array>|null} [listenAddrs] Identify listenAddrs
20
- * @property {Uint8Array|null} [observedAddr] Identify observedAddr
21
- * @property {Array.<string>|null} [protocols] Identify protocols
22
- * @property {Uint8Array|null} [signedPeerRecord] Identify signedPeerRecord
23
- */
24
-
25
- /**
26
- * Constructs a new Identify.
27
- * @exports Identify
28
- * @classdesc Represents an Identify.
29
- * @implements IIdentify
30
- * @constructor
31
- * @param {IIdentify=} [p] Properties to set
32
- */
33
- function Identify(p) {
34
- this.listenAddrs = [];
35
- this.protocols = [];
36
- if (p)
37
- for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)
38
- if (p[ks[i]] != null)
39
- this[ks[i]] = p[ks[i]];
40
- }
41
-
42
- /**
43
- * Identify protocolVersion.
44
- * @member {string|null|undefined} protocolVersion
45
- * @memberof Identify
46
- * @instance
47
- */
48
- Identify.prototype.protocolVersion = null;
49
-
50
- /**
51
- * Identify agentVersion.
52
- * @member {string|null|undefined} agentVersion
53
- * @memberof Identify
54
- * @instance
55
- */
56
- Identify.prototype.agentVersion = null;
57
-
58
- /**
59
- * Identify publicKey.
60
- * @member {Uint8Array|null|undefined} publicKey
61
- * @memberof Identify
62
- * @instance
63
- */
64
- Identify.prototype.publicKey = null;
65
-
66
- /**
67
- * Identify listenAddrs.
68
- * @member {Array.<Uint8Array>} listenAddrs
69
- * @memberof Identify
70
- * @instance
71
- */
72
- Identify.prototype.listenAddrs = $util.emptyArray;
73
-
74
- /**
75
- * Identify observedAddr.
76
- * @member {Uint8Array|null|undefined} observedAddr
77
- * @memberof Identify
78
- * @instance
79
- */
80
- Identify.prototype.observedAddr = null;
81
-
82
- /**
83
- * Identify protocols.
84
- * @member {Array.<string>} protocols
85
- * @memberof Identify
86
- * @instance
87
- */
88
- Identify.prototype.protocols = $util.emptyArray;
89
-
90
- /**
91
- * Identify signedPeerRecord.
92
- * @member {Uint8Array|null|undefined} signedPeerRecord
93
- * @memberof Identify
94
- * @instance
95
- */
96
- Identify.prototype.signedPeerRecord = null;
97
-
98
- // OneOf field names bound to virtual getters and setters
99
- let $oneOfFields;
100
-
101
- /**
102
- * Identify _protocolVersion.
103
- * @member {"protocolVersion"|undefined} _protocolVersion
104
- * @memberof Identify
105
- * @instance
106
- */
107
- Object.defineProperty(Identify.prototype, "_protocolVersion", {
108
- get: $util.oneOfGetter($oneOfFields = ["protocolVersion"]),
109
- set: $util.oneOfSetter($oneOfFields)
110
- });
111
-
112
- /**
113
- * Identify _agentVersion.
114
- * @member {"agentVersion"|undefined} _agentVersion
115
- * @memberof Identify
116
- * @instance
117
- */
118
- Object.defineProperty(Identify.prototype, "_agentVersion", {
119
- get: $util.oneOfGetter($oneOfFields = ["agentVersion"]),
120
- set: $util.oneOfSetter($oneOfFields)
121
- });
122
-
123
- /**
124
- * Identify _publicKey.
125
- * @member {"publicKey"|undefined} _publicKey
126
- * @memberof Identify
127
- * @instance
128
- */
129
- Object.defineProperty(Identify.prototype, "_publicKey", {
130
- get: $util.oneOfGetter($oneOfFields = ["publicKey"]),
131
- set: $util.oneOfSetter($oneOfFields)
132
- });
133
-
134
- /**
135
- * Identify _observedAddr.
136
- * @member {"observedAddr"|undefined} _observedAddr
137
- * @memberof Identify
138
- * @instance
139
- */
140
- Object.defineProperty(Identify.prototype, "_observedAddr", {
141
- get: $util.oneOfGetter($oneOfFields = ["observedAddr"]),
142
- set: $util.oneOfSetter($oneOfFields)
143
- });
144
-
145
- /**
146
- * Identify _signedPeerRecord.
147
- * @member {"signedPeerRecord"|undefined} _signedPeerRecord
148
- * @memberof Identify
149
- * @instance
150
- */
151
- Object.defineProperty(Identify.prototype, "_signedPeerRecord", {
152
- get: $util.oneOfGetter($oneOfFields = ["signedPeerRecord"]),
153
- set: $util.oneOfSetter($oneOfFields)
154
- });
155
-
156
- /**
157
- * Encodes the specified Identify message. Does not implicitly {@link Identify.verify|verify} messages.
158
- * @function encode
159
- * @memberof Identify
160
- * @static
161
- * @param {IIdentify} m Identify message or plain object to encode
162
- * @param {$protobuf.Writer} [w] Writer to encode to
163
- * @returns {$protobuf.Writer} Writer
164
- */
165
- Identify.encode = function encode(m, w) {
166
- if (!w)
167
- w = $Writer.create();
168
- if (m.publicKey != null && Object.hasOwnProperty.call(m, "publicKey"))
169
- w.uint32(10).bytes(m.publicKey);
170
- if (m.listenAddrs != null && m.listenAddrs.length) {
171
- for (var i = 0; i < m.listenAddrs.length; ++i)
172
- w.uint32(18).bytes(m.listenAddrs[i]);
173
- }
174
- if (m.protocols != null && m.protocols.length) {
175
- for (var i = 0; i < m.protocols.length; ++i)
176
- w.uint32(26).string(m.protocols[i]);
177
- }
178
- if (m.observedAddr != null && Object.hasOwnProperty.call(m, "observedAddr"))
179
- w.uint32(34).bytes(m.observedAddr);
180
- if (m.protocolVersion != null && Object.hasOwnProperty.call(m, "protocolVersion"))
181
- w.uint32(42).string(m.protocolVersion);
182
- if (m.agentVersion != null && Object.hasOwnProperty.call(m, "agentVersion"))
183
- w.uint32(50).string(m.agentVersion);
184
- if (m.signedPeerRecord != null && Object.hasOwnProperty.call(m, "signedPeerRecord"))
185
- w.uint32(66).bytes(m.signedPeerRecord);
186
- return w;
1
+ /* eslint-disable import/export */
2
+ /* eslint-disable @typescript-eslint/no-namespace */
3
+ import { encodeMessage, decodeMessage, message, string, bytes } from 'protons-runtime';
4
+ export var Identify;
5
+ (function (Identify) {
6
+ Identify.codec = () => {
7
+ return message({
8
+ 5: { name: 'protocolVersion', codec: string, optional: true },
9
+ 6: { name: 'agentVersion', codec: string, optional: true },
10
+ 1: { name: 'publicKey', codec: bytes, optional: true },
11
+ 2: { name: 'listenAddrs', codec: bytes, repeats: true },
12
+ 4: { name: 'observedAddr', codec: bytes, optional: true },
13
+ 3: { name: 'protocols', codec: string, repeats: true },
14
+ 8: { name: 'signedPeerRecord', codec: bytes, optional: true }
15
+ });
187
16
  };
188
-
189
- /**
190
- * Decodes an Identify message from the specified reader or buffer.
191
- * @function decode
192
- * @memberof Identify
193
- * @static
194
- * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
195
- * @param {number} [l] Message length if known beforehand
196
- * @returns {Identify} Identify
197
- * @throws {Error} If the payload is not a reader or valid buffer
198
- * @throws {$protobuf.util.ProtocolError} If required fields are missing
199
- */
200
- Identify.decode = function decode(r, l) {
201
- if (!(r instanceof $Reader))
202
- r = $Reader.create(r);
203
- var c = l === undefined ? r.len : r.pos + l, m = new $root.Identify();
204
- while (r.pos < c) {
205
- var t = r.uint32();
206
- switch (t >>> 3) {
207
- case 5:
208
- m.protocolVersion = r.string();
209
- break;
210
- case 6:
211
- m.agentVersion = r.string();
212
- break;
213
- case 1:
214
- m.publicKey = r.bytes();
215
- break;
216
- case 2:
217
- if (!(m.listenAddrs && m.listenAddrs.length))
218
- m.listenAddrs = [];
219
- m.listenAddrs.push(r.bytes());
220
- break;
221
- case 4:
222
- m.observedAddr = r.bytes();
223
- break;
224
- case 3:
225
- if (!(m.protocols && m.protocols.length))
226
- m.protocols = [];
227
- m.protocols.push(r.string());
228
- break;
229
- case 8:
230
- m.signedPeerRecord = r.bytes();
231
- break;
232
- default:
233
- r.skipType(t & 7);
234
- break;
235
- }
236
- }
237
- return m;
17
+ Identify.encode = (obj) => {
18
+ return encodeMessage(obj, Identify.codec());
238
19
  };
239
-
240
- /**
241
- * Creates an Identify message from a plain object. Also converts values to their respective internal types.
242
- * @function fromObject
243
- * @memberof Identify
244
- * @static
245
- * @param {Object.<string,*>} d Plain object
246
- * @returns {Identify} Identify
247
- */
248
- Identify.fromObject = function fromObject(d) {
249
- if (d instanceof $root.Identify)
250
- return d;
251
- var m = new $root.Identify();
252
- if (d.protocolVersion != null) {
253
- m.protocolVersion = String(d.protocolVersion);
254
- }
255
- if (d.agentVersion != null) {
256
- m.agentVersion = String(d.agentVersion);
257
- }
258
- if (d.publicKey != null) {
259
- if (typeof d.publicKey === "string")
260
- $util.base64.decode(d.publicKey, m.publicKey = $util.newBuffer($util.base64.length(d.publicKey)), 0);
261
- else if (d.publicKey.length)
262
- m.publicKey = d.publicKey;
263
- }
264
- if (d.listenAddrs) {
265
- if (!Array.isArray(d.listenAddrs))
266
- throw TypeError(".Identify.listenAddrs: array expected");
267
- m.listenAddrs = [];
268
- for (var i = 0; i < d.listenAddrs.length; ++i) {
269
- if (typeof d.listenAddrs[i] === "string")
270
- $util.base64.decode(d.listenAddrs[i], m.listenAddrs[i] = $util.newBuffer($util.base64.length(d.listenAddrs[i])), 0);
271
- else if (d.listenAddrs[i].length)
272
- m.listenAddrs[i] = d.listenAddrs[i];
273
- }
274
- }
275
- if (d.observedAddr != null) {
276
- if (typeof d.observedAddr === "string")
277
- $util.base64.decode(d.observedAddr, m.observedAddr = $util.newBuffer($util.base64.length(d.observedAddr)), 0);
278
- else if (d.observedAddr.length)
279
- m.observedAddr = d.observedAddr;
280
- }
281
- if (d.protocols) {
282
- if (!Array.isArray(d.protocols))
283
- throw TypeError(".Identify.protocols: array expected");
284
- m.protocols = [];
285
- for (var i = 0; i < d.protocols.length; ++i) {
286
- m.protocols[i] = String(d.protocols[i]);
287
- }
288
- }
289
- if (d.signedPeerRecord != null) {
290
- if (typeof d.signedPeerRecord === "string")
291
- $util.base64.decode(d.signedPeerRecord, m.signedPeerRecord = $util.newBuffer($util.base64.length(d.signedPeerRecord)), 0);
292
- else if (d.signedPeerRecord.length)
293
- m.signedPeerRecord = d.signedPeerRecord;
294
- }
295
- return m;
20
+ Identify.decode = (buf) => {
21
+ return decodeMessage(buf, Identify.codec());
296
22
  };
297
-
298
- /**
299
- * Creates a plain object from an Identify message. Also converts values to other types if specified.
300
- * @function toObject
301
- * @memberof Identify
302
- * @static
303
- * @param {Identify} m Identify
304
- * @param {$protobuf.IConversionOptions} [o] Conversion options
305
- * @returns {Object.<string,*>} Plain object
306
- */
307
- Identify.toObject = function toObject(m, o) {
308
- if (!o)
309
- o = {};
310
- var d = {};
311
- if (o.arrays || o.defaults) {
312
- d.listenAddrs = [];
313
- d.protocols = [];
314
- }
315
- if (m.publicKey != null && m.hasOwnProperty("publicKey")) {
316
- d.publicKey = o.bytes === String ? $util.base64.encode(m.publicKey, 0, m.publicKey.length) : o.bytes === Array ? Array.prototype.slice.call(m.publicKey) : m.publicKey;
317
- if (o.oneofs)
318
- d._publicKey = "publicKey";
319
- }
320
- if (m.listenAddrs && m.listenAddrs.length) {
321
- d.listenAddrs = [];
322
- for (var j = 0; j < m.listenAddrs.length; ++j) {
323
- d.listenAddrs[j] = o.bytes === String ? $util.base64.encode(m.listenAddrs[j], 0, m.listenAddrs[j].length) : o.bytes === Array ? Array.prototype.slice.call(m.listenAddrs[j]) : m.listenAddrs[j];
324
- }
325
- }
326
- if (m.protocols && m.protocols.length) {
327
- d.protocols = [];
328
- for (var j = 0; j < m.protocols.length; ++j) {
329
- d.protocols[j] = m.protocols[j];
330
- }
331
- }
332
- if (m.observedAddr != null && m.hasOwnProperty("observedAddr")) {
333
- d.observedAddr = o.bytes === String ? $util.base64.encode(m.observedAddr, 0, m.observedAddr.length) : o.bytes === Array ? Array.prototype.slice.call(m.observedAddr) : m.observedAddr;
334
- if (o.oneofs)
335
- d._observedAddr = "observedAddr";
336
- }
337
- if (m.protocolVersion != null && m.hasOwnProperty("protocolVersion")) {
338
- d.protocolVersion = m.protocolVersion;
339
- if (o.oneofs)
340
- d._protocolVersion = "protocolVersion";
341
- }
342
- if (m.agentVersion != null && m.hasOwnProperty("agentVersion")) {
343
- d.agentVersion = m.agentVersion;
344
- if (o.oneofs)
345
- d._agentVersion = "agentVersion";
346
- }
347
- if (m.signedPeerRecord != null && m.hasOwnProperty("signedPeerRecord")) {
348
- d.signedPeerRecord = o.bytes === String ? $util.base64.encode(m.signedPeerRecord, 0, m.signedPeerRecord.length) : o.bytes === Array ? Array.prototype.slice.call(m.signedPeerRecord) : m.signedPeerRecord;
349
- if (o.oneofs)
350
- d._signedPeerRecord = "signedPeerRecord";
351
- }
352
- return d;
353
- };
354
-
355
- /**
356
- * Converts this Identify to JSON.
357
- * @function toJSON
358
- * @memberof Identify
359
- * @instance
360
- * @returns {Object.<string,*>} JSON object
361
- */
362
- Identify.prototype.toJSON = function toJSON() {
363
- return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
364
- };
365
-
366
- return Identify;
367
- })();
368
-
369
- export { $root as default };
23
+ })(Identify || (Identify = {}));
24
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../src/identify/pb/message.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;AAEpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAYtF,MAAM,KAAW,QAAQ,CAoBxB;AApBD,WAAiB,QAAQ;IACV,cAAK,GAAG,GAAG,EAAE;QACxB,OAAO,OAAO,CAAW;YACvB,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7D,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1D,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtD,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;YACvD,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzD,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YACtD,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC9D,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,eAAM,GAAG,CAAC,GAAa,EAAc,EAAE;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAEY,eAAM,GAAG,CAAC,GAAe,EAAY,EAAE;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;AACH,CAAC,EApBgB,QAAQ,KAAR,QAAQ,QAoBxB"}
@@ -15,11 +15,12 @@ import type { ConnectionEncrypter } from '@libp2p/interfaces/connection-encrypte
15
15
  import type { PeerRouting } from '@libp2p/interfaces/peer-routing';
16
16
  import type { ContentRouting } from '@libp2p/interfaces/content-routing';
17
17
  import type { PubSub } from '@libp2p/interfaces/pubsub';
18
- import type { ConnectionManager, Registrar, StreamHandler } from '@libp2p/interfaces/registrar';
18
+ import type { Registrar, StreamHandler } from '@libp2p/interfaces/registrar';
19
+ import type { ConnectionManager } from '@libp2p/interfaces/connection-manager';
19
20
  import type { Metrics, MetricsInit } from '@libp2p/interfaces/metrics';
20
21
  import type { PeerInfo } from '@libp2p/interfaces/peer-info';
21
- import type { DialerInit } from '@libp2p/interfaces/dialer';
22
22
  import type { KeyChain } from './keychain/index.js';
23
+ import type { ConnectionManagerInit } from './connection-manager/index.js';
23
24
  export interface PersistentPeerStoreOptions {
24
25
  threshold?: number;
25
26
  }
@@ -61,25 +62,6 @@ export interface AddressesConfig {
61
62
  noAnnounce: string[];
62
63
  announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
63
64
  }
64
- export interface ConnectionManagerConfig {
65
- /**
66
- * If true, try to connect to all discovered peers up to the connection manager limit
67
- */
68
- autoDial?: boolean;
69
- /**
70
- * The maximum number of connections to keep open
71
- */
72
- maxConnections: number;
73
- /**
74
- * The minimum number of connections to keep open
75
- */
76
- minConnections: number;
77
- /**
78
- * How long to wait between attempting to keep our number of concurrent connections
79
- * above minConnections
80
- */
81
- autoDialInterval: number;
82
- }
83
65
  export interface TransportManagerConfig {
84
66
  faultTolerance?: FaultTolerance;
85
67
  }
@@ -99,11 +81,10 @@ export interface Libp2pInit {
99
81
  peerId: PeerId;
100
82
  host: HostProperties;
101
83
  addresses: AddressesConfig;
102
- connectionManager: ConnectionManagerConfig;
84
+ connectionManager: ConnectionManagerInit;
103
85
  connectionGater: Partial<ConnectionGater>;
104
86
  transportManager: TransportManagerConfig;
105
87
  datastore: Datastore;
106
- dialer: DialerInit;
107
88
  metrics: MetricsInit;
108
89
  peerStore: PeerStoreInit;
109
90
  peerRouting: PeerRoutingConfig;
@@ -133,8 +114,8 @@ export interface Libp2p extends Startable, EventEmitter<Libp2pEvents> {
133
114
  connectionManager: ConnectionManager;
134
115
  registrar: Registrar;
135
116
  metrics?: Metrics;
136
- pubsub?: PubSub;
137
- dht?: DualDHT;
117
+ pubsub: PubSub;
118
+ dht: DualDHT;
138
119
  /**
139
120
  * Load keychain keys from the datastore.
140
121
  * Imports the private key as 'self', if needed.
@@ -190,6 +171,11 @@ export interface Libp2p extends Startable, EventEmitter<Libp2pEvents> {
190
171
  * Sends a request to fetch the value associated with the given key from the given peer.
191
172
  */
192
173
  fetch: (peer: PeerId | Multiaddr | string, key: string) => Promise<Uint8Array | null>;
174
+ /**
175
+ * Returns the public key for the passed PeerId. If the PeerId is of the 'RSA' type
176
+ * this may mean searching the DHT if the key is not present in the KeyStore.
177
+ */
178
+ getPublicKey: (peer: PeerId, options?: AbortOptions) => Promise<Uint8Array>;
193
179
  }
194
180
  export declare type Libp2pOptions = RecursivePartial<Libp2pInit>;
195
181
  /**
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAqO9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,OAAsB;IACxD,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAmN9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,OAAsB;IACxD,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/insecure/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AACrG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AA8E7C,qBAAa,SAAU,YAAW,mBAAmB;IAC5C,QAAQ,EAAE,MAAM,CAAW;IAE5B,aAAa,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxG,cAAc,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG/G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/insecure/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AACrG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAkF7C,qBAAa,SAAU,YAAW,mBAAmB;IAC5C,QAAQ,EAAE,MAAM,CAAW;IAE5B,aAAa,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxG,cAAc,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG/G"}
@@ -7,7 +7,7 @@ import { peerIdFromBytes, peerIdFromKeys } from '@libp2p/peer-id';
7
7
  const log = logger('libp2p:plaintext');
8
8
  const PROTOCOL = '/plaintext/2.0.0';
9
9
  function lpEncodeExchange(exchange) {
10
- const pb = Exchange.encode(exchange).finish();
10
+ const pb = Exchange.encode(exchange);
11
11
  return lp.encode.single(pb);
12
12
  }
13
13
  /**
@@ -27,7 +27,7 @@ async function encrypt(localId, conn, remoteId) {
27
27
  id: localId.toBytes(),
28
28
  pubkey: {
29
29
  Type: type,
30
- Data: localId.publicKey
30
+ Data: localId.publicKey ?? new Uint8Array(0)
31
31
  }
32
32
  }).slice());
33
33
  log('write pubkey exchange to peer %p', remoteId);
@@ -38,6 +38,9 @@ async function encrypt(localId, conn, remoteId) {
38
38
  log('read pubkey exchange from peer %p', remoteId);
39
39
  let peerId;
40
40
  try {
41
+ if (id.pubkey == null) {
42
+ throw new Error('Public key missing');
43
+ }
41
44
  if (id.pubkey.Data.length === 0) {
42
45
  throw new Error('Public key data too short');
43
46
  }
@@ -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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"}