@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.
- package/dist/cjs/action/Interactable.d.ts +5 -1
- package/dist/cjs/action/Interactable.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.d.ts +3 -4
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +28 -16
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/action/protocols.d.ts +7 -2
- package/dist/cjs/action/protocols.d.ts.map +1 -1
- package/dist/cjs/action/request/Write.d.ts +43 -2
- package/dist/cjs/action/request/Write.d.ts.map +1 -1
- package/dist/cjs/action/request/Write.js +74 -0
- package/dist/cjs/action/request/Write.js.map +2 -2
- package/dist/cjs/action/response/InvokeResult.d.ts +1 -2
- package/dist/cjs/action/response/InvokeResult.d.ts.map +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts +5 -14
- package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
- package/dist/cjs/action/response/WriteResult.d.ts +19 -5
- package/dist/cjs/action/response/WriteResult.d.ts.map +1 -1
- package/dist/cjs/action/server/AccessControl.js +4 -4
- package/dist/cjs/action/server/AccessControl.js.map +1 -1
- package/dist/cjs/action/server/{AttributeResponse.d.ts → AttributeReadResponse.d.ts} +4 -4
- package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -0
- package/dist/cjs/action/server/{AttributeResponse.js → AttributeReadResponse.js} +12 -12
- package/dist/cjs/action/server/{AttributeResponse.js.map → AttributeReadResponse.js.map} +2 -2
- package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts +4 -4
- package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeSubscriptionResponse.js +2 -2
- package/dist/cjs/action/server/AttributeSubscriptionResponse.js.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts +28 -0
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -0
- package/dist/cjs/action/server/AttributeWriteResponse.js +349 -0
- package/dist/cjs/action/server/AttributeWriteResponse.js.map +6 -0
- package/dist/cjs/action/server/DataResponse.d.ts +4 -3
- package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/DataResponse.js +1 -1
- package/dist/cjs/action/server/DataResponse.js.map +1 -1
- package/dist/cjs/action/server/{EventResponse.d.ts → EventReadResponse.d.ts} +4 -4
- package/dist/cjs/action/server/EventReadResponse.d.ts.map +1 -0
- package/dist/cjs/action/server/{EventResponse.js → EventReadResponse.js} +8 -8
- package/dist/cjs/action/server/EventReadResponse.js.map +6 -0
- package/dist/cjs/action/server/ServerInteraction.d.ts +3 -4
- package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.js +12 -10
- package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
- package/dist/cjs/action/server/index.d.ts +3 -2
- package/dist/cjs/action/server/index.d.ts.map +1 -1
- package/dist/cjs/action/server/index.js +3 -2
- package/dist/cjs/action/server/index.js.map +1 -1
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.js +12 -1
- package/dist/cjs/interaction/InteractionClient.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +8 -3
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/action/Interactable.d.ts +5 -1
- package/dist/esm/action/Interactable.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts +3 -4
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +29 -17
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/action/protocols.d.ts +7 -2
- package/dist/esm/action/protocols.d.ts.map +1 -1
- package/dist/esm/action/request/Write.d.ts +43 -2
- package/dist/esm/action/request/Write.d.ts.map +1 -1
- package/dist/esm/action/request/Write.js +70 -0
- package/dist/esm/action/request/Write.js.map +2 -2
- package/dist/esm/action/response/InvokeResult.d.ts +1 -2
- package/dist/esm/action/response/InvokeResult.d.ts.map +1 -1
- package/dist/esm/action/response/ReadResult.d.ts +5 -14
- package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
- package/dist/esm/action/response/WriteResult.d.ts +19 -5
- package/dist/esm/action/response/WriteResult.d.ts.map +1 -1
- package/dist/esm/action/server/AccessControl.js +4 -4
- package/dist/esm/action/server/AccessControl.js.map +1 -1
- package/dist/esm/action/server/{AttributeResponse.d.ts → AttributeReadResponse.d.ts} +4 -4
- package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -0
- package/dist/esm/action/server/{AttributeResponse.js → AttributeReadResponse.js} +9 -9
- package/dist/esm/action/server/{AttributeResponse.js.map → AttributeReadResponse.js.map} +2 -2
- package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts +4 -4
- package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeSubscriptionResponse.js +2 -2
- package/dist/esm/action/server/AttributeSubscriptionResponse.js.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts +28 -0
- package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -0
- package/dist/esm/action/server/AttributeWriteResponse.js +335 -0
- package/dist/esm/action/server/AttributeWriteResponse.js.map +6 -0
- package/dist/esm/action/server/DataResponse.d.ts +4 -3
- package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
- package/dist/esm/action/server/DataResponse.js +1 -1
- package/dist/esm/action/server/DataResponse.js.map +1 -1
- package/dist/esm/action/server/{EventResponse.d.ts → EventReadResponse.d.ts} +4 -4
- package/dist/esm/action/server/EventReadResponse.d.ts.map +1 -0
- package/dist/esm/action/server/{EventResponse.js → EventReadResponse.js} +5 -5
- package/dist/esm/action/server/EventReadResponse.js.map +6 -0
- package/dist/esm/action/server/ServerInteraction.d.ts +3 -4
- package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/esm/action/server/ServerInteraction.js +12 -10
- package/dist/esm/action/server/ServerInteraction.js.map +1 -1
- package/dist/esm/action/server/index.d.ts +3 -2
- package/dist/esm/action/server/index.d.ts.map +1 -1
- package/dist/esm/action/server/index.js +3 -2
- package/dist/esm/action/server/index.js.map +1 -1
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.js +12 -1
- package/dist/esm/interaction/InteractionClient.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +8 -3
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/package.json +6 -6
- package/src/action/Interactable.ts +6 -1
- package/src/action/client/ClientInteraction.ts +31 -23
- package/src/action/protocols.ts +8 -2
- package/src/action/request/Write.ts +127 -4
- package/src/action/response/InvokeResult.ts +1 -2
- package/src/action/response/ReadResult.ts +5 -22
- package/src/action/response/WriteResult.ts +21 -5
- package/src/action/server/AccessControl.ts +4 -4
- package/src/action/server/{AttributeResponse.ts → AttributeReadResponse.ts} +14 -13
- package/src/action/server/AttributeSubscriptionResponse.ts +5 -5
- package/src/action/server/AttributeWriteResponse.ts +437 -0
- package/src/action/server/DataResponse.ts +5 -4
- package/src/action/server/{EventResponse.ts → EventReadResponse.ts} +6 -5
- package/src/action/server/ServerInteraction.ts +16 -14
- package/src/action/server/index.ts +3 -2
- package/src/interaction/InteractionClient.ts +20 -1
- package/src/interaction/InteractionMessenger.ts +8 -3
- package/dist/cjs/action/server/AttributeResponse.d.ts.map +0 -1
- package/dist/cjs/action/server/EventResponse.d.ts.map +0 -1
- package/dist/cjs/action/server/EventResponse.js.map +0 -6
- package/dist/esm/action/server/AttributeResponse.d.ts.map +0 -1
- package/dist/esm/action/server/EventResponse.d.ts.map +0 -1
- 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
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var AttributeReadResponse_exports = {};
|
|
20
|
+
__export(AttributeReadResponse_exports, {
|
|
21
|
+
AttributeReadResponse: () => AttributeReadResponse,
|
|
22
22
|
GlobalAttrIds: () => GlobalAttrIds
|
|
23
23
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
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("
|
|
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
|
|
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
|
-
|
|
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.
|
|
218
|
+
this.#currentState = cluster.readState(this.session);
|
|
219
219
|
} else if (this.#currentCluster !== cluster) {
|
|
220
220
|
this.#currentCluster = cluster;
|
|
221
|
-
this.#currentState = cluster.
|
|
221
|
+
this.#currentState = cluster.readState(this.session);
|
|
222
222
|
} else if (this.#currentState === void 0) {
|
|
223
|
-
this.#currentState = cluster.
|
|
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.
|
|
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=
|
|
390
|
+
//# sourceMappingURL=AttributeReadResponse.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/action/server/
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
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 {
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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;
|
|
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
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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
|
}
|