@libp2p/autonat 2.0.12-b248eefc0 → 2.0.12-d19974d93

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.
@@ -1,33 +1,55 @@
1
- import { serviceCapabilities } from '@libp2p/interface';
1
+ import { serviceCapabilities, serviceDependencies } from '@libp2p/interface';
2
2
  import type { AutoNATComponents, AutoNATServiceInit } from './index.js';
3
- import type { Startable } from '@libp2p/interface';
3
+ import type { Connection, Startable, AbortOptions } from '@libp2p/interface';
4
4
  import type { IncomingStreamData } from '@libp2p/interface-internal';
5
5
  export declare class AutoNATService implements Startable {
6
6
  private readonly components;
7
- private readonly startupDelay;
8
- private readonly refreshInterval;
9
7
  private readonly protocol;
10
8
  private readonly timeout;
11
9
  private readonly maxInboundStreams;
12
10
  private readonly maxOutboundStreams;
13
- private verifyAddressTimeout?;
14
11
  private started;
15
12
  private readonly log;
13
+ private topologyId?;
14
+ private readonly dialResults;
15
+ private readonly findPeers;
16
+ private readonly addressFilter;
16
17
  constructor(components: AutoNATComponents, init: AutoNATServiceInit);
17
18
  readonly [Symbol.toStringTag] = "@libp2p/autonat";
18
19
  readonly [serviceCapabilities]: string[];
20
+ get [serviceDependencies](): string[];
19
21
  isStarted(): boolean;
20
22
  start(): Promise<void>;
21
23
  stop(): Promise<void>;
24
+ private allAddressesAreVerified;
25
+ findRandomPeers(options?: AbortOptions): Promise<void>;
22
26
  /**
23
27
  * Handle an incoming AutoNAT request
24
28
  */
25
29
  handleIncomingAutonatStream(data: IncomingStreamData): Promise<void>;
26
- _verifyExternalAddresses(): void;
27
30
  private handleAutonatMessage;
31
+ /**
32
+ * The AutoNAT v1 server is only required to send us the address that it
33
+ * dialed successfully.
34
+ *
35
+ * When addresses fail, it can be because they are NATed, or because the peer
36
+ * did't support the transport, we have no way of knowing, so just send them
37
+ * one address so we can treat the response as:
38
+ *
39
+ * - OK - the dial request worked and the address is not NATed
40
+ * - E_DIAL_ERROR - the dial request failed and the address may be NATed
41
+ * - E_DIAL_REFUSED/E_BAD_REQUEST/E_INTERNAL_ERROR - the remote didn't dial the address
42
+ */
43
+ private getFirstUnverifiedMultiaddr;
44
+ /**
45
+ * Removes any multiaddr result objects created for old multiaddrs that we are
46
+ * no longer waiting on
47
+ */
48
+ private removeOutdatedMultiaddrResults;
28
49
  /**
29
50
  * Our multicodec topology noticed a new peer that supports autonat
30
51
  */
31
- verifyExternalAddresses(): Promise<void>;
52
+ verifyExternalAddresses(connection: Connection): Promise<void>;
53
+ private getNetworkSegment;
32
54
  }
33
55
  //# sourceMappingURL=autonat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autonat.d.ts","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAAmB,MAAM,mBAAmB,CAAA;AAgBpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAwC,SAAS,EAAgB,MAAM,mBAAmB,CAAA;AACtG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAOpE,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,oBAAoB,CAAC,CAA+B;IAC5D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB;IAapE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAoB;IAEjD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAoBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACG,2BAA2B,CAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE3E,wBAAwB,IAAK,IAAI;YAOnB,oBAAoB;IAoKlC;;OAEG;IACG,uBAAuB,IAAK,OAAO,CAAC,IAAI,CAAC;CAyLhD"}
1
+ {"version":3,"file":"autonat.d.ts","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAmB,MAAM,mBAAmB,CAAA;AAe7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAU,UAAU,EAAU,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAsDpE,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAEzB,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB;IAapE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAoB;IAEjD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,IAAI,CAAC,mBAAmB,CAAC,IAAK,MAAM,EAAE,CAIrC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IA4BvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,uBAAuB;IAIzB,eAAe,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC7D;;OAEG;IACG,2BAA2B,CAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyB7D,oBAAoB;IAmKlC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,2BAA2B;IA4FnC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IActC;;OAEG;IACG,uBAAuB,CAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyIrE,OAAO,CAAC,iBAAiB;CAY1B"}