@matter/protocol 0.13.1-alpha.0-20250520-d699cd56d → 0.14.0-alpha.0-20250524-51a7e1721

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 (264) hide show
  1. package/dist/cjs/action/Interactable.d.ts +1 -1
  2. package/dist/cjs/action/Interactable.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.d.ts +1 -1
  4. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  5. package/dist/cjs/action/client/ClientInteraction.js +50 -8
  6. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  7. package/dist/cjs/action/protocols.d.ts +49 -15
  8. package/dist/cjs/action/protocols.d.ts.map +1 -1
  9. package/dist/cjs/action/request/Invoke.d.ts +10 -1
  10. package/dist/cjs/action/request/Invoke.d.ts.map +1 -1
  11. package/dist/cjs/action/request/Invoke.js +17 -5
  12. package/dist/cjs/action/request/Invoke.js.map +1 -1
  13. package/dist/cjs/action/request/Read.d.ts.map +1 -1
  14. package/dist/cjs/action/request/Read.js +1 -1
  15. package/dist/cjs/action/request/Read.js.map +1 -1
  16. package/dist/cjs/action/request/Write.d.ts +2 -0
  17. package/dist/cjs/action/request/Write.d.ts.map +1 -1
  18. package/dist/cjs/action/request/Write.js.map +1 -1
  19. package/dist/cjs/action/response/InvokeResult.d.ts +22 -6
  20. package/dist/cjs/action/response/InvokeResult.d.ts.map +1 -1
  21. package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
  22. package/dist/cjs/action/server/AttributeReadResponse.js +1 -2
  23. package/dist/cjs/action/server/AttributeReadResponse.js.map +2 -2
  24. package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
  25. package/dist/cjs/action/server/AttributeWriteResponse.js +1 -14
  26. package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
  27. package/dist/cjs/action/server/CommandInvokeResponse.d.ts +25 -0
  28. package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -0
  29. package/dist/cjs/action/server/CommandInvokeResponse.js +331 -0
  30. package/dist/cjs/action/server/CommandInvokeResponse.js.map +6 -0
  31. package/dist/cjs/action/server/EventReadResponse.js +1 -1
  32. package/dist/cjs/action/server/ServerInteraction.d.ts +1 -3
  33. package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
  34. package/dist/cjs/action/server/ServerInteraction.js +4 -2
  35. package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
  36. package/dist/cjs/action/server/index.d.ts +1 -0
  37. package/dist/cjs/action/server/index.d.ts.map +1 -1
  38. package/dist/cjs/action/server/index.js +1 -0
  39. package/dist/cjs/action/server/index.js.map +1 -1
  40. package/dist/cjs/cluster/client/AttributeClient.d.ts +2 -0
  41. package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -1
  42. package/dist/cjs/cluster/client/AttributeClient.js +10 -0
  43. package/dist/cjs/cluster/client/AttributeClient.js.map +1 -1
  44. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +0 -4
  45. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  46. package/dist/cjs/cluster/index.d.ts +0 -1
  47. package/dist/cjs/cluster/index.d.ts.map +1 -1
  48. package/dist/cjs/cluster/index.js +0 -1
  49. package/dist/cjs/cluster/index.js.map +1 -1
  50. package/dist/cjs/events/OccurrenceManager.d.ts +10 -2
  51. package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
  52. package/dist/cjs/events/OccurrenceManager.js +57 -11
  53. package/dist/cjs/events/OccurrenceManager.js.map +1 -1
  54. package/dist/cjs/fabric/Fabric.d.ts +2 -11
  55. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  56. package/dist/cjs/fabric/Fabric.js +1 -38
  57. package/dist/cjs/fabric/Fabric.js.map +1 -1
  58. package/dist/cjs/index.d.ts +0 -1
  59. package/dist/cjs/index.d.ts.map +1 -1
  60. package/dist/cjs/index.js +0 -1
  61. package/dist/cjs/index.js.map +1 -1
  62. package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
  63. package/dist/cjs/interaction/InteractionClient.d.ts +13 -0
  64. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  65. package/dist/cjs/interaction/InteractionClient.js +14 -0
  66. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  67. package/dist/cjs/interaction/InteractionMessenger.d.ts +8 -8
  68. package/dist/cjs/interaction/index.d.ts +0 -1
  69. package/dist/cjs/interaction/index.d.ts.map +1 -1
  70. package/dist/cjs/interaction/index.js +0 -1
  71. package/dist/cjs/interaction/index.js.map +1 -1
  72. package/dist/cjs/mdns/MdnsScanner.d.ts +23 -1
  73. package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -1
  74. package/dist/cjs/mdns/MdnsScanner.js +124 -11
  75. package/dist/cjs/mdns/MdnsScanner.js.map +2 -2
  76. package/dist/esm/action/Interactable.d.ts +1 -1
  77. package/dist/esm/action/Interactable.d.ts.map +1 -1
  78. package/dist/esm/action/client/ClientInteraction.d.ts +1 -1
  79. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  80. package/dist/esm/action/client/ClientInteraction.js +50 -8
  81. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  82. package/dist/esm/action/protocols.d.ts +49 -15
  83. package/dist/esm/action/protocols.d.ts.map +1 -1
  84. package/dist/esm/action/request/Invoke.d.ts +10 -1
  85. package/dist/esm/action/request/Invoke.d.ts.map +1 -1
  86. package/dist/esm/action/request/Invoke.js +17 -5
  87. package/dist/esm/action/request/Invoke.js.map +1 -1
  88. package/dist/esm/action/request/Read.d.ts.map +1 -1
  89. package/dist/esm/action/request/Read.js +1 -1
  90. package/dist/esm/action/request/Read.js.map +1 -1
  91. package/dist/esm/action/request/Write.d.ts +2 -0
  92. package/dist/esm/action/request/Write.d.ts.map +1 -1
  93. package/dist/esm/action/request/Write.js.map +1 -1
  94. package/dist/esm/action/response/InvokeResult.d.ts +22 -6
  95. package/dist/esm/action/response/InvokeResult.d.ts.map +1 -1
  96. package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
  97. package/dist/esm/action/server/AttributeReadResponse.js +1 -1
  98. package/dist/esm/action/server/AttributeReadResponse.js.map +1 -1
  99. package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
  100. package/dist/esm/action/server/AttributeWriteResponse.js +2 -15
  101. package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
  102. package/dist/esm/action/server/CommandInvokeResponse.d.ts +25 -0
  103. package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -0
  104. package/dist/esm/action/server/CommandInvokeResponse.js +317 -0
  105. package/dist/esm/action/server/CommandInvokeResponse.js.map +6 -0
  106. package/dist/esm/action/server/EventReadResponse.js +1 -1
  107. package/dist/esm/action/server/ServerInteraction.d.ts +1 -3
  108. package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
  109. package/dist/esm/action/server/ServerInteraction.js +4 -2
  110. package/dist/esm/action/server/ServerInteraction.js.map +1 -1
  111. package/dist/esm/action/server/index.d.ts +1 -0
  112. package/dist/esm/action/server/index.d.ts.map +1 -1
  113. package/dist/esm/action/server/index.js +1 -0
  114. package/dist/esm/action/server/index.js.map +1 -1
  115. package/dist/esm/cluster/client/AttributeClient.d.ts +2 -0
  116. package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -1
  117. package/dist/esm/cluster/client/AttributeClient.js +10 -0
  118. package/dist/esm/cluster/client/AttributeClient.js.map +1 -1
  119. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +0 -4
  120. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  121. package/dist/esm/cluster/index.d.ts +0 -1
  122. package/dist/esm/cluster/index.d.ts.map +1 -1
  123. package/dist/esm/cluster/index.js +0 -1
  124. package/dist/esm/cluster/index.js.map +1 -1
  125. package/dist/esm/events/OccurrenceManager.d.ts +10 -2
  126. package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
  127. package/dist/esm/events/OccurrenceManager.js +62 -12
  128. package/dist/esm/events/OccurrenceManager.js.map +1 -1
  129. package/dist/esm/fabric/Fabric.d.ts +2 -11
  130. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  131. package/dist/esm/fabric/Fabric.js +1 -38
  132. package/dist/esm/fabric/Fabric.js.map +1 -1
  133. package/dist/esm/index.d.ts +0 -1
  134. package/dist/esm/index.d.ts.map +1 -1
  135. package/dist/esm/index.js +0 -1
  136. package/dist/esm/index.js.map +1 -1
  137. package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
  138. package/dist/esm/interaction/InteractionClient.d.ts +13 -0
  139. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  140. package/dist/esm/interaction/InteractionClient.js +14 -0
  141. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  142. package/dist/esm/interaction/InteractionMessenger.d.ts +8 -8
  143. package/dist/esm/interaction/index.d.ts +0 -1
  144. package/dist/esm/interaction/index.d.ts.map +1 -1
  145. package/dist/esm/interaction/index.js +0 -1
  146. package/dist/esm/interaction/index.js.map +1 -1
  147. package/dist/esm/mdns/MdnsScanner.d.ts +23 -1
  148. package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -1
  149. package/dist/esm/mdns/MdnsScanner.js +127 -11
  150. package/dist/esm/mdns/MdnsScanner.js.map +2 -2
  151. package/package.json +6 -6
  152. package/src/action/Interactable.ts +1 -1
  153. package/src/action/client/ClientInteraction.ts +53 -16
  154. package/src/action/protocols.ts +70 -16
  155. package/src/action/request/Invoke.ts +32 -5
  156. package/src/action/request/Read.ts +1 -1
  157. package/src/action/request/Write.ts +4 -1
  158. package/src/action/response/InvokeResult.ts +26 -6
  159. package/src/action/response/ReadResult.ts +1 -1
  160. package/src/action/server/AttributeReadResponse.ts +1 -1
  161. package/src/action/server/AttributeWriteResponse.ts +2 -20
  162. package/src/action/server/CommandInvokeResponse.ts +427 -0
  163. package/src/action/server/EventReadResponse.ts +1 -1
  164. package/src/action/server/ServerInteraction.ts +6 -5
  165. package/src/action/server/index.ts +1 -0
  166. package/src/cluster/client/AttributeClient.ts +12 -0
  167. package/src/cluster/client/ClusterClientTypes.ts +0 -6
  168. package/src/cluster/index.ts +0 -1
  169. package/src/events/OccurrenceManager.ts +91 -11
  170. package/src/fabric/Fabric.ts +1 -49
  171. package/src/index.ts +0 -1
  172. package/src/interaction/InteractionClient.ts +24 -0
  173. package/src/interaction/index.ts +0 -1
  174. package/src/mdns/MdnsScanner.ts +187 -12
  175. package/dist/cjs/cluster/server/AttributeServer.d.ts +0 -307
  176. package/dist/cjs/cluster/server/AttributeServer.d.ts.map +0 -1
  177. package/dist/cjs/cluster/server/AttributeServer.js +0 -736
  178. package/dist/cjs/cluster/server/AttributeServer.js.map +0 -6
  179. package/dist/cjs/cluster/server/ClusterDatasource.d.ts +0 -16
  180. package/dist/cjs/cluster/server/ClusterDatasource.d.ts.map +0 -1
  181. package/dist/cjs/cluster/server/ClusterDatasource.js +0 -22
  182. package/dist/cjs/cluster/server/ClusterDatasource.js.map +0 -6
  183. package/dist/cjs/cluster/server/ClusterServer.d.ts +0 -40
  184. package/dist/cjs/cluster/server/ClusterServer.d.ts.map +0 -1
  185. package/dist/cjs/cluster/server/ClusterServer.js +0 -22
  186. package/dist/cjs/cluster/server/ClusterServer.js.map +0 -6
  187. package/dist/cjs/cluster/server/CommandServer.d.ts +0 -34
  188. package/dist/cjs/cluster/server/CommandServer.d.ts.map +0 -1
  189. package/dist/cjs/cluster/server/CommandServer.js +0 -76
  190. package/dist/cjs/cluster/server/CommandServer.js.map +0 -6
  191. package/dist/cjs/cluster/server/EventServer.d.ts +0 -42
  192. package/dist/cjs/cluster/server/EventServer.d.ts.map +0 -1
  193. package/dist/cjs/cluster/server/EventServer.js +0 -152
  194. package/dist/cjs/cluster/server/EventServer.js.map +0 -6
  195. package/dist/cjs/cluster/server/index.d.ts +0 -11
  196. package/dist/cjs/cluster/server/index.d.ts.map +0 -1
  197. package/dist/cjs/cluster/server/index.js +0 -28
  198. package/dist/cjs/cluster/server/index.js.map +0 -6
  199. package/dist/cjs/endpoint/EndpointInterface.d.ts +0 -37
  200. package/dist/cjs/endpoint/EndpointInterface.d.ts.map +0 -1
  201. package/dist/cjs/endpoint/EndpointInterface.js +0 -22
  202. package/dist/cjs/endpoint/EndpointInterface.js.map +0 -6
  203. package/dist/cjs/endpoint/EndpointStructureLogger.d.ts +0 -31
  204. package/dist/cjs/endpoint/EndpointStructureLogger.d.ts.map +0 -1
  205. package/dist/cjs/endpoint/EndpointStructureLogger.js +0 -230
  206. package/dist/cjs/endpoint/EndpointStructureLogger.js.map +0 -6
  207. package/dist/cjs/endpoint/index.d.ts +0 -8
  208. package/dist/cjs/endpoint/index.d.ts.map +0 -1
  209. package/dist/cjs/endpoint/index.js +0 -25
  210. package/dist/cjs/endpoint/index.js.map +0 -6
  211. package/dist/cjs/interaction/InteractionEndpointStructure.d.ts +0 -95
  212. package/dist/cjs/interaction/InteractionEndpointStructure.d.ts.map +0 -1
  213. package/dist/cjs/interaction/InteractionEndpointStructure.js +0 -359
  214. package/dist/cjs/interaction/InteractionEndpointStructure.js.map +0 -6
  215. package/dist/esm/cluster/server/AttributeServer.d.ts +0 -307
  216. package/dist/esm/cluster/server/AttributeServer.d.ts.map +0 -1
  217. package/dist/esm/cluster/server/AttributeServer.js +0 -729
  218. package/dist/esm/cluster/server/AttributeServer.js.map +0 -6
  219. package/dist/esm/cluster/server/ClusterDatasource.d.ts +0 -16
  220. package/dist/esm/cluster/server/ClusterDatasource.d.ts.map +0 -1
  221. package/dist/esm/cluster/server/ClusterDatasource.js +0 -6
  222. package/dist/esm/cluster/server/ClusterDatasource.js.map +0 -6
  223. package/dist/esm/cluster/server/ClusterServer.d.ts +0 -40
  224. package/dist/esm/cluster/server/ClusterServer.d.ts.map +0 -1
  225. package/dist/esm/cluster/server/ClusterServer.js +0 -6
  226. package/dist/esm/cluster/server/ClusterServer.js.map +0 -6
  227. package/dist/esm/cluster/server/CommandServer.d.ts +0 -34
  228. package/dist/esm/cluster/server/CommandServer.d.ts.map +0 -1
  229. package/dist/esm/cluster/server/CommandServer.js +0 -56
  230. package/dist/esm/cluster/server/CommandServer.js.map +0 -6
  231. package/dist/esm/cluster/server/EventServer.d.ts +0 -42
  232. package/dist/esm/cluster/server/EventServer.d.ts.map +0 -1
  233. package/dist/esm/cluster/server/EventServer.js +0 -141
  234. package/dist/esm/cluster/server/EventServer.js.map +0 -6
  235. package/dist/esm/cluster/server/index.d.ts +0 -11
  236. package/dist/esm/cluster/server/index.d.ts.map +0 -1
  237. package/dist/esm/cluster/server/index.js +0 -11
  238. package/dist/esm/cluster/server/index.js.map +0 -6
  239. package/dist/esm/endpoint/EndpointInterface.d.ts +0 -37
  240. package/dist/esm/endpoint/EndpointInterface.d.ts.map +0 -1
  241. package/dist/esm/endpoint/EndpointInterface.js +0 -6
  242. package/dist/esm/endpoint/EndpointInterface.js.map +0 -6
  243. package/dist/esm/endpoint/EndpointStructureLogger.d.ts +0 -31
  244. package/dist/esm/endpoint/EndpointStructureLogger.d.ts.map +0 -1
  245. package/dist/esm/endpoint/EndpointStructureLogger.js +0 -210
  246. package/dist/esm/endpoint/EndpointStructureLogger.js.map +0 -6
  247. package/dist/esm/endpoint/index.d.ts +0 -8
  248. package/dist/esm/endpoint/index.d.ts.map +0 -1
  249. package/dist/esm/endpoint/index.js +0 -8
  250. package/dist/esm/endpoint/index.js.map +0 -6
  251. package/dist/esm/interaction/InteractionEndpointStructure.d.ts +0 -95
  252. package/dist/esm/interaction/InteractionEndpointStructure.d.ts.map +0 -1
  253. package/dist/esm/interaction/InteractionEndpointStructure.js +0 -355
  254. package/dist/esm/interaction/InteractionEndpointStructure.js.map +0 -6
  255. package/src/cluster/server/AttributeServer.ts +0 -997
  256. package/src/cluster/server/ClusterDatasource.ts +0 -17
  257. package/src/cluster/server/ClusterServer.ts +0 -46
  258. package/src/cluster/server/CommandServer.ts +0 -89
  259. package/src/cluster/server/EventServer.ts +0 -202
  260. package/src/cluster/server/index.ts +0 -11
  261. package/src/endpoint/EndpointInterface.ts +0 -41
  262. package/src/endpoint/EndpointStructureLogger.ts +0 -270
  263. package/src/endpoint/index.ts +0 -8
  264. package/src/interaction/InteractionEndpointStructure.ts +0 -510
