@project-chip/matter.js 0.0.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +14 -0
  2. package/dist/cjs/cluster/AccessControlCluster.js +105 -0
  3. package/dist/cjs/cluster/BasicInformationCluster.js +92 -0
  4. package/dist/cjs/cluster/BindingCluster.js +51 -0
  5. package/dist/cjs/cluster/BridgedDeviceBasicInformationCluster.js +75 -0
  6. package/dist/cjs/cluster/Cluster.js +49 -0
  7. package/dist/cjs/cluster/DescriptorCluster.js +53 -0
  8. package/dist/cjs/cluster/GeneralCommissioningCluster.js +89 -0
  9. package/dist/cjs/cluster/GroupsCluster.js +140 -0
  10. package/dist/cjs/cluster/IdentifyCluster.js +55 -0
  11. package/dist/cjs/cluster/LabelCluster.js +55 -0
  12. package/dist/cjs/cluster/OnOffCluster.js +105 -0
  13. package/dist/cjs/cluster/OperationalCredentialsCluster.js +205 -0
  14. package/dist/cjs/cluster/ScenesCluster.js +236 -0
  15. package/dist/cjs/common/AttributeId.js +23 -0
  16. package/dist/cjs/common/ClusterId.js +24 -0
  17. package/dist/cjs/common/DeviceTypeId.js +23 -0
  18. package/dist/cjs/common/EndpointNumber.js +23 -0
  19. package/dist/cjs/common/FabricId.js +24 -0
  20. package/dist/cjs/common/FabricIndex.js +28 -0
  21. package/dist/cjs/common/GroupId.js +30 -0
  22. package/dist/cjs/common/NodeId.js +31 -0
  23. package/dist/cjs/common/SubjectId.js +11 -0
  24. package/dist/cjs/common/VendorId.js +25 -0
  25. package/{dist-cjs → dist/cjs}/matter.js +12 -0
  26. package/dist/cjs/protocol/InteractionProtocol.js +136 -0
  27. package/dist/cjs/schema/BitmapSchema.js +133 -0
  28. package/{dist-cjs → dist/cjs}/tlv/TlvObject.js +6 -2
  29. package/{dist-cjs → dist/cjs}/util/ByteArray.js +2 -0
  30. package/{dist-cjs → dist/cjs}/util/Type.js +3 -0
  31. package/dist/dts/cluster/AccessControlCluster.d.ts +108 -0
  32. package/dist/dts/cluster/BasicInformationCluster.d.ts +57 -0
  33. package/dist/dts/cluster/BindingCluster.d.ts +23 -0
  34. package/dist/dts/cluster/BridgedDeviceBasicInformationCluster.d.ts +53 -0
  35. package/dist/dts/cluster/Cluster.d.ts +109 -0
  36. package/dist/dts/cluster/DescriptorCluster.d.ts +25 -0
  37. package/dist/dts/cluster/GeneralCommissioningCluster.d.ts +94 -0
  38. package/dist/dts/cluster/GroupsCluster.d.ts +92 -0
  39. package/dist/dts/cluster/IdentifyCluster.d.ts +60 -0
  40. package/dist/dts/cluster/LabelCluster.d.ts +34 -0
  41. package/dist/dts/cluster/OnOffCluster.d.ts +85 -0
  42. package/dist/dts/cluster/OperationalCredentialsCluster.d.ts +156 -0
  43. package/dist/dts/cluster/ScenesCluster.d.ts +200 -0
  44. package/dist/dts/common/AttributeId.d.ts +17 -0
  45. package/dist/dts/common/ClusterId.d.ts +18 -0
  46. package/dist/dts/common/DeviceTypeId.d.ts +17 -0
  47. package/dist/dts/common/EndpointNumber.d.ts +17 -0
  48. package/dist/dts/common/FabricId.d.ts +18 -0
  49. package/dist/dts/common/FabricIndex.d.ts +22 -0
  50. package/dist/dts/common/GroupId.d.ts +24 -0
  51. package/dist/dts/common/NodeId.d.ts +19 -0
  52. package/dist/dts/common/SubjectId.d.ts +15 -0
  53. package/dist/dts/common/VendorId.d.ts +19 -0
  54. package/dist/{matter.d.ts → dts/matter.d.ts} +12 -0
  55. package/dist/dts/protocol/InteractionProtocol.d.ts +159 -0
  56. package/dist/{schema → dts/schema}/BitmapSchema.d.ts +15 -3
  57. package/dist/{util → dts/util}/Type.d.ts +1 -0
  58. package/dist/es/cluster/AccessControlCluster.js +102 -0
  59. package/dist/es/cluster/BasicInformationCluster.js +89 -0
  60. package/dist/es/cluster/BindingCluster.js +48 -0
  61. package/dist/es/cluster/BridgedDeviceBasicInformationCluster.js +72 -0
  62. package/dist/es/cluster/Cluster.js +36 -0
  63. package/dist/es/cluster/DescriptorCluster.js +50 -0
  64. package/dist/es/cluster/GeneralCommissioningCluster.js +86 -0
  65. package/dist/es/cluster/GroupsCluster.js +137 -0
  66. package/dist/es/cluster/IdentifyCluster.js +52 -0
  67. package/dist/es/cluster/LabelCluster.js +52 -0
  68. package/dist/es/cluster/OnOffCluster.js +102 -0
  69. package/dist/es/cluster/OperationalCredentialsCluster.js +202 -0
  70. package/dist/es/cluster/ScenesCluster.js +233 -0
  71. package/dist/es/common/AttributeId.js +19 -0
  72. package/dist/es/common/ClusterId.js +20 -0
  73. package/dist/es/common/DeviceTypeId.js +19 -0
  74. package/dist/es/common/EndpointNumber.js +19 -0
  75. package/dist/es/common/FabricId.js +20 -0
  76. package/dist/es/common/FabricIndex.js +24 -0
  77. package/dist/es/common/GroupId.js +26 -0
  78. package/dist/es/common/NodeId.js +27 -0
  79. package/dist/es/common/SubjectId.js +8 -0
  80. package/dist/es/common/VendorId.js +21 -0
  81. package/dist/{matter.js → es/matter.js} +12 -0
  82. package/dist/es/protocol/InteractionProtocol.js +133 -0
  83. package/dist/es/schema/BitmapSchema.js +125 -0
  84. package/dist/{tlv → es/tlv}/TlvObject.js +6 -2
  85. package/dist/{util → es/util}/ByteArray.js +2 -0
  86. package/dist/{util → es/util}/Type.js +1 -1
  87. package/package.json +7 -8
  88. package/dist/schema/BitmapSchema.js +0 -48
  89. package/dist-cjs/schema/BitmapSchema.js +0 -55
  90. /package/{dist-cjs → dist/cjs}/schema/Schema.js +0 -0
  91. /package/{dist-cjs → dist/cjs}/spec/Specifications.js +0 -0
  92. /package/{dist-cjs → dist/cjs}/tlv/TlvAny.js +0 -0
  93. /package/{dist-cjs → dist/cjs}/tlv/TlvArray.js +0 -0
  94. /package/{dist-cjs → dist/cjs}/tlv/TlvBoolean.js +0 -0
  95. /package/{dist-cjs → dist/cjs}/tlv/TlvCodec.js +0 -0
  96. /package/{dist-cjs → dist/cjs}/tlv/TlvNullable.js +0 -0
  97. /package/{dist-cjs → dist/cjs}/tlv/TlvNumber.js +0 -0
  98. /package/{dist-cjs → dist/cjs}/tlv/TlvSchema.js +0 -0
  99. /package/{dist-cjs → dist/cjs}/tlv/TlvString.js +0 -0
  100. /package/{dist-cjs → dist/cjs}/tlv/TlvVoid.js +0 -0
  101. /package/{dist-cjs → dist/cjs}/tlv/TlvWrapper.js +0 -0
  102. /package/{dist-cjs → dist/cjs}/util/DataReader.js +0 -0
  103. /package/{dist-cjs → dist/cjs}/util/DataWriter.js +0 -0
  104. /package/{dist-cjs → dist/cjs}/util/Number.js +0 -0
  105. /package/dist/{schema → dts/schema}/Schema.d.ts +0 -0
  106. /package/dist/{spec → dts/spec}/Specifications.d.ts +0 -0
  107. /package/dist/{tlv → dts/tlv}/TlvAny.d.ts +0 -0
  108. /package/dist/{tlv → dts/tlv}/TlvArray.d.ts +0 -0
  109. /package/dist/{tlv → dts/tlv}/TlvBoolean.d.ts +0 -0
  110. /package/dist/{tlv → dts/tlv}/TlvCodec.d.ts +0 -0
  111. /package/dist/{tlv → dts/tlv}/TlvNullable.d.ts +0 -0
  112. /package/dist/{tlv → dts/tlv}/TlvNumber.d.ts +0 -0
  113. /package/dist/{tlv → dts/tlv}/TlvObject.d.ts +0 -0
  114. /package/dist/{tlv → dts/tlv}/TlvSchema.d.ts +0 -0
  115. /package/dist/{tlv → dts/tlv}/TlvString.d.ts +0 -0
  116. /package/dist/{tlv → dts/tlv}/TlvVoid.d.ts +0 -0
  117. /package/dist/{tlv → dts/tlv}/TlvWrapper.d.ts +0 -0
  118. /package/dist/{util → dts/util}/ByteArray.d.ts +0 -0
  119. /package/dist/{util → dts/util}/DataReader.d.ts +0 -0
  120. /package/dist/{util → dts/util}/DataWriter.d.ts +0 -0
  121. /package/dist/{util → dts/util}/Number.d.ts +0 -0
  122. /package/dist/{schema → es/schema}/Schema.js +0 -0
  123. /package/dist/{spec → es/spec}/Specifications.js +0 -0
  124. /package/dist/{tlv → es/tlv}/TlvAny.js +0 -0
  125. /package/dist/{tlv → es/tlv}/TlvArray.js +0 -0
  126. /package/dist/{tlv → es/tlv}/TlvBoolean.js +0 -0
  127. /package/dist/{tlv → es/tlv}/TlvCodec.js +0 -0
  128. /package/dist/{tlv → es/tlv}/TlvNullable.js +0 -0
  129. /package/dist/{tlv → es/tlv}/TlvNumber.js +0 -0
  130. /package/dist/{tlv → es/tlv}/TlvSchema.js +0 -0
  131. /package/dist/{tlv → es/tlv}/TlvString.js +0 -0
  132. /package/dist/{tlv → es/tlv}/TlvVoid.js +0 -0
  133. /package/dist/{tlv → es/tlv}/TlvWrapper.js +0 -0
  134. /package/dist/{util → es/util}/DataReader.js +0 -0
  135. /package/dist/{util → es/util}/DataWriter.js +0 -0
  136. /package/dist/{util → es/util}/Number.js +0 -0
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ScenesCluster = exports.TlvExtensionFieldSet = void 0;
9
+ const Cluster_js_1 = require("./Cluster.js");
10
+ const GroupId_js_1 = require("../common/GroupId.js");
11
+ const ClusterId_js_1 = require("../common/ClusterId.js");
12
+ const NodeId_js_1 = require("../common/NodeId.js");
13
+ const AttributeId_js_1 = require("../common/AttributeId.js");
14
+ const TlvObject_js_1 = require("../tlv/TlvObject.js");
15
+ const TlvArray_js_1 = require("../tlv/TlvArray.js");
16
+ const TlvAny_js_1 = require("../tlv/TlvAny.js");
17
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
18
+ const TlvString_js_1 = require("../tlv/TlvString.js");
19
+ const TlvNullable_js_1 = require("../tlv/TlvNullable.js");
20
+ const BitmapSchema_js_1 = require("../schema/BitmapSchema.js");
21
+ const TlvBoolean_js_1 = require("../tlv/TlvBoolean.js");
22
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.6.1 */
23
+ const TlvAttributeValuePair = (0, TlvObject_js_1.TlvObject)({
24
+ /**
25
+ * This field SHALL be present or not present, for all instances in the Scenes cluster. If this field is
26
+ * not present, then the data type of AttributeValue SHALL be determined by the order and data type defined
27
+ * in the cluster specification. Otherwise the data type of AttributeValue SHALL be the data type of the
28
+ * attribute indicated by AttributeID.
29
+ */
30
+ attributeId: (0, TlvObject_js_1.TlvField)(0, AttributeId_js_1.TlvAttributeId),
31
+ /** This is the attribute value as part of an extension field set. */
32
+ attributeValue: (0, TlvObject_js_1.TlvField)(1, (0, TlvArray_js_1.TlvArray)(TlvAny_js_1.TlvAny)),
33
+ });
34
+ /**
35
+ * This data type indicates for a given cluster a set of attributes and their values. Only attributes which
36
+ * have the "S" designation in the Quality column of the cluster specification SHALL be used in the
37
+ * AttributeValueList field.
38
+ *
39
+ * @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.6.2
40
+ */
41
+ exports.TlvExtensionFieldSet = (0, TlvObject_js_1.TlvObject)({
42
+ clusterId: (0, TlvObject_js_1.TlvField)(0, ClusterId_js_1.TlvClusterId),
43
+ attributeValueList: (0, TlvObject_js_1.TlvField)(1, (0, TlvArray_js_1.TlvArray)(TlvAttributeValuePair)),
44
+ });
45
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.2 and 1.4.9.9 */
46
+ const TlvAddSceneRequest = (0, TlvObject_js_1.TlvObject)({
47
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
48
+ sceneId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt8),
49
+ transitionTime: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt16),
50
+ sceneName: (0, TlvObject_js_1.TlvField)(3, TlvString_js_1.TlvString.bound({ maxLength: 16 })),
51
+ extensionFieldSets: (0, TlvObject_js_1.TlvField)(4, (0, TlvArray_js_1.TlvArray)(exports.TlvExtensionFieldSet)),
52
+ });
53
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.3 and § 1.4.9.10 */
54
+ const TlvViewSceneRequest = (0, TlvObject_js_1.TlvObject)({
55
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
56
+ sceneId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt8),
57
+ });
58
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.4 */
59
+ const TlvRemoveSceneRequest = (0, TlvObject_js_1.TlvObject)({
60
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
61
+ sceneId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt8),
62
+ });
63
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.5 */
64
+ const TlvRemoveAllScenesRequest = (0, TlvObject_js_1.TlvObject)({
65
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
66
+ });
67
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.6 */
68
+ const TlvStoreSceneRequest = (0, TlvObject_js_1.TlvObject)({
69
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
70
+ sceneId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt8),
71
+ });
72
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.7 */
73
+ const TlvRecallSceneRequest = (0, TlvObject_js_1.TlvObject)({
74
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
75
+ sceneId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt8),
76
+ transitionTime: (0, TlvObject_js_1.TlvOptionalField)(2, (0, TlvNullable_js_1.TlvNullable)(TlvNumber_js_1.TlvUInt16)),
77
+ });
78
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.8 */
79
+ const TlvGetSceneMembershipRequest = (0, TlvObject_js_1.TlvObject)({
80
+ groupId: (0, TlvObject_js_1.TlvField)(0, GroupId_js_1.TlvGroupId),
81
+ });
82
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.11.1 */
83
+ const TlvScenesCopyMode = (0, TlvNumber_js_1.TlvBitmap)(TlvNumber_js_1.TlvUInt8, {
84
+ copyAllScenes: (0, BitmapSchema_js_1.BitFlag)(0),
85
+ });
86
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.11 */
87
+ const TlvCopySceneRequest = (0, TlvObject_js_1.TlvObject)({
88
+ /** Contains information of how the scene copy is to proceed. Bitmap: see 1.4.9.11.1 */
89
+ mode: (0, TlvObject_js_1.TlvField)(0, TlvScenesCopyMode),
90
+ /** Specifies the identifier of the group from which the scene is to be copied. */
91
+ groupIdFrom: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
92
+ /** Specifies the identifier of the scene from which the scene is to be copied. */
93
+ sceneIdFrom: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt8),
94
+ /** Specifies the identifier of the group to which the scene is to be copied. */
95
+ TlvGroupIdo: (0, TlvObject_js_1.TlvField)(3, GroupId_js_1.TlvGroupId),
96
+ /** Specifies the identifier of the scene to which the scene is to be copied. */
97
+ sceneIdTo: (0, TlvObject_js_1.TlvField)(4, TlvNumber_js_1.TlvUInt8),
98
+ });
99
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.12 and § 1.4.9.18 */
100
+ const TlvAddSceneResponse = (0, TlvObject_js_1.TlvObject)({
101
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
102
+ groupId: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
103
+ sceneId: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt8),
104
+ });
105
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.13 and § 1.4.9.19 */
106
+ const TlvViewSceneResponse = (0, TlvObject_js_1.TlvObject)({
107
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
108
+ groupId: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
109
+ sceneId: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt8),
110
+ transitionTime: (0, TlvObject_js_1.TlvOptionalField)(3, TlvNumber_js_1.TlvUInt16),
111
+ sceneName: (0, TlvObject_js_1.TlvOptionalField)(4, TlvString_js_1.TlvString.bound({ maxLength: 16 })),
112
+ extensionFieldSets: (0, TlvObject_js_1.TlvOptionalField)(5, (0, TlvArray_js_1.TlvArray)(exports.TlvExtensionFieldSet)),
113
+ });
114
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.14 */
115
+ const TlvRemoveSceneResponse = (0, TlvObject_js_1.TlvObject)({
116
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
117
+ groupId: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
118
+ sceneId: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt8),
119
+ });
120
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.15 */
121
+ const TlvRemoveAllScenesResponse = (0, TlvObject_js_1.TlvObject)({
122
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
123
+ groupId: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
124
+ });
125
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.16 */
126
+ const TlvStoreSceneResponse = (0, TlvObject_js_1.TlvObject)({
127
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
128
+ groupId: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
129
+ sceneId: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt8),
130
+ });
131
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.17 */
132
+ const TlvGetSceneMembershipResponse = (0, TlvObject_js_1.TlvObject)({
133
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
134
+ capacity: (0, TlvObject_js_1.TlvField)(1, (0, TlvNullable_js_1.TlvNullable)(TlvNumber_js_1.TlvUInt8)),
135
+ groupId: (0, TlvObject_js_1.TlvField)(2, GroupId_js_1.TlvGroupId),
136
+ sceneList: (0, TlvObject_js_1.TlvOptionalField)(3, (0, TlvArray_js_1.TlvArray)(TlvNumber_js_1.TlvUInt8)),
137
+ });
138
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9.20 */
139
+ const TlvCopySceneResponse = (0, TlvObject_js_1.TlvObject)({
140
+ /** Contains the status of the copy scene attempt. */
141
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
142
+ /** Specifies the identifier of the group from which the scene was copied. */
143
+ groupIdFrom: (0, TlvObject_js_1.TlvField)(1, GroupId_js_1.TlvGroupId),
144
+ /** Specifies the identifier of the scene from which the scene was copied. */
145
+ sceneIdFrom: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt8),
146
+ });
147
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.7.5 */
148
+ const TlvNameSupportBitmap = (0, TlvNumber_js_1.TlvBitmap)(TlvNumber_js_1.TlvUInt8, {
149
+ sceneNames: (0, BitmapSchema_js_1.BitFlag)(7),
150
+ });
151
+ /**
152
+ * The Scenes cluster provides attributes and commands for setting up and recalling scenes.
153
+ * Each scene corresponds to a set of stored values of specified attributes for one or more
154
+ * clusters on the same end point as the Scenes cluster.
155
+ *
156
+ * @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4
157
+ */
158
+ exports.ScenesCluster = (0, Cluster_js_1.Cluster)({
159
+ id: 0x05,
160
+ name: "Scenes",
161
+ revision: 4,
162
+ features: {
163
+ /** The ability to store a name for a scene. */
164
+ sceneNames: (0, BitmapSchema_js_1.BitFlag)(0),
165
+ },
166
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.7 */
167
+ attributes: {
168
+ /** Specifies the number of scenes currently in the server’s Scene Table. */
169
+ sceneCount: (0, Cluster_js_1.Attribute)(0, TlvNumber_js_1.TlvUInt8, { default: 0 }),
170
+ /** Holds the scene identifier of the scene last invoked. */
171
+ currentScene: (0, Cluster_js_1.Attribute)(1, TlvNumber_js_1.TlvUInt8, { default: 0 }),
172
+ /** Holds the group identifier of the scene last invoked, or 0 if the scene last invoked is not associated with a group. */
173
+ currentGroup: (0, Cluster_js_1.Attribute)(2, TlvNumber_js_1.TlvUInt16.bound({ min: 0, max: 0xfff7 }), { default: 0 }),
174
+ /** Indicates whether the state of the server corresponds to that associated with the CurrentScene and CurrentGroup attributes. */
175
+ sceneValid: (0, Cluster_js_1.Attribute)(3, TlvBoolean_js_1.TlvBoolean, { default: false }),
176
+ /**
177
+ * This attribute provides legacy, read-only access to whether the Scene
178
+ * Names feature is supported. The most significant bit, bit 7, SHALL be
179
+ * equal to bit 0 of the FeatureMap attribute. All other bits SHALL be 0.
180
+ *
181
+ * TODO because we (will) support group names we need to set bit 7 to 1, rest is 0
182
+ */
183
+ nameSupport: (0, Cluster_js_1.Attribute)(4, TlvNameSupportBitmap, { default: { sceneNames: true } }),
184
+ /** Holds the Node ID (the IEEE address in case of Zigbee) of the node that last configured the Scene Table. */
185
+ lastConfiguredBy: (0, Cluster_js_1.OptionalAttribute)(5, (0, TlvNullable_js_1.TlvNullable)(NodeId_js_1.TlvNodeId)),
186
+ },
187
+ /** @see {@link MatterApplicationClusterSpecificationV1_0} § 1.4.9 */
188
+ commands: {
189
+ /**
190
+ * Add a scene to the scene table.
191
+ * Extension field sets are supported, and are inputed as
192
+ * '{"ClusterID": VALUE, "AttributeValueList":[{"AttributeId": VALUE, "AttributeValue": VALUE}]}'
193
+ */
194
+ addScene: (0, Cluster_js_1.Command)(0, TlvAddSceneRequest, 0, TlvAddSceneResponse),
195
+ /**
196
+ * Retrieves the requested scene entry from its Scene table.
197
+ */
198
+ viewScene: (0, Cluster_js_1.Command)(1, TlvViewSceneRequest, 1, TlvViewSceneResponse),
199
+ /**
200
+ * Removes the requested scene entry, corresponding to the value of the GroupID field, from its Scene Table
201
+ */
202
+ removeScene: (0, Cluster_js_1.Command)(2, TlvRemoveSceneRequest, 2, TlvRemoveSceneResponse),
203
+ /**
204
+ * Remove all scenes, corresponding to the value of the GroupID field, from its Scene Table
205
+ */
206
+ removeAllScenes: (0, Cluster_js_1.Command)(3, TlvRemoveAllScenesRequest, 3, TlvRemoveAllScenesResponse),
207
+ /**
208
+ * Adds the scene entry into its Scene Table along with all extension field sets corresponding to the current
209
+ * state of other clusters on the same endpoint
210
+ */
211
+ storeScenes: (0, Cluster_js_1.Command)(4, TlvStoreSceneRequest, 4, TlvStoreSceneResponse),
212
+ /**
213
+ * Set the attributes and corresponding state for each other cluster implemented on the endpoint accordingly to
214
+ * the requested scene entry in the Scene Table
215
+ */
216
+ recallScene: (0, Cluster_js_1.Command)(5, TlvRecallSceneRequest, 5, Cluster_js_1.TlvNoResponse),
217
+ /**
218
+ * Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to
219
+ * get the used scene identifiers within a certain group
220
+ */
221
+ getSceneMembership: (0, Cluster_js_1.Command)(6, TlvGetSceneMembershipRequest, 6, TlvGetSceneMembershipResponse),
222
+ /**
223
+ * Allows a scene to be added using a finer scene transition time than the AddScene command.
224
+ */
225
+ enhancedAddScene: (0, Cluster_js_1.OptionalCommand)(0x40, TlvAddSceneRequest, 0x40, TlvAddSceneResponse),
226
+ /**
227
+ * Allows a scene to be retrieved using a finer scene transition time than the ViewScene command
228
+ */
229
+ enhancedViewScene: (0, Cluster_js_1.OptionalCommand)(0x41, TlvViewSceneRequest, 0x41, TlvViewSceneResponse),
230
+ /**
231
+ * Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene
232
+ * identifier pair.
233
+ */
234
+ copyScene: (0, Cluster_js_1.OptionalCommand)(0x42, TlvCopySceneRequest, 0x42, TlvCopySceneResponse),
235
+ },
236
+ });
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvAttributeId = exports.AttributeId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * An Attribute ID is a 32 bit number and indicates an attribute defined in a cluster specification.
13
+ *
14
+ * @see {@link MatterCoreSpecificationV1_0} § 7.18.2.15
15
+ */
16
+ class AttributeId {
17
+ constructor(id) {
18
+ this.id = id;
19
+ }
20
+ }
21
+ exports.AttributeId = AttributeId;
22
+ /** Tlv schema for an Attribute Id. */
23
+ exports.TlvAttributeId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt32, attributeId => attributeId.id, value => new AttributeId(value));
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvClusterId = exports.ClusterId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * A Cluster Identifier is a 32 bit number and SHALL reference a single cluster specification and
13
+ * SHALL define conformance to that specification.
14
+ *
15
+ * @see {@link MatterCoreSpecificationV1_0} § 7.10
16
+ */
17
+ class ClusterId {
18
+ constructor(id) {
19
+ this.id = id;
20
+ }
21
+ }
22
+ exports.ClusterId = ClusterId;
23
+ /** Tlv schema for a cluster Id. */
24
+ exports.TlvClusterId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt32, clusterId => clusterId.id, value => new ClusterId(value));
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvDeviceTypeId = exports.DeviceTypeId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * A Device type ID is a 32-bit number that defines the type of the device.
13
+ *
14
+ * @see {@link MatterCoreSpecificationV1_0} § 7.15
15
+ */
16
+ class DeviceTypeId {
17
+ constructor(id) {
18
+ this.id = id;
19
+ }
20
+ }
21
+ exports.DeviceTypeId = DeviceTypeId;
22
+ /** Tlv schema for a Device type ID. */
23
+ exports.TlvDeviceTypeId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt32, deviceTypeId => deviceTypeId.id, value => new DeviceTypeId(value));
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvEndpointNumber = exports.EndpointNumber = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * A Endpoint Number is a 16-bit number that that indicates an instance of a device type.
13
+ *
14
+ * @see {@link MatterCoreSpecificationV1_0} § 7.18.2.11
15
+ */
16
+ class EndpointNumber {
17
+ constructor(number) {
18
+ this.number = number;
19
+ }
20
+ }
21
+ exports.EndpointNumber = EndpointNumber;
22
+ /** Tlv schema for an Endpoint number. */
23
+ exports.TlvEndpointNumber = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt16, endpointNumber => endpointNumber.number, value => new EndpointNumber(value));
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvFabricId = exports.FabricId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * A Fabric ID is a 64-bit number that uniquely identifies the Fabric within the scope of
13
+ * a particular root CA.
14
+ *
15
+ * @see {@link MatterCoreSpecificationV1_0} § 2.5.1
16
+ */
17
+ class FabricId {
18
+ constructor(id) {
19
+ this.id = id;
20
+ }
21
+ }
22
+ exports.FabricId = FabricId;
23
+ /** Tlv schema for a Node Identifier. */
24
+ exports.TlvFabricId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt64, fabricId => fabricId.id, value => new FabricId(BigInt(value)));
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvFabricIndex = exports.FabricIndex = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * Each fabric supported on a node is referenced by fabric-index that is unique on the node. This
13
+ * fabric-index enables the look-up of the full fabric information from the fabric-index. A fabric-index
14
+ * of 0 (zero) or null SHALL indicate that there is no fabric associated with the context in which the
15
+ * fabric-index is being used. If fabric-index is used in a context that is exclusively associated with
16
+ * a fabric, such as fabric-scoped data model elements, then the fabric-index values SHALL NOT include 0
17
+ * (zero) or null.
18
+ *
19
+ * @see {@link MatterCoreSpecificationV1_0} § 7.5.2
20
+ */
21
+ class FabricIndex {
22
+ constructor(index) {
23
+ this.index = index;
24
+ }
25
+ }
26
+ exports.FabricIndex = FabricIndex;
27
+ /** Tlv Schema for a Fabric Index. */
28
+ exports.TlvFabricIndex = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt8.bound({ min: 1, max: 254 }), farbricIndex => farbricIndex.index, value => new FabricIndex(value));
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvGroupId = exports.GroupId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * A Group Identifier (Group ID or GID) is a 16-bit number that identifies a set of Nodes across a
13
+ * Fabric at the message layer (see Section 4.15, “Group Key Management”). A Group ID can further
14
+ * be bound to one or more Endpoints within each Node in the group at the interaction layer.
15
+ *
16
+ * The Group ID space is allocated as described in Table 2, “Group ID Allocations”:
17
+ * 0x0000 - Null or unspecified Group ID
18
+ * 0x0001 - 0xFEFF: Application Group ID, assigned by fabric Administrator
19
+ * 0xFF00 - 0xFFFF: Universal Group ID range reserved for static multicast and anycast identifiers
20
+ *
21
+ * @see {@link MatterCoreSpecificationV1_0} § 2.5.4
22
+ */
23
+ class GroupId {
24
+ constructor(id) {
25
+ this.id = id;
26
+ }
27
+ }
28
+ exports.GroupId = GroupId;
29
+ /** Tlv Schema for a Group Id. */
30
+ exports.TlvGroupId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt16, groupId => groupId.id, value => new GroupId(value));
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvNodeId = exports.NodeId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ const ByteArray_js_1 = require("../util/ByteArray.js");
12
+ const DataWriter_js_1 = require("../util/DataWriter.js");
13
+ /**
14
+ * A Node Identifier (Node ID) is a 64-bit number that uniquely identifies an individual Node or a
15
+ * group of Nodes on a Fabric.
16
+ *
17
+ * @see {@link MatterCoreSpecificationV1_0} § 2.5.5
18
+ */
19
+ class NodeId {
20
+ constructor(id) {
21
+ this.id = id;
22
+ }
23
+ toString() {
24
+ const writer = new DataWriter_js_1.DataWriter(ByteArray_js_1.Endian.Big);
25
+ writer.writeUInt64(this.id);
26
+ return writer.toByteArray().toHex().toUpperCase();
27
+ }
28
+ }
29
+ exports.NodeId = NodeId;
30
+ /** Tlv schema for a Node Identifier. */
31
+ exports.TlvNodeId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt64, nodeId => nodeId.id, value => new NodeId(BigInt(value)));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvSubjectId = void 0;
9
+ const NodeId_js_1 = require("./NodeId.js");
10
+ /** Tlv schema for a Subject Id */
11
+ exports.TlvSubjectId = NodeId_js_1.TlvNodeId;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvVendorId = exports.VendorId = void 0;
9
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
10
+ const TlvWrapper_js_1 = require("../tlv/TlvWrapper.js");
11
+ /**
12
+ * A Vendor Identifier (Vendor ID or VID) is a 16-bit number that uniquely identifies a particular
13
+ * product manufacturer, vendor, or group thereof. Each Vendor ID is statically allocated by the
14
+ * Connectivity Standards Alliance (see [CSA Manufacturer Code Database]).
15
+ *
16
+ * @see {@link MatterCoreSpecificationV1_0} § 2.5.2
17
+ */
18
+ class VendorId {
19
+ constructor(id) {
20
+ this.id = id;
21
+ }
22
+ }
23
+ exports.VendorId = VendorId;
24
+ /** Data model for a Vendor Identifier. */
25
+ exports.TlvVendorId = new TlvWrapper_js_1.TlvWrapper(TlvNumber_js_1.TlvUInt16, vendorId => vendorId.id, value => new VendorId(value));
@@ -36,3 +36,15 @@ __exportStar(require("./tlv/TlvString.js"), exports);
36
36
  __exportStar(require("./tlv/TlvNumber.js"), exports);
