@matter/protocol 0.13.1-alpha.0-20250511-74ef153aa → 0.13.1-alpha.0-20250516-6288f3c54
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
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Transaction } from "#general";
|
|
6
7
|
import { Invoke } from "./request/Invoke.js";
|
|
7
8
|
import { Read } from "./request/Read.js";
|
|
8
9
|
import { Subscribe } from "./request/Subscribe.js";
|
|
@@ -12,10 +13,13 @@ import { ReadResult } from "./response/ReadResult.js";
|
|
|
12
13
|
import { SubscribeResult } from "./response/SubscribeResult.js";
|
|
13
14
|
import { WriteResult } from "./response/WriteResult.js";
|
|
14
15
|
import { AccessControl } from "./server/AccessControl.js";
|
|
16
|
+
export interface InteractionSession extends AccessControl.Session {
|
|
17
|
+
transaction?: Transaction;
|
|
18
|
+
}
|
|
15
19
|
/**
|
|
16
20
|
* Objects implementing this interface can participate in Matter interactions.
|
|
17
21
|
*/
|
|
18
|
-
export interface Interactable<SessionT =
|
|
22
|
+
export interface Interactable<SessionT = InteractionSession> {
|
|
19
23
|
/**
|
|
20
24
|
* Perform a Matter read interaction.
|
|
21
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Interactable.d.ts","sourceRoot":"","sources":["../../../src/action/Interactable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"Interactable.d.ts","sourceRoot":"","sources":["../../../src/action/Interactable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,OAAO;IAC7D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,QAAQ,GAAG,kBAAkB;IACvD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC;IAEnE;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;CAC7E"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Interactable } from "#action/Interactable.js";
|
|
6
|
+
import { Interactable, InteractionSession } from "#action/Interactable.js";
|
|
7
7
|
import { Invoke } from "#action/request/Invoke.js";
|
|
8
8
|
import { Read } from "#action/request/Read.js";
|
|
9
9
|
import { Subscribe } from "#action/request/Subscribe.js";
|
|
@@ -12,7 +12,6 @@ import { InvokeResult } from "#action/response/InvokeResult.js";
|
|
|
12
12
|
import { ReadResult } from "#action/response/ReadResult.js";
|
|
13
13
|
import { SubscribeResult } from "#action/response/SubscribeResult.js";
|
|
14
14
|
import { WriteResult } from "#action/response/WriteResult.js";
|
|
15
|
-
import { AccessControl } from "#action/server/AccessControl.js";
|
|
16
15
|
import { Environment, Environmental, PromiseQueue } from "#general";
|
|
17
16
|
import { SubscriptionClient } from "#interaction/SubscriptionClient.js";
|
|
18
17
|
import { ExchangeProvider } from "#protocol/ExchangeProvider.js";
|
|
@@ -24,12 +23,12 @@ export interface ClientInteractableContext {
|
|
|
24
23
|
/**
|
|
25
24
|
* This is a WIP and currently largely a stub.
|
|
26
25
|
*/
|
|
27
|
-
export declare class ClientInteraction<SessionT extends
|
|
26
|
+
export declare class ClientInteraction<SessionT extends InteractionSession = InteractionSession> implements Interactable<SessionT> {
|
|
28
27
|
#private;
|
|
29
28
|
constructor(context: ClientInteractableContext);
|
|
30
29
|
get subscriptions(): SubscriptionClient;
|
|
31
30
|
get queue(): PromiseQueue | undefined;
|
|
32
|
-
static [Environmental.create](env: Environment): ClientInteraction<
|
|
31
|
+
static [Environmental.create](env: Environment): ClientInteraction<InteractionSession>;
|
|
33
32
|
read(_request: Read, _session?: SessionT): ReadResult;
|
|
34
33
|
write<T extends Write>(request: T, _session?: SessionT): WriteResult<T>;
|
|
35
34
|
invoke<T extends Invoke>(request: Invoke, _session?: SessionT): InvokeResult<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientInteraction.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientInteraction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientInteraction.d.ts","sourceRoot":"","sources":["../../../../src/action/client/ClientInteraction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAuB,YAAY,EAAE,MAAM,UAAU,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,kBAAkB,CAAC;IAClC,KAAK,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CACnF,YAAW,YAAY,CAAC,QAAQ,CAAC;;gBAMrB,OAAO,EAAE,yBAAyB;IAM9C,IAAI,aAAa,uBAEhB;IAED,IAAI,KAAK,6BAER;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAU9C,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU;IAK/C,KAAK,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;IA6B7E,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;IAkB/E,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,eAAe;CAIvE"}
|
|
@@ -58,25 +58,37 @@ class ClientInteraction {
|
|
|
58
58
|
read(_request, _session) {
|
|
59
59
|
throw new import_general.NotImplementedError();
|
|
60
60
|
}
|
|
61
|
-
write(request, _session) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
61
|
+
async write(request, _session) {
|
|
62
|
+
const messenger = await import_InteractionMessenger.InteractionClientMessenger.create(this.#exchanges);
|
|
63
|
+
const response = await messenger.sendWriteCommand(request);
|
|
64
|
+
if (request.suppressResponse) {
|
|
65
|
+
return void 0;
|
|
66
|
+
}
|
|
67
|
+
if (!response || !response.writeResponses?.length) {
|
|
68
|
+
return new Array();
|
|
69
|
+
} else {
|
|
70
|
+
return response.writeResponses.map(
|
|
71
|
+
({
|
|
72
|
+
path: { nodeId, endpointId, clusterId, attributeId, listIndex },
|
|
73
|
+
status: { status, clusterStatus }
|
|
74
|
+
}) => ({
|
|
75
|
+
kind: "attr-status",
|
|
76
|
+
path: {
|
|
77
|
+
nodeId,
|
|
78
|
+
endpointId,
|
|
79
|
+
clusterId,
|
|
80
|
+
attributeId,
|
|
81
|
+
listIndex
|
|
82
|
+
},
|
|
83
|
+
status,
|
|
84
|
+
clusterStatus
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
}
|
|
76
88
|
}
|
|
77
89
|
invoke(request, _session) {
|
|
78
90
|
if (request.suppressResponse) {
|
|
79
|
-
return new
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
80
92
|
import_InteractionMessenger.InteractionClientMessenger.create(this.#exchanges).then(
|
|
81
93
|
(messenger) => messenger.sendInvokeCommand(request).then(() => resolve()).catch(reject)
|
|
82
94
|
).then(resolve, reject);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/action/client/ClientInteraction.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,qBAA8E;AAC9E,kCAA2C;AAC3C,gCAAmC;AACnC,8BAAiC;AACjC,8BAAiC;AAnBjC;AAAA;AAAA;AAAA;AAAA;AA8BO,MAAM,kBAEb;AAAA,EACa;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,SAAoC;AAC5C,SAAK,aAAa,QAAQ;AAC1B,SAAK,iBAAiB,QAAQ;AAC9B,SAAK,SAAS,QAAQ;AAAA,EAC1B;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,QAAQ,6BAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,kBAAkB;AAAA,MACnC,WAAW,IAAI,IAAI,wCAAgB;AAAA,MACnC,eAAe,IAAI,IAAI,4CAAkB;AAAA,MACzC,OAAO,IAAI,IAAI,wCAAgB;AAAA,IACnC,CAAC;AACD,QAAI,IAAI,mBAAmB,QAAQ;AACnC,WAAO;AAAA,EACX;AAAA,EAEA,KAAK,UAAgB,UAAiC;AAElD,UAAM,IAAI,mCAAoB;AAAA,EAClC;AAAA,EAEA,MAAM,MAAuB,SAAY,UAAqC;AAC1E,UAAM,YAAY,MAAM,uDAA2B,OAAO,KAAK,UAAU;AACzE,UAAM,WAAW,MAAM,UAAU,iBAAiB,OAAO;AACzD,QAAI,QAAQ,kBAAkB;AAC1B,aAAO;AAAA,IACX;AACA,QAAI,CAAC,YAAY,CAAC,SAAS,gBAAgB,QAAQ;AAC/C,aAAO,IAAI,MAAmC;AAAA,IAClD,OAAO;AACH,aAAO,SAAS,eAAe;AAAA,QAC3B,CAAC;AAAA,UACG,MAAM,EAAE,QAAQ,YAAY,WAAW,aAAa,UAAU;AAAA,UAC9D,QAAQ,EAAE,QAAQ,cAAc;AAAA,QACpC,OAAO;AAAA,UACH,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,OAAyB,SAAiB,UAAsC;AAC5E,QAAI,QAAQ,kBAAkB;AAC1B,aAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC1C,+DAA2B,OAAO,KAAK,UAAU,EAC5C;AAAA,UAAK,eACF,UACK,kBAAkB,OAAO,EACzB,KAAK,MAAM,QAAQ,CAAC,EACpB,MAAM,MAAM;AAAA,QACrB,EACC,KAAK,SAAS,MAAM;AAAA,MAC7B,CAAC;AAAA,IACL;AAGA,UAAM,IAAI,mCAAoB;AAAA,EAClC;AAAA,EAEA,UAAU,UAAqB,UAAsC;AAEjE,UAAM,IAAI,mCAAoB;AAAA,EAClC;AACJ;",
|
|
5
5
|
"names": []
|
|
6
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/Interactable.js";
|
|
6
7
|
import { OccurrenceManager } from "#events/OccurrenceManager.js";
|
|
7
8
|
import { MaybePromise, Observable } from "#general";
|
|
8
9
|
import { DataModelPath, MatterModel } from "#model";
|
|
@@ -92,12 +93,16 @@ export interface ClusterProtocol {
|
|
|
92
93
|
*/
|
|
93
94
|
stateChanged: Observable<[changes: AttributeId[], version: number], MaybePromise>;
|
|
94
95
|
/**
|
|
95
|
-
*
|
|
96
|
+
* Read-only state of the cluster
|
|
97
|
+
*/
|
|
98
|
+
readState(session: InteractionSession): Val.ProtocolStruct;
|
|
99
|
+
/**
|
|
100
|
+
* Writeable record of attribute values, keyed by attribute ID.
|
|
96
101
|
*
|
|
97
102
|
* Note that current protocol implementations do not filter data within this responsibility based on the
|
|
98
103
|
* session. So doing is the responsibility of the node implementation.
|
|
99
104
|
*/
|
|
100
|
-
|
|
105
|
+
openForWrite(session: InteractionSession): Promise<Val.ProtocolStruct>;
|
|
101
106
|
}
|
|
102
107
|
/**
|
|
103
108
|
* Protocol contract for a specific type of cluster (including feature variants).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../../../src/action/protocols.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAa,SAAQ,kBAAkB,CAAC,gBAAgB,CAAC;IACtE;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAEnD;;OAEG;IACH,YAAY,EAAE,iBAAiB,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,UAAU,CACpB;QAAC,UAAU,EAAE,cAAc;QAAE,SAAS,EAAE,SAAS;QAAE,OAAO,EAAE,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM;KAAC,EAC3F,YAAY,CACf,CAAC;IAEF;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,gBACb,SAAQ,kBAAkB,CAAC,eAAe,CAAC,EACvC,0BAA0B,CAAC,cAAc,CAAC;IAC9C;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC;IAEjC;;OAEG;IACH,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;IAElF
|
|
1
|
+
{"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../../../src/action/protocols.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,49 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { WriteRequest } from "#types";
|
|
6
|
+
import { AttributeData, ClusterType, WriteRequest } from "#types";
|
|
7
|
+
import { Specifier } from "./Specifier.js";
|
|
7
8
|
export interface Write extends WriteRequest {
|
|
8
|
-
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Formulate a write-request using Matter numeric IDs.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Write(options: Write.Options): Write;
|
|
14
|
+
/**
|
|
15
|
+
* Formulate a write-request with extended options and name-based IDs.
|
|
16
|
+
*/
|
|
17
|
+
export declare function Write(options: Write.Options, ...data: Write.Attribute[]): Write;
|
|
18
|
+
/**
|
|
19
|
+
* Formulate a write-request with name-based IDs.
|
|
20
|
+
*/
|
|
21
|
+
export declare function Write(...data: Write.Attribute[]): Write;
|
|
22
|
+
export declare namespace Write {
|
|
23
|
+
interface Options {
|
|
24
|
+
writes?: AttributeData[];
|
|
25
|
+
timed?: boolean;
|
|
26
|
+
timeout?: number;
|
|
27
|
+
interactionModelRevision?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Selects attributes to Write. Limits fields to legal permutations per the Matter specification.
|
|
31
|
+
*/
|
|
32
|
+
type Attribute<C extends Specifier.Cluster = Specifier.Cluster> = (Attribute.Concrete<C> | Attribute.WildcardEndpoint<C>) & {
|
|
33
|
+
kind: "attribute";
|
|
34
|
+
value: any;
|
|
35
|
+
version?: number;
|
|
36
|
+
};
|
|
37
|
+
function Attribute<const C extends ClusterType>(data: Omit<Attribute<C>, "kind">): Attribute<C>;
|
|
38
|
+
namespace Attribute {
|
|
39
|
+
interface Concrete<C extends Specifier.Cluster> {
|
|
40
|
+
endpoint: Specifier.Endpoint;
|
|
41
|
+
cluster: C;
|
|
42
|
+
attributes: Specifier.Attribute<Specifier.ClusterFor<C>> | Specifier.Attribute<Specifier.ClusterFor<C>>[];
|
|
43
|
+
}
|
|
44
|
+
interface WildcardEndpoint<C extends Specifier.Cluster> {
|
|
45
|
+
endpoint?: undefined;
|
|
46
|
+
cluster: C;
|
|
47
|
+
attributes: Specifier.Attribute<Specifier.ClusterFor<C>> | Specifier.Attribute<Specifier.ClusterFor<C>>[];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
9
50
|
}
|
|
10
51
|
//# sourceMappingURL=Write.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Write.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Write.d.ts","sourceRoot":"","sources":["../../../../src/action/request/Write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,KAAM,SAAQ,YAAY;CAAG;AAE9C;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;AAEjF;;GAEG;AACH,wBAAgB,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC;AAqEzD,yBAAiB,KAAK,CAAC;IACnB,UAAiB,OAAO;QACpB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACrC;IAED;;OAEG;IACH,KAAY,SAAS,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,CACnE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrB,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAClC,GAAG;QACA,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,SAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAKrG;IAED,UAAiB,SAAS,CAAC;QACvB,UAAiB,QAAQ,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO;YACjD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7G;QAED,UAAiB,gBAAgB,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO;YACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC;YACX,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7G;KACJ;CACJ"}
|
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
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
|
+
};
|
|
6
10
|
var __copyProps = (to, from, except, desc) => {
|
|
7
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -13,10 +17,80 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
13
17
|
};
|
|
14
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
19
|
var Write_exports = {};
|
|
20
|
+
__export(Write_exports, {
|
|
21
|
+
Write: () => Write
|
|
22
|
+
});
|
|
16
23
|
module.exports = __toCommonJS(Write_exports);
|
|
24
|
+
var import_Session = require("#session/Session.js");
|
|
25
|
+
var import_MalformedRequestError = require("./MalformedRequestError.js");
|
|
26
|
+
var import_Specifier = require("./Specifier.js");
|
|
17
27
|
/**
|
|
18
28
|
* @license
|
|
19
29
|
* Copyright 2022-2025 Matter.js Authors
|
|
20
30
|
* SPDX-License-Identifier: Apache-2.0
|
|
21
31
|
*/
|
|
32
|
+
function Write(optionsOrData, ...data) {
|
|
33
|
+
let options;
|
|
34
|
+
if ("kind" in optionsOrData) {
|
|
35
|
+
data = [optionsOrData, ...data];
|
|
36
|
+
options = {};
|
|
37
|
+
} else {
|
|
38
|
+
options = optionsOrData;
|
|
39
|
+
}
|
|
40
|
+
const { writes: writeRequests = [] } = options;
|
|
41
|
+
const result = {
|
|
42
|
+
timedRequest: !!options.timed || !!options.timeout,
|
|
43
|
+
writeRequests,
|
|
44
|
+
interactionModelRevision: options.interactionModelRevision ?? import_Session.FALLBACK_INTERACTIONMODEL_REVISION
|
|
45
|
+
};
|
|
46
|
+
for (const entry of data) {
|
|
47
|
+
reifyData(entry);
|
|
48
|
+
}
|
|
49
|
+
if (!writeRequests.length) {
|
|
50
|
+
throw new import_MalformedRequestError.MalformedRequestError(`Write action contains no attributes to write`);
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
function reifyData(data2) {
|
|
54
|
+
const cluster = import_Specifier.Specifier.clusterOf(data2);
|
|
55
|
+
if (cluster === void 0) {
|
|
56
|
+
throw new import_MalformedRequestError.MalformedRequestError(`Write action must specify a cluster`);
|
|
57
|
+
}
|
|
58
|
+
let { attributes } = data2;
|
|
59
|
+
if (attributes === void 0) {
|
|
60
|
+
throw new import_MalformedRequestError.MalformedRequestError(`Write action must specify an attribute`);
|
|
61
|
+
}
|
|
62
|
+
if (!Array.isArray(attributes)) {
|
|
63
|
+
attributes = [attributes];
|
|
64
|
+
}
|
|
65
|
+
const { endpoint, value, version: dataVersion } = data2;
|
|
66
|
+
const prototype = {
|
|
67
|
+
path: {
|
|
68
|
+
endpointId: endpoint !== void 0 ? import_Specifier.Specifier.endpointIdOf(data2) : void 0,
|
|
69
|
+
clusterId: cluster.id,
|
|
70
|
+
attributeId: void 0
|
|
71
|
+
},
|
|
72
|
+
dataVersion
|
|
73
|
+
};
|
|
74
|
+
for (const specifier of attributes) {
|
|
75
|
+
const attribute = import_Specifier.Specifier.attributeFor(cluster, specifier);
|
|
76
|
+
writeRequests.push({
|
|
77
|
+
...prototype,
|
|
78
|
+
path: {
|
|
79
|
+
...prototype.path,
|
|
80
|
+
attributeId: attribute.id
|
|
81
|
+
},
|
|
82
|
+
data: attribute.schema.encodeTlv(value, { forWriteInteraction: true })
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
((Write2) => {
|
|
88
|
+
function Attribute(data) {
|
|
89
|
+
return {
|
|
90
|
+
kind: "attribute",
|
|
91
|
+
...data
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
Write2.Attribute = Attribute;
|
|
95
|
+
})(Write || (Write = {}));
|
|
22
96
|
//# sourceMappingURL=Write.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/action/request/Write.ts"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAmD;AAEnD,mCAAsC;AACtC,uBAA0B;AAT1B;AAAA;AAAA;AAAA;AAAA;AA4BO,SAAS,MAAM,kBAAmD,MAAgC;AACrG,MAAI;AACJ,MAAI,UAAU,eAAe;AACzB,WAAO,CAAC,eAAe,GAAG,IAAI;AAC9B,cAAU,CAAC;AAAA,EACf,OAAO;AACH,cAAU;AAAA,EACd;AACA,QAAM,EAAE,QAAQ,gBAAgB,CAAC,EAAE,IAAI;AAEvC,QAAM,SAAgB;AAAA,IAClB,cAAc,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,QAAQ;AAAA,IAC3C;AAAA,IACA,0BAA0B,QAAQ,4BAA4B;AAAA,EAClE;AAEA,aAAW,SAAS,MAAM;AACtB,cAAU,KAAK;AAAA,EACnB;AAEA,MAAI,CAAC,cAAc,QAAQ;AACvB,UAAM,IAAI,mDAAsB,8CAA8C;AAAA,EAClF;AAEA,SAAO;AAEP,WAAS,UAAUA,OAAuB;AACtC,UAAM,UAAU,2BAAU,UAAUA,KAAI;AAExC,QAAI,YAAY,QAAW;AACvB,YAAM,IAAI,mDAAsB,qCAAqC;AAAA,IACzE;AAEA,QAAI,EAAE,WAAW,IAAIA;AACrB,QAAI,eAAe,QAAW;AAC1B,YAAM,IAAI,mDAAsB,wCAAwC;AAAA,IAC5E;AACA,QAAI,CAAC,MAAM,QAAQ,UAAU,GAAG;AAC5B,mBAAa,CAAC,UAAU;AAAA,IAC5B;AAEA,UAAM,EAAE,UAAU,OAAO,SAAS,YAAY,IAAIA;AAGlD,UAAM,YAAyC;AAAA,MAC3C,MAAM;AAAA,QACF,YAAY,aAAa,SAAY,2BAAU,aAAaA,KAAI,IAAI;AAAA,QACpE,WAAW,QAAQ;AAAA,QACnB,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,IACJ;AAEA,eAAW,aAAa,YAAY;AAChC,YAAM,YAAY,2BAAU,aAAa,SAAS,SAAS;AAC3D,oBAAc,KAAK;AAAA,QACf,GAAG;AAAA,QACH,MAAM;AAAA,UACF,GAAG,UAAU;AAAA,UACb,aAAa,UAAU;AAAA,QAC3B;AAAA,QACA,MAAM,UAAU,OAAO,UAAU,OAAO,EAAE,qBAAqB,KAAK,CAAC;AAAA,MACzE,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUC,WAAV;AAoBI,WAAS,UAAuC,MAAgD;AACnG,WAAO;AAAA,MACH,MAAM;AAAA,MACN,GAAG;AAAA,IACP;AAAA,EACJ;AALO,EAAAA,OAAS;AAAA,GApBH;",
|
|
5
|
+
"names": ["data", "Write"]
|
|
6
6
|
}
|
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Invoke } from "#action/request/Invoke.js";
|
|
7
7
|
import type { CommandData } from "#types";
|
|
8
|
-
import { CancelablePromise } from "@matter/general";
|
|
9
8
|
export type InvokeResult<T extends Invoke> = T extends {
|
|
10
9
|
suppressResponse: true;
|
|
11
|
-
} ?
|
|
10
|
+
} ? Promise<void> : AsyncIterable<InvokeResult.Chunk>;
|
|
12
11
|
export declare namespace InvokeResult {
|
|
13
12
|
type Chunk = CommandData[];
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvokeResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/InvokeResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"InvokeResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/InvokeResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS;IAAE,gBAAgB,EAAE,IAAI,CAAA;CAAE,GAC3E,OAAO,CAAC,IAAI,CAAC,GACb,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAExC,yBAAiB,YAAY,CAAC;IAC1B,KAAY,KAAK,GAAG,WAAW,EAAE,CAAC;CACrC"}
|
|
@@ -17,7 +17,7 @@ export interface ReadResult<Chunk = ReadResult.Chunk> extends AsyncIterable<Read
|
|
|
17
17
|
}
|
|
18
18
|
export declare namespace ReadResult {
|
|
19
19
|
type Chunk = Iterable<Report>;
|
|
20
|
-
type Report = AttributeValue |
|
|
20
|
+
type Report = AttributeValue | AttributeStatus | EventValue | EventStatus;
|
|
21
21
|
interface ConcreteAttributePath extends AttributePath {
|
|
22
22
|
nodeId?: NodeId;
|
|
23
23
|
endpointId: EndpointNumber;
|
|
@@ -31,16 +31,11 @@ export declare namespace ReadResult {
|
|
|
31
31
|
version: number;
|
|
32
32
|
tlv: TlvSchema<unknown>;
|
|
33
33
|
}
|
|
34
|
-
interface
|
|
34
|
+
interface AttributeStatus {
|
|
35
35
|
kind: "attr-status";
|
|
36
36
|
path: ConcreteAttributePath;
|
|
37
37
|
status: StatusCode;
|
|
38
|
-
|
|
39
|
-
interface ClusterAttributeStatus {
|
|
40
|
-
kind: "attr-cluster-status";
|
|
41
|
-
path: ConcreteAttributePath;
|
|
42
|
-
status: number;
|
|
43
|
-
clusterStatus: number;
|
|
38
|
+
clusterStatus?: number;
|
|
44
39
|
}
|
|
45
40
|
interface ConcreteEventPath extends EventPath {
|
|
46
41
|
nodeId?: NodeId;
|
|
@@ -57,15 +52,11 @@ export declare namespace ReadResult {
|
|
|
57
52
|
value: unknown;
|
|
58
53
|
tlv: TlvSchema<unknown>;
|
|
59
54
|
}
|
|
60
|
-
interface
|
|
55
|
+
interface EventStatus {
|
|
61
56
|
kind: "event-status";
|
|
62
57
|
path: ConcreteEventPath;
|
|
63
58
|
status: Status;
|
|
64
|
-
|
|
65
|
-
interface ClusterEventStatus {
|
|
66
|
-
kind: "event-cluster-status";
|
|
67
|
-
path: ConcreteEventPath;
|
|
68
|
-
clusterStatus: number;
|
|
59
|
+
clusterStatus?: number;
|
|
69
60
|
}
|
|
70
61
|
}
|
|
71
62
|
//# sourceMappingURL=ReadResult.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/ReadResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACZ,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAE,SAAQ,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;CAAG;AAEhG,yBAAiB,UAAU,CAAC;IACxB,KAAY,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErC,KAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"ReadResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/ReadResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACZ,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAE,SAAQ,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;CAAG;AAEhG,yBAAiB,UAAU,CAAC;IACxB,KAAY,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAErC,KAAY,MAAM,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,CAAC;IAEjF,UAAiB,qBAAsB,SAAQ,aAAa;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,cAAc,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;KAC5B;IAED,UAAiB,cAAc;QAC3B,IAAI,EAAE,YAAY,CAAC;QACnB,IAAI,EAAE,qBAAqB,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KAC3B;IAED,UAAiB,eAAe;QAC5B,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,EAAE,qBAAqB,CAAC;QAC5B,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B;IAED,UAAiB,iBAAkB,SAAQ,SAAS;QAChD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,cAAc,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KACpB;IAED,UAAiB,UAAU;QACvB,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE,WAAW,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,aAAa,CAAC;QACxB,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KAC3B;IAED,UAAiB,WAAW;QACxB,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE,iBAAiB,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B;CACJ"}
|
|
@@ -3,10 +3,24 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
7
|
-
import type {
|
|
8
|
-
|
|
9
|
-
export type WriteResult<T extends Write> = CancelablePromise<T extends {
|
|
6
|
+
import { Write } from "#action/request/Write.js";
|
|
7
|
+
import type { AttributeId, AttributePath, ClusterId, EndpointNumber, NodeId, StatusCode } from "#types";
|
|
8
|
+
export type WriteResult<T extends Write> = Promise<T extends {
|
|
10
9
|
suppressResponse: true;
|
|
11
|
-
} ? void :
|
|
10
|
+
} ? void : WriteResult.AttributeStatus[]>;
|
|
11
|
+
export declare namespace WriteResult {
|
|
12
|
+
interface ConcreteAttributePath extends AttributePath {
|
|
13
|
+
nodeId?: NodeId;
|
|
14
|
+
endpointId: EndpointNumber;
|
|
15
|
+
clusterId: ClusterId;
|
|
16
|
+
attributeId: AttributeId;
|
|
17
|
+
listIndex?: number | null;
|
|
18
|
+
}
|
|
19
|
+
interface AttributeStatus {
|
|
20
|
+
kind: "attr-status";
|
|
21
|
+
path: ConcreteAttributePath;
|
|
22
|
+
status: StatusCode;
|
|
23
|
+
clusterStatus?: number;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
12
26
|
//# sourceMappingURL=WriteResult.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/WriteResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"WriteResult.d.ts","sourceRoot":"","sources":["../../../../src/action/response/WriteResult.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAExG,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI,OAAO,CAC9C,CAAC,SAAS;IAAE,gBAAgB,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,WAAW,CAAC,eAAe,EAAE,CAC9E,CAAC;AAEF,yBAAiB,WAAW,CAAC;IACzB,UAAiB,qBAAsB,SAAQ,aAAa;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,cAAc,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B;IAED,UAAiB,eAAe;QAC5B,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,EAAE,qBAAqB,CAAC;QAC5B,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B;CACJ"}
|
|
@@ -122,7 +122,7 @@ function dataEnforcerFor(schema) {
|
|
|
122
122
|
import_types.StatusCode.UnsupportedAccess
|
|
123
123
|
);
|
|
124
124
|
}
|
|
125
|
-
if (location?.owningFabric && location.owningFabric !== session.fabric) {
|
|
125
|
+
if (location?.owningFabric !== void 0 && location.owningFabric !== session.fabric) {
|
|
126
126
|
throw new import_errors.ReadError(
|
|
127
127
|
location,
|
|
128
128
|
"Permission denied: Owning/accessing fabric mismatch",
|
|
@@ -139,7 +139,7 @@ function dataEnforcerFor(schema) {
|
|
|
139
139
|
if (session.fabric === void 0) {
|
|
140
140
|
return false;
|
|
141
141
|
}
|
|
142
|
-
if (location?.owningFabric && location.owningFabric !== session.fabric) {
|
|
142
|
+
if (location?.owningFabric !== void 0 && location.owningFabric !== session.fabric) {
|
|
143
143
|
return false;
|
|
144
144
|
}
|
|
145
145
|
return wrappedMayRead(session, location);
|
|
@@ -151,7 +151,7 @@ function dataEnforcerFor(schema) {
|
|
|
151
151
|
if (session.fabric === void 0) {
|
|
152
152
|
throw new import_errors.WriteError(location, "Permission denied: No accessing fabric", import_types.StatusCode.UnsupportedAccess);
|
|
153
153
|
}
|
|
154
|
-
if (location?.owningFabric && location.owningFabric !== session.fabric) {
|
|
154
|
+
if (location?.owningFabric !== void 0 && location.owningFabric !== session.fabric) {
|
|
155
155
|
throw new import_errors.WriteError(location, "Permission denied: Owning/accessing fabric mismatch");
|
|
156
156
|
}
|
|
157
157
|
wrappedAuthorizeWrite(session, location);
|
|
@@ -163,7 +163,7 @@ function dataEnforcerFor(schema) {
|
|
|
163
163
|
if (session.fabric === void 0) {
|
|
164
164
|
return false;
|
|
165
165
|
}
|
|
166
|
-
if (location?.owningFabric && location.owningFabric !== session.fabric) {
|
|
166
|
+
if (location?.owningFabric !== void 0 && location.owningFabric !== session.fabric) {
|
|
167
167
|
return false;
|
|
168
168
|
}
|
|
169
169
|
return wrappedMayWrite(session, location);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/action/server/AccessControl.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAAmF;AACnF,mBAA8E;AAC9E,oBAA8E;AAR9E;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,QAAQ,oBAAI,QAA+B;AAkD1C,SAAS,cAAc,QAAgB;AAC1C,MAAI,WAAW,MAAM,IAAI,MAAM;AAC/B,MAAI,aAAa,QAAW;AACxB,eAAW,YAAY,MAAM;AAAA,EACjC;AACA,SAAO;AACX;AAAA,CAEO,CAAUA,mBAAV;AAyGI,MAAK;AAAL,IAAKC,eAAL;AAIH,IAAAA,sBAAA,aAAU,KAAV;AAKA,IAAAA,sBAAA,kBAAe,KAAf;AAKA,IAAAA,sBAAA,gBAAa,KAAb;AAAA,KAdQ,YAAAD,eAAA,cAAAA,eAAA;AAAA,GAzGC;AA2HjB,OAAO,OAAO,aAAa;AAC3B,OAAO,OAAO,cAAc,SAAS;AAErC,SAAS,YAAY,QAA+B;AAChD,MAAI,OAAO,QAAQ,wBAAW,SAAS;AACnC,WAAO,mBAAmB,MAAM;AAAA,EACpC;AACA,SAAO,gBAAgB,MAAM;AACjC;AAEA,SAAS,gBAAgB,QAA+B;AACpD,QAAM,SAAS,UAAU,MAAM;AAE/B,MAAI,UAAsC,CAAC,SAAS,aAAa;AAC7D,QAAI,QAAQ,WAAW,QAAQ,SAAS;AACpC,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,YAAY,OAAO,WAAW,QAAQ,MAAM;AAAA,EAC/D;AAEA,MAAI,WAAuC,CAAC,SAAS,aAAa;AAC9D,QAAI,QAAQ,WAAW,QAAQ,SAAS;AACpC,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,YAAY,OAAO,YAAY,QAAQ,MAAM;AAAA,EAChE;AAEA,MAAI,gBAAyC,CAAC,SAAS,aAAa;AAChE,QAAI,QAAQ,WAAW,QAAQ,SAAS;AACpC;AAAA,IACJ;AAEA,QAAI,QAAQ,YAAY,OAAO,WAAW,QAAQ,MAAM,iBAAiC;AACrF;AAAA,IACJ;AAEA,UAAM,IAAI,wBAAU,UAAU,qBAAqB,wBAAW,iBAAiB;AAAA,EACnF;AAEA,MAAI,iBAA0C,CAAC,SAAS,aAAa;AACjE,QAAI,QAAQ,WAAW,QAAQ,SAAS;AACpC;AAAA,IACJ;AAEA,QAAI,QAAQ,YAAY,OAAO,YAAY,QAAQ,MAAM,iBAAiC;AACtF;AAAA,IACJ;AAEA,UAAM,IAAI,yBAAW,UAAU,qBAAqB,wBAAW,iBAAiB;AAAA,EACpF;AAEA,MAAI,OAAO,OAAO;AACd,UAAM,wBAAwB;AAC9B,UAAM,kBAAkB;AAExB,qBAAiB,CAAC,SAAS,aAAa;AACpC,UAAI,CAAC,QAAQ,WAAW,CAAC,QAAQ,OAAO;AACpC,cAAM,IAAI;AAAA,UACN;AAAA,UACA;AAAA,UACA,wBAAW;AAAA,QACf;AAAA,MACJ;AACA,8BAAwB,SAAS,QAAQ;AAAA,IAC7C;AAEA,eAAW,CAAC,SAAS,aAAa;AAC9B,UAAI,CAAC,QAAQ,WAAW,CAAC,QAAQ,OAAO;AACpC,eAAO;AAAA,MACX;AAEA,aAAO,gBAAgB,SAAS,QAAQ;AAAA,IAC5C;AAAA,EACJ;AAEA,MAAI,OAAO,iBAAiB;AACxB,UAAM,uBAAuB;AAC7B,UAAM,iBAAiB;AACvB,UAAM,wBAAwB;AAC9B,UAAM,kBAAkB;AAExB,oBAAgB,CAAC,SAAS,aAAa;AACnC,UAAI,QAAQ,WAAW,QAAQ,SAAS;AACpC;AAAA,MACJ;AAEA,UAAI,QAAQ,gBAAgB;AACxB,YAAI,QAAQ,WAAW,QAAW;AAC9B,gBAAM,IAAI;AAAA,YACN;AAAA,YACA;AAAA,YACA,wBAAW;AAAA,UACf;AAAA,QACJ;AAEA,YAAI,UAAU,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["AccessControl", "Authority"]
|
|
6
6
|
}
|
|
@@ -3,10 +3,10 @@
|
|
|
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 { Read } from "#action/request/Read.js";
|
|
8
9
|
import { ReadResult } from "#action/response/ReadResult.js";
|
|
9
|
-
import { AccessControl } from "#action/server/AccessControl.js";
|
|
10
10
|
import { DataResponse } from "#action/server/DataResponse.js";
|
|
11
11
|
import { AttributePath, Status } from "#types";
|
|
12
12
|
export declare const GlobalAttrIds: Set<import("#types").AttributeId>;
|
|
@@ -15,13 +15,13 @@ export declare const GlobalAttrIds: Set<import("#types").AttributeId>;
|
|
|
15
15
|
*
|
|
16
16
|
* TODO - profile; ensure nested functions are properly JITed and/or inlined
|
|
17
17
|
*/
|
|
18
|
-
export declare class
|
|
18
|
+
export declare class AttributeReadResponse<SessionT extends InteractionSession = InteractionSession> extends DataResponse<SessionT> {
|
|
19
19
|
#private;
|
|
20
20
|
constructor(node: NodeProtocol, session: SessionT);
|
|
21
21
|
process({ dataVersionFilters, attributeRequests }: Read.Attributes): Generator<ReadResult.Chunk, void, void>;
|
|
22
22
|
get counts(): {
|
|
23
23
|
status: number;
|
|
24
|
-
|
|
24
|
+
success: number;
|
|
25
25
|
existent: number;
|
|
26
26
|
};
|
|
27
27
|
/**
|
|
@@ -62,4 +62,4 @@ export declare class AttributeResponse<SessionT extends AccessControl.Session =
|
|
|
62
62
|
*/
|
|
63
63
|
protected addStatus(path: ReadResult.ConcreteAttributePath, status: Status): void;
|
|
64
64
|
}
|
|
65
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=AttributeReadResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttributeReadResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/AttributeReadResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,YAAY,EAA0C,MAAM,gCAAgC,CAAC;AAItG,OAAO,EACH,aAAa,EAKb,MAAM,EAGT,MAAM,QAAQ,CAAC;AAKhB,eAAO,MAAM,aAAa,mCAAoE,CAAC;AAE/F;;;;GAIG;AACH,qBAAa,qBAAqB,CAC9B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CAC1D,SAAQ,YAAY,CAAC,QAAQ,CAAC;;gBAuBhB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;IAIhD,OAAO,CAAC,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IA2D7G,IAAI,MAAM;;;;MAMT;IAED;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa;IAmCzC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB;IA+G5D;;;;;;;;;OASG;IACH,SAAS,CAAE,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa;IA2BlF;;;;;;OAMG;IACH,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa;IAsC9E;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa;IA2DxF;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,MAAM;CA8B7E"}
|