@@ -8,7 +8,6 @@ export * from "./AttributeDataDecoder.js";
8
8
  export * from "./AttributeDataEncoder.js";
9
9
  export * from "./EventDataDecoder.js";
10
10
  export * from "./InteractionClient.js";
11
- export * from "./InteractionEndpointStructure.js";
12
11
  export * from "./InteractionMessenger.js";
13
12
  export * from "./Subscription.js";
14
13
  export * from "./SubscriptionClient.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interaction/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interaction/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
@@ -8,7 +8,6 @@ export * from "./AttributeDataDecoder.js";
8
8
  export * from "./AttributeDataEncoder.js";
9
9
  export * from "./EventDataDecoder.js";
10
10
  export * from "./InteractionClient.js";
11
- export * from "./InteractionEndpointStructure.js";
12
11
  export * from "./InteractionMessenger.js";
13
12
  export * from "./Subscription.js";
14
13
  export * from "./SubscriptionClient.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/interaction/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -3,11 +3,31 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { ChannelType, Diagnostic, Lifespan, Network, ServerAddressIp, UdpMulticastServer } from "#general";
6
+ import { BasicSet, ChannelType, Diagnostic, Lifespan, Network, ServerAddressIp, UdpMulticastServer } from "#general";
7
7
  import { NodeId } from "#types";
