@matter/protocol 0.17.2 → 0.17.3-alpha.0-20260617-ea3690abc

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 (159) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  2. package/dist/cjs/action/client/ClientInteraction.js +16 -2
  3. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  4. package/dist/cjs/action/client/ClientRequest.d.ts +8 -1
  5. package/dist/cjs/action/client/ClientRequest.d.ts.map +1 -1
  6. package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
  7. package/dist/cjs/action/server/AttributeReadResponse.js +26 -12
  8. package/dist/cjs/action/server/AttributeReadResponse.js.map +1 -1
  9. package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
  10. package/dist/cjs/action/server/AttributeWriteResponse.js +27 -10
  11. package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
  12. package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -1
  13. package/dist/cjs/action/server/CommandInvokeResponse.js +27 -10
  14. package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
  15. package/dist/cjs/action/server/EventReadResponse.d.ts.map +1 -1
  16. package/dist/cjs/action/server/EventReadResponse.js +27 -10
  17. package/dist/cjs/action/server/EventReadResponse.js.map +1 -1
  18. package/dist/cjs/certificate/DeviceAttestationValidator.d.ts.map +1 -1
  19. package/dist/cjs/certificate/DeviceAttestationValidator.js +15 -12
  20. package/dist/cjs/certificate/DeviceAttestationValidator.js.map +1 -1
  21. package/dist/cjs/certificate/kinds/Certificate.d.ts +7 -0
  22. package/dist/cjs/certificate/kinds/Certificate.d.ts.map +1 -1
  23. package/dist/cjs/certificate/kinds/Certificate.js +30 -1
  24. package/dist/cjs/certificate/kinds/Certificate.js.map +1 -1
  25. package/dist/cjs/codec/MessagePrivacy.d.ts +1 -1
  26. package/dist/cjs/codec/MessagePrivacy.d.ts.map +1 -1
  27. package/dist/cjs/codec/MessagePrivacy.js +3 -2
  28. package/dist/cjs/codec/MessagePrivacy.js.map +1 -1
  29. package/dist/cjs/events/OccurrenceManager.d.ts +2 -2
  30. package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
  31. package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -1
  32. package/dist/cjs/interaction/AttributeDataEncoder.js.map +1 -1
  33. package/dist/cjs/peer/Peer.d.ts +5 -0
  34. package/dist/cjs/peer/Peer.d.ts.map +1 -1
  35. package/dist/cjs/peer/Peer.js +1 -0
  36. package/dist/cjs/peer/Peer.js.map +1 -1
  37. package/dist/cjs/peer/PeerConnection.d.ts +6 -1
  38. package/dist/cjs/peer/PeerConnection.d.ts.map +1 -1
  39. package/dist/cjs/peer/PeerConnection.js +23 -5
  40. package/dist/cjs/peer/PeerConnection.js.map +1 -1
  41. package/dist/cjs/peer/PeerExchangeProvider.d.ts.map +1 -1
  42. package/dist/cjs/peer/PeerExchangeProvider.js +3 -0
  43. package/dist/cjs/peer/PeerExchangeProvider.js.map +1 -1
  44. package/dist/cjs/peer/PeerTimingParameters.d.ts +9 -0
  45. package/dist/cjs/peer/PeerTimingParameters.d.ts.map +1 -1
  46. package/dist/cjs/peer/PeerTimingParameters.js +3 -1
  47. package/dist/cjs/peer/PeerTimingParameters.js.map +1 -1
  48. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  49. package/dist/cjs/protocol/DeviceCommissioner.js +1 -1
  50. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  51. package/dist/cjs/protocol/ExchangeProvider.d.ts +6 -1
  52. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  53. package/dist/cjs/protocol/ExchangeProvider.js +4 -2
  54. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  55. package/dist/cjs/protocol/MRP.d.ts +1 -1
  56. package/dist/cjs/protocol/MRP.d.ts.map +1 -1
  57. package/dist/cjs/protocol/MRP.js +1 -2
  58. package/dist/cjs/protocol/MRP.js.map +1 -1
  59. package/dist/cjs/protocol/MessageExchange.d.ts +14 -1
  60. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  61. package/dist/cjs/protocol/MessageExchange.js +31 -5
  62. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  63. package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
  64. package/dist/cjs/session/pase/PaseClient.js +1 -1
  65. package/dist/cjs/session/pase/PaseClient.js.map +1 -1
  66. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  67. package/dist/cjs/session/pase/PaseServer.js +11 -2
  68. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  69. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  70. package/dist/esm/action/client/ClientInteraction.js +16 -2
  71. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  72. package/dist/esm/action/client/ClientRequest.d.ts +8 -1
  73. package/dist/esm/action/client/ClientRequest.d.ts.map +1 -1
  74. package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
  75. package/dist/esm/action/server/AttributeReadResponse.js +27 -13
  76. package/dist/esm/action/server/AttributeReadResponse.js.map +1 -1
  77. package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
  78. package/dist/esm/action/server/AttributeWriteResponse.js +28 -11
  79. package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
  80. package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -1
  81. package/dist/esm/action/server/CommandInvokeResponse.js +28 -11
  82. package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
  83. package/dist/esm/action/server/EventReadResponse.d.ts.map +1 -1
  84. package/dist/esm/action/server/EventReadResponse.js +28 -11
  85. package/dist/esm/action/server/EventReadResponse.js.map +1 -1
  86. package/dist/esm/certificate/DeviceAttestationValidator.d.ts.map +1 -1
  87. package/dist/esm/certificate/DeviceAttestationValidator.js +16 -13
  88. package/dist/esm/certificate/DeviceAttestationValidator.js.map +1 -1
  89. package/dist/esm/certificate/kinds/Certificate.d.ts +7 -0
  90. package/dist/esm/certificate/kinds/Certificate.d.ts.map +1 -1
  91. package/dist/esm/certificate/kinds/Certificate.js +30 -1
  92. package/dist/esm/certificate/kinds/Certificate.js.map +1 -1
  93. package/dist/esm/codec/MessagePrivacy.d.ts +1 -1
  94. package/dist/esm/codec/MessagePrivacy.d.ts.map +1 -1
  95. package/dist/esm/codec/MessagePrivacy.js +4 -2
  96. package/dist/esm/codec/MessagePrivacy.js.map +1 -1
  97. package/dist/esm/events/OccurrenceManager.d.ts +2 -2
  98. package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
  99. package/dist/esm/events/OccurrenceManager.js.map +1 -1
  100. package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -1
  101. package/dist/esm/interaction/AttributeDataEncoder.js.map +1 -1
  102. package/dist/esm/peer/Peer.d.ts +5 -0
  103. package/dist/esm/peer/Peer.d.ts.map +1 -1
  104. package/dist/esm/peer/Peer.js +1 -0
  105. package/dist/esm/peer/Peer.js.map +1 -1
  106. package/dist/esm/peer/PeerConnection.d.ts +6 -1
  107. package/dist/esm/peer/PeerConnection.d.ts.map +1 -1
  108. package/dist/esm/peer/PeerConnection.js +23 -5
  109. package/dist/esm/peer/PeerConnection.js.map +1 -1
  110. package/dist/esm/peer/PeerExchangeProvider.d.ts.map +1 -1
  111. package/dist/esm/peer/PeerExchangeProvider.js +3 -0
  112. package/dist/esm/peer/PeerExchangeProvider.js.map +1 -1
  113. package/dist/esm/peer/PeerTimingParameters.d.ts +9 -0
  114. package/dist/esm/peer/PeerTimingParameters.d.ts.map +1 -1
  115. package/dist/esm/peer/PeerTimingParameters.js +4 -2
  116. package/dist/esm/peer/PeerTimingParameters.js.map +1 -1
  117. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  118. package/dist/esm/protocol/DeviceCommissioner.js +2 -1
  119. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  120. package/dist/esm/protocol/ExchangeProvider.d.ts +6 -1
  121. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  122. package/dist/esm/protocol/ExchangeProvider.js +4 -2
  123. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  124. package/dist/esm/protocol/MRP.d.ts +1 -1
  125. package/dist/esm/protocol/MRP.d.ts.map +1 -1
  126. package/dist/esm/protocol/MRP.js +1 -2
  127. package/dist/esm/protocol/MRP.js.map +1 -1
  128. package/dist/esm/protocol/MessageExchange.d.ts +14 -1
  129. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  130. package/dist/esm/protocol/MessageExchange.js +31 -5
  131. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  132. package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
  133. package/dist/esm/session/pase/PaseClient.js +2 -2
  134. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  135. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  136. package/dist/esm/session/pase/PaseServer.js +12 -2
  137. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  138. package/package.json +5 -5
  139. package/src/action/client/ClientInteraction.ts +19 -1
  140. package/src/action/client/ClientRequest.ts +9 -1
  141. package/src/action/server/AttributeReadResponse.ts +39 -18
  142. package/src/action/server/AttributeWriteResponse.ts +35 -19
  143. package/src/action/server/CommandInvokeResponse.ts +36 -15
  144. package/src/action/server/EventReadResponse.ts +42 -16
  145. package/src/certificate/DeviceAttestationValidator.ts +17 -13
  146. package/src/certificate/kinds/Certificate.ts +43 -0
  147. package/src/codec/MessagePrivacy.ts +6 -4
  148. package/src/events/OccurrenceManager.ts +2 -2
  149. package/src/interaction/AttributeDataEncoder.ts +3 -3
  150. package/src/peer/Peer.ts +7 -0
  151. package/src/peer/PeerConnection.ts +33 -6
  152. package/src/peer/PeerExchangeProvider.ts +4 -0
  153. package/src/peer/PeerTimingParameters.ts +15 -2
  154. package/src/protocol/DeviceCommissioner.ts +2 -1
  155. package/src/protocol/ExchangeProvider.ts +12 -2
  156. package/src/protocol/MRP.ts +5 -6
  157. package/src/protocol/MessageExchange.ts +44 -6
  158. package/src/session/pase/PaseClient.ts +2 -6
  159. package/src/session/pase/PaseServer.ts +12 -2
