@zwave-js/config 9.0.3 → 9.0.4

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 (64) hide show
  1. package/build/CompatConfig.d.ts +2 -2
  2. package/build/CompatConfig.d.ts.map +1 -1
  3. package/build/CompatConfig.js +51 -51
  4. package/build/CompatConfig.js.map +1 -1
  5. package/build/ConfigManager.d.ts.map +1 -1
  6. package/build/ConfigManager.js +239 -7
  7. package/build/ConfigManager.js.map +1 -1
  8. package/build/DeviceClasses.d.ts +2 -2
  9. package/build/DeviceClasses.d.ts.map +1 -1
  10. package/build/DeviceClasses.js +30 -82
  11. package/build/DeviceClasses.js.map +1 -1
  12. package/build/Devices.d.ts.map +1 -1
  13. package/build/Devices.js +44 -43
  14. package/build/Devices.js.map +1 -1
  15. package/build/Indicators.d.ts +2 -2
  16. package/build/Indicators.d.ts.map +1 -1
  17. package/build/Indicators.js +9 -64
  18. package/build/Indicators.js.map +1 -1
  19. package/build/JsonTemplate.js +10 -10
  20. package/build/JsonTemplate.js.map +1 -1
  21. package/build/Logger.d.ts +2 -3
  22. package/build/Logger.d.ts.map +1 -1
  23. package/build/Logger.js +4 -5
  24. package/build/Logger.js.map +1 -1
  25. package/build/Logger_safe.d.ts +5 -0
  26. package/build/Logger_safe.d.ts.map +1 -0
  27. package/build/Logger_safe.js +6 -0
  28. package/build/Logger_safe.js.map +1 -0
  29. package/build/Manufacturers.d.ts.map +1 -1
  30. package/build/Manufacturers.js +6 -5
  31. package/build/Manufacturers.js.map +1 -1
  32. package/build/Meters.d.ts +1 -1
  33. package/build/Meters.d.ts.map +1 -1
  34. package/build/Meters.js +7 -46
  35. package/build/Meters.js.map +1 -1
  36. package/build/Notifications.d.ts +1 -1
  37. package/build/Notifications.d.ts.map +1 -1
  38. package/build/Notifications.js +15 -54
  39. package/build/Notifications.js.map +1 -1
  40. package/build/Scales.d.ts +1 -1
  41. package/build/Scales.d.ts.map +1 -1
  42. package/build/Scales.js +6 -55
  43. package/build/Scales.js.map +1 -1
  44. package/build/SensorTypes.d.ts +1 -1
  45. package/build/SensorTypes.d.ts.map +1 -1
  46. package/build/SensorTypes.js +9 -47
  47. package/build/SensorTypes.js.map +1 -1
  48. package/build/index.d.ts +1 -1
  49. package/build/index.d.ts.map +1 -1
  50. package/build/index.js +1 -1
  51. package/build/index.js.map +1 -1
  52. package/build/index_safe.d.ts +8 -0
  53. package/build/index_safe.d.ts.map +1 -0
  54. package/build/index_safe.js +25 -0
  55. package/build/index_safe.js.map +1 -0
  56. package/build/utils.d.ts +0 -4
  57. package/build/utils.d.ts.map +1 -1
  58. package/build/utils.js +1 -10
  59. package/build/utils.js.map +1 -1
  60. package/build/utils_safe.d.ts +5 -0
  61. package/build/utils_safe.d.ts.map +1 -0
  62. package/build/utils_safe.js +13 -0
  63. package/build/utils_safe.js.map +1 -0
  64. package/package.json +16 -4