8
8
  import { CommissionableDevice, CommissionableDeviceIdentifiers, DiscoveryData, OperationalDevice, Scanner } from "../common/Scanner.js";
9
9
  import { Fabric } from "../fabric/Fabric.js";
10
10
  type MatterServerRecordWithExpire = ServerAddressIp & Lifespan;
11
+ /**
12
+ * Interface to add criteria for MDNS discovery a node is interested in
13
+ *
14
+ * This interface is used to define criteria for mDNS scanner targets.
15
+ * It includes the information if commissionable devices are relevant for the target
16
+ * and a list of operational targets. Operational targets can consist of operational IDs
17
+ * and optional node IDs.
18
+ *
19
+ * When no commissionable devices are relevant and no operational targets are defined, it is
20
+ * not required to add a criteria to the scanner.
21
+ */
22
+ export interface MdnsScannerTargetCriteria {
23
+ /** Are commissionable MDNS records relevant? */
24
+ commissionable: boolean;
25
+ /** List of operational targets. */
26
+ operationalTargets: {
27
+ operationalId: Uint8Array;
28
+ nodeId?: NodeId;
29
+ }[];
30
+ }
11
31
  /**
12
32
  * This class implements the Scanner interface for a MDNS scanner via UDP messages in a IP based network. It sends out
13
33
  * queries to discover various types of Matter device types and listens for announcements.
@@ -20,6 +40,8 @@ export declare class MdnsScanner implements Scanner {
20
40
  netInterface?: string;
21
41
  }): Promise<MdnsScanner>;
22
42
  constructor(multicastServer: UdpMulticastServer, enableIpv4?: boolean);
43
+ /** Set to add or delete criteria for MDNS discovery */
44
+ get targetCriteriaProviders(): BasicSet<MdnsScannerTargetCriteria, MdnsScannerTargetCriteria>;
23
45
  /**
24
46
  * Method to find an operational device (already commissioned) and return a promise with the list of discovered
25
47
  * IP/ports or an empty array if not found.
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsScanner.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsScanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,WAAW,EACX,UAAU,EASV,QAAQ,EAGR,OAAO,EACP,eAAe,EAIf,kBAAkB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,OAAO,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAkB7C,KAAK,4BAA4B,GAAG,eAAe,GAAG,QAAQ,CAAC;AAoC/D;;;GAGG;AACH,qBAAa,WAAY,YAAW,OAAO;;IACvC,IAAI,IAAI,gBAEP;WAEY,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;gBA4CnF,eAAe,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,OAAO;IAqQrE;;;OAGG;IACG,qBAAqB,CACvB,EAAE,aAAa,EAAE,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAyBzC,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAO;IAKtF,mCAAmC,CAAC,UAAU,EAAE,+BAA+B,EAAE,cAAc,UAAO;IAQtG,8BAA8B,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoLxE;;;;;;;OAOG;IACG,yBAAyB,CAC3B,UAAU,EAAE,+BAA+B,EAC3C,cAAc,SAAI,EAClB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAkBlC;;;OAGG;IACG,qCAAqC,CACvC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAChD,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDlC,kCAAkC,CAAC,UAAU,EAAE,+BAA+B;mBAnOvD,eAAe,EAAE;;;;;;;;;;;;;;;;;oBAhbxB,MAAM;YACd,MAAM;YACN,MAAM;YACN,MAAM;;IAopBd;;OAEG;IACG,KAAK;IA6rBX,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa;IAmBnD,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC;CASvF"}
1
+ {"version":3,"file":"MdnsScanner.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsScanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,QAAQ,EAER,WAAW,EACX,UAAU,EAUV,QAAQ,EAGR,OAAO,EAEP,eAAe,EAIf,kBAAkB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,OAAO,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAkB7C,KAAK,4BAA4B,GAAG,eAAe,GAAG,QAAQ,CAAC;AAoC/D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACtC,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IAExB,mCAAmC;IACnC,kBAAkB,EAAE;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACP;AAED;;;GAGG;AACH,qBAAa,WAAY,YAAW,OAAO;;IACvC,IAAI,IAAI,gBAEP;WAEY,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;gBAsDnF,eAAe,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,OAAO;IAcrE,uDAAuD;IACvD,IAAI,uBAAuB,mEAE1B;IAiWD;;;OAGG;IACG,qBAAqB,CACvB,EAAE,aAAa,EAAE,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwBzC,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAO;IAKtF,mCAAmC,CAAC,UAAU,EAAE,+BAA+B,EAAE,cAAc,UAAO;IAQtG,8BAA8B,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoLxE;;;;;;;OAOG;IACG,yBAAyB,CAC3B,UAAU,EAAE,+BAA+B,EAC3C,cAAc,SAAI,EAClB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBlC;;;OAGG;IACG,qCAAqC,CACvC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAChD,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDlC,kCAAkC,CAAC,UAAU,EAAE,+BAA+B;mBAlOvD,eAAe,EAAE;;;;;;;;;;;;;;;;;oBA5jBxB,MAAM;YACd,MAAM;YACN,MAAM;YACN,MAAM;;IA+xBd;;OAEG;IACG,KAAK;IA8tBX,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa;IAmBnD,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC;CASvF"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import {
7
+ BasicSet,
7
8
  Bytes,
8
9
  ChannelType,
9
10
  Diagnostic,
@@ -12,8 +13,10 @@ import {
12
13
  DnsRecordClass,
13
14
  DnsRecordType,
14
15
  ImplementationError,
16
+ InternalError,
15
17
  Logger,
16
18
  MAX_MDNS_MESSAGE_SIZE,
19
+ ObserverGroup,
17
20
  Time,
18
21
  UdpMulticastServer,
19
22
  createPromise,
@@ -68,6 +71,13 @@ class MdnsScanner {
68
71
  #closing = false;
69
72
  #multicastServer;
70
73
  #enableIpv4;
74
+ #targetCriteriaProviders = new BasicSet();
75
+ #scanForCommissionableDevices = false;
76
+ #hasCommissionableWaiters = false;
77
+ #operationalScanTargets = /* @__PURE__ */ new Set();
78
+ #observers = new ObserverGroup();
79
+ /** True, if any node is interested in MDNS traffic, else we ignore all traffic */
80
+ #listening = false;
71
81
  constructor(multicastServer, enableIpv4) {
72
82
  multicastServer.onMessage(
73
83
  (message, remoteIp, netInterface) => this.#handleDnsMessage(message, remoteIp, netInterface)
@@ -79,6 +89,59 @@ class MdnsScanner {
79
89
  60 * 1e3,
80
90
  () => this.#expire()
81
91
  ).start();
92
+ this.#observers.on(this.#targetCriteriaProviders.added, () => this.#handleChangedScanTargets());
93
+ this.#observers.on(this.#targetCriteriaProviders.deleted, () => this.#handleChangedScanTargets());
94
+ }
95
+ /** Set to add or delete criteria for MDNS discovery */
96
+ get targetCriteriaProviders() {
97
+ return this.#targetCriteriaProviders;
98
+ }
99
+ #handleChangedScanTargets() {
100
+ this.#updateScanTargets();
101
+ logger.info(
102
+ "MDNS Scan targets updated :",
103
+ `commissionable = ${this.#scanForCommissionableDevices}`,
104
+ "Targets:",
105
+ this.#operationalScanTargets
106
+ );
107
+ }
108
+ /** Update the MDNS scan criteria state and collect the desired operational targets */
109
+ #updateScanTargets() {
110
+ if (this.#closing) {
111
+ return;
112
+ }
113
+ this.#operationalScanTargets.clear();
114
+ let cacheCommissionableDevices = false;
115
+ for (const criteria of this.#targetCriteriaProviders) {
116
+ const { operationalTargets, commissionable } = criteria;
117
+ cacheCommissionableDevices = cacheCommissionableDevices || commissionable;
118
+ for (const { operationalId, nodeId } of operationalTargets) {
119
+ const operationalIdString = Bytes.toHex(operationalId).toUpperCase();
120
+ if (nodeId === void 0) {
121
+ this.#operationalScanTargets.add(operationalIdString);
122
+ } else {
123
+ this.#operationalScanTargets.add(`${operationalIdString}-${NodeId.toHexString(nodeId)}`);
124
+ }
125
+ }
126
+ }
127
+ this.#scanForCommissionableDevices = cacheCommissionableDevices;
128
+ for (const queryId of this.#recordWaiters.keys()) {
129
+ this.#registerOperationalQuery(queryId);
130
+ }
131
+ this.#updateListeningStatus();
132
+ }
133
+ /** Update the status of we care about MDNS messages or not */
134
+ #updateListeningStatus() {
135
+ const formerListenStatus = this.#listening;
136
+ this.#listening = this.#scanForCommissionableDevices || this.#operationalScanTargets.size > 0 || this.#recordWaiters.size > 0 || this.#activeAnnounceQueries.size > 0;
137
+ if (!this.#listening) {
138
+ this.#discoveredIpRecords.clear();
139
+ this.#operationalDeviceRecords.clear();
140
+ this.#commissionableDeviceRecords.clear();
141
+ }
142
+ if (this.#listening !== formerListenStatus) {
143
+ logger.debug(`MDNS Scanner ${this.#listening ? "started" : "stopped"} listening for MDNS messages`);
144
+ }
82
145
  }
