@matter/protocol 0.13.1-alpha.0-20250515-a4c61c546 → 0.13.1-alpha.0-20250517-99a1e848a

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 (132) hide show
  1. package/dist/cjs/action/Interactable.d.ts +5 -1
  2. package/dist/cjs/action/Interactable.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.d.ts +3 -4
  4. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  5. package/dist/cjs/action/client/ClientInteraction.js +28 -16
  6. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  7. package/dist/cjs/action/protocols.d.ts +7 -2
  8. package/dist/cjs/action/protocols.d.ts.map +1 -1
  9. package/dist/cjs/action/request/Write.d.ts +43 -2
  10. package/dist/cjs/action/request/Write.d.ts.map +1 -1
  11. package/dist/cjs/action/request/Write.js +74 -0
  12. package/dist/cjs/action/request/Write.js.map +2 -2
  13. package/dist/cjs/action/response/InvokeResult.d.ts +1 -2
  14. package/dist/cjs/action/response/InvokeResult.d.ts.map +1 -1
  15. package/dist/cjs/action/response/ReadResult.d.ts +5 -14
  16. package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
  17. package/dist/cjs/action/response/WriteResult.d.ts +19 -5
  18. package/dist/cjs/action/response/WriteResult.d.ts.map +1 -1
  19. package/dist/cjs/action/server/AccessControl.js +4 -4
  20. package/dist/cjs/action/server/AccessControl.js.map +1 -1
  21. package/dist/cjs/action/server/{AttributeResponse.d.ts → AttributeReadResponse.d.ts} +4 -4
  22. package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -0
  23. package/dist/cjs/action/server/{AttributeResponse.js → AttributeReadResponse.js} +12 -12
  24. package/dist/cjs/action/server/{AttributeResponse.js.map → AttributeReadResponse.js.map} +2 -2
  25. package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts +4 -4
  26. package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts.map +1 -1
  27. package/dist/cjs/action/server/AttributeSubscriptionResponse.js +2 -2
  28. package/dist/cjs/action/server/AttributeSubscriptionResponse.js.map +1 -1
  29. package/dist/cjs/action/server/AttributeWriteResponse.d.ts +28 -0
  30. package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -0
  31. package/dist/cjs/action/server/AttributeWriteResponse.js +349 -0
  32. package/dist/cjs/action/server/AttributeWriteResponse.js.map +6 -0
  33. package/dist/cjs/action/server/DataResponse.d.ts +4 -3
  34. package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
  35. package/dist/cjs/action/server/DataResponse.js +1 -1
  36. package/dist/cjs/action/server/DataResponse.js.map +1 -1
  37. package/dist/cjs/action/server/{EventResponse.d.ts → EventReadResponse.d.ts} +4 -4
  38. package/dist/cjs/action/server/EventReadResponse.d.ts.map +1 -0
  39. package/dist/cjs/action/server/{EventResponse.js → EventReadResponse.js} +8 -8
  40. package/dist/cjs/action/server/EventReadResponse.js.map +6 -0
  41. package/dist/cjs/action/server/ServerInteraction.d.ts +3 -4
  42. package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
  43. package/dist/cjs/action/server/ServerInteraction.js +12 -10
  44. package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
  45. package/dist/cjs/action/server/index.d.ts +3 -2
  46. package/dist/cjs/action/server/index.d.ts.map +1 -1
  47. package/dist/cjs/action/server/index.js +3 -2
  48. package/dist/cjs/action/server/index.js.map +1 -1
  49. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  50. package/dist/cjs/interaction/InteractionClient.js +12 -1
  51. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  52. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  53. package/dist/cjs/interaction/InteractionMessenger.js +8 -3
  54. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  55. package/dist/esm/action/Interactable.d.ts +5 -1
  56. package/dist/esm/action/Interactable.d.ts.map +1 -1
  57. package/dist/esm/action/client/ClientInteraction.d.ts +3 -4
  58. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  59. package/dist/esm/action/client/ClientInteraction.js +29 -17
  60. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  61. package/dist/esm/action/protocols.d.ts +7 -2
  62. package/dist/esm/action/protocols.d.ts.map +1 -1
  63. package/dist/esm/action/request/Write.d.ts +43 -2
  64. package/dist/esm/action/request/Write.d.ts.map +1 -1
  65. package/dist/esm/action/request/Write.js +70 -0
  66. package/dist/esm/action/request/Write.js.map +2 -2
  67. package/dist/esm/action/response/InvokeResult.d.ts +1 -2
  68. package/dist/esm/action/response/InvokeResult.d.ts.map +1 -1
  69. package/dist/esm/action/response/ReadResult.d.ts +5 -14
  70. package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
  71. package/dist/esm/action/response/WriteResult.d.ts +19 -5
  72. package/dist/esm/action/response/WriteResult.d.ts.map +1 -1
  73. package/dist/esm/action/server/AccessControl.js +4 -4
  74. package/dist/esm/action/server/AccessControl.js.map +1 -1
  75. package/dist/esm/action/server/{AttributeResponse.d.ts → AttributeReadResponse.d.ts} +4 -4
  76. package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -0
  77. package/dist/esm/action/server/{AttributeResponse.js → AttributeReadResponse.js} +9 -9
  78. package/dist/esm/action/server/{AttributeResponse.js.map → AttributeReadResponse.js.map} +2 -2
  79. package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts +4 -4
  80. package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts.map +1 -1
  81. package/dist/esm/action/server/AttributeSubscriptionResponse.js +2 -2
  82. package/dist/esm/action/server/AttributeSubscriptionResponse.js.map +1 -1
  83. package/dist/esm/action/server/AttributeWriteResponse.d.ts +28 -0
  84. package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -0
  85. package/dist/esm/action/server/AttributeWriteResponse.js +335 -0
  86. package/dist/esm/action/server/AttributeWriteResponse.js.map +6 -0
  87. package/dist/esm/action/server/DataResponse.d.ts +4 -3
  88. package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
  89. package/dist/esm/action/server/DataResponse.js +1 -1
  90. package/dist/esm/action/server/DataResponse.js.map +1 -1
  91. package/dist/esm/action/server/{EventResponse.d.ts → EventReadResponse.d.ts} +4 -4
  92. package/dist/esm/action/server/EventReadResponse.d.ts.map +1 -0
  93. package/dist/esm/action/server/{EventResponse.js → EventReadResponse.js} +5 -5
  94. package/dist/esm/action/server/EventReadResponse.js.map +6 -0
  95. package/dist/esm/action/server/ServerInteraction.d.ts +3 -4
  96. package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
  97. package/dist/esm/action/server/ServerInteraction.js +12 -10
  98. package/dist/esm/action/server/ServerInteraction.js.map +1 -1
  99. package/dist/esm/action/server/index.d.ts +3 -2
  100. package/dist/esm/action/server/index.d.ts.map +1 -1
  101. package/dist/esm/action/server/index.js +3 -2
  102. package/dist/esm/action/server/index.js.map +1 -1
  103. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  104. package/dist/esm/interaction/InteractionClient.js +12 -1
  105. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  106. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  107. package/dist/esm/interaction/InteractionMessenger.js +8 -3
  108. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  109. package/package.json +6 -6
  110. package/src/action/Interactable.ts +6 -1
  111. package/src/action/client/ClientInteraction.ts +31 -23
  112. package/src/action/protocols.ts +8 -2
  113. package/src/action/request/Write.ts +127 -4
  114. package/src/action/response/InvokeResult.ts +1 -2
  115. package/src/action/response/ReadResult.ts +5 -22
  116. package/src/action/response/WriteResult.ts +21 -5
  117. package/src/action/server/AccessControl.ts +4 -4
  118. package/src/action/server/{AttributeResponse.ts → AttributeReadResponse.ts} +14 -13
  119. package/src/action/server/AttributeSubscriptionResponse.ts +5 -5
  120. package/src/action/server/AttributeWriteResponse.ts +437 -0
  121. package/src/action/server/DataResponse.ts +5 -4
  122. package/src/action/server/{EventResponse.ts → EventReadResponse.ts} +6 -5
  123. package/src/action/server/ServerInteraction.ts +16 -14
  124. package/src/action/server/index.ts +3 -2
  125. package/src/interaction/InteractionClient.ts +20 -1
  126. package/src/interaction/InteractionMessenger.ts +8 -3
  127. package/dist/cjs/action/server/AttributeResponse.d.ts.map +0 -1
  128. package/dist/cjs/action/server/EventResponse.d.ts.map +0 -1
  129. package/dist/cjs/action/server/EventResponse.js.map +0 -6
  130. package/dist/esm/action/server/AttributeResponse.d.ts.map +0 -1
  131. package/dist/esm/action/server/EventResponse.d.ts.map +0 -1
  132. package/dist/esm/action/server/EventResponse.js.map +0 -6
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var AttributeResponse_exports = {};
20
- __export(AttributeResponse_exports, {
21
- AttributeResponse: () => AttributeResponse,
19
+ var AttributeReadResponse_exports = {};
20
+ __export(AttributeReadResponse_exports, {
21
+ AttributeReadResponse: () => AttributeReadResponse,
22
22
  GlobalAttrIds: () => GlobalAttrIds
23
23
  });
24
- module.exports = __toCommonJS(AttributeResponse_exports);
24
+ module.exports = __toCommonJS(AttributeReadResponse_exports);
25
25
  var import_AccessControl = require("#action/server/AccessControl.js");
26
26
  var import_DataResponse = require("#action/server/DataResponse.js");
27
27
  var import_general = require("#general");
@@ -33,9 +33,9 @@ var import_types2 = require("@matter/types");
33
33
  * Copyright 2022-2025 Project CHIP Authors
34
34
  * SPDX-License-Identifier: Apache-2.0
35
35
  */
36
- const logger = import_general.Logger.get("AttributeResponse");
36
+ const logger = import_general.Logger.get("AttributeReadResponse");
37
37
  const GlobalAttrIds = new Set(Object.values((0, import_types.GlobalAttributes)({})).map((attr) => attr.id));
38
- class AttributeResponse extends import_DataResponse.DataResponse {
38
+ class AttributeReadResponse extends import_DataResponse.DataResponse {
39
39
  #versions;
40
40
  // Each input AttributePathIB that does not have an error installs a producer. Producers run after validation and
41
41
  // generate actual attribute data
@@ -106,7 +106,7 @@ class AttributeResponse extends import_DataResponse.DataResponse {
106
106
  get counts() {
107
107
  return {
108
108
  status: this.#statusCount,
109
- value: this.#valueCount,
109
+ success: this.#valueCount,
110
110
  existent: this.#valueCount + this.#filteredCount
111
111
  };
112
112
  }
@@ -215,12 +215,12 @@ class AttributeResponse extends import_DataResponse.DataResponse {
215
215
  }
216
216
  this.#currentEndpoint = endpoint;
217
217
  this.#currentCluster = cluster;
218
- this.#currentState = cluster.open(this.session);
218
+ this.#currentState = cluster.readState(this.session);
219
219
  } else if (this.#currentCluster !== cluster) {
220
220
  this.#currentCluster = cluster;
221
- this.#currentState = cluster.open(this.session);
221
+ this.#currentState = cluster.readState(this.session);
222
222
  } else if (this.#currentState === void 0) {
223
- this.#currentState = cluster.open(this.session);
223
+ this.#currentState = cluster.readState(this.session);
224
224
  }
225
225
  const value = this.#currentState[attributeId];
226
226
  const version = cluster.version;
@@ -321,7 +321,7 @@ class AttributeResponse extends import_DataResponse.DataResponse {
321
321
  return;
322
322
  }
323
323
  if (this.#currentState === void 0) {
324
- this.#currentState = this.#guardedCurrentCluster.open(this.session);
324
+ this.#currentState = this.#guardedCurrentCluster.readState(this.session);
325
325
  }
326
326
  const value = this.#currentState[attribute.id];
327
327
  if (value === void 0) {
@@ -387,4 +387,4 @@ class AttributeResponse extends import_DataResponse.DataResponse {
387
387
  this.#valueCount++;
388
388
  }
389
389
  }
390
- //# sourceMappingURL=AttributeResponse.js.map
390
+ //# sourceMappingURL=AttributeReadResponse.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/action/server/AttributeResponse.ts"],
4
- "mappings": "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",
3
+ "sources": ["../../../../src/action/server/AttributeReadResponse.ts"],
4
+ "mappings": "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",
5
5
  "names": ["import_types", "endpoint"]
6
6
  }
@@ -3,11 +3,11 @@
3
3
  * Copyright 2022-2025 Project CHIP Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { InteractionSession } from "#action/index.js";
6
7
  import { AttributeTypeProtocol, ClusterProtocol, EndpointProtocol, NodeProtocol } from "#action/protocols.js";
7
8
  import { ReadResult } from "#action/response/ReadResult.js";
8
9
  import { AttributeId, AttributePath, ClusterId, EndpointNumber } from "#types";
9
- import { AccessControl } from "./AccessControl.js";
10
- import { AttributeResponse } from "./AttributeResponse.js";
10
+ import { AttributeReadResponse } from "./AttributeReadResponse.js";
11
11
  type ClusterFilter = {
12
12
  [clusterId: ClusterId]: Set<AttributeId>;
13
13
  };
@@ -15,10 +15,10 @@ export type AttributeResponseFilter = {
15
15
  [endpointId: EndpointNumber]: ClusterFilter;
16
16
  };
17
17
  /**
18
- * AttributeSubscriptionResponse is a specialized version of AttributeResponse that processes a read/subscribe request
18
+ * AttributeSubscriptionResponse is a specialized version of AttributeReadResponse that processes a read/subscribe request
19
19
  * with a filter applied to the attributes. Only the attributes that match the filter will be processed.
20
20
  */
21
- export declare class AttributeSubscriptionResponse<SessionT extends AccessControl.Session = AccessControl.Session> extends AttributeResponse<SessionT> {
21
+ export declare class AttributeSubscriptionResponse<SessionT extends InteractionSession = InteractionSession> extends AttributeReadResponse<SessionT> {
22
22
  #private;
23
23
  constructor(node: NodeProtocol, session: SessionT, filter: AttributeResponseFilter);
24
24
  get filter(): AttributeResponseFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeSubscriptionResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/AttributeSubscriptionResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,KAAK,aAAa,GAAG;IACjB,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IAClC,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa,CAAC;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,6BAA6B,CACtC,QAAQ,SAAS,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAChE,SAAQ,iBAAiB,CAAC,QAAQ,CAAC;;gBAKrB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB;IAKlF,IAAI,MAAM,4BAET;IAED,wFAAwF;IACxF,SAAS,KAAK,qBAAqB,kBAKlC;IAED,uFAAuF;IACvF,SAAS,KAAK,oBAAoB,gBAKjC;cAEkB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB;cAQjD,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa;cAQxE,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa;cAQpE,wBAAwB,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa;cAO9E,SAAS;CAG/B"}
1
+ {"version":3,"file":"AttributeSubscriptionResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/AttributeSubscriptionResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,KAAK,aAAa,GAAG;IACjB,CAAC,SAAS,EAAE,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IAClC,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa,CAAC;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,6BAA6B,CACtC,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CAC1D,SAAQ,qBAAqB,CAAC,QAAQ,CAAC;;gBAKzB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB;IAKlF,IAAI,MAAM,4BAET;IAED,wFAAwF;IACxF,SAAS,KAAK,qBAAqB,kBAKlC;IAED,uFAAuF;IACvF,SAAS,KAAK,oBAAoB,gBAKjC;cAEkB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB;cAQjD,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa;cAQxE,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa;cAQpE,wBAAwB,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa;cAO9E,SAAS;CAG/B"}
@@ -22,13 +22,13 @@ __export(AttributeSubscriptionResponse_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(AttributeSubscriptionResponse_exports);
24
24
  var import_general = require("#general");
25
- var import_AttributeResponse = require("./AttributeResponse.js");
25
+ var import_AttributeReadResponse = require("./AttributeReadResponse.js");
26
26
  /**
27
27
  * @license
28
28
  * Copyright 2022-2025 Project CHIP Authors
29
29
  * SPDX-License-Identifier: Apache-2.0
30
30
  */
31
- class AttributeSubscriptionResponse extends import_AttributeResponse.AttributeResponse {
31
+ class AttributeSubscriptionResponse extends import_AttributeReadResponse.AttributeReadResponse {
32
32
  #filter;
33
33
  #currentEndpointFilter;
34
34
  #currentClusterFilter;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/server/AttributeSubscriptionResponse.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAA8B;AAG9B,+BAAkC;AAVlC;AAAA;AAAA;AAAA;AAAA;AAuBO,MAAM,sCAEH,2CAA4B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,MAAoB,SAAmB,QAAiC;AAChF,UAAM,MAAM,OAAO;AACnB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAc,wBAAwB;AAClC,QAAI,CAAC,KAAK,wBAAwB;AAC9B,YAAM,IAAI,6BAAc,uDAAuD;AAAA,IACnF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAc,uBAAuB;AACjC,QAAI,CAAC,KAAK,uBAAuB;AAC7B,YAAM,IAAI,6BAAc,sDAAsD;AAAA,IAClF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEmB,YAAY,MAAwC;AACnE,UAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAC/C,QAAI,KAAK,QAAQ,UAAU,IAAI,SAAS,GAAG,IAAI,WAAW,MAAM,QAAW;AACvE;AAAA,IACJ;AACA,UAAM,YAAY,IAAI;AAAA,EAC1B;AAAA,EAEA,CAAoB,wBAAwB,UAA4B,MAAqB;AACzF,SAAK,yBAAyB,KAAK,QAAQ,SAAS,EAAE;AACtD,QAAI,KAAK,2BAA2B,QAAW;AAC3C;AAAA,IACJ;AACA,WAAO,MAAM,wBAAwB,UAAU,IAAI;AAAA,EACvD;AAAA,EAEmB,uBAAuB,SAA0B,MAAqB;AACrF,SAAK,wBAAwB,KAAK,sBAAsB,QAAQ,KAAK,EAAE;AACvE,QAAI,KAAK,0BAA0B,QAAW;AAC1C;AAAA,IACJ;AACA,UAAM,uBAAuB,SAAS,IAAI;AAAA,EAC9C;AAAA,EAEmB,yBAAyB,WAAkC,MAAqB;AAC/F,QAAI,CAAC,KAAK,qBAAqB,IAAI,UAAU,EAAE,GAAG;AAC9C;AAAA,IACJ;AACA,UAAM,yBAAyB,WAAW,IAAI;AAAA,EAClD;AAAA,EAEmB,YAAY;AAAA,EAE/B;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,qBAA8B;AAE9B,mCAAsC;AAVtC;AAAA;AAAA;AAAA;AAAA;AAuBO,MAAM,sCAEH,mDAAgC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,MAAoB,SAAmB,QAAiC;AAChF,UAAM,MAAM,OAAO;AACnB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAc,wBAAwB;AAClC,QAAI,CAAC,KAAK,wBAAwB;AAC9B,YAAM,IAAI,6BAAc,uDAAuD;AAAA,IACnF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAc,uBAAuB;AACjC,QAAI,CAAC,KAAK,uBAAuB;AAC7B,YAAM,IAAI,6BAAc,sDAAsD;AAAA,IAClF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEmB,YAAY,MAAwC;AACnE,UAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAC/C,QAAI,KAAK,QAAQ,UAAU,IAAI,SAAS,GAAG,IAAI,WAAW,MAAM,QAAW;AACvE;AAAA,IACJ;AACA,UAAM,YAAY,IAAI;AAAA,EAC1B;AAAA,EAEA,CAAoB,wBAAwB,UAA4B,MAAqB;AACzF,SAAK,yBAAyB,KAAK,QAAQ,SAAS,EAAE;AACtD,QAAI,KAAK,2BAA2B,QAAW;AAC3C;AAAA,IACJ;AACA,WAAO,MAAM,wBAAwB,UAAU,IAAI;AAAA,EACvD;AAAA,EAEmB,uBAAuB,SAA0B,MAAqB;AACrF,SAAK,wBAAwB,KAAK,sBAAsB,QAAQ,KAAK,EAAE;AACvE,QAAI,KAAK,0BAA0B,QAAW;AAC1C;AAAA,IACJ;AACA,UAAM,uBAAuB,SAAS,IAAI;AAAA,EAC9C;AAAA,EAEmB,yBAAyB,WAAkC,MAAqB;AAC/F,QAAI,CAAC,KAAK,qBAAqB,IAAI,UAAU,EAAE,GAAG;AAC9C;AAAA,IACJ;AACA,UAAM,yBAAyB,WAAW,IAAI;AAAA,EAClD;AAAA,EAEmB,YAAY;AAAA,EAE/B;AACJ;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Project CHIP Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { InteractionSession } from "#action/Interactable.js";
7
+ import { AttributeTypeProtocol, NodeProtocol } from "#action/protocols.js";
8
+ import { Write } from "#action/request/Write.js";
9
+ import { WriteResult } from "#action/response/WriteResult.js";
10
+ import { DataResponse } from "#action/server/DataResponse.js";
11
+ import { TlvStream } from "#types";
12
+ /**
13
+ * Implements read of attribute data for Matter "read" and "subscribe" interactions.
14
+ *
15
+ * TODO - profile; ensure nested functions are properly JITed and/or inlined
16
+ */
17
+ export declare class AttributeWriteResponse<SessionT extends InteractionSession = InteractionSession> extends DataResponse<SessionT> {
18
+ #private;
19
+ constructor(node: NodeProtocol, session: SessionT);
20
+ process<T extends Write>({ writeRequests, suppressResponse }: T): WriteResult<T>;
21
+ get counts(): {
22
+ status: number;
23
+ success: number;
24
+ existent: number;
25
+ };
26
+ protected writeValue(attribute: AttributeTypeProtocol, path: WriteResult.ConcreteAttributePath, value: TlvStream): Promise<WriteResult.AttributeStatus>;
27
+ }
28
+ //# sourceMappingURL=AttributeWriteResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttributeWriteResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/AttributeWriteResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAqC,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,YAAY,EAA0C,MAAM,gCAAgC,CAAC;AAGtG,OAAO,EAQH,SAAS,EACZ,MAAM,QAAQ,CAAC;AAIhB;;;;GAIG;AACH,qBAAa,sBAAsB,CAC/B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CAC1D,SAAQ,YAAY,CAAC,QAAQ,CAAC;;gBAchB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;IAK3C,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAsCtF,IAAI,MAAM;;;;MAMT;cA2Qe,UAAU,CACtB,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE,WAAW,CAAC,qBAAqB,EACvC,KAAK,EAAE,SAAS;CAqEvB"}
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var AttributeWriteResponse_exports = {};
20
+ __export(AttributeWriteResponse_exports, {
21
+ AttributeWriteResponse: () => AttributeWriteResponse
22
+ });
23
+ module.exports = __toCommonJS(AttributeWriteResponse_exports);
24
+ var import_AccessControl = require("#action/server/AccessControl.js");
25
+ var import_DataResponse = require("#action/server/DataResponse.js");
26
+ var import_general = require("#general");
27
+ var import_model = require("#model");
28
+ var import_types = require("#types");
29
+ /**
30
+ * @license
31
+ * Copyright 2022-2025 Project CHIP Authors
32
+ * SPDX-License-Identifier: Apache-2.0
33
+ */
34
+ const logger = import_general.Logger.get("AttributeWriteResponse");
35
+ class AttributeWriteResponse extends import_DataResponse.DataResponse {
36
+ #fabricIndex;
37
+ // The following state updates as data producers execute. This serves both to convey state between functions and as
38
+ // a cache between producers that touch the same endpoint and/or cluster
39
+ #currentEndpoint;
40
+ #currentCluster;
41
+ #previousProcessedAttributePath;
42
+ #wildcardPathFlags = 0;
43
+ // Count how many attribute status (on error) and attribute values (on success) we have emitted
44
+ #statusCount = 0;
45
+ #successCount = 0;
46
+ #errorCount = 0;
47
+ constructor(node, session) {
48
+ super(node, session);
49
+ this.#fabricIndex = session.fabric ?? import_types.FabricIndex.NO_FABRIC;
50
+ }
51
+ async process({ writeRequests, suppressResponse }) {
52
+ const writeResponses = new Array();
53
+ for (const { path, data, dataVersion } of writeRequests) {
54
+ if (path.endpointId === void 0 || path.clusterId === void 0 || path.attributeId === void 0) {
55
+ const responses = await this.#processWildcard(path, data);
56
+ if (responses !== void 0) {
57
+ writeResponses.push(...responses);
58
+ }
59
+ } else {
60
+ writeResponses.push(
61
+ await this.#writeConcrete(path, data, dataVersion)
62
+ );
63
+ }
64
+ }
65
+ if (!suppressResponse) {
66
+ return writeResponses;
67
+ }
68
+ return void 0;
69
+ }
70
+ /** Guarded accessor for this.#currentEndpoint. This should never be undefined */
71
+ get #guardedCurrentEndpoint() {
72
+ if (this.#currentEndpoint === void 0) {
73
+ throw new import_general.InternalError("currentEndpoint is not set. Should never happen");
74
+ }
75
+ return this.#currentEndpoint;
76
+ }
77
+ /** Guarded accessor for this.#currentCluster. This should never be undefined */
78
+ get #guardedCurrentCluster() {
79
+ if (this.#currentCluster === void 0) {
80
+ throw new import_general.InternalError("currentCluster is not set. Should never happen");
81
+ }
82
+ return this.#currentCluster;
83
+ }
84
+ get counts() {
85
+ return {
86
+ status: this.#statusCount,
87
+ success: this.#successCount,
88
+ existent: this.#successCount + this.#errorCount
89
+ };
90
+ }
91
+ /**
92
+ * Validate a wildcard path and update internal state.
93
+ */
94
+ async #processWildcard(path, value) {
95
+ const { nodeId, endpointId, wildcardPathFlags } = path;
96
+ if (nodeId !== void 0 && nodeId !== this.nodeId) {
97
+ return;
98
+ }
99
+ this.#wildcardPathFlags = wildcardPathFlags ? import_DataResponse.WildcardPathFlagsCodec.encode(wildcardPathFlags) : 0;
100
+ if (endpointId === void 0) {
101
+ const responses = new Array();
102
+ for (const endpoint2 of this.node) {
103
+ const response = await this.#writeEndpointForWildcard(endpoint2, path, value);
104
+ if (response !== void 0) {
105
+ responses.push(response);
106
+ }
107
+ }
108
+ return responses;
109
+ }
110
+ const endpoint = this.node[endpointId];
111
+ if (endpoint) {
112
+ const response = await this.#writeEndpointForWildcard(endpoint, path, value);
113
+ if (response !== void 0) {
114
+ return [response];
115
+ }
116
+ }
117
+ }
118
+ /**
119
+ * Write to a concrete path and update internal state.
120
+ */
121
+ async #writeConcrete(path, value, version) {
122
+ const { nodeId, endpointId, clusterId, attributeId } = path;
123
+ if (nodeId !== void 0 && this.nodeId !== nodeId) {
124
+ return this.#asStatus(path, import_types.Status.UnsupportedNode);
125
+ }
126
+ const endpoint = this.node[endpointId];
127
+ const cluster = endpoint?.[clusterId];
128
+ const attribute = cluster?.type.attributes[attributeId];
129
+ let limits;
130
+ if (attribute === void 0) {
131
+ const modelAttr = this.node.matter.member(path.clusterId, [import_model.ElementTag.Cluster])?.member(path.attributeId, [import_model.ElementTag.Attribute]);
132
+ if (modelAttr) {
133
+ limits = (0, import_AccessControl.AccessControl)(modelAttr).limits;
134
+ } else {
135
+ limits = import_DataResponse.FallbackLimits;
136
+ }
137
+ } else {
138
+ limits = attribute.limits;
139
+ }
140
+ const location = {
141
+ ...cluster?.location ?? {
142
+ path: import_model.DataModelPath.none,
143
+ endpoint: endpointId,
144
+ cluster: clusterId
145
+ },
146
+ owningFabric: this.session.fabric
147
+ };
148
+ const permission = this.session.authorityAt(limits.writeLevel, location);
149
+ switch (permission) {
150
+ case import_AccessControl.AccessControl.Authority.Granted:
151
+ break;
152
+ case import_AccessControl.AccessControl.Authority.Unauthorized:
153
+ return this.#asStatus(path, import_types.Status.UnsupportedAccess);
154
+ case import_AccessControl.AccessControl.Authority.Restricted:
155
+ return this.#asStatus(path, import_types.Status.AccessRestricted);
156
+ default:
157
+ throw new import_general.InternalError(`Unsupported authorization state ${permission}`);
158
+ }
159
+ if (endpoint === void 0) {
160
+ return this.#asStatus(path, import_types.Status.UnsupportedEndpoint);
161
+ }
162
+ if (cluster === void 0) {
163
+ return this.#asStatus(path, import_types.Status.UnsupportedCluster);
164
+ }
165
+ if (attribute === void 0 || !cluster.type.attributes[attribute.id]) {
166
+ return this.#asStatus(path, import_types.Status.UnsupportedAttribute);
167
+ }
168
+ if (!limits.writable) {
169
+ this.#errorCount++;
170
+ return this.#asStatus(path, import_types.Status.UnsupportedWrite);
171
+ }
172
+ if (limits.timed && !this.session.timed) {
173
+ this.#errorCount++;
174
+ return this.#asStatus(path, import_types.Status.NeedsTimedInteraction);
175
+ }
176
+ if (limits.fabricScoped && this.session.fabric === void 0) {
177
+ this.#errorCount++;
178
+ return this.#asStatus(path, import_types.Status.UnsupportedAccess);
179
+ }
180
+ if (version !== void 0 && version !== cluster.version) {
181
+ this.#errorCount++;
182
+ return this.#asStatus(path, import_types.Status.DataVersionMismatch);
183
+ }
184
+ if (this.#currentEndpoint !== endpoint) {
185
+ this.#currentEndpoint = endpoint;
186
+ this.#currentCluster = cluster;
187
+ } else if (this.#currentCluster !== cluster) {
188
+ this.#currentCluster = cluster;
189
+ }
190
+ return await this.writeValue(attribute, path, value);
191
+ }
192
+ /**
193
+ * Starts new chunk or adds to current chunk all values from {@link endpoint} selected by {@link path}.
194
+ *
195
+ * Emits previous chunk if it exists and was not for this endpoint. This means that our chunk size is one endpoint
196
+ * worth of data, except for the initial error chunk if there are path errors.
197
+ *
198
+ * {@link this.#wildcardPathFlags} to numeric bitmap must be set prior to invocation.
199
+ *
200
+ * TODO - skip endpoints for which subject is unauthorized as optimization
201
+ */
202
+ #writeEndpointForWildcard(endpoint, path, value) {
203
+ const { clusterId, attributeId } = path;
204
+ if (clusterId === void 0 || attributeId === void 0) {
205
+ throw new import_types.StatusResponseError(
206
+ "Wildcard path write must specify a clusterId and attributeId",
207
+ import_types.StatusCode.InvalidAction
208
+ );
209
+ }
210
+ if (endpoint.wildcardPathFlags & this.#wildcardPathFlags) {
211
+ return;
212
+ }
213
+ if (this.#currentEndpoint !== endpoint) {
214
+ this.#currentEndpoint = endpoint;
215
+ this.#currentCluster = void 0;
216
+ }
217
+ const cluster = endpoint[clusterId];
218
+ if (cluster !== void 0) {
219
+ return this.#writeClusterForWildcard(cluster, path, value);
220
+ }
221
+ }
222
+ /**
223
+ * Read values from a specific {@link cluster} for a wildcard path.
224
+ *
225
+ * Depends on state initialized by {@link #writeEndpointForWildcard}.
226
+ *
227
+ * TODO - skip clusters for which subject is unauthorized
228
+ */
229
+ #writeClusterForWildcard(cluster, path, value) {
230
+ if (cluster.type.wildcardPathFlags & this.#wildcardPathFlags) {
231
+ return;
232
+ }
233
+ if (this.#currentCluster !== cluster) {
234
+ this.#currentCluster = cluster;
235
+ }
236
+ const { attributeId } = path;
237
+ if (attributeId === void 0) {
238
+ throw new import_types.StatusResponseError("Wildcard path write must specify an attributeId", import_types.StatusCode.InvalidAction);
239
+ } else {
240
+ const attribute = cluster.type.attributes[attributeId];
241
+ if (attribute !== void 0) {
242
+ return this.#writeAttributeForWildcard(attribute, path, value);
243
+ }
244
+ }
245
+ }
246
+ /**
247
+ * Read values from a specific {@link attribute} for a wildcard path.
248
+ *
249
+ * Depends on state initialized by {@link #writeClusterForWildcard}.
250
+ */
251
+ #writeAttributeForWildcard(attribute, path, value) {
252
+ if (!this.#guardedCurrentCluster.type.attributes[attribute.id]) {
253
+ return;
254
+ }
255
+ if (attribute.wildcardPathFlags & this.#wildcardPathFlags) {
256
+ return;
257
+ }
258
+ if (!attribute.limits.writable || this.session.authorityAt(attribute.limits.readLevel, this.#guardedCurrentCluster.location) !== import_AccessControl.AccessControl.Authority.Granted || attribute.limits.timed && !this.session.timed) {
259
+ return;
260
+ }
261
+ return this.writeValue(
262
+ attribute,
263
+ {
264
+ ...path,
265
+ endpointId: this.#guardedCurrentEndpoint.id,
266
+ clusterId: this.#guardedCurrentCluster.type.id,
267
+ attributeId: attribute.id
268
+ },
269
+ value
270
+ );
271
+ }
272
+ /**
273
+ * Add a status value.
274
+ */
275
+ #asStatus(path, status, clusterStatus) {
276
+ if (status !== import_types.Status.Success) {
277
+ logger.debug(
278
+ () => `Error writing attribute ${this.node.inspectPath(path)}: Status=${import_types.StatusCode[status]}(${status}), ClusterStatus=${clusterStatus}`
279
+ );
280
+ }
281
+ const report = {
282
+ kind: "attr-status",
283
+ path,
284
+ status,
285
+ clusterStatus
286
+ };
287
+ if (status !== import_types.Status.Success) {
288
+ this.#statusCount++;
289
+ }
290
+ return report;
291
+ }
292
+ async writeValue(attribute, path, value) {
293
+ const { attributeId, listIndex } = path;
294
+ if (listIndex !== void 0 && listIndex !== null) {
295
+ throw new import_types.StatusResponseError(
296
+ `Unsupported Write path provided: listIndex === ${listIndex}`,
297
+ import_types.Status.InvalidAction
298
+ );
299
+ }
300
+ const previousPath = this.#previousProcessedAttributePath;
301
+ this.#previousProcessedAttributePath = path;
302
+ try {
303
+ const { tlv } = attribute;
304
+ if (listIndex === void 0) {
305
+ const decoded = this.#decodeWithSchema(tlv, value);
306
+ logger.debug(() => `Writing attribute ${this.node.inspectPath(path)}=${import_general.Diagnostic.json(decoded)}`);
307
+ const writeState = await this.#guardedCurrentCluster.openForWrite(this.session);
308
+ writeState[attributeId] = decoded;
309
+ await this.session.transaction?.commit();
310
+ } else if (listIndex === null) {
311
+ if (previousPath?.endpointId !== path.endpointId || previousPath?.clusterId !== path.clusterId || previousPath?.attributeId !== path.attributeId) {
312
+ throw new import_types.StatusResponseError("ADD list action without a former REPLACE_ALL action", import_types.Status.Busy);
313
+ }
314
+ if (!(tlv instanceof import_types.ArraySchema)) {
315
+ throw new import_types.StatusResponseError(
316
+ `Unsupported Write path provided: listIndex === ${listIndex} but attribute is not a list`,
317
+ import_types.Status.InvalidAction
318
+ );
319
+ }
320
+ const writeState = await this.#guardedCurrentCluster.openForWrite(this.session);
321
+ const decoded = this.#decodeWithSchema(tlv.elementSchema, value);
322
+ logger.debug(
323
+ () => `Writing attribute chunk ${this.node.inspectPath(path)} adding ${import_general.Diagnostic.json(decoded)}`
324
+ );
325
+ writeState[attributeId].push(decoded);
326
+ await this.session.transaction?.commit();
327
+ }
328
+ } catch (error) {
329
+ await this.session.transaction?.rollback();
330
+ if (import_types.StatusResponseError.is(error)) {
331
+ this.#errorCount++;
332
+ return this.#asStatus(path, error.code, error.clusterCode);
333
+ }
334
+ throw error;
335
+ }
336
+ this.#successCount++;
337
+ return this.#asStatus(path, import_types.Status.Success);
338
+ }
339
+ #decodeWithSchema(tlv, value) {
340
+ return tlv.injectField(
341
+ tlv.decodeTlv(value),
342
+ import_model.FabricIndex.id,
343
+ this.#fabricIndex,
344
+ () => true
345
+ // We always inject the current fabricIndex for writes
346
+ );
347
+ }
348
+ }
349
+ //# sourceMappingURL=AttributeWriteResponse.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/action/server/AttributeWriteResponse.ts"],
4
+ "mappings": "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",
5
+ "names": ["endpoint", "FabricIndexField"]
6
+ }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Project CHIP Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { InteractionSession } from "#action/index.js";
6
7
  import { NodeProtocol } from "#action/protocols.js";
