@libp2p/circuit-relay-v2 1.0.24 → 1.0.25-44791342

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/dist/index.min.js +5 -5
  2. package/dist/src/constants.d.ts +13 -12
  3. package/dist/src/constants.d.ts.map +1 -1
  4. package/dist/src/constants.js +13 -12
  5. package/dist/src/constants.js.map +1 -1
  6. package/dist/src/pb/index.d.ts +7 -7
  7. package/dist/src/pb/index.d.ts.map +1 -1
  8. package/dist/src/pb/index.js +94 -52
  9. package/dist/src/pb/index.js.map +1 -1
  10. package/dist/src/server/index.d.ts +1 -7
  11. package/dist/src/server/index.d.ts.map +1 -1
  12. package/dist/src/server/index.js +10 -19
  13. package/dist/src/server/index.js.map +1 -1
  14. package/dist/src/server/reservation-store.d.ts +2 -3
  15. package/dist/src/server/reservation-store.d.ts.map +1 -1
  16. package/dist/src/server/reservation-store.js.map +1 -1
  17. package/dist/src/transport/discovery.d.ts +15 -10
  18. package/dist/src/transport/discovery.d.ts.map +1 -1
  19. package/dist/src/transport/discovery.js +103 -51
  20. package/dist/src/transport/discovery.js.map +1 -1
  21. package/dist/src/transport/index.d.ts +27 -18
  22. package/dist/src/transport/index.d.ts.map +1 -1
  23. package/dist/src/transport/index.js +0 -3
  24. package/dist/src/transport/index.js.map +1 -1
  25. package/dist/src/transport/reservation-store.d.ts +7 -3
  26. package/dist/src/transport/reservation-store.d.ts.map +1 -1
  27. package/dist/src/transport/reservation-store.js +37 -13
  28. package/dist/src/transport/reservation-store.js.map +1 -1
  29. package/dist/src/transport/transport.d.ts +0 -1
  30. package/dist/src/transport/transport.d.ts.map +1 -1
  31. package/dist/src/transport/transport.js +20 -19
  32. package/dist/src/transport/transport.js.map +1 -1
  33. package/package.json +12 -13
  34. package/src/constants.ts +16 -15
  35. package/src/pb/index.ts +96 -53
  36. package/src/server/index.ts +11 -29
  37. package/src/server/reservation-store.ts +2 -4
  38. package/src/transport/discovery.ts +121 -56
  39. package/src/transport/index.ts +28 -18
  40. package/src/transport/reservation-store.ts +45 -13
  41. package/src/transport/transport.ts +21 -21
  42. package/dist/src/server/advert-service.d.ts +0 -44
  43. package/dist/src/server/advert-service.d.ts.map +0 -1
  44. package/dist/src/server/advert-service.js +0 -72
  45. package/dist/src/server/advert-service.js.map +0 -1
  46. package/dist/typedoc-urls.json +0 -12
  47. package/src/server/advert-service.ts +0 -107