83
146
  #effectiveTTL(ttl) {
84
147
  return Math.ceil(ttl * MDNS_EXPIRY_GRACE_PERIOD_FACTOR);
@@ -253,17 +316,30 @@ class MdnsScanner {
253
316
  return 0;
254
317
  });
255
318
  }
319
+ #registerOperationalQuery(queryId) {
320
+ const separator = queryId.indexOf(".");
321
+ if (separator !== -1) {
322
+ this.#operationalScanTargets.add(queryId.substring(0, separator));
323
+ } else {
324
+ throw new InternalError(`Invalid queryId ${queryId} for operational device, no separator found`);
325
+ }
326
+ }
256
327
  /**
257
328
  * Registers a deferred promise for a specific queryId together with a timeout and return the promise.
258
329
  * The promise will be resolved when the timer runs out latest.
259
330
  */
260
- async #registerWaiterPromise(queryId, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
331
+ async #registerWaiterPromise(queryId, commissionable, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
261
332
  const { promise, resolver } = createPromise();
262
333
  const timer = timeoutSeconds !== void 0 ? Time.getTimer("MDNS timeout", timeoutSeconds * 1e3, () => {
263
334
  cancelResolver?.();
264
335
  this.#finishWaiter(queryId, true);
265
336
  }).start() : void 0;