37
37
  __exportStar(require("./tlv/TlvVoid.js"), exports);
38
38
  __exportStar(require("./tlv/TlvWrapper.js"), exports);
39
+ __exportStar(require("./cluster/AccessControlCluster.js"), exports);
40
+ __exportStar(require("./cluster/BasicInformationCluster.js"), exports);
41
+ __exportStar(require("./cluster/BindingCluster.js"), exports);
42
+ __exportStar(require("./cluster/BridgedDeviceBasicInformationCluster.js"), exports);
43
+ __exportStar(require("./cluster/DescriptorCluster.js"), exports);
44
+ __exportStar(require("./cluster/GeneralCommissioningCluster.js"), exports);
45
+ __exportStar(require("./cluster/GroupsCluster.js"), exports);
46
+ __exportStar(require("./cluster/IdentifyCluster.js"), exports);
47
+ __exportStar(require("./cluster/LabelCluster.js"), exports);
48
+ __exportStar(require("./cluster/OnOffCluster.js"), exports);
49
+ __exportStar(require("./cluster/OperationalCredentialsCluster.js"), exports);
50
+ __exportStar(require("./cluster/ScenesCluster.js"), exports);
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright 2022 Project CHIP Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TlvInvokeResponse = exports.TlvInvokeRequest = exports.TlvSubscribeResponse = exports.TlvSubscribeRequest = exports.TlvReportData = exports.TlvReadRequest = exports.TlvStatusResponse = void 0;
9
+ const NodeId_js_1 = require("../common/NodeId.js");
10
+ const TlvAny_js_1 = require("../tlv/TlvAny.js");
11
+ const TlvArray_js_1 = require("../tlv/TlvArray.js");
12
+ const TlvBoolean_js_1 = require("../tlv/TlvBoolean.js");
13
+ const TlvNumber_js_1 = require("../tlv/TlvNumber.js");
14
+ const TlvObject_js_1 = require("../tlv/TlvObject.js");
15
+ /**
16
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.1. StatusResponseMessage
17
+ */
18
+ exports.TlvStatusResponse = (0, TlvObject_js_1.TlvObject)({
19
+ status: (0, TlvObject_js_1.TlvField)(0, (0, TlvNumber_js_1.TlvEnum)()),
20
+ interactionModelRevision: (0, TlvObject_js_1.TlvField)(0xFF, TlvNumber_js_1.TlvUInt8),
21
+ });
22
+ /**
23
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.5.2. AttributePathIB
24
+ */
25
+ const TlvAttributePath = (0, TlvObject_js_1.TlvList)({
26
+ endpointId: (0, TlvObject_js_1.TlvOptionalField)(2, TlvNumber_js_1.TlvUInt16),
27
+ clusterId: (0, TlvObject_js_1.TlvOptionalField)(3, TlvNumber_js_1.TlvUInt32),
28
+ id: (0, TlvObject_js_1.TlvOptionalField)(4, TlvNumber_js_1.TlvUInt32),
29
+ });
30
+ /**
31
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.2. ReadRequestMessage
32
+ */
33
+ exports.TlvReadRequest = (0, TlvObject_js_1.TlvObject)({
34
+ attributes: (0, TlvObject_js_1.TlvField)(0, (0, TlvArray_js_1.TlvArray)(TlvAttributePath)),
35
+ isFabricFiltered: (0, TlvObject_js_1.TlvField)(3, TlvBoolean_js_1.TlvBoolean),
36
+ interactionModelRevision: (0, TlvObject_js_1.TlvField)(0xFF, TlvNumber_js_1.TlvUInt8),
37
+ });
38
+ /**
39
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.3. ReportDataMessage
40
+ */
41
+ exports.TlvReportData = (0, TlvObject_js_1.TlvObject)({
42
+ subscriptionId: (0, TlvObject_js_1.TlvOptionalField)(0, TlvNumber_js_1.TlvUInt32),
43
+ values: (0, TlvObject_js_1.TlvField)(1, (0, TlvArray_js_1.TlvArray)((0, TlvObject_js_1.TlvObject)({
44
+ value: (0, TlvObject_js_1.TlvField)(1, (0, TlvObject_js_1.TlvObject)({
45
+ version: (0, TlvObject_js_1.TlvField)(0, TlvNumber_js_1.TlvUInt32),
46
+ path: (0, TlvObject_js_1.TlvField)(1, (0, TlvObject_js_1.TlvList)({
47
+ endpointId: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt16),
48
+ clusterId: (0, TlvObject_js_1.TlvField)(3, TlvNumber_js_1.TlvUInt32),
49
+ id: (0, TlvObject_js_1.TlvField)(4, TlvNumber_js_1.TlvUInt32),
50
+ })),
51
+ value: (0, TlvObject_js_1.TlvField)(2, TlvAny_js_1.TlvAny),
52
+ })),
53
+ }))),
54
+ isFabricFiltered: (0, TlvObject_js_1.TlvOptionalField)(4, TlvBoolean_js_1.TlvBoolean),
55
+ interactionModelRevision: (0, TlvObject_js_1.TlvField)(0xFF, TlvNumber_js_1.TlvUInt8),
56
+ });
57
+ /**
58
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.4. SubscribeRequestMessage
59
+ */
60
+ exports.TlvSubscribeRequest = (0, TlvObject_js_1.TlvObject)({
61
+ keepSubscriptions: (0, TlvObject_js_1.TlvField)(0, TlvBoolean_js_1.TlvBoolean),
62
+ minIntervalFloorSeconds: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt16),
63
+ maxIntervalCeilingSeconds: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt16),
64
+ attributeRequests: (0, TlvObject_js_1.TlvOptionalField)(3, (0, TlvArray_js_1.TlvArray)(TlvAttributePath)),
65
+ eventRequests: (0, TlvObject_js_1.TlvOptionalField)(4, (0, TlvArray_js_1.TlvArray)((0, TlvObject_js_1.TlvList)({
66
+ node: (0, TlvObject_js_1.TlvField)(0, NodeId_js_1.TlvNodeId),
67
+ endpoint: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt16),
68
+ cluster: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt32),
69
+ event: (0, TlvObject_js_1.TlvField)(3, TlvNumber_js_1.TlvUInt32),
70
+ isUrgent: (0, TlvObject_js_1.TlvField)(4, TlvBoolean_js_1.TlvBoolean),
71
+ }))),
72
+ eventFilters: (0, TlvObject_js_1.TlvOptionalField)(5, (0, TlvArray_js_1.TlvArray)((0, TlvObject_js_1.TlvList)({
73
+ node: (0, TlvObject_js_1.TlvField)(0, NodeId_js_1.TlvNodeId),
74
+ eventMin: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt64),
75
+ }))),
76
+ isFabricFiltered: (0, TlvObject_js_1.TlvField)(7, TlvBoolean_js_1.TlvBoolean),
77
+ dataVersionFilters: (0, TlvObject_js_1.TlvOptionalField)(8, (0, TlvArray_js_1.TlvArray)((0, TlvObject_js_1.TlvObject)({
78
+ path: (0, TlvObject_js_1.TlvField)(0, (0, TlvObject_js_1.TlvList)({
79
+ node: (0, TlvObject_js_1.TlvField)(0, NodeId_js_1.TlvNodeId),
80
+ endpoint: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt16),
81
+ cluster: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt32),
82
+ })),
83
+ dataVersion: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt32),
84
+ }))),
85
+ });
86
+ /**
87
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.5. SubscribeResponseMessage
88
+ */
89
+ exports.TlvSubscribeResponse = (0, TlvObject_js_1.TlvObject)({
90
+ subscriptionId: (0, TlvObject_js_1.TlvField)(0, TlvNumber_js_1.TlvUInt32),
91
+ maxIntervalCeilingSeconds: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt16),
92
+ interactionModelRevision: (0, TlvObject_js_1.TlvField)(0xFF, TlvNumber_js_1.TlvUInt8),
93
+ });
94
+ /**
95
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.9. InvokeRequestMessage
96
+ */
97
+ exports.TlvInvokeRequest = (0, TlvObject_js_1.TlvObject)({
98
+ suppressResponse: (0, TlvObject_js_1.TlvField)(0, TlvBoolean_js_1.TlvBoolean),
99
+ timedRequest: (0, TlvObject_js_1.TlvField)(1, TlvBoolean_js_1.TlvBoolean),
100
+ invokes: (0, TlvObject_js_1.TlvField)(2, (0, TlvArray_js_1.TlvArray)((0, TlvObject_js_1.TlvObject)({
101
+ path: (0, TlvObject_js_1.TlvField)(0, (0, TlvObject_js_1.TlvList)({
102
+ endpointId: (0, TlvObject_js_1.TlvField)(0, TlvNumber_js_1.TlvUInt16),
103
+ clusterId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt32),
104
+ id: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt32),
105
+ })),
106
+ args: (0, TlvObject_js_1.TlvField)(1, TlvAny_js_1.TlvAny),
107
+ }))),
108
+ interactionModelRevision: (0, TlvObject_js_1.TlvField)(0xFF, TlvNumber_js_1.TlvUInt8),
109
+ });
110
+ /**
111
+ * @see {@link MatterCoreSpecificationV1_0}, section 10.6.10. InvokeResponseMessage
112
+ */
113
+ exports.TlvInvokeResponse = (0, TlvObject_js_1.TlvObject)({
114
+ suppressResponse: (0, TlvObject_js_1.TlvField)(0, TlvBoolean_js_1.TlvBoolean),
115
+ responses: (0, TlvObject_js_1.TlvField)(1, (0, TlvArray_js_1.TlvArray)((0, TlvObject_js_1.TlvObject)({
116
+ response: (0, TlvObject_js_1.TlvOptionalField)(0, (0, TlvObject_js_1.TlvObject)({
117
+ path: (0, TlvObject_js_1.TlvField)(0, (0, TlvObject_js_1.TlvList)({
118
+ endpointId: (0, TlvObject_js_1.TlvField)(0, TlvNumber_js_1.TlvUInt16),
119
+ clusterId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt32),
120
+ id: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt32),
121
+ })),
122
+ response: (0, TlvObject_js_1.TlvField)(1, TlvAny_js_1.TlvAny),
123
+ })),
124
+ result: (0, TlvObject_js_1.TlvOptionalField)(1, (0, TlvObject_js_1.TlvObject)({
125
+ path: (0, TlvObject_js_1.TlvField)(0, (0, TlvObject_js_1.TlvList)({
126
+ endpointId: (0, TlvObject_js_1.TlvField)(0, TlvNumber_js_1.TlvUInt16),
127
+ clusterId: (0, TlvObject_js_1.TlvField)(1, TlvNumber_js_1.TlvUInt32),
128
+ id: (0, TlvObject_js_1.TlvField)(2, TlvNumber_js_1.TlvUInt32),
129
+ })),
130
+ result: (0, TlvObject_js_1.TlvField)(1, (0, TlvObject_js_1.TlvObject)({
131
+ code: (0, TlvObject_js_1.TlvField)(0, TlvNumber_js_1.TlvUInt16),
132
+ })),
133
+ })),
134
+ }))),
135
+ interactionModelRevision: (0, TlvObject_js_1.TlvField)(0xFF, TlvNumber_js_1.TlvUInt8),
136
+ });