@@ -127,7 +127,7 @@ class MessageExchange {
127
127
  #onSend;
128
128
  #onReceive;
129
129
  #addressOverride;
130
- #network;
130
+ #peerAdditionalMrpDelay;
131
131
  #receivedMessageToAck;
132
132
  #receivedMessageAckTimer = Time.getTimer("ack receipt timeout", MRP.STANDALONE_ACK_TIMEOUT, () => {
133
133
  if (this.#receivedMessageToAck !== void 0) {
@@ -175,6 +175,7 @@ class MessageExchange {
175
175
  onSend,
176
176
  onReceive,
177
177
  network,
178
+ peerAdditionalMrpDelay,
178
179
  addressOverride
179
180
  } = config;
180
181
  this.#context = context;
@@ -187,7 +188,7 @@ class MessageExchange {
187
188
  this.#onSend = onSend;
188
189
  this.#onReceive = onReceive;
189
190
  this.#addressOverride = addressOverride;
190
- this.#network = network;
191
+ this.#peerAdditionalMrpDelay = peerAdditionalMrpDelay;
191
192
  const { activeThreshold, activeInterval, idleInterval } = this.session.parameters;
192
193
  this.#used = !isInitiator;
193
194
  const { session } = context;
@@ -823,12 +824,21 @@ class MessageExchange {
823
824
  return `${this.#messageReceivedCounter}${Mark.TRANSFERRED}${this.#messageSendCounter}${this.#totalRetransmissionCounter > 0 ? `+${this.#totalRetransmissionCounter}` : ""}`;
824
825
  }
825
826
  get #mrpResubmissionBackOffTime() {
827
+ return this.#backOffFor(this.#retransmissionCounter);
828
+ }
829
+ /**
830
+ * Scheduled MRP backoff for a given (re)transmission number, after the send-option overrides.
831
+ *
832
+ * The cap never drops below the peer's idle interval: a peer whose idle base backoff already exceeds
833
+ * maxRetransmissionTime must not be retried faster than its own idle cadence.
834
+ */
835
+ #backOffFor(retransmissionCount) {
826
836
  const additionalDelay = Duration.max(
827
837
  this.#context.localAdditionalMrpDelay,
828
- this.#network?.additionalMrpDelay ?? Millis(0)
838
+ this.#peerAdditionalMrpDelay ?? Millis(0)
829
839
  );
830
840
  let backOff = this.channel.getMrpResubmissionBackOffTime(
831
- this.#retransmissionCounter,
841
+ retransmissionCount,
832
842
  void 0,
833
843
  false,
834
844
  additionalDelay
@@ -836,7 +846,23 @@ class MessageExchange {
836
846
  if (this.#sendOptions.initialRetransmissionTime !== void 0) {
837
847
  backOff = Millis(backOff + this.#sendOptions.initialRetransmissionTime);
838
848
  }
839
- return Duration.min(backOff, this.#sendOptions.maxRetransmissionTime ?? Forever);
849
+ const cap = Duration.max(
850
+ this.#sendOptions.maxRetransmissionTime ?? Forever,
851
+ this.session.parameters.idleInterval ?? Instant
852
+ );
853
+ return Duration.min(backOff, cap);
854
+ }
855
+ /**
856
+ * How much restarting the exchange (resetting the retransmission counter to 0) would shorten the wait until
857
+ * the next (re)transmission. Roughly zero near the base interval — e.g. an idle peer, whose fresh interval is
858
+ * just as slow.
859
+ */
860
+ get retransmissionRestartSaving() {
861
+ const currentWait = this.#retransmissionTimer?.interval;
862
+ if (currentWait === void 0) {
863
+ return Instant;
864
+ }
865
+ return Duration.max(Instant, Millis(currentWait - this.#backOffFor(0)));
840
866
  }
841
867
  }
842
868
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/MessageExchange.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAuB,mBAAmB;AACnD,SAAS,YAAY;AAErB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,oBAAoB;AAE7B,SAAS,eAAe;AAExB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,oBAAoB,8BAA8B;AAE3D,SAAS,WAAW;AAEpB,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAwEpC,MAAM,0BAA0B,KAAK,KAAK;AAyB1C,MAAM,gBAAgB;AAAA,EACzB,OAAO,mBACH,SACA,gBACA,SACF;AACE,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,IAAI,gBAAgB;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,MACb,eAAe,QAAQ;AAAA,MACvB,QAAQ,eAAe,aAAa;AAAA,MACpC,YAAY,eAAe,aAAa;AAAA,MACxC,YAAY,eAAe,cAAc;AAAA,MACzC,YAAY,eAAe,cAAc;AAAA,MACzC,GAAG;AAAA,IACP,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,SACH,SACA,YACA,YACA,SACF;AACE,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,IAAI,gBAAgB;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,MACb,eAAe,QAAQ;AAAA,MACvB,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACP,CAAC;AAAA,EACL;AAAA,EAES;AAAA,EACA;AAAA,EACA,iBAAiB,IAAI,cAAuB;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACT;AAAA,EACA,2BAA2B,KAAK,SAAS,uBAAuB,IAAI,wBAAwB,MAAM;AAC9F,QAAI,KAAK,0BAA0B,QAAW;AAC1C,YAAM,eAAe,KAAK;AAC1B,WAAK,wBAAwB;AAE7B,WAAK,4BAA4B,YAAY,EAAE;AAAA,QAAM,WACjD,OAAO,KAAK,mDAAmD,KAAK;AAAA,MACxE;AAAA,IACJ;AAAA,EACJ,CAAC;AAAA,EAED;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EAES;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,qBAAqB;AAAA,EAC/B,WAAW,qBAAqB;AAAA,EACzC;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAoC,CAAC;AAAA,EACrC,yBAAyB;AAAA,EACzB,8BAA8B;AAAA;AAAA,EAC9B,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B;AAAA,EACA,cAAc,KAAK;AAAA,EAEnB,YAAY,QAAgC;AACxC,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI;AAEJ,SAAK,WAAW;AAChB,SAAK,eAAe;AACpB,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,aAAa;AAClB,SAAK,mBAAmB;AACxB,SAAK,WAAW;AAEhB,UAAM,EAAE,iBAAiB,gBAAgB,aAAa,IAAI,KAAK,QAAQ;AAEvE,SAAK,QAAQ,CAAC;AAEd,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO;AAAA,MACH;AAAA,MACA,cAAc,KAAK,WAAW,KAAK;AAAA,MACnC,KAAK;AAAA,MACL,WAAW,KAAK;AAAA,QACZ,UAAU,KAAK;AAAA,QACf,UAAU,QAAQ,QAAQ,KAAK,cAAc;AAAA,QAC7C,SAAS,kBAAkB,cAAc,OAAO,eAAe,IAAI;AAAA,QACnE,KAAK,oBAAoB,SAAY,SAAS,OAAO,eAAe,IAAI;AAAA,QACxE,KAAK,mBAAmB,SAAY,SAAS,OAAO,cAAc,IAAI;AAAA,QACtE,KAAK,iBAAiB,SAAY,SAAS,OAAO,YAAY,IAAI;AAAA,QAClE,UAAU,IAAI;AAAA,QACd,eAAe,WAAW,QAAQ;AAAA,UAC9B,KAAK,KAAK,QAAQ;AAAA,UAClB,GAAG,KAAK;AAAA,UACR,GAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;AAAA,QAC5C,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AAEA,YAAQ,YAAY,IAAI;AAGxB,SAAK,YAAY,KAAK,SAAS,QAAQ,KAAK,YAAY,WAAW,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;AAAA,EAC7F;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ,SAAU,KAAK,gBAAgB,KAAK,SAAS;AAAA,EACrE;AAAA;AAAA,EAGA,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,gBAAgB,iBAA0B;AACtC,SAAK,cAAc,KAAK;AACxB,SAAK,QAAQ,eAAe,eAAe;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,KAAK;AACL,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,IAAI,KAAK,KAAK,WAAW;AAAA,EACpC;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA,EAGA,IAAI,sBAAsB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,KAAK,aAAa,QAAW;AAC7B,WAAK,WAAW,KAAK,QAAQ;AAAA,IACjC;AACA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AAGjB,WAAO,KAAK,QAAQ,iBAAiB;AAAA,EACzC;AAAA,EAEA,QAAQ,MAAiB;AACrB,WAAO,KAAK,UAAU,KAAK,GAAG,IAAI;AAAA,EACtC;AAAA,EAEA,MAAM,kBAAkB,SAAkB,YAAY,OAAO;AACzD,WAAO,MAAM,WAAW,KAAK,SAAS,QAAQ,cAAc,MAAM,SAAS,EAAE,UAAU,CAAC,CAAC;AACzF,SAAK;AAGL,QAAI,QAAQ,cAAc,eAAe,CAAC,KAAK,QAAQ,SAAS;AAC5D,aAAO,MAAM,sEAAsE;AACnF,cAAQ,cAAc,cAAc;AAAA,IACxC;AAEA,UAAM;AAAA,MACF,cAAc,EAAE,UAAU;AAAA,MAC1B,eAAe,EAAE,aAAa,gBAAgB,YAAY,YAAY;AAAA,IAC1E,IAAI;AAEJ,UAAM,kBAAkB,kBAAkB,gBAAgB,YAAY,WAAW;AACjF,UAAM,iBAAiB,kBAAkB,eAAe,YAAY,WAAW;AAC/E,QAAI,eAAe,KAAK,eAAe,CAAC,mBAAmB,CAAC,gBAAgB;AACxE,YAAM,IAAI;AAAA,QACN,iEAAiE,KAAK,WAAW,eAAe,UAAU;AAAA,MAC9G;AAAA,IACJ;AAEA,SAAK,gBAAgB,IAAI;AACzB,SAAK,aAAa,SAAS,SAAS;AAEpC,QAAI,WAAW;AAEX,UAAI,aAAa;AACb,cAAM,KAAK,4BAA4B,OAAO;AAAA,MAClD;AACA;AAAA,IACJ;AACA,QAAI,cAAc,KAAK,mBAAmB,cAAc,gBAAgB;AAGpE;AAAA;AAAA,cAAM,UAAU,qBAAK,KAAK,eAAe;AACzC,aAAK;AACL,cAAM,KAAK,QAAQ,KAAK,KAAK,mBAAmB,EAAE,UAAU,MAAM,iBAAiB,KAAK,iBAAiB,CAAC;AAC1G;AAAA,eAHA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIJ;AACA,UAAM,qBAAqB,KAAK,mBAAmB,aAAa;AAChE,QAAI,uBAAuB,QAAW;AAClC,UAAI,mBAAmB,QAAW;AAE9B,cAAM,IAAI,gBAAgB,iCAAiC;AAAA,MAC/D,WAAW,mBAAmB,oBAAoB;AAE9C,YAAI,iBAAiB;AAAA,QAErB,OAAO;AACH,gBAAM,IAAI;AAAA,YACN,oCAAoC,IAAI,MAAM,oBAAoB,CAAC,CAAC,eAAe,IAAI,MAAM,gBAAgB,CAAC,CAAC;AAAA,UACnH;AAAA,QACJ;AAAA,MACJ,OAAO;AAEH,aAAK,sBAAsB,KAAK;AAChC,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB,OAAO;AACrC,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB;AAC9B,aAAK,oBAAoB;AACzB,YAAI,mBAAmB,KAAK,gBAAgB,QAAW;AAEnD,iBAAO,KAAK,OAAO;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,iBAAiB;AAEjB;AAAA,IACJ;AACA,QAAI,aAAa;AAEb,UAAI,KAAK,0BAA0B,QAAW;AAC1C,aAAK,yBAAyB,KAAK;AACnC,cAAM,KAAK,4BAA4B,KAAK,qBAAqB;AAAA,MACrE;AACA,WAAK,wBAAwB;AAC7B,WAAK,yBAAyB,MAAM;AAAA,IACxC;AACA,SAAK,eAAe,MAAM,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,KAAK,aAAqB,SAAgB,UAA+B,CAAC,GAAG;AAC/E,QAAI,KAAK,aAAa;AAClB,YAAM,IAAI,YAAY,sBAAsB,EAAE,OAAO,KAAK,YAAY,CAAC;AAAA,IAC3E;AAEA,SAAK,eAAe;AACpB,SAAK,yBAAyB;AAE9B,QAAI;AACA,YAAM,KAAK,MAAM,aAAa,OAAO;AAAA,IACzC,SAAS,GAAG;AAIR,UACI,CAAC,QAAQ,oBACT,KAAK,4BAA4B,KACjC,SAAS,GAAG,iCAAiC,cAAc,YAAY,GACzE;AACE,cAAM,KAAK,SAAS,SAAS,MAAM,QAAQ,CAAC,CAAC;AAAA,MACjD;AAEA,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAM,MAAM,aAAqB,SAAgB,wBAAiC;AAQ9E,QAAAA,UAAA;AAAA;AAPA,YAAM;AAAA,QACF,gBAAgB;AAAA,QAChB;AAAA,QACA,yBAAyB,IAAI;AAAA,QAC7B,aAAa,CAAC;AAAA,MAClB,IAAI,KAAK;AAET,YAAM,QAAQ,QAAAA,SAAA,IAAI,MAAM,KAAK,YAAY;AAEzC,YAAM,kBAAkB,2BAA2B;AACnD,UAAI,2BAA2B,QAAW;AACtC,YAAI,CAAC,KAAK,QAAQ,SAAS;AACvB,gBAAM,IAAI,cAAc,+DAA+D;AAAA,QAC3F;AACA,YAAI,gBAAgB,kBAAkB,eAAe;AACjD,gBAAM,IAAI,cAAc,mEAAmE;AAAA,QAC/F;AAAA,MACJ;AAEA,UAAI,EAAE,YAAY,IAAI,KAAK;AAC3B,UAAI,eAAe,EAAE,KAAK,QAAQ,WAAY,KAAK,QAAwB,aAAa;AACpF,sBAAc;AAAA,MAClB;AAIA,YAAM,iBAAiB,gBAAgB,kBAAkB;AACzD,YAAM,aAAa,mBAAmB,iBAAiB,6BAA6B,KAAK;AACzF,UAAI,iBAAiB;AACjB,YAAI,CAAC,KAAK,QAAQ,SAAS;AACvB;AAAA,QACJ;AACA,YAAI,aAAa;AACb,gBAAM,IAAI,gBAAgB,kDAAkD;AAAA,QAChF;AAAA,MACJ;AACA,UAAI,KAAK,sBAAsB,UAAa,CAAC,iBAAiB;AAC1D,cAAM,IAAI;AAAA,UACN,wBAAwB,QAAQ,IAAI,MAAM,KAAK,iBAAiB,CAAC;AAAA,QACrE;AAAA,MACJ;AAEA,WAAK,QAAQ;AACb,WAAK;AACL,WAAK,gBAAgB,KAAK;AAE1B,UAAI,iBAAiB;AACrB,UAAI,mBAAmB,UAAa,KAAK,QAAQ,SAAS;AACtD,yBAAiB,KAAK,uBAAuB,aAAa;AAC1D,YAAI,mBAAmB,QAAW;AAC9B,eAAK,yBAAyB,KAAK;AACnC,eAAK,wBAAwB;AAAA,QACjC;AAAA,MACJ;AAEA,UAAI;AACJ,UAAI,KAAK,QAAQ,SAAS,YAAY,SAAS;AAC3C,cAAM,YAAY,kBACZ,MAAM,KAAK,QAAQ,6BAA6B,IAChD,MAAM,MAAM,QAAQ,KAAK,QAAQ,6BAA6B,CAAC;AACrE,YAAI,cAAc,QAAW;AACzB;AAAA,QACJ;AACA,uBAAe;AAAA,UACX,WAAW,KAAK;AAAA,UAChB,aAAa,YAAY;AAAA,UACzB;AAAA,UACA,YAAY,KAAK;AAAA,UACjB,cAAc,KAAK;AAAA,UACnB,wBAAwB;AAAA;AAAA,UACxB,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QAC1B;AAAA,MACJ,WAAW,KAAK,QAAQ,SAAS,YAAY,OAAO;AAChD,cAAM,UAAU,KAAK;AACrB,YAAI,CAAC,aAAa,GAAG,OAAO,GAAG;AAC3B,gBAAM,IAAI,cAAc,2DAA2D;AAAA,QACvF;AACA,cAAM,cAAc,QAAQ,WAAW,KAAK,WAAY;AACxD,YAAI,gBAAgB,GAAG;AACnB,gBAAM,IAAI,cAAc,yCAAyC,KAAK,WAAW,EAAE;AAAA,QACvF;AACA,cAAM,YAAY,MAAM,MAAM,QAAQ,KAAK,QAAQ,6BAA6B,CAAC;AACjF,YAAI,cAAc,QAAW;AACzB;AAAA,QACJ;AACA,uBAAe;AAAA,UACX,WAAW,KAAK;AAAA,UAChB,aAAa,YAAY;AAAA,UACzB;AAAA,UACA;AAAA,UACA,cAAc,KAAK;AAAA;AAAA,UACnB,wBAAwB,KAAK,QAAQ;AAAA,UACrC,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QAC1B;AAAA,MACJ,OAAO;AACH,cAAM,IAAI,cAAc,yBAAyB,KAAK,QAAQ,IAAI,EAAE;AAAA,MACxE;AAEA,YAAM,UAAmB;AAAA,QACrB;AAAA,QACA,eAAe;AAAA,UACX,YAAY,KAAK;AAAA,UACjB;AAAA,UACA;AAAA,UACA,oBAAoB,KAAK;AAAA,UACzB,aAAa,gBAAgB,KAAK,QAAQ,WAAW,CAAC;AAAA,UACtD;AAAA,UACA,qBAAqB;AAAA,QACzB;AAAA,QACA;AAAA,MACJ;AAEA,UAAI;AACJ,UAAI,KAAK,QAAQ,WAAW,QAAQ,cAAc,eAAe,CAAC,iBAAiB;AAC/E,aAAK,oBAAoB;AACzB,cAAM,UAAU,KAAK;AACrB,mBAAW,UAAU,SAAS,OAAO,OAAO;AAC5C,aAAK,uBAAuB,KAAK;AAAA,UAAS,kBAAkB,QAAQ,IAAI,MAAM,OAAO,CAAC;AAAA,UAAI;AAAA,UAAS,MAC/F,KAAK,mBAAmB,SAAS,sBAAsB;AAAA,QAC3D;AACA,cAAM,EAAE,SAAS,SAAS,IAAI,cAAmC;AACjE,qBAAa;AACb,aAAK,yBAAyB;AAC9B,cAAM,mBAAmB,KAAK;AAC9B,aAAK,yBAAyB,MAAM;AAChC,gBAAM,MAAM,IAAI,sBAAsB,UAAU,MAAM,gBAAgB,CAAC,CAAC;AAAA,QAC5E;AAAA,MACJ;AAEA,WAAK,UAAU,SAAS,CAAC;AACzB,YAAM,UAAU,QAAAA,SAAA,KAAK,KAAK,WAAW,WAAW,OAAO,QAAQ,IAAI,MAAM,OAAO,CAAC,CAAC;AAClF,UAAI,iBAAiB;AACjB,cAAM,KAAK,QAAQ,KAAK,SAAS,EAAE,UAAU,MAAM,iBAAiB,KAAK,iBAAiB,CAAC;AAAA,MAC/F,OAAO;AACH,cAAM,MAAM;AAAA,UACR,KAAK,QAAQ,KAAK,SAAS,EAAE,UAAU,MAAM,YAAY,iBAAiB,KAAK,iBAAiB,CAAC;AAAA,QACrG;AAAA,MACJ;AACA,UAAI,MAAM,SAAS;AACf;AAAA,MACJ;AAEA,UAAI,eAAe,QAAW;AAO1B;AAAA;AANA,eAAK,yBAAyB;AAC9B,eAAK,sBAAsB,MAAM;AAKjC,gBAAM,WAAW,wBAAQ,KAAK,iBAAiB;AAC/C,gBAAM,kBAAkB,MAAM,MAAM,KAAK,UAAU;AACnD,cAAI,MAAM,SAAS;AAKf,iBAAK,sBAAsB,KAAK;AAEhC,gBAAI,CAAC,SAAS,MAAM,QAAQ,YAAY,GAAG;AACvC,oBAAM,MAAM;AAAA,YAChB;AACA;AAAA,UACJ;AAEA,eAAK,yBAAyB;AAC9B,eAAK,yBAAyB;AAE9B,cAAI,iBAAiB;AAEjB,kBAAM;AAAA,cACF,eAAe,EAAE,YAAAC,aAAY,aAAAC,aAAY;AAAA,YAC7C,IAAI;AACJ,gBAAI,iBAAiB,CAAC,kBAAkB,gBAAgBD,aAAYC,YAAW,GAAG;AAC9E,oBAAM,IAAI,uBAAuB,qBAAqB,KAAK,SAAS,eAAe;AAAA,YACvF;AAAA,UACJ;AAAA,iBA1BA;AAAA;AAAA;AAAA;AAAA;AAAA,MA2BJ;AAAA,aA3KAC,IAAA;AAAA,UAAAC,UAAAD,IAAAE,aAAA;AAAA;AAAA,oBAAAL,SAAAI,SAAAC;AAAA;AAAA,EA4KJ;AAAA,EAEA,MAAM,YAAY,SAAkC;AAChD,QAAI;AACA,aAAO,MAAM,KAAK,aAAa,OAAO;AAAA,IAC1C,SAAS,GAAG;AAIR,UACI,CAAC,SAAS,oBACV,KAAK,4BAA4B,KACjC,SAAS,GAAG,+BAA+B,GAC7C;AACE,cAAM,KAAK,SAAS,SAAS,MAAM,QAAQ,CAAC,CAAC;AAAA,MACjD;AAEA,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAM,aAAa,SAAkC;AAajD;AAAA;AAZA,UAAI;AAEJ,UAAI,SAAS,YAAY,QAAW;AAChC,kBAAU,QAAQ;AAAA,MACtB,WAAW,CAAC,KAAK,QAAQ,UAAU;AAC/B,kBAAU,KAAK,QAAQ;AAAA,UACnB,KAAK,QAAQ;AAAA,UACb,KAAK,QAAQ;AAAA,UACb,SAAS;AAAA,QACb;AAAA,MACJ;AAEA,YAAM,aAAa,oBAAI,MAAM;AAAA,QACzB;AAAA,QACA,OAAO,SAAS;AAAA,QAEhB,gBAAgB,MAAM;AAClB,gBAAM,IAAI,wBAAwB,OAAQ;AAAA,QAC9C;AAAA,MACJ,CAAC;AAED,aAAO,MAAM,KAAK,eAAe,KAAK,UAAU;AAAA,aAThD;AAAA;AAAA;AAAA;AAAA;AAAA,EAUJ;AAAA,EAEA,MAAM,4BAA4B,SAAkB;AAChD,UAAM;AAAA,MACF,cAAc,EAAE,UAAU;AAAA,MAC1B,eAAe,EAAE,YAAY;AAAA,IACjC,IAAI;AACJ,QAAI,CAAC,eAAe,CAAC,KAAK,QAAQ,SAAS;AACvC;AAAA,IACJ;AAEA,UAAM,KAAK,MAAM,kBAAkB,eAAe,IAAI,WAAW,CAAC,GAAG,SAAS;AAAA,EAClF;AAAA,EAEA,mBAAmB,SAAkB,wBAAmC;AACpE,SAAK;AACL,SAAK;AACL,QACI,KAAK,kBACL,KAAK,2BAA2B,KAAK,aAAa,sBAAsB,IAAI,oBAC9E;AAGE,UAAI,0BAA0B,CAAC,KAAK,gBAAgB;AAEhD,cAAM,gBAAgB;AAAA,UAClB,KAAK,QAAQ;AAAA,YACT,KAAK,QAAQ;AAAA,YACb,KAAK,QAAQ;AAAA,YACb;AAAA,UACJ,KAAK,KAAK,sBAAsB,YAAY;AAAA,QAChD;AACA,YAAI,gBAAgB,GAAG;AACnB,eAAK;AACL,eAAK;AACL,iBAAO;AAAA,YACH,WAAW,QAAQ,IAAI,MAAM,OAAO,CAAC,qBAAqB,SAAS,OAAO,aAAa,CAAC;AAAA,UAC5F;AACA,eAAK,uBAAuB,KAAK;AAAA,YAC7B,mCAAmC,QAAQ,IAAI,MAAM,OAAO,CAAC;AAAA,YAC7D;AAAA,YACA,MAAM,KAAK,mBAAmB,OAAO;AAAA,UACzC,EAAE,MAAM;AACR;AAAA,QACJ;AAAA,MACJ;AAGA,UAAI,KAAK,sBAAsB,UAAa,KAAK,2BAA2B,QAAW;AACnF,aAAK,wBAAwB;AAC7B,aAAK,uBAAuB;AAC5B,aAAK,yBAAyB;AAC9B,aAAK,yBAAyB;AAAA,MAClC;AACA,UAAI,KAAK,gBAAgB,QAAW;AAGhC,aAAK,OAAO,EAAE,MAAM,WAAS,OAAO,KAAK,0BAA0B,KAAK,CAAC;AAAA,MAC7E;AACA;AAAA,IACJ;AAEA,SAAK;AACL,SAAK,gBAAgB,KAAK;AAE1B,SAAK,QAAQ,MAAM,KAAK,sBAAsB;AAC9C,UAAM,0BAA0B,KAAK;AAErC,SAAK,UAAU,SAAS,KAAK,sBAAsB;AAGnD,SAAK,QACA,KAAK,SAAS;AAAA,MACX,UAAU;AAAA,MACV,YAAY;AAAA,QACR,YAAY,KAAK;AAAA,QACjB,SAAS,SAAS,OAAO,uBAAuB;AAAA,MACpD;AAAA,MACA,iBAAiB,KAAK;AAAA,IAC1B,CAAC,EACA,KAAK,MAAM,KAAK,wBAAwB,SAAS,yBAAyB,sBAAsB,CAAC,EACjG,MAAM,WAAS;AACZ,aAAO,KAAK,wBAAwB,QAAQ,IAAI,MAAM,OAAO,CAAC,KAAK,KAAK;AACxE,UAAI,iBAAiB,oBAAoB;AACrC,aAAK,OAAO,EAAE,MAAM,CAAAC,WAAS,OAAO,KAAK,+CAA+CA,MAAK,CAAC;AAAA,MAClG,OAAO;AACH,aAAK,wBAAwB,SAAS,yBAAyB,sBAAsB;AAAA,MACzF;AAAA,IACJ,CAAC;AAAA,EACT;AAAA,EAEA,wBAAwB,SAAkB,yBAAmC,0BAAqC;AAC9G,SAAK,uBAAuB,KAAK;AAAA,MAAS;AAAA,MAA0B;AAAA,MAAyB,MACzF,KAAK,mBAAmB,SAAS,wBAAwB;AAAA,IAC7D,EAAE,MAAM;AAAA,EACZ;AAAA,EAEA,CAAC,OAAO,YAAY,IAAI;AACpB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,MAAM,UAAU;AACZ,QAAI,KAAK,cAAc;AACnB;AAAA,IACJ;AACA,SAAK,eAAe;AACpB,QAAI,KAAK,gBAAgB,UAAa,KAAK,0BAA0B,QAAW;AAC5E,WAAK,yBAAyB,KAAK;AACnC,YAAM,eAAe,KAAK;AAC1B,WAAK,wBAAwB;AAC7B,UAAI;AACA,cAAM,KAAK,4BAA4B,YAAY;AAAA,MACvD,SAAS,OAAO;AACZ,eAAO,KAAK,+CAA+C,KAAK;AAAA,MACpE;AAAA,IACJ;AACA,UAAM,KAAK,OAAO;AAAA,EACtB;AAAA,EAEA,sBAAsB,SAAmB;AACrC,QAAI,KAAK,2BAA2B,UAAa,KAAK,uBAAuB,WAAW;AACpF,WAAK,uBAAuB,KAAK;AACjC,YAAM,IAAI,oBAAoB,uDAAuD,OAAO,aAAa;AAAA,IAC7G;AAEA,WAAO;AAAA,MACH;AAAA,MACA,KAAK;AAAA,MACL,KAAK,QAAQ;AAAA,MACb,WAAW,KAAK,EAAE,MAAM,KAAK,aAAa,SAAS,SAAS,OAAO,OAAO,EAAE,CAAC;AAAA,IACjF;AACA,SAAK,yBAAyB,KAAK,SAAS,qBAAqB,SAAS,MAAM;AAC5E,aAAO;AAAA,QACH;AAAA,QACA,WAAW,KAAK,EAAE,MAAM,KAAK,aAAa,KAAK,KAAK,QAAQ,KAAK,CAAC;AAAA,MACtE;AAAA,IACJ,CAAC,EAAE,MAAM;AAAA,EACb;AAAA,EAEA,wBAAwB;AACpB,QAAI,KAAK,2BAA2B,QAAW;AAC3C,aAAO;AAAA,QACH;AAAA,QACA,WAAW,KAAK,EAAE,MAAM,KAAK,aAAa,KAAK,KAAK,QAAQ,KAAK,CAAC;AAAA,MACtE;AACA,WAAK,uBAAuB,KAAK;AACjC,WAAK,yBAAyB;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,sBAAsB;AAClB,WAAO,KAAK,2BAA2B;AAAA,EAC3C;AAAA,EAEA,4BAA4B;AACxB,WAAO,KAAK,2BAA2B,UAAa,KAAK,uBAAuB;AAAA,EACpF;AAAA,EAEA,6BAA6B;AACzB,WAAO,KAAK,2BAA2B,UAAa,CAAC,KAAK,uBAAuB;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,MAAM,OAAe;AAKvB,QAAAN,UAAA;AAAA;AAJA,UAAI,KAAK,cAAc;AACnB;AAAA,MACJ;AAEA,YAAM,UAAU,QAAAA,SAAA,KAAK,UAAU,QAAQ;AAEvC,UAAI,KAAK,gBAAgB,QAAW;AAChC,YAAI,OAAO;AAEP,eAAK,YAAY,KAAK;AACtB,iBAAO,KAAK,OAAO,KAAK;AAAA,QAC5B;AAEA;AAAA,MACJ;AACA,UAAI,CAAC,KAAK,OAAO;AAGb,eAAO,KAAK,KAAK,KAAK,uCAAuC;AAC7D,eAAO,KAAK,OAAO,KAAK;AAAA,MAC5B;AAEA;AACI;AAAA;AAAA,gBAAM,YAAY,wBAAQ,KAAK,UAAU;AACzC,gBAAM,KAAK,SAAS,KAAK,IAAI;AAAA,iBAD7B;AAAA;AAAA;AAAA;AAAA;AAAA,MAEJ;AAGA,UAAI,KAAK,QAAQ,OAAO;AACpB;AAAA,MACJ;AAEA,UAAI,KAAK,0BAA0B,QAAW;AAC1C,aAAK,yBAAyB,KAAK;AACnC,cAAM,eAAe,KAAK;AAC1B,aAAK,wBAAwB;AAC7B,YAAI;AACA,cAAAA,UAAA;AAAA;AAAA,kBAAM,UAAU,QAAAA,SAAA,QAAQ,KAAK,QAAQ;AACrC,kBAAM,KAAK,4BAA4B,YAAY;AAAA,mBADnDG,IAAA;AAAA,gBAAAC,UAAAD,IAAAE,aAAA;AAAA;AAAA,0BAAAL,SAAAI,SAAAC;AAAA;AAAA,QAEJ,SAAS,OAAO;AACZ,iBAAO,KAAK,KAAK,KAAK,oCAAoC,KAAK;AAAA,QACnE;AACA,YAAI,SAAS,KAAK,sBAAsB,QAAW;AAE/C,gBAAM,KAAK,OAAO,KAAK;AACvB;AAAA,QACJ;AAAA,MACJ,WAAW,KAAK,sBAAsB,UAAa,OAAO;AAEtD,cAAM,KAAK,OAAO,KAAK;AACvB;AAAA,MACJ;AAOA,UAAI,sBAAsB;AAC1B,eAAS,IAAI,KAAK,wBAAwB,KAAK,IAAI,mBAAmB,KAAK;AACvE,8BAAsB;AAAA,UAClB,sBAAsB,KAAK,QAAQ,8BAA8B,GAAG,QAAW,IAAI;AAAA,QACvF;AAAA,MACJ;AACA,WAAK,cAAc,KAAK;AAAA,QACpB,YAAY,KAAK,GAAG;AAAA,QACpB;AAAA,QACA,YAAY,MAAM,KAAK,OAAO,KAAK;AAAA,MACvC,EAAE,MAAM;AAAA,aAhERF,IAAA;AAAA,UAAAC,UAAAD,IAAAE,aAAA;AAAA;AAAA,oBAAAL,SAAAI,SAAAC;AAAA;AAAA,EAiEJ;AAAA,EAEA,MAAM,OAAO,OAAe;AACxB;AAAA;AAAA,YAAM,WAAW,qBAAK,UAAU,QAAQ;AAExC,UAAI,KAAK,gBAAgB,QAAW;AAChC,aAAK,cAAc;AAAA,MACvB;AAEA,UAAI;AACA,aAAK,sBAAsB,KAAK;AAChC,aAAK,yBAAyB,KAAK;AACnC,aAAK,yBAAyB,MAAS;AAEvC,aAAK,aAAa,KAAK;AACvB,aAAK,wBAAwB,KAAK;AAClC,aAAK,eAAe,MAAM,KAAK,WAAW;AAAA,MAC9C,UAAE;AACE,cAAM,KAAK,QAAQ,KAAK,IAAI;AAAA,MAChC;AAAA,aAhBA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBJ;AAAA,EAEA,IAAI,MAAM;AACN,QAAI,KAAK,YAAY,QAAW;AAC5B,aAAO,WAAW,IAAI,GAAG,KAAK,QAAQ,GAAG,KAAK,KAAK,EAAE;AAAA,IACzD;AAEA,WAAO,WAAW,IAAI,GAAG,KAAK,QAAQ,GAAG,GAAG,KAAK,QAAQ,GAAG,KAAK,KAAK,EAAE;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,cAAc;AACd,QACI,KAAK,gCAAgC,KACrC,KAAK,wBAAwB,KAC7B,KAAK,4BAA4B,GACnC;AACE,aAAO;AAAA,IACX;AACA,WAAO,GAAG,KAAK,uBAAuB,GAAG,KAAK,WAAW,GAAG,KAAK,mBAAmB,GAAG,KAAK,8BAA8B,IAAI,IAAI,KAAK,2BAA2B,KAAK,EAAE;AAAA,EAC7K;AAAA,EAEA,IAAI,8BAA8B;AAC9B,UAAM,kBAAkB,SAAS;AAAA,MAC7B,KAAK,SAAS;AAAA,MACd,KAAK,UAAU,sBAAsB,OAAO,CAAC;AAAA,IACjD;AACA,QAAI,UAAU,KAAK,QAAQ;AAAA,MACvB,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,QAAI,KAAK,aAAa,8BAA8B,QAAW;AAC3D,gBAAU,OAAO,UAAU,KAAK,aAAa,yBAAyB;AAAA,IAC1E;AACA,WAAO,SAAS,IAAI,SAAS,KAAK,aAAa,yBAAyB,OAAO;AAAA,EACnF;AACJ;",
4
+ "mappings": "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",
5
5
  "names": ["_stack", "protocolId", "messageType", "_", "_error", "_hasError", "error"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PaseClient.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAEH,KAAK,EAEL,OAAO,EACP,MAAM,EAKN,eAAe,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQpE,qBAAa,UAAU;;IAGnB,YAAY,QAAQ,EAAE,cAAc,EAEnC;IAED,OAAa,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,oCAG/G;IAED,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,UAgB3C;IAED,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,MAAM,UAEhD;IAEK,IAAI,CACN,sBAAsB,EAAE,iBAAiB,EACzC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,oDA+BnC;CAyFJ;AAED,yBAAiB,UAAU,CAAC,CAAC;IACzB,UAAiB,WAAW;QACxB,KAAK,CAAC,EAAE,WAAW,CAAC;KACvB;CACJ"}
1
+ {"version":3,"file":"PaseClient.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAEH,KAAK,EAEL,OAAO,EACP,MAAM,EAKN,eAAe,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQpE,qBAAa,UAAU;;IAGnB,YAAY,QAAQ,EAAE,cAAc,EAEnC;IAED,OAAa,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,oCAG/G;IAED,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,UAY3C;IAED,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,MAAM,UAEhD;IAEK,IAAI,CACN,sBAAsB,EAAE,iBAAiB,EACzC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,oDA+BnC;CAyFJ;AAED,yBAAiB,UAAU,CAAC,CAAC;IACzB,UAAiB,WAAW;QACxB,KAAK,CAAC,EAAE,WAAW,CAAC;KACvB;CACJ"}
@@ -15,7 +15,7 @@ import {
15
15
  Spake2p,
16
16
  UnexpectedDataError
17
17
  } from "@matter/general";
18
- import { CommissioningOptions, NodeId, SecureChannelStatusCode } from "@matter/types";
18
+ import { isValidPasscode, NodeId, SecureChannelStatusCode } from "@matter/types";
19
19
  import { TransientPeerCommunicationError } from "../../peer/PeerCommunicationError.js";
20
20
  import { RetransmissionLimitReachedError } from "../../protocol/errors.js";
21
21
  import { DEFAULT_PASSCODE_ID, PaseClientMessenger, SPAKE_CONTEXT } from "./PaseMessenger.js";
@@ -33,7 +33,7 @@ class PaseClient {
33
33
  static generateRandomPasscode(crypto) {
34
34
  for (let i = 0; i < MAX_PASSCODE_GENERATION_ATTEMPTS; i++) {
35
35
  const passcode = crypto.randomUint32 & 134217727;
36
- if (passcode >= 1 && passcode <= 99999998 && !CommissioningOptions.FORBIDDEN_PASSCODES.includes(passcode)) {
36
+ if (isValidPasscode(passcode)) {
37
37
  return passcode;
38
38
  }
39
39
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/session/pase/PaseClient.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EACH,KAAK,EAML,eAAe,EACf,eAAe,EAMlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAuB,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AAO7F,qBAAa,oCAAqC,SAAQ,eAAe;CAAG;AAE5E,qBAAa,UAAW,YAAW,eAAe;;IA0B1C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IA5BrC,QAAQ,CAAC,EAAE,KAA8B;IACzC,QAAQ,CAAC,qBAAqB,SAAS;IAOvC,OAAa,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,uBAGpG;IAED,MAAM,CAAC,qBAAqB,CACxB,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,KAAK,EACxB,eAAe,CAAC,EAAE,eAAe,cAMpC;IAED,YACY,QAAQ,EAAE,cAAc,EACf,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,KAAK,EACR,eAAe,CAAC,EAAE,eAAe,YAAA,EAClD;IAEE,aAAa,CAAC,QAAQ,EAAE,eAAe,iBAkD5C;YAEa,oBAAoB;IAmF5B,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,SAAS,UAAO,iBAKnE;IAEK,KAAK,kBAGV;CACJ"}
1
+ {"version":3,"file":"PaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAEH,KAAK,EAML,eAAe,EACf,eAAe,EAMlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAuB,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AAO7F,qBAAa,oCAAqC,SAAQ,eAAe;CAAG;AAE5E,qBAAa,UAAW,YAAW,eAAe;;IA0B1C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IA5BrC,QAAQ,CAAC,EAAE,KAA8B;IACzC,QAAQ,CAAC,qBAAqB,SAAS;IAOvC,OAAa,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,uBAGpG;IAED,MAAM,CAAC,qBAAqB,CACxB,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,KAAK,EACxB,eAAe,CAAC,EAAE,eAAe,cAMpC;IAED,YACY,QAAQ,EAAE,cAAc,EACf,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,KAAK,EACR,eAAe,CAAC,EAAE,eAAe,YAAA,EAClD;IAEE,aAAa,CAAC,QAAQ,EAAE,eAAe,iBAkD5C;YAEa,oBAAoB;IAqF5B,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,SAAS,UAAO,iBAYnE;IAEK,KAAK,kBAGV;CACJ"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Mark } from "#common/Mark.js";
7
7
  import {
8
+ asError,
8
9
  Bytes,
9
10
  causedBy,
10
11
  Diagnostic,
@@ -96,7 +97,9 @@ class PaseServer {
96
97
  this.#pairingTimer = Time.getTimer(
97
98
  "PASE pairing timeout",
98
99
  PASE_PAIRING_TIMEOUT,
99
- () => this.cancelPairing(messenger)
100
+ () => this.cancelPairing(messenger).catch(
101
+ (error) => logger.warn("Error cancelling PASE pairing after timeout:", Diagnostic.errorMessage(asError(error)))
102
+ )
100
103
  ).start();
101
104
  const {
102
105
  requestPayload,
@@ -160,7 +163,14 @@ class PaseServer {
160
163
  }
161
164
  async cancelPairing(messenger, sendError = true) {
162
165
  if (sendError) {
163
- await messenger.sendError(SecureChannelStatusCode.InvalidParam);
166
+ try {
167
+ await messenger.sendError(SecureChannelStatusCode.InvalidParam);
168
+ } catch (error) {
169
+ logger.info(
170
+ "Could not send pairing-cancellation status report to peer:",
171
+ Diagnostic.errorMessage(asError(error))
172
+ );
173
+ }
164
174
  }
165
175
  await messenger.close();
166
176
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/session/pase/PaseServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/protocol",
3
- "version": "0.17.2",
3
+ "version": "0.17.3-alpha.0-20260617-ea3690abc",
4
4
  "description": "Low-level APIs for Matter interaction",
5
5
  "keywords": [
6
6
  "iot",
@@ -35,12 +35,12 @@
35
35
  "#*": "./src/*"
36
36
  },
37
37
  "dependencies": {
38
- "@matter/general": "0.17.2",
39
- "@matter/model": "0.17.2",
40
- "@matter/types": "0.17.2"
38
+ "@matter/general": "0.17.3-alpha.0-20260617-ea3690abc",
39
+ "@matter/model": "0.17.3-alpha.0-20260617-ea3690abc",
40
+ "@matter/types": "0.17.3-alpha.0-20260617-ea3690abc"
41
41
  },
42
42
  "devDependencies": {
43
- "@matter/testing": "0.17.2"
43
+ "@matter/testing": "0.17.3-alpha.0-20260617-ea3690abc"
44
44
  },
45
45
  "files": [
46
46
  "dist/**/*",
@@ -97,6 +97,7 @@ interface PendingCommand {
97
97
  request: Invoke.ConcreteCommandRequest<any>;
98
98
  pathKey: string;
99
99
  network?: string;
100
+ additionalMrpDelay?: Duration;
100
101
  resolve: (entry: InvokeResult.DecodedData | undefined) => void;
101
102
  reject: (error: Error) => void;
102
103
  aborted?: boolean;
@@ -185,6 +186,17 @@ export class ClientInteraction<
185
186
 
186
187
  using _closing = this.#lifetime.closing();
187
188
 
189
+ // Close subscriptions established through this interaction so they do not outlive the interactable; a
190
+ // sustained subscription would otherwise retry forever against a closed interactable.
191
+ const peer = this.#exchangeProvider.peerAddress;
192
+ if (this.#subscriptions !== undefined && peer !== undefined) {
193
+ for (const subscription of [...this.#subscriptions]) {
194
+ if (PeerAddress.is(peer, subscription.peer)) {
195
+ subscription.close();
196
+ }
197
+ }
198
+ }
199
+
188
200
  // Close batching
189
201
  this.#batchTimer?.stop();
190
202
  for (const [, pending] of this.#pendingCommands) {
@@ -612,6 +624,7 @@ export class ClientInteraction<
612
624
  request: { ...cmd, commandRef } as Invoke.ConcreteCommandRequest<any>,
613
625
  pathKey,
614
626
  network: request.network,
627
+ additionalMrpDelay: request.additionalMrpDelay,
615
628
  resolve: resolver,
616
629
  reject: rejecter,
617
630
  };
@@ -764,6 +777,9 @@ export class ClientInteraction<
764
777
  // Preserve the network profile from the queued commands (all commands in a batch share the same
765
778
  // ClientInteraction so they will normally have the same network; pick the first defined value)
766
779
  const batchNetwork = commandList.find(c => c.network !== undefined)?.network;
780
+ const batchAdditionalMrpDelay = commandList.find(
781
+ c => c.additionalMrpDelay !== undefined,
782
+ )?.additionalMrpDelay;
767
783
 
768
784
  // Use #invokeSingle directly to avoid re-entering the batching path in invoke()
769
785
  // Skip validation: already validated on submit. timed=false: only non-timed commands
@@ -771,6 +787,7 @@ export class ClientInteraction<
771
787
  const batchRequest = {
772
788
  ...Invoke({ commands: invokeRequests, skipValidation: true, timed: false }),
773
789
  network: batchNetwork,
790
+ additionalMrpDelay: batchAdditionalMrpDelay,
774
791
  } as ClientInvoke;
775
792
  const maxPathsPerInvoke = this.#exchangeProvider.maxPathsPerInvoke ?? 1;
776
793
  const chunks =
@@ -1028,7 +1045,7 @@ export class ClientInteraction<
1028
1045
  try {
1029
1046
  if (this.#abort.aborted) {
1030
1047
  throw new ImplementationError(
1031
- `Cannot ${what} ${this.#address ?? "uncommissioned node"} because interactable is closed`,
1048
+ `Cannot start ${what} ${this.#address ?? this.#exchangeProvider.peerAddress ?? "uncommissioned node"} because interactable is closed`,
1032
1049
  );
1033
1050
  }
1034
1051
 
@@ -1037,6 +1054,7 @@ export class ClientInteraction<
1037
1054
  try {
1038
1055
  messenger = await InteractionClientMessenger.create(this.#exchangeProvider, {
1039
1056
  network: request.network ?? this.#network,
1057
+ additionalMrpDelay: request.additionalMrpDelay,
1040
1058
  abort,
1041
1059
  connectionTimeout: session?.connectionTimeout,
1042
1060
  addressOverride: request.addressOverride,
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import type { NetworkProfile } from "#peer/NetworkProfile.js";
8
- import type { ServerAddressUdp } from "@matter/general";
8
+ import type { Duration, ServerAddressUdp } from "@matter/general";
9
9
 
10
10
  /**
11
11
  * Represents a client request with customizable transmission behavior.
@@ -23,6 +23,14 @@ export interface ClientRequest {
23
23
  */
24
24
  network?: string;
25
25
 
26
+ /**
27
+ * Override the peer-medium MRP retransmission margin for this interaction.
28
+ *
29
+ * By default the margin derives from the peer's network medium (e.g. thread's longer margin), independent of
30
+ * the {@link network} throttle profile. Set this to override that default for a single interaction.
31
+ */
32
+ additionalMrpDelay?: Duration;
33
+
26
34
  /**
27
35
  * Override the destination address for this interaction's exchange.
28
36
  *
@@ -12,7 +12,7 @@ import { AccessControl, hasLocalActor, hasRemoteActor } from "#action/server/Acc
12
12
  import { DataResponse, FallbackLimits, WildcardPathFlagsCodec } from "#action/server/DataResponse.js";
13
13
  import { Val } from "#action/Val.js";
14
14
  import { InternalError, Logger, serialize } from "@matter/general";
15
- import { AttributeModel, DataModelPath, ElementTag } from "@matter/model";
15
+ import { AccessLevel, AttributeModel, DataModelPath, ElementTag } from "@matter/model";
16
16
  import {
17
17
  AttributePath,
18
18
  ClusterId,
@@ -204,8 +204,10 @@ export class AttributeReadResponse<
204
204
  limits = attribute.limits;
205
205
  }
206
206
 
207
+ // Order prescribed by core spec 8.4.3.2: a View-privilege pass gates element-existence disclosure,
208
+ // existence checks follow, then the actual-privilege pass gates the data.
209
+ let access: { session: AccessControl.RemoteActorSession; location: AccessControl.Location } | undefined;
207
210
  if (hasRemoteActor(this.session)) {
208
- // Validate access. Order here prescribed by 1.4 core spec 8.4.3.2
209
211
  // We need some fallback location if cluster is not defined
210
212
  const location: AccessControl.Location = {
211
213
  ...(cluster?.location ?? {
@@ -215,23 +217,10 @@ export class AttributeReadResponse<
215
217
  }),
216
218
  owningFabric: this.session.fabric,
217
219
  };
220
+ access = { session: this.session, location };
218
221
 
219
- const permission = this.session.authorityAt(limits.readLevel, location);
220
-
221
- switch (permission) {
222
- case AccessControl.Authority.Granted:
223
- break;
224
-
225
- case AccessControl.Authority.Unauthorized:
226
- this.addStatus(path, Status.UnsupportedAccess);
227
- return;
228
-
229
- case AccessControl.Authority.Restricted:
230
- this.addStatus(path, Status.AccessRestricted);
231
- return;
232
-
233
- default:
234
- throw new InternalError(`Unsupported authorization state ${permission}`);
222
+ if (!this.#authorize(access.session, path, AccessLevel.View, location)) {
223
+ return;
235
224
  }
236
225
  }
237
226
 
@@ -252,6 +241,10 @@ export class AttributeReadResponse<
252
241
  return;
253
242
  }
254
243
 
244
+ if (access !== undefined && !this.#authorize(access.session, path, limits.readLevel, access.location)) {
245
+ return;
246
+ }
247
+
255
248
  // Skip if version is unchanged
256
249
  const skipVersion = this.#versions?.[path.endpointId]?.[path.clusterId];
257
250
  if (skipVersion !== undefined && skipVersion === cluster.version) {
@@ -434,6 +427,34 @@ export class AttributeReadResponse<
434
427
  }
435
428
  }
436
429
 
430
+ /**
431
+ * Validate access at {@link level}. Returns true if granted; otherwise records the appropriate status and
432
+ * returns false.
433
+ */
434
+ #authorize(
435
+ session: AccessControl.RemoteActorSession,
436
+ path: ReadResult.ConcreteAttributePath,
437
+ level: AccessLevel,
438
+ location: AccessControl.Location,
439
+ ) {
440
+ const permission = session.authorityAt(level, location);
441
+ switch (permission) {
442
+ case AccessControl.Authority.Granted:
443
+ return true;
444
+
445
+ case AccessControl.Authority.Unauthorized:
446
+ this.addStatus(path, Status.UnsupportedAccess);
447
+ return false;
448
+
449
+ case AccessControl.Authority.Restricted:
450
+ this.addStatus(path, Status.AccessRestricted);
451
+ return false;
452
+
453
+ default:
454
+ throw new InternalError(`Unsupported authorization state ${permission}`);
455
+ }
456
+ }
457
+
437
458
  /**
438
459
  * Add a status value.
439
460
  */
@@ -11,7 +11,7 @@ import { WriteResult } from "#action/response/WriteResult.js";
11
11
  import { AccessControl, hasRemoteActor } from "#action/server/AccessControl.js";
12
12
  import { DataResponse, FallbackLimits } from "#action/server/DataResponse.js";
13
13
  import { Diagnostic, InternalError, Logger, serialize, toHex } from "@matter/general";
14
- import { AttributeModel, DataModelPath, ElementTag, FabricIndex as FabricIndexField } from "@matter/model";
14
+ import { AccessLevel, AttributeModel, DataModelPath, ElementTag, FabricIndex as FabricIndexField } from "@matter/model";
15
15
  import {
16
16
  ArraySchema,
17
17
  AttributePath,
@@ -195,10 +195,12 @@ export class AttributeWriteResponse<
195
195
  limits = attribute.limits;
196
196
  }
197
197
 
198
+ // Order prescribed by core spec 8.7.3.2: a View-privilege pass gates element-existence disclosure,
199
+ // existence checks follow, then the actual-privilege pass gates the write.
200
+ let access: { session: AccessControl.RemoteActorSession; location: AccessControl.Location } | undefined;
198
201
  if (hasRemoteActor(this.session)) {
199
- // Validate access. Order here prescribed by 1.4 core spec 8.4.3.2
200
202
  // We need some fallback location if cluster is not defined
201
- const location = {
203
+ const location: AccessControl.Location = {
202
204
  ...(cluster?.location ?? {
203
205
  path: DataModelPath.none,
204
206
  endpoint: endpointId,
@@ -206,20 +208,11 @@ export class AttributeWriteResponse<
206
208
  }),
207
209
  owningFabric: this.session.fabric,
208
210
  };
211
+ access = { session: this.session, location };
209
212
 
210
- const permission = this.session.authorityAt(limits.writeLevel, location);
211
- switch (permission) {
212
- case AccessControl.Authority.Granted:
213
- break;
214
-
215
- case AccessControl.Authority.Unauthorized:
216
- return this.#asStatus(path, Status.UnsupportedAccess);
217
-
218
- case AccessControl.Authority.Restricted:
219
- return this.#asStatus(path, Status.AccessRestricted);
220
-
221
- default:
222
- throw new InternalError(`Unsupported authorization state ${permission}`);
213
+ const denial = this.#authorize(access.session, AccessLevel.View, location);
214
+ if (denial !== undefined) {
215
+ return this.#asStatus(path, denial);
223
216
  }
224
217
  }
225
218
 
@@ -238,9 +231,12 @@ export class AttributeWriteResponse<
238
231
  return this.#asStatus(path, Status.UnsupportedWrite);
239
232
  }
240
233
 
241
- // Old implementation aka Matter 1.2 and lower need the ACL check moved here.
242
- // see https://github.com/project-chip/connectedhomeip/issues/33735
243
- // We have patched our tests for now
234
+ if (access !== undefined) {
235
+ const denial = this.#authorize(access.session, limits.writeLevel, access.location);
236
+ if (denial !== undefined) {
237
+ return this.#asStatus(path, denial);
238
+ }
239
+ }
244
240
 
245
241
  if (hasRemoteActor(this.session)) {
246
242
  if (limits.timed && !this.session.timed) {
@@ -359,6 +355,26 @@ export class AttributeWriteResponse<
359
355
  );
360
356
  }
361
357
 
358
+ /**
359
+ * Validate access at {@link level}. Returns undefined if granted; otherwise the status to report.
360
+ */
361
+ #authorize(session: AccessControl.RemoteActorSession, level: AccessLevel, location: AccessControl.Location) {
362
+ const permission = session.authorityAt(level, location);
363
+ switch (permission) {
364
+ case AccessControl.Authority.Granted:
365
+ return undefined;
366
+
367
+ case AccessControl.Authority.Unauthorized:
368
+ return Status.UnsupportedAccess;
369
+
370
+ case AccessControl.Authority.Restricted:
371
+ return Status.AccessRestricted;
372
+
373
+ default:
374
+ throw new InternalError(`Unsupported authorization state ${permission}`);
375
+ }
376
+ }
377
+
362
378
  /**
363
379
  * Add a status value.
364
380
  */