266
- this.#recordWaiters.set(queryId, { resolver, timer, resolveOnUpdatedRecords, cancelResolver });
337
+ this.#listening = true;
338
+ this.#recordWaiters.set(queryId, { resolver, timer, resolveOnUpdatedRecords, cancelResolver, commissionable });
339
+ this.#hasCommissionableWaiters = this.#hasCommissionableWaiters || commissionable;
340
+ if (!commissionable) {
341
+ this.#registerOperationalQuery(queryId);
342
+ }
267
343
  logger.debug(
268
344
  `Registered waiter for query ${queryId} with ${timeoutSeconds !== void 0 ? `timeout ${timeoutSeconds} seconds` : "no timeout"}${resolveOnUpdatedRecords ? "" : " (not resolving on updated records)"}`
269
345
  );
@@ -276,7 +352,7 @@ class MdnsScanner {
276
352
  #finishWaiter(queryId, resolvePromise, isUpdatedRecord = false) {
277
353
  const waiter = this.#recordWaiters.get(queryId);
278
354
  if (waiter === void 0) return;
279
- const { timer, resolver, resolveOnUpdatedRecords } = waiter;
355
+ const { timer, resolver, resolveOnUpdatedRecords, commissionable } = waiter;
280
356
  if (isUpdatedRecord && !resolveOnUpdatedRecords) return;
281
357
  logger.debug(`Finishing waiter for query ${queryId}, resolving: ${resolvePromise}`);
282
358
  if (timer !== void 0) {
@@ -286,6 +362,29 @@ class MdnsScanner {
286
362
  resolver();
287
363
  }
288
364
  this.#recordWaiters.delete(queryId);
365
+ this.#removeQuery(queryId);
366
+ if (!this.#closing) {
367
+ this.#hasCommissionableWaiters = false;
368
+ let hasOperationalWaiters = false;
369
+ for (const { commissionable: commissionable2 } of this.#recordWaiters.values()) {
370
+ if (commissionable2) {
371
+ this.#hasCommissionableWaiters = true;
372
+ if (hasOperationalWaiters) {
373
+ break;
374
+ }
375
+ } else {
376
+ hasOperationalWaiters = true;
377
+ if (this.#hasCommissionableWaiters) {
378
+ break;
379
+ }
380
+ }
381
+ }
382
+ if (!commissionable) {
383
+ this.#updateScanTargets();
384
+ } else {
385
+ this.#updateListeningStatus();
386
+ }
387
+ }
289
388
  }
290
389
  /** Returns weather a waiter promise is registered for a specific queryId. */
291
390
  #hasWaiter(queryId) {
@@ -306,7 +405,7 @@ class MdnsScanner {
306
405
  const deviceMatterQname = this.#createOperationalMatterQName(operationalId, nodeId);
307
406
  let storedDevice = ignoreExistingRecords ? void 0 : this.#getOperationalDeviceRecords(deviceMatterQname);
308
407
  if (storedDevice === void 0) {
309
- const promise = this.#registerWaiterPromise(deviceMatterQname, timeoutSeconds);
408
+ const promise = this.#registerWaiterPromise(deviceMatterQname, false, timeoutSeconds);
310
409
  this.#setQueryRecords(deviceMatterQname, [
311
410
  {
312
411
  name: deviceMatterQname,
@@ -316,7 +415,6 @@ class MdnsScanner {
316
415
  ]);
317
416
  await promise;
318
417
  storedDevice = this.#getOperationalDeviceRecords(deviceMatterQname);
319
- this.#removeQuery(deviceMatterQname);
320
418
  }
321
419
  return storedDevice;
322
420
  }
@@ -491,11 +589,10 @@ class MdnsScanner {
491
589
  let storedRecords = ignoreExistingRecords ? [] : this.#getCommissionableDeviceRecords(identifier).filter(({ addresses }) => addresses.length > 0);
492
590
  if (storedRecords.length === 0) {
493
591
  const queryId = this.#buildCommissionableQueryIdentifier(identifier);
494
- const promise = this.#registerWaiterPromise(queryId, timeoutSeconds);
592
+ const promise = this.#registerWaiterPromise(queryId, true, timeoutSeconds);
495
593
  this.#setQueryRecords(queryId, this.#getCommissionableQueryRecords(identifier));
496
594
  await promise;
497
595
  storedRecords = this.#getCommissionableDeviceRecords(identifier);
498
- this.#removeQuery(queryId);
499
596
  }
500
597
  return storedRecords;
501
598
  }
@@ -541,7 +638,7 @@ class MdnsScanner {
541
638
  break;
542
639
  }
543
640
  }
