@matter/node 0.16.7 → 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.
Files changed (49) hide show
  1. package/dist/cjs/behavior/system/software-update/OtaAnnouncements.d.ts.map +1 -1
  2. package/dist/cjs/behavior/system/software-update/OtaAnnouncements.js +10 -8
  3. package/dist/cjs/behavior/system/software-update/OtaAnnouncements.js.map +1 -1
  4. package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
  5. package/dist/cjs/behaviors/thermostat/ThermostatServer.js +12 -8
  6. package/dist/cjs/behaviors/thermostat/ThermostatServer.js.map +1 -1
  7. package/dist/cjs/node/client/ClientNodeInteraction.d.ts +4 -1
  8. package/dist/cjs/node/client/ClientNodeInteraction.d.ts.map +1 -1
  9. package/dist/cjs/node/client/ClientNodeInteraction.js +4 -1
  10. package/dist/cjs/node/client/ClientNodeInteraction.js.map +1 -1
  11. package/dist/cjs/node/server/InteractionServer.d.ts +2 -2
  12. package/dist/cjs/node/server/InteractionServer.d.ts.map +1 -1
  13. package/dist/cjs/node/server/InteractionServer.js +130 -78
  14. package/dist/cjs/node/server/InteractionServer.js.map +1 -1
  15. package/dist/cjs/node/server/OnlineServerInteraction.d.ts +10 -2
  16. package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
  17. package/dist/cjs/node/server/OnlineServerInteraction.js +9 -1
  18. package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
  19. package/dist/cjs/storage/client/RemoteWriter.d.ts.map +1 -1
  20. package/dist/cjs/storage/client/RemoteWriter.js +1 -2
  21. package/dist/cjs/storage/client/RemoteWriter.js.map +1 -1
  22. package/dist/esm/behavior/system/software-update/OtaAnnouncements.d.ts.map +1 -1
  23. package/dist/esm/behavior/system/software-update/OtaAnnouncements.js +11 -9
  24. package/dist/esm/behavior/system/software-update/OtaAnnouncements.js.map +1 -1
  25. package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
  26. package/dist/esm/behaviors/thermostat/ThermostatServer.js +12 -8
  27. package/dist/esm/behaviors/thermostat/ThermostatServer.js.map +1 -1
  28. package/dist/esm/node/client/ClientNodeInteraction.d.ts +4 -1
  29. package/dist/esm/node/client/ClientNodeInteraction.d.ts.map +1 -1
  30. package/dist/esm/node/client/ClientNodeInteraction.js +4 -1
  31. package/dist/esm/node/client/ClientNodeInteraction.js.map +1 -1
  32. package/dist/esm/node/server/InteractionServer.d.ts +2 -2
  33. package/dist/esm/node/server/InteractionServer.d.ts.map +1 -1
  34. package/dist/esm/node/server/InteractionServer.js +130 -78
  35. package/dist/esm/node/server/InteractionServer.js.map +1 -1
  36. package/dist/esm/node/server/OnlineServerInteraction.d.ts +10 -2
  37. package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
  38. package/dist/esm/node/server/OnlineServerInteraction.js +9 -1
  39. package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
  40. package/dist/esm/storage/client/RemoteWriter.d.ts.map +1 -1
  41. package/dist/esm/storage/client/RemoteWriter.js +1 -2
  42. package/dist/esm/storage/client/RemoteWriter.js.map +1 -1
  43. package/package.json +7 -7
  44. package/src/behavior/system/software-update/OtaAnnouncements.ts +12 -9
  45. package/src/behaviors/thermostat/ThermostatServer.ts +15 -9
  46. package/src/node/client/ClientNodeInteraction.ts +4 -1
  47. package/src/node/server/InteractionServer.ts +197 -92
  48. package/src/node/server/OnlineServerInteraction.ts +13 -2
  49. package/src/storage/client/RemoteWriter.ts +1 -2
@@ -261,8 +261,9 @@ class InteractionServer {
261
261
  payload: this.#executeReadInteraction(readRequest, exchange, message)
262
262
  };
263
263
  }
