libp2p 0.42.2 → 0.43.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 (295) hide show
  1. package/README.md +4 -4
  2. package/dist/index.min.js +29 -29
  3. package/dist/src/address-manager/index.d.ts +1 -10
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js +46 -29
  6. package/dist/src/address-manager/index.js.map +1 -1
  7. package/dist/src/autonat/constants.d.ts +4 -0
  8. package/dist/src/autonat/constants.d.ts.map +1 -0
  9. package/dist/src/autonat/constants.js +4 -0
  10. package/dist/src/autonat/constants.js.map +1 -0
  11. package/dist/src/autonat/index.d.ts +64 -0
  12. package/dist/src/autonat/index.d.ts.map +1 -0
  13. package/dist/src/autonat/index.js +417 -0
  14. package/dist/src/autonat/index.js.map +1 -0
  15. package/dist/src/autonat/pb/index.d.ts +57 -0
  16. package/dist/src/autonat/pb/index.d.ts.map +1 -0
  17. package/dist/src/autonat/pb/index.js +250 -0
  18. package/dist/src/autonat/pb/index.js.map +1 -0
  19. package/dist/src/circuit/constants.d.ts +31 -6
  20. package/dist/src/circuit/constants.d.ts.map +1 -1
  21. package/dist/src/circuit/constants.js +37 -7
  22. package/dist/src/circuit/constants.js.map +1 -1
  23. package/dist/src/circuit/index.d.ts +16 -61
  24. package/dist/src/circuit/index.d.ts.map +1 -1
  25. package/dist/src/circuit/index.js +2 -68
  26. package/dist/src/circuit/index.js.map +1 -1
  27. package/dist/src/circuit/pb/index.d.ts +83 -43
  28. package/dist/src/circuit/pb/index.d.ts.map +1 -1
  29. package/dist/src/circuit/pb/index.js +363 -127
  30. package/dist/src/circuit/pb/index.js.map +1 -1
  31. package/dist/src/circuit/server/advert-service.d.ts +43 -0
  32. package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
  33. package/dist/src/circuit/server/advert-service.js +69 -0
  34. package/dist/src/circuit/server/advert-service.js.map +1 -0
  35. package/dist/src/circuit/server/index.d.ts +60 -0
  36. package/dist/src/circuit/server/index.d.ts.map +1 -0
  37. package/dist/src/circuit/server/index.js +287 -0
  38. package/dist/src/circuit/server/index.js.map +1 -0
  39. package/dist/src/circuit/server/reservation-store.d.ts +49 -0
  40. package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
  41. package/dist/src/circuit/server/reservation-store.js +57 -0
  42. package/dist/src/circuit/server/reservation-store.js.map +1 -0
  43. package/dist/src/circuit/server/reservation-voucher.d.ts +18 -0
  44. package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
  45. package/dist/src/circuit/server/reservation-voucher.js +33 -0
  46. package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
  47. package/dist/src/circuit/transport/discovery.d.ts +45 -0
  48. package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
  49. package/dist/src/circuit/transport/discovery.js +82 -0
  50. package/dist/src/circuit/transport/discovery.js.map +1 -0
  51. package/dist/src/circuit/transport/index.d.ts +33 -0
  52. package/dist/src/circuit/transport/index.d.ts.map +1 -0
  53. package/dist/src/circuit/transport/index.js +225 -0
  54. package/dist/src/circuit/transport/index.js.map +1 -0
  55. package/dist/src/circuit/transport/listener.d.ts +9 -0
  56. package/dist/src/circuit/transport/listener.d.ts.map +1 -0
  57. package/dist/src/circuit/transport/listener.js +76 -0
  58. package/dist/src/circuit/transport/listener.js.map +1 -0
  59. package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
  60. package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
  61. package/dist/src/circuit/transport/reservation-store.js +165 -0
  62. package/dist/src/circuit/transport/reservation-store.js.map +1 -0
  63. package/dist/src/circuit/utils.d.ts +7 -0
  64. package/dist/src/circuit/utils.d.ts.map +1 -1
  65. package/dist/src/circuit/utils.js +87 -0
  66. package/dist/src/circuit/utils.js.map +1 -1
  67. package/dist/src/components.d.ts +2 -1
  68. package/dist/src/components.d.ts.map +1 -1
  69. package/dist/src/components.js +13 -13
  70. package/dist/src/components.js.map +1 -1
  71. package/dist/src/config.d.ts.map +1 -1
  72. package/dist/src/config.js +21 -25
  73. package/dist/src/config.js.map +1 -1
  74. package/dist/src/connection/index.d.ts +2 -2
  75. package/dist/src/connection/index.d.ts.map +1 -1
  76. package/dist/src/connection/index.js +4 -4
  77. package/dist/src/connection/index.js.map +1 -1
  78. package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
  79. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  80. package/dist/src/connection-manager/auto-dialler.js +18 -18
  81. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  82. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
  83. package/dist/src/connection-manager/dialer/dial-request.js +13 -6
  84. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
  85. package/dist/src/connection-manager/dialer/index.d.ts +10 -1
  86. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  87. package/dist/src/connection-manager/dialer/index.js +24 -9
  88. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  89. package/dist/src/connection-manager/index.d.ts +1 -4
  90. package/dist/src/connection-manager/index.d.ts.map +1 -1
  91. package/dist/src/connection-manager/index.js +8 -5
  92. package/dist/src/connection-manager/index.js.map +1 -1
  93. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  94. package/dist/src/connection-manager/latency-monitor.js +1 -1
  95. package/dist/src/connection-manager/latency-monitor.js.map +1 -1
  96. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  97. package/dist/src/content-routing/index.d.ts +6 -4
  98. package/dist/src/content-routing/index.d.ts.map +1 -1
  99. package/dist/src/content-routing/index.js +9 -9
  100. package/dist/src/content-routing/index.js.map +1 -1
  101. package/dist/src/content-routing/utils.d.ts +3 -3
  102. package/dist/src/content-routing/utils.d.ts.map +1 -1
  103. package/dist/src/content-routing/utils.js +2 -2
  104. package/dist/src/content-routing/utils.js.map +1 -1
  105. package/dist/src/dht/dht-content-routing.d.ts +2 -1
  106. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  107. package/dist/src/dht/dht-content-routing.js +2 -2
  108. package/dist/src/dht/dht-content-routing.js.map +1 -1
  109. package/dist/src/dht/dht-peer-routing.d.ts +3 -2
  110. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  111. package/dist/src/dht/dht-peer-routing.js +2 -2
  112. package/dist/src/dht/dht-peer-routing.js.map +1 -1
  113. package/dist/src/dht/dummy-dht.d.ts +1 -1
  114. package/dist/src/dht/dummy-dht.d.ts.map +1 -1
  115. package/dist/src/dht/dummy-dht.js +12 -12
  116. package/dist/src/dht/dummy-dht.js.map +1 -1
  117. package/dist/src/errors.d.ts +2 -1
  118. package/dist/src/errors.d.ts.map +1 -1
  119. package/dist/src/errors.js +1 -0
  120. package/dist/src/errors.js.map +1 -1
  121. package/dist/src/fetch/index.d.ts.map +1 -1
  122. package/dist/src/fetch/index.js +6 -6
  123. package/dist/src/fetch/index.js.map +1 -1
  124. package/dist/src/fetch/pb/proto.d.ts +3 -3
  125. package/dist/src/fetch/pb/proto.d.ts.map +1 -1
  126. package/dist/src/fetch/pb/proto.js +4 -3
  127. package/dist/src/fetch/pb/proto.js.map +1 -1
  128. package/dist/src/get-peer.js +2 -2
  129. package/dist/src/get-peer.js.map +1 -1
  130. package/dist/src/identify/index.d.ts +3 -1
  131. package/dist/src/identify/index.d.ts.map +1 -1
  132. package/dist/src/identify/index.js +19 -14
  133. package/dist/src/identify/index.js.map +1 -1
  134. package/dist/src/identify/pb/message.d.ts +2 -2
  135. package/dist/src/identify/pb/message.d.ts.map +1 -1
  136. package/dist/src/identify/pb/message.js +1 -0
  137. package/dist/src/identify/pb/message.js.map +1 -1
  138. package/dist/src/index.d.ts +14 -8
  139. package/dist/src/index.d.ts.map +1 -1
  140. package/dist/src/index.js.map +1 -1
  141. package/dist/src/insecure/index.d.ts.map +1 -1
  142. package/dist/src/insecure/index.js.map +1 -1
  143. package/dist/src/insecure/pb/proto.d.ts +3 -3
  144. package/dist/src/insecure/pb/proto.d.ts.map +1 -1
  145. package/dist/src/insecure/pb/proto.js +4 -5
  146. package/dist/src/insecure/pb/proto.js.map +1 -1
  147. package/dist/src/libp2p.d.ts +7 -3
  148. package/dist/src/libp2p.d.ts.map +1 -1
  149. package/dist/src/libp2p.js +35 -35
  150. package/dist/src/libp2p.js.map +1 -1
  151. package/dist/src/nat-manager.d.ts.map +1 -1
  152. package/dist/src/nat-manager.js +5 -3
  153. package/dist/src/nat-manager.js.map +1 -1
  154. package/dist/src/peer-record-updater.d.ts.map +1 -1
  155. package/dist/src/peer-routing.d.ts.map +1 -1
  156. package/dist/src/peer-routing.js +5 -5
  157. package/dist/src/peer-routing.js.map +1 -1
  158. package/dist/src/ping/index.d.ts.map +1 -1
  159. package/dist/src/ping/index.js +2 -2
  160. package/dist/src/ping/index.js.map +1 -1
  161. package/dist/src/pnet/crypto.d.ts +1 -1
  162. package/dist/src/pnet/crypto.d.ts.map +1 -1
  163. package/dist/src/pnet/crypto.js +1 -1
  164. package/dist/src/pnet/crypto.js.map +1 -1
  165. package/dist/src/pnet/index.js +3 -3
  166. package/dist/src/pnet/index.js.map +1 -1
  167. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  168. package/dist/src/pubsub/dummy-pubsub.js +9 -9
  169. package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
  170. package/dist/src/registrar.d.ts.map +1 -1
  171. package/dist/src/registrar.js +4 -4
  172. package/dist/src/registrar.js.map +1 -1
  173. package/dist/src/transport-manager.d.ts.map +1 -1
  174. package/dist/src/transport-manager.js +8 -9
  175. package/dist/src/transport-manager.js.map +1 -1
  176. package/dist/src/upgrader.d.ts +2 -1
  177. package/dist/src/upgrader.d.ts.map +1 -1
  178. package/dist/src/upgrader.js +38 -33
  179. package/dist/src/upgrader.js.map +1 -1
  180. package/dist/typedoc-urls.json +19 -6
  181. package/package.json +36 -33
  182. package/src/address-manager/index.ts +62 -35
  183. package/src/autonat/constants.ts +4 -0
  184. package/src/autonat/index.ts +567 -0
  185. package/src/autonat/pb/index.proto +35 -0
  186. package/src/autonat/pb/index.ts +320 -0
  187. package/src/circuit/constants.ts +48 -7
  188. package/src/circuit/index.ts +17 -129
  189. package/src/circuit/pb/index.proto +57 -32
  190. package/src/circuit/pb/index.ts +448 -138
  191. package/src/circuit/server/advert-service.ts +108 -0
  192. package/src/circuit/server/index.ts +421 -0
  193. package/src/circuit/server/reservation-store.ts +111 -0
  194. package/src/circuit/server/reservation-voucher.ts +51 -0
  195. package/src/circuit/transport/discovery.ts +127 -0
  196. package/src/circuit/transport/index.ts +325 -0
  197. package/src/circuit/transport/listener.ts +99 -0
  198. package/src/circuit/transport/reservation-store.ts +249 -0
  199. package/src/circuit/utils.ts +108 -0
  200. package/src/components.ts +22 -21
  201. package/src/config.ts +21 -25
  202. package/src/connection/index.ts +10 -10
  203. package/src/connection-manager/auto-dialler.ts +36 -40
  204. package/src/connection-manager/dialer/dial-request.ts +13 -6
  205. package/src/connection-manager/dialer/index.ts +34 -15
  206. package/src/connection-manager/index.ts +22 -23
  207. package/src/connection-manager/latency-monitor.ts +9 -9
  208. package/src/connection-manager/visibility-change-emitter.ts +4 -4
  209. package/src/content-routing/index.ts +18 -16
  210. package/src/content-routing/utils.ts +5 -5
  211. package/src/dht/dht-content-routing.ts +5 -4
  212. package/src/dht/dht-peer-routing.ts +5 -4
  213. package/src/dht/dummy-dht.ts +13 -13
  214. package/src/errors.ts +2 -1
  215. package/src/fetch/index.ts +13 -13
  216. package/src/fetch/pb/proto.ts +8 -7
  217. package/src/get-peer.ts +3 -3
  218. package/src/identify/index.ts +29 -24
  219. package/src/identify/pb/message.ts +3 -2
  220. package/src/index.ts +15 -8
  221. package/src/insecure/index.ts +2 -1
  222. package/src/insecure/pb/proto.ts +8 -9
  223. package/src/libp2p.ts +52 -46
  224. package/src/nat-manager.ts +11 -9
  225. package/src/peer-record-updater.ts +4 -4
  226. package/src/peer-routing.ts +9 -9
  227. package/src/ping/index.ts +6 -6
  228. package/src/pnet/crypto.ts +3 -3
  229. package/src/pnet/index.ts +3 -3
  230. package/src/pnet/key-generator.ts +1 -1
  231. package/src/pubsub/dummy-pubsub.ts +9 -9
  232. package/src/registrar.ts +12 -12
  233. package/src/transport-manager.ts +17 -18
  234. package/src/upgrader.ts +43 -42
  235. package/src/version.ts +1 -1
  236. package/dist/src/circuit/auto-relay.d.ts +0 -46
  237. package/dist/src/circuit/auto-relay.d.ts.map +0 -1
  238. package/dist/src/circuit/auto-relay.js +0 -220
  239. package/dist/src/circuit/auto-relay.js.map +0 -1
  240. package/dist/src/circuit/circuit/hop.d.ts +0 -42
  241. package/dist/src/circuit/circuit/hop.d.ts.map +0 -1
  242. package/dist/src/circuit/circuit/hop.js +0 -142
  243. package/dist/src/circuit/circuit/hop.js.map +0 -1
  244. package/dist/src/circuit/circuit/stop.d.ts +0 -24
  245. package/dist/src/circuit/circuit/stop.d.ts.map +0 -1
  246. package/dist/src/circuit/circuit/stop.js +0 -51
  247. package/dist/src/circuit/circuit/stop.js.map +0 -1
  248. package/dist/src/circuit/circuit/stream-handler.d.ts +0 -40
  249. package/dist/src/circuit/circuit/stream-handler.d.ts.map +0 -1
  250. package/dist/src/circuit/circuit/stream-handler.js +0 -59
  251. package/dist/src/circuit/circuit/stream-handler.js.map +0 -1
  252. package/dist/src/circuit/circuit/utils.d.ts +0 -7
  253. package/dist/src/circuit/circuit/utils.d.ts.map +0 -1
  254. package/dist/src/circuit/circuit/utils.js +0 -43
  255. package/dist/src/circuit/circuit/utils.js.map +0 -1
  256. package/dist/src/circuit/listener.d.ts +0 -9
  257. package/dist/src/circuit/listener.d.ts.map +0 -1
  258. package/dist/src/circuit/listener.js +0 -62
  259. package/dist/src/circuit/listener.js.map +0 -1
  260. package/dist/src/circuit/multicodec.d.ts +0 -2
  261. package/dist/src/circuit/multicodec.d.ts.map +0 -1
  262. package/dist/src/circuit/multicodec.js +0 -2
  263. package/dist/src/circuit/multicodec.js.map +0 -1
  264. package/dist/src/circuit/transport.d.ts +0 -51
  265. package/dist/src/circuit/transport.d.ts.map +0 -1
  266. package/dist/src/circuit/transport.js +0 -223
  267. package/dist/src/circuit/transport.js.map +0 -1
  268. package/dist/src/keychain/cms.d.ts +0 -33
  269. package/dist/src/keychain/cms.d.ts.map +0 -1
  270. package/dist/src/keychain/cms.js +0 -129
  271. package/dist/src/keychain/cms.js.map +0 -1
  272. package/dist/src/keychain/index.d.ts +0 -151
  273. package/dist/src/keychain/index.d.ts.map +0 -1
  274. package/dist/src/keychain/index.js +0 -519
  275. package/dist/src/keychain/index.js.map +0 -1
  276. package/dist/src/keychain/util.d.ts +0 -21
  277. package/dist/src/keychain/util.d.ts.map +0 -1
  278. package/dist/src/keychain/util.js +0 -79
  279. package/dist/src/keychain/util.js.map +0 -1
  280. package/src/circuit/IMPLEMENTATION_NOTES.md +0 -128
  281. package/src/circuit/README.md +0 -111
  282. package/src/circuit/auto-relay.ts +0 -292
  283. package/src/circuit/circuit/hop.ts +0 -220
  284. package/src/circuit/circuit/stop.ts +0 -83
  285. package/src/circuit/circuit/stream-handler.ts +0 -87
  286. package/src/circuit/circuit/utils.ts +0 -44
  287. package/src/circuit/listener.ts +0 -83
  288. package/src/circuit/multicodec.ts +0 -2
  289. package/src/circuit/transport.ts +0 -278
  290. package/src/keychain/README.md +0 -55
  291. package/src/keychain/cms.ts +0 -150
  292. package/src/keychain/doc/private-key.png +0 -0
  293. package/src/keychain/doc/private-key.xml +0 -1
  294. package/src/keychain/index.ts +0 -629
  295. package/src/keychain/util.ts +0 -82
