@matter/protocol 0.17.3 → 0.17.4-alpha.0-20260623-5647634fc

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 (55) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts +2 -0
  2. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.js +6 -4
  4. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  5. package/dist/cjs/peer/Peer.d.ts +10 -1
  6. package/dist/cjs/peer/Peer.d.ts.map +1 -1
  7. package/dist/cjs/peer/Peer.js +15 -5
  8. package/dist/cjs/peer/Peer.js.map +1 -1
  9. package/dist/cjs/peer/PeerAddressMonitor.d.ts +19 -1
  10. package/dist/cjs/peer/PeerAddressMonitor.d.ts.map +1 -1
  11. package/dist/cjs/peer/PeerAddressMonitor.js +99 -65
  12. package/dist/cjs/peer/PeerAddressMonitor.js.map +1 -1
  13. package/dist/cjs/peer/PeerExchangeProvider.d.ts +5 -1
  14. package/dist/cjs/peer/PeerExchangeProvider.d.ts.map +1 -1
  15. package/dist/cjs/peer/PeerExchangeProvider.js +3 -0
  16. package/dist/cjs/peer/PeerExchangeProvider.js.map +1 -1
  17. package/dist/cjs/peer/PeerTimingParameters.d.ts +2 -2
  18. package/dist/cjs/peer/PeerTimingParameters.d.ts.map +1 -1
  19. package/dist/cjs/peer/PeerTimingParameters.js +2 -2
  20. package/dist/cjs/peer/PeerTimingParameters.js.map +1 -1
  21. package/dist/cjs/protocol/ExchangeProvider.d.ts +11 -0
  22. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  23. package/dist/cjs/protocol/ExchangeProvider.js +8 -0
  24. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  25. package/dist/esm/action/client/ClientInteraction.d.ts +2 -0
  26. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  27. package/dist/esm/action/client/ClientInteraction.js +6 -4
  28. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  29. package/dist/esm/peer/Peer.d.ts +10 -1
  30. package/dist/esm/peer/Peer.d.ts.map +1 -1
  31. package/dist/esm/peer/Peer.js +15 -5
  32. package/dist/esm/peer/Peer.js.map +1 -1
  33. package/dist/esm/peer/PeerAddressMonitor.d.ts +19 -1
  34. package/dist/esm/peer/PeerAddressMonitor.d.ts.map +1 -1
  35. package/dist/esm/peer/PeerAddressMonitor.js +100 -65
  36. package/dist/esm/peer/PeerAddressMonitor.js.map +1 -1
  37. package/dist/esm/peer/PeerExchangeProvider.d.ts +5 -1
  38. package/dist/esm/peer/PeerExchangeProvider.d.ts.map +1 -1
  39. package/dist/esm/peer/PeerExchangeProvider.js +3 -0
  40. package/dist/esm/peer/PeerExchangeProvider.js.map +1 -1
  41. package/dist/esm/peer/PeerTimingParameters.d.ts +2 -2
  42. package/dist/esm/peer/PeerTimingParameters.d.ts.map +1 -1
  43. package/dist/esm/peer/PeerTimingParameters.js +3 -3
  44. package/dist/esm/peer/PeerTimingParameters.js.map +1 -1
  45. package/dist/esm/protocol/ExchangeProvider.d.ts +11 -0
  46. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  47. package/dist/esm/protocol/ExchangeProvider.js +8 -0
  48. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  49. package/package.json +5 -5
  50. package/src/action/client/ClientInteraction.ts +7 -4
  51. package/src/peer/Peer.ts +20 -8
  52. package/src/peer/PeerAddressMonitor.ts +127 -92
  53. package/src/peer/PeerExchangeProvider.ts +5 -1
  54. package/src/peer/PeerTimingParameters.ts +5 -5
  55. package/src/protocol/ExchangeProvider.ts +12 -0
@@ -113,5 +113,7 @@ export interface ClientProbeOptions {
113
113
  abort?: AbortSignal;
114
114
  /** Suppress peer-loss reporting so the session stays alive even if the probe fails. */
115
115
  suppressPeerLoss?: boolean;
116
+ /** Cap MRP transmission attempts for this probe (default: MRP.MAX_TRANSMISSIONS). */
117
+ maxRetransmissions?: number;
116
118
  }
