zigbee-herdsman 5.0.3 → 6.0.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 (79) hide show
  1. package/.github/dependabot.yml +3 -0
  2. package/.github/workflows/ci.yml +1 -0
  3. package/.release-please-manifest.json +1 -1
  4. package/CHANGELOG.md +26 -0
  5. package/biome.json +1 -1
  6. package/dist/adapter/deconz/adapter/deconzAdapter.js +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  8. package/dist/adapter/ember/ezsp/buffalo.d.ts +0 -2
  9. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
  10. package/dist/adapter/ember/ezsp/buffalo.js +0 -4
  11. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
  12. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  13. package/dist/adapter/ember/uart/ash.js +0 -2
  14. package/dist/adapter/ember/uart/ash.js.map +1 -1
  15. package/dist/buffalo/buffalo.d.ts +5 -0
  16. package/dist/buffalo/buffalo.d.ts.map +1 -1
  17. package/dist/buffalo/buffalo.js +7 -0
  18. package/dist/buffalo/buffalo.js.map +1 -1
  19. package/dist/controller/controller.d.ts.map +1 -1
  20. package/dist/controller/controller.js +1 -1
  21. package/dist/controller/controller.js.map +1 -1
  22. package/dist/controller/events.d.ts +1 -0
  23. package/dist/controller/events.d.ts.map +1 -1
  24. package/dist/controller/tstype.d.ts +17 -0
  25. package/dist/controller/tstype.d.ts.map +1 -1
  26. package/dist/zspec/zcl/buffaloZcl.d.ts +32 -17
  27. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
  28. package/dist/zspec/zcl/buffaloZcl.js +257 -121
  29. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  30. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  31. package/dist/zspec/zcl/definition/cluster.js +154 -24
  32. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  33. package/dist/zspec/zcl/definition/clusters-typegen.d.ts +2 -0
  34. package/dist/zspec/zcl/definition/clusters-typegen.d.ts.map +1 -0
  35. package/dist/zspec/zcl/definition/clusters-typegen.js +300 -0
  36. package/dist/zspec/zcl/definition/clusters-typegen.js.map +1 -0
  37. package/dist/zspec/zcl/definition/clusters-types.d.ts +7205 -0
  38. package/dist/zspec/zcl/definition/clusters-types.d.ts.map +1 -0
  39. package/dist/zspec/zcl/definition/clusters-types.js +3 -0
  40. package/dist/zspec/zcl/definition/clusters-types.js.map +1 -0
  41. package/dist/zspec/zcl/definition/enums.d.ts +4 -6
  42. package/dist/zspec/zcl/definition/enums.d.ts.map +1 -1
  43. package/dist/zspec/zcl/definition/enums.js +3 -5
  44. package/dist/zspec/zcl/definition/enums.js.map +1 -1
  45. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
  46. package/dist/zspec/zcl/definition/foundation.js +43 -15
  47. package/dist/zspec/zcl/definition/foundation.js.map +1 -1
  48. package/dist/zspec/zcl/definition/tstype.d.ts +105 -11
  49. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  50. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  51. package/dist/zspec/zcl/zclFrame.js +32 -20
  52. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  53. package/dist/zspec/zdo/buffaloZdo.d.ts +0 -6
  54. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  55. package/dist/zspec/zdo/buffaloZdo.js +0 -8
  56. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/adapter/deconz/adapter/deconzAdapter.ts +1 -1
  59. package/src/adapter/ember/ezsp/buffalo.ts +0 -5
  60. package/src/adapter/ember/uart/ash.ts +0 -2
  61. package/src/buffalo/buffalo.ts +8 -0
  62. package/src/controller/controller.ts +2 -1
  63. package/src/controller/events.ts +1 -0
  64. package/src/controller/greenPower.ts +4 -4
  65. package/src/controller/tstype.ts +17 -16
  66. package/src/zspec/zcl/buffaloZcl.ts +323 -238
  67. package/src/zspec/zcl/definition/cluster.ts +154 -24
  68. package/src/zspec/zcl/definition/clusters-typegen.ts +511 -0
  69. package/src/zspec/zcl/definition/clusters-types.ts +7282 -0
  70. package/src/zspec/zcl/definition/enums.ts +3 -5
  71. package/src/zspec/zcl/definition/foundation.ts +43 -15
  72. package/src/zspec/zcl/definition/tstype.ts +118 -7
  73. package/src/zspec/zcl/zclFrame.ts +37 -19
  74. package/src/zspec/zdo/buffaloZdo.ts +0 -9
  75. package/test/controller.test.ts +65 -803
  76. package/test/greenpower.test.ts +0 -12
  77. package/test/zcl.test.ts +13 -11
  78. package/test/zspec/zcl/buffalo.test.ts +216 -74
  79. package/test/zspec/zcl/frame.test.ts +62 -28
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=clusters-typegen.d.ts.map
@@ -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,300 @@
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.ES2022, 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("GpdChannelRequest")),
39
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("MiboxerZone")),
40
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("Struct")),
41
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("StructuredSelector")),
42
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("ThermoTransition")),
43
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("TuyaDataPointValue")),
44
+ // ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ZclDate")), // XXX: currently unused
45
+ // ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("ZclTimeOfDay")), // XXX: currently unused
46
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("ZoneInfo")),
47
+ ])), typescript_1.default.factory.createStringLiteral("./tstype"), undefined);
48
+ const getTypeFromDataType = (dataType) => {
49
+ switch (dataType) {
50
+ case enums_1.DataType.NO_DATA:
51
+ case enums_1.DataType.UNKNOWN: {
52
+ return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NeverKeyword);
53
+ }
54
+ case enums_1.DataType.OCTET_STR:
55
+ case enums_1.DataType.LONG_OCTET_STR:
56
+ case enums_1.DataType.SEC_KEY: {
57
+ return typescript_1.default.factory.createTypeReferenceNode("Buffer");
58
+ }
59
+ case enums_1.DataType.CHAR_STR:
60
+ case enums_1.DataType.LONG_CHAR_STR:
61
+ case enums_1.DataType.IEEE_ADDR: {
62
+ return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword);
63
+ }
64
+ case enums_1.DataType.ARRAY:
65
+ case enums_1.DataType.SET:
66
+ case enums_1.DataType.BAG: {
67
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword));
68
+ }
69
+ case enums_1.DataType.STRUCT: {
70
+ return typescript_1.default.factory.createTypeReferenceNode("Struct");
71
+ }
72
+ case enums_1.DataType.TOD: {
73
+ return typescript_1.default.factory.createTypeReferenceNode("ZclTimeOfDay");
74
+ }
75
+ case enums_1.DataType.DATE: {
76
+ return typescript_1.default.factory.createTypeReferenceNode("ZclDate");
77
+ }
78
+ case enums_1.BuffaloZclDataType.USE_DATA_TYPE: {
79
+ return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword);
80
+ }
81
+ case enums_1.BuffaloZclDataType.LIST_UINT8:
82
+ case enums_1.BuffaloZclDataType.LIST_UINT16:
83
+ case enums_1.BuffaloZclDataType.LIST_UINT24:
84
+ case enums_1.BuffaloZclDataType.LIST_UINT32: {
85
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword));
86
+ }
87
+ case enums_1.BuffaloZclDataType.LIST_ZONEINFO: {
88
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("ZoneInfo"));
89
+ }
90
+ case enums_1.BuffaloZclDataType.EXTENSION_FIELD_SETS: {
91
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("ExtensionFieldSet"));
92
+ }
93
+ case enums_1.BuffaloZclDataType.LIST_THERMO_TRANSITIONS: {
94
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("ThermoTransition"));
95
+ }
96
+ case enums_1.BuffaloZclDataType.BUFFER: {
97
+ return typescript_1.default.factory.createTypeReferenceNode("Buffer");
98
+ }
99
+ case enums_1.BuffaloZclDataType.GPD_FRAME: {
100
+ return typescript_1.default.factory.createUnionTypeNode([
101
+ typescript_1.default.factory.createTypeReferenceNode("Gpd"),
102
+ typescript_1.default.factory.createTypeReferenceNode("GpdChannelRequest"),
103
+ typescript_1.default.factory.createTypeReferenceNode("GpdAttributeReport"),
104
+ typescript_1.default.factory.createTypeLiteralNode([
105
+ typescript_1.default.factory.createPropertySignature(undefined, "raw", undefined, typescript_1.default.factory.createTypeReferenceNode("Buffer")),
106
+ ]),
107
+ typescript_1.default.factory.createTypeReferenceNode("Record<string, never>"),
108
+ ]);
109
+ }
110
+ case enums_1.BuffaloZclDataType.STRUCTURED_SELECTOR: {
111
+ return typescript_1.default.factory.createTypeReferenceNode("StructuredSelector");
112
+ }
113
+ case enums_1.BuffaloZclDataType.LIST_TUYA_DATAPOINT_VALUES: {
114
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("TuyaDataPointValue"));
115
+ }
116
+ case enums_1.BuffaloZclDataType.LIST_MIBOXER_ZONES: {
117
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeReferenceNode("MiboxerZone"));
118
+ }
119
+ default: {
120
+ return typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword);
121
+ }
122
+ }
123
+ };
124
+ const addAttributes = (attributes) => {
125
+ const elements = [];
126
+ for (const attributeName in attributes) {
127
+ const attribute = attributes[attributeName];
128
+ const element = typescript_1.default.factory.createPropertySignature(undefined, attributeName,
129
+ // always optional if manuf-specific
130
+ attribute.manufacturerCode ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken) : undefined, getTypeFromDataType(attribute.type));
131
+ elements.push(element);
132
+ let comment = `* ID: ${attribute.ID} | Type: ${enums_1.DataType[attribute.type] ?? enums_1.BuffaloZclDataType[attribute.type]} `;
133
+ if (attribute.manufacturerCode !== undefined) {
134
+ comment += `| Specific to manufacturer: ${manufacturerCode_1.ManufacturerCode[attribute.manufacturerCode]} (${attribute.manufacturerCode}) `;
135
+ }
136
+ typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, comment, true);
137
+ }
138
+ return elements.length > 0 ? typescript_1.default.factory.createTypeLiteralNode(elements) : emptyObject;
139
+ };
140
+ const addCommands = (commands) => {
141
+ const elements = [];
142
+ for (const commandName in commands) {
143
+ const command = commands[commandName];
144
+ const cmdElements = [];
145
+ for (const parameter of command.parameters) {
146
+ // @ts-expect-error bad typing?
147
+ const existing = cmdElements.find((element) => element.name.escapedText === parameter.name);
148
+ const paramType = getTypeFromDataType(parameter.type);
149
+ if (!existing) {
150
+ const cmdElement = typescript_1.default.factory.createPropertySignature(undefined, parameter.name, parameter.conditions ? typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken) : undefined, paramType);
151
+ cmdElements.push(cmdElement);
152
+ typescript_1.default.addSyntheticLeadingComment(cmdElement, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* Type: ${enums_1.DataType[parameter.type] ?? enums_1.BuffaloZclDataType[parameter.type]} `, true);
153
+ }
154
+ else if (
155
+ // @ts-expect-error bad typing?
156
+ existing.type?.typeName?.escapedText &&
157
+ // @ts-expect-error bad typing?
158
+ paramType.typeName?.escapedText &&
159
+ // @ts-expect-error bad typing?
160
+ existing.type.typeName.escapedText !== paramType.typeName.escapedText) {
161
+ // XXX: not currently used, untested
162
+ typescript_1.default.factory.updatePropertySignature(existing, existing.modifiers, existing.name, existing.questionToken, typescript_1.default.factory.createUnionTypeNode([existing.type, paramType]));
163
+ }
164
+ else if (!parameter.conditions) {
165
+ throw new Error(`Two or more cluster command parameters have identical name without conditions. ${JSON.stringify(parameter)}`);
166
+ }
167
+ }
168
+ const element = typescript_1.default.factory.createPropertySignature(undefined, commandName, undefined, cmdElements.length > 0 ? typescript_1.default.factory.createTypeLiteralNode(cmdElements) : emptyObject);
169
+ elements.push(element);
170
+ let comment = `* ID: ${command.ID} `;
171
+ if (command.response !== undefined) {
172
+ comment += `| Response ID: ${command.response} `;
173
+ }
174
+ typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, comment, true);
175
+ }
176
+ return elements.length > 0 ? typescript_1.default.factory.createTypeLiteralNode(elements) : typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NeverKeyword);
177
+ };
178
+ const clusterElements = [];
179
+ for (const clusterName in cluster_1.Clusters) {
180
+ const cluster = cluster_1.Clusters[clusterName];
181
+ const attributesProp = typescript_1.default.factory.createPropertySignature(undefined, "attributes", undefined, addAttributes(cluster.attributes));
182
+ const commandsProp = typescript_1.default.factory.createPropertySignature(undefined, "commands", undefined, addCommands(cluster.commands));
183
+ const commandResponsesProp = typescript_1.default.factory.createPropertySignature(undefined, "commandResponses", undefined, addCommands(cluster.commandsResponse));
184
+ clusterElements.push(typescript_1.default.factory.createPropertySignature(undefined, clusterName, undefined, typescript_1.default.factory.createTypeLiteralNode([attributesProp, commandsProp, commandResponsesProp])));
185
+ }
186
+ const clustersDecl = typescript_1.default.factory.createInterfaceDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusters", undefined, undefined, clusterElements);
187
+ const addParameters = (foundation) => {
188
+ const elements = [];
189
+ for (const parameter of foundation.parameters) {
190
+ 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));
191
+ elements.push(element);
192
+ typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* Type: ${enums_1.DataType[parameter.type] ?? enums_1.BuffaloZclDataType[parameter.type]} `, true);
193
+ }
194
+ if (elements.length === 0) {
195
+ return emptyObject;
196
+ }
197
+ switch (foundation.parseStrategy) {
198
+ case "repetitive": {
199
+ return typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeLiteralNode(elements));
200
+ }
201
+ case "flat": {
202
+ return typescript_1.default.factory.createTypeLiteralNode(elements);
203
+ }
204
+ case "oneof": {
205
+ if ((0, utils_1.isFoundationDiscoverRsp)(foundation.ID)) {
206
+ const discComplete = typescript_1.default.factory.createPropertySignature(undefined, "discComplete", undefined, typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword));
207
+ typescript_1.default.addSyntheticLeadingComment(discComplete, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* Type: ${enums_1.DataType[enums_1.DataType.UINT8]} `, true);
208
+ return typescript_1.default.factory.createTypeLiteralNode([
209
+ discComplete,
210
+ typescript_1.default.factory.createPropertySignature(undefined, "attrInfos", undefined, typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createTypeLiteralNode(elements))),
211
+ ]);
212
+ }
213
+ }
214
+ }
215
+ throw new Error(`Unknown command strategy for ${JSON.stringify(foundation)}`);
216
+ };
217
+ const foundationElements = [];
218
+ const foundationRepetitiveElements = [];
219
+ const foundationFlatElements = [];
220
+ const foundationOneOfElements = [];
221
+ for (const foundationName in foundation_1.Foundation) {
222
+ const foundation = foundation_1.Foundation[foundationName];
223
+ const element = typescript_1.default.factory.createPropertySignature(undefined, foundationName, undefined, addParameters(foundation));
224
+ foundationElements.push(element);
225
+ typescript_1.default.addSyntheticLeadingComment(element, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, `* ID: ${foundation.ID} `, true);
226
+ const stratNode = typescript_1.default.factory.createTypeReferenceNode(`"${foundationName}"`);
227
+ switch (foundation.parseStrategy) {
228
+ case "repetitive": {
229
+ foundationRepetitiveElements.push(stratNode);
230
+ break;
231
+ }
232
+ case "flat": {
233
+ foundationFlatElements.push(stratNode);
234
+ break;
235
+ }
236
+ case "oneof": {
237
+ foundationOneOfElements.push(stratNode);
238
+ break;
239
+ }
240
+ }
241
+ }
242
+ const foundationDecl = typescript_1.default.factory.createInterfaceDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TFoundation", undefined, undefined, foundationElements);
243
+ 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));
244
+ 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));
245
+ 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));
246
+ const clDecl = typescript_1.default.factory.createTypeParameterDeclaration(undefined, "Cl", typescript_1.default.factory.createUnionTypeNode([
247
+ typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword),
248
+ typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
249
+ ]));
250
+ const coDecl = typescript_1.default.factory.createTypeParameterDeclaration(undefined, "Co", typescript_1.default.factory.createUnionTypeNode([
251
+ typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.NumberKeyword),
252
+ typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword),
253
+ ]));
254
+ const clusterGenericPayloadDecl = typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], "TClusterGenericPayload", undefined, typescript_1.default.factory.createTypeReferenceNode("Record<string, unknown>"));
255
+ 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)[];`));
256
+ 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"] : ${clusterGenericPayloadDecl.name.escapedText}`));
257
+ 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"]> : ${clusterGenericPayloadDecl.name.escapedText}`));
258
+ 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] : ${clusterGenericPayloadDecl.name.escapedText} : ${clusterGenericPayloadDecl.name.escapedText};`));
259
+ 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] : ${clusterGenericPayloadDecl.name.escapedText} : ${clusterGenericPayloadDecl.name.escapedText};`));
260
+ 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] : ${clusterGenericPayloadDecl.name.escapedText} : 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] : ${clusterGenericPayloadDecl.name.escapedText} : ${clusterGenericPayloadDecl.name.escapedText};`));
261
+ 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}]`));
262
+ 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}]`));
263
+ 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}]`));
264
+ 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}]`));
265
+ 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}`));
266
+ const result = `${printer.printNode(typescript_1.default.EmitHint.Unspecified, namedImports, file)}
267
+
268
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clustersDecl, file)}
269
+
270
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationDecl, file)}
271
+
272
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationRepetitiveDecl, file)}
273
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationFlatDecl, file)}
274
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationOneOfDecl, file)}
275
+
276
+ // Clusters
277
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterGenericPayloadDecl, file)}
278
+
279
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterAttributeKeysDecl, file)}
280
+
281
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterAttributesDecl, file)}
282
+
283
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, partialClusterAttributesDecl, file)}
284
+
285
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandPayloadDecl, file)}
286
+
287
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterCommandResponsePayloadDecl, file)}
288
+
289
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, clusterPayloadDecl, file)}
290
+
291
+ // Foundation
292
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationGenericPayloadDecl, file)}
293
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationRepetitivePayloadDecl, file)}
294
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationFlatPayloadDecl, file)}
295
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationOneOfPayloadDecl, file)}
296
+
297
+ ${printer.printNode(typescript_1.default.EmitHint.Unspecified, foundationPayloadDecl, file)}
298
+ `;
299
+ (0, node_fs_1.writeFileSync)(`./src/zspec/zcl/definition/${FILENAME}`, result, { encoding: "utf8" });
300
+ //# 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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"}