@matter/types 0.13.0-alpha.0-20250322-f085fa576 → 0.13.0-alpha.0-20250323-770919c6a
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/clusters/commissioner-control.d.ts +1 -1
- package/dist/cjs/clusters/ecosystem-information.d.ts +147 -0
- package/dist/cjs/clusters/ecosystem-information.d.ts.map +1 -1
- package/dist/cjs/clusters/ecosystem-information.js +46 -2
- package/dist/cjs/clusters/ecosystem-information.js.map +1 -1
- package/dist/cjs/tlv/TlvAny.d.ts.map +1 -1
- package/dist/cjs/tlv/TlvAny.js +6 -4
- package/dist/cjs/tlv/TlvAny.js.map +1 -1
- package/dist/esm/clusters/commissioner-control.d.ts +1 -1
- package/dist/esm/clusters/ecosystem-information.d.ts +147 -0
- package/dist/esm/clusters/ecosystem-information.d.ts.map +1 -1
- package/dist/esm/clusters/ecosystem-information.js +46 -2
- package/dist/esm/clusters/ecosystem-information.js.map +1 -1
- package/dist/esm/tlv/TlvAny.d.ts.map +1 -1
- package/dist/esm/tlv/TlvAny.js +7 -5
- package/dist/esm/tlv/TlvAny.js.map +1 -1
- package/package.json +5 -5
- package/src/clusters/commissioner-control.ts +1 -1
- package/src/clusters/ecosystem-information.ts +49 -2
- package/src/tlv/TlvAny.ts +7 -5
|
@@ -254,7 +254,7 @@ export declare namespace CommissionerControl {
|
|
|
254
254
|
*
|
|
255
255
|
* The generalized flow supported by the Commissioner Control Cluster can be seen in the following diagram.
|
|
256
256
|
*
|
|
257
|
-
* Figure
|
|
257
|
+
* Figure 103. Commissioner Control Cluster - General Flow
|
|
258
258
|
*
|
|
259
259
|
* @see {@link MatterSpecification.v13.Core} § 11.26
|
|
260
260
|
*/
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
|
|
7
7
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
8
|
+
import { FabricScopedAttribute } from "../cluster/Cluster.js";
|
|
8
9
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
9
10
|
import { Identity } from "#general";
|
|
10
11
|
export declare namespace EcosystemInformation {
|
|
@@ -129,6 +130,11 @@ export declare namespace EcosystemInformation {
|
|
|
129
130
|
floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
130
131
|
areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
131
132
|
}>>;
|
|
133
|
+
/**
|
|
134
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
135
|
+
*
|
|
136
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
137
|
+
*/
|
|
132
138
|
locationDescriptorLastEdit: import("../tlv/TlvObject.js").FieldType<number | bigint>;
|
|
133
139
|
fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
|
|
134
140
|
}>;
|
|
@@ -144,6 +150,147 @@ export declare namespace EcosystemInformation {
|
|
|
144
150
|
readonly id: 1872;
|
|
145
151
|
readonly name: "EcosystemInformation";
|
|
146
152
|
readonly revision: 1;
|
|
153
|
+
readonly attributes: {
|
|
154
|
+
/**
|
|
155
|
+
* This attribute shall contain the list of logical devices represented by a Bridged Node. Most of the time
|
|
156
|
+
* this will contain a single entry, but may grow with more complex device compositions (e.g. another
|
|
157
|
+
* bridge.)
|
|
158
|
+
*
|
|
159
|
+
* An empty list indicates that the information is not available.
|
|
160
|
+
*
|
|
161
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.1
|
|
162
|
+
*/
|
|
163
|
+
readonly deviceDirectory: FabricScopedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
164
|
+
/**
|
|
165
|
+
* This field shall indicate the device’s name, which is provided externally if the user consents. (For example,
|
|
166
|
+
* provided by the user in an ecosystem specific interface.)
|
|
167
|
+
*
|
|
168
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.1
|
|
169
|
+
*/
|
|
170
|
+
deviceName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
|
|
171
|
+
/**
|
|
172
|
+
* This field shall be present and set if the DeviceName field is present.
|
|
173
|
+
*
|
|
174
|
+
* This field shall indicate the timestamp of when the DeviceName was last modified.
|
|
175
|
+
*
|
|
176
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.2
|
|
177
|
+
*/
|
|
178
|
+
deviceNameLastEdit: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
|
|
179
|
+
/**
|
|
180
|
+
* This field shall indicate the endpoint this EcosystemDeviceStruct is associated with on this Bridge.
|
|
181
|
+
*
|
|
182
|
+
* This field shall be present and set to a valid endpoint if the device is accessible through the bridge.
|
|
183
|
+
*
|
|
184
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.3
|
|
185
|
+
*/
|
|
186
|
+
bridgedEndpoint: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/EndpointNumber.js").EndpointNumber>;
|
|
187
|
+
/**
|
|
188
|
+
* This field shall indicate the endpoint this EcosystemDeviceStruct is associated with on the original device
|
|
189
|
+
* represented by this bridge’s Bridged Node. If this bridge is receiving the device from another bridge, then
|
|
190
|
+
* the OriginalEndpoint field value would be the same on both bridges. This field shall be present and set to a
|
|
191
|
+
* valid endpoint on the original device if that device is a Matter device.
|
|
192
|
+
*
|
|
193
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.4
|
|
194
|
+
*/
|
|
195
|
+
originalEndpoint: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/EndpointNumber.js").EndpointNumber>;
|
|
196
|
+
/**
|
|
197
|
+
* This field shall indicate all of the DeviceTypes within the DeviceTypeList in the Descriptor Cluster
|
|
198
|
+
* associated with this EcosystemDeviceStruct entry.
|
|
199
|
+
*
|
|
200
|
+
* This field shall contain a list of valid device type ids.
|
|
201
|
+
*
|
|
202
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.5
|
|
203
|
+
*/
|
|
204
|
+
deviceTypes: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
205
|
+
deviceType: import("../tlv/TlvObject.js").FieldType<import("../index.js").DeviceTypeId>;
|
|
206
|
+
revision: import("../tlv/TlvObject.js").FieldType<number>;
|
|
207
|
+
}>[]>;
|
|
208
|
+
/**
|
|
209
|
+
* This field shall specify the EcosystemLocationStruct entries in the LocationDirectory attribute associated
|
|
210
|
+
* with this EcosystemDeviceStruct.
|
|
211
|
+
*
|
|
212
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.6
|
|
213
|
+
*/
|
|
214
|
+
uniqueLocationIDs: import("../tlv/TlvObject.js").FieldType<string[]>;
|
|
215
|
+
/**
|
|
216
|
+
* This field shall indicate the timestamp of when the UniqueLocationIDs was last modified.
|
|
217
|
+
*
|
|
218
|
+
* NOTE
|
|
219
|
+
*
|
|
220
|
+
* If multiple server instances update the UniqueLocationIDs field at the same time, it is possible one of the
|
|
221
|
+
* updates will be missed. This is considered an acceptable limitation to reduce the complexity of the design.
|
|
222
|
+
* Since this is meant to be provided from user input, it is unlikely these signals would be happening at one
|
|
223
|
+
* time.
|
|
224
|
+
*
|
|
225
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.7
|
|
226
|
+
*/
|
|
227
|
+
uniqueLocationIDsLastEdit: import("../tlv/TlvObject.js").FieldType<number | bigint>;
|
|
228
|
+
fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
|
|
229
|
+
}>[], any>;
|
|
230
|
+
/**
|
|
231
|
+
* This attribute shall contain the list of rooms, areas and groups associated with the DeviceDirectory
|
|
232
|
+
* entries, and shall NOT contain locations which are dynamically generated and removed by an ecosystem.
|
|
233
|
+
* (E.g. a location that is generated and removed based on the user being home is not permitted. However, an
|
|
234
|
+
* initially generated location name that does not quickly change is acceptable.)
|
|
235
|
+
*
|
|
236
|
+
* An empty list indicates that the information is not available.
|
|
237
|
+
*
|
|
238
|
+
* LocationDirectory entries shall be removed if there is no DeviceDirectory that references it.
|
|
239
|
+
*
|
|
240
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.2
|
|
241
|
+
*/
|
|
242
|
+
readonly locationDirectory: FabricScopedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
243
|
+
/**
|
|
244
|
+
* This field shall indicate a unique identifier for a specific Ecosystem Information Cluster server instance
|
|
245
|
+
* representing the location independent of its LocationDescriptor field.
|
|
246
|
+
*
|
|
247
|
+
* UniqueLocationID can be used by the client to determine if the change is a relocation of the device or just a
|
|
248
|
+
* renaming of the location.
|
|
249
|
+
*
|
|
250
|
+
* No guarantees are given for consistency of the ID between server instances. The same location may be
|
|
251
|
+
* represented by different IDs on different Ecosystem Information Cluster server instances, so only the history
|
|
252
|
+
* from a single server instance should be considered when evaluating a change.
|
|
253
|
+
*
|
|
254
|
+
* UniqueLocationID shall be changed when the LocationDescriptor changes from one existing location to another
|
|
255
|
+
* location as a result of an external interaction. (For example, the user changes the location assignment.)
|
|
256
|
+
*
|
|
257
|
+
* UniqueLocationID shall NOT be changed when the LocationDescriptor changes name, but still represents the same
|
|
258
|
+
* location. (For example, the user renames a room.)
|
|
259
|
+
*
|
|
260
|
+
* UniqueLocationID shall be changed when LocationDescriptor changes as a result of another Ecosystem
|
|
261
|
+
* Information Cluster server instance changing and the UniqueLocationID on the remote server instance also
|
|
262
|
+
* changes.
|
|
263
|
+
*
|
|
264
|
+
* UniqueLocationID shall NOT be changed when LocationDescriptor changes as a result of another Ecosystem
|
|
265
|
+
* Information Cluster server instance changing and the UniqueLocationID on the remote server instance does not
|
|
266
|
+
* change.
|
|
267
|
+
*
|
|
268
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.1
|
|
269
|
+
*/
|
|
270
|
+
uniqueLocationId: import("../tlv/TlvObject.js").FieldType<string>;
|
|
271
|
+
/**
|
|
272
|
+
* This field shall indicate the location (e.g. living room, driveway) and associated metadata that is provided
|
|
273
|
+
* externally if the user consents. (For example, provided by the user in an ecosystem specific interface.)
|
|
274
|
+
*
|
|
275
|
+
* "Location" in this context is typically used by the user’s grouping into rooms, areas or other logical
|
|
276
|
+
* groupings of how devices are used. So a device might be part of multiple such "Locations"s.
|
|
277
|
+
*
|
|
278
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.2
|
|
279
|
+
*/
|
|
280
|
+
locationDescriptor: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
281
|
+
locationName: import("../tlv/TlvObject.js").FieldType<string>;
|
|
282
|
+
floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
283
|
+
areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
284
|
+
}>>;
|
|
285
|
+
/**
|
|
286
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
287
|
+
*
|
|
288
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
289
|
+
*/
|
|
290
|
+
locationDescriptorLastEdit: import("../tlv/TlvObject.js").FieldType<number | bigint>;
|
|
291
|
+
fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
|
|
292
|
+
}>[], any>;
|
|
293
|
+
};
|
|
147
294
|
}, []>;
|
|
148
295
|
/**
|
|
149
296
|
* The Ecosystem Information Cluster provides extended device information for all the logical devices represented by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecosystem-information.d.ts","sourceRoot":"","sources":["../../../src/clusters/ecosystem-information.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"ecosystem-information.d.ts","sourceRoot":"","sources":["../../../src/clusters/ecosystem-information.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAQ9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,yBAAiB,oBAAoB,CAAC;IAClC;;OAEG;IACI,MAAM,kBAAkB;QAC3B;;;;;WAKG;;QAGH;;;;;;WAMG;;QAGH;;;;;;WAMG;;QAGH;;;;;;;WAOG;;QAGH;;;;;;;WAOG;;;;;QAGH;;;;;WAKG;;QAGH;;;;;;;;;;;WAWG;;;MAIL,CAAC;IAEH;;OAEG;IACH,UAAiB,eAAgB,SAAQ,cAAc,CAAC,OAAO,kBAAkB,CAAC;KAAG;IAErF;;OAEG;IACI,MAAM,oBAAoB;QAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;WA0BG;;QAGH;;;;;;;;WAQG;;;;;;QAGH;;;;WAIG;;;MAIL,CAAC;IAEH;;OAEG;IACH,UAAiB,iBAAkB,SAAQ,cAAc,CAAC,OAAO,oBAAoB,CAAC;KAAG;IAEzF;;OAEG;IACI,MAAM,eAAe;;;;;YAMpB;;;;;;;;eAQG;;gBAxJP;;;;;mBAKG;;gBAGH;;;;;;mBAMG;;gBAGH;;;;;;mBAMG;;gBAGH;;;;;;;mBAOG;;gBAGH;;;;;;;mBAOG;;;;;gBAGH;;;;;mBAKG;;gBAGH;;;;;;;;;;;mBAWG;;;;YA8FC;;;;;;;;;;;eAWG;;gBA1FP;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0BG;;gBAGH;;;;;;;;mBAQG;;;;;;gBAGH;;;;mBAIG;;;;;UAqDL,CAAC;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,UAAiB,OAAQ,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;KAAG;IAE7D,MAAM,OAAO,EAAE,OAAyB,CAAC;IACzC,MAAM,QAAQ,SAAU,CAAC;CACnC;AAED,MAAM,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,OAAO,CAAC;AACvE,eAAO,MAAM,2BAA2B,8BAA+B,CAAC"}
|
|
@@ -23,13 +23,15 @@ __export(ecosystem_information_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(ecosystem_information_exports);
|
|
25
25
|
var import_MutableCluster = require("../cluster/mutation/MutableCluster.js");
|
|
26
|
+
var import_Cluster = require("../cluster/Cluster.js");
|
|
27
|
+
var import_TlvArray = require("../tlv/TlvArray.js");
|
|
26
28
|
var import_TlvObject = require("../tlv/TlvObject.js");
|
|
27
29
|
var import_TlvString = require("../tlv/TlvString.js");
|
|
28
30
|
var import_TlvNumber = require("../tlv/TlvNumber.js");
|
|
29
31
|
var import_EndpointNumber = require("../datatype/EndpointNumber.js");
|
|
30
|
-
var import_TlvArray = require("../tlv/TlvArray.js");
|
|
31
32
|
var import_descriptor = require("./descriptor.js");
|
|
32
33
|
var import_FabricIndex = require("../datatype/FabricIndex.js");
|
|
34
|
+
var import_model = require("#model");
|
|
33
35
|
var import_Locationdesc = require("../globals/Locationdesc.js");
|
|
34
36
|
var import_ClusterRegistry = require("../cluster/ClusterRegistry.js");
|
|
35
37
|
/**
|
|
@@ -142,10 +144,52 @@ var EcosystemInformation;
|
|
|
142
144
|
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.2
|
|
143
145
|
*/
|
|
144
146
|
locationDescriptor: (0, import_TlvObject.TlvField)(1, import_Locationdesc.TlvLocationdesc),
|
|
147
|
+
/**
|
|
148
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
149
|
+
*
|
|
150
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
151
|
+
*/
|
|
145
152
|
locationDescriptorLastEdit: (0, import_TlvObject.TlvField)(2, import_TlvNumber.TlvEpochUs),
|
|
146
153
|
fabricIndex: (0, import_TlvObject.TlvField)(254, import_FabricIndex.TlvFabricIndex)
|
|
147
154
|
});
|
|
148
|
-
EcosystemInformation2.ClusterInstance = (0, import_MutableCluster.MutableCluster)({
|
|
155
|
+
EcosystemInformation2.ClusterInstance = (0, import_MutableCluster.MutableCluster)({
|
|
156
|
+
id: 1872,
|
|
157
|
+
name: "EcosystemInformation",
|
|
158
|
+
revision: 1,
|
|
159
|
+
attributes: {
|
|
160
|
+
/**
|
|
161
|
+
* This attribute shall contain the list of logical devices represented by a Bridged Node. Most of the time
|
|
162
|
+
* this will contain a single entry, but may grow with more complex device compositions (e.g. another
|
|
163
|
+
* bridge.)
|
|
164
|
+
*
|
|
165
|
+
* An empty list indicates that the information is not available.
|
|
166
|
+
*
|
|
167
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.1
|
|
168
|
+
*/
|
|
169
|
+
deviceDirectory: (0, import_Cluster.FabricScopedAttribute)(
|
|
170
|
+
0,
|
|
171
|
+
(0, import_TlvArray.TlvArray)(EcosystemInformation2.TlvEcosystemDevice),
|
|
172
|
+
{ persistent: true, default: [], readAcl: import_model.AccessLevel.Manage, writeAcl: import_model.AccessLevel.Manage }
|
|
173
|
+
),
|
|
174
|
+
/**
|
|
175
|
+
* This attribute shall contain the list of rooms, areas and groups associated with the DeviceDirectory
|
|
176
|
+
* entries, and shall NOT contain locations which are dynamically generated and removed by an ecosystem.
|
|
177
|
+
* (E.g. a location that is generated and removed based on the user being home is not permitted. However, an
|
|
178
|
+
* initially generated location name that does not quickly change is acceptable.)
|
|
179
|
+
*
|
|
180
|
+
* An empty list indicates that the information is not available.
|
|
181
|
+
*
|
|
182
|
+
* LocationDirectory entries shall be removed if there is no DeviceDirectory that references it.
|
|
183
|
+
*
|
|
184
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.2
|
|
185
|
+
*/
|
|
186
|
+
locationDirectory: (0, import_Cluster.FabricScopedAttribute)(
|
|
187
|
+
1,
|
|
188
|
+
(0, import_TlvArray.TlvArray)(EcosystemInformation2.TlvEcosystemLocation),
|
|
189
|
+
{ persistent: true, default: [], readAcl: import_model.AccessLevel.Manage, writeAcl: import_model.AccessLevel.Manage }
|
|
190
|
+
)
|
|
191
|
+
}
|
|
192
|
+
});
|
|
149
193
|
EcosystemInformation2.Cluster = EcosystemInformation2.ClusterInstance;
|
|
150
194
|
EcosystemInformation2.Complete = EcosystemInformation2.Cluster;
|
|
151
195
|
})(EcosystemInformation || (EcosystemInformation = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/clusters/ecosystem-information.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,4BAA+B;AAC/B,uBAAsD;AACtD,uBAA0B;AAC1B,uBAA2B;AAC3B,4BAAkC;AAClC,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,4BAA+B;AAC/B,qBAAsC;AACtC,sBAAyB;AACzB,uBAAsD;AACtD,uBAA0B;AAC1B,uBAA2B;AAC3B,4BAAkC;AAClC,wBAA2B;AAC3B,yBAA+B;AAE/B,mBAA4B;AAC5B,0BAAgC;AAEhC,6BAAgC;AArBhC;AAAA;AAAA;AAAA;AAAA;AAuBO,IAAU;AAAA,CAAV,CAAUA,0BAAV;AAII,EAAMA,sBAAA,yBAAqB,4BAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOxC,gBAAY,mCAAiB,GAAG,2BAAU,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASlE,wBAAoB,mCAAiB,GAAG,2BAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASlD,qBAAiB,mCAAiB,GAAG,uCAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUtD,sBAAkB,mCAAiB,GAAG,uCAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUvD,iBAAa,2BAAS,OAAG,0BAAS,6BAAW,aAAa,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ3D,uBAAmB,2BAAS,OAAG,0BAAS,4BAAW,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcrE,+BAA2B,2BAAS,GAAG,2BAAU;AAAA,IAEjD,iBAAa,2BAAS,KAAK,iCAAc;AAAA,EAC7C,CAAC;AAUM,EAAMA,sBAAA,2BAAuB,4BAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA4B1C,sBAAkB,2BAAS,GAAG,2BAAU,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWhE,wBAAoB,2BAAS,GAAG,mCAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAO/C,gCAA4B,2BAAS,GAAG,2BAAU;AAAA,IAElD,iBAAa,2BAAS,KAAK,iCAAc;AAAA,EAC7C,CAAC;AAUM,EAAMA,sBAAA,sBAAkB,sCAAe;AAAA,IAC1C,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IAEV,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUR,qBAAiB;AAAA,QACb;AAAA,YACA,0BAASA,sBAAA,kBAAkB;AAAA,QAC3B,EAAE,YAAY,MAAM,SAAS,CAAC,GAAG,SAAS,yBAAY,QAAQ,UAAU,yBAAY,OAAO;AAAA,MAC/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,uBAAmB;AAAA,QACf;AAAA,YACA,0BAASA,sBAAA,oBAAoB;AAAA,QAC7B,EAAE,YAAY,MAAM,SAAS,CAAC,GAAG,SAAS,yBAAY,QAAQ,UAAU,yBAAY,OAAO;AAAA,MAC/F;AAAA,IACJ;AAAA,EACJ,CAAC;AAmCM,EAAMA,sBAAA,UAAmBA,sBAAA;AACzB,EAAMA,sBAAA,WAAWA,sBAAA;AAAA,GA1NX;AA8NV,MAAM,8BAA8B,qBAAqB;AAChE,uCAAgB,SAAS,qBAAqB,QAAQ;",
|
|
5
5
|
"names": ["EcosystemInformation"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TlvAny.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvAny.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAW,aAAa,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAExG,qBAAa,SAAU,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/C,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAyBzC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IA4BtF,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,SAAS;IAIxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM;IA8BzF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAe7C,kBAAkB,CAAC,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"TlvAny.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvAny.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAW,aAAa,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAExG,qBAAa,SAAU,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/C,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAyBzC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IA4BtF,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,SAAS;IAIxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM;IA8BzF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAe7C,kBAAkB,CAAC,OAAO,EAAE,SAAS;IAerC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,UAAQ;IA6B/F,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,UAAQ;IAiBjE,sBAAsB,CAAC,MAAM,EAAE,cAAc;;;CAgBhD;AAED,eAAO,MAAM,MAAM,WAAkB,CAAC"}
|
package/dist/cjs/tlv/TlvAny.js
CHANGED
|
@@ -136,7 +136,9 @@ class AnySchema extends import_TlvSchema.TlvSchema {
|
|
|
136
136
|
const result = this.decodeGenericElement(reader);
|
|
137
137
|
const nextElement = reader.readTagType();
|
|
138
138
|
if (nextElement !== void 0) {
|
|
139
|
-
throw new import_general.UnexpectedDataError(
|
|
139
|
+
throw new import_general.UnexpectedDataError(
|
|
140
|
+
`Unexpected data left after parsing all data: ${import_general.Diagnostic.json(nextElement)}`
|
|
141
|
+
);
|
|
140
142
|
}
|
|
141
143
|
return result;
|
|
142
144
|
}
|
|
@@ -155,7 +157,7 @@ class AnySchema extends import_TlvSchema.TlvSchema {
|
|
|
155
157
|
case import_TlvCodec.TlvType.Utf8String:
|
|
156
158
|
case import_TlvCodec.TlvType.ByteString:
|
|
157
159
|
if (tag !== void 0 && !allowTag) {
|
|
158
|
-
throw new import_general.UnexpectedDataError(`Tag detected for a native type: ${import_general.
|
|
160
|
+
throw new import_general.UnexpectedDataError(`Tag detected for a native type: ${import_general.Diagnostic.json(element)}`);
|
|
159
161
|
}
|
|
160
162
|
return reader.readPrimitive(element.typeLength);
|
|
161
163
|
case import_TlvCodec.TlvType.Array:
|
|
@@ -177,7 +179,7 @@ class AnySchema extends import_TlvSchema.TlvSchema {
|
|
|
177
179
|
} = element;
|
|
178
180
|
if (type === import_TlvCodec.TlvType.EndOfContainer) break;
|
|
179
181
|
if (tag !== void 0 && !allowTag) {
|
|
180
|
-
throw new import_general.UnexpectedDataError(`Tag detected : ${import_general.
|
|
182
|
+
throw new import_general.UnexpectedDataError(`Tag detected : ${import_general.Diagnostic.json(element)}`);
|
|
181
183
|
}
|
|
182
184
|
result.push(this.decodeGenericElement(reader, element, allowTag));
|
|
183
185
|
}
|
|
@@ -193,7 +195,7 @@ class AnySchema extends import_TlvSchema.TlvSchema {
|
|
|
193
195
|
} = element;
|
|
194
196
|
if (type === import_TlvCodec.TlvType.EndOfContainer) break;
|
|
195
197
|
if (tag === void 0 || tag.id === void 0) {
|
|
196
|
-
throw new import_general.UnexpectedDataError(`Tag missing for a structure: ${import_general.
|
|
198
|
+
throw new import_general.UnexpectedDataError(`Tag missing for a structure: ${import_general.Diagnostic.json(element)}`);
|
|
197
199
|
}
|
|
198
200
|
result[tag.id] = this.decodeGenericElement(reader, element, true);
|
|
199
201
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tlv/TlvAny.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -254,7 +254,7 @@ export declare namespace CommissionerControl {
|
|
|
254
254
|
*
|
|
255
255
|
* The generalized flow supported by the Commissioner Control Cluster can be seen in the following diagram.
|
|
256
256
|
*
|
|
257
|
-
* Figure
|
|
257
|
+
* Figure 103. Commissioner Control Cluster - General Flow
|
|
258
258
|
*
|
|
259
259
|
* @see {@link MatterSpecification.v13.Core} § 11.26
|
|
260
260
|
*/
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
|
|
7
7
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
8
|
+
import { FabricScopedAttribute } from "../cluster/Cluster.js";
|
|
8
9
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
9
10
|
import { Identity } from "#general";
|
|
10
11
|
export declare namespace EcosystemInformation {
|
|
@@ -129,6 +130,11 @@ export declare namespace EcosystemInformation {
|
|
|
129
130
|
floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
130
131
|
areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
131
132
|
}>>;
|
|
133
|
+
/**
|
|
134
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
135
|
+
*
|
|
136
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
137
|
+
*/
|
|
132
138
|
locationDescriptorLastEdit: import("../tlv/TlvObject.js").FieldType<number | bigint>;
|
|
133
139
|
fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
|
|
134
140
|
}>;
|
|
@@ -144,6 +150,147 @@ export declare namespace EcosystemInformation {
|
|
|
144
150
|
readonly id: 1872;
|
|
145
151
|
readonly name: "EcosystemInformation";
|
|
146
152
|
readonly revision: 1;
|
|
153
|
+
readonly attributes: {
|
|
154
|
+
/**
|
|
155
|
+
* This attribute shall contain the list of logical devices represented by a Bridged Node. Most of the time
|
|
156
|
+
* this will contain a single entry, but may grow with more complex device compositions (e.g. another
|
|
157
|
+
* bridge.)
|
|
158
|
+
*
|
|
159
|
+
* An empty list indicates that the information is not available.
|
|
160
|
+
*
|
|
161
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.1
|
|
162
|
+
*/
|
|
163
|
+
readonly deviceDirectory: FabricScopedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
164
|
+
/**
|
|
165
|
+
* This field shall indicate the device’s name, which is provided externally if the user consents. (For example,
|
|
166
|
+
* provided by the user in an ecosystem specific interface.)
|
|
167
|
+
*
|
|
168
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.1
|
|
169
|
+
*/
|
|
170
|
+
deviceName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
|
|
171
|
+
/**
|
|
172
|
+
* This field shall be present and set if the DeviceName field is present.
|
|
173
|
+
*
|
|
174
|
+
* This field shall indicate the timestamp of when the DeviceName was last modified.
|
|
175
|
+
*
|
|
176
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.2
|
|
177
|
+
*/
|
|
178
|
+
deviceNameLastEdit: import("../tlv/TlvObject.js").OptionalFieldType<number | bigint>;
|
|
179
|
+
/**
|
|
180
|
+
* This field shall indicate the endpoint this EcosystemDeviceStruct is associated with on this Bridge.
|
|
181
|
+
*
|
|
182
|
+
* This field shall be present and set to a valid endpoint if the device is accessible through the bridge.
|
|
183
|
+
*
|
|
184
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.3
|
|
185
|
+
*/
|
|
186
|
+
bridgedEndpoint: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/EndpointNumber.js").EndpointNumber>;
|
|
187
|
+
/**
|
|
188
|
+
* This field shall indicate the endpoint this EcosystemDeviceStruct is associated with on the original device
|
|
189
|
+
* represented by this bridge’s Bridged Node. If this bridge is receiving the device from another bridge, then
|
|
190
|
+
* the OriginalEndpoint field value would be the same on both bridges. This field shall be present and set to a
|
|
191
|
+
* valid endpoint on the original device if that device is a Matter device.
|
|
192
|
+
*
|
|
193
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.4
|
|
194
|
+
*/
|
|
195
|
+
originalEndpoint: import("../tlv/TlvObject.js").OptionalFieldType<import("../datatype/EndpointNumber.js").EndpointNumber>;
|
|
196
|
+
/**
|
|
197
|
+
* This field shall indicate all of the DeviceTypes within the DeviceTypeList in the Descriptor Cluster
|
|
198
|
+
* associated with this EcosystemDeviceStruct entry.
|
|
199
|
+
*
|
|
200
|
+
* This field shall contain a list of valid device type ids.
|
|
201
|
+
*
|
|
202
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.5
|
|
203
|
+
*/
|
|
204
|
+
deviceTypes: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
205
|
+
deviceType: import("../tlv/TlvObject.js").FieldType<import("../index.js").DeviceTypeId>;
|
|
206
|
+
revision: import("../tlv/TlvObject.js").FieldType<number>;
|
|
207
|
+
}>[]>;
|
|
208
|
+
/**
|
|
209
|
+
* This field shall specify the EcosystemLocationStruct entries in the LocationDirectory attribute associated
|
|
210
|
+
* with this EcosystemDeviceStruct.
|
|
211
|
+
*
|
|
212
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.6
|
|
213
|
+
*/
|
|
214
|
+
uniqueLocationIDs: import("../tlv/TlvObject.js").FieldType<string[]>;
|
|
215
|
+
/**
|
|
216
|
+
* This field shall indicate the timestamp of when the UniqueLocationIDs was last modified.
|
|
217
|
+
*
|
|
218
|
+
* NOTE
|
|
219
|
+
*
|
|
220
|
+
* If multiple server instances update the UniqueLocationIDs field at the same time, it is possible one of the
|
|
221
|
+
* updates will be missed. This is considered an acceptable limitation to reduce the complexity of the design.
|
|
222
|
+
* Since this is meant to be provided from user input, it is unlikely these signals would be happening at one
|
|
223
|
+
* time.
|
|
224
|
+
*
|
|
225
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.1.7
|
|
226
|
+
*/
|
|
227
|
+
uniqueLocationIDsLastEdit: import("../tlv/TlvObject.js").FieldType<number | bigint>;
|
|
228
|
+
fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
|
|
229
|
+
}>[], any>;
|
|
230
|
+
/**
|
|
231
|
+
* This attribute shall contain the list of rooms, areas and groups associated with the DeviceDirectory
|
|
232
|
+
* entries, and shall NOT contain locations which are dynamically generated and removed by an ecosystem.
|
|
233
|
+
* (E.g. a location that is generated and removed based on the user being home is not permitted. However, an
|
|
234
|
+
* initially generated location name that does not quickly change is acceptable.)
|
|
235
|
+
*
|
|
236
|
+
* An empty list indicates that the information is not available.
|
|
237
|
+
*
|
|
238
|
+
* LocationDirectory entries shall be removed if there is no DeviceDirectory that references it.
|
|
239
|
+
*
|
|
240
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.2
|
|
241
|
+
*/
|
|
242
|
+
readonly locationDirectory: FabricScopedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
243
|
+
/**
|
|
244
|
+
* This field shall indicate a unique identifier for a specific Ecosystem Information Cluster server instance
|
|
245
|
+
* representing the location independent of its LocationDescriptor field.
|
|
246
|
+
*
|
|
247
|
+
* UniqueLocationID can be used by the client to determine if the change is a relocation of the device or just a
|
|
248
|
+
* renaming of the location.
|
|
249
|
+
*
|
|
250
|
+
* No guarantees are given for consistency of the ID between server instances. The same location may be
|
|
251
|
+
* represented by different IDs on different Ecosystem Information Cluster server instances, so only the history
|
|
252
|
+
* from a single server instance should be considered when evaluating a change.
|
|
253
|
+
*
|
|
254
|
+
* UniqueLocationID shall be changed when the LocationDescriptor changes from one existing location to another
|
|
255
|
+
* location as a result of an external interaction. (For example, the user changes the location assignment.)
|
|
256
|
+
*
|
|
257
|
+
* UniqueLocationID shall NOT be changed when the LocationDescriptor changes name, but still represents the same
|
|
258
|
+
* location. (For example, the user renames a room.)
|
|
259
|
+
*
|
|
260
|
+
* UniqueLocationID shall be changed when LocationDescriptor changes as a result of another Ecosystem
|
|
261
|
+
* Information Cluster server instance changing and the UniqueLocationID on the remote server instance also
|
|
262
|
+
* changes.
|
|
263
|
+
*
|
|
264
|
+
* UniqueLocationID shall NOT be changed when LocationDescriptor changes as a result of another Ecosystem
|
|
265
|
+
* Information Cluster server instance changing and the UniqueLocationID on the remote server instance does not
|
|
266
|
+
* change.
|
|
267
|
+
*
|
|
268
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.1
|
|
269
|
+
*/
|
|
270
|
+
uniqueLocationId: import("../tlv/TlvObject.js").FieldType<string>;
|
|
271
|
+
/**
|
|
272
|
+
* This field shall indicate the location (e.g. living room, driveway) and associated metadata that is provided
|
|
273
|
+
* externally if the user consents. (For example, provided by the user in an ecosystem specific interface.)
|
|
274
|
+
*
|
|
275
|
+
* "Location" in this context is typically used by the user’s grouping into rooms, areas or other logical
|
|
276
|
+
* groupings of how devices are used. So a device might be part of multiple such "Locations"s.
|
|
277
|
+
*
|
|
278
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.2
|
|
279
|
+
*/
|
|
280
|
+
locationDescriptor: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
281
|
+
locationName: import("../tlv/TlvObject.js").FieldType<string>;
|
|
282
|
+
floorNumber: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
283
|
+
areaType: import("../tlv/TlvObject.js").FieldType<number | null>;
|
|
284
|
+
}>>;
|
|
285
|
+
/**
|
|
286
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
287
|
+
*
|
|
288
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
289
|
+
*/
|
|
290
|
+
locationDescriptorLastEdit: import("../tlv/TlvObject.js").FieldType<number | bigint>;
|
|
291
|
+
fabricIndex: import("../tlv/TlvObject.js").FieldType<import("../datatype/FabricIndex.js").FabricIndex>;
|
|
292
|
+
}>[], any>;
|
|
293
|
+
};
|
|
147
294
|
}, []>;
|
|
148
295
|
/**
|
|
149
296
|
* The Ecosystem Information Cluster provides extended device information for all the logical devices represented by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecosystem-information.d.ts","sourceRoot":"","sources":["../../../src/clusters/ecosystem-information.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"ecosystem-information.d.ts","sourceRoot":"","sources":["../../../src/clusters/ecosystem-information.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAQ9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,yBAAiB,oBAAoB,CAAC;IAClC;;OAEG;IACI,MAAM,kBAAkB;QAC3B;;;;;WAKG;;QAGH;;;;;;WAMG;;QAGH;;;;;;WAMG;;QAGH;;;;;;;WAOG;;QAGH;;;;;;;WAOG;;;;;QAGH;;;;;WAKG;;QAGH;;;;;;;;;;;WAWG;;;MAIL,CAAC;IAEH;;OAEG;IACH,UAAiB,eAAgB,SAAQ,cAAc,CAAC,OAAO,kBAAkB,CAAC;KAAG;IAErF;;OAEG;IACI,MAAM,oBAAoB;QAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;WA0BG;;QAGH;;;;;;;;WAQG;;;;;;QAGH;;;;WAIG;;;MAIL,CAAC;IAEH;;OAEG;IACH,UAAiB,iBAAkB,SAAQ,cAAc,CAAC,OAAO,oBAAoB,CAAC;KAAG;IAEzF;;OAEG;IACI,MAAM,eAAe;;;;;YAMpB;;;;;;;;eAQG;;gBAxJP;;;;;mBAKG;;gBAGH;;;;;;mBAMG;;gBAGH;;;;;;mBAMG;;gBAGH;;;;;;;mBAOG;;gBAGH;;;;;;;mBAOG;;;;;gBAGH;;;;;mBAKG;;gBAGH;;;;;;;;;;;mBAWG;;;;YA8FC;;;;;;;;;;;eAWG;;gBA1FP;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0BG;;gBAGH;;;;;;;;mBAQG;;;;;;gBAGH;;;;mBAIG;;;;;UAqDL,CAAC;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,UAAiB,OAAQ,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;KAAG;IAE7D,MAAM,OAAO,EAAE,OAAyB,CAAC;IACzC,MAAM,QAAQ,SAAU,CAAC;CACnC;AAED,MAAM,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,OAAO,CAAC;AACvE,eAAO,MAAM,2BAA2B,8BAA+B,CAAC"}
|
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
7
|
+
import { FabricScopedAttribute } from "../cluster/Cluster.js";
|
|
8
|
+
import { TlvArray } from "../tlv/TlvArray.js";
|
|
7
9
|
import { TlvOptionalField, TlvField, TlvObject } from "../tlv/TlvObject.js";
|
|
8
10
|
import { TlvString } from "../tlv/TlvString.js";
|
|
9
11
|
import { TlvEpochUs } from "../tlv/TlvNumber.js";
|
|
10
12
|
import { TlvEndpointNumber } from "../datatype/EndpointNumber.js";
|
|
11
|
-
import { TlvArray } from "../tlv/TlvArray.js";
|
|
12
13
|
import { Descriptor } from "./descriptor.js";
|
|
13
14
|
import { TlvFabricIndex } from "../datatype/FabricIndex.js";
|
|
15
|
+
import { AccessLevel } from "#model";
|
|
14
16
|
import { TlvLocationdesc } from "../globals/Locationdesc.js";
|
|
15
17
|
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
|
|
16
18
|
var EcosystemInformation;
|
|
@@ -118,10 +120,52 @@ var EcosystemInformation;
|
|
|
118
120
|
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.2
|
|
119
121
|
*/
|
|
120
122
|
locationDescriptor: TlvField(1, TlvLocationdesc),
|
|
123
|
+
/**
|
|
124
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
125
|
+
*
|
|
126
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
127
|
+
*/
|
|
121
128
|
locationDescriptorLastEdit: TlvField(2, TlvEpochUs),
|
|
122
129
|
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
123
130
|
});
|
|
124
|
-
EcosystemInformation2.ClusterInstance = MutableCluster({
|
|
131
|
+
EcosystemInformation2.ClusterInstance = MutableCluster({
|
|
132
|
+
id: 1872,
|
|
133
|
+
name: "EcosystemInformation",
|
|
134
|
+
revision: 1,
|
|
135
|
+
attributes: {
|
|
136
|
+
/**
|
|
137
|
+
* This attribute shall contain the list of logical devices represented by a Bridged Node. Most of the time
|
|
138
|
+
* this will contain a single entry, but may grow with more complex device compositions (e.g. another
|
|
139
|
+
* bridge.)
|
|
140
|
+
*
|
|
141
|
+
* An empty list indicates that the information is not available.
|
|
142
|
+
*
|
|
143
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.1
|
|
144
|
+
*/
|
|
145
|
+
deviceDirectory: FabricScopedAttribute(
|
|
146
|
+
0,
|
|
147
|
+
TlvArray(EcosystemInformation2.TlvEcosystemDevice),
|
|
148
|
+
{ persistent: true, default: [], readAcl: AccessLevel.Manage, writeAcl: AccessLevel.Manage }
|
|
149
|
+
),
|
|
150
|
+
/**
|
|
151
|
+
* This attribute shall contain the list of rooms, areas and groups associated with the DeviceDirectory
|
|
152
|
+
* entries, and shall NOT contain locations which are dynamically generated and removed by an ecosystem.
|
|
153
|
+
* (E.g. a location that is generated and removed based on the user being home is not permitted. However, an
|
|
154
|
+
* initially generated location name that does not quickly change is acceptable.)
|
|
155
|
+
*
|
|
156
|
+
* An empty list indicates that the information is not available.
|
|
157
|
+
*
|
|
158
|
+
* LocationDirectory entries shall be removed if there is no DeviceDirectory that references it.
|
|
159
|
+
*
|
|
160
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.2
|
|
161
|
+
*/
|
|
162
|
+
locationDirectory: FabricScopedAttribute(
|
|
163
|
+
1,
|
|
164
|
+
TlvArray(EcosystemInformation2.TlvEcosystemLocation),
|
|
165
|
+
{ persistent: true, default: [], readAcl: AccessLevel.Manage, writeAcl: AccessLevel.Manage }
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
});
|
|
125
169
|
EcosystemInformation2.Cluster = EcosystemInformation2.ClusterInstance;
|
|
126
170
|
EcosystemInformation2.Complete = EcosystemInformation2.Cluster;
|
|
127
171
|
})(EcosystemInformation || (EcosystemInformation = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/clusters/ecosystem-information.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB,UAAU,iBAAiB;AACtD,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAClC,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;AACtC,SAAS,gBAAgB;AACzB,SAAS,kBAAkB,UAAU,iBAAiB;AACtD,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAEhC,SAAS,uBAAuB;AAEzB,IAAU;AAAA,CAAV,CAAUA,0BAAV;AAII,EAAMA,sBAAA,qBAAqB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOxC,YAAY,iBAAiB,GAAG,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASlE,oBAAoB,iBAAiB,GAAG,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASlD,iBAAiB,iBAAiB,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUtD,kBAAkB,iBAAiB,GAAG,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUvD,aAAa,SAAS,GAAG,SAAS,WAAW,aAAa,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ3D,mBAAmB,SAAS,GAAG,SAAS,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcrE,2BAA2B,SAAS,GAAG,UAAU;AAAA,IAEjD,aAAa,SAAS,KAAK,cAAc;AAAA,EAC7C,CAAC;AAUM,EAAMA,sBAAA,uBAAuB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA4B1C,kBAAkB,SAAS,GAAG,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWhE,oBAAoB,SAAS,GAAG,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAO/C,4BAA4B,SAAS,GAAG,UAAU;AAAA,IAElD,aAAa,SAAS,KAAK,cAAc;AAAA,EAC7C,CAAC;AAUM,EAAMA,sBAAA,kBAAkB,eAAe;AAAA,IAC1C,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IAEV,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUR,iBAAiB;AAAA,QACb;AAAA,QACA,SAASA,sBAAA,kBAAkB;AAAA,QAC3B,EAAE,YAAY,MAAM,SAAS,CAAC,GAAG,SAAS,YAAY,QAAQ,UAAU,YAAY,OAAO;AAAA,MAC/F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcA,mBAAmB;AAAA,QACf;AAAA,QACA,SAASA,sBAAA,oBAAoB;AAAA,QAC7B,EAAE,YAAY,MAAM,SAAS,CAAC,GAAG,SAAS,YAAY,QAAQ,UAAU,YAAY,OAAO;AAAA,MAC/F;AAAA,IACJ;AAAA,EACJ,CAAC;AAmCM,EAAMA,sBAAA,UAAmBA,sBAAA;AACzB,EAAMA,sBAAA,WAAWA,sBAAA;AAAA,GA1NX;AA8NV,MAAM,8BAA8B,qBAAqB;AAChE,gBAAgB,SAAS,qBAAqB,QAAQ;",
|
|
5
5
|
"names": ["EcosystemInformation"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TlvAny.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvAny.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAW,aAAa,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAExG,qBAAa,SAAU,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/C,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAyBzC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IA4BtF,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,SAAS;IAIxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM;IA8BzF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAe7C,kBAAkB,CAAC,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"TlvAny.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvAny.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAW,aAAa,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAExG,qBAAa,SAAU,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC/C,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAyBzC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IA4BtF,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,SAAS;IAIxF,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM;IA8BzF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAe7C,kBAAkB,CAAC,OAAO,EAAE,SAAS;IAerC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,UAAQ;IA6B/F,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,UAAQ;IAiBjE,sBAAsB,CAAC,MAAM,EAAE,cAAc;;;CAgBhD;AAED,eAAO,MAAM,MAAM,WAAkB,CAAC"}
|
package/dist/esm/tlv/TlvAny.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { Diagnostic, UnexpectedDataError } from "#general";
|
|
7
7
|
import { ValidationDatatypeMismatchError } from "../common/ValidationError.js";
|
|
8
8
|
import { TlvCodec, TlvType } from "./TlvCodec.js";
|
|
9
9
|
import { TlvArrayReader, TlvSchema } from "./TlvSchema.js";
|
|
@@ -112,7 +112,9 @@ class AnySchema extends TlvSchema {
|
|
|
112
112
|
const result = this.decodeGenericElement(reader);
|
|
113
113
|
const nextElement = reader.readTagType();
|
|
114
114
|
if (nextElement !== void 0) {
|
|
115
|
-
throw new UnexpectedDataError(
|
|
115
|
+
throw new UnexpectedDataError(
|
|
116
|
+
`Unexpected data left after parsing all data: ${Diagnostic.json(nextElement)}`
|
|
117
|
+
);
|
|
116
118
|
}
|
|
117
119
|
return result;
|
|
118
120
|
}
|
|
@@ -131,7 +133,7 @@ class AnySchema extends TlvSchema {
|
|
|
131
133
|
case TlvType.Utf8String:
|
|
132
134
|
case TlvType.ByteString:
|
|
133
135
|
if (tag !== void 0 && !allowTag) {
|
|
134
|
-
throw new UnexpectedDataError(`Tag detected for a native type: ${
|
|
136
|
+
throw new UnexpectedDataError(`Tag detected for a native type: ${Diagnostic.json(element)}`);
|
|
135
137
|
}
|
|
136
138
|
return reader.readPrimitive(element.typeLength);
|
|
137
139
|
case TlvType.Array:
|
|
@@ -153,7 +155,7 @@ class AnySchema extends TlvSchema {
|
|
|
153
155
|
} = element;
|
|
154
156
|
if (type === TlvType.EndOfContainer) break;
|
|
155
157
|
if (tag !== void 0 && !allowTag) {
|
|
156
|
-
throw new UnexpectedDataError(`Tag detected : ${
|
|
158
|
+
throw new UnexpectedDataError(`Tag detected : ${Diagnostic.json(element)}`);
|
|
157
159
|
}
|
|
158
160
|
result.push(this.decodeGenericElement(reader, element, allowTag));
|
|
159
161
|
}
|
|
@@ -169,7 +171,7 @@ class AnySchema extends TlvSchema {
|
|
|
169
171
|
} = element;
|
|
170
172
|
if (type === TlvType.EndOfContainer) break;
|
|
171
173
|
if (tag === void 0 || tag.id === void 0) {
|
|
172
|
-
throw new UnexpectedDataError(`Tag missing for a structure: ${
|
|
174
|
+
throw new UnexpectedDataError(`Tag missing for a structure: ${Diagnostic.json(element)}`);
|
|
173
175
|
}
|
|
174
176
|
result[tag.id] = this.decodeGenericElement(reader, element, true);
|
|
175
177
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tlv/TlvAny.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,2BAA2B;AAChD,SAAS,uCAAuC;AAChD,SAAS,UAAkB,eAA8B;AACzD,SAAS,gBAAuC,iBAAuC;AAEhF,MAAM,kBAAkB,UAAqB;AAAA,EAChD,qBAAqB,WAA8B;AAC/C,QAAI,aAAa;AACjB,cAAU,QAAQ,CAAC,EAAE,KAAK,YAAY,MAAM,MAAM;AAC9C,cAAQ,WAAW,MAAM;AAAA,QACrB,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AACT,wBAAc,SAAS,iBAAiB,GAAG;AAC3C;AAAA,QACJ,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AACT,wBAAc,SAAS,iBAAiB,GAAG;AAC3C,wBAAc,SAAS,uBAAuB,YAAY,KAAK;AAC/D;AAAA,MACR;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EAES,kBAAkB,QAAmB,WAAsB,aAA4B;AAC5F,cAAU,QAAQ,CAAC,EAAE,KAAK,YAAY,MAAM,MAAM;AAC9C,UAAI,gBAAgB,QAAW;AAE3B,cAAM;AACN,sBAAc;AAAA,MAClB;AACA,cAAQ,WAAW,MAAM;AAAA,QACrB,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AACT,iBAAO,SAAS,YAAY,eAAe,GAAG;AAC9C;AAAA,QACJ,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AAAA,QACb,KAAK,QAAQ;AACT,iBAAO,SAAS,YAAY,eAAe,GAAG;AAC9C,iBAAO,eAAe,YAAY,KAAK;AACvC;AAAA,MACR;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAES,uBAAuB,QAAmB,YAAsC;AACrF,WAAO,KAAK,kBAAkB,QAAQ,YAAY,IAAI,MAAuB,CAAC;AAAA,EAClF;AAAA,EAEA,kBAAkB,QAAmB,YAA2B,WAAsB,KAAc;AAChG,YAAQ,WAAW,MAAM;AAAA,MACrB,KAAK,QAAQ;AACT,kBAAU,KAAK,EAAE,KAAK,YAAY,OAAO,KAAK,CAAC;AAC/C;AAAA,MACJ,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AACT,kBAAU,KAAK,EAAE,KAAK,YAAY,OAAO,OAAO,cAAc,UAAU,EAAE,CAAC;AAC3E;AAAA,MACJ,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AACT,kBAAU,KAAK,EAAE,KAAK,WAAW,CAAC;AAClC,eAAO,MAAM;AACT,gBAAM,EAAE,KAAK,YAAY,YAAY,kBAAkB,IAAI,OAAO,YAAY;AAC9E,eAAK,kBAAkB,QAAQ,mBAAmB,WAAW,UAAU;AACvE,cAAI,kBAAkB,SAAS,QAAQ,eAAgB;AAAA,QAC3D;AACA;AAAA,MACJ,KAAK,QAAQ;AACT,kBAAU,KAAK,EAAE,KAAK,WAAW,CAAC;AAClC;AAAA,IACR;AACA,WAAO;AAAA,EACX;AAAA,EAES,SAAS,WAA4B;AAC1C,QAAI,CAAC,MAAM,QAAQ,SAAS;AACxB,YAAM,IAAI,gCAAgC,2BAA2B,OAAO,SAAS,GAAG;AAC5F,cAAU,QAAQ,CAAC,EAAE,WAAW,MAAM;AAClC,UAAI,CAAC,cAAc,OAAO,eAAe;AACrC,cAAM,IAAI;AAAA,UACN,oDAAoD,OAAO,UAAU;AAAA,QACzE;AACJ,UAAI,OAAO,WAAW,SAAS;AAC3B,cAAM,IAAI;AAAA,UACN,wDAAwD,OAAO,WAAW,IAAI;AAAA,QAClF;AAAA,IACR,CAAC;AAAA,EACL;AAAA,EAEA,mBAAmB,SAAoB;AACnC,QAAI,QAAQ,WAAW,GAAG;AACtB,aAAO;AAAA,IACX;AACA,UAAM,SAAS,IAAI,eAAe,OAAO;AACzC,UAAM,SAAS,KAAK,qBAAqB,MAAM;AAC/C,UAAM,cAAc,OAAO,YAAY;AACvC,QAAI,gBAAgB,QAAW;AAC3B,YAAM,IAAI;AAAA,QACN,gDAAgD,WAAW,KAAK,WAAW,CAAC;AAAA,MAChF;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,qBAAqB,QAAwB,gBAAkC,WAAW,OAAO;AAC7F,UAAM,UAAU,kBAAkB,OAAO,YAAY;AACrD,UAAM;AAAA,MACF;AAAA,MACA,YAAY,EAAE,KAAK;AAAA,IACvB,IAAI;AAEJ,YAAQ,MAAM;AAAA,MACV,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AACT,YAAI,QAAQ,UAAa,CAAC,UAAU;AAChC,gBAAM,IAAI,oBAAoB,mCAAmC,WAAW,KAAK,OAAO,CAAC,EAAE;AAAA,QAC/F;AACA,eAAO,OAAO,cAAc,QAAQ,UAAU;AAAA,MAClD,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ;AACT,eAAO,KAAK,yBAAyB,QAAQ,SAAS,QAAQ,IAAI;AAAA,MACtE,KAAK,QAAQ;AACT,eAAO,KAAK,uBAAuB,MAAM;AAAA,MAC7C;AACI,cAAM,IAAI,oBAAoB,iBAAiB,IAAI,EAAE;AAAA,IAC7D;AAAA,EACJ;AAAA,EAEA,yBAAyB,QAAwB,WAAW,OAAO;AAC/D,UAAM,SAAS,IAAI,MAAW;AAC9B,WAAO,MAAM;AACT,YAAM,UAAU,OAAO,YAAY;AACnC,YAAM;AAAA,QACF;AAAA,QACA,YAAY,EAAE,KAAK;AAAA,MACvB,IAAI;AACJ,UAAI,SAAS,QAAQ,eAAgB;AACrC,UAAI,QAAQ,UAAa,CAAC,UAAU;AAChC,cAAM,IAAI,oBAAoB,kBAAkB,WAAW,KAAK,OAAO,CAAC,EAAE;AAAA,MAC9E;AACA,aAAO,KAAK,KAAK,qBAAqB,QAAQ,SAAS,QAAQ,CAAC;AAAA,IACpE;AACA,WAAO;AAAA,EACX;AAAA,EAEA,uBAAuB,QAAwB;AAC3C,UAAM,SAAiC,CAAC;AACxC,WAAO,MAAM;AACT,YAAM,UAAU,OAAO,YAAY;AACnC,YAAM;AAAA,QACF;AAAA,QACA,YAAY,EAAE,KAAK;AAAA,MACvB,IAAI;AACJ,UAAI,SAAS,QAAQ,eAAgB;AACrC,UAAI,QAAQ,UAAa,IAAI,OAAO,QAAW;AAC3C,cAAM,IAAI,oBAAoB,gCAAgC,WAAW,KAAK,OAAO,CAAC,EAAE;AAAA,MAC5F;AACA,aAAO,IAAI,EAAE,IAAI,KAAK,qBAAqB,QAAQ,SAAS,IAAI;AAAA,IACpE;AACA,WAAO;AAAA,EACX;AACJ;AAEO,MAAM,SAAS,IAAI,UAAU;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/types",
|
|
3
|
-
"version": "0.13.0-alpha.0-
|
|
3
|
+
"version": "0.13.0-alpha.0-20250323-770919c6a",
|
|
4
4
|
"description": "Definitions for Matter application",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@matter/general": "0.13.0-alpha.0-
|
|
37
|
-
"@matter/model": "0.13.0-alpha.0-
|
|
36
|
+
"@matter/general": "0.13.0-alpha.0-20250323-770919c6a",
|
|
37
|
+
"@matter/model": "0.13.0-alpha.0-20250323-770919c6a",
|
|
38
38
|
"@noble/curves": "^1.8.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@matter/tools": "0.13.0-alpha.0-
|
|
42
|
-
"@matter/testing": "0.13.0-alpha.0-
|
|
41
|
+
"@matter/tools": "0.13.0-alpha.0-20250323-770919c6a",
|
|
42
|
+
"@matter/testing": "0.13.0-alpha.0-20250323-770919c6a"
|
|
43
43
|
},
|
|
44
44
|
"files": [
|
|
45
45
|
"dist/**/*",
|
|
@@ -267,7 +267,7 @@ export namespace CommissionerControl {
|
|
|
267
267
|
*
|
|
268
268
|
* The generalized flow supported by the Commissioner Control Cluster can be seen in the following diagram.
|
|
269
269
|
*
|
|
270
|
-
* Figure
|
|
270
|
+
* Figure 103. Commissioner Control Cluster - General Flow
|
|
271
271
|
*
|
|
272
272
|
* @see {@link MatterSpecification.v13.Core} § 11.26
|
|
273
273
|
*/
|
|
@@ -7,14 +7,16 @@
|
|
|
7
7
|
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
|
|
8
8
|
|
|
9
9
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
10
|
+
import { FabricScopedAttribute } from "../cluster/Cluster.js";
|
|
11
|
+
import { TlvArray } from "../tlv/TlvArray.js";
|
|
10
12
|
import { TlvOptionalField, TlvField, TlvObject } from "../tlv/TlvObject.js";
|
|
11
13
|
import { TlvString } from "../tlv/TlvString.js";
|
|
12
14
|
import { TlvEpochUs } from "../tlv/TlvNumber.js";
|
|
13
15
|
import { TlvEndpointNumber } from "../datatype/EndpointNumber.js";
|
|
14
|
-
import { TlvArray } from "../tlv/TlvArray.js";
|
|
15
16
|
import { Descriptor } from "./descriptor.js";
|
|
16
17
|
import { TlvFabricIndex } from "../datatype/FabricIndex.js";
|
|
17
18
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
19
|
+
import { AccessLevel } from "#model";
|
|
18
20
|
import { TlvLocationdesc } from "../globals/Locationdesc.js";
|
|
19
21
|
import { Identity } from "#general";
|
|
20
22
|
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
|
|
@@ -144,7 +146,13 @@ export namespace EcosystemInformation {
|
|
|
144
146
|
*/
|
|
145
147
|
locationDescriptor: TlvField(1, TlvLocationdesc),
|
|
146
148
|
|
|
149
|
+
/**
|
|
150
|
+
* This field shall indicate the timestamp of when the LocationDescriptor was last modified.
|
|
151
|
+
*
|
|
152
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.4.2.3
|
|
153
|
+
*/
|
|
147
154
|
locationDescriptorLastEdit: TlvField(2, TlvEpochUs),
|
|
155
|
+
|
|
148
156
|
fabricIndex: TlvField(254, TlvFabricIndex)
|
|
149
157
|
});
|
|
150
158
|
|
|
@@ -156,7 +164,46 @@ export namespace EcosystemInformation {
|
|
|
156
164
|
/**
|
|
157
165
|
* @see {@link Cluster}
|
|
158
166
|
*/
|
|
159
|
-
export const ClusterInstance = MutableCluster({
|
|
167
|
+
export const ClusterInstance = MutableCluster({
|
|
168
|
+
id: 0x750,
|
|
169
|
+
name: "EcosystemInformation",
|
|
170
|
+
revision: 1,
|
|
171
|
+
|
|
172
|
+
attributes: {
|
|
173
|
+
/**
|
|
174
|
+
* This attribute shall contain the list of logical devices represented by a Bridged Node. Most of the time
|
|
175
|
+
* this will contain a single entry, but may grow with more complex device compositions (e.g. another
|
|
176
|
+
* bridge.)
|
|
177
|
+
*
|
|
178
|
+
* An empty list indicates that the information is not available.
|
|
179
|
+
*
|
|
180
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.1
|
|
181
|
+
*/
|
|
182
|
+
deviceDirectory: FabricScopedAttribute(
|
|
183
|
+
0x0,
|
|
184
|
+
TlvArray(TlvEcosystemDevice),
|
|
185
|
+
{ persistent: true, default: [], readAcl: AccessLevel.Manage, writeAcl: AccessLevel.Manage }
|
|
186
|
+
),
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* This attribute shall contain the list of rooms, areas and groups associated with the DeviceDirectory
|
|
190
|
+
* entries, and shall NOT contain locations which are dynamically generated and removed by an ecosystem.
|
|
191
|
+
* (E.g. a location that is generated and removed based on the user being home is not permitted. However, an
|
|
192
|
+
* initially generated location name that does not quickly change is acceptable.)
|
|
193
|
+
*
|
|
194
|
+
* An empty list indicates that the information is not available.
|
|
195
|
+
*
|
|
196
|
+
* LocationDirectory entries shall be removed if there is no DeviceDirectory that references it.
|
|
197
|
+
*
|
|
198
|
+
* @see {@link MatterSpecification.v13.Core} § 9.18.5.2
|
|
199
|
+
*/
|
|
200
|
+
locationDirectory: FabricScopedAttribute(
|
|
201
|
+
0x1,
|
|
202
|
+
TlvArray(TlvEcosystemLocation),
|
|
203
|
+
{ persistent: true, default: [], readAcl: AccessLevel.Manage, writeAcl: AccessLevel.Manage }
|
|
204
|
+
)
|
|
205
|
+
}
|
|
206
|
+
});
|
|
160
207
|
|
|
161
208
|
/**
|
|
162
209
|
* The Ecosystem Information Cluster provides extended device information for all the logical devices represented by
|
package/src/tlv/TlvAny.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { Diagnostic, UnexpectedDataError } from "#general";
|
|
8
8
|
import { ValidationDatatypeMismatchError } from "../common/ValidationError.js";
|
|
9
9
|
import { TlvCodec, TlvTag, TlvType, TlvTypeLength } from "./TlvCodec.js";
|
|
10
10
|
import { TlvArrayReader, TlvElement, TlvReader, TlvSchema, TlvStream, TlvWriter } from "./TlvSchema.js";
|
|
@@ -120,7 +120,9 @@ export class AnySchema extends TlvSchema<TlvStream> {
|
|
|
120
120
|
const result = this.decodeGenericElement(reader);
|
|
121
121
|
const nextElement = reader.readTagType();
|
|
122
122
|
if (nextElement !== undefined) {
|
|
123
|
-
throw new UnexpectedDataError(
|
|
123
|
+
throw new UnexpectedDataError(
|
|
124
|
+
`Unexpected data left after parsing all data: ${Diagnostic.json(nextElement)}`,
|
|
125
|
+
);
|
|
124
126
|
}
|
|
125
127
|
return result;
|
|
126
128
|
}
|
|
@@ -141,7 +143,7 @@ export class AnySchema extends TlvSchema<TlvStream> {
|
|
|
141
143
|
case TlvType.Utf8String:
|
|
142
144
|
case TlvType.ByteString:
|
|
143
145
|
if (tag !== undefined && !allowTag) {
|
|
144
|
-
throw new UnexpectedDataError(`Tag detected for a native type: ${
|
|
146
|
+
throw new UnexpectedDataError(`Tag detected for a native type: ${Diagnostic.json(element)}`);
|
|
145
147
|
}
|
|
146
148
|
return reader.readPrimitive(element.typeLength);
|
|
147
149
|
case TlvType.Array:
|
|
@@ -164,7 +166,7 @@ export class AnySchema extends TlvSchema<TlvStream> {
|
|
|
164
166
|
} = element;
|
|
165
167
|
if (type === TlvType.EndOfContainer) break;
|
|
166
168
|
if (tag !== undefined && !allowTag) {
|
|
167
|
-
throw new UnexpectedDataError(`Tag detected : ${
|
|
169
|
+
throw new UnexpectedDataError(`Tag detected : ${Diagnostic.json(element)}`);
|
|
168
170
|
}
|
|
169
171
|
result.push(this.decodeGenericElement(reader, element, allowTag));
|
|
170
172
|
}
|
|
@@ -181,7 +183,7 @@ export class AnySchema extends TlvSchema<TlvStream> {
|
|
|
181
183
|
} = element;
|
|
182
184
|
if (type === TlvType.EndOfContainer) break;
|
|
183
185
|
if (tag === undefined || tag.id === undefined) {
|
|
184
|
-
throw new UnexpectedDataError(`Tag missing for a structure: ${
|
|
186
|
+
throw new UnexpectedDataError(`Tag missing for a structure: ${Diagnostic.json(element)}`);
|
|
185
187
|
}
|
|
186
188
|
result[tag.id] = this.decodeGenericElement(reader, element, true);
|
|
187
189
|
}
|