117
119
  //# sourceMappingURL=ClientInteraction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientInteraction.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientInteraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientInteraction.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientInteraction.ts"],"names":[],"mappings":"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"}
@@ -264,7 +264,8 @@ class ClientInteraction {
264
264
  try {
265
265
  await messenger.sendReadRequest((0, import_Read.Read)({ fabricFilter: false }), {
266
266
  abort,
267
- suppressPeerLoss: options?.suppressPeerLoss
267
+ suppressPeerLoss: options?.suppressPeerLoss,
268
+ maxRetransmissions: options?.maxRetransmissions
268
269
  });
269
270
  for await (const _report of messenger.readDataReports({ abort })) ;
270
271
  logger.info(
@@ -838,9 +839,10 @@ class ClientInteraction {
838
839
  abort: session?.abort,
839
840
  retries: this.#sustainRetries,
840
841
  read,
841
- // TCP has 1:1 session-connection binding plus OS keep-alive the session is
842
- // evicted when the connection drops, so no liveness probe is needed.
843
- probe: (abort) => this.#exchangeProvider.channelType === import_general.ChannelType.TCP ? Promise.resolve(true) : this.probe({ abort })
842
+ probe: (abort) => this.#exchangeProvider.channelType === import_general.ChannelType.TCP ? (
843
+ // TCP evicts the session when its connection drops, so no liveness probe is needed.
844
+ Promise.resolve(true)
845
+ ) : this.#exchangeProvider.verifyReachability({ reason: "session-suspect", abort })
844
846
  });
845
847
  } else {
846
848
  subscription = await subscribe(request);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/client/ClientInteraction.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["subscription", "request"]
6
6
  }
@@ -6,7 +6,7 @@
6
6
  import type { ClientInteraction } from "#action/client/ClientInteraction.js";
7
7
  import type { NodeProtocol } from "#action/protocols.js";
8
8
  import { PeerAddress } from "#peer/PeerAddress.js";
9
- import type { ExchangeProvider } from "#protocol/ExchangeProvider.js";
9
+ import type { ExchangeProvider, ReachabilityReason } from "#protocol/ExchangeProvider.js";
10
10
  import type { NodeSession } from "#session/NodeSession.js";
11
11
  import { SessionParameters } from "#session/SessionParameters.js";
12
12
  import { AsyncObservable, BasicSet, ChannelType, DnssdNames, Duration, Identity, IpChannelType, IpService, Lifetime } from "@matter/general";
@@ -111,6 +111,15 @@ export declare class Peer {
111
111
  toString(): string;
112
112
  get hasSession(): boolean;
113
113
  newestSession(type?: ChannelType): NodeSession | undefined;
114
+ /**
115
+ * Verify this peer is reachable, driving recovery via the address monitor.
116
+ *
117
+ * Returns `true` if the session is usable afterward, `false` if it was closed.
118
+ */
119
+ verifyReachability(options: {
120
+ reason: ReachabilityReason;
121
+ abort?: AbortSignal;
122
+ }): Promise<boolean>;
114
123
  }
115
124
  export declare namespace Peer {
116
125
  interface Context extends PeerConnection.Context {
@@ -1 +1 @@
1
- {"version":3,"file":"Peer.d.ts","sourceRoot":"","sources":["../../../src/peer/Peer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Peer.d.ts","sourceRoot":"","sources":["../../../src/peer/Peer.ts"],"names":[],"mappings":"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"}
@@ -156,15 +156,14 @@ class Peer {
156
156
  }
157
157
  } else {
158
158
  tagUdp(channel.networkAddress);
159
- channel.networkAddressChanged.on(tagUdp);
159
+ session.channel.networkAddressChanged.on(tagUdp);
160
160
  }
161
161
  }
162
162
  }