264
- async handleWriteRequest(exchange, writeRequest, message) {
265
- const { suppressResponse, timedRequest, writeRequests, interactionModelRevision, moreChunkedMessages } = writeRequest;
264
+ async handleWriteRequest(exchange, writeRequest, messenger, message) {
265
+ let { suppressResponse, writeRequests, moreChunkedMessages } = writeRequest;
266
+ const { timedRequest, interactionModelRevision } = writeRequest;
266
267
  const sessionType = message.packetHeader.sessionType;
267
268
  logger.info(() => [
268
269
  "Write",
@@ -315,23 +316,81 @@ class InteractionServer {
315
316
  StatusCode.InvalidAction
316
317
  );
317
318
  }
318
- const result = await this.#serverInteraction.write(
319
- writeRequest,
320
- this.#prepareOnlineContext(
321
- exchange,
322
- message,
323
- true,
324
- // always fabric filtered
325
- receivedWithinTimedInteraction
326
- )
327
- );
328
- return {
329
- writeResponses: result?.map(({ path, status, clusterStatus }) => ({
330
- path,
331
- status: { status, clusterStatus }
332
- })),
333
- interactionModelRevision: Specification.INTERACTION_MODEL_REVISION
334
- };
319
+ let previousProcessedAttributePath;
320
+ while (true) {
321
+ const allResponses = new Array();
322
+ let currentBatch = new Array();
323
+ const processBatch = async () => {
324
+ if (currentBatch.length === 0) {
325
+ return;
326
+ }
327
+ const context = this.#prepareOnlineContext(
328
+ exchange,
329
+ message,
330
+ true,
331
+ // always fabric filtered
332
+ receivedWithinTimedInteraction
333
+ );
334
+ const batchRequest = { ...writeRequest, writeRequests: currentBatch, suppressResponse: false };
335
+ const batchResults = await this.#serverInteraction.write(batchRequest, context);
336
+ if (batchResults) {
337
+ allResponses.push(...batchResults);
338
+ }
339
+ currentBatch = [];
340
+ };
341
+ for (const request of writeRequests) {
342
+ const { path } = request;
343
+ const listIndex = path.listIndex;
344
+ if (listIndex === null) {
345
+ if (previousProcessedAttributePath?.endpointId !== path.endpointId || previousProcessedAttributePath?.clusterId !== path.clusterId || previousProcessedAttributePath?.attributeId !== path.attributeId) {
346
+ await processBatch();
347
+ allResponses.push({
348
+ kind: "attr-status",
349
+ path,
350
+ status: Status.Busy
351
+ });
352
+ continue;
353
+ }
354
+ }
355
+ currentBatch.push(request);
356
+ if (path.endpointId !== void 0 && path.clusterId !== void 0 && path.attributeId !== void 0) {
357
+ previousProcessedAttributePath = path;
358
+ }
359
+ }
360
+ await processBatch();
361
+ if (suppressResponse) {
362
+ break;
363
+ }
364
+ const chunkResponse = {
365
+ writeResponses: allResponses.map(({ path, status, clusterStatus }) => ({
366
+ path,
367
+ status: { status, clusterStatus }
368
+ })),
369
+ interactionModelRevision: Specification.INTERACTION_MODEL_REVISION
370
+ };
371
+ await messenger.sendWriteResponse(chunkResponse, {
372
+ logContext: moreChunkedMessages ? "WriteResponse-chunk" : void 0
373
+ });
374
+ if (!moreChunkedMessages) {
375
+ break;
376
+ }
377
+ const nextChunk = await messenger.readNextWriteRequest();
378
+ const nextRequest = nextChunk.writeRequest;
379
+ ({ writeRequests, moreChunkedMessages, suppressResponse } = nextRequest);
380
+ logger.info(() => [
381
+ "Write",
382
+ Mark.INBOUND,
383
+ exchange.via,
384
+ Diagnostic.asFlags({ suppressResponse, moreChunkedMessages }),
385
+ Diagnostic.weak(writeRequests.map((req) => this.#node.protocol.inspectPath(req.path)).join(", "))
386
+ ]);
387
+ if (suppressResponse) {
388
+ throw new StatusResponseError(
389
+ "Multiple chunked messages and SuppressResponse cannot be used together in write messages",
390
+ StatusCode.InvalidAction
391
+ );
392
+ }
393
+ }
335
394
  }
336
395
  async handleSubscribeRequest(exchange, request, messenger, message) {
337
396
  const {
@@ -623,79 +682,56 @@ class InteractionServer {
623
682
  StatusCode.InvalidAction
624
683
  );
625
684
  }
685
+ const context = this.#prepareOnlineContext(exchange, message, void 0, receivedWithinTimedInteraction);
626
686
  const isGroupSession = message.packetHeader.sessionType === SessionType.Group;
627
- const invokeResponseMessage = {
687
+ const results = this.#serverInteraction.invoke(request, context);
688
+ if (suppressResponse || isGroupSession) {
689
+ for await (const _chunk of results) ;
690
+ return;
691
+ }
692
+ const currentChunkResponses = new Array();
693
+ const emptyInvokeResponse = {
628
694
  suppressResponse: false,
629
695
  // Deprecated but must be present
630
696
  interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
631
- invokeResponses: [],
632
- moreChunkedMessages: invokeRequests.length > 1
633
- // Assume for now we have multiple responses when having multiple invokes
697
+ invokeResponses: []
634
698
  };
635
- const emptyInvokeResponseBytes = TlvInvokeResponseForSend.encode(invokeResponseMessage);
636
- let messageSize = emptyInvokeResponseBytes.byteLength;
637
- let invokeResultsProcessed = 0;
638
- const processResponseResult = async (invokeResponse) => {
639
- invokeResultsProcessed++;
640
- if (isGroupSession) {
641
- return;
642
- }
699
+ const emptyInvokeResponseLength = TlvInvokeResponseForSend.encode(emptyInvokeResponse).byteLength;
700
+ let messageSize = emptyInvokeResponseLength;
701
+ let chunkedTransmissionTerminated = false;
702
+ const sendChunkIfNeeded = async (invokeResponse) => {
643
703
  const encodedInvokeResponse = TlvInvokeResponseData.encodeTlv(invokeResponse);
644
704
  const invokeResponseBytes = TlvAny.getEncodedByteLength(encodedInvokeResponse);
645
- if (messageSize + invokeResponseBytes > exchange.maxPayloadSize || invokeResultsProcessed === invokeRequests.length) {
646
- let lastMessageProcessed = false;
647
- if (messageSize + invokeResponseBytes <= exchange.maxPayloadSize) {
648
- invokeResponseMessage.invokeResponses.push(encodedInvokeResponse);
649
- lastMessageProcessed = true;
650
- }
651
- if (invokeResponseMessage.invokeResponses.length > 0) {
652
- if (invokeRequests.length > 1) {
653
- logger.debug(
654
- `${lastMessageProcessed ? "Final " : ""}Invoke response`,
655
- Mark.OUTBOUND,
656
- Diagnostic.dict({ commands: invokeResponseMessage.invokeResponses.length })
657
- );
658
- }
659
- const moreChunkedMessages = lastMessageProcessed ? void 0 : true;
660
- await messenger.send(
661
- MessageType.InvokeResponse,
662
- TlvInvokeResponseForSend.encode({
663
- ...invokeResponseMessage,
664
- moreChunkedMessages
665
- }),
666
- {
667
- logContext: {
668
- invokeMsgFlags: Diagnostic.asFlags({
669
- suppressResponse,
670
- moreChunkedMessages
671
- })
672
- }
673
- }
674
- );
675
- invokeResponseMessage.invokeResponses = [];
676
- messageSize = emptyInvokeResponseBytes.byteLength;
677
- }
678
- if (!lastMessageProcessed) {
679
- invokeResultsProcessed--;
680
- return processResponseResult(invokeResponse);
705
+ if (messageSize + invokeResponseBytes > exchange.maxPayloadSize && currentChunkResponses.length > 0) {
706
+ logger.debug(
707
+ "Invoke (chunk)",
708
+ Mark.OUTBOUND,
709
+ exchange.via,
710
+ Diagnostic.dict({ commands: currentChunkResponses.length })
711
+ );
712
+ const chunkResponse = {
713
+ ...emptyInvokeResponse,
714
+ invokeResponses: currentChunkResponses.map((r) => TlvInvokeResponseData.encodeTlv(r))
715
+ };
716
+ if (!await messenger.sendInvokeResponseChunk(chunkResponse)) {
717
+ chunkedTransmissionTerminated = true;
718
+ return;
681
719
  }
682
- } else {
683
- invokeResponseMessage.invokeResponses.push(encodedInvokeResponse);
684
- messageSize += invokeResponseBytes;
720
+ currentChunkResponses.length = 0;
721
+ messageSize = emptyInvokeResponseLength;
685
722
  }
723
+ currentChunkResponses.push(invokeResponse);
724
+ messageSize += invokeResponseBytes;
686
725
  };
687
- for await (const chunk of this.#serverInteraction.invoke(
688
- request,
689
- this.#prepareOnlineContext(exchange, message, void 0, receivedWithinTimedInteraction)
690
- )) {
691
- if (suppressResponse) {
692
- throw new InternalError("Received response that should be suppressed for invoke");
726
+ for await (const chunk of results) {
727
+ if (chunkedTransmissionTerminated) {
728
+ continue;
693
729
  }
694
730
  for (const data of chunk) {
695
731
  switch (data.kind) {
696
732
  case "cmd-response": {
697
733
  const { path: commandPath, commandRef, data: commandFields } = data;
698
- await processResponseResult({
734
+ await sendChunkIfNeeded({
699
735
  command: {
700
736
  commandPath,
701
737
  commandFields,
@@ -706,13 +742,29 @@ class InteractionServer {
706
742
  }
707
743
  case "cmd-status": {
708
744
  const { path, commandRef, status, clusterStatus } = data;
709
- await processResponseResult({
745
+ await sendChunkIfNeeded({
710
746
  status: { commandPath: path, status: { status, clusterStatus }, commandRef }
711
747
  });
748
+ break;
712
749
  }
713
750
  }
714
751
  }
715
752
  }
753
+ if (!chunkedTransmissionTerminated) {
754
+ if (currentChunkResponses.length > 0) {
755
+ logger.debug(
756
+ "Invoke (final)",
757
+ Mark.OUTBOUND,
758
+ exchange.via,
759
+ Diagnostic.dict({ commands: currentChunkResponses.length })
760
+ );
761
+ }
762
+ const finalResponse = {
763
+ ...emptyInvokeResponse,
764
+ invokeResponses: currentChunkResponses.map((r) => TlvInvokeResponseData.encodeTlv(r))
765
+ };
766
+ await messenger.sendInvokeResponse(finalResponse);
767
+ }
716
768
  }
717
769
  handleTimedRequest(exchange, { timeout, interactionModelRevision }) {
718
770
  const interval = Millis(timeout);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/server/InteractionServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["subscription"]
6
6
  }
@@ -1,11 +1,19 @@
1
1
  import { RemoteActorContext } from "#behavior/context/server/RemoteActorContext.js";
2
- import { Interactable, Invoke, NodeProtocol, Read, ReadResult, Subscribe, SubscribeResult, Write, WriteResult } from "#protocol";
2
+ import { Interactable, Invoke, InvokeResult, NodeProtocol, Read, ReadResult, Subscribe, SubscribeResult, Write, WriteResult } from "#protocol";
3
3
  export declare class OnlineServerInteraction implements Interactable<RemoteActorContext.Options> {
4
4
  #private;
5
5
  constructor(node: NodeProtocol);
6
6
  read(request: Read, context: RemoteActorContext.Options): ReadResult;
7
7
  subscribe(_request: Subscribe, _context: RemoteActorContext.Options): SubscribeResult;
8
+ /**
9
+ * Process write requests and return results.
10
+ * The caller is responsible for messaging/chunking and list state tracking.
11
+ */
8
12
  write<T extends Write>(request: T, context: RemoteActorContext.Options): WriteResult<T>;
9
- invoke(request: Invoke, context: RemoteActorContext.Options): AsyncGenerator<import("#protocol").InvokeResult.Chunk, undefined, unknown>;
13
+ /**
14
+ * Process invoke requests and yield results.
15
+ * The caller is responsible for messaging/chunking.
16
+ */
17
+ invoke(request: Invoke, context: RemoteActorContext.Options): InvokeResult;
10
18
  }
11
19
  //# sourceMappingURL=OnlineServerInteraction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnlineServerInteraction.d.ts","sourceRoot":"","sources":["../../../../src/node/server/OnlineServerInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EACH,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,IAAI,EACJ,UAAU,EAEV,SAAS,EACT,eAAe,EACf,KAAK,EACL,WAAW,EACd,MAAM,WAAW,CAAC;AAEnB,qBAAa,uBAAwB,YAAW,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;;gBAGxE,IAAI,EAAE,YAAY;IAIvB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,UAAU;IAW3E,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe;IAI/E,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IAItF,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO;CAWrE"}
1
+ {"version":3,"file":"OnlineServerInteraction.d.ts","sourceRoot":"","sources":["../../../../src/node/server/OnlineServerInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EACH,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EAEV,SAAS,EACT,eAAe,EACf,KAAK,EACL,WAAW,EACd,MAAM,WAAW,CAAC;AAEnB,qBAAa,uBAAwB,YAAW,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;;gBAGxE,IAAI,EAAE,YAAY;IAIvB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,UAAU;IAW3E,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,GAAG,eAAe;IAIrF;;;OAGG;IACG,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;IAI7F;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,YAAY;CAapF"}
@@ -21,9 +21,17 @@ class OnlineServerInteraction {
21
21
  subscribe(_request, _context) {
22
22
  throw new NotImplementedError("subscribe not implemented");
23
23
  }
24
+ /**
25
+ * Process write requests and return results.
26
+ * The caller is responsible for messaging/chunking and list state tracking.
27
+ */
24
28
  async write(request, context) {
25
29
  return RemoteActorContext(context).act((session) => this.#interaction.write(request, session));
26
30
  }
31
+ /**
32
+ * Process invoke requests and yield results.
33
+ * The caller is responsible for messaging/chunking.
34
+ */
27
35
  async *invoke(request, context) {
28
36
  const session = RemoteActorContext({ ...context, command: true }).open();
29
37
  try {
@@ -33,7 +41,7 @@ class OnlineServerInteraction {
33
41
  } catch (error) {
34
42
  await session.reject(error);
35
43
  }
36
- return session.resolve(void 0);
44
+ await session.resolve(void 0);
37
45
  }
38
46
  }
39
47
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/server/OnlineServerInteraction.ts"],
4
- "mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC;AAAA,EAMI;AAAA,OAKG;AAEA,MAAM,wBAA4E;AAAA,EAC5E;AAAA,EAET,YAAY,MAAoB;AAC5B,SAAK,eAAe,IAAI,kBAAkB,IAAI;AAAA,EAClD;AAAA,EAEA,OAAO,KAAK,SAAe,SAAiD;AACxE,UAAM,UAAU,mBAAmB,OAAO,EAAE,cAAc;AAC1D,QAAI;AACA,uBAAiB,UAAU,KAAK,aAAa,KAAK,SAAS,OAAO,GAAG;AACjE,cAAM;AAAA,MACV;AAAA,IACJ,UAAE;AACE,cAAQ,OAAO,OAAO,EAAE;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,UAAU,UAAqB,UAAuD;AAClF,UAAM,IAAI,oBAAoB,2BAA2B;AAAA,EAC7D;AAAA,EAEA,MAAM,MAAuB,SAAY,SAAqD;AAC1F,WAAO,mBAAmB,OAAO,EAAE,IAAI,aAAW,KAAK,aAAa,MAAM,SAAS,OAAO,CAAC;AAAA,EAC/F;AAAA,EAEA,OAAO,OAAO,SAAiB,SAAqC;AAChE,UAAM,UAAU,mBAAmB,EAAE,GAAG,SAAS,SAAS,KAAK,CAAC,EAAE,KAAK;AACvE,QAAI;AACA,uBAAiB,SAAS,KAAK,aAAa,OAAO,SAAS,OAAO,GAAG;AAClE,cAAM;AAAA,MACV;AAAA,IACJ,SAAS,OAAO;AACZ,YAAM,QAAQ,OAAO,KAAK;AAAA,IAC9B;AACA,WAAO,QAAQ,QAAQ,MAAS;AAAA,EACpC;AACJ;",
4
+ "mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC;AAAA,EAOI;AAAA,OAKG;AAEA,MAAM,wBAA4E;AAAA,EAC5E;AAAA,EAET,YAAY,MAAoB;AAC5B,SAAK,eAAe,IAAI,kBAAkB,IAAI;AAAA,EAClD;AAAA,EAEA,OAAO,KAAK,SAAe,SAAiD;AACxE,UAAM,UAAU,mBAAmB,OAAO,EAAE,cAAc;AAC1D,QAAI;AACA,uBAAiB,UAAU,KAAK,aAAa,KAAK,SAAS,OAAO,GAAG;AACjE,cAAM;AAAA,MACV;AAAA,IACJ,UAAE;AACE,cAAQ,OAAO,OAAO,EAAE;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,UAAU,UAAqB,UAAuD;AAClF,UAAM,IAAI,oBAAoB,2BAA2B;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,MAAuB,SAAY,SAAqD;AAC1F,WAAO,mBAAmB,OAAO,EAAE,IAAI,aAAW,KAAK,aAAa,MAAM,SAAS,OAAO,CAAC;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,OAAO,SAAiB,SAAmD;AAC9E,UAAM,UAAU,mBAAmB,EAAE,GAAG,SAAS,SAAS,KAAK,CAAC,EAAE,KAAK;AAEvE,QAAI;AACA,uBAAiB,SAAS,KAAK,aAAa,OAAO,SAAS,OAAO,GAAG;AAClE,cAAM;AAAA,MACV;AAAA,IACJ,SAAS,OAAO;AACZ,YAAM,QAAQ,OAAO,KAAK;AAAA,IAC9B;AAEA,UAAM,QAAQ,QAAQ,MAAS;AAAA,EACnC;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteWriter.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/RemoteWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGrE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,GAAG,YAAY,CAmCvF;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,qBAAqB;QAClC,MAAM,EAAE,cAAc,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;KACtB;IAED,UAAiB,OAAQ,SAAQ,KAAK,CAAC,qBAAqB,CAAC;KAAG;CACnE"}
1
+ {"version":3,"file":"RemoteWriter.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/RemoteWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGrE;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,GAAG,YAAY,CAkCvF;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,qBAAqB;QAClC,MAAM,EAAE,cAAc,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;KACtB;IAED,UAAiB,OAAQ,SAAQ,KAAK,CAAC,qBAAqB,CAAC;KAAG;CACnE"}
@@ -34,8 +34,7 @@ function RemoteWriter(node, structure) {
34
34
  }
35
35
  }
36
36
  const write = Write(...attrWrites);
37
- const response = await node.interaction.write(write);
38
- WriteResult.assertSuccess(response);
37
+ WriteResult.assertSuccess(await node.interaction.write(write));
39
38
  };
40
39
  }
41
40
  function attrsFor(cluster) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/storage/client/RemoteWriter.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAG9B,SAAS,OAAO,mBAA6B;AAc7C,MAAM,YAAY,oBAAI,QAA4D;AAE3E,SAAS,aAAa,MAAkB,WAA0C;AACrF,SAAO,eAAe,YAAY,SAA+B;AAC7D,UAAM,aAAa,MAAuB;AAC1C,eAAW,EAAE,QAAQ,YAAY,OAAO,KAAK,SAAS;AAClD,YAAM,UAAU,UAAU,WAAW,QAAQ,OAAO,SAAS,UAAU,CAAc;AACrF,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,cAAc,+CAA+C,UAAU,EAAE;AAAA,MACvF;AACA,YAAM,QAAQ,SAAS,OAAO;AAE9B,iBAAW,MAAM,QAAQ;AACrB,cAAM,OAAO,MAAM,EAAE;AACrB,YAAI,SAAS,QAAW;AACpB,cAAI,GAAG,WAAW,IAAI,GAAG;AACrB;AAAA,UACJ;AAEA,gBAAM,IAAI,cAAc,kCAAkC,EAAE,QAAQ,UAAU,EAAE;AAAA,QACpF;AAEA,mBAAW;AAAA,UACP,MAAM,UAAU;AAAA,YACZ,UAAU;AAAA,YACV;AAAA,YACA,YAAY,CAAC,MAAM,EAAE,CAAC;AAAA,YACtB,OAAO,OAAO,EAAE;AAAA,UACpB,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,QAAQ,MAAM,GAAG,UAAU;AACjC,UAAM,WAAW,MAAM,KAAK,YAAY,MAAM,KAAK;AACnD,gBAAY,cAAc,QAAQ;AAAA,EACtC;AACJ;AAYA,SAAS,SAAS,SAAsB;AACpC,MAAI,QAAQ,UAAU,IAAI,OAAO;AACjC,MAAI,OAAO;AACP,WAAO;AAAA,EACX;AACA,UAAQ,OAAO,YAAY,OAAO,OAAO,QAAQ,UAAU,EAAE,IAAI,UAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACzF,YAAU,IAAI,SAAS,KAAK;AAC5B,SAAO;AACX;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAG9B,SAAS,OAAO,mBAA6B;AAc7C,MAAM,YAAY,oBAAI,QAA4D;AAE3E,SAAS,aAAa,MAAkB,WAA0C;AACrF,SAAO,eAAe,YAAY,SAA+B;AAC7D,UAAM,aAAa,MAAuB;AAC1C,eAAW,EAAE,QAAQ,YAAY,OAAO,KAAK,SAAS;AAClD,YAAM,UAAU,UAAU,WAAW,QAAQ,OAAO,SAAS,UAAU,CAAc;AACrF,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,cAAc,+CAA+C,UAAU,EAAE;AAAA,MACvF;AACA,YAAM,QAAQ,SAAS,OAAO;AAE9B,iBAAW,MAAM,QAAQ;AACrB,cAAM,OAAO,MAAM,EAAE;AACrB,YAAI,SAAS,QAAW;AACpB,cAAI,GAAG,WAAW,IAAI,GAAG;AACrB;AAAA,UACJ;AAEA,gBAAM,IAAI,cAAc,kCAAkC,EAAE,QAAQ,UAAU,EAAE;AAAA,QACpF;AAEA,mBAAW;AAAA,UACP,MAAM,UAAU;AAAA,YACZ,UAAU;AAAA,YACV;AAAA,YACA,YAAY,CAAC,MAAM,EAAE,CAAC;AAAA,YACtB,OAAO,OAAO,EAAE;AAAA,UACpB,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,QAAQ,MAAM,GAAG,UAAU;AACjC,gBAAY,cAAc,MAAM,KAAK,YAAY,MAAM,KAAK,CAAC;AAAA,EACjE;AACJ;AAYA,SAAS,SAAS,SAAsB;AACpC,MAAI,QAAQ,UAAU,IAAI,OAAO;AACjC,MAAI,OAAO;AACP,WAAO;AAAA,EACX;AACA,UAAQ,OAAO,YAAY,OAAO,OAAO,QAAQ,UAAU,EAAE,IAAI,UAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AACzF,YAAU,IAAI,SAAS,KAAK;AAC5B,SAAO;AACX;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.16.7",
3
+ "version": "0.16.8-alpha.0-20260125-38e62bc3e",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -42,14 +42,14 @@
42
42
  "#*": "./src/*"
43
43
  },
44
44
  "dependencies": {
45
- "@matter/general": "0.16.7",
46
- "@matter/model": "0.16.7",
47
- "@matter/types": "0.16.7",
48
- "@matter/protocol": "0.16.7"
45
+ "@matter/general": "0.16.8-alpha.0-20260125-38e62bc3e",
46
+ "@matter/model": "0.16.8-alpha.0-20260125-38e62bc3e",
47
+ "@matter/types": "0.16.8-alpha.0-20260125-38e62bc3e",
48
+ "@matter/protocol": "0.16.8-alpha.0-20260125-38e62bc3e"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/tools": "0.16.7",
52
- "@matter/testing": "0.16.7"
51
+ "@matter/tools": "0.16.8-alpha.0-20260125-38e62bc3e",
52
+ "@matter/testing": "0.16.8-alpha.0-20260125-38e62bc3e"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -14,7 +14,7 @@ import { Duration, Hours, isDeepEqual, Logger, MatterError, Millis, Minutes, Sec
14
14
  import type { ClientNode } from "#node/ClientNode.js";
15
15
  import { Node } from "#node/Node.js";
16
16
  import type { ServerNode } from "#node/ServerNode.js";
17
- import { Fabric, PeerAddress, Write } from "#protocol";
17
+ import { Fabric, PeerAddress, Write, WriteResult } from "#protocol";
18
18
  import { EndpointNumber, FabricIndex, NodeId, VendorId } from "#types";
19
19
 
20
20
  const logger = new Logger("OTAAnnouncements");
@@ -170,16 +170,19 @@ export class OtaAnnouncements {
170
170
  ) {
171
171
  try {
172
172
  // Fabric scoped attribute, so we just overwrite our value
173
- await peer.interaction.write(
174
- Write(
175
- Write.Attribute({
176
- endpoint: otaEndpoint.number,
177
- cluster: OtaSoftwareUpdateRequestor.Complete,
178
- attributes: ["defaultOtaProviders"],
179
- value: [consideredOtaProviderRecord],
180
- }),
173
+ WriteResult.assertSuccess(
174
+ await peer.interaction.write(
175
+ Write(
176
+ Write.Attribute({
177
+ endpoint: otaEndpoint.number,
178
+ cluster: OtaSoftwareUpdateRequestor.Complete,
179
+ attributes: ["defaultOtaProviders"],
180
+ value: [consideredOtaProviderRecord],
181
+ }),
182
+ ),
181
183
  ),
182
184
  );
185
+
183
186
  logger.debug(
184
187
  `${existingOtaProviderRecord === undefined ? "Added" : "Updated"} default OTA provider for`,
185
188
  peerAddress,
@@ -335,7 +335,9 @@ export class ThermostatBaseServer extends ThermostatBehaviorLogicBase {
335
335
 
336
336
  // TODO Add support for correct Time handling, leave disabled for now
337
337
  if (this.state.setpointHoldExpiryTimestamp === undefined) {
338
- //this.state.setpointHoldExpiryTimestamp = null;
338
+ //this.agent.asLocalActor(() => {
339
+ // this.state.setpointHoldExpiryTimestamp = null;
340
+ //});
339
341
  } else {
340
342
  logger.warn(
341
343
  "Handling for setpointHoldExpiryTimestamp is not yet implemented. To use this attribute you need to install the needed logic yourself",
@@ -405,7 +407,9 @@ export class ThermostatBaseServer extends ThermostatBehaviorLogicBase {
405
407
  }
406
408
  break;
407
409
  }
408
- this.state.thermostatRunningMode = newState;
410
+ this.agent.asLocalActor(() => {
411
+ this.state.thermostatRunningMode = newState;
412
+ });
409
413
  }
410
414
 
411
415
  /**
@@ -1000,13 +1004,15 @@ export class ThermostatBaseServer extends ThermostatBehaviorLogicBase {
1000
1004
 
1001
1005
  #handleSystemModeChange(newMode: Thermostat.SystemMode) {
1002
1006
  if (this.state.thermostatRunningMode !== undefined && newMode !== Thermostat.SystemMode.Auto) {
1003
- if (newMode === Thermostat.SystemMode.Off) {
1004
- this.state.thermostatRunningMode = Thermostat.ThermostatRunningMode.Off;
1005
- } else if (newMode === Thermostat.SystemMode.Heat) {
1006
- this.state.thermostatRunningMode = Thermostat.ThermostatRunningMode.Heat;
1007
- } else if (newMode === Thermostat.SystemMode.Cool) {
1008
- this.state.thermostatRunningMode = Thermostat.ThermostatRunningMode.Cool;
1009
- }
1007
+ this.agent.asLocalActor(() => {
1008
+ if (newMode === Thermostat.SystemMode.Off) {
1009
+ this.state.thermostatRunningMode = Thermostat.ThermostatRunningMode.Off;
1010
+ } else if (newMode === Thermostat.SystemMode.Heat) {
1011
+ this.state.thermostatRunningMode = Thermostat.ThermostatRunningMode.Heat;
1012
+ } else if (newMode === Thermostat.SystemMode.Cool) {
1013
+ this.state.thermostatRunningMode = Thermostat.ThermostatRunningMode.Cool;
1014
+ }
1015
+ });
1010
1016
  }
1011
1017
  }
1012
1018
 
@@ -128,7 +128,10 @@ export class ClientNodeInteraction implements Interactable<ActionContext> {
128
128
 
129
129
  /**
130
130
  * Invoke a command remotely on the node.
131
- * The returned command response is returned as response chunks
131
+ * The returned command response is returned as response chunks (attr-status).
132
+ *
133
+ * When the number of commands exceeds the peer's MaxPathsPerInvoke limit (or 1 for older nodes),
134
+ * commands are split across multiple parallel exchanges automatically by ClientInteraction.
132
135
  */
133
136
  async *invoke(request: ClientInvoke, context?: ActionContext): DecodedInvokeResult {
134
137
  // For commands, we always ignore the queue because the user is responsible for managing that themselves