@@ -1,72 +0,0 @@
1
- import { TypedEventEmitter } from '@libp2p/interface';
2
- import pRetry from 'p-retry';
3
- import { DEFAULT_ADVERT_BOOT_DELAY, ERR_NO_ROUTERS_AVAILABLE, RELAY_RENDEZVOUS_NS } from '../constants.js';
4
- import { namespaceToCid } from '../utils.js';
5
- export class AdvertService extends TypedEventEmitter {
6
- contentRouting;
7
- timeout;
8
- started;
9
- bootDelay;
10
- log;
11
- /**
12
- * Creates an instance of Relay
13
- */
14
- constructor(components, init) {
15
- super();
16
- this.log = components.logger.forComponent('libp2p:circuit-relay:advert-service');
17
- this.contentRouting = components.contentRouting;
18
- this.bootDelay = init?.bootDelay ?? DEFAULT_ADVERT_BOOT_DELAY;
19
- this.started = false;
20
- }
21
- isStarted() {
22
- return this.started;
23
- }
24
- /**
25
- * Start Relay service
26
- */
27
- start() {
28
- if (this.started) {
29
- return;
30
- }
31
- // Advertise service if HOP enabled and advertising enabled
32
- this.timeout = setTimeout(() => {
33
- this._advertiseService().catch(err => {
34
- this.log.error('could not advertise service', err);
35
- });
36
- }, this.bootDelay);
37
- this.started = true;
38
- }
39
- /**
40
- * Stop Relay service
41
- */
42
- stop() {
43
- try {
44
- clearTimeout(this.timeout);
45
- }
46
- catch (err) { }
47
- this.started = false;
48
- }
49
- /**
50
- * Advertise hop relay service in the network.
51
- */
52
- async _advertiseService() {
53
- await pRetry(async () => {
54
- try {
55
- const cid = await namespaceToCid(RELAY_RENDEZVOUS_NS);
56
- await this.contentRouting.provide(cid);
57
- this.safeDispatchEvent('advert:success', { detail: undefined });
58
- }
59
- catch (err) {
60
- this.safeDispatchEvent('advert:error', { detail: err });
61
- if (err.code === ERR_NO_ROUTERS_AVAILABLE) {
62
- this.log.error('a content router, such as a DHT, must be provided in order to advertise the relay service', err);
63
- this.stop();
64
- return;
65
- }
66
- this.log.error('could not advertise service', err);
67
- throw err;
68
- }
69
- });
70
- }
71
- }
72
- //# sourceMappingURL=advert-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"advert-service.js","sourceRoot":"","sources":["../../../src/server/advert-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAuB5C,MAAM,OAAO,aAAc,SAAQ,iBAAsC;IACtD,cAAc,CAAgB;IACvC,OAAO,CAAM;IACb,OAAO,CAAS;IACP,SAAS,CAAQ;IACjB,GAAG,CAAQ;IAE5B;;OAEG;IACH,YAAa,UAAmC,EAAE,IAAwB;QACxE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,qCAAqC,CAAC,CAAA;QAChF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAA;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,yBAAyB,CAAA;QAC7D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;QAEjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAA;gBACrD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAEtC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;YACjE,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;gBAEvD,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;oBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2FAA2F,EAAE,GAAG,CAAC,CAAA;oBAChH,IAAI,CAAC,IAAI,EAAE,CAAA;oBACX,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;gBAClD,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1,12 +0,0 @@
1
- {
2
- "CircuitRelayService": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_circuit_relay_v2.CircuitRelayService.html",
3
- ".:CircuitRelayService": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_circuit_relay_v2.CircuitRelayService.html",
4
- "CircuitRelayServiceEvents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_circuit_relay_v2.CircuitRelayServiceEvents.html",
5
- ".:CircuitRelayServiceEvents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_circuit_relay_v2.CircuitRelayServiceEvents.html",
6
- "RelayReservation": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_circuit_relay_v2.RelayReservation.html",
7
- ".:RelayReservation": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_circuit_relay_v2.RelayReservation.html",
8
- "RELAY_V2_HOP_CODEC": "https://libp2p.github.io/js-libp2p/variables/_libp2p_circuit_relay_v2.RELAY_V2_HOP_CODEC.html",
9
- "RELAY_V2_STOP_CODEC": "https://libp2p.github.io/js-libp2p/variables/_libp2p_circuit_relay_v2.RELAY_V2_STOP_CODEC.html",
10
- "circuitRelayServer": "https://libp2p.github.io/js-libp2p/functions/_libp2p_circuit_relay_v2.circuitRelayServer.html",
11
- "circuitRelayTransport": "https://libp2p.github.io/js-libp2p/functions/_libp2p_circuit_relay_v2.circuitRelayTransport.html"
12
- }
@@ -1,107 +0,0 @@
1
- import { TypedEventEmitter } from '@libp2p/interface'
2
- import pRetry from 'p-retry'
3
- import {
4
- DEFAULT_ADVERT_BOOT_DELAY,
5
- ERR_NO_ROUTERS_AVAILABLE,
6
- RELAY_RENDEZVOUS_NS
7
- } from '../constants.js'
8
- import { namespaceToCid } from '../utils.js'
9
- import type { ComponentLogger, Logger, ContentRouting, Startable } from '@libp2p/interface'
10
-
11
- export interface AdvertServiceInit {
12
- /**
13
- * How long to wait after startup to begin advertising the service
14
- * - if some configured content routers take a while to warm up (for
15
- * example, the DHT needs some peers to be able to publish) this
16
- * value should be high enough that they will have warmed up
17
- */
18
- bootDelay?: number
19
- }
20
-
21
- export interface AdvertServiceComponents {
22
- contentRouting: ContentRouting
23
- logger: ComponentLogger
24
- }
25
-
26
- export interface AdvertServiceEvents {
27
- 'advert:success': CustomEvent<unknown>
28
- 'advert:error': CustomEvent<Error>
29
- }
30
-
31
- export class AdvertService extends TypedEventEmitter<AdvertServiceEvents> implements Startable {
32
- private readonly contentRouting: ContentRouting
33
- private timeout?: any
34
- private started: boolean
35
- private readonly bootDelay: number
36
- private readonly log: Logger
37
-
38
- /**
39
- * Creates an instance of Relay
40
- */
41
- constructor (components: AdvertServiceComponents, init?: AdvertServiceInit) {
42
- super()
43
-
44
- this.log = components.logger.forComponent('libp2p:circuit-relay:advert-service')
45
- this.contentRouting = components.contentRouting
46
- this.bootDelay = init?.bootDelay ?? DEFAULT_ADVERT_BOOT_DELAY
47
- this.started = false
48
- }
49
-
50
- isStarted (): boolean {
51
- return this.started
52
- }
53
-
54
- /**
55
- * Start Relay service
56
- */
57
- start (): void {
58
- if (this.started) {
59
- return
60
- }
61
-
62
- // Advertise service if HOP enabled and advertising enabled
63
- this.timeout = setTimeout(() => {
64
- this._advertiseService().catch(err => {
65
- this.log.error('could not advertise service', err)
66
- })
67
- }, this.bootDelay)
68
-
69
- this.started = true
70
- }
71
-
72
- /**
73
- * Stop Relay service
74
- */
75
- stop (): void {
76
- try {
77
- clearTimeout(this.timeout)
78
- } catch (err) { }
79
-
80
- this.started = false
81
- }
82
-
83
- /**
84
- * Advertise hop relay service in the network.
85
- */
86
- async _advertiseService (): Promise<void> {
87
- await pRetry(async () => {
88
- try {
89
- const cid = await namespaceToCid(RELAY_RENDEZVOUS_NS)
90
- await this.contentRouting.provide(cid)
91
-
92
- this.safeDispatchEvent('advert:success', { detail: undefined })
93
- } catch (err: any) {
94
- this.safeDispatchEvent('advert:error', { detail: err })
95
-
96
- if (err.code === ERR_NO_ROUTERS_AVAILABLE) {
97
- this.log.error('a content router, such as a DHT, must be provided in order to advertise the relay service', err)
98
- this.stop()
99
- return
100
- }
101
-
102
- this.log.error('could not advertise service', err)
103
- throw err
104
- }
105
- })
106
- }
107
- }