@matter/protocol 0.16.8-alpha.0-20260123-dff2cae52 → 0.16.8-alpha.0-20260127-65e1b40e2

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 (201) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts +4 -4
  2. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.js +48 -6
  4. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  5. package/dist/cjs/action/client/QueuedClientInteraction.d.ts +0 -1
  6. package/dist/cjs/action/client/QueuedClientInteraction.d.ts.map +1 -1
  7. package/dist/cjs/action/client/QueuedClientInteraction.js +0 -1
  8. package/dist/cjs/action/client/QueuedClientInteraction.js.map +1 -1
  9. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
  10. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +5 -2
  11. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  12. package/dist/cjs/action/server/AttributeWriteResponse.d.ts +1 -1
  13. package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
  14. package/dist/cjs/action/server/AttributeWriteResponse.js +0 -6
  15. package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
  16. package/dist/cjs/action/server/DataResponse.d.ts +5 -0
  17. package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
  18. package/dist/cjs/action/server/DataResponse.js +7 -0
  19. package/dist/cjs/action/server/DataResponse.js.map +1 -1
  20. package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
  21. package/dist/cjs/dcl/DclCertificateService.d.ts.map +1 -1
  22. package/dist/cjs/dcl/DclCertificateService.js +3 -0
  23. package/dist/cjs/dcl/DclCertificateService.js.map +1 -1
  24. package/dist/cjs/dcl/DclOtaUpdateService.d.ts.map +1 -1
  25. package/dist/cjs/dcl/DclOtaUpdateService.js +6 -4
  26. package/dist/cjs/dcl/DclOtaUpdateService.js.map +1 -1
  27. package/dist/cjs/interaction/InteractionMessenger.d.ts +30 -30
  28. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  29. package/dist/cjs/interaction/InteractionMessenger.js +81 -12
  30. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  31. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
  32. package/dist/cjs/mdns/MdnsClient.js +163 -102
  33. package/dist/cjs/mdns/MdnsClient.js.map +1 -1
  34. package/dist/cjs/mdns/MdnsServer.d.ts +2 -0
  35. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  36. package/dist/cjs/mdns/MdnsServer.js +45 -5
  37. package/dist/cjs/mdns/MdnsServer.js.map +1 -1
  38. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  39. package/dist/cjs/peer/ControllerCommissioningFlow.js +3 -1
  40. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  41. package/dist/cjs/peer/Peer.d.ts +2 -1
  42. package/dist/cjs/peer/Peer.d.ts.map +1 -1
  43. package/dist/cjs/peer/Peer.js +20 -3
  44. package/dist/cjs/peer/Peer.js.map +1 -1
  45. package/dist/cjs/peer/PeerAddressStore.d.ts +1 -11
  46. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  47. package/dist/cjs/peer/PeerAddressStore.js +1 -4
  48. package/dist/cjs/peer/PeerAddressStore.js.map +1 -1
  49. package/dist/cjs/peer/PeerDescriptor.d.ts +1 -9
  50. package/dist/cjs/peer/PeerDescriptor.d.ts.map +1 -1
  51. package/dist/cjs/peer/PeerDescriptor.js +1 -6
  52. package/dist/cjs/peer/PeerDescriptor.js.map +1 -1
  53. package/dist/cjs/peer/PeerSet.d.ts +1 -1
  54. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  55. package/dist/cjs/peer/PeerSet.js +55 -22
  56. package/dist/cjs/peer/PeerSet.js.map +2 -2
  57. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  58. package/dist/cjs/protocol/ExchangeManager.js +2 -2
  59. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  60. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  61. package/dist/cjs/protocol/ExchangeProvider.js +3 -3
  62. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  63. package/dist/cjs/protocol/MRP.d.ts +54 -0
  64. package/dist/cjs/protocol/MRP.d.ts.map +1 -0
  65. package/dist/cjs/protocol/MRP.js +96 -0
  66. package/dist/cjs/protocol/MRP.js.map +6 -0
  67. package/dist/cjs/protocol/MessageChannel.d.ts +0 -23
  68. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
  69. package/dist/cjs/protocol/MessageChannel.js +15 -47
  70. package/dist/cjs/protocol/MessageChannel.js.map +2 -2
  71. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  72. package/dist/cjs/protocol/MessageExchange.js +7 -7
  73. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  74. package/dist/cjs/protocol/index.d.ts +1 -0
  75. package/dist/cjs/protocol/index.d.ts.map +1 -1
  76. package/dist/cjs/protocol/index.js +1 -0
  77. package/dist/cjs/protocol/index.js.map +1 -1
  78. package/dist/cjs/session/NodeSession.js +2 -2
  79. package/dist/cjs/session/NodeSession.js.map +1 -1
  80. package/dist/cjs/session/Session.d.ts +1 -0
  81. package/dist/cjs/session/Session.d.ts.map +1 -1
  82. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  83. package/dist/cjs/session/case/CaseClient.js +1 -1
  84. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  85. package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
  86. package/dist/cjs/session/case/CaseServer.js +4 -1
  87. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  88. package/dist/esm/action/client/ClientInteraction.d.ts +4 -4
  89. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  90. package/dist/esm/action/client/ClientInteraction.js +49 -6
  91. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  92. package/dist/esm/action/client/QueuedClientInteraction.d.ts +0 -1
  93. package/dist/esm/action/client/QueuedClientInteraction.d.ts.map +1 -1
  94. package/dist/esm/action/client/QueuedClientInteraction.js +0 -1
  95. package/dist/esm/action/client/QueuedClientInteraction.js.map +1 -1
  96. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
  97. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +5 -2
  98. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  99. package/dist/esm/action/server/AttributeWriteResponse.d.ts +1 -1
  100. package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
  101. package/dist/esm/action/server/AttributeWriteResponse.js +0 -6
  102. package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
  103. package/dist/esm/action/server/DataResponse.d.ts +5 -0
  104. package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
  105. package/dist/esm/action/server/DataResponse.js +7 -0
  106. package/dist/esm/action/server/DataResponse.js.map +1 -1
  107. package/dist/esm/action/server/ServerInteraction.js.map +1 -1
  108. package/dist/esm/dcl/DclCertificateService.d.ts.map +1 -1
  109. package/dist/esm/dcl/DclCertificateService.js +3 -0
  110. package/dist/esm/dcl/DclCertificateService.js.map +1 -1
  111. package/dist/esm/dcl/DclOtaUpdateService.d.ts.map +1 -1
  112. package/dist/esm/dcl/DclOtaUpdateService.js +6 -4
  113. package/dist/esm/dcl/DclOtaUpdateService.js.map +1 -1
  114. package/dist/esm/interaction/InteractionMessenger.d.ts +30 -30
  115. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  116. package/dist/esm/interaction/InteractionMessenger.js +82 -12
  117. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  118. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
  119. package/dist/esm/mdns/MdnsClient.js +163 -102
  120. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  121. package/dist/esm/mdns/MdnsServer.d.ts +2 -0
  122. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  123. package/dist/esm/mdns/MdnsServer.js +45 -5
  124. package/dist/esm/mdns/MdnsServer.js.map +1 -1
  125. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  126. package/dist/esm/peer/ControllerCommissioningFlow.js +3 -1
  127. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  128. package/dist/esm/peer/Peer.d.ts +2 -1
  129. package/dist/esm/peer/Peer.d.ts.map +1 -1
  130. package/dist/esm/peer/Peer.js +20 -3
  131. package/dist/esm/peer/Peer.js.map +1 -1
  132. package/dist/esm/peer/PeerAddressStore.d.ts +1 -11
  133. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  134. package/dist/esm/peer/PeerAddressStore.js +1 -4
  135. package/dist/esm/peer/PeerAddressStore.js.map +1 -1
  136. package/dist/esm/peer/PeerDescriptor.d.ts +1 -9
  137. package/dist/esm/peer/PeerDescriptor.d.ts.map +1 -1
  138. package/dist/esm/peer/PeerDescriptor.js +1 -6
  139. package/dist/esm/peer/PeerDescriptor.js.map +1 -1
  140. package/dist/esm/peer/PeerSet.d.ts +1 -1
  141. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  142. package/dist/esm/peer/PeerSet.js +60 -24
  143. package/dist/esm/peer/PeerSet.js.map +2 -2
  144. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  145. package/dist/esm/protocol/ExchangeManager.js +2 -2
  146. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  147. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  148. package/dist/esm/protocol/ExchangeProvider.js +3 -3
  149. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  150. package/dist/esm/protocol/MRP.d.ts +54 -0
  151. package/dist/esm/protocol/MRP.d.ts.map +1 -0
  152. package/dist/esm/protocol/MRP.js +76 -0
  153. package/dist/esm/protocol/MRP.js.map +6 -0
  154. package/dist/esm/protocol/MessageChannel.d.ts +0 -23
  155. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  156. package/dist/esm/protocol/MessageChannel.js +16 -54
  157. package/dist/esm/protocol/MessageChannel.js.map +2 -2
  158. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  159. package/dist/esm/protocol/MessageExchange.js +3 -3
  160. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  161. package/dist/esm/protocol/index.d.ts +1 -0
  162. package/dist/esm/protocol/index.d.ts.map +1 -1
  163. package/dist/esm/protocol/index.js +1 -0
  164. package/dist/esm/protocol/index.js.map +1 -1
  165. package/dist/esm/session/NodeSession.js +2 -2
  166. package/dist/esm/session/NodeSession.js.map +1 -1
  167. package/dist/esm/session/Session.d.ts +1 -0
  168. package/dist/esm/session/Session.d.ts.map +1 -1
  169. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  170. package/dist/esm/session/case/CaseClient.js +2 -2
  171. package/dist/esm/session/case/CaseClient.js.map +1 -1
  172. package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
  173. package/dist/esm/session/case/CaseServer.js +4 -1
  174. package/dist/esm/session/case/CaseServer.js.map +1 -1
  175. package/package.json +6 -6
  176. package/src/action/client/ClientInteraction.ts +62 -6
  177. package/src/action/client/QueuedClientInteraction.ts +0 -1
  178. package/src/action/client/subscription/ClientSubscriptionHandler.ts +5 -2
  179. package/src/action/server/AttributeWriteResponse.ts +4 -16
  180. package/src/action/server/DataResponse.ts +8 -0
  181. package/src/action/server/ServerInteraction.ts +2 -2
  182. package/src/dcl/DclCertificateService.ts +3 -0
  183. package/src/dcl/DclOtaUpdateService.ts +11 -5
  184. package/src/interaction/InteractionMessenger.ts +113 -15
  185. package/src/mdns/MdnsClient.ts +216 -104
  186. package/src/mdns/MdnsServer.ts +79 -6
  187. package/src/peer/ControllerCommissioningFlow.ts +5 -1
  188. package/src/peer/Peer.ts +28 -5
  189. package/src/peer/PeerAddressStore.ts +1 -19
  190. package/src/peer/PeerDescriptor.ts +1 -15
  191. package/src/peer/PeerSet.ts +82 -35
  192. package/src/protocol/ExchangeManager.ts +5 -2
  193. package/src/protocol/ExchangeProvider.ts +3 -3
  194. package/src/protocol/MRP.ts +146 -0
  195. package/src/protocol/MessageChannel.ts +16 -101
  196. package/src/protocol/MessageExchange.ts +4 -3
  197. package/src/protocol/index.ts +1 -0
  198. package/src/session/NodeSession.ts +3 -3
  199. package/src/session/Session.ts +1 -0
  200. package/src/session/case/CaseClient.ts +8 -2
  201. package/src/session/case/CaseServer.ts +4 -0
