@matter/protocol 0.16.8-alpha.0-20260123-dff2cae52 → 0.16.8-alpha.0-20260125-38e62bc3e
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 +4 -4
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +48 -6
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/QueuedClientInteraction.d.ts +0 -1
- package/dist/cjs/action/client/QueuedClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/QueuedClientInteraction.js +0 -1
- package/dist/cjs/action/client/QueuedClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +5 -2
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.js +0 -6
- package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/cjs/action/server/DataResponse.d.ts +5 -0
- package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/DataResponse.js +7 -0
- package/dist/cjs/action/server/DataResponse.js.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts +30 -30
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +81 -12
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsClient.js +157 -100
- package/dist/cjs/mdns/MdnsClient.js.map +1 -1
- package/dist/cjs/mdns/MdnsServer.d.ts +2 -0
- package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsServer.js +45 -5
- package/dist/cjs/mdns/MdnsServer.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +3 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts +4 -4
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +49 -6
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/action/client/QueuedClientInteraction.d.ts +0 -1
- package/dist/esm/action/client/QueuedClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/QueuedClientInteraction.js +0 -1
- package/dist/esm/action/client/QueuedClientInteraction.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +5 -2
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.js +0 -6
- package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/esm/action/server/DataResponse.d.ts +5 -0
- package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
- package/dist/esm/action/server/DataResponse.js +7 -0
- package/dist/esm/action/server/DataResponse.js.map +1 -1
- package/dist/esm/action/server/ServerInteraction.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts +30 -30
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +82 -12
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsClient.js +157 -100
- package/dist/esm/mdns/MdnsClient.js.map +1 -1
- package/dist/esm/mdns/MdnsServer.d.ts +2 -0
- package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsServer.js +45 -5
- package/dist/esm/mdns/MdnsServer.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +3 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientInteraction.ts +62 -6
- package/src/action/client/QueuedClientInteraction.ts +0 -1
- package/src/action/client/subscription/ClientSubscriptionHandler.ts +5 -2
- package/src/action/server/AttributeWriteResponse.ts +4 -16
- package/src/action/server/DataResponse.ts +8 -0
- package/src/action/server/ServerInteraction.ts +2 -2
- package/src/interaction/InteractionMessenger.ts +113 -15
- package/src/mdns/MdnsClient.ts +207 -102
- package/src/mdns/MdnsServer.ts +79 -6
- package/src/peer/ControllerCommissioningFlow.ts +5 -1
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { DnsRecord, Lifetime, MdnsSocket, NetworkInterfaceDetails } from "#general";
|
|
7
|
+
/** RFC 6762 §7.3 - Window for duplicate question suppression (999ms per python-zeroconf) */
|
|
8
|
+
export declare const QUESTION_SUPPRESSION_WINDOW: import("#general").Duration;
|
|
7
9
|
export declare class MdnsServer {
|
|
8
10
|
#private;
|
|
9
11
|
constructor(socket: MdnsSocket, lifetime?: Lifetime.Owner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAMH,SAAS,EAIT,QAAQ,EAGR,UAAU,EAGV,uBAAuB,
|
|
1
|
+
{"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAMH,SAAS,EAIT,QAAQ,EAGR,UAAU,EAGV,uBAAuB,EAK1B,MAAM,UAAU,CAAC;AAIlB,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,6BAAc,CAAC;AAEvD,qBAAa,UAAU;;gBAkCP,MAAM,EAAE,UAAU,EAAE,QAAQ,iBAAmB;IAM3D,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IA6GjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAiB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAwBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAa1E,KAAK;CA4Id;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
|
|
@@ -66,6 +66,7 @@ import {
|
|
|
66
66
|
Time
|
|
67
67
|
} from "#general";
|
|
68
68
|
const logger = Logger.get("MdnsServer");
|
|
69
|
+
const QUESTION_SUPPRESSION_WINDOW = Millis(999);
|
|
69
70
|
class MdnsServer {
|
|
70
71
|
#lifetime;
|
|
71
72
|
#observers = new ObserverGroup();
|
|
@@ -87,6 +88,8 @@ class MdnsServer {
|
|
|
87
88
|
);
|
|
88
89
|
#recordLastSentAsMulticastAnswer = /* @__PURE__ */ new Map();
|
|
89
90
|
#truncatedQueryCache = /* @__PURE__ */ new Map();
|
|
91
|
+
/** RFC 6762 §7.3 - Tracks recently answered queries for duplicate suppression */
|
|
92
|
+
#recentlyAnsweredQueries = /* @__PURE__ */ new Map();
|
|
90
93
|
#socket;
|
|
91
94
|
constructor(socket, lifetime = Lifetime.process) {
|
|
92
95
|
this.#socket = socket;
|
|
@@ -150,6 +153,9 @@ class MdnsServer {
|
|
|
150
153
|
(_2, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast >= Millis(900)
|
|
151
154
|
);
|
|
152
155
|
if (answers.length === 0) continue;
|
|
156
|
+
if (this.#shouldSuppressResponse(queries, knownAnswers, sourceIntf, answers)) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
153
159
|
answers.forEach(
|
|
154
160
|
(answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
|
|
155
161
|
);
|
|
@@ -216,12 +222,8 @@ class MdnsServer {
|
|
|
216
222
|
const records = await this.#records.get(netInterface);
|
|
217
223
|
for (const [service, serviceRecords] of records) {
|
|
218
224
|
if (services.length && !services.includes(service)) continue;
|
|
219
|
-
const instanceSet = /* @__PURE__ */ new Set();
|
|
220
225
|
serviceRecords.forEach((record) => {
|
|
221
226
|
record.ttl = Instant;
|
|
222
|
-
if (record.recordType === DnsRecordType.TXT) {
|
|
223
|
-
instanceSet.add(record.name);
|
|
224
|
-
}
|
|
225
227
|
});
|
|
226
228
|
await this.#announceRecordsForInterface(netInterface, serviceRecords);
|
|
227
229
|
this.#recordsGenerator.delete(service);
|
|
@@ -240,11 +242,13 @@ class MdnsServer {
|
|
|
240
242
|
async setRecordsGenerator(service, generator) {
|
|
241
243
|
await this.#records.clear();
|
|
242
244
|
this.#recordLastSentAsMulticastAnswer.clear();
|
|
245
|
+
this.#recentlyAnsweredQueries.clear();
|
|
243
246
|
this.#recordsGenerator.set(service, generator);
|
|
244
247
|
}
|
|
245
248
|
async #resetServices() {
|
|
246
249
|
await this.#records.clear();
|
|
247
250
|
this.#recordLastSentAsMulticastAnswer.clear();
|
|
251
|
+
this.#recentlyAnsweredQueries.clear();
|
|
248
252
|
}
|
|
249
253
|
async close() {
|
|
250
254
|
var _stack = [];
|
|
@@ -257,6 +261,7 @@ class MdnsServer {
|
|
|
257
261
|
}
|
|
258
262
|
this.#truncatedQueryCache.clear();
|
|
259
263
|
this.#recordLastSentAsMulticastAnswer.clear();
|
|
264
|
+
this.#recentlyAnsweredQueries.clear();
|
|
260
265
|
} catch (_) {
|
|
261
266
|
var _error = _, _hasError = true;
|
|
262
267
|
} finally {
|
|
@@ -274,6 +279,40 @@ class MdnsServer {
|
|
|
274
279
|
return records.filter((record) => record.name === name && record.recordType === recordType);
|
|
275
280
|
}
|
|
276
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* RFC 6762 §7.3 - Checks if we should suppress a response because another responder
|
|
284
|
+
* has recently answered the same question with answers that cover what we'd send.
|
|
285
|
+
* Also, lazily cleans up expired entries from the cache.
|
|
286
|
+
*/
|
|
287
|
+
#shouldSuppressResponse(queries, knownAnswers, sourceIntf, answers) {
|
|
288
|
+
const now = Time.nowMs;
|
|
289
|
+
for (const [key, entry] of this.#recentlyAnsweredQueries) {
|
|
290
|
+
if (now - entry.timestamp >= QUESTION_SUPPRESSION_WINDOW) {
|
|
291
|
+
this.#recentlyAnsweredQueries.delete(key);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
const queryKey = queries.map((q) => `${q.name}-${q.recordType}`).sort().join("|") + `-${sourceIntf}`;
|
|
295
|
+
const cached = this.#recentlyAnsweredQueries.get(queryKey);
|
|
296
|
+
if (cached && now - cached.timestamp < QUESTION_SUPPRESSION_WINDOW) {
|
|
297
|
+
const answerHashes = answers.map((a) => this.buildDnsRecordKey(a, sourceIntf));
|
|
298
|
+
const allAnswersKnown = answerHashes.every((h) => cached.knownAnswerHashes.has(h));
|
|
299
|
+
if (allAnswersKnown) {
|
|
300
|
+
return true;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
const knownAnswerHashes = /* @__PURE__ */ new Set();
|
|
304
|
+
for (const answer of knownAnswers) {
|
|
305
|
+
knownAnswerHashes.add(this.buildDnsRecordKey(answer, sourceIntf));
|
|
306
|
+
}
|
|
307
|
+
for (const answer of answers) {
|
|
308
|
+
knownAnswerHashes.add(this.buildDnsRecordKey(answer, sourceIntf));
|
|
309
|
+
}
|
|
310
|
+
this.#recentlyAnsweredQueries.set(queryKey, {
|
|
311
|
+
knownAnswerHashes,
|
|
312
|
+
timestamp: now
|
|
313
|
+
});
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
277
316
|
async #processTruncatedQuery(key) {
|
|
278
317
|
const { message, timer } = this.#truncatedQueryCache.get(key) ?? {};
|
|
279
318
|
this.#truncatedQueryCache.delete(key);
|
|
@@ -323,6 +362,7 @@ class MdnsServer {
|
|
|
323
362
|
}
|
|
324
363
|
}
|
|
325
364
|
export {
|
|
326
|
-
MdnsServer
|
|
365
|
+
MdnsServer,
|
|
366
|
+
QUESTION_SUPPRESSION_WINDOW
|
|
327
367
|
};
|
|
328
368
|
//# sourceMappingURL=MdnsServer.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mdns/MdnsServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["_"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerCommissioningFlow.d.ts","sourceRoot":"","sources":["../../../src/peer/ControllerCommissioningFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"ControllerCommissioningFlow.d.ts","sourceRoot":"","sources":["../../../src/peer/ControllerCommissioningFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { WriteResult } from "#action/index.js";
|
|
6
7
|
import { Invoke } from "#action/request/Invoke.js";
|
|
7
8
|
import { Read } from "#action/request/Read.js";
|
|
8
9
|
import { Write } from "#action/request/Write.js";
|
|
@@ -1286,7 +1287,7 @@ class ControllerCommissioningFlow {
|
|
|
1286
1287
|
let success = false;
|
|
1287
1288
|
for (const requestorEndpoint of this.collectedCommissioningData.otaRequestorList) {
|
|
1288
1289
|
try {
|
|
1289
|
-
await this.interaction.write(
|
|
1290
|
+
const writeResult = await this.interaction.write(
|
|
1290
1291
|
Write(
|
|
1291
1292
|
Write.Attribute({
|
|
1292
1293
|
endpoint: requestorEndpoint,
|
|
@@ -1302,6 +1303,7 @@ class ControllerCommissioningFlow {
|
|
|
1302
1303
|
})
|
|
1303
1304
|
)
|
|
1304
1305
|
);
|
|
1306
|
+
WriteResult.assertSuccess(writeResult);
|
|
1305
1307
|
success = true;
|
|
1306
1308
|
logger.debug(`Added default OTA provider on endpoint ${endpoint}`);
|
|
1307
1309
|
} catch (error) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/peer/ControllerCommissioningFlow.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["CommissioningStepResultCode"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/protocol",
|
|
3
|
-
"version": "0.16.8-alpha.0-
|
|
3
|
+
"version": "0.16.8-alpha.0-20260125-38e62bc3e",
|
|
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.8-alpha.0-
|
|
44
|
-
"@matter/model": "0.16.8-alpha.0-
|
|
45
|
-
"@matter/types": "0.16.8-alpha.0-
|
|
43
|
+
"@matter/general": "0.16.8-alpha.0-20260125-38e62bc3e",
|
|
44
|
+
"@matter/model": "0.16.8-alpha.0-20260125-38e62bc3e",
|
|
45
|
+
"@matter/types": "0.16.8-alpha.0-20260125-38e62bc3e"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@matter/tools": "0.16.8-alpha.0-
|
|
49
|
-
"@matter/testing": "0.16.8-alpha.0-
|
|
48
|
+
"@matter/tools": "0.16.8-alpha.0-20260125-38e62bc3e",
|
|
49
|
+
"@matter/testing": "0.16.8-alpha.0-20260125-38e62bc3e"
|
|
50
50
|
},
|
|
51
51
|
"files": [
|
|
52
52
|
"dist/**/*",
|
|
@@ -19,6 +19,7 @@ import { BdxMessenger } from "#bdx/BdxMessenger.js";
|
|
|
19
19
|
import { Mark } from "#common/Mark.js";
|
|
20
20
|
import {
|
|
21
21
|
Abort,
|
|
22
|
+
AsyncIterator,
|
|
22
23
|
BasicSet,
|
|
23
24
|
Diagnostic,
|
|
24
25
|
Duration,
|
|
@@ -38,6 +39,7 @@ import { InteractionClientMessenger, MessageType } from "#interaction/Interactio
|
|
|
38
39
|
import { Subscription } from "#interaction/Subscription.js";
|
|
39
40
|
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
40
41
|
import { ExchangeProvider } from "#protocol/ExchangeProvider.js";
|
|
42
|
+
import { SessionClosedError } from "#protocol/index.js";
|
|
41
43
|
import { SecureSession } from "#session/SecureSession.js";
|
|
42
44
|
import { Status, TlvAttributeReport, TlvNoResponse, TlvSubscribeResponse, TypeFromSchema } from "#types";
|
|
43
45
|
import { ClientWrite } from "./ClientWrite.js";
|
|
@@ -186,10 +188,7 @@ export class ClientInteraction<
|
|
|
186
188
|
}
|
|
187
189
|
|
|
188
190
|
/**
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
* Writes with the Matter protocol are generally not atomic, so this method only throws if the entire action fails.
|
|
192
|
-
* You must check each {@link WriteResult.AttributeStatus} to determine whether individual updates failed.
|
|
191
|
+
* Write to node attributes.
|
|
193
192
|
*/
|
|
194
193
|
async write<T extends ClientWrite>(request: T, session?: SessionT): WriteResult<T> {
|
|
195
194
|
await using context = await this.#begin("writing", request, session);
|
|
@@ -253,9 +252,9 @@ export class ClientInteraction<
|
|
|
253
252
|
}
|
|
254
253
|
|
|
255
254
|
/**
|
|
256
|
-
* Invoke
|
|
255
|
+
* Invoke a single batch of commands (internal implementation).
|
|
257
256
|
*/
|
|
258
|
-
async
|
|
257
|
+
async *#invokeSingle(request: ClientInvoke, session?: SessionT): DecodedInvokeResult {
|
|
259
258
|
await using context = await this.#begin("invoking", request, session);
|
|
260
259
|
const { checkAbort, messenger } = context;
|
|
261
260
|
|
|
@@ -358,6 +357,63 @@ export class ClientInteraction<
|
|
|
358
357
|
}
|
|
359
358
|
}
|
|
360
359
|
|
|
360
|
+
/**
|
|
361
|
+
* Split commands across multiple parallel invoke-exchanges.
|
|
362
|
+
* Results are streamed as they arrive from any batch, not buffered.
|
|
363
|
+
*/
|
|
364
|
+
async *#invokeWithSplitting(
|
|
365
|
+
request: ClientInvoke,
|
|
366
|
+
maxPathsPerInvoke: number,
|
|
367
|
+
session?: SessionT,
|
|
368
|
+
): DecodedInvokeResult {
|
|
369
|
+
// Split commands into batches
|
|
370
|
+
const allCommands = [...request.commands.entries()];
|
|
371
|
+
const batches = new Array<ClientInvoke["commands"]>();
|
|
372
|
+
|
|
373
|
+
for (let i = 0; i < allCommands.length; i += maxPathsPerInvoke) {
|
|
374
|
+
const batchEntries = allCommands.slice(i, i + maxPathsPerInvoke);
|
|
375
|
+
batches.push(new Map(batchEntries));
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
// Create async iterators for each batch and merge results as they arrive
|
|
379
|
+
const iterators = batches.map(batchCommands => {
|
|
380
|
+
const batchRequest: ClientInvoke = {
|
|
381
|
+
...request,
|
|
382
|
+
commands: batchCommands,
|
|
383
|
+
};
|
|
384
|
+
return this.#invokeSingle(batchRequest, session);
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
yield* AsyncIterator.merge(iterators, "One or more invoke batches failed");
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/** Get the effective MaxPathsPerInvoke parameter from the session, or 1 as a fallback as defined by spec. */
|
|
391
|
+
get #maxPathsPerInvoke(): number {
|
|
392
|
+
try {
|
|
393
|
+
return this.session.parameters.maxPathsPerInvoke;
|
|
394
|
+
} catch (error) {
|
|
395
|
+
SessionClosedError.accept(error);
|
|
396
|
+
return 1;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Invoke one or more commands.
|
|
402
|
+
*
|
|
403
|
+
* When the number of commands exceeds the peer's MaxPathsPerInvoke limit (or 1 for older nodes),
|
|
404
|
+
* commands are split across multiple parallel exchanges automatically.
|
|
405
|
+
*/
|
|
406
|
+
async *invoke(request: ClientInvoke, session?: SessionT): DecodedInvokeResult {
|
|
407
|
+
const maxPathsPerInvoke = this.#maxPathsPerInvoke;
|
|
408
|
+
const commandCount = request.commands.size;
|
|
409
|
+
|
|
410
|
+
if (commandCount > maxPathsPerInvoke) {
|
|
411
|
+
yield* this.#invokeWithSplitting(request, maxPathsPerInvoke, session);
|
|
412
|
+
} else {
|
|
413
|
+
yield* this.#invokeSingle(request, session);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
361
417
|
/**
|
|
362
418
|
* Subscribe to attribute values and events.
|
|
363
419
|
*/
|
|
@@ -69,7 +69,6 @@ export class QueuedClientInteraction<
|
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* Write chosen attributes remotely to the node.
|
|
72
|
-
* The returned attribute writing status information is returned.
|
|
73
72
|
*/
|
|
74
73
|
override async write<T extends ClientWrite>(request: T, session?: SessionT): WriteResult<T> {
|
|
75
74
|
using _slot = await this.queue.obtainSlot();
|
|
@@ -44,7 +44,7 @@ export class ClientSubscriptionHandler implements ProtocolHandler {
|
|
|
44
44
|
// Ensure there is a subscription ID present
|
|
45
45
|
const { subscriptionId } = initialReport;
|
|
46
46
|
if (subscriptionId === undefined) {
|
|
47
|
-
logger.debug("Ignoring unsolicited data report with no subscription ID");
|
|
47
|
+
logger.debug(exchange.via, "Ignoring unsolicited data report with no subscription ID");
|
|
48
48
|
await sendInvalid(messenger, undefined);
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
@@ -55,6 +55,7 @@ export class ClientSubscriptionHandler implements ProtocolHandler {
|
|
|
55
55
|
const subscription = this.#subscriptions.getPeer(session.peerAddress, subscriptionId);
|
|
56
56
|
if (subscription === undefined) {
|
|
57
57
|
logger.info(
|
|
58
|
+
exchange.via,
|
|
58
59
|
"Ignoring data report for unknown subscription ID",
|
|
59
60
|
Diagnostic.strong(Subscription.idStrOf(subscriptionId)),
|
|
60
61
|
);
|
|
@@ -72,6 +73,7 @@ export class ClientSubscriptionHandler implements ProtocolHandler {
|
|
|
72
73
|
const ending = await reports.next();
|
|
73
74
|
if (!ending.done) {
|
|
74
75
|
logger.warn(
|
|
76
|
+
exchange.via,
|
|
75
77
|
"Unexpected data reports after empty report",
|
|
76
78
|
Diagnostic.strong(Subscription.idStrOf(subscriptionId)),
|
|
77
79
|
);
|
|
@@ -125,13 +127,14 @@ async function* processReports(
|
|
|
125
127
|
for await (const report of otherReports) {
|
|
126
128
|
const { subscriptionId: reportSubscriptionId } = report;
|
|
127
129
|
if (reportSubscriptionId === undefined) {
|
|
128
|
-
logger.debug("Ignoring data report with missing subscription id");
|
|
130
|
+
logger.debug(messenger.exchange.via, "Ignoring data report with missing subscription id");
|
|
129
131
|
await sendInvalid(messenger, reportSubscriptionId);
|
|
130
132
|
continue;
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
if (reportSubscriptionId !== subscriptionId) {
|
|
134
136
|
logger.debug(
|
|
137
|
+
messenger.exchange.via,
|
|
135
138
|
"Ignoring data report for incorrect subscription id",
|
|
136
139
|
Diagnostic.strong(Subscription.idStrOf(reportSubscriptionId)),
|
|
137
140
|
"expected",
|
|
@@ -40,7 +40,6 @@ export class AttributeWriteResponse<
|
|
|
40
40
|
// a cache between producers that touch the same endpoint and/or cluster
|
|
41
41
|
#currentEndpoint?: EndpointProtocol;
|
|
42
42
|
#currentCluster?: ClusterProtocol;
|
|
43
|
-
#previousProcessedAttributePath?: WriteResult.ConcreteAttributePath;
|
|
44
43
|
|
|
45
44
|
// Count how many attribute status (on error) and attribute values (on success) we have emitted
|
|
46
45
|
#statusCount = 0;
|
|
@@ -52,7 +51,7 @@ export class AttributeWriteResponse<
|
|
|
52
51
|
this.#fabricIndex = session.fabric ?? FabricIndex.NO_FABRIC;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
|
-
async process
|
|
54
|
+
async process({ writeRequests, suppressResponse }: Write): Promise<WriteResult.AttributeStatus[] | undefined> {
|
|
56
55
|
using _writing = this.join("writing");
|
|
57
56
|
|
|
58
57
|
const writeResponses = new Array<WriteResult.AttributeStatus>();
|
|
@@ -75,9 +74,9 @@ export class AttributeWriteResponse<
|
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
if (!suppressResponse) {
|
|
78
|
-
return writeResponses
|
|
77
|
+
return writeResponses;
|
|
79
78
|
}
|
|
80
|
-
return undefined
|
|
79
|
+
return undefined;
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
/** Guarded accessor for this.#currentEndpoint. This should never be undefined */
|
|
@@ -394,9 +393,6 @@ export class AttributeWriteResponse<
|
|
|
394
393
|
);
|
|
395
394
|
}
|
|
396
395
|
|
|
397
|
-
const previousPath = this.#previousProcessedAttributePath;
|
|
398
|
-
this.#previousProcessedAttributePath = path;
|
|
399
|
-
|
|
400
396
|
try {
|
|
401
397
|
const { tlv } = attribute;
|
|
402
398
|
if (listIndex === undefined) {
|
|
@@ -408,15 +404,7 @@ export class AttributeWriteResponse<
|
|
|
408
404
|
writeState[attributeId] = decoded;
|
|
409
405
|
await this.session.transaction?.commit();
|
|
410
406
|
} else if (listIndex === null) {
|
|
411
|
-
|
|
412
|
-
previousPath?.endpointId !== path.endpointId ||
|
|
413
|
-
previousPath?.clusterId !== path.clusterId ||
|
|
414
|
-
previousPath?.attributeId !== path.attributeId
|
|
415
|
-
) {
|
|
416
|
-
// Mimic chip sdk behavior
|
|
417
|
-
throw new StatusResponseError("ADD list action without a former REPLACE_ALL action", Status.Busy);
|
|
418
|
-
}
|
|
419
|
-
// ADD
|
|
407
|
+
// ADD - caller (InteractionServer) has already validated that this ADD is allowed
|
|
420
408
|
if (!(tlv instanceof ArraySchema)) {
|
|
421
409
|
throw new StatusResponseError(
|
|
422
410
|
`Unsupported Write path provided: listIndex === ${listIndex} but attribute is not a list`,
|
|
@@ -42,6 +42,14 @@ export abstract class DataResponse<SessionT extends InteractionSession = Interac
|
|
|
42
42
|
return this.#session;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Update the session for processing subsequent chunks.
|
|
47
|
+
* This allows reusing the same response instance while maintaining state across chunks.
|
|
48
|
+
*/
|
|
49
|
+
protected updateSession(session: SessionT) {
|
|
50
|
+
this.#session = session;
|
|
51
|
+
}
|
|
52
|
+
|
|
45
53
|
/**
|
|
46
54
|
* The node ID used to filter paths with node ID specified. Unsure if this is ever actually used.
|
|
47
55
|
*/
|
|
@@ -69,11 +69,11 @@ export class ServerInteraction<
|
|
|
69
69
|
// TODO - validate request
|
|
70
70
|
|
|
71
71
|
const writer = new AttributeWriteResponse(this.#node, session);
|
|
72
|
-
return await writer.process(request)
|
|
72
|
+
return (await writer.process(request)) as Awaited<WriteResult<T>>;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
async *invoke(request: Invoke, session: SessionT): InvokeResult {
|
|
76
|
-
// TODO -
|
|
76
|
+
// TODO - validate request
|
|
77
77
|
|
|
78
78
|
const invoker = new CommandInvokeResponse(this.#node, session);
|
|
79
79
|
yield* invoker.process(request);
|