544
- await this.#registerWaiterPromise(queryId, remainingTime, false, queryResolver);
641
+ await this.#registerWaiterPromise(queryId, true, remainingTime, false, queryResolver);
545
642
  }
546
643
  return this.#getCommissionableDeviceRecords(identifier);
547
644
  }
@@ -553,6 +650,7 @@ class MdnsScanner {
553
650
  */
554
651
  async close() {
555
652
  this.#closing = true;
653
+ this.#observers.close();
556
654
  this.#periodicTimer.stop();
557
655
  this.#queryTimer?.stop();
558
656
  await this.#multicastServer.close();
@@ -809,6 +907,15 @@ class MdnsScanner {
809
907
  );
810
908
  }
811
909
  }
910
+ #matchesOperationalCriteria(matterName) {
911
+ const nameParts = matterName.match(/^([\dA-F]{16})-([\dA-F]{16})\._matter\._tcp\.local$/i);
912
+ if (!nameParts) {
913
+ return false;
914
+ }
915
+ const operationalId = nameParts[1];
916
+ const nodeId = nameParts[2];
917
+ return this.#operationalScanTargets.has(operationalId) || this.#operationalScanTargets.has(`${operationalId}-${nodeId}`);
918
+ }
812
919
  #handleOperationalTxtRecord(record, netInterface) {
