@zwave-js/config 9.0.4 → 9.0.5
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/build/ConfigManager.d.ts +1 -1
- package/build/ConfigManager.d.ts.map +1 -1
- package/build/ConfigManager.js +6 -6
- package/build/ConfigManager.js.map +1 -1
- package/build/devices/AssociationConfig.d.ts +27 -0
- package/build/devices/AssociationConfig.d.ts.map +1 -0
- package/build/devices/AssociationConfig.js +57 -0
- package/build/devices/AssociationConfig.js.map +1 -0
- package/build/{CompatConfig.d.ts → devices/CompatConfig.d.ts} +6 -1
- package/build/devices/CompatConfig.d.ts.map +1 -0
- package/build/{CompatConfig.js → devices/CompatConfig.js} +30 -4
- package/build/devices/CompatConfig.js.map +1 -0
- package/build/devices/ConditionalItem.d.ts +14 -0
- package/build/devices/ConditionalItem.d.ts.map +1 -0
- package/build/devices/ConditionalItem.js +106 -0
- package/build/devices/ConditionalItem.js.map +1 -0
- package/build/devices/ConditionalPrimitive.d.ts +13 -0
- package/build/devices/ConditionalPrimitive.d.ts.map +1 -0
- package/build/devices/ConditionalPrimitive.js +38 -0
- package/build/devices/ConditionalPrimitive.js.map +1 -0
- package/build/{Devices.d.ts → devices/DeviceConfig.d.ts} +14 -106
- package/build/devices/DeviceConfig.d.ts.map +1 -0
- package/build/{Devices.js → devices/DeviceConfig.js} +35 -348
- package/build/devices/DeviceConfig.js.map +1 -0
- package/build/devices/DeviceConfig.unit._test.d.ts +1 -0
- package/build/devices/DeviceConfig.unit._test.d.ts.map +1 -0
- package/build/{Devices.unit._test.js → devices/DeviceConfig.unit._test.js} +1 -1
- package/build/devices/DeviceConfig.unit._test.js.map +1 -0
- package/build/devices/DeviceMetadata.d.ts +41 -0
- package/build/devices/DeviceMetadata.d.ts.map +1 -0
- package/build/devices/DeviceMetadata.js +76 -0
- package/build/devices/DeviceMetadata.js.map +1 -0
- package/build/devices/EndpointConfig.d.ts +15 -0
- package/build/devices/EndpointConfig.d.ts.map +1 -0
- package/build/devices/EndpointConfig.js +44 -0
- package/build/devices/EndpointConfig.js.map +1 -0
- package/build/devices/ParamInformation.d.ts +41 -0
- package/build/devices/ParamInformation.d.ts.map +1 -0
- package/build/devices/ParamInformation.js +155 -0
- package/build/devices/ParamInformation.js.map +1 -0
- package/build/devices/shared.d.ts +11 -0
- package/build/devices/shared.d.ts.map +1 -0
- package/build/devices/shared.js +3 -0
- package/build/devices/shared.js.map +1 -0
- package/build/index.d.ts +6 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +6 -1
- package/build/index.js.map +1 -1
- package/build/utils.d.ts +1 -1
- package/build/utils.d.ts.map +1 -1
- package/config/devices/0x001a/rf9542.json +4 -1
- package/config/devices/0x001d/vrcs2.json +4 -0
- package/config/devices/0x0403/shlm10000.json +16 -0
- package/package.json +2 -2
- package/build/CompatConfig.d.ts.map +0 -1
- package/build/CompatConfig.js.map +0 -1
- package/build/Devices.d.ts.map +0 -1
- package/build/Devices.js.map +0 -1
- package/build/Devices.unit._test.d.ts +0 -1
- package/build/Devices.unit._test.d.ts.map +0 -1
- package/build/Devices.unit._test.js.map +0 -1
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { JSONObject, ReadonlyObjectKeyMap } from "@zwave-js/shared";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
productType: number;
|
|
10
|
-
productId: number;
|
|
11
|
-
firmwareVersion?: string;
|
|
12
|
-
}
|
|
2
|
+
import { ConditionalAssociationConfig, type AssociationConfig } from "./AssociationConfig";
|
|
3
|
+
import { CompatConfig, ConditionalCompatConfig } from "./CompatConfig";
|
|
4
|
+
import { ConditionalPrimitive } from "./ConditionalPrimitive";
|
|
5
|
+
import { ConditionalDeviceMetadata, type DeviceMetadata } from "./DeviceMetadata";
|
|
6
|
+
import { ConditionalEndpointConfig, EndpointConfig } from "./EndpointConfig";
|
|
7
|
+
import { ConditionalParamInformation, ParamInformation } from "./ParamInformation";
|
|
8
|
+
import type { DeviceID, FirmwareVersionRange } from "./shared";
|
|
13
9
|
export interface DeviceConfigIndexEntry {
|
|
14
10
|
manufacturerId: string;
|
|
15
11
|
productType: string;
|
|
@@ -50,12 +46,12 @@ export declare class ConditionalDeviceConfig {
|
|
|
50
46
|
rootDir: string;
|
|
51
47
|
relative?: boolean;
|
|
52
48
|
}): Promise<ConditionalDeviceConfig>;
|
|
53
|
-
constructor(filename: string, isEmbedded: boolean, definition:
|
|
49
|
+
constructor(filename: string, isEmbedded: boolean, definition: JSONObject);
|
|
54
50
|
readonly filename: string;
|
|
55
|
-
readonly manufacturer: string
|
|
51
|
+
readonly manufacturer: ConditionalPrimitive<string>;
|
|
56
52
|
readonly manufacturerId: number;
|
|
57
|
-
readonly label: string
|
|
58
|
-
readonly description: string
|
|
53
|
+
readonly label: ConditionalPrimitive<string>;
|
|
54
|
+
readonly description: ConditionalPrimitive<string>;
|
|
59
55
|
readonly devices: readonly {
|
|
60
56
|
productType: number;
|
|
61
57
|
productId: number;
|
|
@@ -70,9 +66,9 @@ export declare class ConditionalDeviceConfig {
|
|
|
70
66
|
*/
|
|
71
67
|
readonly proprietary?: Record<string, unknown>;
|
|
72
68
|
/** Contains compatibility options */
|
|
73
|
-
readonly compat?:
|
|
69
|
+
readonly compat?: ConditionalCompatConfig | ConditionalCompatConfig[];
|
|
74
70
|
/** Contains instructions and other metadata for the device */
|
|
75
|
-
readonly metadata?:
|
|
71
|
+
readonly metadata?: ConditionalDeviceMetadata;
|
|
76
72
|
/** Whether this is an embedded configuration or not */
|
|
77
73
|
readonly isEmbedded: boolean;
|
|
78
74
|
evaluate(deviceId?: DeviceID): DeviceConfig;
|
|
@@ -125,92 +121,4 @@ export declare class DeviceConfig {
|
|
|
125
121
|
/** Returns the association config for a given endpoint */
|
|
126
122
|
getAssociationConfigForEndpoint(endpointIndex: number, group: number): AssociationConfig | undefined;
|
|
127
123
|
}
|
|
128
|
-
|
|
129
|
-
constructor(filename: string, index: number, definition: JSONObject);
|
|
130
|
-
readonly index: number;
|
|
131
|
-
readonly condition?: string;
|
|
132
|
-
readonly associations?: ReadonlyMap<number, ConditionalAssociationConfig>;
|
|
133
|
-
evaluateCondition(deviceId?: DeviceID): EndpointConfig | undefined;
|
|
134
|
-
}
|
|
135
|
-
export declare type EndpointConfig = Omit<ConditionalEndpointConfig, "condition" | "evaluateCondition" | "associations"> & {
|
|
136
|
-
associations: Map<number, AssociationConfig> | undefined;
|
|
137
|
-
};
|
|
138
|
-
export declare class ConditionalAssociationConfig {
|
|
139
|
-
constructor(filename: string, groupId: number, definition: JSONObject);
|
|
140
|
-
readonly condition?: string;
|
|
141
|
-
readonly groupId: number;
|
|
142
|
-
readonly label: string;
|
|
143
|
-
readonly description?: string;
|
|
144
|
-
readonly maxNodes: number;
|
|
145
|
-
/**
|
|
146
|
-
* Whether this association group is used to report updates to the controller.
|
|
147
|
-
* While Z-Wave+ defines a single lifeline, older devices may have multiple lifeline associations.
|
|
148
|
-
*/
|
|
149
|
-
readonly isLifeline: boolean;
|
|
150
|
-
/**
|
|
151
|
-
* Controls the strategy of setting up lifeline associations:
|
|
152
|
-
*
|
|
153
|
-
* * `true` - Use a multi channel association (if possible)
|
|
154
|
-
* * `false` - Use a node association (if possible)
|
|
155
|
-
* * `"auto"` - Prefer node associations, fall back to multi channel associations
|
|
156
|
-
*/
|
|
157
|
-
readonly multiChannel: boolean | "auto";
|
|
158
|
-
evaluateCondition(deviceId?: DeviceID): AssociationConfig | undefined;
|
|
159
|
-
}
|
|
160
|
-
export declare type AssociationConfig = Omit<ConditionalAssociationConfig, "condition" | "evaluateCondition">;
|
|
161
|
-
export declare class ConditionalParamInformation {
|
|
162
|
-
constructor(parent: ConditionalDeviceConfig, parameterNumber: number, valueBitMask: number | undefined, definition: JSONObject);
|
|
163
|
-
private parent;
|
|
164
|
-
readonly parameterNumber: number;
|
|
165
|
-
readonly valueBitMask?: number;
|
|
166
|
-
readonly label: string;
|
|
167
|
-
readonly description?: string;
|
|
168
|
-
readonly valueSize: number;
|
|
169
|
-
readonly minValue?: number;
|
|
170
|
-
readonly maxValue?: number;
|
|
171
|
-
readonly unsigned?: boolean;
|
|
172
|
-
readonly defaultValue: number;
|
|
173
|
-
readonly unit?: string;
|
|
174
|
-
readonly readOnly?: true;
|
|
175
|
-
readonly writeOnly?: true;
|
|
176
|
-
readonly allowManualEntry: boolean;
|
|
177
|
-
readonly options: readonly ConditionalConfigOption[];
|
|
178
|
-
readonly condition?: string;
|
|
179
|
-
evaluateCondition(deviceId?: DeviceID): ParamInformation | undefined;
|
|
180
|
-
}
|
|
181
|
-
export declare type ParamInformation = Omit<ConditionalParamInformation, "condition" | "evaluateCondition" | "options" | "minValue" | "maxValue"> & {
|
|
182
|
-
options: readonly ConfigOption[];
|
|
183
|
-
minValue: NonNullable<ConditionalParamInformation["minValue"]>;
|
|
184
|
-
maxValue: NonNullable<ConditionalParamInformation["maxValue"]>;
|
|
185
|
-
};
|
|
186
|
-
export declare class ConditionalConfigOption {
|
|
187
|
-
readonly value: number;
|
|
188
|
-
readonly label: string;
|
|
189
|
-
readonly condition?: string | undefined;
|
|
190
|
-
constructor(value: number, label: string, condition?: string | undefined);
|
|
191
|
-
evaluateCondition(deviceId?: DeviceID): ConfigOption | undefined;
|
|
192
|
-
}
|
|
193
|
-
export interface ConfigOption {
|
|
194
|
-
value: number;
|
|
195
|
-
label: string;
|
|
196
|
-
}
|
|
197
|
-
export declare class DeviceMetadata {
|
|
198
|
-
constructor(filename: string, definition: JSONObject);
|
|
199
|
-
/** How to wake up the device manually */
|
|
200
|
-
readonly wakeup?: string;
|
|
201
|
-
/** Inclusion instructions */
|
|
202
|
-
readonly inclusion?: string;
|
|
203
|
-
/** Exclusion instructions */
|
|
204
|
-
readonly exclusion?: string;
|
|
205
|
-
/** Instructions for resetting the device to factory defaults */
|
|
206
|
-
readonly reset?: string;
|
|
207
|
-
/** A link to the device manual */
|
|
208
|
-
readonly manual?: string;
|
|
209
|
-
/** Comments for this device */
|
|
210
|
-
readonly comments?: DeviceComment | DeviceComment[];
|
|
211
|
-
}
|
|
212
|
-
export interface DeviceComment {
|
|
213
|
-
level: "info" | "warning" | "error";
|
|
214
|
-
text: string;
|
|
215
|
-
}
|
|
216
|
-
//# sourceMappingURL=Devices.d.ts.map
|
|
124
|
+
//# sourceMappingURL=DeviceConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceConfig.d.ts","sourceRoot":"","sources":["../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.DeviceConfig = exports.ConditionalDeviceConfig = exports.loadFulltextDeviceIndexInternal = exports.loadDeviceIndexInternal = exports.generatePriorityDeviceIndex = exports.getDevicesPaths = exports.embeddedDevicesDir = void 0;
|
|
30
30
|
const core_1 = require("@zwave-js/core");
|
|
31
31
|
const shared_1 = require("@zwave-js/shared");
|
|
32
32
|
const objects_1 = require("alcalzone-shared/objects");
|
|
@@ -35,11 +35,16 @@ const fs = __importStar(require("fs-extra"));
|
|
|
35
35
|
const fs_extra_1 = require("fs-extra");
|
|
36
36
|
const json5_1 = __importDefault(require("json5"));
|
|
37
37
|
const path_1 = __importDefault(require("path"));
|
|
38
|
+
const JsonTemplate_1 = require("../JsonTemplate");
|
|
39
|
+
const utils_1 = require("../utils");
|
|
40
|
+
const utils_safe_1 = require("../utils_safe");
|
|
41
|
+
const AssociationConfig_1 = require("./AssociationConfig");
|
|
38
42
|
const CompatConfig_1 = require("./CompatConfig");
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
+
const ConditionalItem_1 = require("./ConditionalItem");
|
|
44
|
+
const ConditionalPrimitive_1 = require("./ConditionalPrimitive");
|
|
45
|
+
const DeviceMetadata_1 = require("./DeviceMetadata");
|
|
46
|
+
const EndpointConfig_1 = require("./EndpointConfig");
|
|
47
|
+
const ParamInformation_1 = require("./ParamInformation");
|
|
43
48
|
exports.embeddedDevicesDir = path_1.default.join(utils_1.configDir, "devices");
|
|
44
49
|
const fulltextIndexPath = path_1.default.join(exports.embeddedDevicesDir, "fulltext_index.json");
|
|
45
50
|
function getDevicesPaths(configDir) {
|
|
@@ -232,14 +237,6 @@ function isFirmwareVersion(val) {
|
|
|
232
237
|
.map((str) => parseInt(str, 10))
|
|
233
238
|
.every((num) => num >= 0 && num <= 255));
|
|
234
239
|
}
|
|
235
|
-
function conditionApplies(condition, context) {
|
|
236
|
-
try {
|
|
237
|
-
return !!(0, Logic_1.evaluate)(condition, context);
|
|
238
|
-
}
|
|
239
|
-
catch (e) {
|
|
240
|
-
throw new core_1.ZWaveError(`Invalid condition "${condition}"!`, core_1.ZWaveErrorCodes.Config_Invalid);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
240
|
/** This class represents a device config entry whose conditional settings have not been evaluated yet */
|
|
244
241
|
class ConditionalDeviceConfig {
|
|
245
242
|
constructor(filename, isEmbedded, definition) {
|
|
@@ -251,11 +248,7 @@ manufacturer id must be a lowercase hexadecimal number with 4 digits`);
|
|
|
251
248
|
}
|
|
252
249
|
this.manufacturerId = parseInt(definition.manufacturerId, 16);
|
|
253
250
|
for (const prop of ["manufacturer", "label", "description"]) {
|
|
254
|
-
|
|
255
|
-
(0, utils_safe_1.throwInvalidConfig)(`device`, `packages/config/config/devices/${filename}:
|
|
256
|
-
${prop} is not a string`);
|
|
257
|
-
}
|
|
258
|
-
this[prop] = definition[prop];
|
|
251
|
+
this[prop] = (0, ConditionalPrimitive_1.parseConditionalPrimitive)(filename, "string", prop, definition[prop]);
|
|
259
252
|
}
|
|
260
253
|
if (!(0, typeguards_1.isArray)(definition.devices) ||
|
|
261
254
|
!definition.devices.every((dev) => (0, typeguards_1.isObject)(dev) &&
|
|
@@ -290,7 +283,7 @@ endpoints is not an object`);
|
|
|
290
283
|
found non-numeric endpoint index "${key}" in endpoints`);
|
|
291
284
|
}
|
|
292
285
|
const epIndex = parseInt(key, 10);
|
|
293
|
-
endpoints.set(epIndex, new ConditionalEndpointConfig(filename, epIndex, ep));
|
|
286
|
+
endpoints.set(epIndex, new EndpointConfig_1.ConditionalEndpointConfig(filename, epIndex, ep));
|
|
294
287
|
}
|
|
295
288
|
this.endpoints = endpoints;
|
|
296
289
|
}
|
|
@@ -306,7 +299,7 @@ associations is not an object`);
|
|
|
306
299
|
found non-numeric group id "${key}" in associations`);
|
|
307
300
|
}
|
|
308
301
|
const keyNum = parseInt(key, 10);
|
|
309
|
-
associations.set(keyNum, new ConditionalAssociationConfig(filename, keyNum, assocDefinition));
|
|
302
|
+
associations.set(keyNum, new AssociationConfig_1.ConditionalAssociationConfig(filename, keyNum, assocDefinition));
|
|
310
303
|
}
|
|
311
304
|
this.associations = associations;
|
|
312
305
|
}
|
|
@@ -319,6 +312,10 @@ found non-numeric group id "${key}" in associations`);
|
|
|
319
312
|
(0, utils_safe_1.throwInvalidConfig)(`device`, `packages/config/config/devices/${filename}:
|
|
320
313
|
required property "#" missing in at least one entry of paramInformation`);
|
|
321
314
|
}
|
|
315
|
+
// And a valid $if condition
|
|
316
|
+
for (const entry of definition.paramInformation) {
|
|
317
|
+
(0, ConditionalItem_1.validateCondition)(filename, entry, `At least one entry of paramInformation contains an`);
|
|
318
|
+
}
|
|
322
319
|
for (const paramDefinition of definition.paramInformation) {
|
|
323
320
|
const { ["#"]: paramNo, ...defn } = paramDefinition;
|
|
324
321
|
const match = /^(\d+)(?:\[0x([0-9a-fA-F]+)\])?$/.exec(paramNo);
|
|
@@ -335,7 +332,7 @@ found invalid param number "${paramNo}" in paramInformation`);
|
|
|
335
332
|
paramInformation.set(key, []);
|
|
336
333
|
paramInformation
|
|
337
334
|
.get(key)
|
|
338
|
-
.push(new ConditionalParamInformation(this, keyNum, bitMask, defn));
|
|
335
|
+
.push(new ParamInformation_1.ConditionalParamInformation(this, keyNum, bitMask, defn));
|
|
339
336
|
}
|
|
340
337
|
}
|
|
341
338
|
else if ((process.env.NODE_ENV !== "test" || !!process.env.CI) &&
|
|
@@ -363,7 +360,7 @@ paramInformation "${key}" is invalid: Every entry must either be an object or an
|
|
|
363
360
|
const bitMask = match[2] != undefined
|
|
364
361
|
? parseInt(match[2], 16)
|
|
365
362
|
: undefined;
|
|
366
|
-
paramInformation.set({ parameter: keyNum, valueBitMask: bitMask }, defns.map((def) => new ConditionalParamInformation(this, keyNum, bitMask, def)));
|
|
363
|
+
paramInformation.set({ parameter: keyNum, valueBitMask: bitMask }, defns.map((def) => new ParamInformation_1.ConditionalParamInformation(this, keyNum, bitMask, def)));
|
|
367
364
|
}
|
|
368
365
|
}
|
|
369
366
|
else {
|
|
@@ -380,18 +377,28 @@ proprietary is not an object`);
|
|
|
380
377
|
this.proprietary = definition.proprietary;
|
|
381
378
|
}
|
|
382
379
|
if (definition.compat != undefined) {
|
|
383
|
-
if (
|
|
380
|
+
if ((0, typeguards_1.isArray)(definition.compat) &&
|
|
381
|
+
definition.compat.every((item) => (0, typeguards_1.isObject)(item))) {
|
|
382
|
+
// Make sure all conditions are valid
|
|
383
|
+
for (const entry of definition.compat) {
|
|
384
|
+
(0, ConditionalItem_1.validateCondition)(filename, entry, `At least one entry of compat contains an`);
|
|
385
|
+
}
|
|
386
|
+
this.compat = definition.compat.map((item) => new CompatConfig_1.ConditionalCompatConfig(filename, item));
|
|
387
|
+
}
|
|
388
|
+
else if ((0, typeguards_1.isObject)(definition.compat)) {
|
|
389
|
+
this.compat = new CompatConfig_1.ConditionalCompatConfig(filename, definition.compat);
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
384
392
|
(0, utils_safe_1.throwInvalidConfig)(`device`, `packages/config/config/devices/${filename}:
|
|
385
|
-
compat
|
|
393
|
+
compat must be an object or any array of conditional objects`);
|
|
386
394
|
}
|
|
387
|
-
this.compat = new CompatConfig_1.CompatConfig(filename, definition.compat);
|
|
388
395
|
}
|
|
389
396
|
if (definition.metadata != undefined) {
|
|
390
397
|
if (!(0, typeguards_1.isObject)(definition.metadata)) {
|
|
391
398
|
(0, utils_safe_1.throwInvalidConfig)(`device`, `packages/config/config/devices/${filename}:
|
|
392
399
|
metadata is not an object`);
|
|
393
400
|
}
|
|
394
|
-
this.metadata = new
|
|
401
|
+
this.metadata = new DeviceMetadata_1.ConditionalDeviceMetadata(filename, definition.metadata);
|
|
395
402
|
}
|
|
396
403
|
}
|
|
397
404
|
static async from(filename, isEmbedded, options) {
|
|
@@ -403,37 +410,7 @@ metadata is not an object`);
|
|
|
403
410
|
return new ConditionalDeviceConfig(relativePath, isEmbedded, json);
|
|
404
411
|
}
|
|
405
412
|
evaluate(deviceId) {
|
|
406
|
-
|
|
407
|
-
if (this.associations) {
|
|
408
|
-
associations = new Map();
|
|
409
|
-
for (const [group, assoc] of this.associations) {
|
|
410
|
-
const evaluated = assoc.evaluateCondition(deviceId);
|
|
411
|
-
if (evaluated)
|
|
412
|
-
associations.set(group, evaluated);
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
let endpoints;
|
|
416
|
-
if (this.endpoints) {
|
|
417
|
-
endpoints = new Map();
|
|
418
|
-
for (const [group, assoc] of this.endpoints) {
|
|
419
|
-
const evaluated = assoc.evaluateCondition(deviceId);
|
|
420
|
-
if (evaluated)
|
|
421
|
-
endpoints.set(group, evaluated);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
let paramInformation;
|
|
425
|
-
if (this.paramInformation) {
|
|
426
|
-
paramInformation = new shared_1.ObjectKeyMap();
|
|
427
|
-
for (const [key, params] of this.paramInformation.entries()) {
|
|
428
|
-
// Only take the first matching parameter
|
|
429
|
-
for (const param of params) {
|
|
430
|
-
const evaluated = param.evaluateCondition(deviceId);
|
|
431
|
-
if (evaluated)
|
|
432
|
-
paramInformation.set(key, evaluated);
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
return new DeviceConfig(this.filename, this.isEmbedded, this.manufacturer, this.manufacturerId, this.label, this.description, this.devices, this.firmwareVersion, endpoints, associations, paramInformation, this.proprietary, this.compat, this.metadata);
|
|
413
|
+
return new DeviceConfig(this.filename, this.isEmbedded, (0, ConditionalItem_1.evaluateDeep)(this.manufacturer, deviceId), this.manufacturerId, (0, ConditionalItem_1.evaluateDeep)(this.label, deviceId), (0, ConditionalItem_1.evaluateDeep)(this.description, deviceId), this.devices, this.firmwareVersion, (0, ConditionalItem_1.evaluateDeep)(this.endpoints, deviceId), (0, ConditionalItem_1.evaluateDeep)(this.associations, deviceId), (0, ConditionalItem_1.evaluateDeep)(this.paramInformation, deviceId), this.proprietary, (0, ConditionalItem_1.evaluateDeep)(this.compat, deviceId), (0, ConditionalItem_1.evaluateDeep)(this.metadata, deviceId));
|
|
437
414
|
}
|
|
438
415
|
}
|
|
439
416
|
exports.ConditionalDeviceConfig = ConditionalDeviceConfig;
|
|
@@ -483,294 +460,4 @@ class DeviceConfig {
|
|
|
483
460
|
}
|
|
484
461
|
}
|
|
485
462
|
exports.DeviceConfig = DeviceConfig;
|
|
486
|
-
|
|
487
|
-
constructor(filename, index, definition) {
|
|
488
|
-
this.index = index;
|
|
489
|
-
if (definition.$if != undefined && typeof definition.$if !== "string") {
|
|
490
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
491
|
-
Endpoint ${index} has a non-string $if condition`);
|
|
492
|
-
}
|
|
493
|
-
this.condition = definition.$if;
|
|
494
|
-
if (definition.associations != undefined) {
|
|
495
|
-
const associations = new Map();
|
|
496
|
-
if (!(0, typeguards_1.isObject)(definition.associations)) {
|
|
497
|
-
(0, utils_safe_1.throwInvalidConfig)(`device`, `packages/config/config/devices/${filename}:
|
|
498
|
-
Endpoint ${index}: associations is not an object`);
|
|
499
|
-
}
|
|
500
|
-
for (const [key, assocDefinition] of (0, objects_1.entries)(definition.associations)) {
|
|
501
|
-
if (!/^[1-9][0-9]*$/.test(key)) {
|
|
502
|
-
(0, utils_safe_1.throwInvalidConfig)(`device`, `packages/config/config/devices/${filename}:
|
|
503
|
-
Endpoint ${index}: found non-numeric group id "${key}" in associations`);
|
|
504
|
-
}
|
|
505
|
-
const keyNum = parseInt(key, 10);
|
|
506
|
-
associations.set(keyNum, new ConditionalAssociationConfig(filename, keyNum, assocDefinition));
|
|
507
|
-
}
|
|
508
|
-
this.associations = associations;
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
evaluateCondition(deviceId) {
|
|
512
|
-
if (deviceId &&
|
|
513
|
-
this.condition &&
|
|
514
|
-
!conditionApplies(this.condition, deviceId)) {
|
|
515
|
-
return;
|
|
516
|
-
}
|
|
517
|
-
let associations;
|
|
518
|
-
if (this.associations) {
|
|
519
|
-
associations = new Map();
|
|
520
|
-
for (const [group, assoc] of this.associations) {
|
|
521
|
-
const evaluated = assoc.evaluateCondition(deviceId);
|
|
522
|
-
if (evaluated)
|
|
523
|
-
associations.set(group, evaluated);
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
return {
|
|
527
|
-
...(0, shared_1.pick)(this, ["index"]),
|
|
528
|
-
associations,
|
|
529
|
-
};
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
exports.ConditionalEndpointConfig = ConditionalEndpointConfig;
|
|
533
|
-
class ConditionalAssociationConfig {
|
|
534
|
-
constructor(filename, groupId, definition) {
|
|
535
|
-
var _a;
|
|
536
|
-
this.groupId = groupId;
|
|
537
|
-
if (definition.$if != undefined && typeof definition.$if !== "string") {
|
|
538
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
539
|
-
Association ${groupId} has a non-string $if condition`);
|
|
540
|
-
}
|
|
541
|
-
this.condition = definition.$if;
|
|
542
|
-
if (typeof definition.label !== "string") {
|
|
543
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
544
|
-
Association ${groupId} has a non-string label`);
|
|
545
|
-
}
|
|
546
|
-
this.label = definition.label;
|
|
547
|
-
if (definition.description != undefined &&
|
|
548
|
-
typeof definition.description !== "string") {
|
|
549
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
550
|
-
Association ${groupId} has a non-string description`);
|
|
551
|
-
}
|
|
552
|
-
this.description = definition.description;
|
|
553
|
-
if (typeof definition.maxNodes !== "number") {
|
|
554
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
555
|
-
maxNodes for association ${groupId} is not a number`);
|
|
556
|
-
}
|
|
557
|
-
this.maxNodes = definition.maxNodes;
|
|
558
|
-
if (definition.isLifeline != undefined &&
|
|
559
|
-
typeof definition.isLifeline !== "boolean") {
|
|
560
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
561
|
-
isLifeline in association ${groupId} must be a boolean`);
|
|
562
|
-
}
|
|
563
|
-
this.isLifeline = !!definition.isLifeline;
|
|
564
|
-
if (definition.multiChannel != undefined &&
|
|
565
|
-
typeof definition.multiChannel !== "boolean") {
|
|
566
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
567
|
-
multiChannel in association ${groupId} must be a boolean`);
|
|
568
|
-
}
|
|
569
|
-
// Default to the "auto" strategy
|
|
570
|
-
this.multiChannel = (_a = definition.multiChannel) !== null && _a !== void 0 ? _a : "auto";
|
|
571
|
-
}
|
|
572
|
-
evaluateCondition(deviceId) {
|
|
573
|
-
if (deviceId &&
|
|
574
|
-
this.condition &&
|
|
575
|
-
!conditionApplies(this.condition, deviceId)) {
|
|
576
|
-
return;
|
|
577
|
-
}
|
|
578
|
-
return (0, shared_1.pick)(this, [
|
|
579
|
-
"groupId",
|
|
580
|
-
"label",
|
|
581
|
-
"description",
|
|
582
|
-
"maxNodes",
|
|
583
|
-
"isLifeline",
|
|
584
|
-
"multiChannel",
|
|
585
|
-
]);
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
exports.ConditionalAssociationConfig = ConditionalAssociationConfig;
|
|
589
|
-
class ConditionalParamInformation {
|
|
590
|
-
constructor(parent, parameterNumber, valueBitMask, definition) {
|
|
591
|
-
var _a, _b, _c;
|
|
592
|
-
this.parent = parent;
|
|
593
|
-
this.parameterNumber = parameterNumber;
|
|
594
|
-
this.valueBitMask = valueBitMask;
|
|
595
|
-
// No need to validate here, this should be done one level higher
|
|
596
|
-
this.condition = definition.$if;
|
|
597
|
-
if (typeof definition.label !== "string") {
|
|
598
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
599
|
-
Parameter #${parameterNumber} has a non-string label`);
|
|
600
|
-
}
|
|
601
|
-
this.label = definition.label;
|
|
602
|
-
if (definition.description != undefined &&
|
|
603
|
-
typeof definition.description !== "string") {
|
|
604
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
605
|
-
Parameter #${parameterNumber} has a non-string description`);
|
|
606
|
-
}
|
|
607
|
-
this.description = definition.description;
|
|
608
|
-
if (typeof definition.valueSize !== "number" ||
|
|
609
|
-
definition.valueSize <= 0) {
|
|
610
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
611
|
-
Parameter #${parameterNumber} has an invalid value size`);
|
|
612
|
-
}
|
|
613
|
-
this.valueSize = definition.valueSize;
|
|
614
|
-
if (definition.minValue != undefined &&
|
|
615
|
-
typeof definition.minValue !== "number") {
|
|
616
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
617
|
-
Parameter #${parameterNumber} has a non-numeric property minValue`);
|
|
618
|
-
}
|
|
619
|
-
this.minValue = definition.minValue;
|
|
620
|
-
if (definition.maxValue != undefined &&
|
|
621
|
-
typeof definition.maxValue !== "number") {
|
|
622
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
623
|
-
Parameter #${parameterNumber} has a non-numeric property maxValue`);
|
|
624
|
-
}
|
|
625
|
-
this.maxValue = definition.maxValue;
|
|
626
|
-
if (definition.unsigned != undefined &&
|
|
627
|
-
typeof definition.unsigned !== "boolean") {
|
|
628
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
629
|
-
Parameter #${parameterNumber} has a non-boolean property unsigned`);
|
|
630
|
-
}
|
|
631
|
-
this.unsigned = definition.unsigned === true;
|
|
632
|
-
if (definition.unit != undefined &&
|
|
633
|
-
typeof definition.unit !== "string") {
|
|
634
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
635
|
-
Parameter #${parameterNumber} has a non-string unit`);
|
|
636
|
-
}
|
|
637
|
-
this.unit = definition.unit;
|
|
638
|
-
if (definition.readOnly != undefined && definition.readOnly !== true) {
|
|
639
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
640
|
-
Parameter #${parameterNumber}: readOnly must true or omitted!`);
|
|
641
|
-
}
|
|
642
|
-
this.readOnly = definition.readOnly;
|
|
643
|
-
if (definition.writeOnly != undefined &&
|
|
644
|
-
definition.writeOnly !== true) {
|
|
645
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
646
|
-
Parameter #${parameterNumber}: writeOnly must be true or omitted!`);
|
|
647
|
-
}
|
|
648
|
-
this.writeOnly = definition.writeOnly;
|
|
649
|
-
if (definition.defaultValue == undefined) {
|
|
650
|
-
if (!this.readOnly) {
|
|
651
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
652
|
-
Parameter #${parameterNumber} is missing defaultValue, which is required unless the parameter is readOnly`);
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
|
-
else if (typeof definition.defaultValue !== "number") {
|
|
656
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
657
|
-
Parameter #${parameterNumber} has a non-numeric property defaultValue`);
|
|
658
|
-
}
|
|
659
|
-
this.defaultValue = definition.defaultValue;
|
|
660
|
-
if (definition.allowManualEntry != undefined &&
|
|
661
|
-
definition.allowManualEntry !== false) {
|
|
662
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
663
|
-
Parameter #${parameterNumber}: allowManualEntry must be false or omitted!`);
|
|
664
|
-
}
|
|
665
|
-
// Default to allowing manual entry, except if the param is readonly
|
|
666
|
-
this.allowManualEntry =
|
|
667
|
-
(_a = definition.allowManualEntry) !== null && _a !== void 0 ? _a : (this.readOnly ? false : true);
|
|
668
|
-
if ((0, typeguards_1.isArray)(definition.options) &&
|
|
669
|
-
!definition.options.every((opt) => (0, typeguards_1.isObject)(opt) &&
|
|
670
|
-
typeof opt.label === "string" &&
|
|
671
|
-
typeof opt.value === "number")) {
|
|
672
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${parent.filename}:
|
|
673
|
-
Parameter #${parameterNumber}: options is malformed!`);
|
|
674
|
-
}
|
|
675
|
-
this.options =
|
|
676
|
-
(_c = (_b = definition.options) === null || _b === void 0 ? void 0 : _b.map((opt) => new ConditionalConfigOption(opt.value, opt.label, opt.$if))) !== null && _c !== void 0 ? _c : [];
|
|
677
|
-
}
|
|
678
|
-
evaluateCondition(deviceId) {
|
|
679
|
-
if (deviceId &&
|
|
680
|
-
this.condition &&
|
|
681
|
-
!conditionApplies(this.condition, deviceId)) {
|
|
682
|
-
return;
|
|
683
|
-
}
|
|
684
|
-
const ret = {
|
|
685
|
-
...(0, shared_1.pick)(this, [
|
|
686
|
-
"parameterNumber",
|
|
687
|
-
"valueBitMask",
|
|
688
|
-
"label",
|
|
689
|
-
"description",
|
|
690
|
-
"valueSize",
|
|
691
|
-
"minValue",
|
|
692
|
-
"maxValue",
|
|
693
|
-
"unsigned",
|
|
694
|
-
"defaultValue",
|
|
695
|
-
"unit",
|
|
696
|
-
"readOnly",
|
|
697
|
-
"writeOnly",
|
|
698
|
-
"allowManualEntry",
|
|
699
|
-
]),
|
|
700
|
-
options: this.options
|
|
701
|
-
.map((o) => o.evaluateCondition(deviceId))
|
|
702
|
-
.filter((o) => !!o),
|
|
703
|
-
};
|
|
704
|
-
// Infer minValue from options if possible
|
|
705
|
-
if (ret.minValue == undefined) {
|
|
706
|
-
if (ret.allowManualEntry === false && ret.options.length > 0) {
|
|
707
|
-
ret.minValue = Math.min(...ret.options.map((o) => o.value));
|
|
708
|
-
}
|
|
709
|
-
else {
|
|
710
|
-
throw (0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${this.parent.filename}:
|
|
711
|
-
Parameter #${this.parameterNumber} is missing required property "minValue"!`);
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
if (ret.maxValue == undefined) {
|
|
715
|
-
if (ret.allowManualEntry === false && ret.options.length > 0) {
|
|
716
|
-
ret.maxValue = Math.max(...ret.options.map((o) => o.value));
|
|
717
|
-
}
|
|
718
|
-
else {
|
|
719
|
-
throw (0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${this.parent.filename}:
|
|
720
|
-
Parameter #${this.parameterNumber} is missing required property "maxValue"!`);
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
// @ts-expect-error TS doesn't seem to understand that we do set min/maxValue
|
|
724
|
-
return ret;
|
|
725
|
-
}
|
|
726
|
-
}
|
|
727
|
-
exports.ConditionalParamInformation = ConditionalParamInformation;
|
|
728
|
-
class ConditionalConfigOption {
|
|
729
|
-
constructor(value, label, condition) {
|
|
730
|
-
this.value = value;
|
|
731
|
-
this.label = label;
|
|
732
|
-
this.condition = condition;
|
|
733
|
-
}
|
|
734
|
-
evaluateCondition(deviceId) {
|
|
735
|
-
if (deviceId &&
|
|
736
|
-
this.condition &&
|
|
737
|
-
!conditionApplies(this.condition, deviceId)) {
|
|
738
|
-
return;
|
|
739
|
-
}
|
|
740
|
-
return (0, shared_1.pick)(this, ["value", "label"]);
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
exports.ConditionalConfigOption = ConditionalConfigOption;
|
|
744
|
-
class DeviceMetadata {
|
|
745
|
-
constructor(filename, definition) {
|
|
746
|
-
for (const prop of [
|
|
747
|
-
"wakeup",
|
|
748
|
-
"inclusion",
|
|
749
|
-
"exclusion",
|
|
750
|
-
"reset",
|
|
751
|
-
"manual",
|
|
752
|
-
"comments",
|
|
753
|
-
]) {
|
|
754
|
-
if (prop in definition) {
|
|
755
|
-
const value = definition[prop];
|
|
756
|
-
if (prop === "comments") {
|
|
757
|
-
const isComment = (opt) => (0, typeguards_1.isObject)(opt) &&
|
|
758
|
-
typeof opt.level === "string" &&
|
|
759
|
-
typeof opt.text === "string";
|
|
760
|
-
const isValid = ((0, typeguards_1.isArray)(value) && value.every(isComment)) ||
|
|
761
|
-
isComment(value);
|
|
762
|
-
if (!isValid)
|
|
763
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
764
|
-
The metadata entry comments is invalid!`);
|
|
765
|
-
}
|
|
766
|
-
else if (typeof value !== "string") {
|
|
767
|
-
(0, utils_safe_1.throwInvalidConfig)("devices", `packages/config/config/devices/${filename}:
|
|
768
|
-
The metadata entry ${prop} must be a string!`);
|
|
769
|
-
}
|
|
770
|
-
this[prop] = value;
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
}
|
|
775
|
-
exports.DeviceMetadata = DeviceMetadata;
|
|
776
|
-
//# sourceMappingURL=Devices.js.map
|
|
463
|
+
//# sourceMappingURL=DeviceConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceConfig.js","sourceRoot":"","sources":["../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=DeviceConfig.unit._test.d.ts.map
|