@@ -2,184 +2,173 @@
2
2
  /* eslint-disable complexity */
3
3
  /* eslint-disable @typescript-eslint/no-namespace */
4
4
  /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */
5
+ /* eslint-disable @typescript-eslint/no-empty-interface */
5
6
 
6
7
  import { enumeration, encodeMessage, decodeMessage, message } from 'protons-runtime'
7
- import type { Uint8ArrayList } from 'uint8arraylist'
8
8
  import type { Codec } from 'protons-runtime'
9
+ import type { Uint8ArrayList } from 'uint8arraylist'
9
10
 
10
- export interface CircuitRelay {
11
- type?: CircuitRelay.Type
12
- srcPeer?: CircuitRelay.Peer
13
- dstPeer?: CircuitRelay.Peer
14
- code?: CircuitRelay.Status
11
+ export interface HopMessage {
12
+ type?: HopMessage.Type
13
+ peer?: Peer
14
+ reservation?: Reservation
15
+ limit?: Limit
16
+ status?: Status
15
17
  }
16
18
 
17
- export namespace CircuitRelay {
18
- export enum Status {
19
- SUCCESS = 'SUCCESS',
20
- HOP_SRC_ADDR_TOO_LONG = 'HOP_SRC_ADDR_TOO_LONG',
21
- HOP_DST_ADDR_TOO_LONG = 'HOP_DST_ADDR_TOO_LONG',
22
- HOP_SRC_MULTIADDR_INVALID = 'HOP_SRC_MULTIADDR_INVALID',
23
- HOP_DST_MULTIADDR_INVALID = 'HOP_DST_MULTIADDR_INVALID',
24
- HOP_NO_CONN_TO_DST = 'HOP_NO_CONN_TO_DST',
25
- HOP_CANT_DIAL_DST = 'HOP_CANT_DIAL_DST',
26
- HOP_CANT_OPEN_DST_STREAM = 'HOP_CANT_OPEN_DST_STREAM',
27
- HOP_CANT_SPEAK_RELAY = 'HOP_CANT_SPEAK_RELAY',
28
- HOP_CANT_RELAY_TO_SELF = 'HOP_CANT_RELAY_TO_SELF',
29
- STOP_SRC_ADDR_TOO_LONG = 'STOP_SRC_ADDR_TOO_LONG',
30
- STOP_DST_ADDR_TOO_LONG = 'STOP_DST_ADDR_TOO_LONG',
31
- STOP_SRC_MULTIADDR_INVALID = 'STOP_SRC_MULTIADDR_INVALID',
32
- STOP_DST_MULTIADDR_INVALID = 'STOP_DST_MULTIADDR_INVALID',
33
- STOP_RELAY_REFUSED = 'STOP_RELAY_REFUSED',
34
- MALFORMED_MESSAGE = 'MALFORMED_MESSAGE'
35
- }
36
-
37
- enum __StatusValues {
38
- SUCCESS = 100,
39
- HOP_SRC_ADDR_TOO_LONG = 220,
40
- HOP_DST_ADDR_TOO_LONG = 221,
41
- HOP_SRC_MULTIADDR_INVALID = 250,
42
- HOP_DST_MULTIADDR_INVALID = 251,
43
- HOP_NO_CONN_TO_DST = 260,
44
- HOP_CANT_DIAL_DST = 261,
45
- HOP_CANT_OPEN_DST_STREAM = 262,
46
- HOP_CANT_SPEAK_RELAY = 270,
47
- HOP_CANT_RELAY_TO_SELF = 280,
48
- STOP_SRC_ADDR_TOO_LONG = 320,
49
- STOP_DST_ADDR_TOO_LONG = 321,
50
- STOP_SRC_MULTIADDR_INVALID = 350,
51
- STOP_DST_MULTIADDR_INVALID = 351,
52
- STOP_RELAY_REFUSED = 390,
53
- MALFORMED_MESSAGE = 400
54
- }
55
-
56
- export namespace Status {
57
- export const codec = () => {
58
- return enumeration<Status>(__StatusValues)
59
- }
60
- }
61
-
19
+ export namespace HopMessage {
62
20
  export enum Type {
63
- HOP = 'HOP',
64
- STOP = 'STOP',
65
- STATUS = 'STATUS',
66
- CAN_HOP = 'CAN_HOP'
21
+ RESERVE = 'RESERVE',
22
+ CONNECT = 'CONNECT',
23
+ STATUS = 'STATUS'
67
24
  }
68
25
 
69
26
  enum __TypeValues {
70
- HOP = 1,
71
- STOP = 2,
72
- STATUS = 3,
73
- CAN_HOP = 4
27
+ RESERVE = 0,
28
+ CONNECT = 1,
29
+ STATUS = 2
74
30
  }
75
31
 
76
32
  export namespace Type {
77
- export const codec = () => {
33
+ export const codec = (): Codec<Type> => {
78
34
  return enumeration<Type>(__TypeValues)
79
35
  }
80
36
  }
81
37
 
82
- export interface Peer {
83
- id: Uint8Array
84
- addrs: Uint8Array[]
85
- }
38
+ let _codec: Codec<HopMessage>
86
39
 
87
- export namespace Peer {
88
- let _codec: Codec<Peer>
40
+ export const codec = (): Codec<HopMessage> => {
41
+ if (_codec == null) {
42
+ _codec = message<HopMessage>((obj, w, opts = {}) => {
43
+ if (opts.lengthDelimited !== false) {
44
+ w.fork()
45
+ }
89
46
 
90
- export const codec = (): Codec<Peer> => {
91
- if (_codec == null) {
92
- _codec = message<Peer>((obj, w, opts = {}) => {
93
- if (opts.lengthDelimited !== false) {
94
- w.fork()
95
- }
47
+ if (obj.type != null) {
48
+ w.uint32(8)
49
+ HopMessage.Type.codec().encode(obj.type, w)
50
+ }
96
51
 
97
- if (opts.writeDefaults === true || (obj.id != null && obj.id.byteLength > 0)) {
98
- w.uint32(10)
99
- w.bytes(obj.id)
100
- }
52
+ if (obj.peer != null) {
53
+ w.uint32(18)
54
+ Peer.codec().encode(obj.peer, w)
55
+ }
101
56
 
102
- if (obj.addrs != null) {
103
- for (const value of obj.addrs) {
104
- w.uint32(18)
105
- w.bytes(value)
106
- }
107
- }
57
+ if (obj.reservation != null) {
58
+ w.uint32(26)
59
+ Reservation.codec().encode(obj.reservation, w)
60
+ }
108
61
 
109
- if (opts.lengthDelimited !== false) {
110
- w.ldelim()
111
- }
112
- }, (reader, length) => {
113
- const obj: any = {
114
- id: new Uint8Array(0),
115
- addrs: []
116
- }
62
+ if (obj.limit != null) {
63
+ w.uint32(34)
64
+ Limit.codec().encode(obj.limit, w)
65
+ }
117
66
 
118
- const end = length == null ? reader.len : reader.pos + length
119
-
120
- while (reader.pos < end) {
121
- const tag = reader.uint32()
122
-
123
- switch (tag >>> 3) {
124
- case 1:
125
- obj.id = reader.bytes()
126
- break
127
- case 2:
128
- obj.addrs.push(reader.bytes())
129
- break
130
- default:
131
- reader.skipType(tag & 7)
132
- break
133
- }
134
- }
67
+ if (obj.status != null) {
68
+ w.uint32(40)
69
+ Status.codec().encode(obj.status, w)
70
+ }
135
71
 
136
- return obj
137
- })
138
- }
72
+ if (opts.lengthDelimited !== false) {
73
+ w.ldelim()
74
+ }
75
+ }, (reader, length) => {
76
+ const obj: any = {}
139
77
 
140
- return _codec
141
- }
78
+ const end = length == null ? reader.len : reader.pos + length
79
+
80
+ while (reader.pos < end) {
81
+ const tag = reader.uint32()
142
82
 
143
- export const encode = (obj: Peer): Uint8Array => {
144
- return encodeMessage(obj, Peer.codec())
83
+ switch (tag >>> 3) {
84
+ case 1:
85
+ obj.type = HopMessage.Type.codec().decode(reader)
86
+ break
87
+ case 2:
88
+ obj.peer = Peer.codec().decode(reader, reader.uint32())
89
+ break
90
+ case 3:
91
+ obj.reservation = Reservation.codec().decode(reader, reader.uint32())
92
+ break
93
+ case 4:
94
+ obj.limit = Limit.codec().decode(reader, reader.uint32())
95
+ break
96
+ case 5:
97
+ obj.status = Status.codec().decode(reader)
98
+ break
99
+ default:
100
+ reader.skipType(tag & 7)
101
+ break
102
+ }
103
+ }
104
+
105
+ return obj
106
+ })
145
107
  }
146
108
 
147
- export const decode = (buf: Uint8Array | Uint8ArrayList): Peer => {
148
- return decodeMessage(buf, Peer.codec())
109
+ return _codec
110
+ }
111
+
112
+ export const encode = (obj: Partial<HopMessage>): Uint8Array => {
113
+ return encodeMessage(obj, HopMessage.codec())
114
+ }
115
+
116
+ export const decode = (buf: Uint8Array | Uint8ArrayList): HopMessage => {
117
+ return decodeMessage(buf, HopMessage.codec())
118
+ }
119
+ }
120
+
121
+ export interface StopMessage {
122
+ type?: StopMessage.Type
123
+ peer?: Peer
124
+ limit?: Limit
125
+ status?: Status
126
+ }
127
+
128
+ export namespace StopMessage {
129
+ export enum Type {
130
+ CONNECT = 'CONNECT',
131
+ STATUS = 'STATUS'
132
+ }
133
+
134
+ enum __TypeValues {
135
+ CONNECT = 0,
136
+ STATUS = 1
137
+ }
138
+
139
+ export namespace Type {
140
+ export const codec = (): Codec<Type> => {
141
+ return enumeration<Type>(__TypeValues)
149
142
  }
150
143
  }
151
144
 
152
- let _codec: Codec<CircuitRelay>
145
+ let _codec: Codec<StopMessage>
153
146
 
154
- export const codec = (): Codec<CircuitRelay> => {
147
+ export const codec = (): Codec<StopMessage> => {
155
148
  if (_codec == null) {
156
- _codec = message<CircuitRelay>((obj, w, opts = {}) => {
149
+ _codec = message<StopMessage>((obj, w, opts = {}) => {
157
150
  if (opts.lengthDelimited !== false) {
158
151
  w.fork()
159
152
  }
160
153
 
161
154
  if (obj.type != null) {
162
155
  w.uint32(8)
163
- CircuitRelay.Type.codec().encode(obj.type, w)
156
+ StopMessage.Type.codec().encode(obj.type, w)
164
157
  }
165
158
 
166
- if (obj.srcPeer != null) {
159
+ if (obj.peer != null) {
167
160
  w.uint32(18)
168
- CircuitRelay.Peer.codec().encode(obj.srcPeer, w, {
169
- writeDefaults: false
170
- })
161
+ Peer.codec().encode(obj.peer, w)
171
162
  }
172
163
 
173
- if (obj.dstPeer != null) {
164
+ if (obj.limit != null) {
174
165
  w.uint32(26)
175
- CircuitRelay.Peer.codec().encode(obj.dstPeer, w, {
176
- writeDefaults: false
177
- })
166
+ Limit.codec().encode(obj.limit, w)
178
167
  }
179
168
 
180
- if (obj.code != null) {
169
+ if (obj.status != null) {
181
170
  w.uint32(32)
182
- CircuitRelay.Status.codec().encode(obj.code, w)
171
+ Status.codec().encode(obj.status, w)
183
172
  }
184
173
 
185
174
  if (opts.lengthDelimited !== false) {
@@ -195,16 +184,337 @@ export namespace CircuitRelay {
195
184
 
196
185
  switch (tag >>> 3) {
197
186
  case 1:
198
- obj.type = CircuitRelay.Type.codec().decode(reader)
187
+ obj.type = StopMessage.Type.codec().decode(reader)
199
188
  break
200
189
  case 2:
201
- obj.srcPeer = CircuitRelay.Peer.codec().decode(reader, reader.uint32())
190
+ obj.peer = Peer.codec().decode(reader, reader.uint32())
202
191
  break
203
192
  case 3:
204
- obj.dstPeer = CircuitRelay.Peer.codec().decode(reader, reader.uint32())
193
+ obj.limit = Limit.codec().decode(reader, reader.uint32())
205
194
  break
206
195
  case 4:
207
- obj.code = CircuitRelay.Status.codec().decode(reader)
196
+ obj.status = Status.codec().decode(reader)
197
+ break
198
+ default:
199
+ reader.skipType(tag & 7)
200
+ break
201
+ }
202
+ }
203
+
204
+ return obj
205
+ })
206
+ }
207
+
208
+ return _codec
209
+ }
210
+
211
+ export const encode = (obj: Partial<StopMessage>): Uint8Array => {
212
+ return encodeMessage(obj, StopMessage.codec())
213
+ }
214
+
215
+ export const decode = (buf: Uint8Array | Uint8ArrayList): StopMessage => {
216
+ return decodeMessage(buf, StopMessage.codec())
217
+ }
218
+ }
219
+
220
+ export interface Peer {
221
+ id: Uint8Array
222
+ addrs: Uint8Array[]
223
+ }
224
+
225
+ export namespace Peer {
226
+ let _codec: Codec<Peer>
227
+
228
+ export const codec = (): Codec<Peer> => {
229
+ if (_codec == null) {
230
+ _codec = message<Peer>((obj, w, opts = {}) => {
231
+ if (opts.lengthDelimited !== false) {
232
+ w.fork()
233
+ }
234
+
235
+ if ((obj.id != null && obj.id.byteLength > 0)) {
236
+ w.uint32(10)
237
+ w.bytes(obj.id)
238
+ }
239
+
240
+ if (obj.addrs != null) {
241
+ for (const value of obj.addrs) {
242
+ w.uint32(18)
243
+ w.bytes(value)
244
+ }
245
+ }
246
+
247
+ if (opts.lengthDelimited !== false) {
248
+ w.ldelim()
249
+ }
250
+ }, (reader, length) => {
251
+ const obj: any = {
252
+ id: new Uint8Array(0),
253
+ addrs: []
254
+ }
255
+
256
+ const end = length == null ? reader.len : reader.pos + length
257
+
258
+ while (reader.pos < end) {
259
+ const tag = reader.uint32()
260
+
261
+ switch (tag >>> 3) {
262
+ case 1:
263
+ obj.id = reader.bytes()
264
+ break
265
+ case 2:
266
+ obj.addrs.push(reader.bytes())
267
+ break
268
+ default:
269
+ reader.skipType(tag & 7)
270
+ break
271
+ }
272
+ }
273
+
274
+ return obj
275
+ })
276
+ }
277
+
278
+ return _codec
279
+ }
280
+
281
+ export const encode = (obj: Partial<Peer>): Uint8Array => {
282
+ return encodeMessage(obj, Peer.codec())
283
+ }
284
+
285
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Peer => {
286
+ return decodeMessage(buf, Peer.codec())
287
+ }
288
+ }
289
+
290
+ export interface Reservation {
291
+ expire: bigint
292
+ addrs: Uint8Array[]
293
+ voucher?: Uint8Array
294
+ }
295
+
296
+ export namespace Reservation {
297
+ let _codec: Codec<Reservation>
298
+
299
+ export const codec = (): Codec<Reservation> => {
300
+ if (_codec == null) {
301
+ _codec = message<Reservation>((obj, w, opts = {}) => {
302
+ if (opts.lengthDelimited !== false) {
303
+ w.fork()
304
+ }
305
+
306
+ if ((obj.expire != null && obj.expire !== 0n)) {
307
+ w.uint32(8)
308
+ w.uint64(obj.expire)
309
+ }
310
+
311
+ if (obj.addrs != null) {
312
+ for (const value of obj.addrs) {
313
+ w.uint32(18)
314
+ w.bytes(value)
315
+ }
316
+ }
317
+
318
+ if (obj.voucher != null) {
319
+ w.uint32(26)
320
+ w.bytes(obj.voucher)
321
+ }
322
+
323
+ if (opts.lengthDelimited !== false) {
324
+ w.ldelim()
325
+ }
326
+ }, (reader, length) => {
327
+ const obj: any = {
328
+ expire: 0n,
329
+ addrs: []
330
+ }
331
+
332
+ const end = length == null ? reader.len : reader.pos + length
333
+
334
+ while (reader.pos < end) {
335
+ const tag = reader.uint32()
336
+
337
+ switch (tag >>> 3) {
338
+ case 1:
339
+ obj.expire = reader.uint64()
340
+ break
341
+ case 2:
342
+ obj.addrs.push(reader.bytes())
343
+ break
344
+ case 3:
345
+ obj.voucher = reader.bytes()
346
+ break
347
+ default:
348
+ reader.skipType(tag & 7)
349
+ break
350
+ }
351
+ }
352
+
353
+ return obj
354
+ })
355
+ }
356
+
357
+ return _codec
358
+ }
359
+
360
+ export const encode = (obj: Partial<Reservation>): Uint8Array => {
361
+ return encodeMessage(obj, Reservation.codec())
362
+ }
363
+
364
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Reservation => {
365
+ return decodeMessage(buf, Reservation.codec())
366
+ }
367
+ }
368
+
369
+ export interface Limit {
370
+ duration?: number
371
+ data?: bigint
372
+ }
373
+
374
+ export namespace Limit {
375
+ let _codec: Codec<Limit>
376
+
377
+ export const codec = (): Codec<Limit> => {
378
+ if (_codec == null) {
379
+ _codec = message<Limit>((obj, w, opts = {}) => {
380
+ if (opts.lengthDelimited !== false) {
381
+ w.fork()
382
+ }
383
+
384
+ if (obj.duration != null) {
385
+ w.uint32(8)
386
+ w.uint32(obj.duration)
387
+ }
388
+
389
+ if (obj.data != null) {
390
+ w.uint32(16)
391
+ w.uint64(obj.data)
392
+ }
393
+
394
+ if (opts.lengthDelimited !== false) {
395
+ w.ldelim()
396
+ }
397
+ }, (reader, length) => {
398
+ const obj: any = {}
399
+
400
+ const end = length == null ? reader.len : reader.pos + length
401
+
402
+ while (reader.pos < end) {
403
+ const tag = reader.uint32()
404
+
405
+ switch (tag >>> 3) {
406
+ case 1:
407
+ obj.duration = reader.uint32()
408
+ break
409
+ case 2:
410
+ obj.data = reader.uint64()
411
+ break
412
+ default:
413
+ reader.skipType(tag & 7)
414
+ break
415
+ }
416
+ }
417
+
418
+ return obj
419
+ })
420
+ }
421
+
422
+ return _codec
423
+ }
424
+
425
+ export const encode = (obj: Partial<Limit>): Uint8Array => {
426
+ return encodeMessage(obj, Limit.codec())
427
+ }
428
+
429
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Limit => {
430
+ return decodeMessage(buf, Limit.codec())
431
+ }
432
+ }
433
+
434
+ export enum Status {
435
+ UNUSED = 'UNUSED',
436
+ OK = 'OK',
437
+ RESERVATION_REFUSED = 'RESERVATION_REFUSED',
438
+ RESOURCE_LIMIT_EXCEEDED = 'RESOURCE_LIMIT_EXCEEDED',
439
+ PERMISSION_DENIED = 'PERMISSION_DENIED',
440
+ CONNECTION_FAILED = 'CONNECTION_FAILED',
441
+ NO_RESERVATION = 'NO_RESERVATION',
442
+ MALFORMED_MESSAGE = 'MALFORMED_MESSAGE',
443
+ UNEXPECTED_MESSAGE = 'UNEXPECTED_MESSAGE'
444
+ }
445
+
446
+ enum __StatusValues {
447
+ UNUSED = 0,
448
+ OK = 100,
449
+ RESERVATION_REFUSED = 200,
450
+ RESOURCE_LIMIT_EXCEEDED = 201,
451
+ PERMISSION_DENIED = 202,
452
+ CONNECTION_FAILED = 203,
453
+ NO_RESERVATION = 204,
454
+ MALFORMED_MESSAGE = 400,
455
+ UNEXPECTED_MESSAGE = 401
456
+ }
457
+
458
+ export namespace Status {
459
+ export const codec = (): Codec<Status> => {
460
+ return enumeration<Status>(__StatusValues)
461
+ }
462
+ }
463
+ export interface ReservationVoucher {
464
+ relay: Uint8Array
465
+ peer: Uint8Array
466
+ expiration: bigint
467
+ }
468
+
469
+ export namespace ReservationVoucher {
470
+ let _codec: Codec<ReservationVoucher>
471
+
472
+ export const codec = (): Codec<ReservationVoucher> => {
473
+ if (_codec == null) {
474
+ _codec = message<ReservationVoucher>((obj, w, opts = {}) => {
475
+ if (opts.lengthDelimited !== false) {
476
+ w.fork()
477
+ }
478
+
479
+ if ((obj.relay != null && obj.relay.byteLength > 0)) {
480
+ w.uint32(10)
481
+ w.bytes(obj.relay)
482
+ }
483
+
484
+ if ((obj.peer != null && obj.peer.byteLength > 0)) {
485
+ w.uint32(18)
486
+ w.bytes(obj.peer)
487
+ }
488
+
489
+ if ((obj.expiration != null && obj.expiration !== 0n)) {
490
+ w.uint32(24)
491
+ w.uint64(obj.expiration)
492
+ }
493
+
494
+ if (opts.lengthDelimited !== false) {
495
+ w.ldelim()
496
+ }
497
+ }, (reader, length) => {
498
+ const obj: any = {
499
+ relay: new Uint8Array(0),
500
+ peer: new Uint8Array(0),
501
+ expiration: 0n
502
+ }
503
+
504
+ const end = length == null ? reader.len : reader.pos + length
505
+
506
+ while (reader.pos < end) {
507
+ const tag = reader.uint32()
508
+
509
+ switch (tag >>> 3) {
510
+ case 1:
511
+ obj.relay = reader.bytes()
512
+ break
513
+ case 2:
514
+ obj.peer = reader.bytes()
515
+ break
516
+ case 3:
517
+ obj.expiration = reader.uint64()
208
518
  break
209
519
  default:
210
520
  reader.skipType(tag & 7)
@@ -219,11 +529,11 @@ export namespace CircuitRelay {
219
529
  return _codec
220
530
  }
221
531
 
222
- export const encode = (obj: CircuitRelay): Uint8Array => {
223
- return encodeMessage(obj, CircuitRelay.codec())
532
+ export const encode = (obj: Partial<ReservationVoucher>): Uint8Array => {
533
+ return encodeMessage(obj, ReservationVoucher.codec())
224
534
  }
225
535
 
226
- export const decode = (buf: Uint8Array | Uint8ArrayList): CircuitRelay => {
227
- return decodeMessage(buf, CircuitRelay.codec())
536
+ export const decode = (buf: Uint8Array | Uint8ArrayList): ReservationVoucher => {
537
+ return decodeMessage(buf, ReservationVoucher.codec())
228
538
  }
229
539
  }