@@ -77,6 +77,8 @@ var import_MdnsConsts = require("./MdnsConsts.js");
77
77
  */
78
78
  const logger = import_general.Logger.get("MdnsClient");
79
79
  const MDNS_EXPIRY_GRACE_PERIOD_FACTOR = 1.05;
80
+ const GOODBYE_PROTECTION_WINDOW = (0, import_general.Millis)(1e3);
81
+ const RECORD_MIN_TTL = (0, import_general.Seconds)(15);
80
82
  const START_ANNOUNCE_INTERVAL = (0, import_general.Seconds)(1.5);
81
83
  class MdnsClient {
82
84
  #lifetime;
@@ -414,14 +416,18 @@ class MdnsClient {
414
416
  throw new import_general.ImplementationError("Cannot discover operational device because scanner is closing.");
415
417
  }
416
418
  const deviceMatterQname = (0, import_MdnsConsts.getOperationalDeviceQname)(fabric.globalId, nodeId);
417
- let storedDevice = ignoreExistingRecords ? void 0 : this.#getOperationalDeviceRecords(deviceMatterQname);
418
- if (storedDevice === void 0) {
419
+ let storedDevice = this.#getOperationalDeviceRecords(deviceMatterQname);
420
+ if (storedDevice === void 0 || ignoreExistingRecords) {
419
421
  var _stack = [];
420
422
  try {
421
423
  const _finding = __using(_stack, this.#lifetime.join(
422
424
  "finding peer",
423
425
  (0, import_PeerAddress.PeerAddress)({ fabricIndex: fabric.fabricIndex, nodeId })
424
426
  ));
427
+ if (storedDevice) {
428
+ const device = this.#operationalDeviceRecords.get(deviceMatterQname);
429
+ device?.addresses.clear();
430
+ }
425
431
  const promise = this.#registerWaiterPromise(
426
432
  deviceMatterQname,
427
433
  false,
@@ -735,6 +741,9 @@ class MdnsClient {
735
741
  answersList.forEach(
736
742
  (answers) => answers.forEach((answer) => {
737
743
  const { name, recordType } = answer;
744
+ if (answer.ttl > 0 && answer.ttl < RECORD_MIN_TTL) {
745
+ answer = { ...answer, ttl: RECORD_MIN_TTL };
746
+ }
738
747
  if (name.endsWith(import_MdnsConsts.MATTER_SERVICE_QNAME)) {
739
748
  structuredAnswers.operational = structuredAnswers.operational ?? {};
740
749
  structuredAnswers.operational[recordType] = structuredAnswers.operational[recordType] ?? [];
@@ -768,71 +777,81 @@ class MdnsClient {
768
777
  );
769
778
  return structuredAnswers;
770
779
  }
780
+ /**
781
+ * Merge a record into a map with goodbye protection.
782
+ * Returns true if the record was processed (added or deleted), false if skipped due to protection.
783
+ */
784
+ #mergeRecordWithGoodbyeProtection(targetMap, key, record, now) {
785
+ const existingRecord = targetMap.get(key);
786
+ if (!existingRecord || existingRecord.discoveredAt < record.discoveredAt) {
787
+ if (record.ttl === 0) {
788
+ if (existingRecord && now - existingRecord.discoveredAt < GOODBYE_PROTECTION_WINDOW) {
789
+ return;
790
+ }
791
+ targetMap.delete(key);
792
+ } else {
793
+ targetMap.set(key, record);
794
+ }
795
+ }
796
+ }
771
797
  #combineStructuredAnswers(...answersList) {
772
798
  const combinedAnswers = {};
799
+ const now = import_general.Time.nowMs;
773
800
  for (const answers of answersList) {
774
801
  if (answers.operational) {
775
802
  combinedAnswers.operational = combinedAnswers.operational ?? {};
776
803
  for (const [recordType, records] of Object.entries(answers.operational)) {
777
804
  combinedAnswers.operational[recordType] = combinedAnswers.operational[recordType] ?? /* @__PURE__ */ new Map();
778
- records.forEach((record) => {
779
- const existingRecord = combinedAnswers.operational[recordType].get(record.name);
780
- if (!existingRecord || existingRecord.discoveredAt < record.discoveredAt) {
781
- if (record.ttl === 0) {
782
- combinedAnswers.operational[recordType].delete(record.name);
783
- } else {
784
- combinedAnswers.operational[recordType].set(record.name, record);
785
- }
786
- }
787
- });
805
+ for (const record of records) {
806
+ this.#mergeRecordWithGoodbyeProtection(
807
+ combinedAnswers.operational[recordType],
808
+ record.name,
809
+ record,
810
+ now
811
+ );
812
+ }
788
813
  }
789
814
  }
790
815
  if (answers.commissionable) {
791
816
  combinedAnswers.commissionable = combinedAnswers.commissionable ?? {};
792
817
  for (const [recordType, records] of Object.entries(answers.commissionable)) {
793
818
  combinedAnswers.commissionable[recordType] = combinedAnswers.commissionable[recordType] ?? /* @__PURE__ */ new Map();
794
- records.forEach((record) => {
795
- const existingRecord = combinedAnswers.commissionable[recordType].get(record.name);
796
- if (!existingRecord || existingRecord.discoveredAt < record.discoveredAt) {
797
- if (record.ttl === 0) {
798
- combinedAnswers.commissionable[recordType].delete(record.name);
799
- } else {
800
- combinedAnswers.commissionable[recordType].set(record.name, record);
801
- }
802
- }
803
- });
819
+ for (const record of records) {
820
+ this.#mergeRecordWithGoodbyeProtection(
821
+ combinedAnswers.commissionable[recordType],
822
+ record.name,
823
+ record,
824
+ now
825
+ );
826
+ }
804
827
  }
805
828
  }
806
829
  if (answers.addressesV6) {
807
830
  combinedAnswers.addressesV6 = combinedAnswers.addressesV6 ?? {};
808
831
  for (const [name, records] of Object.entries(answers.addressesV6)) {
809
832
  combinedAnswers.addressesV6[name] = combinedAnswers.addressesV6[name] ?? /* @__PURE__ */ new Map();
810
- records.forEach((record) => {
811
- const existingRecord = combinedAnswers.addressesV6[name].get(record.value);
812
- if (!existingRecord || existingRecord.discoveredAt < record.discoveredAt) {
813
- if (record.ttl === 0) {
814
- combinedAnswers.addressesV6[name].delete(record.value);
815
- } else {
816
- combinedAnswers.addressesV6[name].set(record.value, record);
817
- }
818
- }
819
- });
833
+ for (const record of records.values()) {
834
+ this.#mergeRecordWithGoodbyeProtection(
835
+ combinedAnswers.addressesV6[name],
836
+ record.value,
837
+ record,
838
+ now
839
+ );
840
+ }
820
841
  }
821
842
  }
822
843
  if (this.#socket.supportsIpv4 && answers.addressesV4) {
823
844
  combinedAnswers.addressesV4 = combinedAnswers.addressesV4 ?? {};
824
845
  for (const [name, records] of Object.entries(answers.addressesV4)) {
825
846
  combinedAnswers.addressesV4[name] = combinedAnswers.addressesV4[name] ?? /* @__PURE__ */ new Map();
826
- records.forEach((record) => {
827
- const existingRecord = combinedAnswers.addressesV4[name].get(record.value);
828
- if (!existingRecord || existingRecord.discoveredAt < record.discoveredAt) {
829
- if (record.ttl === 0) {
830
- combinedAnswers.addressesV4[name].delete(record.value);
831
- } else {
832
- combinedAnswers.addressesV4[name].set(record.value, record);
833
- }
834
- }
835
- });
847
+ for (const record of records.values()) {
848
+ this.#mergeRecordWithGoodbyeProtection(
849
+ combinedAnswers.addressesV4[name],
850
+ record.value,
851
+ record,
852
+ now
853
+ );
854
+ }
836
855
  }
837
856
  }
838
857
  }
@@ -876,43 +895,50 @@ class MdnsClient {
876
895
  this.#updateIpRecords(answers, message.sourceIntf);
877
896
  }
878
897
  /**
879
- * Update the discovered matter relevant IP records with the new data from the DNS message.
898
+ * Update IP address records in a target map with goodbye protection.
899
+ * Returns true if any records were updated.
880
900
  */
881
- #updateIpRecords(answers, netInterface) {
882
- const interfaceRecords = this.#discoveredIpRecords.get(netInterface);
883
- if (interfaceRecords === void 0) {
884
- return;
901
+ #updateIpAddressRecords(sourceAddresses, targetAddresses, now) {
902
+ if (!sourceAddresses || !targetAddresses) {
903
+ return false;
885
904
  }
886
905
  let updated = false;
887
- if (answers.addressesV6) {
888
- for (const [target, ipAddresses] of Object.entries(answers.addressesV6)) {
889
- if (interfaceRecords.addressesV6?.[target] !== void 0) {
890
- for (const [ip, record] of Object.entries(ipAddresses)) {
891
- if (record.ttl === 0) {
892
- interfaceRecords.addressesV6[target].delete(ip);
893
- } else {
894
- interfaceRecords.addressesV6[target].set(ip, record);
895
- }
896
- updated = true;
897
- }
898
- }
906
+ for (const [target, ipAddresses] of Object.entries(sourceAddresses)) {
907
+ const targetMap = targetAddresses[target];
908
+ if (targetMap === void 0) {
909
+ continue;
899
910
  }
900
- }
901
- if (this.#socket.supportsIpv4 && answers.addressesV4) {
902
- for (const [target, ipAddresses] of Object.entries(answers.addressesV4)) {
903
- if (interfaceRecords.addressesV4?.[target] !== void 0) {
904
- for (const [ip, record] of Object.entries(ipAddresses)) {
905
- if (record.ttl === 0) {
906
- interfaceRecords.addressesV4[target].delete(ip);
907
- } else {
908
- interfaceRecords.addressesV4[target].set(ip, record);
911
+ for (const [ip, record] of Object.entries(ipAddresses)) {
912
+ if (record.ttl === 0) {
913
+ const existingRecord = targetMap.get(ip);
914
+ if (existingRecord) {
915
+ const recordAge = now - existingRecord.discoveredAt;
916
+ if (recordAge < GOODBYE_PROTECTION_WINDOW) {
917
+ continue;
909
918
  }
919
+ targetMap.delete(ip);
910
920
  updated = true;
911
921
  }
922
+ } else {
923
+ targetMap.set(ip, record);
924
+ updated = true;
912
925
  }
913
926
  }
914
927
  }
915
- if (updated) {
928
+ return updated;
929
+ }
930
+ /**
931
+ * Update the discovered matter relevant IP records with the new data from the DNS message.
932
+ */
933
+ #updateIpRecords(answers, netInterface) {
934
+ const interfaceRecords = this.#discoveredIpRecords.get(netInterface);
935
+ if (interfaceRecords === void 0) {
936
+ return;
937
+ }
938
+ const now = import_general.Time.nowMs;
939
+ const updatedV6 = this.#updateIpAddressRecords(answers.addressesV6, interfaceRecords.addressesV6, now);
940
+ const updatedV4 = this.#socket.supportsIpv4 && this.#updateIpAddressRecords(answers.addressesV4, interfaceRecords.addressesV4, now);
941
+ if (updatedV6 || updatedV4) {
916
942
  this.#discoveredIpRecords.set(netInterface, interfaceRecords);
917
943
  }
918
944
  }
@@ -984,18 +1010,33 @@ class MdnsClient {
984
1010
  const nodeId = nameParts[2];
985
1011
  return this.#operationalScanTargets.has(operationalId) || this.#operationalScanTargets.has(`${operationalId}-${nodeId}`);
986
1012
  }
1013
+ /**
1014
+ * Handle goodbye (TTL=0) for an operational device record with protection against out-of-order packets.
1015
+ * Returns true if the goodbye was processed (record deleted or protected), false if no action needed.
1016
+ */
1017
+ #handleOperationalDeviceGoodbye(matterName, netInterface, now) {
1018
+ const existingRecord = this.#operationalDeviceRecords.get(matterName);
1019
+ if (!existingRecord) {
1020
+ return false;
1021
+ }
1022
+ const recordAge = now - existingRecord.discoveredAt;
1023
+ if (recordAge < GOODBYE_PROTECTION_WINDOW) {
1024
+ return true;
1025
+ }
1026
+ logger.debug(
1027
+ `Removing operational device ${matterName} from cache (interface ${netInterface}) because of ttl=0`
1028
+ );
1029
+ this.#operationalDeviceRecords.delete(matterName);
1030
+ return true;
1031
+ }
987
1032
  #handleOperationalTxtRecord(record, netInterface) {
988
1033
  const { name: matterName, value, ttl } = record;
989
- const discoveredAt = import_general.Time.nowMs;
1034
+ const now = import_general.Time.nowMs;
990
1035
  if (ttl === 0) {
991
- if (this.#operationalDeviceRecords.has(matterName)) {
992
- logger.debug(
993
- `Removing operational device ${matterName} from cache (interface ${netInterface}) because of ttl=0`
994
- );
995
- this.#operationalDeviceRecords.delete(matterName);
996
- }
1036
+ this.#handleOperationalDeviceGoodbye(matterName, netInterface, now);
997
1037
  return;
998
1038
  }
1039
+ const discoveredAt = now;
999
1040
  if (!Array.isArray(value)) return;
1000
1041
  if (!this.#operationalDeviceRecords.has(matterName) && !this.#matchesOperationalCriteria(matterName)) {
1001
1042
  return;
@@ -1028,13 +1069,9 @@ class MdnsClient {
1028
1069
  ttl,
1029
1070
  value: { target, port }
1030
1071
  } = record;
1072
+ const now = import_general.Time.nowMs;
1031
1073
  if (ttl === 0) {
1032
- if (this.#operationalDeviceRecords.has(matterName)) {
1033
- logger.debug(
1034
- `Removing operational device ${matterName} from cache (interface ${netInterface}) because of ttl=0`
1035
- );
1036
- this.#operationalDeviceRecords.delete(matterName);
1037
- }
1074
+ this.#handleOperationalDeviceGoodbye(matterName, netInterface, now);
1038
1075
  return;
1039
1076
  }
1040
1077
  const ips = this.#handleIpRecords([formerAnswers, answers], target, netInterface);
@@ -1042,7 +1079,7 @@ class MdnsClient {
1042
1079
  if (!deviceExisted && !this.#matchesOperationalCriteria(matterName)) {
1043
1080
  return;
1044
1081
  }
1045
- const discoveredAt = import_general.Time.nowMs;
1082
+ const discoveredAt = now;
1046
1083
  const device = this.#operationalDeviceRecords.get(matterName) ?? {
1047
1084
  deviceIdentifier: matterName,
1048
1085
  addresses: /* @__PURE__ */ new Map(),
@@ -1054,10 +1091,17 @@ class MdnsClient {
1054
1091
  if (ips.length > 0) {
1055
1092
  for (const { value: ip, ttl: ttl2 } of ips) {
1056
1093
  if (ttl2 === 0) {
1057
- logger.debug(
1058
- `Removing IP ${ip} for operational device ${matterName} from cache (interface ${netInterface}) because of ttl=0`
1059
- );
1060
- addresses.delete(ip);
1094
+ const existingAddress = addresses.get(ip);
1095
+ if (existingAddress) {
1096
+ const addressAge = now - existingAddress.discoveredAt;
1097
+ if (addressAge < GOODBYE_PROTECTION_WINDOW) {
1098
+ continue;
1099
+ }
1100
+ logger.debug(
1101
+ `Removing IP ${ip} for operational device ${matterName} from cache (interface ${netInterface}) because of ttl=0`
1102
+ );
1103
+ addresses.delete(ip);
1104
+ }
1061
1105
  continue;
1062
1106
  }
1063
1107
  const address = addresses.get(ip) ?? { ip, port, type: "udp" };
@@ -1083,6 +1127,23 @@ class MdnsClient {
1083
1127
  }
1084
1128
  return;
1085
1129
  }
1130
+ /**
1131
+ * Handle goodbye (TTL=0) for a commissionable device record with protection against out-of-order packets.
1132
+ * Returns true if the goodbye should be skipped (record is protected), false if processed or no record exists.
1133
+ */
1134
+ #handleCommissionableDeviceGoodbye(name, netInterface, now) {
1135
+ const existingRecord = this.#commissionableDeviceRecords.get(name);
1136
+ if (!existingRecord) {
1137
+ return false;
1138
+ }
1139
+ const recordAge = now - existingRecord.discoveredAt;
1140
+ if (recordAge < GOODBYE_PROTECTION_WINDOW) {
1141
+ return true;
1142
+ }
1143
+ logger.debug(`Removing commissionable device ${name} from cache (interface ${netInterface}) because of ttl=0`);
1144
+ this.#commissionableDeviceRecords.delete(name);
1145
+ return false;
1146
+ }
1086
1147
  #handleCommissionableRecords(answers, formerAnswers, netInterface) {
1087
1148
  if (!this.#scanForCommissionableDevices && !this.#hasCommissionableWaiters) {
1088
1149
  return;
@@ -1094,16 +1155,12 @@ class MdnsClient {
1094
1155
  return;
1095
1156
  }
1096
1157
  const queryMissingDataForInstances = /* @__PURE__ */ new Set();
1158
+ const now = import_general.Time.nowMs;
1097
1159
  const txtRecords = commissionableRecords[import_general.DnsRecordType.TXT] ?? [];
1098
1160
  for (const record of txtRecords) {
1099
1161
  const { name, ttl } = record;
1100
1162
  if (ttl === 0) {
1101
- if (this.#commissionableDeviceRecords.has(name)) {
1102
- logger.debug(
1103
- `Removing commissionable device ${name} from cache (interface ${netInterface}) because of ttl=0`
1104
- );
1105
- this.#commissionableDeviceRecords.delete(name);
1106
- }
1163
+ this.#handleCommissionableDeviceGoodbye(name, netInterface, now);
1107
1164
  continue;
1108
1165
  }
1109
1166
  const txtRecord = this.#parseCommissionableTxtRecord(record);
@@ -1140,10 +1197,7 @@ class MdnsClient {
1140
1197
  ttl
1141
1198
  } = record;
1142
1199
  if (ttl === 0) {
1143
- logger.debug(
1144
- `Removing commissionable device ${record.name} from cache (interface ${netInterface}) because of ttl=0`
1145
- );
1146
- this.#commissionableDeviceRecords.delete(record.name);
1200
+ this.#handleCommissionableDeviceGoodbye(record.name, netInterface, now);
1147
1201
  continue;
1148
1202
  }
1149
1203
  const recordAddressesKnown = storedRecord.addresses.size > 0;
@@ -1151,14 +1205,21 @@ class MdnsClient {
1151
1205
  if (ips.length > 0) {
1152
1206
  for (const { value: ip, ttl: ttl2 } of ips) {
1153
1207
  if (ttl2 === 0) {
1154
- logger.debug(
1155
- `Removing IP ${ip} for commissionable device ${record.name} from cache (interface ${netInterface}) because of ttl=0`
1156
- );
1157
- storedRecord.addresses.delete(ip);
1208
+ const existingAddress = storedRecord.addresses.get(ip);
1209
+ if (existingAddress) {
1210
+ const addressAge = now - existingAddress.discoveredAt;
1211
+ if (addressAge < GOODBYE_PROTECTION_WINDOW) {
1212
+ continue;
1213
+ }
1214
+ logger.debug(
1215
+ `Removing IP ${ip} for commissionable device ${record.name} from cache (interface ${netInterface}) because of ttl=0`
1216
+ );
1217
+ storedRecord.addresses.delete(ip);
1218
+ }
1158
1219
  continue;
1159
1220
  }
1160
1221
  const matterServer = storedRecord.addresses.get(ip) ?? { ip, port, type: "udp" };
1161
- matterServer.discoveredAt = import_general.Time.nowMs;
1222
+ matterServer.discoveredAt = now;
1162
1223
  matterServer.ttl = ttl2;
1163
1224
  storedRecord.addresses.set(ip, matterServer);
1164
1225
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsClient.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["queries", "answers", "commissionable", "ttl", "queryId", "value", "discoveredAt"]
6
6
  }
@@ -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,EAI1B,MAAM,UAAU,CAAC;AAIlB,qBAAa,UAAU;;gBA0BP,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;IAwGjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAkB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IA2BzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAW1E,KAAK;CAkFd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
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"}