813
920
  const { name: matterName, value, ttl } = record;
814
921
  const discoveredAt = Time.nowMs();
@@ -822,6 +929,9 @@ class MdnsScanner {
822
929
  return;
823
930
  }
824
931
  if (!Array.isArray(value)) return;
932
+ if (!this.#operationalDeviceRecords.has(matterName) && !this.#matchesOperationalCriteria(matterName)) {
933
+ return;
934
+ }
825
935
  const txtData = this.#parseTxtRecord(record);
826
936
  if (txtData === void 0) return;
827
937
  let device = this.#operationalDeviceRecords.get(matterName);
@@ -853,7 +963,6 @@ class MdnsScanner {
853
963
  ttl,
854
964
  value: { target, port }
855
965
  } = record;
856
- const discoveredAt = Time.nowMs();
857
966
  if (ttl === 0) {
858
967
  if (this.#operationalDeviceRecords.has(matterName)) {
859
968
  logger.debug(
@@ -861,10 +970,14 @@ class MdnsScanner {
861
970
  );
862
971
  this.#operationalDeviceRecords.delete(matterName);
863
972
  }
864
- return true;
973
+ return;
865
974
  }
866
975
  const ips = this.#handleIpRecords([formerAnswers, answers], target, netInterface);
867
976
  const deviceExisted = this.#operationalDeviceRecords.has(matterName);
977
+ if (!deviceExisted && !this.#matchesOperationalCriteria(matterName)) {
978
+ return;
979
+ }
980
+ const discoveredAt = Time.nowMs();
868
981
  const device = this.#operationalDeviceRecords.get(matterName) ?? {
869
982
  deviceIdentifier: matterName,
870
983
  addresses: /* @__PURE__ */ new Map(),
@@ -906,9 +1019,12 @@ class MdnsScanner {
906
1019
  } else if (addresses.size > 0) {
907
1020
  this.#finishWaiter(matterName, true, deviceExisted);
908
1021
  }
909
- return true;
1022
+ return;
910
1023
  }