7
8
  import { AccessControl } from "#action/server/AccessControl.js";
8
9
  import { NodeId } from "#types";
@@ -18,7 +19,7 @@ export declare const WildcardPathFlagsCodec: import("#types").BitmapSchemaIntern
18
19
  skipDiagnosticsClusters: import("#types").BitFlag;
19
20
  }>;
20
21
  export declare const FallbackLimits: AccessControl.Limits;
21
- export declare abstract class DataResponse<SessionT extends AccessControl.Session = AccessControl.Session> {
22
+ export declare abstract class DataResponse<SessionT extends InteractionSession = InteractionSession> {
22
23
  #private;
23
24
  constructor(node: NodeProtocol, session: SessionT);
24
25
  protected get node(): NodeProtocol;
@@ -37,9 +38,9 @@ export declare abstract class DataResponse<SessionT extends AccessControl.Sessio
37
38
  */
38
39
  status: number;
39
40
  /**
40
- * Number of value responses (aka success we have sent)
41
+ * Number of success or value responses (aka success we have sent)
41
42
  */
42
- value: number;
43
+ success: number;
43
44
  };
44
45
  }
45
46
  //# sourceMappingURL=DataResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/DataResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAgB,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAEvE,eAAO,MAAM,sBAAsB;;;;;;;;;;EAAwC,CAAC;AAC5E,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAQ1C,CAAC;AAEF,8BAAsB,YAAY,CAAC,QAAQ,SAAS,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO;;gBAQjF,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;IAKjD,SAAS,KAAK,IAAI,iBAEjB;IAED,SAAS,KAAK,OAAO,aAEpB;IAED;;OAEG;IACH,SAAS,KAAK,MAAM,WAMnB;IAED,QAAQ,CAAC,MAAM,EAAE;QACb;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL"}
