@matter/protocol 0.16.0-alpha.0-20251210-206ca2db7 → 0.16.0-alpha.0-20251211-0f80042cf
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 +10 -3
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +35 -14
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +22 -23
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts +2 -0
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.js +7 -2
- package/dist/cjs/action/client/subscription/PeerSubscription.js.map +1 -1
- package/dist/cjs/action/request/Subscribe.d.ts +0 -1
- package/dist/cjs/action/request/Subscribe.d.ts.map +1 -1
- package/dist/cjs/action/request/Subscribe.js.map +1 -1
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts +1 -2
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts.map +1 -1
- package/dist/cjs/peer/index.d.ts +1 -0
- package/dist/cjs/peer/index.d.ts.map +1 -1
- package/dist/cjs/peer/index.js +1 -0
- package/dist/cjs/peer/index.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +5 -6
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +6 -1
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +11 -6
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts +10 -3
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +35 -14
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +22 -23
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts +2 -0
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/PeerSubscription.js +7 -2
- package/dist/esm/action/client/subscription/PeerSubscription.js.map +1 -1
- package/dist/esm/action/request/Subscribe.d.ts +0 -1
- package/dist/esm/action/request/Subscribe.d.ts.map +1 -1
- package/dist/esm/action/request/Subscribe.js.map +1 -1
- package/dist/esm/interaction/AttributeDataDecoder.d.ts +1 -2
- package/dist/esm/interaction/AttributeDataDecoder.d.ts.map +1 -1
- package/dist/esm/peer/index.d.ts +1 -0
- package/dist/esm/peer/index.d.ts.map +1 -1
- package/dist/esm/peer/index.js +1 -0
- package/dist/esm/peer/index.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +5 -6
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +6 -1
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +11 -6
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientInteraction.ts +45 -16
- package/src/action/client/subscription/ClientSubscriptionHandler.ts +29 -30
- package/src/action/client/subscription/PeerSubscription.ts +8 -2
- package/src/action/request/Subscribe.ts +0 -1
- package/src/interaction/AttributeDataDecoder.ts +1 -1
- package/src/peer/index.ts +1 -0
- package/src/protocol/ExchangeManager.ts +5 -6
- package/src/protocol/MessageExchange.ts +14 -9
|
@@ -252,13 +252,13 @@ class ExchangeManager {
|
|
|
252
252
|
});
|
|
253
253
|
if (exchange !== void 0) {
|
|
254
254
|
this.#lifetime.details.exchange = exchange.idStr;
|
|
255
|
-
if (exchange.session.id !== packet.header.sessionId || exchange.
|
|
255
|
+
if (exchange.session.id !== packet.header.sessionId || exchange.considerClosed && !isStandaloneAck) {
|
|
256
256
|
logger.debug(
|
|
257
257
|
exchange.via,
|
|
258
258
|
"Ignore",
|
|
259
259
|
Mark.INBOUND,
|
|
260
260
|
"message because",
|
|
261
|
-
exchange.
|
|
261
|
+
exchange.considerClosed ? "exchange is closing" : `session ID mismatch (header session is ${Session.idStrOf(packet)}`,
|
|
262
262
|
messageDiagnostics
|
|
263
263
|
);
|
|
264
264
|
await exchange.send(SecureMessageType.StandaloneAck, new Uint8Array(0), {
|
|
@@ -272,9 +272,8 @@ class ExchangeManager {
|
|
|
272
272
|
} else {
|
|
273
273
|
if (this.#isClosing) return;
|
|
274
274
|
if (session.isClosing) {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
);
|
|
275
|
+
logger.debug(`Declining new exchange because session ${Session.idStrOf(packet)} is closing`);
|
|
276
|
+
return;
|
|
278
277
|
}
|
|
279
278
|
const protocolHandler = this.#protocols.get(message.payloadHeader.protocolId);
|
|
280
279
|
const handlerSecurityMismatch = protocolHandler?.requiresSecureSession !== void 0 && protocolHandler.requiresSecureSession !== session.isSecure;
|
|
@@ -346,7 +345,7 @@ class ExchangeManager {
|
|
|
346
345
|
return;
|
|
347
346
|
}
|
|
348
347
|
const sessionExchanges = Array.from(this.#exchanges.values()).filter(
|
|
349
|
-
(exchange) => exchange.session.id === sessionId && !exchange.
|
|
348
|
+
(exchange) => exchange.session.id === sessionId && !exchange.considerClosed
|
|
350
349
|
);
|
|
351
350
|
if (sessionExchanges.length <= MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION) {
|
|
352
351
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/ExchangeManager.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["_stack", "_", "_error", "_hasError", "exchange"]
|
|
6
6
|
}
|
|
@@ -67,12 +67,12 @@ export declare class MessageExchange {
|
|
|
67
67
|
get isInitiator(): boolean;
|
|
68
68
|
/** Emits when the exchange is actually closed. This happens after all Retries and Communication are done. */
|
|
69
69
|
get closed(): AsyncObservableValue<[any, ...any[]]>;
|
|
70
|
+
get considerClosed(): any;
|
|
70
71
|
/**
|
|
71
72
|
* Emit when the exchange is closing, but not yet closed. We only wait for acks and retries to happen, but the
|
|
72
73
|
* actual interaction logic is already done.
|
|
73
74
|
*/
|
|
74
75
|
get closing(): AsyncObservableValue<[any, ...any[]]>;
|
|
75
|
-
get isClosing(): any;
|
|
76
76
|
get id(): number;
|
|
77
77
|
get idStr(): string;
|
|
78
78
|
get session(): Session;
|
|
@@ -96,6 +96,11 @@ export declare class MessageExchange {
|
|
|
96
96
|
hasTimedInteraction(): boolean;
|
|
97
97
|
hasActiveTimedInteraction(): boolean;
|
|
98
98
|
hasExpiredTimedInteraction(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Closes the exchange.
|
|
101
|
+
* If force is true, the exchange will be closed immediately, even if there are still messages to send.
|
|
102
|
+
* If force is false, the exchange will be closed only after all messages have been sent.
|
|
103
|
+
*/
|
|
99
104
|
close(force?: boolean): Promise<void>;
|
|
100
105
|
get via(): string;
|
|
101
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageExchange.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageExchange.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAA6B,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EACH,oBAAoB,EACpB,KAAK,EAKL,QAAQ,EAIR,QAAQ,EAMX,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAEH,MAAM,EAKT,MAAM,QAAQ,CAAC;AAMhB,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,QAAQ,CAAC;IAElC,gGAAgG;IAChG,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,qFAAqF;IACrF,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,qGAAqG;IACrG,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAIhC,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAyC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,sBAAsB,EAAE,iBAAiB,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,eAAe;;IACxB,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,OAAO;IAalF,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;gBA8C3E,MAAM,EAAE,eAAe,CAAC,MAAM;IAwC1C,IAAI,OAAO,2BAEV;IAED,IAAI,WAAW,YAEd;IAED,6GAA6G;IAC7G,IAAI,MAAM,0CAET;IAED;;;OAGG;IACH,IAAI,OAAO,0CAEV;IAED,IAAI,
|
|
1
|
+
{"version":3,"file":"MessageExchange.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageExchange.ts"],"names":[],"mappings":"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"}
|
|
@@ -175,6 +175,9 @@ class MessageExchange {
|
|
|
175
175
|
get closed() {
|
|
176
176
|
return this.#closed;
|
|
177
177
|
}
|
|
178
|
+
get considerClosed() {
|
|
179
|
+
return this.#closed.value || this.#isInitiator && this.#closing.value;
|
|
180
|
+
}
|
|
178
181
|
/**
|
|
179
182
|
* Emit when the exchange is closing, but not yet closed. We only wait for acks and retries to happen, but the
|
|
180
183
|
* actual interaction logic is already done.
|
|
@@ -182,9 +185,6 @@ class MessageExchange {
|
|
|
182
185
|
get closing() {
|
|
183
186
|
return this.#closing;
|
|
184
187
|
}
|
|
185
|
-
get isClosing() {
|
|
186
|
-
return this.#closing.value;
|
|
187
|
-
}
|
|
188
188
|
get id() {
|
|
189
189
|
return this.#exchangeId;
|
|
190
190
|
}
|
|
@@ -439,8 +439,8 @@ class MessageExchange {
|
|
|
439
439
|
}
|
|
440
440
|
#retransmitMessage(message, expectedProcessingTime) {
|
|
441
441
|
this.#retransmissionCounter++;
|
|
442
|
-
if (this.
|
|
443
|
-
if (expectedProcessingTime && !this.
|
|
442
|
+
if (this.considerClosed || this.#retransmissionCounter >= MRP.MAX_TRANSMISSIONS) {
|
|
443
|
+
if (expectedProcessingTime && !this.considerClosed) {
|
|
444
444
|
const finalWaitTime = Millis(
|
|
445
445
|
this.channel.calculateMaximumPeerResponseTime(
|
|
446
446
|
this.session.parameters,
|
|
@@ -554,7 +554,12 @@ class MessageExchange {
|
|
|
554
554
|
hasExpiredTimedInteraction() {
|
|
555
555
|
return this.#timedInteractionTimer !== void 0 && !this.#timedInteractionTimer.isRunning;
|
|
556
556
|
}
|
|
557
|
-
|
|
557
|
+
/**
|
|
558
|
+
* Closes the exchange.
|
|
559
|
+
* If force is true, the exchange will be closed immediately, even if there are still messages to send.
|
|
560
|
+
* If force is false, the exchange will be closed only after all messages have been sent.
|
|
561
|
+
*/
|
|
562
|
+
async close(force = false) {
|
|
558
563
|
if (this.#isDestroyed) {
|
|
559
564
|
return;
|
|
560
565
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/MessageExchange.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAuB,mBAAmB;AACnD,SAAS,YAAY;AACrB;AAAA,EACI;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEG;AACP,SAAS,oBAAoB;AAE7B,SAAS,eAAe;AAExB;AAAA,EACI;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,iCAAiC,oBAAoB,8BAA8B;AAC5F,SAAS,kCAAkC,WAAW;AAEtD,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAiDpC,MAAM,0BAA0B,KAAK,KAAK;AAgB1C,MAAM,gBAAgB;AAAA,EACzB,OAAO,mBAAmB,SAAiC,gBAAyB;AAChF,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,IAAI,gBAAgB;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,MACb,eAAe,QAAQ;AAAA,MACvB,QAAQ,eAAe,aAAa;AAAA,MACpC,YAAY,eAAe,aAAa;AAAA,MACxC,YAAY,eAAe,cAAc;AAAA,MACzC,YAAY,eAAe,cAAc;AAAA,IAC7C,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,SAAS,SAAiC,YAAoB,YAAoB;AACrF,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,IAAI,gBAAgB;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,MACb,eAAe,QAAQ;AAAA,MACvB,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAES;AAAA,EACA;AAAA,EACA,iBAAiB,IAAI,cAAuB;AAAA,EAC5C;AAAA,EACT;AAAA,EACA,2BAA2B,KAAK,SAAS,uBAAuB,IAAI,wBAAwB,MAAM;AAC9F,QAAI,KAAK,0BAA0B,QAAW;AAC1C,YAAM,eAAe,KAAK;AAC1B,WAAK,wBAAwB;AAE7B,WAAK,6BAA6B,YAAY,EAAE;AAAA,QAAM,WAClD,OAAO,MAAM,mDAAmD,KAAK;AAAA,MACzE;AAAA,IACJ;AAAA,EACJ,CAAC;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,yBAAyB;AAAA,EACzB;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EAES;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,qBAAqB;AAAA,EAC/B,WAAW,qBAAqB;AAAA,EAEzC,YAAY,QAAgC;AACxC,UAAM,EAAE,SAAS,aAAa,eAAe,QAAQ,YAAY,YAAY,WAAW,IAAI;AAE5F,SAAK,WAAW;AAChB,SAAK,eAAe;AACpB,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,cAAc;AAEnB,UAAM,EAAE,iBAAiB,gBAAgB,aAAa,IAAI,KAAK,QAAQ;AAEvE,SAAK,QAAQ,CAAC;AAEd,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO;AAAA,MACH;AAAA,MACA,cAAc,KAAK,WAAW,KAAK;AAAA,MACnC,KAAK;AAAA,MACL,WAAW,KAAK;AAAA,QACZ,UAAU,KAAK;AAAA,QACf,UAAU,QAAQ,QAAQ,KAAK,cAAc;AAAA,QAC7C,KAAK,SAAS,OAAO,eAAe;AAAA,QACpC,KAAK,SAAS,OAAO,cAAc;AAAA,QACnC,KAAK,SAAS,OAAO,YAAY;AAAA,QACjC,UAAU,IAAI;AAAA,QACd,eAAe,WAAW,QAAQ;AAAA,UAC9B,KAAK,KAAK,QAAQ;AAAA,UAClB,GAAG,KAAK;AAAA,QACZ,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AAEA,YAAQ,YAAY,IAAI;AAGxB,SAAK,YAAY,KAAK,SAAS,QAAQ,KAAK,YAAY,WAAW,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;AAAA,EAC7F;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ,SAAU,KAAK,gBAAgB,KAAK,SAAS;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,KAAK;AACL,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,IAAI,KAAK,KAAK,WAAW;AAAA,EACpC;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AAGjB,WAAO,KAAK,QAAQ,iBAAiB;AAAA,EACzC;AAAA,EAEA,QAAQ,MAAiB;AACrB,WAAO,KAAK,UAAU,KAAK,GAAG,IAAI;AAAA,EACtC;AAAA,EAEA,MAAM,kBAAkB,SAAkB,YAAY,OAAO;AACzD,WAAO,MAAM,WAAW,KAAK,SAAS,QAAQ,cAAc,MAAM,SAAS,EAAE,UAAU,CAAC,CAAC;AAGzF,QAAI,QAAQ,cAAc,eAAe,CAAC,KAAK,QAAQ,SAAS;AAC5D,aAAO,MAAM,sEAAsE;AACnF,cAAQ,cAAc,cAAc;AAAA,IACxC;AAEA,UAAM;AAAA,MACF,cAAc,EAAE,UAAU;AAAA,MAC1B,eAAe,EAAE,aAAa,gBAAgB,YAAY,YAAY;AAAA,IAC1E,IAAI;AAEJ,UAAM,kBAAkB,kBAAkB,gBAAgB,YAAY,WAAW;AACjF,QAAI,eAAe,KAAK,eAAe,CAAC,iBAAiB;AACrD,YAAM,IAAI;AAAA,QACN,iEAAiE,KAAK,WAAW,eAAe,UAAU;AAAA,MAC9G;AAAA,IACJ;AAEA,SAAK,QAAQ,eAAe,IAAI;AAEhC,QAAI,WAAW;AAEX,UAAI,aAAa;AACb,cAAM,KAAK,6BAA6B,OAAO;AAAA,MACnD;AACA;AAAA,IACJ;AACA,QAAI,cAAc,KAAK,mBAAmB,cAAc,gBAAgB;AAGpE;AAAA;AAAA,cAAM,UAAU,qBAAK,KAAK,eAAe;AACzC,cAAM,KAAK,QAAQ,KAAK,KAAK,iBAAiB;AAC9C;AAAA,eAFA;AAAA;AAAA;AAAA;AAAA;AAAA,IAGJ;AACA,UAAM,qBAAqB,KAAK,mBAAmB,aAAa;AAChE,QAAI,uBAAuB,QAAW;AAClC,UAAI,mBAAmB,QAAW;AAE9B,cAAM,IAAI,gBAAgB,iCAAiC;AAAA,MAC/D,WAAW,mBAAmB,oBAAoB;AAE9C,YAAI,iBAAiB;AAAA,QAErB,OAAO;AACH,gBAAM,IAAI;AAAA,YACN,oCAAoC,kBAAkB,eAAe,cAAc;AAAA,UACvF;AAAA,QACJ;AAAA,MACJ,OAAO;AAEH,aAAK,sBAAsB,KAAK;AAChC,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB,OAAO;AACrC,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB;AAC9B,aAAK,oBAAoB;AACzB,YAAI,mBAAmB,KAAK,gBAAgB,QAAW;AAEnD,iBAAO,KAAK,OAAO;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,iBAAiB;AAEjB;AAAA,IACJ;AACA,QAAI,aAAa;AAEb,UAAI,KAAK,0BAA0B,QAAW;AAC1C,aAAK,yBAAyB,KAAK;AACnC,cAAM,KAAK,6BAA6B,KAAK,qBAAqB;AAClE;AAAA,MACJ;AACA,WAAK,wBAAwB;AAC7B,WAAK,yBAAyB,MAAM;AAAA,IACxC;AACA,SAAK,eAAe,MAAM,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,KAAK,aAAqB,SAAgB,UAA+B,CAAC,GAAG;AA2G/E,QAAAA,UAAA;AAAA;AA1GA,YAAM;AAAA,QACF,gBAAgB;AAAA,QAChB;AAAA,QACA,yBAAyB;AAAA,QACzB;AAAA,QACA;AAAA,QACA,aAAa,KAAK;AAAA,MACtB,IAAI;AAEJ,UAAI,CAAC,KAAK,QAAQ,WAAW,gCAAgC,QAAW;AACpE,cAAM,IAAI,cAAc,+DAA+D;AAAA,MAC3F;AAEA,UAAI,EAAE,YAAY,IAAI;AACtB,UAAI,eAAe,EAAE,KAAK,QAAQ,WAAY,KAAK,QAAwB,aAAa;AACpF,sBAAc;AAAA,MAClB;AAEA,YAAM,kBAAkB,kBAAkB,gBAAgB,YAAY,WAAW;AACjF,UAAI,iBAAiB;AACjB,YAAI,CAAC,KAAK,QAAQ,SAAS;AACvB;AAAA,QACJ;AACA,YAAI,aAAa;AACb,gBAAM,IAAI,gBAAgB,mDAAmD;AAAA,QACjF;AAAA,MACJ;AACA,UAAI,KAAK,sBAAsB,UAAa,CAAC,iBAAiB;AAC1D,cAAM,IAAI,gBAAgB,yEAAyE;AAAA,MACvG;AAEA,WAAK,QAAQ;AACb,WAAK,QAAQ,eAAe,KAAK;AAEjC,UAAI,iBAAiB;AACrB,UAAI,mBAAmB,UAAa,KAAK,QAAQ,SAAS;AACtD,yBAAiB,KAAK,uBAAuB,aAAa;AAC1D,YAAI,mBAAmB,QAAW;AAC9B,eAAK,yBAAyB,KAAK;AACnC,eAAK,wBAAwB;AAAA,QACjC;AAAA,MACJ;AAEA,UAAI;AACJ,UAAI,KAAK,QAAQ,SAAS,YAAY,SAAS;AAC3C,uBAAe;AAAA,UACX,WAAW,KAAK;AAAA,UAChB,aAAa,YAAY;AAAA,UACzB,WAAW,MAAM,KAAK,QAAQ,6BAA6B;AAAA,UAC3D,YAAY,KAAK;AAAA,UACjB,cAAc,KAAK;AAAA,UACnB,wBAAwB;AAAA,UACxB,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QAC1B;AAAA,MACJ,WAAW,KAAK,QAAQ,SAAS,YAAY,OAAO;AAChD,cAAM,UAAU,KAAK;AACrB,YAAI,CAAC,aAAa,GAAG,OAAO,GAAG;AAC3B,gBAAM,IAAI,cAAc,2DAA2D;AAAA,QACvF;AACA,cAAM,cAAc,QAAQ,WAAW,KAAK,WAAY;AACxD,YAAI,gBAAgB,GAAG;AACnB,gBAAM,IAAI,cAAc,yCAAyC,KAAK,WAAW,EAAE;AAAA,QACvF;AACA,uBAAe;AAAA,UACX,WAAW,KAAK;AAAA,UAChB,aAAa,YAAY;AAAA,UACzB,WAAW,MAAM,QAAQ,6BAA6B;AAAA,UACtD;AAAA,UACA,cAAc,KAAK;AAAA;AAAA,UACnB,wBAAwB;AAAA,UACxB,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QAC1B;AAAA,MACJ,OAAO;AACH,cAAM,IAAI,cAAc,yBAAyB,KAAK,QAAQ,IAAI,EAAE;AAAA,MACxE;AAEA,YAAM,UAAmB;AAAA,QACrB;AAAA,QACA,eAAe;AAAA,UACX,YAAY,KAAK;AAAA,UACjB;AAAA,UACA;AAAA,UACA,oBAAoB,KAAK;AAAA,UACzB,aAAa,gBAAgB,KAAK,QAAQ,WAAW,CAAC;AAAA,UACtD;AAAA,UACA,qBAAqB;AAAA,QACzB;AAAA,QACA;AAAA,MACJ;AAEA,UAAI;AACJ,UAAI,KAAK,QAAQ,WAAW,QAAQ,cAAc,eAAe,CAAC,iBAAiB;AAC/E,aAAK,oBAAoB;AACzB,aAAK,uBAAuB,KAAK;AAAA,UAC7B,kBAAkB,QAAQ,IAAI,MAAM,OAAO,CAAC;AAAA,UAC5C,KAAK,QAAQ,8BAA8B,CAAC;AAAA,UAC5C,MAAM,KAAK,mBAAmB,SAAS,sBAAsB;AAAA,QACjE;AACA,cAAM,EAAE,SAAS,UAAU,SAAS,IAAI,cAAmC;AAC3E,qBAAa;AACb,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB;AAAA,MAClC;AAEA,YAAM,UAAU,QAAAA,SAAA,KAAK,KAAK,WAAW,WAAW,OAAO,QAAQ,IAAI,MAAM,OAAO,CAAC,CAAC;AAClF,YAAM,KAAK,QAAQ,KAAK,SAAS,UAAU;AAE3C,UAAI,eAAe,QAAW;AAK1B;AAAA;AAJA,eAAK,yBAAyB;AAC9B,eAAK,sBAAsB,MAAM;AAGjC,gBAAM,WAAW,wBAAQ,KAAK,iBAAiB;AAC/C,gBAAM,kBAAkB,MAAM;AAE9B,eAAK,yBAAyB;AAC9B,eAAK,yBAAyB;AAE9B,cAAI,iBAAiB;AAEjB,kBAAM;AAAA,cACF,eAAe,EAAE,YAAAC,aAAY,aAAAC,aAAY;AAAA,YAC7C,IAAI;AACJ,gBAAI,iBAAiB,CAAC,kBAAkB,gBAAgBD,aAAYC,YAAW,GAAG;AAC9E,oBAAM,IAAI,uBAAuB,qBAAqB,KAAK,SAAS,eAAe;AAAA,YACvF;AAAA,UACJ;AAAA,iBAdA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeJ;AAAA,aAvBAC,IAAA;AAAA,UAAAC,UAAAD,IAAAE,aAAA;AAAA;AAAA,oBAAAL,SAAAI,SAAAC;AAAA;AAAA,EAwBJ;AAAA,EAEA,YAAY,SAAqE;AAC7E,QAAI;AACJ,QAAI,SAAS,YAAY,QAAW;AAChC,gBAAU,QAAQ;AAAA,IACtB,WAAW,KAAK,eAAe,OAAO,GAAG;AACrC,gBAAU;AAAA,IACd,OAAO;AACH,gBAAU,KAAK,QAAQ;AAAA,QACnB,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,SAAS;AAAA,MACb;AAAA,IACJ;AACA,WAAO,KAAK,eAAe,KAAK,OAAO;AAAA,EAC3C;AAAA,EAEA,MAAM,6BAA6B,SAAkB;AACjD,UAAM;AAAA,MACF,cAAc,EAAE,UAAU;AAAA,MAC1B,eAAe,EAAE,YAAY;AAAA,IACjC,IAAI;AACJ,QAAI,CAAC,eAAe,CAAC,KAAK,QAAQ,QAAS;AAE3C,UAAM,KAAK,KAAK,kBAAkB,eAAe,IAAI,WAAW,CAAC,GAAG;AAAA,MAChE,6BAA6B;AAAA,MAC7B,YAAY;AAAA,IAChB,CAAC;AAAA,EACL;AAAA,EAEA,mBAAmB,SAAkB,wBAAmC;AACpE,SAAK;AACL,QAAI,KAAK,kBAAkB,KAAK,0BAA0B,IAAI,mBAAmB;AAG7E,UAAI,0BAA0B,CAAC,KAAK,gBAAgB;AAEhD,cAAM,gBAAgB;AAAA,UAClB,KAAK,QAAQ;AAAA,YACT,KAAK,QAAQ;AAAA,YACb,KAAK,QAAQ;AAAA,YACb;AAAA,UACJ,KAAK,KAAK,sBAAsB,YAAY;AAAA,QAChD;AACA,YAAI,gBAAgB,GAAG;AACnB,eAAK;AACL,iBAAO;AAAA,YACH,WAAW,QAAQ,IAAI,MAAM,OAAO,CAAC,qBAAqB,SAAS,OAAO,aAAa,CAAC;AAAA,UAC5F;AACA,eAAK,uBAAuB,KAAK;AAAA,YAC7B,mCAAmC,QAAQ,IAAI,MAAM,OAAO,CAAC;AAAA,YAC7D;AAAA,YACA,MAAM,KAAK,mBAAmB,OAAO;AAAA,UACzC,EAAE,MAAM;AACR;AAAA,QACJ;AAAA,MACJ;AAGA,UAAI,KAAK,sBAAsB,UAAa,KAAK,2BAA2B,QAAW;AACnF,aAAK,wBAAwB;AAC7B,aAAK,uBAAuB,IAAI,gCAAgC,CAAC;AACjE,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB;AAAA,MAClC;AACA,UAAI,KAAK,gBAAgB,QAAW;AAGhC,aAAK,OAAO,EAAE,MAAM,WAAS,OAAO,MAAM,0BAA0B,KAAK,CAAC;AAAA,MAC9E;AACA;AAAA,IACJ;AAEA,SAAK,QAAQ,eAAe,KAAK;AAEjC,SAAK,QAAQ,MAAM,KAAK,sBAAsB;AAC9C,UAAM,0BAA0B,KAAK,QAAQ,8BAA8B,KAAK,sBAAsB;AACtG,WAAO;AAAA,MACH,gBAAgB,QAAQ,IAAI,MAAM,OAAO,CAAC,4BAA4B,KAAK,sBAAsB,kBAAkB,SAAS,OAAO,uBAAuB,CAAC;AAAA,IAC/J;AAGA,SAAK,QACA,KAAK,OAAO,EACZ,KAAK,MAAM,KAAK,wBAAwB,SAAS,yBAAyB,sBAAsB,CAAC,EACjG,MAAM,WAAS;AACZ,aAAO,MAAM,wBAAwB,QAAQ,IAAI,MAAM,OAAO,CAAC,KAAK,KAAK;AACzE,UAAI,iBAAiB,oBAAoB;AACrC,aAAK,OAAO,EAAE,MAAM,CAAAC,WAAS,OAAO,MAAM,+CAA+CA,MAAK,CAAC;AAAA,MACnG,OAAO;AACH,aAAK,wBAAwB,SAAS,yBAAyB,sBAAsB;AAAA,MACzF;AAAA,IACJ,CAAC;AAAA,EACT;AAAA,EAEA,wBAAwB,SAAkB,yBAAmC,0BAAqC;AAC9G,SAAK,uBAAuB,KAAK;AAAA,MAAS;AAAA,MAA0B;AAAA,MAAyB,MACzF,KAAK,mBAAmB,SAAS,wBAAwB;AAAA,IAC7D,EAAE,MAAM;AAAA,EACZ;AAAA,EAEA,CAAC,OAAO,YAAY,IAAI;AACpB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,MAAM,UAAU;AACZ,QAAI,KAAK,cAAc;AACnB;AAAA,IACJ;AACA,SAAK,eAAe;AACpB,QAAI,KAAK,gBAAgB,UAAa,KAAK,0BAA0B,QAAW;AAC5E,WAAK,yBAAyB,KAAK;AACnC,YAAM,eAAe,KAAK;AAC1B,WAAK,wBAAwB;AAC7B,UAAI;AACA,cAAM,KAAK,6BAA6B,YAAY;AAAA,MACxD,SAAS,OAAO;AACZ,eAAO,MAAM,+CAA+C,KAAK;AAAA,MACrE;AAAA,IACJ;AACA,UAAM,KAAK,OAAO;AAAA,EACtB;AAAA,EAEA,sBAAsB,SAAmB;AACrC,QAAI,KAAK,2BAA2B,UAAa,KAAK,uBAAuB,WAAW;AACpF,WAAK,uBAAuB,KAAK;AACjC,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,WAAO;AAAA,MACH;AAAA,MACA,KAAK;AAAA,MACL,KAAK,QAAQ;AAAA,MACb,WAAW,KAAK,EAAE,MAAM,KAAK,aAAa,SAAS,SAAS,OAAO,OAAO,EAAE,CAAC;AAAA,IACjF;AACA,SAAK,yBAAyB,KAAK,SAAS,qBAAqB,SAAS,MAAM;AAC5E,aAAO;AAAA,QACH;AAAA,QACA,WAAW,KAAK,EAAE,MAAM,KAAK,aAAa,KAAK,KAAK,QAAQ,KAAK,CAAC;AAAA,MACtE;AAAA,IACJ,CAAC,EAAE,MAAM;AAAA,EACb;AAAA,EAEA,wBAAwB;AACpB,QAAI,KAAK,2BAA2B,QAAW;AAC3C,aAAO;AAAA,QACH;AAAA,QACA,WAAW,KAAK,EAAE,MAAM,KAAK,aAAa,KAAK,KAAK,QAAQ,KAAK,CAAC;AAAA,MACtE;AACA,WAAK,uBAAuB,KAAK;AACjC,WAAK,yBAAyB;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,sBAAsB;AAClB,WAAO,KAAK,2BAA2B;AAAA,EAC3C;AAAA,EAEA,4BAA4B;AACxB,WAAO,KAAK,2BAA2B,UAAa,KAAK,uBAAuB;AAAA,EACpF;AAAA,EAEA,6BAA6B;AACzB,WAAO,KAAK,2BAA2B,UAAa,CAAC,KAAK,uBAAuB;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,MAAM,QAAQ,OAAO;AACvB,QAAI,KAAK,cAAc;AACnB;AAAA,IACJ;AAEA,SAAK,UAAU,QAAQ;AAEvB,QAAI,KAAK,gBAAgB,QAAW;AAChC,UAAI,OAAO;AAEP,aAAK,YAAY,KAAK;AACtB,eAAO,KAAK,OAAO;AAAA,MACvB;AAEA;AAAA,IACJ;AACA,QAAI,CAAC,KAAK,OAAO;AAGb,aAAO,KAAK,KAAK,KAAK,uCAAuC;AAC7D,aAAO,KAAK,OAAO;AAAA,IACvB;AACA,UAAM,KAAK,SAAS,KAAK,IAAI;AAE7B,QAAI,KAAK,0BAA0B,QAAW;AAC1C,WAAK,yBAAyB,KAAK;AACnC,YAAM,eAAe,KAAK;AAC1B,WAAK,wBAAwB;AAC7B,UAAI;AACA,cAAM,KAAK,6BAA6B,YAAY;AAAA,MACxD,SAAS,OAAO;AACZ,eAAO,MAAM,KAAK,KAAK,oCAAoC,KAAK;AAAA,MACpE;AACA,UAAI,OAAO;AAEP,eAAO,KAAK,OAAO;AAAA,MACvB;AAAA,IACJ,WAAW,KAAK,sBAAsB,UAAa,OAAO;AAEtD,aAAO,KAAK,OAAO;AAAA,IACvB;AAKA,QAAI,sBAAsB;AAC1B,aAAS,IAAI,KAAK,wBAAwB,KAAK,IAAI,mBAAmB,KAAK;AACvE,4BAAsB,OAAO,sBAAsB,KAAK,QAAQ,8BAA8B,CAAC,CAAC;AAAA,IACpG;AACA,SAAK,cAAc,KAAK;AAAA,MACpB,YAAY,KAAK,GAAG;AAAA,MACpB;AAAA,MACA,YAAY,MAAM,KAAK,OAAO;AAAA,IAClC,EAAE,MAAM;AAAA,EACZ;AAAA,EAEA,MAAM,SAAS;AACX;AAAA;AAAA,YAAM,WAAW,qBAAK,UAAU,QAAQ;AAExC,WAAK,sBAAsB,KAAK;AAChC,WAAK,yBAAyB,MAAS;AAEvC,WAAK,aAAa,KAAK;AACvB,WAAK,wBAAwB,KAAK;AAClC,WAAK,eAAe,MAAM;AAE1B,YAAM,KAAK,QAAQ,KAAK,IAAI;AAAA,aAT5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAUJ;AAAA,EAEA,IAAI,MAAM;AACN,QAAI,KAAK,YAAY,QAAW;AAC5B,aAAO,WAAW,IAAI,GAAG,KAAK,QAAQ,GAAG,KAAK,KAAK,EAAE;AAAA,IACzD;AAEA,WAAO,WAAW,IAAI,GAAG,KAAK,QAAQ,GAAG,GAAG,KAAK,QAAQ,GAAG,KAAK,KAAK,EAAE;AAAA,EAC5E;AACJ;",
|
|
5
5
|
"names": ["_stack", "protocolId", "messageType", "_", "_error", "_hasError", "error"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/protocol",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20251211-0f80042cf",
|
|
4
4
|
"description": "Low-level APIs for Matter interaction",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"#*": "./src/*"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@matter/general": "0.16.0-alpha.0-
|
|
44
|
-
"@matter/model": "0.16.0-alpha.0-
|
|
45
|
-
"@matter/types": "0.16.0-alpha.0-
|
|
43
|
+
"@matter/general": "0.16.0-alpha.0-20251211-0f80042cf",
|
|
44
|
+
"@matter/model": "0.16.0-alpha.0-20251211-0f80042cf",
|
|
45
|
+
"@matter/types": "0.16.0-alpha.0-20251211-0f80042cf"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@matter/tools": "0.16.0-alpha.0-
|
|
49
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
48
|
+
"@matter/tools": "0.16.0-alpha.0-20251211-0f80042cf",
|
|
49
|
+
"@matter/testing": "0.16.0-alpha.0-20251211-0f80042cf"
|
|
50
50
|
},
|
|
51
51
|
"files": [
|
|
52
52
|
"dist/**/*",
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
} from "#general";
|
|
32
32
|
import { InteractionClientMessenger, MessageType } from "#interaction/InteractionMessenger.js";
|
|
33
33
|
import { Subscription } from "#interaction/Subscription.js";
|
|
34
|
+
import { PeerAddress } from "#peer/index.js";
|
|
34
35
|
import { ExchangeProvider } from "#protocol/ExchangeProvider.js";
|
|
35
36
|
import { SecureSession } from "#session/SecureSession.js";
|
|
36
37
|
import { Status, TlvAttributeReport, TlvNoResponse, TlvSubscribeResponse, TypeFromSchema } from "#types";
|
|
@@ -43,10 +44,15 @@ import { SustainedSubscription } from "./subscription/SustainedSubscription.js";
|
|
|
43
44
|
|
|
44
45
|
const logger = Logger.get("ClientInteraction");
|
|
45
46
|
|
|
47
|
+
export type SubscriptionResult<T extends ClientSubscribe = ClientSubscribe> = Promise<
|
|
48
|
+
T extends { sustain: true } ? SustainedSubscription : PeerSubscription
|
|
49
|
+
>;
|
|
50
|
+
|
|
46
51
|
export interface ClientInteractionContext {
|
|
47
52
|
environment: Environment;
|
|
48
53
|
abort?: Abort.Signal;
|
|
49
54
|
sustainRetries?: RetrySchedule.Configuration;
|
|
55
|
+
exchangeProvider?: ExchangeProvider;
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
export const DEFAULT_MIN_INTERVAL_FLOOR = Seconds(1);
|
|
@@ -68,16 +74,20 @@ const DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE = Seconds(30);
|
|
|
68
74
|
export class ClientInteraction<
|
|
69
75
|
SessionT extends InteractionSession = InteractionSession,
|
|
70
76
|
> implements Interactable<SessionT> {
|
|
77
|
+
readonly #environment: Environment;
|
|
71
78
|
readonly #lifetime: Lifetime;
|
|
72
79
|
readonly #exchanges: ExchangeProvider;
|
|
73
|
-
readonly #subscriptions: ClientSubscriptions;
|
|
74
80
|
readonly #interactions = new BasicSet<Read | Write | Invoke | Subscribe>();
|
|
81
|
+
#subscriptions?: ClientSubscriptions;
|
|
75
82
|
readonly #abort: Abort;
|
|
76
83
|
readonly #sustainRetries: RetrySchedule;
|
|
77
84
|
|
|
78
|
-
constructor({ environment, abort, sustainRetries }: ClientInteractionContext) {
|
|
79
|
-
this.#
|
|
80
|
-
this.#
|
|
85
|
+
constructor({ environment, abort, sustainRetries, exchangeProvider }: ClientInteractionContext) {
|
|
86
|
+
this.#environment = environment;
|
|
87
|
+
this.#exchanges = exchangeProvider ?? environment.get(ExchangeProvider);
|
|
88
|
+
if (environment.has(ClientSubscriptions)) {
|
|
89
|
+
this.#subscriptions = environment.get(ClientSubscriptions);
|
|
90
|
+
}
|
|
81
91
|
this.#abort = Abort.subtask(abort);
|
|
82
92
|
this.#sustainRetries = new RetrySchedule(
|
|
83
93
|
environment.get(Entropy),
|
|
@@ -96,6 +106,10 @@ export class ClientInteraction<
|
|
|
96
106
|
});
|
|
97
107
|
}
|
|
98
108
|
|
|
109
|
+
get exchanges() {
|
|
110
|
+
return this.#exchanges;
|
|
111
|
+
}
|
|
112
|
+
|
|
99
113
|
get session() {
|
|
100
114
|
return this.#exchanges.session;
|
|
101
115
|
}
|
|
@@ -111,6 +125,9 @@ export class ClientInteraction<
|
|
|
111
125
|
}
|
|
112
126
|
|
|
113
127
|
get subscriptions() {
|
|
128
|
+
if (this.#subscriptions === undefined) {
|
|
129
|
+
this.#subscriptions = this.#environment.get(ClientSubscriptions);
|
|
130
|
+
}
|
|
114
131
|
return this.#subscriptions;
|
|
115
132
|
}
|
|
116
133
|
|
|
@@ -119,6 +136,9 @@ export class ClientInteraction<
|
|
|
119
136
|
*/
|
|
120
137
|
async *read(request: Read, session?: SessionT): ReadResult {
|
|
121
138
|
const readPathsCount = (request.attributeRequests?.length ?? 0) + (request.eventRequests?.length ?? 0);
|
|
139
|
+
if (readPathsCount === 0) {
|
|
140
|
+
throw new ImplementationError("When reading attributes and events, at least one must be specified.");
|
|
141
|
+
}
|
|
122
142
|
if (readPathsCount > 9) {
|
|
123
143
|
logger.debug(
|
|
124
144
|
"Read interactions with more then 9 paths might be not allowed by the device. Consider splitting then into several read requests.",
|
|
@@ -332,14 +352,25 @@ export class ClientInteraction<
|
|
|
332
352
|
/**
|
|
333
353
|
* Subscribe to attribute values and events.
|
|
334
354
|
*/
|
|
335
|
-
async subscribe(request:
|
|
355
|
+
async subscribe<T extends ClientSubscribe>(request: T, session?: SessionT): SubscriptionResult<T> {
|
|
336
356
|
const subscriptionPathsCount = (request.attributeRequests?.length ?? 0) + (request.eventRequests?.length ?? 0);
|
|
357
|
+
if (subscriptionPathsCount === 0) {
|
|
358
|
+
throw new ImplementationError("When subscribing to attributes and events, at least one must be specified.");
|
|
359
|
+
}
|
|
337
360
|
if (subscriptionPathsCount > 3) {
|
|
338
361
|
logger.debug("Subscribe interactions with more then 3 paths might be not allowed by the device.");
|
|
339
362
|
}
|
|
340
363
|
|
|
364
|
+
SecureSession.assert(this.#exchanges.session);
|
|
365
|
+
const peer = this.#exchanges.session.peerAddress;
|
|
366
|
+
|
|
341
367
|
if (!request.keepSubscriptions) {
|
|
342
|
-
for (const subscription of this
|
|
368
|
+
for (const subscription of this.subscriptions) {
|
|
369
|
+
// TODO Adjust this filtering when subscriptions move to Peer
|
|
370
|
+
if (!PeerAddress.is(peer, subscription.peer)) {
|
|
371
|
+
// Ignore subscriptions from other peers
|
|
372
|
+
continue;
|
|
373
|
+
}
|
|
343
374
|
logger.debug(
|
|
344
375
|
`Removing subscription with ID ${Subscription.idStrOf(subscription)} because new subscription replaces it`,
|
|
345
376
|
);
|
|
@@ -360,9 +391,6 @@ export class ClientInteraction<
|
|
|
360
391
|
);
|
|
361
392
|
}
|
|
362
393
|
|
|
363
|
-
SecureSession.assert(this.#exchanges.session);
|
|
364
|
-
const peer = this.#exchanges.session.peerAddress;
|
|
365
|
-
|
|
366
394
|
const subscribe = async (request: ClientSubscribe) => {
|
|
367
395
|
await using context = await this.#begin("subscribing", request, session);
|
|
368
396
|
const { checkAbort, messenger } = context;
|
|
@@ -402,14 +430,15 @@ export class ClientInteraction<
|
|
|
402
430
|
);
|
|
403
431
|
|
|
404
432
|
const subscription = new PeerSubscription({
|
|
405
|
-
lifetime: this
|
|
433
|
+
lifetime: this.subscriptions,
|
|
406
434
|
request,
|
|
407
435
|
peer,
|
|
408
|
-
closed: () => this
|
|
436
|
+
closed: () => this.subscriptions.delete(subscription),
|
|
409
437
|
response,
|
|
410
438
|
abort: session?.abort,
|
|
439
|
+
maxPeerResponseTime: this.#exchanges.maximumPeerResponseTime(),
|
|
411
440
|
});
|
|
412
|
-
this
|
|
441
|
+
this.subscriptions.addPeer(subscription);
|
|
413
442
|
|
|
414
443
|
return subscription;
|
|
415
444
|
};
|
|
@@ -417,10 +446,10 @@ export class ClientInteraction<
|
|
|
417
446
|
let subscription: ClientSubscription;
|
|
418
447
|
if (request.sustain) {
|
|
419
448
|
subscription = new SustainedSubscription({
|
|
420
|
-
lifetime: this
|
|
449
|
+
lifetime: this.subscriptions,
|
|
421
450
|
subscribe,
|
|
422
451
|
peer,
|
|
423
|
-
closed: () => this
|
|
452
|
+
closed: () => this.subscriptions.delete(subscription),
|
|
424
453
|
request,
|
|
425
454
|
abort: session?.abort,
|
|
426
455
|
retries: this.#sustainRetries,
|
|
@@ -429,9 +458,9 @@ export class ClientInteraction<
|
|
|
429
458
|
subscription = await subscribe(request);
|
|
430
459
|
}
|
|
431
460
|
|
|
432
|
-
this
|
|
461
|
+
this.subscriptions.addActive(subscription);
|
|
433
462
|
|
|
434
|
-
return subscription
|
|
463
|
+
return subscription as unknown as SubscriptionResult<T>;
|
|
435
464
|
}
|
|
436
465
|
|
|
437
466
|
async #handleSubscriptionResponse(request: Subscribe, result: ReadResult) {
|
|
@@ -6,13 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
import { ReadResult } from "#action/response/ReadResult.js";
|
|
8
8
|
import { Diagnostic, InternalError, Logger } from "#general";
|
|
9
|
-
import { DecodedDataReport } from "#interaction/DecodedDataReport.js";
|
|
10
9
|
import { IncomingInteractionClientMessenger } from "#interaction/InteractionMessenger.js";
|
|
11
10
|
import { Subscription, SubscriptionId } from "#interaction/Subscription.js";
|
|
12
11
|
import { MessageExchange } from "#protocol/MessageExchange.js";
|
|
13
12
|
import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
|
|
14
13
|
import { SecureSession } from "#session/SecureSession.js";
|
|
15
|
-
import { DataReport, INTERACTION_PROTOCOL_ID, Status } from "#types";
|
|
14
|
+
import { DataReport, INTERACTION_PROTOCOL_ID, Status, TlvAttributeReport, TypeFromSchema } from "#types";
|
|
16
15
|
import { InputChunk } from "../InputChunk.js";
|
|
17
16
|
import { ClientSubscriptions } from "./ClientSubscriptions.js";
|
|
18
17
|
|
|
@@ -55,36 +54,38 @@ export class ClientSubscriptionHandler implements ProtocolHandler {
|
|
|
55
54
|
SecureSession.assert(session);
|
|
56
55
|
const subscription = this.#subscriptions.getPeer(session.peerAddress, subscriptionId);
|
|
57
56
|
if (subscription === undefined) {
|
|
58
|
-
logger.
|
|
57
|
+
logger.info("Ignoring data report for unknown subscription ID", Diagnostic.strong(subscriptionId));
|
|
59
58
|
await sendInvalid(messenger, subscriptionId);
|
|
60
59
|
return;
|
|
61
60
|
}
|
|
62
61
|
|
|
63
|
-
// If this is just a ping, only reset the timeout
|
|
64
|
-
if (!initialReport.attributeReports?.length && !initialReport.eventReports?.length) {
|
|
65
|
-
subscription.timeoutAt = undefined;
|
|
66
|
-
this.#subscriptions.resetTimer();
|
|
67
|
-
await exchange.close();
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
62
|
// Pass the data to the recipient
|
|
72
63
|
try {
|
|
73
64
|
subscription.isReading = true;
|
|
74
65
|
|
|
75
|
-
|
|
76
|
-
|
|
66
|
+
// If this is just a ping, only reset the timeout
|
|
67
|
+
if (!initialReport.attributeReports?.length && !initialReport.eventReports?.length) {
|
|
68
|
+
// Read the next report to trigger success message sent out
|
|
69
|
+
const ending = await reports.next();
|
|
70
|
+
if (!ending.done) {
|
|
71
|
+
logger.warn("Unexpected data reports after empty report", Diagnostic.strong(subscriptionId));
|
|
72
|
+
for await (const _chunk of reports); // Read over these extraneous reports
|
|
73
|
+
}
|
|
77
74
|
} else {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
if (subscription.request.updated) {
|
|
76
|
+
await subscription.request.updated(processReports(initialReport, reports, messenger));
|
|
77
|
+
} else {
|
|
78
|
+
// It doesn't make sense to have the callback undefined, but we allow it in the type because they may
|
|
79
|
+
// be handled by intermediate interactables. So we handle the case here too, but just iterate and throw
|
|
80
|
+
// away the reports
|
|
81
|
+
for await (const _chunk of reports);
|
|
82
|
+
}
|
|
82
83
|
}
|
|
83
84
|
} finally {
|
|
84
85
|
subscription.isReading = false;
|
|
85
86
|
subscription.timeoutAt = undefined;
|
|
86
87
|
this.#subscriptions.resetTimer();
|
|
87
|
-
await
|
|
88
|
+
await messenger.close();
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
|
|
@@ -109,28 +110,26 @@ async function* processReports(
|
|
|
109
110
|
otherReports: AsyncIterable<DataReport>,
|
|
110
111
|
messenger: IncomingInteractionClientMessenger,
|
|
111
112
|
): ReadResult {
|
|
112
|
-
|
|
113
|
+
const leftOverData = new Array<TypeFromSchema<typeof TlvAttributeReport>>();
|
|
114
|
+
|
|
115
|
+
yield InputChunk(initialReport, leftOverData);
|
|
113
116
|
|
|
114
117
|
const { subscriptionId } = initialReport;
|
|
115
118
|
|
|
116
119
|
for await (const report of otherReports) {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
if (decoded.subscriptionId === undefined) {
|
|
120
|
+
const { subscriptionId: reportSubscriptionId } = report;
|
|
121
|
+
if (reportSubscriptionId === undefined) {
|
|
120
122
|
logger.debug("Ignoring data report with missing subscription id");
|
|
121
|
-
await sendInvalid(messenger,
|
|
123
|
+
await sendInvalid(messenger, reportSubscriptionId);
|
|
122
124
|
continue;
|
|
123
125
|
}
|
|
124
126
|
|
|
125
|
-
if (
|
|
126
|
-
logger.debug(
|
|
127
|
-
|
|
128
|
-
Diagnostic.strong(decoded.subscriptionId),
|
|
129
|
-
);
|
|
130
|
-
await sendInvalid(messenger, decoded.subscriptionId);
|
|
127
|
+
if (reportSubscriptionId !== subscriptionId) {
|
|
128
|
+
logger.debug("Ignoring data report for incorrect subscription id", Diagnostic.strong(reportSubscriptionId));
|
|
129
|
+
await sendInvalid(messenger, reportSubscriptionId);
|
|
131
130
|
continue;
|
|
132
131
|
}
|
|
133
132
|
|
|
134
|
-
yield InputChunk(report);
|
|
133
|
+
yield InputChunk(report, leftOverData);
|
|
135
134
|
}
|
|
136
135
|
}
|
|
@@ -14,22 +14,27 @@ import { ClientSubscription } from "./ClientSubscription.js";
|
|
|
14
14
|
export class PeerSubscription extends ClientSubscription {
|
|
15
15
|
readonly interactionModelRevision: number;
|
|
16
16
|
readonly maxInterval: number;
|
|
17
|
+
readonly #maxPeerResponseTime: Duration;
|
|
17
18
|
isReading = false;
|
|
18
19
|
|
|
19
20
|
timeoutAt?: Timestamp;
|
|
20
21
|
|
|
21
22
|
constructor(config: PeerSubscription.Configuration) {
|
|
22
|
-
const {
|
|
23
|
+
const {
|
|
24
|
+
maxPeerResponseTime,
|
|
25
|
+
response: { subscriptionId, interactionModelRevision, maxInterval },
|
|
26
|
+
} = config;
|
|
23
27
|
|
|
24
28
|
super(config);
|
|
25
29
|
|
|
26
30
|
this.subscriptionId = subscriptionId;
|
|
27
31
|
this.interactionModelRevision = interactionModelRevision;
|
|
28
32
|
this.maxInterval = maxInterval;
|
|
33
|
+
this.#maxPeerResponseTime = maxPeerResponseTime;
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
get timeout() {
|
|
32
|
-
return Millis(Seconds(this.maxInterval) +
|
|
37
|
+
return Millis(Seconds(this.maxInterval) + this.#maxPeerResponseTime * 2);
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
timedOut() {
|
|
@@ -47,5 +52,6 @@ export class PeerSubscription extends ClientSubscription {
|
|
|
47
52
|
export namespace PeerSubscription {
|
|
48
53
|
export interface Configuration extends ClientSubscription.Configuration {
|
|
49
54
|
response: SubscribeResponse;
|
|
55
|
+
maxPeerResponseTime: Duration;
|
|
50
56
|
}
|
|
51
57
|
}
|
package/src/peer/index.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
export * from "./ControllerCommissioner.js";
|
|
8
8
|
export * from "./ControllerCommissioningFlow.js";
|
|
9
9
|
export * from "./ControllerDiscovery.js";
|
|
10
|
+
export * from "./InteractionQueue.js";
|
|
10
11
|
export * from "./PeerAddress.js";
|
|
11
12
|
export * from "./PeerAddressStore.js";
|
|
12
13
|
export * from "./PeerDescriptor.js";
|
|
@@ -253,13 +253,13 @@ export class ExchangeManager {
|
|
|
253
253
|
|
|
254
254
|
if (exchange !== undefined) {
|
|
255
255
|
this.#lifetime.details.exchange = exchange.idStr;
|
|
256
|
-
if (exchange.session.id !== packet.header.sessionId || (exchange.
|
|
256
|
+
if (exchange.session.id !== packet.header.sessionId || (exchange.considerClosed && !isStandaloneAck)) {
|
|
257
257
|
logger.debug(
|
|
258
258
|
exchange.via,
|
|
259
259
|
"Ignore",
|
|
260
260
|
Mark.INBOUND,
|
|
261
261
|
"message because",
|
|
262
|
-
exchange.
|
|
262
|
+
exchange.considerClosed
|
|
263
263
|
? "exchange is closing"
|
|
264
264
|
: `session ID mismatch (header session is ${Session.idStrOf(packet)}`,
|
|
265
265
|
messageDiagnostics,
|
|
@@ -277,9 +277,8 @@ export class ExchangeManager {
|
|
|
277
277
|
} else {
|
|
278
278
|
if (this.#isClosing) return;
|
|
279
279
|
if (session.isClosing) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
);
|
|
280
|
+
logger.debug(`Declining new exchange because session ${Session.idStrOf(packet)} is closing`);
|
|
281
|
+
return;
|
|
283
282
|
}
|
|
284
283
|
|
|
285
284
|
const protocolHandler = this.#protocols.get(message.payloadHeader.protocolId);
|
|
@@ -368,7 +367,7 @@ export class ExchangeManager {
|
|
|
368
367
|
return;
|
|
369
368
|
}
|
|
370
369
|
const sessionExchanges = Array.from(this.#exchanges.values()).filter(
|
|
371
|
-
exchange => exchange.session.id === sessionId && !exchange.
|
|
370
|
+
exchange => exchange.session.id === sessionId && !exchange.considerClosed,
|
|
372
371
|
);
|
|
373
372
|
if (sessionExchanges.length <= MAXIMUM_CONCURRENT_OUTGOING_EXCHANGES_PER_SESSION) {
|
|
374
373
|
return;
|