911
1024
  #handleCommissionableRecords(answers, formerAnswers, netInterface) {
1025
+ if (!this.#scanForCommissionableDevices && !this.#hasCommissionableWaiters) {
1026
+ return;
1027
+ }
912
1028
  let commissionableRecords = answers.commissionable ?? {};
913
1029
  if (!commissionableRecords[DnsRecordType.SRV]?.length && !commissionableRecords[DnsRecordType.TXT]?.length) {
914
1030
  commissionableRecords = formerAnswers.commissionable ?? {};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsScanner.ts"],
4
- "mappings": "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",
5
- "names": ["queries", "answers", "ttl", "queryId", "value", "discoveredAt"]
4
+ "mappings": "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",
5
+ "names": ["queries", "answers", "commissionable", "ttl", "queryId", "value", "discoveredAt"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/protocol",
3
- "version": "0.13.1-alpha.0-20250520-d699cd56d",
3
+ "version": "0.14.0-alpha.0-20250524-51a7e1721",
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.13.1-alpha.0-20250520-d699cd56d",
44
- "@matter/model": "0.13.1-alpha.0-20250520-d699cd56d",
45
- "@matter/types": "0.13.1-alpha.0-20250520-d699cd56d"
43
+ "@matter/general": "0.14.0-alpha.0-20250524-51a7e1721",
44
+ "@matter/model": "0.14.0-alpha.0-20250524-51a7e1721",
45
+ "@matter/types": "0.14.0-alpha.0-20250524-51a7e1721"
46
46
  },
47
47
  "devDependencies": {
48
- "@matter/tools": "0.13.1-alpha.0-20250520-d699cd56d",
49
- "@matter/testing": "0.13.1-alpha.0-20250520-d699cd56d"
48
+ "@matter/tools": "0.14.0-alpha.0-20250524-51a7e1721",
49
+ "@matter/testing": "0.14.0-alpha.0-20250524-51a7e1721"
50
50
  },
51
51
  "files": [
52
52
  "dist/**/*",
@@ -41,5 +41,5 @@ export interface Interactable<SessionT = InteractionSession> {
41
41
  /**
42
42
  * Perform a Matter invoke interaction.
43
43
  */
44
- invoke<T extends Invoke>(request: T, session?: SessionT): InvokeResult<T>;
44
+ invoke(request: Invoke, session?: SessionT): InvokeResult;
45
45
  }
@@ -86,29 +86,66 @@ export class ClientInteraction<SessionT extends InteractionSession = Interaction
86
86
  attributeId: attributeId!,
87
87
  listIndex,
88
88
  },
89
- status: status!,
89
+ status,
90
90
  clusterStatus,
91
91
  }),
92
92
  ) as Awaited<WriteResult<T>>;
93
93
  }
94
94
  }
95
95
 
96
- invoke<T extends Invoke>(request: Invoke, _session?: SessionT): InvokeResult<T> {
97
- if (request.suppressResponse) {
98
- return new Promise<void>((resolve, reject) => {
99
- InteractionClientMessenger.create(this.#exchanges)
100
- .then(messenger =>
101
- messenger
102
- .sendInvokeCommand(request)
103
- .then(() => resolve())
104
- .catch(reject),
105
- )
106
- .then(resolve, reject);
107
- }) as InvokeResult<T>;
96
+ async *invoke(request: Invoke, _session?: SessionT): InvokeResult {
97
+ const messenger = await InteractionClientMessenger.create(this.#exchanges);
98
+ const result = await messenger.sendInvokeCommand(request);
99
+ if (!request.suppressResponse) {
100
+ if (result && result.invokeResponses?.length) {
101
+ const chunk: InvokeResult.Chunk = result.invokeResponses
102
+ .map(response => {
103
+ if (response.command !== undefined) {
104
+ const {
105
+ commandPath: { endpointId, clusterId, commandId },
106
+ commandRef,
107
+ commandFields,
108
+ } = response.command;
109
+ const res: InvokeResult.CommandResponse = {
110
+ kind: "cmd-response",
111
+ path: {
112
+ endpointId: endpointId!,
113
+ clusterId: clusterId,
114
+ commandId: commandId,
115
+ },
116
+ commandRef,
117
+ data: commandFields!, // TODO add decoding
118
+ };
119
+ return res;
120
+ } else if (response.status !== undefined) {
121
+ const {
122
+ commandPath: { endpointId, clusterId, commandId },
123
+ commandRef,
124
+ status: { status, clusterStatus },
125
+ } = response.status;
126
+ const res: InvokeResult.CommandStatus = {
127
+ kind: "cmd-status",
128
+ path: {
129
+ endpointId: endpointId!,
130
+ clusterId: clusterId,
131
+ commandId: commandId,
132
+ },
133
+ commandRef,
134
+ status,
135
+ clusterStatus,
136
+ };
137
+ return res;
138
+ } else {
139
+ // Should not happen but if we ignore the response?
140
+ return undefined;
141
+ }
142
+ })
143
+ .filter(r => r !== undefined);
144
+ yield chunk;
145
+ } else {
146
+ yield [];
147
+ }
108
148
  }
109
-
110
- // TODO
111
- throw new NotImplementedError();
112
149
  }
113
150
 
114
151
  subscribe(_request: Subscribe, _session?: SessionT): SubscribeResult {