1
+ {"version":3,"file":"DataResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/DataResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAgB,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAEvE,eAAO,MAAM,sBAAsB;;;;;;;;;;EAAwC,CAAC;AAC5E,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAQ1C,CAAC;AAEF,8BAAsB,YAAY,CAAC,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB;;gBAQ3E,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;IAKjD,SAAS,KAAK,IAAI,iBAEjB;IAED,SAAS,KAAK,OAAO,aAEpB;IAED;;OAEG;IACH,SAAS,KAAK,MAAM,WAMnB;IAED,QAAQ,CAAC,MAAM,EAAE;QACb;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;CACL"}
@@ -44,7 +44,7 @@ class DataResponse {
44
44
  // Configuration
45
45
  #session;
46
46
  #node;
47
- // The node ID may be expensive to retrieve and is invariant so we cache it here
47
+ // The node ID may be expensive to retrieve and is invariant, so we cache it here
48
48
  #cachedNodeId;
49
49
  constructor(node, session) {
50
50
  this.#node = node;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/server/DataResponse.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,mBAA4B;AAC5B,mBAA8D;AAR9D;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,6BAAyB,2BAAa,oCAAuB;AACnE,MAAM,iBAAuC;AAAA,EAChD,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,WAAW,yBAAY;AAAA,EACvB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY,yBAAY;AAC5B;AAEO,MAAe,aAA6E;AAAA;AAAA,EAE/F;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EAEA,YAAY,MAAoB,SAAmB;AAC/C,SAAK,QAAQ;AACb,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,IAAc,OAAO;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAc,UAAU;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,SAAS;AACnB,QAAI,KAAK,kBAAkB,QAAW;AAClC,WAAK,iBACA,KAAK,SAAS,UAAU,KAAK,MAAM,UAAU,KAAK,SAAS,MAAM,MAAM,oBAAO;AAAA,IACvF;AACA,WAAO,KAAK;AAAA,EAChB;AAkBJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,mBAA4B;AAC5B,mBAA8D;AAT9D;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,6BAAyB,2BAAa,oCAAuB;AACnE,MAAM,iBAAuC;AAAA,EAChD,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,WAAW,yBAAY;AAAA,EACvB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY,yBAAY;AAC5B;AAEO,MAAe,aAAuE;AAAA;AAAA,EAEzF;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EAEA,YAAY,MAAoB,SAAmB;AAC/C,SAAK,QAAQ;AACb,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,IAAc,OAAO;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAc,UAAU;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,SAAS;AACnB,QAAI,KAAK,kBAAkB,QAAW;AAClC,WAAK,iBACA,KAAK,SAAS,UAAU,KAAK,MAAM,UAAU,KAAK,SAAS,MAAM,MAAM,oBAAO;AAAA,IACvF;AACA,WAAO,KAAK;AAAA,EAChB;AAkBJ;",
5
5
  "names": []
6
6
  }