zigbee-herdsman 5.0.4 → 6.0.1
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/.github/dependabot.yml +3 -0
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/typedoc.yaml +1 -1
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +29 -0
- package/biome.json +1 -1
- package/dist/adapter/ember/ezsp/buffalo.d.ts +0 -2
- package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/buffalo.js +0 -4
- package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +0 -2
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/buffalo/buffalo.d.ts +5 -0
- package/dist/buffalo/buffalo.d.ts.map +1 -1
- package/dist/buffalo/buffalo.js +7 -0
- package/dist/buffalo/buffalo.js.map +1 -1
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +8 -11
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/events.d.ts +2 -1
- package/dist/controller/events.d.ts.map +1 -1
- package/dist/controller/helpers/request.d.ts.map +1 -1
- package/dist/controller/helpers/request.js +2 -1
- package/dist/controller/helpers/request.js.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.d.ts +2 -4
- package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
- package/dist/controller/helpers/zclFrameConverter.js +2 -0
- package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
- package/dist/controller/model/device.d.ts +13 -24
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +88 -129
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts +17 -16
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +31 -16
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/group.d.ts +6 -6
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +5 -3
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/model/index.d.ts +1 -0
- package/dist/controller/model/index.d.ts.map +1 -1
- package/dist/controller/model/index.js +3 -1
- package/dist/controller/model/index.js.map +1 -1
- package/dist/controller/model/zigbeeEntity.d.ts +8 -0
- package/dist/controller/model/zigbeeEntity.d.ts.map +1 -0
- package/dist/controller/model/zigbeeEntity.js +11 -0
- package/dist/controller/model/zigbeeEntity.js.map +1 -0
- package/dist/controller/tstype.d.ts +39 -0
- package/dist/controller/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.d.ts +32 -17
- package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zspec/zcl/buffaloZcl.js +257 -121
- package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
- package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/cluster.js +156 -33
- package/dist/zspec/zcl/definition/cluster.js.map +1 -1
- package/dist/zspec/zcl/definition/clusters-typegen.d.ts +2 -0
- package/dist/zspec/zcl/definition/clusters-typegen.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/clusters-typegen.js +348 -0
- package/dist/zspec/zcl/definition/clusters-typegen.js.map +1 -0
- package/dist/zspec/zcl/definition/clusters-types.d.ts +7238 -0
- package/dist/zspec/zcl/definition/clusters-types.d.ts.map +1 -0
- package/dist/zspec/zcl/definition/clusters-types.js +3 -0
- package/dist/zspec/zcl/definition/clusters-types.js.map +1 -0
- package/dist/zspec/zcl/definition/enums.d.ts +14 -6
- package/dist/zspec/zcl/definition/enums.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/enums.js +15 -6
- package/dist/zspec/zcl/definition/enums.js.map +1 -1
- package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
- package/dist/zspec/zcl/definition/foundation.js +43 -15
- package/dist/zspec/zcl/definition/foundation.js.map +1 -1
- package/dist/zspec/zcl/definition/tstype.d.ts +105 -11
- package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
- package/dist/zspec/zcl/index.d.ts +1 -0
- package/dist/zspec/zcl/index.d.ts.map +1 -1
- package/dist/zspec/zcl/index.js.map +1 -1
- package/dist/zspec/zcl/utils.d.ts +1 -1
- package/dist/zspec/zcl/utils.d.ts.map +1 -1
- package/dist/zspec/zcl/utils.js +1 -1
- package/dist/zspec/zcl/utils.js.map +1 -1
- package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
- package/dist/zspec/zcl/zclFrame.js +32 -20
- package/dist/zspec/zcl/zclFrame.js.map +1 -1
- package/dist/zspec/zdo/buffaloZdo.d.ts +0 -6
- package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
- package/dist/zspec/zdo/buffaloZdo.js +0 -8
- package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
- package/package.json +3 -3
- package/src/adapter/ember/ezsp/buffalo.ts +0 -5
- package/src/adapter/ember/uart/ash.ts +0 -2
- package/src/adapter/ezsp/driver/driver.ts +1 -1
- package/src/buffalo/buffalo.ts +8 -0
- package/src/controller/controller.ts +13 -16
- package/src/controller/events.ts +2 -1
- package/src/controller/greenPower.ts +4 -4
- package/src/controller/helpers/request.ts +3 -1
- package/src/controller/helpers/zclFrameConverter.ts +13 -17
- package/src/controller/model/device.ts +103 -148
- package/src/controller/model/endpoint.ts +112 -64
- package/src/controller/model/group.ts +33 -9
- package/src/controller/model/index.ts +1 -0
- package/src/controller/model/zigbeeEntity.ts +30 -0
- package/src/controller/tstype.ts +251 -16
- package/src/zspec/zcl/buffaloZcl.ts +323 -238
- package/src/zspec/zcl/definition/cluster.ts +156 -33
- package/src/zspec/zcl/definition/clusters-typegen.ts +588 -0
- package/src/zspec/zcl/definition/clusters-types.ts +7331 -0
- package/src/zspec/zcl/definition/enums.ts +14 -5
- package/src/zspec/zcl/definition/foundation.ts +43 -15
- package/src/zspec/zcl/definition/tstype.ts +118 -8
- package/src/zspec/zcl/index.ts +1 -0
- package/src/zspec/zcl/utils.ts +1 -1
- package/src/zspec/zcl/zclFrame.ts +37 -19
- package/src/zspec/zdo/buffaloZdo.ts +0 -9
- package/test/controller.test.ts +356 -896
- package/test/greenpower.test.ts +0 -12
- package/test/zcl.test.ts +13 -11
- package/test/zspec/zcl/buffalo.test.ts +216 -74
- package/test/zspec/zcl/frame.test.ts +62 -28
- package/test/zspec/zcl/utils.test.ts +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusters-typegen.d.ts","sourceRoot":"","sources":["../../../../src/zspec/zcl/definition/clusters-typegen.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* v8 ignore start */
|
|
7
|
+
/**
|
|
8
|
+
* How to run:
|
|
9
|
+
* ```bash
|
|
10
|
+
* npm i -g ts-node
|
|
11
|
+
* ts-node ./src/zspec/zcl/definition/clusters-typegen.ts && pnpm run check:w
|
|
12
|
+
* ```
|
|
13
|
+
* or with compiled:
|
|
14
|
+
* ```bash
|
|
15
|
+
* pnpm run prepack
|
|
16
|
+
* node ./dist/zspec/zcl/definition/clusters-typegen.js && pnpm run check:w
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
const node_fs_1 = require("node:fs");
|
|
20
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
21
|
+
const utils_1 = require("../utils");
|
|
22
|
+
const cluster_1 = require("./cluster");
|
|
23
|
+
const enums_1 = require("./enums");
|
|
24
|
+
const foundation_1 = require("./foundation");
|
|
25
|
+
const manufacturerCode_1 = require("./manufacturerCode");
|
|
26
|
+
const FILENAME = "clusters-types.ts";
|
|
27
|
+
const file = typescript_1.default.createSourceFile(FILENAME, "", typescript_1.default.ScriptTarget.ESNext, false, typescript_1.default.ScriptKind.TS);
|
|
28
|
+
const printer = typescript_1.default.createPrinter({ newLine: typescript_1.default.NewLineKind.LineFeed });
|
|
29
|
+
const emptyObject = typescript_1.default.factory.createTypeReferenceNode("Record", [
|
|
30
|
+
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
|
|
31
|
+
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NeverKeyword),
|
|
32
|
+
]);
|
|
33
|
+
const namedImports = typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(true, undefined, typescript_1.default.factory.createNamedImports([
|
|
34
|
+
// sorted by name
|
|
35
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("ExtensionFieldSet")),
|
|
36
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("Gpd")),
|
|
37
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("GpdAttributeReport")),
|
|
38
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("GpdChannelConfiguration")),
|
|
39
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("GpdChannelRequest")),
|
|
40
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("GpdCommissioningReply")),
|
|
41
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("GpdCustomReply")),
|
|
42
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("MiboxerZone")),
|
|
43
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("Struct")),
|
|
44
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("StructuredSelector")),
|
|
45
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("ThermoTransition")),
|
|
46
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("TuyaDataPointValue")),
|
|
47
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("ZclArray")),
|
|
48
|
+
// ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ZclDate")), // XXX: currently unused
|
|
49
|
+
// ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ZclTimeOfDay")), // XXX: currently unused
|
|
50
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("ZoneInfo")),
|
|
51
|
+
])), typescript_1.default.factory.createStringLiteral("./tstype"), undefined);
|
|
52
|
+
const getTypeFromDataType = (dataType) => {
|
|
53
|
+
switch (dataType) {
|
|
54
|
+
case enums_1.DataType.NO_DATA:
|
|
55
|
+
case enums_1.DataType.UNKNOWN: {
|
|
56
|
+
return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NeverKeyword);
|
|
57
|
+
}
|
|
58
|
+
case enums_1.DataType.DATA56:
|
|
59
|
+
case enums_1.DataType.BITMAP56:
|
|
60
|
+
case enums_1.DataType.UINT56:
|
|
61
|
+
case enums_1.DataType.DATA64:
|
|
62
|
+
case enums_1.DataType.BITMAP64:
|
|
63
|
+
case enums_1.DataType.UINT64:
|
|
64
|
+
case enums_1.DataType.INT56:
|
|
65
|
+
case enums_1.DataType.INT64: {
|
|
66
|
+
return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.BigIntKeyword);
|
|
67
|
+
}
|
|
68
|
+
case enums_1.DataType.OCTET_STR:
|
|
69
|
+
case enums_1.DataType.LONG_OCTET_STR:
|
|
70
|
+
case enums_1.DataType.SEC_KEY: {
|
|
71
|
+
return typescript_1.default.factory.createTypeReferenceNode("Buffer");
|
|
72
|
+
}
|
|
73
|
+
case enums_1.DataType.CHAR_STR:
|
|
74
|
+
case enums_1.DataType.LONG_CHAR_STR:
|
|
75
|
+
case enums_1.DataType.IEEE_ADDR: {
|
|
76
|
+
return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword);
|
|
77
|
+
}
|
|
78
|
+
case enums_1.DataType.ARRAY:
|
|
79
|
+
case enums_1.DataType.SET:
|
|
80
|
+
case enums_1.DataType.BAG: {
|
|
81
|
+
// mismatch on read vs write, have to union
|
|
82
|
+
return typescript_1.default.factory.createUnionTypeNode([
|
|
83
|
+
typescript_1.default.factory.createTypeReferenceNode("ZclArray"),
|
|
84
|
+
typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword)),
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
case enums_1.DataType.STRUCT: {
|
|
88
|
+
return typescript_1.default.factory.createTypeReferenceNode("Struct");
|
|
89
|
+
}
|
|
90
|
+
case enums_1.DataType.TOD: {
|
|
91
|
+
return typescript_1.default.factory.createTypeReferenceNode("ZclTimeOfDay");
|
|
92
|
+
}
|
|
93
|
+
case enums_1.DataType.DATE: {
|
|
94
|
+
return typescript_1.default.factory.createTypeReferenceNode("ZclDate");
|
|
95
|
+
}
|
|
96
|
+
case enums_1.BuffaloZclDataType.USE_DATA_TYPE: {
|
|
97
|
+
return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword);
|
|
98
|
+
}
|
|
99
|
+
case enums_1.BuffaloZclDataType.LIST_UINT8:
|
|
100
|
+
case enums_1.BuffaloZclDataType.LIST_UINT16:
|
|
101
|
+
case enums_1.BuffaloZclDataType.LIST_UINT24:
|
|
102
|
+
case enums_1.BuffaloZclDataType.LIST_UINT32: {
|
|
103
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword));
|
|
104
|
+
}
|
|
105
|
+
case enums_1.BuffaloZclDataType.LIST_ZONEINFO: {
|
|
106
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("ZoneInfo"));
|
|
107
|
+
}
|
|
108
|
+
case enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS: {
|
|
109
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("ExtensionFieldSet"));
|
|
110
|
+
}
|
|
111
|
+
case enums_1.BuffaloZclDataType.LIST_THERMO_TRANSITIONS: {
|
|
112
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("ThermoTransition"));
|
|
113
|
+
}
|
|
114
|
+
case enums_1.BuffaloZclDataType.BUFFER: {
|
|
115
|
+
return typescript_1.default.factory.createTypeReferenceNode("Buffer");
|
|
116
|
+
}
|
|
117
|
+
case enums_1.BuffaloZclDataType.GPD_FRAME: {
|
|
118
|
+
return typescript_1.default.factory.createUnionTypeNode([
|
|
119
|
+
typescript_1.default.factory.createTypeReferenceNode("Gpd"),
|
|
120
|
+
typescript_1.default.factory.createTypeReferenceNode("GpdChannelRequest"),
|
|
121
|
+
typescript_1.default.factory.createTypeReferenceNode("GpdAttributeReport"),
|
|
122
|
+
typescript_1.default.factory.createTypeLiteralNode([
|
|
123
|
+
typescript_1.default.factory.createPropertySignature(undefined, "raw", undefined, typescript_1.default.factory.createTypeReferenceNode("Buffer")),
|
|
124
|
+
]),
|
|
125
|
+
typescript_1.default.factory.createTypeReferenceNode("Record<string, never>"),
|
|
126
|
+
typescript_1.default.factory.createTypeReferenceNode("GpdCommissioningReply"),
|
|
127
|
+
typescript_1.default.factory.createTypeReferenceNode("GpdChannelConfiguration"),
|
|
128
|
+
typescript_1.default.factory.createTypeReferenceNode("GpdCustomReply"),
|
|
129
|
+
]);
|
|
130
|
+
}
|
|
131
|
+
case enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR: {
|
|
132
|
+
return typescript_1.default.factory.createTypeReferenceNode("StructuredSelector");
|
|
133
|
+
}
|
|
134
|
+
case enums_1.BuffaloZclDataType.LIST_TUYA_DATAPOINT_VALUES: {
|
|
135
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("TuyaDataPointValue"));
|
|
136
|
+
}
|
|
137
|
+
case enums_1.BuffaloZclDataType.LIST_MIBOXER_ZONES: {
|
|
138
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("MiboxerZone"));
|
|
139
|
+
}
|
|
140
|
+
default: {
|
|
141
|
+
return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
const getConditionStr = (conditions) => {
|
|
146
|
+
if (conditions) {
|
|
147
|
+
let str = ", Conditions: [";
|
|
148
|
+
for (const condition of conditions) {
|
|
149
|
+
str += `{${condition.type}`;
|
|
150
|
+
for (const key in condition) {
|
|
151
|
+
if (key === "type") {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
str += ` ${key}=${condition[key]}`;
|
|
155
|
+
}
|
|
156
|
+
str += "}";
|
|
157
|
+
}
|
|
158
|
+
return `${str}]`;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const addAttributes = (attributes) => {
|
|
162
|
+
const elements = [];
|
|
163
|
+
for (const attributeName in attributes) {
|
|
164
|
+
const attribute = attributes[attributeName];
|
|
165
|
+
const element = typescript_1.default.factory.createPropertySignature(undefined, attributeName,
|
|
166
|
+
// always optional if manuf-specific
|
|
167
|
+
attribute.manufacturerCode ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken) : undefined, getTypeFromDataType(attribute.type));
|
|
168
|
+
elements.push(element);
|
|
169
|
+
let comment = `* ID: ${attribute.ID} | Type: ${enums_1.DataType[attribute.type] ?? enums_1.BuffaloZclDataType[attribute.type]} `;
|
|
170
|
+
if (attribute.manufacturerCode !== undefined) {
|
|
171
|
+
comment += `| Specific to manufacturer: ${manufacturerCode_1.ManufacturerCode[attribute.manufacturerCode]} (${attribute.manufacturerCode}) `;
|
|
172
|
+
}
|
|
173
|
+
typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, comment, true);
|
|
174
|
+
}
|
|
175
|
+
return elements.length > 0 ? typescript_1.default.factory.createTypeLiteralNode(elements) : typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NeverKeyword);
|
|
176
|
+
};
|
|
177
|
+
const addCommands = (commands) => {
|
|
178
|
+
const elements = [];
|
|
179
|
+
for (const commandName in commands) {
|
|
180
|
+
const command = commands[commandName];
|
|
181
|
+
const cmdElements = [];
|
|
182
|
+
for (const parameter of command.parameters) {
|
|
183
|
+
// @ts-expect-error bad typing?
|
|
184
|
+
const existing = cmdElements.find((element) => element.name.escapedText === parameter.name);
|
|
185
|
+
const paramType = getTypeFromDataType(parameter.type);
|
|
186
|
+
if (!existing) {
|
|
187
|
+
const cmdElement = typescript_1.default.factory.createPropertySignature(undefined, parameter.name, parameter.conditions ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken) : undefined, paramType);
|
|
188
|
+
const conditionComment = getConditionStr(parameter.conditions);
|
|
189
|
+
cmdElements.push(cmdElement);
|
|
190
|
+
typescript_1.default.addSyntheticLeadingComment(cmdElement, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* Type: ${enums_1.DataType[parameter.type] ?? enums_1.BuffaloZclDataType[parameter.type]}${conditionComment ?? ""} `, true);
|
|
191
|
+
}
|
|
192
|
+
else if (
|
|
193
|
+
// @ts-expect-error bad typing?
|
|
194
|
+
existing.type?.typeName?.escapedText &&
|
|
195
|
+
// @ts-expect-error bad typing?
|
|
196
|
+
paramType.typeName?.escapedText &&
|
|
197
|
+
// @ts-expect-error bad typing?
|
|
198
|
+
existing.type.typeName.escapedText !== paramType.typeName.escapedText) {
|
|
199
|
+
// XXX: not currently used, untested
|
|
200
|
+
typescript_1.default.factory.updatePropertySignature(existing, existing.modifiers, existing.name, existing.questionToken, typescript_1.default.factory.createUnionTypeNode([existing.type, paramType]));
|
|
201
|
+
}
|
|
202
|
+
else if (!parameter.conditions) {
|
|
203
|
+
throw new Error(`Two or more cluster command parameters have identical name without conditions. ${JSON.stringify(parameter)}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const element = typescript_1.default.factory.createPropertySignature(undefined, commandName, undefined, cmdElements.length > 0 ? typescript_1.default.factory.createTypeLiteralNode(cmdElements) : emptyObject);
|
|
207
|
+
elements.push(element);
|
|
208
|
+
let comment = `* ID: ${command.ID} `;
|
|
209
|
+
if (command.response !== undefined) {
|
|
210
|
+
comment += `| Response ID: ${command.response} `;
|
|
211
|
+
}
|
|
212
|
+
typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, comment, true);
|
|
213
|
+
}
|
|
214
|
+
return elements.length > 0 ? typescript_1.default.factory.createTypeLiteralNode(elements) : typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NeverKeyword);
|
|
215
|
+
};
|
|
216
|
+
const clusterElements = [];
|
|
217
|
+
for (const clusterName in cluster_1.Clusters) {
|
|
218
|
+
const cluster = cluster_1.Clusters[clusterName];
|
|
219
|
+
const attributesProp = typescript_1.default.factory.createPropertySignature(undefined, "attributes", undefined, addAttributes(cluster.attributes));
|
|
220
|
+
const commandsProp = typescript_1.default.factory.createPropertySignature(undefined, "commands", undefined, addCommands(cluster.commands));
|
|
221
|
+
const commandResponsesProp = typescript_1.default.factory.createPropertySignature(undefined, "commandResponses", undefined, addCommands(cluster.commandsResponse));
|
|
222
|
+
clusterElements.push(typescript_1.default.factory.createPropertySignature(undefined, clusterName, undefined, typescript_1.default.factory.createTypeLiteralNode([attributesProp, commandsProp, commandResponsesProp])));
|
|
223
|
+
}
|
|
224
|
+
const clustersDecl = typescript_1.default.factory.createInterfaceDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusters", undefined, undefined, clusterElements);
|
|
225
|
+
const addParameters = (foundation) => {
|
|
226
|
+
const elements = [];
|
|
227
|
+
for (const parameter of foundation.parameters) {
|
|
228
|
+
const element = typescript_1.default.factory.createPropertySignature(undefined, parameter.name, parameter.conditions ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken) : undefined, getTypeFromDataType(parameter.type));
|
|
229
|
+
const conditionComment = getConditionStr(parameter.conditions);
|
|
230
|
+
elements.push(element);
|
|
231
|
+
typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* Type: ${enums_1.DataType[parameter.type] ?? enums_1.BuffaloZclDataType[parameter.type]}${conditionComment ?? ""} `, true);
|
|
232
|
+
}
|
|
233
|
+
if (elements.length === 0) {
|
|
234
|
+
return emptyObject;
|
|
235
|
+
}
|
|
236
|
+
switch (foundation.parseStrategy) {
|
|
237
|
+
case "repetitive": {
|
|
238
|
+
return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeLiteralNode(elements));
|
|
239
|
+
}
|
|
240
|
+
case "flat": {
|
|
241
|
+
return typescript_1.default.factory.createTypeLiteralNode(elements);
|
|
242
|
+
}
|
|
243
|
+
case "oneof": {
|
|
244
|
+
if ((0, utils_1.isFoundationDiscoverRsp)(foundation.ID)) {
|
|
245
|
+
const discComplete = typescript_1.default.factory.createPropertySignature(undefined, "discComplete", undefined, typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword));
|
|
246
|
+
typescript_1.default.addSyntheticLeadingComment(discComplete, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* Type: ${enums_1.DataType[enums_1.DataType.UINT8]} `, true);
|
|
247
|
+
return typescript_1.default.factory.createTypeLiteralNode([
|
|
248
|
+
discComplete,
|
|
249
|
+
typescript_1.default.factory.createPropertySignature(undefined, "attrInfos", undefined, typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeLiteralNode(elements))),
|
|
250
|
+
]);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
throw new Error(`Unknown command strategy for ${JSON.stringify(foundation)}`);
|
|
255
|
+
};
|
|
256
|
+
const foundationElements = [];
|
|
257
|
+
const foundationRepetitiveElements = [];
|
|
258
|
+
const foundationFlatElements = [];
|
|
259
|
+
const foundationOneOfElements = [];
|
|
260
|
+
for (const foundationName in foundation_1.Foundation) {
|
|
261
|
+
const foundation = foundation_1.Foundation[foundationName];
|
|
262
|
+
const element = typescript_1.default.factory.createPropertySignature(undefined, foundationName, undefined, addParameters(foundation));
|
|
263
|
+
foundationElements.push(element);
|
|
264
|
+
typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* ID: ${foundation.ID} `, true);
|
|
265
|
+
const stratNode = typescript_1.default.factory.createTypeReferenceNode(`"${foundationName}"`);
|
|
266
|
+
switch (foundation.parseStrategy) {
|
|
267
|
+
case "repetitive": {
|
|
268
|
+
foundationRepetitiveElements.push(stratNode);
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
case "flat": {
|
|
272
|
+
foundationFlatElements.push(stratNode);
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
case "oneof": {
|
|
276
|
+
foundationOneOfElements.push(stratNode);
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
const foundationDecl = typescript_1.default.factory.createInterfaceDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundation", undefined, undefined, foundationElements);
|
|
282
|
+
const foundationRepetitiveDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationRepetitive", undefined, typescript_1.default.factory.createUnionTypeNode(foundationRepetitiveElements));
|
|
283
|
+
const foundationFlatDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationFlat", undefined, typescript_1.default.factory.createUnionTypeNode(foundationFlatElements));
|
|
284
|
+
const foundationOneOfDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationOneOf", undefined, typescript_1.default.factory.createUnionTypeNode(foundationOneOfElements));
|
|
285
|
+
const clDecl = typescript_1.default.factory.createTypeParameterDeclaration(undefined, "Cl", typescript_1.default.factory.createUnionTypeNode([
|
|
286
|
+
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword),
|
|
287
|
+
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
|
|
288
|
+
]));
|
|
289
|
+
const coDecl = typescript_1.default.factory.createTypeParameterDeclaration(undefined, "Co", typescript_1.default.factory.createUnionTypeNode([
|
|
290
|
+
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword),
|
|
291
|
+
typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
|
|
292
|
+
]));
|
|
293
|
+
const clusterAttributeKeysDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterAttributeKeys", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? (keyof ${clustersDecl.name.escapedText}[Cl]["attributes"])[] : (string | number)[];`));
|
|
294
|
+
const clusterAttributesDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterAttributes", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? ${clustersDecl.name.escapedText}[Cl]["attributes"] : never`));
|
|
295
|
+
const partialClusterAttributesDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TPartialClusterAttributes", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? Partial<${clustersDecl.name.escapedText}[Cl]["attributes"]> : never`));
|
|
296
|
+
const clusterCommandKeysDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterCommandKeys", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? (keyof ${clustersDecl.name.escapedText}[Cl]["commands"])[] : (string | number)[];`));
|
|
297
|
+
const clusterCommandResponseKeysDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterCommandResponseKeys", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? (keyof ${clustersDecl.name.escapedText}[Cl]["commandResponses"])[] : (string | number)[];`));
|
|
298
|
+
const clusterCommandsDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterCommands", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? ${clustersDecl.name.escapedText}[Cl]["commands"] : never`));
|
|
299
|
+
const clusterCommandResponsesDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterCommandResponses", [clDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? ${clustersDecl.name.escapedText}[Cl]["commandResponses"] : never`));
|
|
300
|
+
const clusterCommandPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterCommandPayload", [clDecl, coDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? Co extends keyof ${clustersDecl.name.escapedText}[Cl]["commands"] ? ${clustersDecl.name.escapedText}[Cl]["commands"][Co] : never : never;`));
|
|
301
|
+
const clusterCommandResponsePayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterCommandResponsePayload", [clDecl, coDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? Co extends keyof ${clustersDecl.name.escapedText}[Cl]["commandResponses"] ? ${clustersDecl.name.escapedText}[Cl]["commandResponses"][Co] : never : never;`));
|
|
302
|
+
const clusterPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterPayload", [clDecl, coDecl], typescript_1.default.factory.createTypeReferenceNode(`Cl extends keyof ${clustersDecl.name.escapedText} ? ${clustersDecl.name.escapedText}[Cl]["commands"] extends never ? ${clustersDecl.name.escapedText}[Cl]["commandResponses"] extends never ? never : Co extends keyof ${clustersDecl.name.escapedText}[Cl]["commandResponses"] ? ${clustersDecl.name.escapedText}[Cl]["commandResponses"][Co] : never : Co extends keyof ${clustersDecl.name.escapedText}[Cl]["commands"] ? ${clustersDecl.name.escapedText}[Cl]["commands"][Co] : Co extends keyof ${clustersDecl.name.escapedText}[Cl]["commandResponses"] ? ${clustersDecl.name.escapedText}[Cl]["commandResponses"][Co] : never : never;`));
|
|
303
|
+
const foundationGenericPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationGenericPayload", undefined, typescript_1.default.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[keyof ${foundationDecl.name.escapedText}]`));
|
|
304
|
+
const foundationRepetitivePayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationRepetitivePayload", undefined, typescript_1.default.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[${foundationRepetitiveDecl.name.escapedText}]`));
|
|
305
|
+
const foundationFlatPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationFlatPayload", undefined, typescript_1.default.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[${foundationFlatDecl.name.escapedText}]`));
|
|
306
|
+
const foundationOneOfPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationOneOfPayload", undefined, typescript_1.default.factory.createTypeReferenceNode(`${foundationDecl.name.escapedText}[${foundationOneOfDecl.name.escapedText}]`));
|
|
307
|
+
const foundationPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundationPayload", [coDecl], typescript_1.default.factory.createTypeReferenceNode(`Co extends keyof ${foundationDecl.name.escapedText} ? ${foundationDecl.name.escapedText}[Co] : ${foundationGenericPayloadDecl.name.escapedText}`));
|
|
308
|
+
const result = `${printer.printNode(typescript_1.default.EmitHint.Unspecified, namedImports, file)}
|
|
309
|
+
|
|
310
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clustersDecl, file)}
|
|
311
|
+
|
|
312
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationDecl, file)}
|
|
313
|
+
|
|
314
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationRepetitiveDecl, file)}
|
|
315
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationFlatDecl, file)}
|
|
316
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationOneOfDecl, file)}
|
|
317
|
+
|
|
318
|
+
// Clusters
|
|
319
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterAttributeKeysDecl, file)}
|
|
320
|
+
|
|
321
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterAttributesDecl, file)}
|
|
322
|
+
|
|
323
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, partialClusterAttributesDecl, file)}
|
|
324
|
+
|
|
325
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandKeysDecl, file)}
|
|
326
|
+
|
|
327
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandResponseKeysDecl, file)}
|
|
328
|
+
|
|
329
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandsDecl, file)}
|
|
330
|
+
|
|
331
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandResponsesDecl, file)}
|
|
332
|
+
|
|
333
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandPayloadDecl, file)}
|
|
334
|
+
|
|
335
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandResponsePayloadDecl, file)}
|
|
336
|
+
|
|
337
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterPayloadDecl, file)}
|
|
338
|
+
|
|
339
|
+
// Foundation
|
|
340
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationGenericPayloadDecl, file)}
|
|
341
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationRepetitivePayloadDecl, file)}
|
|
342
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationFlatPayloadDecl, file)}
|
|
343
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationOneOfPayloadDecl, file)}
|
|
344
|
+
|
|
345
|
+
${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationPayloadDecl, file)}
|
|
346
|
+
`;
|
|
347
|
+
(0, node_fs_1.writeFileSync)(`./src/zspec/zcl/definition/${FILENAME}`, result, { encoding: "utf8" });
|
|
348
|
+
//# sourceMappingURL=clusters-typegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clusters-typegen.js","sourceRoot":"","sources":["../../../../src/zspec/zcl/definition/clusters-typegen.ts"],"names":[],"mappings":"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"}
|