163
163
  session.closing.on(() => {
164
164
  this.#sessions.delete(session);
165
- const channel = session.channel.transportChannel;
166
- if ((0, import_general.isIpNetworkChannel)(channel)) {
167
- channel.networkAddressChanged.off(tagUdp);
165
+ if ((0, import_general.isIpNetworkChannel)(session.channel.transportChannel)) {
166
+ session.channel.networkAddressChanged.off(tagUdp);
168
167
  }
169
168
  });
170
169
  this.#descriptor.sessionParameters = session.parameters;
@@ -434,8 +433,8 @@ class Peer {
434
433
  try {
435
434
  const _lifetime = __using(_stack, this.#lifetime.closing());
436
435
  this.#observers.close();
437
- this.#addressMonitor?.stop();
438
436
  this.#abort(new import_general.ClosedError("Peer closed"));
437
+ await this.#addressMonitor?.close();
439
438
  for (const session of this.#context.sessions.sessionsFor(this.address)) {
440
439
  await session.initiateClose();
441
440
  }
@@ -493,6 +492,17 @@ class Peer {
493
492
  }
494
493
  return this.#addressMonitor;
495
494
  }
495
+ /**
496
+ * Verify this peer is reachable, driving recovery via the address monitor.
497
+ *
498
+ * Returns `true` if the session is usable afterward, `false` if it was closed.
499
+ */
500
+ async verifyReachability(options) {
501
+ if (!this.hasSession) {
502
+ return false;
503
+ }
504
+ return this.#addressCheck.verifyReachability(options);
505
+ }
496
506
  #initiateConnection(options) {
497
507
  if (this.#connecting) {
498
508
  if (options?.kick) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/Peer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import type { ReachabilityReason } from "#protocol/ExchangeProvider.js";
6
7
  import { Duration } from "@matter/general";
7
8
  import type { Peer } from "./Peer.js";
8
9
  /**
@@ -24,7 +25,7 @@ export declare class PeerAddressMonitor {
24
25
  constructor(peer: Peer, stabilizationDelay: Duration, probeCooldown: {
25
26
  minimum: Duration;
26
27
  maximum: Duration;
27
- }, abort: AbortSignal, trackWork: (work: PromiseLike<void>) => void);
28
+ }, abort: AbortSignal, trackWork: (work: PromiseLike<unknown>) => void);
28
29
  /**
29
30
  * Schedule a debounced address check. Restarts the timer on each call so rapid changes coalesce.
30
31
  */
@@ -33,5 +34,22 @@ export declare class PeerAddressMonitor {
33
34
  * Stop the timer. Does not cancel an in-flight probe.
34
35
  */
35
36
  stop(): void;
37
+ /**
38
+ * Tear down: stop the timer and await any in-flight run so teardown does not race a probe. The
39
+ * caller is expected to have aborted the peer first, so the in-flight run unwinds promptly.
40
+ */
41
+ close(): Promise<void>;
42
+ /**
43
+ * Verify the peer is reachable, driving recovery. Coalesces concurrent triggers into one run.
44
+ *
45
+ * An `address-change` run probes the current address then walks discovered alternates (migrating in
46
+ * place on success); a `session-suspect` run only probes the current address and never walks alternates.
47
+ * Returns `true` if the session is usable afterward (current address answered, or an alternate
48
+ * answered and the session migrated); `false` if no address answered and the session was closed.
49
+ */
50
+ verifyReachability(options: {
51
+ reason: ReachabilityReason;
52
+ abort?: AbortSignal;
53
+ }): Promise<boolean>;
36
54
  }
37
55
  //# sourceMappingURL=PeerAddressMonitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PeerAddressMonitor.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerAddressMonitor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,QAAQ,EAQX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKtC;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;;IAe3B,YACI,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,QAAQ,EAC5B,aAAa,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,EACvD,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAkB/C;IAED;;OAEG;IACH,QAAQ,SAOP;IAED;;OAEG;IACH,IAAI,SAEH;CAoIJ"}
1
+ {"version":3,"file":"PeerAddressMonitor.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerAddressMonitor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAIH,QAAQ,EAQX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQtC;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB;;IAc3B,YACI,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,QAAQ,EAC5B,aAAa,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,EACvD,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,EAUlD;IAED;;OAEG;IACH,QAAQ,SAOP;IAED;;OAEG;IACH,IAAI,SAEH;IAED;;;OAGG;IACG,KAAK,kBAGV;IAED;;;;;;;OAOG;IACG,kBAAkB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBvG;CAuIJ"}
@@ -29,6 +29,7 @@ var import_PeerCommunicationError = require("./PeerCommunicationError.js");
29
29
  * SPDX-License-Identifier: Apache-2.0
30
30
  */
31
31
  const logger = import_general.Logger.get("PeerAddressMonitor");
32
+ const PROBE_MAX_RETRANSMISSIONS = 2;
32
33
  class PeerAddressMonitor {
33
34
  #peer;
34
35
  #abort;
@@ -37,9 +38,8 @@ class PeerAddressMonitor {
37
38
  #cooldownMax;
38
39
  #trackWork;
39
40
  #probing;
40
- // Fibonacci backoff state — resets when probed IP changes
41
+ // Fibonacci backoff state — grows on each successful probe, resets only on a real reachability scare
41
42
  #lastProbeAt;
42
- #lastProbedIp;
43
43
  #fibPrev = 0;
44
44
  #fibCurr = 0;
45
45
  constructor(peer, stabilizationDelay, probeCooldown, abort, trackWork) {
@@ -49,13 +49,7 @@ class PeerAddressMonitor {
49
49
  this.#cooldownMax = probeCooldown.maximum;
50
50
  this.#trackWork = trackWork;
51
51
  this.#timer = import_general.Time.getTimer("address check stabilization", stabilizationDelay, () => {
52
- if (!this.#probing) {
53
- this.#probing = this.#check().finally(() => {
54
- this.#probing = void 0;
55
- this.schedule();
56
- });
57
- this.#trackWork(this.#probing);
58
- }
52
+ this.#trackWork(this.verifyReachability({ reason: "address-change", abort: this.#abort }));
59
53
  });
60
54
  }
61
55
  /**
@@ -74,79 +68,119 @@ class PeerAddressMonitor {
74
68
  stop() {
75
69
  this.#timer.stop();
76
70
  }
77
- async #check() {
71
+ /**
72
+ * Tear down: stop the timer and await any in-flight run so teardown does not race a probe. The
73
+ * caller is expected to have aborted the peer first, so the in-flight run unwinds promptly.
74
+ */
75
+ async close() {
76
+ this.#timer.stop();
77
+ await this.#probing;
78
+ }
79
+ /**
80
+ * Verify the peer is reachable, driving recovery. Coalesces concurrent triggers into one run.
81
+ *
82
+ * An `address-change` run probes the current address then walks discovered alternates (migrating in
83
+ * place on success); a `session-suspect` run only probes the current address and never walks alternates.
84
+ * Returns `true` if the session is usable afterward (current address answered, or an alternate
85
+ * answered and the session migrated); `false` if no address answered and the session was closed.
86
+ */
87
+ async verifyReachability(options) {
88
+ if (this.#probing === void 0) {
89
+ this.#probing = this.#run(options.reason).finally(() => {
90
+ this.#probing = void 0;
91
+ if (options.reason === "address-change") {
92
+ this.schedule();
93
+ }
94
+ });
95
+ }
96
+ const run = this.#probing;
97
+ return options.abort !== void 0 && options.abort !== this.#abort ? await import_general.Abort.race(options.abort, run) ?? false : run;
98
+ }
99
+ async #run(reason) {
100
+ const abort = this.#abort;
78
101
  const session = this.#peer.newestSession();
79
102
  const interaction = this.#peer.interaction;
80
103
  if (!session || !interaction) {
81
- return;
104
+ return false;
82
105
  }
83
106
  const channel = session.channel.transportChannel;
84
- if (!(0, import_general.isIpNetworkChannel)(channel)) {
85
- return;
86
- }
87
- if (channel.type === import_general.ChannelType.TCP) {
88
- return;
107
+ if (!(0, import_general.isIpNetworkChannel)(channel) || channel.type === import_general.ChannelType.TCP) {
108
+ return true;
89
109
  }
90
110
  const currentAddress = channel.networkAddress;
91
- const currentIp = currentAddress.ip;
92
111
  const discoveredAddresses = this.#peer.service.addresses;
93
- if (!discoveredAddresses.size) {
94
- return;
95
- }
96
- if (discoveredAddresses.has(currentAddress)) {
97
- return;
98
- }
99
- const via = session.via;
100
- if (currentIp !== this.#lastProbedIp) {
112
+ if (reason === "session-suspect") {
101
113
  this.#resetBackoff();
102
114
  }
103
- const lastKnownGood = (0, import_general.Timestamp)(Math.max(this.#lastProbeAt ?? 0, session.activeTimestamp));
104
- const cooldown = this.#currentCooldown;
105
- if (lastKnownGood > 0 && import_general.Timestamp.delta(lastKnownGood) < cooldown) {
106
- return;
115
+ if (reason === "address-change") {
116
+ const stillDiscovered = [...discoveredAddresses].some((addr) => import_general.ServerAddress.isEqual(addr, currentAddress));
117
+ if (!discoveredAddresses.size || stillDiscovered) {
118
+ return true;
119
+ }
120
+ const lastKnownGood = (0, import_general.Timestamp)(Math.max(this.#lastProbeAt ?? 0, session.activeTimestamp));
121
+ if (lastKnownGood > 0 && import_general.Timestamp.delta(lastKnownGood) < this.#currentCooldown) {
122
+ return true;
123
+ }
124
+ logger.info(
125
+ session.via,
126
+ "Session address",
127
+ import_general.Diagnostic.strong(import_general.ServerAddress.urlFor(currentAddress)),
128
+ "no longer in mDNS results, probing"
129
+ );
130
+ this.#lastProbeAt = import_general.Time.nowMs;
107
131
  }
108
- logger.info(
109
- via,
110
- "Session address",
111
- import_general.Diagnostic.strong(import_general.ServerAddress.urlFor(currentAddress)),
112
- "no longer in mDNS results, probing"
113
- );
114
- this.#lastProbeAt = import_general.Time.nowMs;
115
- this.#lastProbedIp = currentIp;
116
132
  const network = this.#peer.network;
117
133
  const probeNetwork = network.probeAddress ?? network;
118
- if (await interaction.probe({ network: probeNetwork.id, abort: this.#abort, suppressPeerLoss: true })) {
119
- this.#advanceBackoff();
120
- return;
121
- }
122
- for (const ipAddress of discoveredAddresses) {
123
- if (this.#abort.aborted) {
124
- return;
134
+ if (await interaction.probe({
135
+ network: probeNetwork.id,
136
+ abort,
137
+ suppressPeerLoss: true,
138
+ maxRetransmissions: PROBE_MAX_RETRANSMISSIONS
139
+ })) {
140
+ if (reason === "address-change") {
141
+ this.#advanceBackoff();
125
142
  }
126
- const address = { ...ipAddress, type: "udp" };
127
- if (await interaction.probe({
128
- network: probeNetwork.id,
129
- abort: this.#abort,
130
- addressOverride: address,
131
- suppressPeerLoss: true
132
- })) {
133
- logger.info(
134
- via,
135
- "Discovered address reachable, migrating session to",
136
- import_general.Diagnostic.strong(import_general.ServerAddress.urlFor(address))
137
- );
138
- session.channel.networkAddress = address;
139
- interaction.subscriptions.closeForPeer(this.#peer.address);
140
- this.#resetBackoff();
141
- return;
143
+ return true;
144
+ }
145
+ if (reason === "address-change") {
146
+ for (const ipAddress of discoveredAddresses) {
147
+ if (abort.aborted) {
148
+ return false;
149
+ }
150
+ if (import_general.ServerAddress.isEqual(ipAddress, currentAddress)) {
151
+ continue;
152
+ }
153
+ const address = { ...ipAddress, type: "udp" };
154
+ if (await interaction.probe({
155
+ network: probeNetwork.id,
156
+ abort,
157
+ addressOverride: address,
158
+ suppressPeerLoss: true,
159
+ maxRetransmissions: PROBE_MAX_RETRANSMISSIONS
160
+ })) {
161
+ logger.info(
162
+ session.via,
163
+ "Discovered address reachable, migrating session to",
164
+ import_general.Diagnostic.strong(import_general.ServerAddress.urlFor(address))
165
+ );
166
+ session.channel.networkAddress = address;
167
+ interaction.subscriptions.closeForPeer(this.#peer.address);
168
+ this.#resetBackoff();
169
+ return true;
170
+ }
142
171
  }
172
+ this.#resetBackoff();
143
173
  }
144
- this.#resetBackoff();
145
- if (this.#abort.aborted) {
146
- return;
174
+ if (abort.aborted) {
175
+ return false;
176
+ }
177
+ logger.info(session.via, "All probes failed, closing session");
178
+ try {
179
+ await session.handlePeerLoss({ cause: new import_PeerCommunicationError.PeerUnresponsiveError() });
180
+ } catch (error) {
181
+ logger.warn(session.via, "Error closing unreachable session", error);
147
182
  }
148
- logger.info(via, "All probes failed, closing session");
149
- await session.handlePeerLoss({ cause: new import_PeerCommunicationError.PeerUnresponsiveError() });
183
+ return false;
150
184
  }
151
185
  /** Current cooldown duration based on Fibonacci position. */
152
186
  get #currentCooldown() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/PeerAddressMonitor.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { PeerAddress } from "#peer/PeerAddress.js";
7
- import { ExchangeProvider, NewExchangeOptions } from "#protocol/ExchangeProvider.js";
7
+ import { ExchangeProvider, NewExchangeOptions, type ReachabilityReason } from "#protocol/ExchangeProvider.js";
8
8
  import type { MessageExchange } from "#protocol/MessageExchange.js";
9
9
  import { ChannelType, Duration } from "@matter/general";
10
10
  import { Peer } from "./Peer.js";
@@ -23,6 +23,10 @@ export declare class PeerExchangeProvider extends ExchangeProvider {
23
23
  */
24
24
  get channelType(): ChannelType;
25
25
  connect(options?: NewExchangeOptions): Promise<void>;
26
+ verifyReachability(options: {
27
+ reason: ReachabilityReason;
28
+ abort?: AbortSignal;
29
+ }): Promise<boolean>;
26
30
  initiateExchange(options?: NewExchangeOptions): Promise<MessageExchange>;
27
31
  maximumPeerResponseTime(expectedProcessingTime?: Duration, includeMaximumSendingTime?: boolean): Duration;
28
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PeerExchangeProvider.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerExchangeProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;;IAItD,YAAY,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAKtD;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,WAAW,gBAEd;IAED;;;OAGG;IACH,IAAI,WAAW,gBAMd;IAEc,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;IAEc,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwEtF;IAEQ,uBAAuB,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAQjH;CACJ"}
1
+ {"version":3,"file":"PeerExchangeProvider.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerExchangeProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC9G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;;IAItD,YAAY,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAKtD;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,WAAW,gBAEd;IAED;;;OAGG;IACH,IAAI,WAAW,gBAMd;IAEc,OAAO,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;IAEQ,kBAAkB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1G;IAEc,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwEtF;IAEQ,uBAAuB,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,yBAAyB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAQjH;CACJ"}
@@ -67,6 +67,9 @@ class PeerExchangeProvider extends import_ExchangeProvider.ExchangeProvider {
67
67
  preferredTransport: options?.preferredTransport
68
68
  });
69
69
  }
70
+ verifyReachability(options) {
71
+ return this.#peer.verifyReachability(options);
72
+ }
70
73
  async initiateExchange(options) {
71
74
  const abort = options?.abort;
72
75
  const isGroup = import_PeerAddress.PeerAddress.isGroup(this.#peer.address);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/PeerExchangeProvider.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }