@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.
- package/dist/cjs/action/client/ClientInteraction.d.ts +2 -0
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +6 -4
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/peer/Peer.d.ts +10 -1
- package/dist/cjs/peer/Peer.d.ts.map +1 -1
- package/dist/cjs/peer/Peer.js +15 -5
- package/dist/cjs/peer/Peer.js.map +1 -1
- package/dist/cjs/peer/PeerAddressMonitor.d.ts +19 -1
- package/dist/cjs/peer/PeerAddressMonitor.d.ts.map +1 -1
- package/dist/cjs/peer/PeerAddressMonitor.js +99 -65
- package/dist/cjs/peer/PeerAddressMonitor.js.map +1 -1
- package/dist/cjs/peer/PeerExchangeProvider.d.ts +5 -1
- package/dist/cjs/peer/PeerExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/peer/PeerExchangeProvider.js +3 -0
- package/dist/cjs/peer/PeerExchangeProvider.js.map +1 -1
- package/dist/cjs/peer/PeerTimingParameters.d.ts +2 -2
- package/dist/cjs/peer/PeerTimingParameters.d.ts.map +1 -1
- package/dist/cjs/peer/PeerTimingParameters.js +2 -2
- package/dist/cjs/peer/PeerTimingParameters.js.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.d.ts +11 -0
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +8 -0
- package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts +2 -0
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +6 -4
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/peer/Peer.d.ts +10 -1
- package/dist/esm/peer/Peer.d.ts.map +1 -1
- package/dist/esm/peer/Peer.js +15 -5
- package/dist/esm/peer/Peer.js.map +1 -1
- package/dist/esm/peer/PeerAddressMonitor.d.ts +19 -1
- package/dist/esm/peer/PeerAddressMonitor.d.ts.map +1 -1
- package/dist/esm/peer/PeerAddressMonitor.js +100 -65
- package/dist/esm/peer/PeerAddressMonitor.js.map +1 -1
- package/dist/esm/peer/PeerExchangeProvider.d.ts +5 -1
- package/dist/esm/peer/PeerExchangeProvider.d.ts.map +1 -1
- package/dist/esm/peer/PeerExchangeProvider.js +3 -0
- package/dist/esm/peer/PeerExchangeProvider.js.map +1 -1
- package/dist/esm/peer/PeerTimingParameters.d.ts +2 -2
- package/dist/esm/peer/PeerTimingParameters.d.ts.map +1 -1
- package/dist/esm/peer/PeerTimingParameters.js +3 -3
- package/dist/esm/peer/PeerTimingParameters.js.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.d.ts +11 -0
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +8 -0
- package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
- package/package.json +5 -5
- package/src/action/client/ClientInteraction.ts +7 -4
- package/src/peer/Peer.ts +20 -8
- package/src/peer/PeerAddressMonitor.ts +127 -92
- package/src/peer/PeerExchangeProvider.ts +5 -1
- package/src/peer/PeerTimingParameters.ts +5 -5
- 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":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAU,MAAM,2BAA2B,CAAC;AAMjE,OAAO,EAAE,mBAAmB,EAAgB,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAe,MAAM,sCAAsC,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EACH,KAAK,EAIL,WAAW,EAIX,QAAQ,EAER,WAAW,EASX,aAAa,EAEb,gBAAgB,EAGnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAUhF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAgBhE;AAaD,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI,OAAO,CACjF,CAAC,SAAS;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,qBAAqB,GAAG,gBAAgB,CACzE,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;IAC7C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,0BAA0B,UAAa,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,yCAAyC,UAAc,CAAC;AAKrE;;GAEG;AACH,qBAAa,iBAAiB,CAC1B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CAC1D,YAAW,YAAY,CAAC,QAAQ,CAAC;;IAiB/B,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,wBAAwB,EAyB/G;IAEK,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,iBAgCzB;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,kBAE1B;IAED,IAAI,aAAa,wBAKhB;IAED;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,UAAU,CAoCzF;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
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
|
-
|
|
842
|
-
|
|
843
|
-
|
|
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
|
}
|
package/dist/cjs/peer/Peer.d.ts
CHANGED
|
@@ -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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"Peer.d.ts","sourceRoot":"","sources":["../../../src/peer/Peer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAGH,eAAe,EAEf,QAAQ,EACR,WAAW,EAGX,UAAU,EACV,QAAQ,EACR,QAAQ,EAER,aAAa,EACb,SAAS,EAET,QAAQ,EAQX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAmB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAA4B,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI9E;;GAEG;AACH,qBAAa,IAAI;;IAYb;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC;IAQtC,YAAY,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAgF5D;IAED;;OAEG;IACH,IAAI,OAAO,wCAEV;IAED,IAAI,QAAQ,aAEX;IAED,IAAI,MAAM,iCAET;IAED,IAAI,WAAW,IAIc,iBAAiB,GAAG,SAAS,CAFzD;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAEzD;IAED,IAAI,QAAQ,IAIW,YAAY,GAAG,SAAS,CAF9C;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,EAE9C;IAED,IAAI,kBAAkB,IAIQ,wBAAwB,GAAG,SAAS,CAFjE;IAED,IAAI,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAEjE;IAED,IAAI,gBAAgB,IACoD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CACxG;IAED,IAAI,MAAM;;;MAMT;IAED,IAAI,OAAO,gBAEV;IAED,IAAI,UAAU,mBAEb;IAED,IAAI,QAAQ,uCAEX;IAED,IAAI,aAAa,yCAGhB;IAED,IAAI,gBAAgB,qBAKnB;IAED,IAAI,OAAO,cAEV;IAED;;OAEG;IACH,IAAI,iBAAiB,sBAgBpB;IAED,IAAI,OAAO,iDAEV;IAED;;;;;OAKG;IACH,IAAI,WAAW,aAMd;IAED;;;;OAIG;IACH,kBAAkB,SAKjB;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,GAAG,SAAS,CAEhH;IAkDD;;OAEG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,6DA0E1C;IAED;;;;;;OAMG;IACH,IAAI,SAEH;IAED;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,iBAgB7B;IAED;;OAEG;IACG,MAAM,kBASX;IAED;;OAEG;IACG,KAAK,kBAmBV;IAED,QAAQ,WAEP;IAED,IAAI,UAAU,YAEb;IAQD,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,2BAmB/B;IAeD;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAC;QAAC,KAAK,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvG;CAgDJ;AAED,yBAAiB,IAAI,CAAC,CAAC;IACnB,UAAiB,OAAQ,SAAQ,cAAc,CAAC,OAAO;QACnD,KAAK,EAAE,UAAU,CAAC;QAClB,QAAQ,EAAE,eAAe,CAAC;QAC1B,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;KAC5B;IAED,UAAiB,gBAAiB,SAAQ,QAAQ,CAAC;QAC/C,QAAQ,EAAE,CAAC,IAAI,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;KACrF,CAAC;KAAG;IAEL,UAAiB,cAAc;QAC3B;;WAEG;QACH,KAAK,CAAC,EAAE,WAAW,CAAC;QAEpB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB;;;WAGG;QACH,kBAAkB,CAAC,EAAE,QAAQ,CAAC;QAE9B;;;;;;;;WAQG;QACH,iBAAiB,CAAC,EAAE,QAAQ,CAAC;QAE7B;;;;WAIG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC;QAEf;;;;;;;;WAQG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAEvC;;;WAGG;QACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;QAEhC;;;WAGG;QACH,kBAAkB,CAAC,EAAE,WAAW,CAAC;QAEjC;;;;;WAKG;QACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC;KACnD;CACJ"}
|
package/dist/cjs/peer/Peer.js
CHANGED
|
@@ -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
|
-
|
|
166
|
-
|
|
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,qBAA8B;AAC9B,wBAA0C;AAC1C,yBAA4B;AAG5B,+BAAkC;AAClC,qBAwBO;AACP,+BAAiC;AAEjC,gCAAmC;AACnC,oCAAqC;AACrC,4BAAgD;AAChD,4BAAyD;AACzD,kCAAqC;AACrC,kCAAqC;AA9CrC;AAAA;AAAA;AAAA;AAAA;AAiDA,MAAM,SAAS,sBAAO,IAAI,MAAM;AAKzB,MAAM,KAAK;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,IAAI,wBAAsB;AAAA,EACtC;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,IAAI,qBAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa,IAAI,6BAAc;AAAA,EAC/B;AAAA,EACA,eAAW,gCAA8B;AAAA,EACzC;AAAA,EAEA,YAAY,YAA4B,SAAuB;AAC3D,SAAK,YAAY,QAAQ,KAAK,WAAW,QAAQ,SAAS,CAAC;AAC3D,SAAK,WAAW,IAAI,8BAAe;AAEnC,SAAK,cAAc,IAAI,+CAAyB,YAAY,MAAM;AAC9D,UAAI,KAAK,WAAW;AAChB;AAAA,MACJ;AAEA,WAAK,YAAY;AACjB,WAAK,SAAS,IAAI,KAAK,MAAM,CAAC;AAAA,IAClC,CAAC;AAED,SAAK,WAAW,IAAI;AAAA,UAChB;AAAA,QACI,QAAQ,SAAS,UAAU,WAAW,OAAO,EAAE;AAAA,QAC/C,WAAW,QAAQ;AAAA,MACvB;AAAA,MAEA,0BAAW,IAAI,KAAK,QAAQ,SAAS,CAAC;AAAA,MAEtC,QAAQ;AAAA,IACZ;AAGA,QAAI,WAAW,oBAAoB;AAC/B,WAAK,SAAS,OAAO,cAAc;AAAA,IACvC;AAEA,SAAK,WAAW;AAEhB,SAAK,WAAW,GAAG,KAAK,SAAS,SAAS,MAAM;AAE5C,WAAK,YAAY,gBAAgB;AAAA,QAC7B,GAAG,KAAK,YAAY;AAAA,QACpB,OAAG,8BAAc,KAAK,SAAS,UAAU;AAAA,MAC7C;AAGA,WAAK,cAAc,SAAS;AAAA,IAChC,CAAC;AAED,SAAK,WAAW,GAAG,KAAK,UAAU,OAAO,aAAW;AAChD,YAAM,SAAS,CAAC,SAA0B;AACtC,aAAK,YAAY,qBAAqB,EAAE,GAAG,MAAM,MAAM,MAAM;AAAA,MACjE;AAGA,UAAI,CAAC,QAAQ,UAAU;AACnB,cAAM,UAAU,QAAQ,QAAQ;AAChC,gBAAI,mCAAmB,OAAO,GAAG;AAC7B,cAAI,QAAQ,SAAS,2BAAY,KAAK;AAElC,kBAAM,iBAAiB,CAAC,GAAG,KAAK,SAAS,SAAS,EAAE,CAAC,GAAG;AACxD,gBAAI,mBAAmB,QAAW;AAC9B,mBAAK,YAAY,qBAAqB;AAAA,gBAClC,MAAM;AAAA,gBACN,IAAI,QAAQ,eAAe;AAAA,gBAC3B,MAAM;AAAA,cACV;AAAA,YACJ;AAAA,UACJ,OAAO;AACH,mBAAO,QAAQ,cAAc;
|
|
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<
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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({
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
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;
|
|
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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAA4B;AAC5B,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|