@matter/types 0.15.2-alpha.0-20250719-e4aeb457c → 0.15.2-alpha.0-20250726-93c65d182
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/descriptor.d.ts +4 -4
- package/dist/cjs/clusters/mode-select.d.ts +4 -3
- package/dist/cjs/clusters/mode-select.d.ts.map +1 -1
- package/dist/cjs/clusters/mode-select.js +1 -1
- package/dist/cjs/clusters/mode-select.js.map +1 -1
- package/dist/cjs/globals/Namespace.d.ts +125 -0
- package/dist/cjs/globals/Namespace.d.ts.map +1 -0
- package/dist/cjs/globals/Namespace.js +49 -0
- package/dist/cjs/globals/Namespace.js.map +6 -0
- package/dist/cjs/globals/Semtag.d.ts +2 -1
- package/dist/cjs/globals/Semtag.d.ts.map +1 -1
- package/dist/cjs/globals/Semtag.js +1 -1
- package/dist/cjs/globals/Semtag.js.map +1 -1
- package/dist/cjs/globals/index.d.ts +1 -0
- package/dist/cjs/globals/index.d.ts.map +1 -1
- package/dist/cjs/globals/index.js +1 -0
- package/dist/cjs/globals/index.js.map +1 -1
- package/dist/cjs/tlv/TlvString.d.ts.map +1 -1
- package/dist/cjs/tlv/TlvString.js +6 -3
- package/dist/cjs/tlv/TlvString.js.map +1 -1
- package/dist/esm/clusters/descriptor.d.ts +4 -4
- package/dist/esm/clusters/mode-select.d.ts +4 -3
- package/dist/esm/clusters/mode-select.d.ts.map +1 -1
- package/dist/esm/clusters/mode-select.js +2 -2
- package/dist/esm/clusters/mode-select.js.map +1 -1
- package/dist/esm/globals/Namespace.d.ts +125 -0
- package/dist/esm/globals/Namespace.d.ts.map +1 -0
- package/dist/esm/globals/Namespace.js +29 -0
- package/dist/esm/globals/Namespace.js.map +6 -0
- package/dist/esm/globals/Semtag.d.ts +2 -1
- package/dist/esm/globals/Semtag.d.ts.map +1 -1
- package/dist/esm/globals/Semtag.js +2 -2
- package/dist/esm/globals/Semtag.js.map +1 -1
- package/dist/esm/globals/index.d.ts +1 -0
- package/dist/esm/globals/index.d.ts.map +1 -1
- package/dist/esm/globals/index.js +1 -0
- package/dist/esm/globals/index.js.map +1 -1
- package/dist/esm/tlv/TlvString.d.ts.map +1 -1
- package/dist/esm/tlv/TlvString.js +7 -4
- package/dist/esm/tlv/TlvString.js.map +1 -1
- package/package.json +5 -5
- package/src/clusters/mode-select.ts +3 -2
- package/src/globals/Namespace.ts +142 -0
- package/src/globals/Semtag.ts +3 -2
- package/src/globals/index.ts +1 -0
- package/src/tlv/TlvString.ts +8 -4
|
@@ -84,7 +84,7 @@ export declare namespace Descriptor {
|
|
|
84
84
|
*/
|
|
85
85
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
86
86
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
87
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
87
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
88
88
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
89
89
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
90
90
|
}>[], any>;
|
|
@@ -188,7 +188,7 @@ export declare namespace Descriptor {
|
|
|
188
188
|
*/
|
|
189
189
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
190
190
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
191
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
191
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
192
192
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
193
193
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
194
194
|
}>[], any>;
|
|
@@ -294,7 +294,7 @@ export declare namespace Descriptor {
|
|
|
294
294
|
*/
|
|
295
295
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
296
296
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
297
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
297
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
298
298
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
299
299
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
300
300
|
}>[], any>;
|
|
@@ -344,7 +344,7 @@ export declare namespace Descriptor {
|
|
|
344
344
|
readonly attributes: {
|
|
345
345
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
346
346
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
347
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
347
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
348
348
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
349
349
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
350
350
|
}>[], any> & {
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
8
8
|
import { WritableAttribute, FixedAttribute, Attribute, OptionalWritableAttribute, Command } from "../cluster/Cluster.js";
|
|
9
9
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
10
|
+
import { Namespace } from "../globals/Namespace.js";
|
|
10
11
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
11
12
|
import { Identity } from "#general";
|
|
12
13
|
export declare namespace ModeSelect {
|
|
@@ -189,7 +190,7 @@ export declare namespace ModeSelect {
|
|
|
189
190
|
*
|
|
190
191
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
191
192
|
*/
|
|
192
|
-
readonly standardNamespace: FixedAttribute<
|
|
193
|
+
readonly standardNamespace: FixedAttribute<Namespace | null, any>;
|
|
193
194
|
/**
|
|
194
195
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
195
196
|
* item in this list represents a unique mode as indicated by the Mode field of the ModeOptionStruct. Each
|
|
@@ -348,7 +349,7 @@ export declare namespace ModeSelect {
|
|
|
348
349
|
*
|
|
349
350
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
350
351
|
*/
|
|
351
|
-
readonly standardNamespace: FixedAttribute<
|
|
352
|
+
readonly standardNamespace: FixedAttribute<Namespace | null, any>;
|
|
352
353
|
/**
|
|
353
354
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
354
355
|
* item in this list represents a unique mode as indicated by the Mode field of the ModeOptionStruct. Each
|
|
@@ -523,7 +524,7 @@ export declare namespace ModeSelect {
|
|
|
523
524
|
}];
|
|
524
525
|
};
|
|
525
526
|
readonly description: FixedAttribute<string, any>;
|
|
526
|
-
readonly standardNamespace: FixedAttribute<
|
|
527
|
+
readonly standardNamespace: FixedAttribute<Namespace | null, any>;
|
|
527
528
|
readonly supportedModes: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
528
529
|
/**
|
|
529
530
|
* This field is readable text that describes the mode option that can be used by a client to indicate to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-select.d.ts","sourceRoot":"","sources":["../../../src/clusters/mode-select.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,yBAAyB,EACzB,OAAO,EAEV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"mode-select.d.ts","sourceRoot":"","sources":["../../../src/clusters/mode-select.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,7 +144,7 @@ var ModeSelect;
|
|
|
144
144
|
*
|
|
145
145
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
146
146
|
*/
|
|
147
|
-
standardNamespace: (0, import_Cluster.FixedAttribute)(1, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.
|
|
147
|
+
standardNamespace: (0, import_Cluster.FixedAttribute)(1, (0, import_TlvNullable.TlvNullable)((0, import_TlvNumber.TlvEnum)()), { default: null }),
|
|
148
148
|
/**
|
|
149
149
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
150
150
|
* item in this list represents a unique mode as indicated by the Mode field of the ModeOptionStruct. Each
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/clusters/mode-select.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,4BAA+B;AAC/B,qBAOO;AACP,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ModeSelect", "Feature"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
|
|
7
|
+
/**
|
|
8
|
+
* Namespace
|
|
9
|
+
*
|
|
10
|
+
* The Namespace type identifies the namespace used for a semantic tag.
|
|
11
|
+
*
|
|
12
|
+
* @see {@link MatterSpecification.v141.Core} § 7.19.2.43
|
|
13
|
+
*/
|
|
14
|
+
export declare enum Namespace {
|
|
15
|
+
/**
|
|
16
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
17
|
+
* feature of a Closure, e.g. the button to activate opening a garage door.
|
|
18
|
+
*/
|
|
19
|
+
Closure = 1,
|
|
20
|
+
/**
|
|
21
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
22
|
+
* movement into a certain compass direction. Note the difference with Chapter 4, Common Compass Location Semantic
|
|
23
|
+
* Tag Namespace.
|
|
24
|
+
*/
|
|
25
|
+
CompassDirection = 2,
|
|
26
|
+
/**
|
|
27
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
28
|
+
* position in a certain compass direction (e.g. an outdoor sensor in the North garden). Note the difference with
|
|
29
|
+
* Chapter 3, Common Compass Direction Semantic Tag Namespace.
|
|
30
|
+
*/
|
|
31
|
+
CompassLocation = 3,
|
|
32
|
+
/**
|
|
33
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
34
|
+
* movement in a certain direction relative to the device. Note the difference with Chapter 9, Common Position
|
|
35
|
+
* Semantic Tag Namespace.
|
|
36
|
+
*/
|
|
37
|
+
Direction = 4,
|
|
38
|
+
/**
|
|
39
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
40
|
+
* certain level for a feature of a device (e.g. a button to set the speed of a fan).
|
|
41
|
+
*/
|
|
42
|
+
Level = 5,
|
|
43
|
+
/**
|
|
44
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
45
|
+
* location of a device (e.g. an outdoor temperature sensor).
|
|
46
|
+
*/
|
|
47
|
+
Location = 6,
|
|
48
|
+
/**
|
|
49
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
50
|
+
* certain numeric feature of a device (e.g. a numeric input button).
|
|
51
|
+
*/
|
|
52
|
+
Number = 7,
|
|
53
|
+
/**
|
|
54
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
55
|
+
* position relative to the device (e.g. the temperature sensor in the top drawer of a refrigerator, or location of
|
|
56
|
+
* the buttons on a multi-button switch device). Note the difference with Chapter 5, Common Direction Semantic Tag
|
|
57
|
+
* Namespace.
|
|
58
|
+
*
|
|
59
|
+
* When multiple endpoints are used for device types, and the associated consumer-facing locations of those
|
|
60
|
+
* endpoints are organized in a straight line, grid or matrix, these endpoints SHOULD be allocated in top-to-bottom,
|
|
61
|
+
* left-to-right order.
|
|
62
|
+
*
|
|
63
|
+
* For grids or arrays larger than 3 elements in any direction, the Row and Column tags SHOULD be used.
|
|
64
|
+
*
|
|
65
|
+
* If the Row or Column tags are used, the Label field in the same Semantic Tag structure shall be filled with a
|
|
66
|
+
* number comprised of Arabic numerals encoded as a string to indicate the row/column of the item. Number words
|
|
67
|
+
* (e.g. "one", "two", etc.) shall NOT be used to describe the position of the item. The first row/column shall use
|
|
68
|
+
* Label "1".
|
|
69
|
+
*/
|
|
70
|
+
Position = 8,
|
|
71
|
+
/**
|
|
72
|
+
* The tags contained in this namespace are restricted for use in the electrical measurement domain and shall NOT be
|
|
73
|
+
* used in any other domain or context.
|
|
74
|
+
*/
|
|
75
|
+
ElectricalMeasurement = 10,
|
|
76
|
+
/**
|
|
77
|
+
* The tags contained in this namespace are restricted for use in the laundry domain and shall NOT be used in any
|
|
78
|
+
* other domain or context.
|
|
79
|
+
*/
|
|
80
|
+
Laundry = 14,
|
|
81
|
+
/**
|
|
82
|
+
* The tags contained in this namespace are restricted for use in the power source domain and shall NOT be used in
|
|
83
|
+
* any other domain or context.
|
|
84
|
+
*/
|
|
85
|
+
PowerSource = 15,
|
|
86
|
+
/**
|
|
87
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with an
|
|
88
|
+
* indoor or outdoor area of a home.
|
|
89
|
+
*/
|
|
90
|
+
AreaNamespace = 16,
|
|
91
|
+
/**
|
|
92
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a home
|
|
93
|
+
* landmark.
|
|
94
|
+
*/
|
|
95
|
+
LandmarkNamespace = 17,
|
|
96
|
+
/**
|
|
97
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
98
|
+
* position relative to some reference, which must be specified by the user of these tags. For example, the position
|
|
99
|
+
* may be relative to a household item, such as a dining table, and the user of these tags must indicate that. Note
|
|
100
|
+
* the difference with Chapter 9, Common Position Semantic Tag Namespace, which contains tags indicating the
|
|
101
|
+
* position relative to the device.
|
|
102
|
+
*/
|
|
103
|
+
RelativePosition = 18,
|
|
104
|
+
/**
|
|
105
|
+
* The tags contained in this namespace are restricted for use in the refrigerator domain and shall NOT be used in
|
|
106
|
+
* any other domain or context.
|
|
107
|
+
*/
|
|
108
|
+
Refrigerator = 65,
|
|
109
|
+
/**
|
|
110
|
+
* The tags contained in this namespace are restricted for use in the room air conditioner domain and shall NOT be
|
|
111
|
+
* used in any other domain or context.
|
|
112
|
+
*/
|
|
113
|
+
RoomAirConditioner = 66,
|
|
114
|
+
/**
|
|
115
|
+
* The tags contained in this namespace are restricted for use in the switches domain and shall NOT be used in any
|
|
116
|
+
* other domain or context. They are intended to indicate the function of a button on a switch device to allow a
|
|
117
|
+
* client to make an optimized user interface which matches the actual device without requiring a-priori knowledge
|
|
118
|
+
* of the layout of each specific switch device.
|
|
119
|
+
*
|
|
120
|
+
* Please see the rules for applying these and other tags for switch devices, e.g. from the Common Position
|
|
121
|
+
* Namespace and the Common Number Namespace in the Generic Switch device type section in the Device Library.
|
|
122
|
+
*/
|
|
123
|
+
Switches = 67
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=Namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Namespace.d.ts","sourceRoot":"","sources":["../../../src/globals/Namespace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C;;;;;;GAMG;AACH,oBAAY,SAAS;IACjB;;;OAGG;IACH,OAAO,IAAI;IAEX;;;;OAIG;IACH,gBAAgB,IAAI;IAEpB;;;;OAIG;IACH,eAAe,IAAI;IAEnB;;;;OAIG;IACH,SAAS,IAAI;IAEb;;;OAGG;IACH,KAAK,IAAI;IAET;;;OAGG;IACH,QAAQ,IAAI;IAEZ;;;OAGG;IACH,MAAM,IAAI;IAEV;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,IAAI;IAEZ;;;OAGG;IACH,qBAAqB,KAAK;IAE1B;;;OAGG;IACH,OAAO,KAAK;IAEZ;;;OAGG;IACH,WAAW,KAAK;IAEhB;;;OAGG;IACH,aAAa,KAAK;IAElB;;;OAGG;IACH,iBAAiB,KAAK;IAEtB;;;;;;OAMG;IACH,gBAAgB,KAAK;IAErB;;;OAGG;IACH,YAAY,KAAK;IAEjB;;;OAGG;IACH,kBAAkB,KAAK;IAEvB;;;;;;;;OAQG;IACH,QAAQ,KAAK;CAChB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var Namespace_exports = {};
|
|
20
|
+
__export(Namespace_exports, {
|
|
21
|
+
Namespace: () => Namespace
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(Namespace_exports);
|
|
24
|
+
/**
|
|
25
|
+
* @license
|
|
26
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
27
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
28
|
+
*/
|
|
29
|
+
var Namespace = /* @__PURE__ */ ((Namespace2) => {
|
|
30
|
+
Namespace2[Namespace2["Closure"] = 1] = "Closure";
|
|
31
|
+
Namespace2[Namespace2["CompassDirection"] = 2] = "CompassDirection";
|
|
32
|
+
Namespace2[Namespace2["CompassLocation"] = 3] = "CompassLocation";
|
|
33
|
+
Namespace2[Namespace2["Direction"] = 4] = "Direction";
|
|
34
|
+
Namespace2[Namespace2["Level"] = 5] = "Level";
|
|
35
|
+
Namespace2[Namespace2["Location"] = 6] = "Location";
|
|
36
|
+
Namespace2[Namespace2["Number"] = 7] = "Number";
|
|
37
|
+
Namespace2[Namespace2["Position"] = 8] = "Position";
|
|
38
|
+
Namespace2[Namespace2["ElectricalMeasurement"] = 10] = "ElectricalMeasurement";
|
|
39
|
+
Namespace2[Namespace2["Laundry"] = 14] = "Laundry";
|
|
40
|
+
Namespace2[Namespace2["PowerSource"] = 15] = "PowerSource";
|
|
41
|
+
Namespace2[Namespace2["AreaNamespace"] = 16] = "AreaNamespace";
|
|
42
|
+
Namespace2[Namespace2["LandmarkNamespace"] = 17] = "LandmarkNamespace";
|
|
43
|
+
Namespace2[Namespace2["RelativePosition"] = 18] = "RelativePosition";
|
|
44
|
+
Namespace2[Namespace2["Refrigerator"] = 65] = "Refrigerator";
|
|
45
|
+
Namespace2[Namespace2["RoomAirConditioner"] = 66] = "RoomAirConditioner";
|
|
46
|
+
Namespace2[Namespace2["Switches"] = 67] = "Switches";
|
|
47
|
+
return Namespace2;
|
|
48
|
+
})(Namespace || {});
|
|
49
|
+
//# sourceMappingURL=Namespace.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/globals/Namespace.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,IAAK,YAAL,kBAAKA,eAAL;AAKH,EAAAA,sBAAA,aAAU,KAAV;AAOA,EAAAA,sBAAA,sBAAmB,KAAnB;AAOA,EAAAA,sBAAA,qBAAkB,KAAlB;AAOA,EAAAA,sBAAA,eAAY,KAAZ;AAMA,EAAAA,sBAAA,WAAQ,KAAR;AAMA,EAAAA,sBAAA,cAAW,KAAX;AAMA,EAAAA,sBAAA,YAAS,KAAT;AAmBA,EAAAA,sBAAA,cAAW,KAAX;AAMA,EAAAA,sBAAA,2BAAwB,MAAxB;AAMA,EAAAA,sBAAA,aAAU,MAAV;AAMA,EAAAA,sBAAA,iBAAc,MAAd;AAMA,EAAAA,sBAAA,mBAAgB,MAAhB;AAMA,EAAAA,sBAAA,uBAAoB,MAApB;AASA,EAAAA,sBAAA,sBAAmB,MAAnB;AAMA,EAAAA,sBAAA,kBAAe,MAAf;AAMA,EAAAA,sBAAA,wBAAqB,MAArB;AAWA,EAAAA,sBAAA,cAAW,MAAX;AA7HQ,SAAAA;AAAA,GAAA;",
|
|
5
|
+
"names": ["Namespace"]
|
|
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 { Namespace } from "./Namespace.js";
|
|
6
7
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
7
8
|
/**
|
|
8
9
|
* Semantic Tag
|
|
@@ -33,7 +34,7 @@ export declare const TlvSemtag: import("../tlv/TlvObject.js").ObjectSchema<{
|
|
|
33
34
|
*
|
|
34
35
|
* @see {@link MatterSpecification.v141.Core} § 7.19.2.42.2
|
|
35
36
|
*/
|
|
36
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
37
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<Namespace>;
|
|
37
38
|
/**
|
|
38
39
|
* The Tag field shall be the ID of a semantic tag located within the namespace indicated by NamespaceID.
|
|
39
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Semtag.d.ts","sourceRoot":"","sources":["../../../src/globals/Semtag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Semtag.d.ts","sourceRoot":"","sources":["../../../src/globals/Semtag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;IAClB;;;;;;;;;;;;OAYG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;;;OAUG;;EAEL,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,MAAO,SAAQ,cAAc,CAAC,OAAO,SAAS,CAAC;CAAG"}
|
|
@@ -53,7 +53,7 @@ const TlvSemtag = (0, import_TlvObject.TlvObject)({
|
|
|
53
53
|
*
|
|
54
54
|
* @see {@link MatterSpecification.v141.Core} § 7.19.2.42.2
|
|
55
55
|
*/
|
|
56
|
-
namespaceId: (0, import_TlvObject.TlvField)(1, import_TlvNumber.
|
|
56
|
+
namespaceId: (0, import_TlvObject.TlvField)(1, (0, import_TlvNumber.TlvEnum)()),
|
|
57
57
|
/**
|
|
58
58
|
* The Tag field shall be the ID of a semantic tag located within the namespace indicated by NamespaceID.
|
|
59
59
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/globals/Semtag.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,uBAAsD;AACtD,sBAA4B;AAC5B,yBAA4B;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,uBAAsD;AACtD,sBAA4B;AAC5B,yBAA4B;AAE5B,uBAAkC;AAClC,uBAA0B;AAb1B;AAAA;AAAA;AAAA;AAAA;AAuBO,MAAM,gBAAY,4BAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc/B,aAAS,2BAAS,OAAG,gCAAY,2BAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS7C,iBAAa,2BAAS,OAAG,0BAAmB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU7C,SAAK,2BAAS,GAAG,yBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAazB,WAAO,mCAAiB,OAAG,gCAAY,2BAAU,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AAC9E,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -12,6 +12,7 @@ export * from "./MeasurementType.js";
|
|
|
12
12
|
export * from "./SoftwareVersionCertificationStatus.js";
|
|
13
13
|
export * from "./WildcardPathFlags.js";
|
|
14
14
|
export * from "./Locationdesc.js";
|
|
15
|
+
export * from "./Namespace.js";
|
|
15
16
|
export * from "./Priority.js";
|
|
16
17
|
export * from "./Semtag.js";
|
|
17
18
|
export * from "./Status.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/globals/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/globals/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -23,6 +23,7 @@ __reExport(globals_exports, require("./MeasurementType.js"), module.exports);
|
|
|
23
23
|
__reExport(globals_exports, require("./SoftwareVersionCertificationStatus.js"), module.exports);
|
|
24
24
|
__reExport(globals_exports, require("./WildcardPathFlags.js"), module.exports);
|
|
25
25
|
__reExport(globals_exports, require("./Locationdesc.js"), module.exports);
|
|
26
|
+
__reExport(globals_exports, require("./Namespace.js"), module.exports);
|
|
26
27
|
__reExport(globals_exports, require("./Priority.js"), module.exports);
|
|
27
28
|
__reExport(globals_exports, require("./Semtag.js"), module.exports);
|
|
28
29
|
__reExport(globals_exports, require("./Status.js"), module.exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/globals/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAQA,4BAAc,uCARd;AASA,4BAAc,mCATd;AAUA,4BAAc,0CAVd;AAWA,4BAAc,qCAXd;AAYA,4BAAc,iCAZd;AAaA,4BAAc,oDAbd;AAcA,4BAAc,mCAdd;AAeA,4BAAc,8BAfd;AAgBA,4BAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAQA,4BAAc,uCARd;AASA,4BAAc,mCATd;AAUA,4BAAc,0CAVd;AAWA,4BAAc,qCAXd;AAYA,4BAAc,iCAZd;AAaA,4BAAc,oDAbd;AAcA,4BAAc,mCAdd;AAeA,4BAAc,8BAfd;AAgBA,4BAAc,2BAhBd;AAiBA,4BAAc,0BAjBd;AAkBA,4BAAc,wBAlBd;AAmBA,4BAAc,wBAnBd;AAoBA,4BAAc,qBApBd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TlvString.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvString.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjE,KAAK,iBAAiB,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEzG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"TlvString.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvString.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjE,KAAK,iBAAiB,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEzG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAE1B,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAHjB,IAAI,EAAE,CAAC,EACP,SAAS,GAAE,MAAU,EAErB,SAAS,GAAE,MAAa;IAU5B,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlF,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC;IAKvF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAejD,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,iBAAiB;CAO5D;AAED,6BAA6B;AAC7B,eAAO,MAAM,aAAa,kCAAuC,CAAC;AAElE,yBAAyB;AACzB,eAAO,MAAM,SAAS,kCAAuC,CAAC;AAE9D,yBAAyB;AACzB,eAAO,MAAM,cAAc,kCAAqC,CAAC;AAEjE,yBAAyB;AACzB,eAAO,MAAM,cAAc,kCAAqC,CAAC;AAEjE,yBAAyB;AACzB,eAAO,MAAM,eAAe,kCAAsC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,kCAAsD,CAAC"}
|
|
@@ -42,7 +42,10 @@ class StringSchema extends import_TlvSchema.TlvSchema {
|
|
|
42
42
|
this.type = type;
|
|
43
43
|
this.minLength = minLength;
|
|
44
44
|
this.maxLength = maxLength;
|
|
45
|
-
if (minLength < 0) throw new import_general.
|
|
45
|
+
if (minLength < 0) throw new import_general.ImplementationError("Minimum length should be a positive number.");
|
|
46
|
+
if (maxLength < 0) throw new import_general.ImplementationError("Maximum length should be a positive number.");
|
|
47
|
+
if (minLength > maxLength)
|
|
48
|
+
throw new import_general.ImplementationError("Minimum length should be smaller than maximum length.");
|
|
46
49
|
}
|
|
47
50
|
encodeTlvInternal(writer, value, tag) {
|
|
48
51
|
const typeLength = { type: this.type, length: import_TlvCodec.TlvCodec.getUIntTlvLength(value.length) };
|
|
@@ -70,8 +73,8 @@ class StringSchema extends import_TlvSchema.TlvSchema {
|
|
|
70
73
|
bound({ minLength, maxLength, length }) {
|
|
71
74
|
return new StringSchema(
|
|
72
75
|
this.type,
|
|
73
|
-
length ??
|
|
74
|
-
length ??
|
|
76
|
+
length ?? minLength ?? this.minLength,
|
|
77
|
+
length ?? maxLength ?? this.maxLength
|
|
75
78
|
);
|
|
76
79
|
}
|
|
77
80
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tlv/TlvString.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAoE;AACpE,6BAA4E;AAC5E,sBAAyE;AACzE,uBAAgD;AAThD;AAAA;AAAA;AAAA;AAAA;AAsBO,MAAM,qBAAwE,2BAA6B;AAAA,EAC9G,YACa,MACA,YAAoB,GAEpB,YAAoB,MAC/B;AACE,UAAM;AALG;AACA;AAEA;AAIT,QAAI,YAAY,EAAG,OAAM,IAAI,mCAAoB,6CAA6C;AAC9F,QAAI,YAAY,EAAG,OAAM,IAAI,mCAAoB,6CAA6C;AAC9F,QAAI,YAAY;AACZ,YAAM,IAAI,mCAAoB,uDAAuD;AAAA,EAC7F;AAAA,EAES,kBAAkB,QAAmB,OAA0B,KAAoB;AACxF,UAAM,aAA4B,EAAE,MAAM,KAAK,MAAM,QAAQ,yBAAS,iBAAiB,MAAM,MAAM,EAAE;AACrG,WAAO,SAAS,YAAY,GAAG;AAC/B,WAAO,eAAe,YAAY,KAAK;AAAA,EAC3C;AAAA,EAES,uBAAuB,QAAmB,YAA8C;AAC7F,QAAI,WAAW,SAAS,KAAK,KAAM,OAAM,IAAI,mCAAoB,mBAAmB,WAAW,IAAI,GAAG;AACtG,WAAO,OAAO,cAAc,UAAU;AAAA,EAC1C;AAAA,EAES,SAAS,OAAgC;AAC9C,QAAI,KAAK,SAAS,wBAAQ,cAAc,OAAO,UAAU;AACrD,YAAM,IAAI,uDAAgC,wBAAwB,OAAO,KAAK,GAAG;AACrF,QAAI,KAAK,SAAS,wBAAQ,cAAc,EAAE,iBAAiB;AACvD,YAAM,IAAI,uDAAgC,4BAA4B,OAAO,KAAK,GAAG;AACzF,QAAI,MAAM,SAAS,KAAK;AACpB,YAAM,IAAI;AAAA,QACN,cAAU,0BAAU,KAAK,CAAC,iBAAiB,MAAM,MAAM,SAAS,KAAK,SAAS;AAAA,MAClF;AACJ,QAAI,MAAM,SAAS,KAAK;AACpB,YAAM,IAAI;AAAA,QACN,cAAU,0BAAU,KAAK,CAAC,kBAAkB,MAAM,MAAM,SAAS,KAAK,SAAS;AAAA,MACnF;AAAA,EACR;AAAA,EAEA,MAAM,EAAE,WAAW,WAAW,OAAO,GAAsB;AACvD,WAAO,IAAI;AAAA,MACP,KAAK;AAAA,MACL,UAAU,aAAa,KAAK;AAAA,MAC5B,UAAU,aAAa,KAAK;AAAA,IAChC;AAAA,EACJ;AACJ;AAGO,MAAM,gBAAgB,IAAI,aAAa,wBAAQ,UAAU;AAGzD,MAAM,YAAY,IAAI,aAAa,wBAAQ,UAAU;AAGrD,MAAM,iBAAiB,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC;AAGxD,MAAM,iBAAiB,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC;AAGxD,MAAM,kBAAkB,UAAU,MAAM,EAAE,WAAW,IAAI,CAAC;AAE1D,MAAM,qBAAqB,cAAc,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -84,7 +84,7 @@ export declare namespace Descriptor {
|
|
|
84
84
|
*/
|
|
85
85
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
86
86
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
87
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
87
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
88
88
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
89
89
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
90
90
|
}>[], any>;
|
|
@@ -188,7 +188,7 @@ export declare namespace Descriptor {
|
|
|
188
188
|
*/
|
|
189
189
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
190
190
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
191
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
191
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
192
192
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
193
193
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
194
194
|
}>[], any>;
|
|
@@ -294,7 +294,7 @@ export declare namespace Descriptor {
|
|
|
294
294
|
*/
|
|
295
295
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
296
296
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
297
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
297
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
298
298
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
299
299
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
300
300
|
}>[], any>;
|
|
@@ -344,7 +344,7 @@ export declare namespace Descriptor {
|
|
|
344
344
|
readonly attributes: {
|
|
345
345
|
readonly tagList: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
346
346
|
mfgCode: import("../tlv/TlvObject.js").FieldType<import("../index.js").VendorId | null>;
|
|
347
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
347
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<import("../index.js").Namespace>;
|
|
348
348
|
tag: import("../tlv/TlvObject.js").FieldType<number>;
|
|
349
349
|
label: import("../tlv/TlvObject.js").OptionalFieldType<string | null>;
|
|
350
350
|
}>[], any> & {
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
|
|
8
8
|
import { WritableAttribute, FixedAttribute, Attribute, OptionalWritableAttribute, Command } from "../cluster/Cluster.js";
|
|
9
9
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
10
|
+
import { Namespace } from "../globals/Namespace.js";
|
|
10
11
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
11
12
|
import { Identity } from "#general";
|
|
12
13
|
export declare namespace ModeSelect {
|
|
@@ -189,7 +190,7 @@ export declare namespace ModeSelect {
|
|
|
189
190
|
*
|
|
190
191
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
191
192
|
*/
|
|
192
|
-
readonly standardNamespace: FixedAttribute<
|
|
193
|
+
readonly standardNamespace: FixedAttribute<Namespace | null, any>;
|
|
193
194
|
/**
|
|
194
195
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
195
196
|
* item in this list represents a unique mode as indicated by the Mode field of the ModeOptionStruct. Each
|
|
@@ -348,7 +349,7 @@ export declare namespace ModeSelect {
|
|
|
348
349
|
*
|
|
349
350
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
350
351
|
*/
|
|
351
|
-
readonly standardNamespace: FixedAttribute<
|
|
352
|
+
readonly standardNamespace: FixedAttribute<Namespace | null, any>;
|
|
352
353
|
/**
|
|
353
354
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
354
355
|
* item in this list represents a unique mode as indicated by the Mode field of the ModeOptionStruct. Each
|
|
@@ -523,7 +524,7 @@ export declare namespace ModeSelect {
|
|
|
523
524
|
}];
|
|
524
525
|
};
|
|
525
526
|
readonly description: FixedAttribute<string, any>;
|
|
526
|
-
readonly standardNamespace: FixedAttribute<
|
|
527
|
+
readonly standardNamespace: FixedAttribute<Namespace | null, any>;
|
|
527
528
|
readonly supportedModes: FixedAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
|
|
528
529
|
/**
|
|
529
530
|
* This field is readable text that describes the mode option that can be used by a client to indicate to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-select.d.ts","sourceRoot":"","sources":["../../../src/clusters/mode-select.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,yBAAyB,EACzB,OAAO,EAEV,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"mode-select.d.ts","sourceRoot":"","sources":["../../../src/clusters/mode-select.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
Command,
|
|
13
13
|
TlvNoResponse
|
|
14
14
|
} from "../cluster/Cluster.js";
|
|
15
|
-
import { TlvUInt8, TlvUInt16 } from "../tlv/TlvNumber.js";
|
|
15
|
+
import { TlvUInt8, TlvEnum, TlvUInt16 } from "../tlv/TlvNumber.js";
|
|
16
16
|
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
17
17
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
18
18
|
import { TlvString } from "../tlv/TlvString.js";
|
|
@@ -127,7 +127,7 @@ var ModeSelect;
|
|
|
127
127
|
*
|
|
128
128
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
129
129
|
*/
|
|
130
|
-
standardNamespace: FixedAttribute(1, TlvNullable(
|
|
130
|
+
standardNamespace: FixedAttribute(1, TlvNullable(TlvEnum()), { default: null }),
|
|
131
131
|
/**
|
|
132
132
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
133
133
|
* item in this list represents a unique mode as indicated by the Mode field of the ModeOptionStruct. Each
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/clusters/mode-select.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,sBAAsB;AAC/B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,UAAU,iBAAiB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ModeSelect", "Feature"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
|
|
7
|
+
/**
|
|
8
|
+
* Namespace
|
|
9
|
+
*
|
|
10
|
+
* The Namespace type identifies the namespace used for a semantic tag.
|
|
11
|
+
*
|
|
12
|
+
* @see {@link MatterSpecification.v141.Core} § 7.19.2.43
|
|
13
|
+
*/
|
|
14
|
+
export declare enum Namespace {
|
|
15
|
+
/**
|
|
16
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
17
|
+
* feature of a Closure, e.g. the button to activate opening a garage door.
|
|
18
|
+
*/
|
|
19
|
+
Closure = 1,
|
|
20
|
+
/**
|
|
21
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
22
|
+
* movement into a certain compass direction. Note the difference with Chapter 4, Common Compass Location Semantic
|
|
23
|
+
* Tag Namespace.
|
|
24
|
+
*/
|
|
25
|
+
CompassDirection = 2,
|
|
26
|
+
/**
|
|
27
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
28
|
+
* position in a certain compass direction (e.g. an outdoor sensor in the North garden). Note the difference with
|
|
29
|
+
* Chapter 3, Common Compass Direction Semantic Tag Namespace.
|
|
30
|
+
*/
|
|
31
|
+
CompassLocation = 3,
|
|
32
|
+
/**
|
|
33
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
34
|
+
* movement in a certain direction relative to the device. Note the difference with Chapter 9, Common Position
|
|
35
|
+
* Semantic Tag Namespace.
|
|
36
|
+
*/
|
|
37
|
+
Direction = 4,
|
|
38
|
+
/**
|
|
39
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
40
|
+
* certain level for a feature of a device (e.g. a button to set the speed of a fan).
|
|
41
|
+
*/
|
|
42
|
+
Level = 5,
|
|
43
|
+
/**
|
|
44
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
45
|
+
* location of a device (e.g. an outdoor temperature sensor).
|
|
46
|
+
*/
|
|
47
|
+
Location = 6,
|
|
48
|
+
/**
|
|
49
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
50
|
+
* certain numeric feature of a device (e.g. a numeric input button).
|
|
51
|
+
*/
|
|
52
|
+
Number = 7,
|
|
53
|
+
/**
|
|
54
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
55
|
+
* position relative to the device (e.g. the temperature sensor in the top drawer of a refrigerator, or location of
|
|
56
|
+
* the buttons on a multi-button switch device). Note the difference with Chapter 5, Common Direction Semantic Tag
|
|
57
|
+
* Namespace.
|
|
58
|
+
*
|
|
59
|
+
* When multiple endpoints are used for device types, and the associated consumer-facing locations of those
|
|
60
|
+
* endpoints are organized in a straight line, grid or matrix, these endpoints SHOULD be allocated in top-to-bottom,
|
|
61
|
+
* left-to-right order.
|
|
62
|
+
*
|
|
63
|
+
* For grids or arrays larger than 3 elements in any direction, the Row and Column tags SHOULD be used.
|
|
64
|
+
*
|
|
65
|
+
* If the Row or Column tags are used, the Label field in the same Semantic Tag structure shall be filled with a
|
|
66
|
+
* number comprised of Arabic numerals encoded as a string to indicate the row/column of the item. Number words
|
|
67
|
+
* (e.g. "one", "two", etc.) shall NOT be used to describe the position of the item. The first row/column shall use
|
|
68
|
+
* Label "1".
|
|
69
|
+
*/
|
|
70
|
+
Position = 8,
|
|
71
|
+
/**
|
|
72
|
+
* The tags contained in this namespace are restricted for use in the electrical measurement domain and shall NOT be
|
|
73
|
+
* used in any other domain or context.
|
|
74
|
+
*/
|
|
75
|
+
ElectricalMeasurement = 10,
|
|
76
|
+
/**
|
|
77
|
+
* The tags contained in this namespace are restricted for use in the laundry domain and shall NOT be used in any
|
|
78
|
+
* other domain or context.
|
|
79
|
+
*/
|
|
80
|
+
Laundry = 14,
|
|
81
|
+
/**
|
|
82
|
+
* The tags contained in this namespace are restricted for use in the power source domain and shall NOT be used in
|
|
83
|
+
* any other domain or context.
|
|
84
|
+
*/
|
|
85
|
+
PowerSource = 15,
|
|
86
|
+
/**
|
|
87
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with an
|
|
88
|
+
* indoor or outdoor area of a home.
|
|
89
|
+
*/
|
|
90
|
+
AreaNamespace = 16,
|
|
91
|
+
/**
|
|
92
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a home
|
|
93
|
+
* landmark.
|
|
94
|
+
*/
|
|
95
|
+
LandmarkNamespace = 17,
|
|
96
|
+
/**
|
|
97
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
98
|
+
* position relative to some reference, which must be specified by the user of these tags. For example, the position
|
|
99
|
+
* may be relative to a household item, such as a dining table, and the user of these tags must indicate that. Note
|
|
100
|
+
* the difference with Chapter 9, Common Position Semantic Tag Namespace, which contains tags indicating the
|
|
101
|
+
* position relative to the device.
|
|
102
|
+
*/
|
|
103
|
+
RelativePosition = 18,
|
|
104
|
+
/**
|
|
105
|
+
* The tags contained in this namespace are restricted for use in the refrigerator domain and shall NOT be used in
|
|
106
|
+
* any other domain or context.
|
|
107
|
+
*/
|
|
108
|
+
Refrigerator = 65,
|
|
109
|
+
/**
|
|
110
|
+
* The tags contained in this namespace are restricted for use in the room air conditioner domain and shall NOT be
|
|
111
|
+
* used in any other domain or context.
|
|
112
|
+
*/
|
|
113
|
+
RoomAirConditioner = 66,
|
|
114
|
+
/**
|
|
115
|
+
* The tags contained in this namespace are restricted for use in the switches domain and shall NOT be used in any
|
|
116
|
+
* other domain or context. They are intended to indicate the function of a button on a switch device to allow a
|
|
117
|
+
* client to make an optimized user interface which matches the actual device without requiring a-priori knowledge
|
|
118
|
+
* of the layout of each specific switch device.
|
|
119
|
+
*
|
|
120
|
+
* Please see the rules for applying these and other tags for switch devices, e.g. from the Common Position
|
|
121
|
+
* Namespace and the Common Number Namespace in the Generic Switch device type section in the Device Library.
|
|
122
|
+
*/
|
|
123
|
+
Switches = 67
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=Namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Namespace.d.ts","sourceRoot":"","sources":["../../../src/globals/Namespace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C;;;;;;GAMG;AACH,oBAAY,SAAS;IACjB;;;OAGG;IACH,OAAO,IAAI;IAEX;;;;OAIG;IACH,gBAAgB,IAAI;IAEpB;;;;OAIG;IACH,eAAe,IAAI;IAEnB;;;;OAIG;IACH,SAAS,IAAI;IAEb;;;OAGG;IACH,KAAK,IAAI;IAET;;;OAGG;IACH,QAAQ,IAAI;IAEZ;;;OAGG;IACH,MAAM,IAAI;IAEV;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,IAAI;IAEZ;;;OAGG;IACH,qBAAqB,KAAK;IAE1B;;;OAGG;IACH,OAAO,KAAK;IAEZ;;;OAGG;IACH,WAAW,KAAK;IAEhB;;;OAGG;IACH,aAAa,KAAK;IAElB;;;OAGG;IACH,iBAAiB,KAAK;IAEtB;;;;;;OAMG;IACH,gBAAgB,KAAK;IAErB;;;OAGG;IACH,YAAY,KAAK;IAEjB;;;OAGG;IACH,kBAAkB,KAAK;IAEvB;;;;;;;;OAQG;IACH,QAAQ,KAAK;CAChB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
var Namespace = /* @__PURE__ */ ((Namespace2) => {
|
|
7
|
+
Namespace2[Namespace2["Closure"] = 1] = "Closure";
|
|
8
|
+
Namespace2[Namespace2["CompassDirection"] = 2] = "CompassDirection";
|
|
9
|
+
Namespace2[Namespace2["CompassLocation"] = 3] = "CompassLocation";
|
|
10
|
+
Namespace2[Namespace2["Direction"] = 4] = "Direction";
|
|
11
|
+
Namespace2[Namespace2["Level"] = 5] = "Level";
|
|
12
|
+
Namespace2[Namespace2["Location"] = 6] = "Location";
|
|
13
|
+
Namespace2[Namespace2["Number"] = 7] = "Number";
|
|
14
|
+
Namespace2[Namespace2["Position"] = 8] = "Position";
|
|
15
|
+
Namespace2[Namespace2["ElectricalMeasurement"] = 10] = "ElectricalMeasurement";
|
|
16
|
+
Namespace2[Namespace2["Laundry"] = 14] = "Laundry";
|
|
17
|
+
Namespace2[Namespace2["PowerSource"] = 15] = "PowerSource";
|
|
18
|
+
Namespace2[Namespace2["AreaNamespace"] = 16] = "AreaNamespace";
|
|
19
|
+
Namespace2[Namespace2["LandmarkNamespace"] = 17] = "LandmarkNamespace";
|
|
20
|
+
Namespace2[Namespace2["RelativePosition"] = 18] = "RelativePosition";
|
|
21
|
+
Namespace2[Namespace2["Refrigerator"] = 65] = "Refrigerator";
|
|
22
|
+
Namespace2[Namespace2["RoomAirConditioner"] = 66] = "RoomAirConditioner";
|
|
23
|
+
Namespace2[Namespace2["Switches"] = 67] = "Switches";
|
|
24
|
+
return Namespace2;
|
|
25
|
+
})(Namespace || {});
|
|
26
|
+
export {
|
|
27
|
+
Namespace
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=Namespace.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/globals/Namespace.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,IAAK,YAAL,kBAAKA,eAAL;AAKH,EAAAA,sBAAA,aAAU,KAAV;AAOA,EAAAA,sBAAA,sBAAmB,KAAnB;AAOA,EAAAA,sBAAA,qBAAkB,KAAlB;AAOA,EAAAA,sBAAA,eAAY,KAAZ;AAMA,EAAAA,sBAAA,WAAQ,KAAR;AAMA,EAAAA,sBAAA,cAAW,KAAX;AAMA,EAAAA,sBAAA,YAAS,KAAT;AAmBA,EAAAA,sBAAA,cAAW,KAAX;AAMA,EAAAA,sBAAA,2BAAwB,MAAxB;AAMA,EAAAA,sBAAA,aAAU,MAAV;AAMA,EAAAA,sBAAA,iBAAc,MAAd;AAMA,EAAAA,sBAAA,mBAAgB,MAAhB;AAMA,EAAAA,sBAAA,uBAAoB,MAApB;AASA,EAAAA,sBAAA,sBAAmB,MAAnB;AAMA,EAAAA,sBAAA,kBAAe,MAAf;AAMA,EAAAA,sBAAA,wBAAqB,MAArB;AAWA,EAAAA,sBAAA,cAAW,MAAX;AA7HQ,SAAAA;AAAA,GAAA;",
|
|
5
|
+
"names": ["Namespace"]
|
|
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 { Namespace } from "./Namespace.js";
|
|
6
7
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
7
8
|
/**
|
|
8
9
|
* Semantic Tag
|
|
@@ -33,7 +34,7 @@ export declare const TlvSemtag: import("../tlv/TlvObject.js").ObjectSchema<{
|
|
|
33
34
|
*
|
|
34
35
|
* @see {@link MatterSpecification.v141.Core} § 7.19.2.42.2
|
|
35
36
|
*/
|
|
36
|
-
namespaceId: import("../tlv/TlvObject.js").FieldType<
|
|
37
|
+
namespaceId: import("../tlv/TlvObject.js").FieldType<Namespace>;
|
|
37
38
|
/**
|
|
38
39
|
* The Tag field shall be the ID of a semantic tag located within the namespace indicated by NamespaceID.
|
|
39
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Semtag.d.ts","sourceRoot":"","sources":["../../../src/globals/Semtag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Semtag.d.ts","sourceRoot":"","sources":["../../../src/globals/Semtag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;IAClB;;;;;;;;;;;;OAYG;;IAGH;;;;;;OAMG;;IAGH;;;;;;;OAOG;;IAGH;;;;;;;;;;OAUG;;EAEL,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,MAAO,SAAQ,cAAc,CAAC,OAAO,SAAS,CAAC;CAAG"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
|
|
7
7
|
import { TlvVendorId } from "../datatype/VendorId.js";
|
|
8
8
|
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
9
|
-
import { TlvUInt8 } from "../tlv/TlvNumber.js";
|
|
9
|
+
import { TlvEnum, TlvUInt8 } from "../tlv/TlvNumber.js";
|
|
10
10
|
import { TlvString } from "../tlv/TlvString.js";
|
|
11
11
|
const TlvSemtag = TlvObject({
|
|
12
12
|
/**
|
|
@@ -30,7 +30,7 @@ const TlvSemtag = TlvObject({
|
|
|
30
30
|
*
|
|
31
31
|
* @see {@link MatterSpecification.v141.Core} § 7.19.2.42.2
|
|
32
32
|
*/
|
|
33
|
-
namespaceId: TlvField(1,
|
|
33
|
+
namespaceId: TlvField(1, TlvEnum()),
|
|
34
34
|
/**
|
|
35
35
|
* The Tag field shall be the ID of a semantic tag located within the namespace indicated by NamespaceID.
|
|
36
36
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/globals/Semtag.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,UAAU,kBAAkB,iBAAiB;AACtD,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,UAAU,kBAAkB,iBAAiB;AACtD,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAE5B,SAAS,SAAS,gBAAgB;AAClC,SAAS,iBAAiB;AAUnB,MAAM,YAAY,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc/B,SAAS,SAAS,GAAG,YAAY,WAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS7C,aAAa,SAAS,GAAG,QAAmB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU7C,KAAK,SAAS,GAAG,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAazB,OAAO,iBAAiB,GAAG,YAAY,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;AAC9E,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -12,6 +12,7 @@ export * from "./MeasurementType.js";
|
|
|
12
12
|
export * from "./SoftwareVersionCertificationStatus.js";
|
|
13
13
|
export * from "./WildcardPathFlags.js";
|
|
14
14
|
export * from "./Locationdesc.js";
|
|
15
|
+
export * from "./Namespace.js";
|
|
15
16
|
export * from "./Priority.js";
|
|
16
17
|
export * from "./Semtag.js";
|
|
17
18
|
export * from "./Status.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/globals/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/globals/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
@@ -11,6 +11,7 @@ export * from "./MeasurementType.js";
|
|
|
11
11
|
export * from "./SoftwareVersionCertificationStatus.js";
|
|
12
12
|
export * from "./WildcardPathFlags.js";
|
|
13
13
|
export * from "./Locationdesc.js";
|
|
14
|
+
export * from "./Namespace.js";
|
|
14
15
|
export * from "./Priority.js";
|
|
15
16
|
export * from "./Semtag.js";
|
|
16
17
|
export * from "./Status.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/globals/index.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TlvString.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvString.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjE,KAAK,iBAAiB,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEzG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"TlvString.d.ts","sourceRoot":"","sources":["../../../src/tlv/TlvString.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAY,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjE,KAAK,iBAAiB,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAE,SAAQ,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEzG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAE1B,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAHjB,IAAI,EAAE,CAAC,EACP,SAAS,GAAE,MAAU,EAErB,SAAS,GAAE,MAAa;IAU5B,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlF,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC;IAKvF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAejD,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,iBAAiB;CAO5D;AAED,6BAA6B;AAC7B,eAAO,MAAM,aAAa,kCAAuC,CAAC;AAElE,yBAAyB;AACzB,eAAO,MAAM,SAAS,kCAAuC,CAAC;AAE9D,yBAAyB;AACzB,eAAO,MAAM,cAAc,kCAAqC,CAAC;AAEjE,yBAAyB;AACzB,eAAO,MAAM,cAAc,kCAAqC,CAAC;AAEjE,yBAAyB;AACzB,eAAO,MAAM,eAAe,kCAAsC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,kCAAsD,CAAC"}
|
|
@@ -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 { ImplementationError, serialize, UnexpectedDataError } from "#general";
|
|
7
7
|
import { ValidationDatatypeMismatchError, ValidationOutOfBoundsError } from "../common/ValidationError.js";
|
|
8
8
|
import { TlvCodec, TlvType } from "./TlvCodec.js";
|
|
9
9
|
import { TlvSchema } from "./TlvSchema.js";
|
|
@@ -13,7 +13,10 @@ class StringSchema extends TlvSchema {
|
|
|
13
13
|
this.type = type;
|
|
14
14
|
this.minLength = minLength;
|
|
15
15
|
this.maxLength = maxLength;
|
|
16
|
-
if (minLength < 0) throw new
|
|
16
|
+
if (minLength < 0) throw new ImplementationError("Minimum length should be a positive number.");
|
|
17
|
+
if (maxLength < 0) throw new ImplementationError("Maximum length should be a positive number.");
|
|
18
|
+
if (minLength > maxLength)
|
|
19
|
+
throw new ImplementationError("Minimum length should be smaller than maximum length.");
|
|
17
20
|
}
|
|
18
21
|
encodeTlvInternal(writer, value, tag) {
|
|
19
22
|
const typeLength = { type: this.type, length: TlvCodec.getUIntTlvLength(value.length) };
|
|
@@ -41,8 +44,8 @@ class StringSchema extends TlvSchema {
|
|
|
41
44
|
bound({ minLength, maxLength, length }) {
|
|
42
45
|
return new StringSchema(
|
|
43
46
|
this.type,
|
|
44
|
-
length ??
|
|
45
|
-
length ??
|
|
47
|
+
length ?? minLength ?? this.minLength,
|
|
48
|
+
length ?? maxLength ?? this.maxLength
|
|
46
49
|
);
|
|
47
50
|
}
|
|
48
51
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tlv/TlvString.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB,WAAW,2BAA2B;AACpE,SAAS,iCAAiC,kCAAkC;AAC5E,SAAS,UAAkC,eAA8B;AACzE,SAAoB,iBAA4B;AAazC,MAAM,qBAAwE,UAA6B;AAAA,EAC9G,YACa,MACA,YAAoB,GAEpB,YAAoB,MAC/B;AACE,UAAM;AALG;AACA;AAEA;AAIT,QAAI,YAAY,EAAG,OAAM,IAAI,oBAAoB,6CAA6C;AAC9F,QAAI,YAAY,EAAG,OAAM,IAAI,oBAAoB,6CAA6C;AAC9F,QAAI,YAAY;AACZ,YAAM,IAAI,oBAAoB,uDAAuD;AAAA,EAC7F;AAAA,EAES,kBAAkB,QAAmB,OAA0B,KAAoB;AACxF,UAAM,aAA4B,EAAE,MAAM,KAAK,MAAM,QAAQ,SAAS,iBAAiB,MAAM,MAAM,EAAE;AACrG,WAAO,SAAS,YAAY,GAAG;AAC/B,WAAO,eAAe,YAAY,KAAK;AAAA,EAC3C;AAAA,EAES,uBAAuB,QAAmB,YAA8C;AAC7F,QAAI,WAAW,SAAS,KAAK,KAAM,OAAM,IAAI,oBAAoB,mBAAmB,WAAW,IAAI,GAAG;AACtG,WAAO,OAAO,cAAc,UAAU;AAAA,EAC1C;AAAA,EAES,SAAS,OAAgC;AAC9C,QAAI,KAAK,SAAS,QAAQ,cAAc,OAAO,UAAU;AACrD,YAAM,IAAI,gCAAgC,wBAAwB,OAAO,KAAK,GAAG;AACrF,QAAI,KAAK,SAAS,QAAQ,cAAc,EAAE,iBAAiB;AACvD,YAAM,IAAI,gCAAgC,4BAA4B,OAAO,KAAK,GAAG;AACzF,QAAI,MAAM,SAAS,KAAK;AACpB,YAAM,IAAI;AAAA,QACN,UAAU,UAAU,KAAK,CAAC,iBAAiB,MAAM,MAAM,SAAS,KAAK,SAAS;AAAA,MAClF;AACJ,QAAI,MAAM,SAAS,KAAK;AACpB,YAAM,IAAI;AAAA,QACN,UAAU,UAAU,KAAK,CAAC,kBAAkB,MAAM,MAAM,SAAS,KAAK,SAAS;AAAA,MACnF;AAAA,EACR;AAAA,EAEA,MAAM,EAAE,WAAW,WAAW,OAAO,GAAsB;AACvD,WAAO,IAAI;AAAA,MACP,KAAK;AAAA,MACL,UAAU,aAAa,KAAK;AAAA,MAC5B,UAAU,aAAa,KAAK;AAAA,IAChC;AAAA,EACJ;AACJ;AAGO,MAAM,gBAAgB,IAAI,aAAa,QAAQ,UAAU;AAGzD,MAAM,YAAY,IAAI,aAAa,QAAQ,UAAU;AAGrD,MAAM,iBAAiB,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC;AAGxD,MAAM,iBAAiB,UAAU,MAAM,EAAE,WAAW,GAAG,CAAC;AAGxD,MAAM,kBAAkB,UAAU,MAAM,EAAE,WAAW,IAAI,CAAC;AAE1D,MAAM,qBAAqB,cAAc,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/types",
|
|
3
|
-
"version": "0.15.2-alpha.0-
|
|
3
|
+
"version": "0.15.2-alpha.0-20250726-93c65d182",
|
|
4
4
|
"description": "Definitions for Matter application",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@matter/general": "0.15.2-alpha.0-
|
|
37
|
-
"@matter/model": "0.15.2-alpha.0-
|
|
36
|
+
"@matter/general": "0.15.2-alpha.0-20250726-93c65d182",
|
|
37
|
+
"@matter/model": "0.15.2-alpha.0-20250726-93c65d182"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@matter/tools": "0.15.2-alpha.0-
|
|
41
|
-
"@matter/testing": "0.15.2-alpha.0-
|
|
40
|
+
"@matter/tools": "0.15.2-alpha.0-20250726-93c65d182",
|
|
41
|
+
"@matter/testing": "0.15.2-alpha.0-20250726-93c65d182"
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
44
44
|
"dist/**/*",
|
|
@@ -15,10 +15,11 @@ import {
|
|
|
15
15
|
Command,
|
|
16
16
|
TlvNoResponse
|
|
17
17
|
} from "../cluster/Cluster.js";
|
|
18
|
-
import { TlvUInt8, TlvUInt16 } from "../tlv/TlvNumber.js";
|
|
18
|
+
import { TlvUInt8, TlvEnum, TlvUInt16 } from "../tlv/TlvNumber.js";
|
|
19
19
|
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
20
20
|
import { BitFlag } from "../schema/BitmapSchema.js";
|
|
21
21
|
import { TlvString } from "../tlv/TlvString.js";
|
|
22
|
+
import { Namespace } from "../globals/Namespace.js";
|
|
22
23
|
import { TlvArray } from "../tlv/TlvArray.js";
|
|
23
24
|
import { TlvField, TlvObject } from "../tlv/TlvObject.js";
|
|
24
25
|
import { TlvVendorId } from "../datatype/VendorId.js";
|
|
@@ -197,7 +198,7 @@ export namespace ModeSelect {
|
|
|
197
198
|
*
|
|
198
199
|
* @see {@link MatterSpecification.v141.Cluster} § 1.9.6.2
|
|
199
200
|
*/
|
|
200
|
-
standardNamespace: FixedAttribute(0x1, TlvNullable(
|
|
201
|
+
standardNamespace: FixedAttribute(0x1, TlvNullable(TlvEnum<Namespace>()), { default: null }),
|
|
201
202
|
|
|
202
203
|
/**
|
|
203
204
|
* This attribute is the list of supported modes that may be selected for the CurrentMode attribute. Each
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Namespace
|
|
11
|
+
*
|
|
12
|
+
* The Namespace type identifies the namespace used for a semantic tag.
|
|
13
|
+
*
|
|
14
|
+
* @see {@link MatterSpecification.v141.Core} § 7.19.2.43
|
|
15
|
+
*/
|
|
16
|
+
export enum Namespace {
|
|
17
|
+
/**
|
|
18
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
19
|
+
* feature of a Closure, e.g. the button to activate opening a garage door.
|
|
20
|
+
*/
|
|
21
|
+
Closure = 1,
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
25
|
+
* movement into a certain compass direction. Note the difference with Chapter 4, Common Compass Location Semantic
|
|
26
|
+
* Tag Namespace.
|
|
27
|
+
*/
|
|
28
|
+
CompassDirection = 2,
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
32
|
+
* position in a certain compass direction (e.g. an outdoor sensor in the North garden). Note the difference with
|
|
33
|
+
* Chapter 3, Common Compass Direction Semantic Tag Namespace.
|
|
34
|
+
*/
|
|
35
|
+
CompassLocation = 3,
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
39
|
+
* movement in a certain direction relative to the device. Note the difference with Chapter 9, Common Position
|
|
40
|
+
* Semantic Tag Namespace.
|
|
41
|
+
*/
|
|
42
|
+
Direction = 4,
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
46
|
+
* certain level for a feature of a device (e.g. a button to set the speed of a fan).
|
|
47
|
+
*/
|
|
48
|
+
Level = 5,
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
52
|
+
* location of a device (e.g. an outdoor temperature sensor).
|
|
53
|
+
*/
|
|
54
|
+
Location = 6,
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
58
|
+
* certain numeric feature of a device (e.g. a numeric input button).
|
|
59
|
+
*/
|
|
60
|
+
Number = 7,
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
64
|
+
* position relative to the device (e.g. the temperature sensor in the top drawer of a refrigerator, or location of
|
|
65
|
+
* the buttons on a multi-button switch device). Note the difference with Chapter 5, Common Direction Semantic Tag
|
|
66
|
+
* Namespace.
|
|
67
|
+
*
|
|
68
|
+
* When multiple endpoints are used for device types, and the associated consumer-facing locations of those
|
|
69
|
+
* endpoints are organized in a straight line, grid or matrix, these endpoints SHOULD be allocated in top-to-bottom,
|
|
70
|
+
* left-to-right order.
|
|
71
|
+
*
|
|
72
|
+
* For grids or arrays larger than 3 elements in any direction, the Row and Column tags SHOULD be used.
|
|
73
|
+
*
|
|
74
|
+
* If the Row or Column tags are used, the Label field in the same Semantic Tag structure shall be filled with a
|
|
75
|
+
* number comprised of Arabic numerals encoded as a string to indicate the row/column of the item. Number words
|
|
76
|
+
* (e.g. "one", "two", etc.) shall NOT be used to describe the position of the item. The first row/column shall use
|
|
77
|
+
* Label "1".
|
|
78
|
+
*/
|
|
79
|
+
Position = 8,
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The tags contained in this namespace are restricted for use in the electrical measurement domain and shall NOT be
|
|
83
|
+
* used in any other domain or context.
|
|
84
|
+
*/
|
|
85
|
+
ElectricalMeasurement = 10,
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The tags contained in this namespace are restricted for use in the laundry domain and shall NOT be used in any
|
|
89
|
+
* other domain or context.
|
|
90
|
+
*/
|
|
91
|
+
Laundry = 14,
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* The tags contained in this namespace are restricted for use in the power source domain and shall NOT be used in
|
|
95
|
+
* any other domain or context.
|
|
96
|
+
*/
|
|
97
|
+
PowerSource = 15,
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with an
|
|
101
|
+
* indoor or outdoor area of a home.
|
|
102
|
+
*/
|
|
103
|
+
AreaNamespace = 16,
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a home
|
|
107
|
+
* landmark.
|
|
108
|
+
*/
|
|
109
|
+
LandmarkNamespace = 17,
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The tags contained in this namespace may be used in any domain or context, to indicate an association with a
|
|
113
|
+
* position relative to some reference, which must be specified by the user of these tags. For example, the position
|
|
114
|
+
* may be relative to a household item, such as a dining table, and the user of these tags must indicate that. Note
|
|
115
|
+
* the difference with Chapter 9, Common Position Semantic Tag Namespace, which contains tags indicating the
|
|
116
|
+
* position relative to the device.
|
|
117
|
+
*/
|
|
118
|
+
RelativePosition = 18,
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* The tags contained in this namespace are restricted for use in the refrigerator domain and shall NOT be used in
|
|
122
|
+
* any other domain or context.
|
|
123
|
+
*/
|
|
124
|
+
Refrigerator = 65,
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The tags contained in this namespace are restricted for use in the room air conditioner domain and shall NOT be
|
|
128
|
+
* used in any other domain or context.
|
|
129
|
+
*/
|
|
130
|
+
RoomAirConditioner = 66,
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* The tags contained in this namespace are restricted for use in the switches domain and shall NOT be used in any
|
|
134
|
+
* other domain or context. They are intended to indicate the function of a button on a switch device to allow a
|
|
135
|
+
* client to make an optimized user interface which matches the actual device without requiring a-priori knowledge
|
|
136
|
+
* of the layout of each specific switch device.
|
|
137
|
+
*
|
|
138
|
+
* Please see the rules for applying these and other tags for switch devices, e.g. from the Common Position
|
|
139
|
+
* Namespace and the Common Number Namespace in the Generic Switch device type section in the Device Library.
|
|
140
|
+
*/
|
|
141
|
+
Switches = 67
|
|
142
|
+
}
|
package/src/globals/Semtag.ts
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
import { TlvField, TlvOptionalField, TlvObject } from "../tlv/TlvObject.js";
|
|
10
10
|
import { TlvVendorId } from "../datatype/VendorId.js";
|
|
11
11
|
import { TlvNullable } from "../tlv/TlvNullable.js";
|
|
12
|
-
import {
|
|
12
|
+
import { Namespace } from "./Namespace.js";
|
|
13
|
+
import { TlvEnum, TlvUInt8 } from "../tlv/TlvNumber.js";
|
|
13
14
|
import { TlvString } from "../tlv/TlvString.js";
|
|
14
15
|
import { TypeFromSchema } from "../tlv/TlvSchema.js";
|
|
15
16
|
|
|
@@ -43,7 +44,7 @@ export const TlvSemtag = TlvObject({
|
|
|
43
44
|
*
|
|
44
45
|
* @see {@link MatterSpecification.v141.Core} § 7.19.2.42.2
|
|
45
46
|
*/
|
|
46
|
-
namespaceId: TlvField(1,
|
|
47
|
+
namespaceId: TlvField(1, TlvEnum<Namespace>()),
|
|
47
48
|
|
|
48
49
|
/**
|
|
49
50
|
* The Tag field shall be the ID of a semantic tag located within the namespace indicated by NamespaceID.
|
package/src/globals/index.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./MeasurementType.js";
|
|
|
14
14
|
export * from "./SoftwareVersionCertificationStatus.js";
|
|
15
15
|
export * from "./WildcardPathFlags.js";
|
|
16
16
|
export * from "./Locationdesc.js";
|
|
17
|
+
export * from "./Namespace.js";
|
|
17
18
|
export * from "./Priority.js";
|
|
18
19
|
export * from "./Semtag.js";
|
|
19
20
|
export * from "./Status.js";
|
package/src/tlv/TlvString.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { ImplementationError, serialize, UnexpectedDataError } from "#general";
|
|
8
8
|
import { ValidationDatatypeMismatchError, ValidationOutOfBoundsError } from "../common/ValidationError.js";
|
|
9
9
|
import { TlvCodec, TlvTag, TlvToPrimitive, TlvType, TlvTypeLength } from "./TlvCodec.js";
|
|
10
10
|
import { TlvReader, TlvSchema, TlvWriter } from "./TlvSchema.js";
|
|
@@ -24,11 +24,15 @@ export class StringSchema<T extends TlvType.ByteString | TlvType.Utf8String> ext
|
|
|
24
24
|
constructor(
|
|
25
25
|
readonly type: T,
|
|
26
26
|
readonly minLength: number = 0,
|
|
27
|
+
// Formally, Matter Spec defines 2^64-1 as length limit, but we want to protect against memory overflow as default
|
|
27
28
|
readonly maxLength: number = 1024,
|
|
28
29
|
) {
|
|
29
30
|
super();
|
|
30
31
|
|
|
31
|
-
if (minLength < 0) throw new
|
|
32
|
+
if (minLength < 0) throw new ImplementationError("Minimum length should be a positive number.");
|
|
33
|
+
if (maxLength < 0) throw new ImplementationError("Maximum length should be a positive number.");
|
|
34
|
+
if (minLength > maxLength)
|
|
35
|
+
throw new ImplementationError("Minimum length should be smaller than maximum length.");
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
override encodeTlvInternal(writer: TlvWriter, value: TlvToPrimitive[T], tag?: TlvTag): void {
|
|
@@ -60,8 +64,8 @@ export class StringSchema<T extends TlvType.ByteString | TlvType.Utf8String> ext
|
|
|
60
64
|
bound({ minLength, maxLength, length }: LengthConstraints) {
|
|
61
65
|
return new StringSchema(
|
|
62
66
|
this.type,
|
|
63
|
-
length ??
|
|
64
|
-
length ??
|
|
67
|
+
length ?? minLength ?? this.minLength,
|
|
68
|
+
length ?? maxLength ?? this.maxLength,
|
|
65
69
|
);
|
|
66
70
|
}
|
|
67
71
|
}
|