@@ -1,91 +1,36 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IndicatorProperty = exports.loadIndicatorsInternal = void 0;
7
- const core_1 = require("@zwave-js/core");
8
- const shared_1 = require("@zwave-js/shared");
9
- const objects_1 = require("alcalzone-shared/objects");
10
- const typeguards_1 = require("alcalzone-shared/typeguards");
11
- const fs_extra_1 = require("fs-extra");
12
- const json5_1 = __importDefault(require("json5"));
13
- const path_1 = __importDefault(require("path"));
14
- const utils_1 = require("./utils");
15
- /** @internal */
16
- async function loadIndicatorsInternal(externalConfig) {
17
- const indicatorsConfigPath = path_1.default.join((externalConfig && (0, utils_1.externalConfigDir)()) || utils_1.configDir, "indicators.json");
18
- if (!(await (0, fs_extra_1.pathExists)(indicatorsConfigPath))) {
19
- throw new core_1.ZWaveError("The config file does not exist!", core_1.ZWaveErrorCodes.Config_Invalid);
20
- }
21
- try {
22
- const fileContents = await (0, fs_extra_1.readFile)(indicatorsConfigPath, "utf8");
23
- const definition = json5_1.default.parse(fileContents);
24
- if (!(0, typeguards_1.isObject)(definition)) {
25
- (0, utils_1.throwInvalidConfig)("indicators", "the database is not an object");
26
- }
27
- if (!("indicators" in definition)) {
28
- (0, utils_1.throwInvalidConfig)("indicators", `the required key "indicators" is missing`);
29
- }
30
- if (!("properties" in definition)) {
31
- (0, utils_1.throwInvalidConfig)("indicators", `the required key "properties" is missing`);
32
- }
33
- const indicators = new Map();
34
- for (const [id, label] of (0, objects_1.entries)(definition.indicators)) {
35
- if (!utils_1.hexKeyRegexNDigits.test(id)) {
36
- (0, utils_1.throwInvalidConfig)("indicators", `found invalid key "${id}" in "indicators". Indicators must have lowercase hexadecimal IDs.`);
37
- }
38
- const idNum = parseInt(id.slice(2), 16);
39
- indicators.set(idNum, label);
40
- }
41
- const properties = new Map();
42
- for (const [id, propDefinition] of (0, objects_1.entries)(definition.properties)) {
43
- if (!utils_1.hexKeyRegexNDigits.test(id)) {
44
- (0, utils_1.throwInvalidConfig)("indicators", `found invalid key "${id}" in "properties". Indicator properties must have lowercase hexadecimal IDs.`);
45
- }
46
- const idNum = parseInt(id.slice(2), 16);
47
- properties.set(idNum, new IndicatorProperty(idNum, propDefinition));
48
- }
49
- return { indicators, properties };
50
- }
51
- catch (e) {
52
- if ((0, core_1.isZWaveError)(e)) {
53
- throw e;
54
- }
55
- else {
56
- (0, utils_1.throwInvalidConfig)("indicators");
57
- }
58
- }
59
- }
60
- exports.loadIndicatorsInternal = loadIndicatorsInternal;
3
+ exports.IndicatorProperty = void 0;
4
+ const safe_1 = require("@zwave-js/shared/safe");
5
+ const utils_safe_1 = require("./utils_safe");
61
6
  class IndicatorProperty {
62
7
  constructor(id, definition) {
63
8
  this.id = id;
64
9
  if (typeof definition.label !== "string") {
65
- (0, utils_1.throwInvalidConfig)("indicators", `The label for property ${(0, shared_1.num2hex)(id)} is not a string!`);
10
+ (0, utils_safe_1.throwInvalidConfig)("indicators", `The label for property ${(0, safe_1.num2hex)(id)} is not a string!`);
66
11
  }
67
12
  this.label = definition.label;
68
13
  if (definition.description != undefined &&
69
14
  typeof definition.description !== "string") {
70
- (0, utils_1.throwInvalidConfig)("indicators", `The description for property ${(0, shared_1.num2hex)(id)} is not a string!`);
15
+ (0, utils_safe_1.throwInvalidConfig)("indicators", `The description for property ${(0, safe_1.num2hex)(id)} is not a string!`);
71
16
  }
72
17
  this.description = definition.description;
73
18
  if (definition.min != undefined && typeof definition.min !== "number") {
74
- (0, utils_1.throwInvalidConfig)("indicators", `The minimum value for property ${(0, shared_1.num2hex)(id)} is not a number!`);
19
+ (0, utils_safe_1.throwInvalidConfig)("indicators", `The minimum value for property ${(0, safe_1.num2hex)(id)} is not a number!`);
75
20
  }
76
21
  this.min = definition.min;
77
22
  if (definition.max != undefined && typeof definition.max !== "number") {
78
- (0, utils_1.throwInvalidConfig)("indicators", `The maximum value for property ${(0, shared_1.num2hex)(id)} is not a number!`);
23
+ (0, utils_safe_1.throwInvalidConfig)("indicators", `The maximum value for property ${(0, safe_1.num2hex)(id)} is not a number!`);
79
24
  }
80
25
  this.max = definition.max;
81
26
  if (definition.readonly != undefined &&
82
27
  typeof definition.readonly !== "boolean") {
83
- (0, utils_1.throwInvalidConfig)("indicators", `readonly for property ${(0, shared_1.num2hex)(id)} is not a boolean!`);
28
+ (0, utils_safe_1.throwInvalidConfig)("indicators", `readonly for property ${(0, safe_1.num2hex)(id)} is not a boolean!`);
84
29
  }
85
30
  this.readonly = definition.readonly;
86
31
  if (definition.type != undefined &&
87
32
  typeof definition.type !== "string") {
88
- (0, utils_1.throwInvalidConfig)("indicators", `type for property ${(0, shared_1.num2hex)(id)} is not a string!`);
33
+ (0, utils_safe_1.throwInvalidConfig)("indicators", `type for property ${(0, safe_1.num2hex)(id)} is not a string!`);
89
34
  }
90
35
  // TODO: Validate that the value is ok
91
36
  this.type = definition.type;
@@ -1 +1 @@
1
- {"version":3,"file":"Indicators.js","sourceRoot":"","sources":["../src/Indicators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Indicators.js","sourceRoot":"","sources":["../src/Indicators.ts"],"names":[],"mappings":";;;AACA,gDAA4D;AAC5D,6CAAkD;AAKlD,MAAa,iBAAiB;IAC7B,YAAmB,EAAU,EAAE,UAAsB;QACpD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE;YACzC,IAAA,+BAAkB,EACjB,YAAY,EACZ,0BAA0B,IAAA,cAAO,EAAC,EAAE,CAAC,mBAAmB,CACxD,CAAC;SACF;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE9B,IACC,UAAU,CAAC,WAAW,IAAI,SAAS;YACnC,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,EACzC;YACD,IAAA,+BAAkB,EACjB,YAAY,EACZ,gCAAgC,IAAA,cAAO,EAAC,EAAE,CAAC,mBAAmB,CAC9D,CAAC;SACF;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAE1C,IAAI,UAAU,CAAC,GAAG,IAAI,SAAS,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtE,IAAA,+BAAkB,EACjB,YAAY,EACZ,kCAAkC,IAAA,cAAO,EACxC,EAAE,CACF,mBAAmB,CACpB,CAAC;SACF;QACD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAE1B,IAAI,UAAU,CAAC,GAAG,IAAI,SAAS,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtE,IAAA,+BAAkB,EACjB,YAAY,EACZ,kCAAkC,IAAA,cAAO,EACxC,EAAE,CACF,mBAAmB,CACpB,CAAC;SACF;QACD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAE1B,IACC,UAAU,CAAC,QAAQ,IAAI,SAAS;YAChC,OAAO,UAAU,CAAC,QAAQ,KAAK,SAAS,EACvC;YACD,IAAA,+BAAkB,EACjB,YAAY,EACZ,yBAAyB,IAAA,cAAO,EAAC,EAAE,CAAC,oBAAoB,CACxD,CAAC;SACF;QACD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAEpC,IACC,UAAU,CAAC,IAAI,IAAI,SAAS;YAC5B,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EAClC;YACD,IAAA,+BAAkB,EACjB,YAAY,EACZ,qBAAqB,IAAA,cAAO,EAAC,EAAE,CAAC,mBAAmB,CACnD,CAAC;SACF;QACD,sCAAsC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,CAAC;CASD;AA1ED,8CA0EC"}
@@ -27,8 +27,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.readJsonWithTemplate = exports.clearTemplateCache = void 0;
30
- const core_1 = require("@zwave-js/core");
31
- const shared_1 = require("@zwave-js/shared");
30
+ const safe_1 = require("@zwave-js/core/safe");
31
+ const safe_2 = require("@zwave-js/shared/safe");
32
32
  const typeguards_1 = require("alcalzone-shared/typeguards");
33
33
  const fs = __importStar(require("fs-extra"));
34
34
  const json5_1 = __importDefault(require("json5"));
@@ -46,7 +46,7 @@ exports.clearTemplateCache = clearTemplateCache;
46
46
  /** Parses a JSON file with $import keys and replaces them with the selected objects */
47
47
  async function readJsonWithTemplate(filename, rootDir) {
48
48
  if (!(await fs.pathExists(filename))) {
49
- throw new core_1.ZWaveError(`Could not open config file ${filename}: not found!`, core_1.ZWaveErrorCodes.Config_NotFound);
49
+ throw new safe_1.ZWaveError(`Could not open config file ${filename}: not found!`, safe_1.ZWaveErrorCodes.Config_NotFound);
50
50
  }
51
51
  // Try to use the cached versions of the template files to speed up the loading
52
52
  const fileCache = new Map(templateCache);
@@ -62,10 +62,10 @@ async function readJsonWithTemplate(filename, rootDir) {
62
62
  exports.readJsonWithTemplate = readJsonWithTemplate;
63
63
  function assertImportSpecifier(val, source) {
64
64
  if (typeof val !== "string") {
65
- throw new core_1.ZWaveError(`Invalid import specifier ${String(val)}!${source != undefined ? ` Source: ${source}` : ""}`, core_1.ZWaveErrorCodes.Config_Invalid);
65
+ throw new safe_1.ZWaveError(`Invalid import specifier ${String(val)}!${source != undefined ? ` Source: ${source}` : ""}`, safe_1.ZWaveErrorCodes.Config_Invalid);
66
66
  }
67
67
  if (!importSpecifierRegex.test(val)) {
68
- throw new core_1.ZWaveError(`Import specifier "${val}" is invalid!${source != undefined ? ` Source: ${source}` : ""}`, core_1.ZWaveErrorCodes.Config_Invalid);
68
+ throw new safe_1.ZWaveError(`Import specifier "${val}" is invalid!${source != undefined ? ` Source: ${source}` : ""}`, safe_1.ZWaveErrorCodes.Config_Invalid);
69
69
  }
70
70
  }
71
71
  function getImportSpecifier(filename, selector) {
@@ -92,7 +92,7 @@ function select(obj, selector) {
92
92
  ret = ret[part];
93
93
  }
94
94
  if (!(0, typeguards_1.isObject)(ret)) {
95
- throw new core_1.ZWaveError(`The import target "${selector}" is not an object!`, core_1.ZWaveErrorCodes.Config_Invalid);
95
+ throw new safe_1.ZWaveError(`The import target "${selector}" is not an object!`, safe_1.ZWaveErrorCodes.Config_Invalid);
96
96
  }
97
97
  return ret;
98
98
  }
@@ -111,7 +111,7 @@ async function readJsonWithTemplateInternal(filename, selector, visited, fileCac
111
111
  if (rootDir) {
112
112
  const relativeToRoot = path.relative(rootDir, filename);
113
113
  if (relativeToRoot.startsWith("..")) {
114
- throw new core_1.ZWaveError(`Tried to import config file "${filename}" outside of root directory "${rootDir}"!${getImportStack(visited, selector)}`, core_1.ZWaveErrorCodes.Config_Invalid);
114
+ throw new safe_1.ZWaveError(`Tried to import config file "${filename}" outside of root directory "${rootDir}"!${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
115
115
  }
116
116
  }
117
117
  const specifier = getImportSpecifier(filename, selector);
@@ -121,7 +121,7 @@ async function readJsonWithTemplateInternal(filename, selector, visited, fileCac
121
121
  specifier,
122
122
  ].join(" -> ")}\n`;
123
123
  // process.stderr.write(msg + "\n");
124
- throw new core_1.ZWaveError(msg, core_1.ZWaveErrorCodes.Config_CircularImport);
124
+ throw new safe_1.ZWaveError(msg, safe_1.ZWaveErrorCodes.Config_CircularImport);
125
125
  }
126
126
  let json;
127
127
  if (fileCache.has(filename)) {
@@ -134,7 +134,7 @@ async function readJsonWithTemplateInternal(filename, selector, visited, fileCac
134
134
  fileCache.set(filename, json);
135
135
  }
136
136
  catch (e) {
137
- throw new core_1.ZWaveError(`Could not parse config file ${filename}: ${(0, shared_1.getErrorMessage)(e)}${getImportStack(visited, selector)}`, core_1.ZWaveErrorCodes.Config_Invalid);
137
+ throw new safe_1.ZWaveError(`Could not parse config file ${filename}: ${(0, safe_2.getErrorMessage)(e)}${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
138
138
  }
139
139
  }
140
140
  // Resolve the JSON imports for (a subset) of the file and return the compound file
@@ -157,7 +157,7 @@ async function resolveJsonImports(json, filename, visited, fileCache, rootDir) {
157
157
  newFilename = path.join(rootDir, importFilename.slice(2));
158
158
  }
159
159
  else {
160
- throw new core_1.ZWaveError(`An $import specifier cannot start with ~/ when no root directory is defined!${getImportStack(visited, selector)}`, core_1.ZWaveErrorCodes.Config_Invalid);
160
+ throw new safe_1.ZWaveError(`An $import specifier cannot start with ~/ when no root directory is defined!${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
161
161
  }
162
162
  }
163
163
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"JsonTemplate.js","sourceRoot":"","sources":["../src/JsonTemplate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonTemplate.js","sourceRoot":"","sources":["../src/JsonTemplate.ts"],"names":[],"mappings":"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"}
package/build/Logger.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { LogContext, ZWaveLogContainer, ZWaveLoggerBase } from "@zwave-js/core";
2
- export declare const CONFIG_LABEL = "CONFIG";
3
- export declare type ConfigLogContext = LogContext<"config">;
1
+ import { ZWaveLogContainer, ZWaveLoggerBase } from "@zwave-js/core";
2
+ import { ConfigLogContext } from "./Logger_safe";
4
3
  export declare class ConfigLogger extends ZWaveLoggerBase<ConfigLogContext> {
5
4
  constructor(loggers: ZWaveLogContainer);
6
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,YAAY,WAAW,CAAC;AAGrC,oBAAY,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAEpD,qBAAa,YAAa,SAAQ,eAAe,CAAC,gBAAgB,CAAC;gBACtD,OAAO,EAAE,iBAAiB;IAItC;;;OAGG;IACI,KAAK,CACX,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GACrD,IAAI;CAWP"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,eAAe,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAiC,MAAM,eAAe,CAAC;AAEhF,qBAAa,YAAa,SAAQ,eAAe,CAAC,gBAAgB,CAAC;gBACtD,OAAO,EAAE,iBAAiB;IAItC;;;OAGG;IACI,KAAK,CACX,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GACrD,IAAI;CAWP"}
package/build/Logger.js CHANGED
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConfigLogger = exports.CONFIG_LABEL = void 0;
3
+ exports.ConfigLogger = void 0;
4
4
  const core_1 = require("@zwave-js/core");
5
- exports.CONFIG_LABEL = "CONFIG";
6
- const CONFIG_LOGLEVEL = "debug";
5
+ const Logger_safe_1 = require("./Logger_safe");
7
6
  class ConfigLogger extends core_1.ZWaveLoggerBase {
8
7
  constructor(loggers) {
9
- super(loggers, exports.CONFIG_LABEL);
8
+ super(loggers, Logger_safe_1.CONFIG_LABEL);
10
9
  }
11
10
  /**
12
11
  * Logs a message
13
12
  * @param msg The message to output
14
13
  */
15
14
  print(message, level) {
16
- const actualLevel = level || CONFIG_LOGLEVEL;
15
+ const actualLevel = level || Logger_safe_1.CONFIG_LOGLEVEL;
17
16
  if (!this.container.isLoglevelVisible(actualLevel))
18
17
  return;
19
18
  this.logger.log({
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAAA,yCAKwB;AAEX,QAAA,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,eAAe,GAAG,OAAO,CAAC;AAIhC,MAAa,YAAa,SAAQ,sBAAiC;IAClE,YAAY,OAA0B;QACrC,KAAK,CAAC,OAAO,EAAE,oBAAY,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,KAAK,CACX,OAAe,EACf,KAAuD;QAEvD,MAAM,WAAW,GAAG,KAAK,IAAI,eAAe,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC;YAAE,OAAO;QAE3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,WAAW;YAClB,OAAO;YACP,SAAS,EAAE,IAAA,yBAAkB,EAAC,MAAM,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC;IACJ,CAAC;CACD;AAvBD,oCAuBC"}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAAA,yCAIwB;AACxB,+CAAgF;AAEhF,MAAa,YAAa,SAAQ,sBAAiC;IAClE,YAAY,OAA0B;QACrC,KAAK,CAAC,OAAO,EAAE,0BAAY,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,KAAK,CACX,OAAe,EACf,KAAuD;QAEvD,MAAM,WAAW,GAAG,KAAK,IAAI,6BAAe,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC;YAAE,OAAO;QAE3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACf,KAAK,EAAE,WAAW;YAClB,OAAO;YACP,SAAS,EAAE,IAAA,yBAAkB,EAAC,MAAM,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC;IACJ,CAAC;CACD;AAvBD,oCAuBC"}
@@ -0,0 +1,5 @@
1
+ import type { LogContext } from "@zwave-js/core/safe";
2
+ export declare const CONFIG_LABEL = "CONFIG";
3
+ export declare const CONFIG_LOGLEVEL = "debug";
4
+ export declare type ConfigLogContext = LogContext<"config">;
5
+ //# sourceMappingURL=Logger_safe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger_safe.d.ts","sourceRoot":"","sources":["../src/Logger_safe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,oBAAY,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONFIG_LOGLEVEL = exports.CONFIG_LABEL = void 0;
4
+ exports.CONFIG_LABEL = "CONFIG";
5
+ exports.CONFIG_LOGLEVEL = "debug";
6
+ //# sourceMappingURL=Logger_safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger_safe.js","sourceRoot":"","sources":["../src/Logger_safe.ts"],"names":[],"mappings":";;;AAEa,QAAA,YAAY,GAAG,QAAQ,CAAC;AACxB,QAAA,eAAe,GAAG,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Manufacturers.d.ts","sourceRoot":"","sources":["../src/Manufacturers.ts"],"names":[],"mappings":"AAcA,oBAAY,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAuDnD;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,aAAa,EAAE,gBAAgB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf"}
1
+ {"version":3,"file":"Manufacturers.d.ts","sourceRoot":"","sources":["../src/Manufacturers.ts"],"names":[],"mappings":"AAUA,oBAAY,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAuDnD;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,aAAa,EAAE,gBAAgB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -12,6 +12,7 @@ const fs_extra_1 = require("fs-extra");
12
12
  const json5_1 = __importDefault(require("json5"));
13
13
  const path_1 = __importDefault(require("path"));
14
14
  const utils_1 = require("./utils");
15
+ const utils_safe_1 = require("./utils_safe");
15
16
  /** @internal */
16
17
  async function loadManufacturersInternal(externalConfig) {
17
18
  const configPath = path_1.default.join((externalConfig && (0, utils_1.externalConfigDir)()) || utils_1.configDir, "manufacturers.json");
@@ -22,15 +23,15 @@ async function loadManufacturersInternal(externalConfig) {
22
23
  const fileContents = await (0, fs_extra_1.readFile)(configPath, "utf8");
23
24
  const definition = json5_1.default.parse(fileContents);
24
25
  if (!(0, typeguards_1.isObject)(definition)) {
25
- (0, utils_1.throwInvalidConfig)("manufacturers", `the database is not an object!`);
26
+ (0, utils_safe_1.throwInvalidConfig)("manufacturers", `the database is not an object!`);
26
27
  }
27
28
  const manufacturers = new Map();
28
29
  for (const [id, name] of (0, objects_1.entries)(definition)) {
29
- if (!utils_1.hexKeyRegex4Digits.test(id)) {
30
- (0, utils_1.throwInvalidConfig)("manufacturers", `found invalid key ${id} at the root level. Manufacturer IDs must be hexadecimal lowercase.`);
30
+ if (!utils_safe_1.hexKeyRegex4Digits.test(id)) {
31
+ (0, utils_safe_1.throwInvalidConfig)("manufacturers", `found invalid key ${id} at the root level. Manufacturer IDs must be hexadecimal lowercase.`);
31
32
  }
32
33
  if (typeof name !== "string") {
33
- (0, utils_1.throwInvalidConfig)("manufacturers", `Key ${id} has a non-string manufacturer name`);
34
+ (0, utils_safe_1.throwInvalidConfig)("manufacturers", `Key ${id} has a non-string manufacturer name`);
34
35
  }
35
36
  const idNum = parseInt(id.slice(2), 16);
36
37
  manufacturers.set(idNum, name);
@@ -42,7 +43,7 @@ async function loadManufacturersInternal(externalConfig) {
42
43
  throw e;
43
44
  }
44
45
  else {
45
- (0, utils_1.throwInvalidConfig)("manufacturers");
46
+ (0, utils_safe_1.throwInvalidConfig)("manufacturers");
46
47
  }
47
48
  }
48
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Manufacturers.js","sourceRoot":"","sources":["../src/Manufacturers.ts"],"names":[],"mappings":";;;;;;AAAA,yCAA2E;AAC3E,6CAAuD;AACvD,sDAAmD;AACnD,4DAAuD;AACvD,uCAA2D;AAC3D,kDAA0B;AAC1B,gDAAwB;AACxB,mCAKiB;AAIjB,gBAAgB;AACT,KAAK,UAAU,yBAAyB,CAC9C,cAAwB;IAExB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAC3B,CAAC,cAAc,IAAI,IAAA,yBAAiB,GAAE,CAAC,IAAI,iBAAS,EACpD,oBAAoB,CACpB,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC,EAAE;QACpC,MAAM,IAAI,iBAAU,CACnB,8CAA8C,EAC9C,sBAAe,CAAC,cAAc,CAC9B,CAAC;KACF;IACD,IAAI;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAA,qBAAQ,EAAC,UAAU,CAAC,EAAE;YAC1B,IAAA,0BAAkB,EACjB,eAAe,EACf,gCAAgC,CAChC,CAAC;SACF;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAA,iBAAO,EAAC,UAAU,CAAC,EAAE;YAC7C,IAAI,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACjC,IAAA,0BAAkB,EACjB,eAAe,EACf,qBAAqB,EAAE,qEAAqE,CAC5F,CAAC;aACF;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC7B,IAAA,0BAAkB,EACjB,eAAe,EACf,OAAO,EAAE,qCAAqC,CAC9C,CAAC;aACF;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC/B;QAED,OAAO,aAAa,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,IAAA,mBAAY,EAAC,CAAC,CAAC,EAAE;YACpB,MAAM,CAAC,CAAC;SACR;aAAM;YACN,IAAA,0BAAkB,EAAC,eAAe,CAAC,CAAC;SACpC;KACD;AACF,CAAC;AAlDD,8DAkDC;AAED;;GAEG;AACI,KAAK,UAAU,yBAAyB,CAC9C,aAA+B;IAE/B,MAAM,IAAI,GAA2B,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,IAAI,GAAG,CACzB,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;IAEF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE;QACpC,IAAI,CAAC,IAAA,iBAAQ,EAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;KAC1B;IAED,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,IAAA,kBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3D,CAAC;AAfD,8DAeC"}
1
+ {"version":3,"file":"Manufacturers.js","sourceRoot":"","sources":["../src/Manufacturers.ts"],"names":[],"mappings":";;;;;;AAAA,yCAA2E;AAC3E,6CAAuD;AACvD,sDAAmD;AACnD,4DAAuD;AACvD,uCAA2D;AAC3D,kDAA0B;AAC1B,gDAAwB;AACxB,mCAAuD;AACvD,6CAAsE;AAItE,gBAAgB;AACT,KAAK,UAAU,yBAAyB,CAC9C,cAAwB;IAExB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAC3B,CAAC,cAAc,IAAI,IAAA,yBAAiB,GAAE,CAAC,IAAI,iBAAS,EACpD,oBAAoB,CACpB,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC,EAAE;QACpC,MAAM,IAAI,iBAAU,CACnB,8CAA8C,EAC9C,sBAAe,CAAC,cAAc,CAC9B,CAAC;KACF;IACD,IAAI;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAA,qBAAQ,EAAC,UAAU,CAAC,EAAE;YAC1B,IAAA,+BAAkB,EACjB,eAAe,EACf,gCAAgC,CAChC,CAAC;SACF;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAA,iBAAO,EAAC,UAAU,CAAC,EAAE;YAC7C,IAAI,CAAC,+BAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACjC,IAAA,+BAAkB,EACjB,eAAe,EACf,qBAAqB,EAAE,qEAAqE,CAC5F,CAAC;aACF;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC7B,IAAA,+BAAkB,EACjB,eAAe,EACf,OAAO,EAAE,qCAAqC,CAC9C,CAAC;aACF;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC/B;QAED,OAAO,aAAa,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACX,IAAI,IAAA,mBAAY,EAAC,CAAC,CAAC,EAAE;YACpB,MAAM,CAAC,CAAC;SACR;aAAM;YACN,IAAA,+BAAkB,EAAC,eAAe,CAAC,CAAC;SACpC;KACD;AACF,CAAC;AAlDD,8DAkDC;AAED;;GAEG;AACI,KAAK,UAAU,yBAAyB,CAC9C,aAA+B;IAE/B,MAAM,IAAI,GAA2B,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,IAAI,GAAG,CACzB,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;IAEF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE;QACpC,IAAI,CAAC,IAAA,iBAAQ,EAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;KAC1B;IAED,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAS,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,IAAA,kBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3D,CAAC;AAfD,8DAeC"}
package/build/Meters.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { JSONObject } from "@zwave-js/shared";
1
+ import { JSONObject } from "@zwave-js/shared/safe";
2
2
  export declare type MeterMap = ReadonlyMap<number, Meter>;
3
3
  export declare class Meter {
4
4
  constructor(id: number, definition: JSONObject);
@@ -1 +1 @@
1
- {"version":3,"file":"Meters.d.ts","sourceRoot":"","sources":["../src/Meters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAW,MAAM,kBAAkB,CAAC;AAavD,oBAAY,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AA8ClD,qBAAa,KAAK;gBACE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAmCrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACxD;AAED,qBAAa,UAAU;gBACH,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKlD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,KAAK,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAE9D"}
1
+ {"version":3,"file":"Meters.d.ts","sourceRoot":"","sources":["../src/Meters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,uBAAuB,CAAC;AAK5D,oBAAY,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAElD,qBAAa,KAAK;gBACE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAmCrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACxD;AAED,qBAAa,UAAU;gBACH,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKlD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,KAAK,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAE9D"}
package/build/Meters.js CHANGED
@@ -1,49 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getDefaultMeterScale = exports.MeterScale = exports.Meter = exports.loadMetersInternal = void 0;
7
- const core_1 = require("@zwave-js/core");
8
- const shared_1 = require("@zwave-js/shared");
3
+ exports.getDefaultMeterScale = exports.MeterScale = exports.Meter = void 0;
4
+ const safe_1 = require("@zwave-js/shared/safe");
9
5
  const objects_1 = require("alcalzone-shared/objects");
10
6
  const typeguards_1 = require("alcalzone-shared/typeguards");
11
- const fs_extra_1 = require("fs-extra");
12
- const json5_1 = __importDefault(require("json5"));
13
- const path_1 = __importDefault(require("path"));
14
- const utils_1 = require("./utils");
15
- /** @internal */
16
- async function loadMetersInternal(externalConfig) {
17
- const configPath = path_1.default.join((externalConfig && (0, utils_1.externalConfigDir)()) || utils_1.configDir, "meters.json");
18
- if (!(await (0, fs_extra_1.pathExists)(configPath))) {
19
- throw new core_1.ZWaveError("The config file does not exist!", core_1.ZWaveErrorCodes.Config_Invalid);
20
- }
21
- try {
22
- const fileContents = await (0, fs_extra_1.readFile)(configPath, "utf8");
23
- const definition = json5_1.default.parse(fileContents);
24
- if (!(0, typeguards_1.isObject)(definition)) {
25
- (0, utils_1.throwInvalidConfig)("meters", "the database is not an object");
26
- }
27
- const meters = new Map();
28
- for (const [id, meterDefinition] of (0, objects_1.entries)(definition)) {
29
- if (!utils_1.hexKeyRegexNDigits.test(id)) {
30
- (0, utils_1.throwInvalidConfig)("meters", `found invalid key "${id}" at the root. Meters must have lowercase hexadecimal IDs.`);
31
- }
32
- const idNum = parseInt(id.slice(2), 16);
33
- meters.set(idNum, new Meter(idNum, meterDefinition));
34
- }
35
- return meters;
36
- }
37
- catch (e) {
38
- if ((0, core_1.isZWaveError)(e)) {
39
- throw e;
40
- }
41
- else {
42
- (0, utils_1.throwInvalidConfig)("meters");
43
- }
44
- }
45
- }
46
- exports.loadMetersInternal = loadMetersInternal;
7
+ const utils_safe_1 = require("./utils_safe");
47
8
  class Meter {
48
9
  constructor(id, definition) {
49
10
  this.id = id;
@@ -51,11 +12,11 @@ class Meter {
51
12
  const scales = new Map();
52
13
  if ((0, typeguards_1.isObject)(definition.scales)) {
53
14
  for (const [scaleId, scaleDefinition] of (0, objects_1.entries)(definition.scales)) {
54
- if (!utils_1.hexKeyRegexNDigits.test(scaleId)) {
55
- (0, utils_1.throwInvalidConfig)("meters", `found invalid key "${scaleId}" in meter ${(0, shared_1.num2hex)(id)}. Meter scales must have lowercase hexadecimal IDs.`);
15
+ if (!utils_safe_1.hexKeyRegexNDigits.test(scaleId)) {
16
+ (0, utils_safe_1.throwInvalidConfig)("meters", `found invalid key "${scaleId}" in meter ${(0, safe_1.num2hex)(id)}. Meter scales must have lowercase hexadecimal IDs.`);
56
17
  }
57
18
  if (typeof scaleDefinition !== "string") {
58
- (0, utils_1.throwInvalidConfig)("meters", `The scale definition for "${scaleId}" in meter ${(0, shared_1.num2hex)(id)} is not a string!`);
19
+ (0, utils_safe_1.throwInvalidConfig)("meters", `The scale definition for "${scaleId}" in meter ${(0, safe_1.num2hex)(id)} is not a string!`);
59
20
  }
60
21
  const scaleIdNum = parseInt(scaleId.slice(2), 16);
61
22
  scales.set(scaleIdNum, new MeterScale(scaleIdNum, scaleDefinition));
@@ -73,7 +34,7 @@ class MeterScale {
73
34
  }
74
35
  exports.MeterScale = MeterScale;
75
36
  function getDefaultMeterScale(scale) {
76
- return new MeterScale(scale, `Unknown (${(0, shared_1.num2hex)(scale)})`);
37
+ return new MeterScale(scale, `Unknown (${(0, safe_1.num2hex)(scale)})`);
77
38
  }
78
39
  exports.getDefaultMeterScale = getDefaultMeterScale;
79
40
  //# sourceMappingURL=Meters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Meters.js","sourceRoot":"","sources":["../src/Meters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Meters.js","sourceRoot":"","sources":["../src/Meters.ts"],"names":[],"mappings":";;;AAAA,gDAA4D;AAC5D,sDAAmD;AACnD,4DAAuD;AACvD,6CAAsE;AAItE,MAAa,KAAK;IACjB,YAAmB,EAAU,EAAE,UAAsB;QACpD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC7C,IAAI,IAAA,qBAAQ,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAChC,KAAK,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,IAAA,iBAAO,EAC/C,UAAU,CAAC,MAAM,CACjB,EAAE;gBACF,IAAI,CAAC,+BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBACtC,IAAA,+BAAkB,EACjB,QAAQ,EACR,sBAAsB,OAAO,cAAc,IAAA,cAAO,EACjD,EAAE,CACF,qDAAqD,CACtD,CAAC;iBACF;gBACD,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;oBACxC,IAAA,+BAAkB,EACjB,QAAQ,EACR,6BAA6B,OAAO,cAAc,IAAA,cAAO,EACxD,EAAE,CACF,mBAAmB,CACpB,CAAC;iBACF;gBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,MAAM,CAAC,GAAG,CACT,UAAU,EACV,IAAI,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,CAC3C,CAAC;aACF;SACD;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CAKD;AAvCD,sBAuCC;AAED,MAAa,UAAU;IACtB,YAAmB,GAAW,EAAE,UAAkB;QACjD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;IACzB,CAAC;CAID;AARD,gCAQC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IACjD,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,YAAY,IAAA,cAAO,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7D,CAAC;AAFD,oDAEC"}
@@ -1,4 +1,4 @@
1
- import { JSONObject } from "@zwave-js/shared";
1
+ import { JSONObject } from "@zwave-js/shared/safe";
2
2
  interface NotificationStateDefinition {
3
3
  type: "state";
4
4
  variableName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Notifications.d.ts","sourceRoot":"","sources":["../src/Notifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAW,MAAM,kBAAkB,CAAC;AAavD,UAAU,2BAA2B;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACd;AAED,UAAU,2BAA2B;IACpC,IAAI,EAAE,OAAO,CAAC;CACd;AAED,oBAAY,2BAA2B,GAAG,CACvC,2BAA2B,GAC3B,2BAA2B,CAC7B,GAAG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,oBAAY,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAoDhE,qBAAa,YAAY;gBACL,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IA6BrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3D,SAAgB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAExD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;CAyB1E;AAED,qBAAa,oBAAoB;gBACb,UAAU,EAAE,UAAU;IA4BzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/D;AAED,qBAAa,iBAAiB;gBACV,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IA4CrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAClD;AAED,qBAAa,iBAAiB;gBACV,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAwBrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAClD;AAED,qBAAa,qBAAqB;gBACd,UAAU,EAAE,UAAU;CAiBzC;AAED,oDAAoD;AACpD,qBAAa,iCAAiC;gBAC1B,WAAW,EAAE,UAAU;CAG1C;AAED,8CAA8C;AAC9C,qBAAa,qCAAqC;gBAC9B,WAAW,EAAE,UAAU;CAG1C;AAED,qBAAa,8BAA8B;gBACvB,UAAU,EAAE,UAAU;IASzC,SAAgB,YAAY,EAAE,MAAM,CAAC;CACrC"}
1
+ {"version":3,"file":"Notifications.d.ts","sourceRoot":"","sources":["../src/Notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,uBAAuB,CAAC;AAK5D,UAAU,2BAA2B;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACd;AAED,UAAU,2BAA2B;IACpC,IAAI,EAAE,OAAO,CAAC;CACd;AAED,oBAAY,2BAA2B,GAAG,CACvC,2BAA2B,GAC3B,2BAA2B,CAC7B,GAAG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF,oBAAY,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEhE,qBAAa,YAAY;gBACL,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IA6BrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3D,SAAgB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAExD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;CAyB1E;AAED,qBAAa,oBAAoB;gBACb,UAAU,EAAE,UAAU;IA4BzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/D;AAED,qBAAa,iBAAiB;gBACV,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IA4CrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAClD;AAED,qBAAa,iBAAiB;gBACV,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAwBrD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CAClD;AAED,qBAAa,qBAAqB;gBACd,UAAU,EAAE,UAAU;CAiBzC;AAED,oDAAoD;AACpD,qBAAa,iCAAiC;gBAC1B,WAAW,EAAE,UAAU;CAG1C;AAED,8CAA8C;AAC9C,qBAAa,qCAAqC;gBAC9B,WAAW,EAAE,UAAU;CAG1C;AAED,qBAAa,8BAA8B;gBACvB,UAAU,EAAE,UAAU;IASzC,SAAgB,YAAY,EAAE,MAAM,CAAC;CACrC"}
@@ -1,49 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NotificationParameterWithValue = exports.NotificationParameterWithCommandClass = exports.NotificationParameterWithDuration = exports.NotificationParameter = exports.NotificationEvent = exports.NotificationState = exports.NotificationVariable = exports.Notification = exports.loadNotificationsInternal = void 0;
7
- const core_1 = require("@zwave-js/core");
8
- const shared_1 = require("@zwave-js/shared");
3
+ exports.NotificationParameterWithValue = exports.NotificationParameterWithCommandClass = exports.NotificationParameterWithDuration = exports.NotificationParameter = exports.NotificationEvent = exports.NotificationState = exports.NotificationVariable = exports.Notification = void 0;
4
+ const safe_1 = require("@zwave-js/shared/safe");
9
5
  const objects_1 = require("alcalzone-shared/objects");
10
6
  const typeguards_1 = require("alcalzone-shared/typeguards");
11
- const fs_extra_1 = require("fs-extra");
12
- const json5_1 = __importDefault(require("json5"));
13
- const path_1 = __importDefault(require("path"));
14
- const utils_1 = require("./utils");
15
- /** @internal */
16
- async function loadNotificationsInternal(externalConfig) {
17
- const configPath = path_1.default.join((externalConfig && (0, utils_1.externalConfigDir)()) || utils_1.configDir, "notifications.json");
18
- if (!(await (0, fs_extra_1.pathExists)(configPath))) {
19
- throw new core_1.ZWaveError("The config file does not exist!", core_1.ZWaveErrorCodes.Config_Invalid);
20
- }
21
- try {
22
- const fileContents = await (0, fs_extra_1.readFile)(configPath, "utf8");
23
- const definition = json5_1.default.parse(fileContents);
24
- if (!(0, typeguards_1.isObject)(definition)) {
25
- (0, utils_1.throwInvalidConfig)("notifications", "the database is not an object");
26
- }
27
- const notifications = new Map();
28
- for (const [id, ntfcnDefinition] of (0, objects_1.entries)(definition)) {
29
- if (!utils_1.hexKeyRegexNDigits.test(id)) {
30
- (0, utils_1.throwInvalidConfig)("notifications", `found invalid key "${id}" at the root. Notifications must have lowercase hexadecimal IDs.`);
31
- }
32
- const idNum = parseInt(id.slice(2), 16);
33
- notifications.set(idNum, new Notification(idNum, ntfcnDefinition));
34
- }
35
- return notifications;
36
- }
37
- catch (e) {
38
- if ((0, core_1.isZWaveError)(e)) {
39
- throw e;
40
- }
41
- else {
42
- (0, utils_1.throwInvalidConfig)("notifications");
43
- }
44
- }
45
- }
46
- exports.loadNotificationsInternal = loadNotificationsInternal;
7
+ const utils_safe_1 = require("./utils_safe");
47
8
  class Notification {
48
9
  constructor(id, definition) {
49
10
  this.id = id;
@@ -54,8 +15,8 @@ class Notification {
54
15
  const events = new Map();
55
16
  if ((0, typeguards_1.isObject)(definition.events)) {
56
17
  for (const [eventId, eventDefinition] of (0, objects_1.entries)(definition.events)) {
57
- if (!utils_1.hexKeyRegexNDigits.test(eventId)) {
58
- (0, utils_1.throwInvalidConfig)("notifications", `found invalid key "${eventId}" in notification ${(0, shared_1.num2hex)(id)}. Notification events must have lowercase hexadecimal IDs.`);
18
+ if (!utils_safe_1.hexKeyRegexNDigits.test(eventId)) {
19
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `found invalid key "${eventId}" in notification ${(0, safe_1.num2hex)(id)}. Notification events must have lowercase hexadecimal IDs.`);
59
20
  }
60
21
  const eventIdNum = parseInt(eventId.slice(2), 16);
61
22
  events.set(eventIdNum, new NotificationEvent(eventIdNum, eventDefinition));
@@ -96,12 +57,12 @@ class NotificationVariable {
96
57
  // Otherwise it must be specified explicitly using `idle: false`
97
58
  this.idle = definition.idle !== false;
98
59
  if (!(0, typeguards_1.isObject)(definition.states)) {
99
- (0, utils_1.throwInvalidConfig)("notifications", `the variable definition for ${this.name} is not an object`);
60
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `the variable definition for ${this.name} is not an object`);
100
61
  }
101
62
  const states = new Map();
102
63
  for (const [stateId, stateDefinition] of (0, objects_1.entries)(definition.states)) {
103
- if (!utils_1.hexKeyRegexNDigits.test(stateId)) {
104
- (0, utils_1.throwInvalidConfig)("notifications", `found invalid key "${stateId}" in notification variable ${this.name}. Notification states must have lowercase hexadecimal IDs.`);
64
+ if (!utils_safe_1.hexKeyRegexNDigits.test(stateId)) {
65
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `found invalid key "${stateId}" in notification variable ${this.name}. Notification states must have lowercase hexadecimal IDs.`);
105
66
  }
106
67
  const stateIdNum = parseInt(stateId.slice(2), 16);
107
68
  states.set(stateIdNum, new NotificationState(stateIdNum, stateDefinition));
@@ -114,20 +75,20 @@ class NotificationState {
114
75
  constructor(id, definition) {
115
76
  this.id = id;
116
77
  if (typeof definition.label !== "string") {
117
- (0, utils_1.throwInvalidConfig)("notifications", `The label of notification state ${(0, shared_1.num2hex)(id)} has a non-string label`);
78
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `The label of notification state ${(0, safe_1.num2hex)(id)} has a non-string label`);
118
79
  }
119
80
  this.label = definition.label;
120
81
  if (definition.description != undefined &&
121
82
  typeof definition.description !== "string") {
122
- (0, utils_1.throwInvalidConfig)("notifications", `The label of notification state ${(0, shared_1.num2hex)(id)} has a non-string description`);
83
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `The label of notification state ${(0, safe_1.num2hex)(id)} has a non-string description`);
123
84
  }
124
85
  this.description = definition.description;
125
86
  if (definition.params != undefined) {
126
87
  if (!(0, typeguards_1.isObject)(definition.params)) {
127
- (0, utils_1.throwInvalidConfig)("notifications", `The parameter definition of notification state ${(0, shared_1.num2hex)(id)} must be an object`);
88
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter definition of notification state ${(0, safe_1.num2hex)(id)} must be an object`);
128
89
  }
129
90
  else if (typeof definition.params.type !== "string") {
130
- (0, utils_1.throwInvalidConfig)("notifications", `The parameter type of notification state ${(0, shared_1.num2hex)(id)} must be a string`);
91
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter type of notification state ${(0, safe_1.num2hex)(id)} must be a string`);
131
92
  }
132
93
  this.parameter = new NotificationParameter(definition.params);
133
94
  }
@@ -141,10 +102,10 @@ class NotificationEvent {
141
102
  this.description = definition.description;
142
103
  if (definition.params != undefined) {
143
104
  if (!(0, typeguards_1.isObject)(definition.params)) {
144
- (0, utils_1.throwInvalidConfig)("notifications", `The parameter definition of notification event ${(0, shared_1.num2hex)(id)} must be an object`);
105
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter definition of notification event ${(0, safe_1.num2hex)(id)} must be an object`);
145
106
  }
146
107
  else if (typeof definition.params.type !== "string") {
147
- (0, utils_1.throwInvalidConfig)("notifications", `The parameter type of notification event ${(0, shared_1.num2hex)(id)} must be a string`);
108
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `The parameter type of notification event ${(0, safe_1.num2hex)(id)} must be a string`);
148
109
  }
149
110
  this.parameter = new NotificationParameter(definition.params);
150
111
  }
@@ -188,7 +149,7 @@ exports.NotificationParameterWithCommandClass = NotificationParameterWithCommand
188
149
  class NotificationParameterWithValue {
189
150
  constructor(definition) {
190
151
  if (typeof definition.name !== "string") {
191
- (0, utils_1.throwInvalidConfig)("notifications", `Missing property name definition for Notification parameter with type: "value"!`);
152
+ (0, utils_safe_1.throwInvalidConfig)("notifications", `Missing property name definition for Notification parameter with type: "value"!`);
192
153
  }
193
154
  this.propertyName = definition.name;
194
155
  }