@zwave-js/config 14.0.0-beta.1 → 14.0.0-beta.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 (214) hide show
  1. package/build/{ConfigManager.d.ts → cjs/ConfigManager.d.ts} +2 -2
  2. package/build/cjs/ConfigManager.js +208 -0
  3. package/build/cjs/ConfigManager.js.map +7 -0
  4. package/build/cjs/JsonTemplate.js +198 -0
  5. package/build/cjs/JsonTemplate.js.map +7 -0
  6. package/build/{Logger.d.ts → cjs/Logger.d.ts} +1 -1
  7. package/build/cjs/Logger.js +50 -0
  8. package/build/cjs/Logger.js.map +7 -0
  9. package/build/cjs/Logger_safe.js +32 -0
  10. package/build/cjs/Logger_safe.js.map +7 -0
  11. package/build/cjs/Logic.js +71 -0
  12. package/build/cjs/Logic.js.map +7 -0
  13. package/build/cjs/LogicParser.js +1343 -0
  14. package/build/cjs/LogicParser.js.map +7 -0
  15. package/build/cjs/Manufacturers.js +88 -0
  16. package/build/cjs/Manufacturers.js.map +7 -0
  17. package/build/cjs/_version.d.ts +2 -0
  18. package/build/cjs/_version.js +29 -0
  19. package/build/cjs/_version.js.map +7 -0
  20. package/build/{devices → cjs/devices}/AssociationConfig.d.ts +2 -2
  21. package/build/cjs/devices/AssociationConfig.js +93 -0
  22. package/build/cjs/devices/AssociationConfig.js.map +7 -0
  23. package/build/{devices → cjs/devices}/CompatConfig.d.ts +2 -2
  24. package/build/cjs/devices/CompatConfig.js +584 -0
  25. package/build/cjs/devices/CompatConfig.js.map +7 -0
  26. package/build/{devices → cjs/devices}/ConditionalItem.d.ts +1 -1
  27. package/build/cjs/devices/ConditionalItem.js +107 -0
  28. package/build/cjs/devices/ConditionalItem.js.map +7 -0
  29. package/build/{devices → cjs/devices}/ConditionalPrimitive.d.ts +2 -2
  30. package/build/cjs/devices/ConditionalPrimitive.js +59 -0
  31. package/build/cjs/devices/ConditionalPrimitive.js.map +7 -0
  32. package/build/{devices → cjs/devices}/DeviceConfig.d.ts +7 -7
  33. package/build/cjs/devices/DeviceConfig.js +502 -0
  34. package/build/cjs/devices/DeviceConfig.js.map +7 -0
  35. package/build/cjs/devices/DeviceConfig.unit._test.js +17 -0
  36. package/build/cjs/devices/DeviceConfig.unit._test.js.map +7 -0
  37. package/build/{devices → cjs/devices}/DeviceMetadata.d.ts +3 -3
  38. package/build/cjs/devices/DeviceMetadata.js +112 -0
  39. package/build/cjs/devices/DeviceMetadata.js.map +7 -0
  40. package/build/{devices → cjs/devices}/EndpointConfig.d.ts +5 -5
  41. package/build/cjs/devices/EndpointConfig.js +87 -0
  42. package/build/cjs/devices/EndpointConfig.js.map +7 -0
  43. package/build/{devices → cjs/devices}/ParamInformation.d.ts +3 -3
  44. package/build/cjs/devices/ParamInformation.js +209 -0
  45. package/build/cjs/devices/ParamInformation.js.map +7 -0
  46. package/build/cjs/devices/shared.js +17 -0
  47. package/build/cjs/devices/shared.js.map +7 -0
  48. package/build/cjs/index.d.ts +13 -0
  49. package/build/cjs/index.js +53 -0
  50. package/build/cjs/index.js.map +7 -0
  51. package/build/cjs/index_safe.d.ts +3 -0
  52. package/build/cjs/index_safe.js +32 -0
  53. package/build/cjs/index_safe.js.map +7 -0
  54. package/build/cjs/package.json +3 -0
  55. package/build/{utils.d.ts → cjs/utils.d.ts} +2 -2
  56. package/build/cjs/utils.js +117 -0
  57. package/build/cjs/utils.js.map +7 -0
  58. package/build/cjs/utils_safe.js +57 -0
  59. package/build/cjs/utils_safe.js.map +7 -0
  60. package/build/esm/ConfigManager.d.ts +57 -0
  61. package/build/esm/ConfigManager.d.ts.map +1 -0
  62. package/build/{ConfigManager.js → esm/ConfigManager.js} +36 -43
  63. package/build/esm/ConfigManager.js.map +1 -0
  64. package/build/esm/JsonTemplate.d.ts +4 -0
  65. package/build/esm/JsonTemplate.d.ts.map +1 -0
  66. package/build/{JsonTemplate.js → esm/JsonTemplate.js} +30 -60
  67. package/build/esm/JsonTemplate.js.map +1 -0
  68. package/build/esm/Logger.d.ts +11 -0
  69. package/build/esm/Logger.d.ts.map +1 -0
  70. package/build/esm/Logger.js +23 -0
  71. package/build/esm/Logger.js.map +1 -0
  72. package/build/esm/Logger_safe.d.ts +5 -0
  73. package/build/esm/Logger_safe.d.ts.map +1 -0
  74. package/build/esm/Logger_safe.js +3 -0
  75. package/build/esm/Logger_safe.js.map +1 -0
  76. package/build/esm/Logic.d.ts +4 -0
  77. package/build/esm/Logic.d.ts.map +1 -0
  78. package/build/esm/Logic.js +35 -0
  79. package/build/esm/Logic.js.map +1 -0
  80. package/build/esm/LogicParser.d.ts +93 -0
  81. package/build/esm/LogicParser.d.ts.map +1 -0
  82. package/build/{LogicParser.js → esm/LogicParser.js} +2 -5
  83. package/build/{LogicParser.js.map → esm/LogicParser.js.map} +1 -1
  84. package/build/esm/Manufacturers.d.ts +6 -0
  85. package/build/esm/Manufacturers.d.ts.map +1 -0
  86. package/build/esm/Manufacturers.js +55 -0
  87. package/build/esm/Manufacturers.js.map +1 -0
  88. package/build/esm/_version.d.ts +2 -0
  89. package/build/esm/_version.d.ts.map +1 -0
  90. package/build/esm/_version.js +3 -0
  91. package/build/esm/_version.js.map +1 -0
  92. package/build/esm/devices/AssociationConfig.d.ts +27 -0
  93. package/build/esm/devices/AssociationConfig.d.ts.map +1 -0
  94. package/build/{devices → esm/devices}/AssociationConfig.js +12 -16
  95. package/build/esm/devices/AssociationConfig.js.map +1 -0
  96. package/build/esm/devices/CompatConfig.d.ts +112 -0
  97. package/build/esm/devices/CompatConfig.d.ts.map +1 -0
  98. package/build/{devices → esm/devices}/CompatConfig.js +112 -119
  99. package/build/esm/devices/CompatConfig.js.map +1 -0
  100. package/build/esm/devices/ConditionalItem.d.ts +14 -0
  101. package/build/esm/devices/ConditionalItem.d.ts.map +1 -0
  102. package/build/{devices → esm/devices}/ConditionalItem.js +15 -21
  103. package/build/esm/devices/ConditionalItem.js.map +1 -0
  104. package/build/esm/devices/ConditionalPrimitive.d.ts +13 -0
  105. package/build/esm/devices/ConditionalPrimitive.d.ts.map +1 -0
  106. package/build/esm/devices/ConditionalPrimitive.js +35 -0
  107. package/build/esm/devices/ConditionalPrimitive.js.map +1 -0
  108. package/build/esm/devices/DeviceConfig.d.ts +117 -0
  109. package/build/esm/devices/DeviceConfig.d.ts.map +1 -0
  110. package/build/{devices → esm/devices}/DeviceConfig.js +96 -108
  111. package/build/esm/devices/DeviceConfig.js.map +1 -0
  112. package/build/esm/devices/DeviceConfig.unit._test.d.ts +2 -0
  113. package/build/esm/devices/DeviceConfig.unit._test.d.ts.map +1 -0
  114. package/build/{devices → esm/devices}/DeviceConfig.unit._test.js +1 -2
  115. package/build/esm/devices/DeviceConfig.unit._test.js.map +1 -0
  116. package/build/esm/devices/DeviceMetadata.d.ts +41 -0
  117. package/build/esm/devices/DeviceMetadata.d.ts.map +1 -0
  118. package/build/{devices → esm/devices}/DeviceMetadata.js +16 -21
  119. package/build/esm/devices/DeviceMetadata.js.map +1 -0
  120. package/build/esm/devices/EndpointConfig.d.ts +20 -0
  121. package/build/esm/devices/EndpointConfig.d.ts.map +1 -0
  122. package/build/esm/devices/EndpointConfig.js +60 -0
  123. package/build/esm/devices/EndpointConfig.js.map +1 -0
  124. package/build/esm/devices/ParamInformation.d.ts +50 -0
  125. package/build/esm/devices/ParamInformation.d.ts.map +1 -0
  126. package/build/{devices → esm/devices}/ParamInformation.js +38 -44
  127. package/build/esm/devices/ParamInformation.js.map +1 -0
  128. package/build/esm/devices/shared.d.ts +11 -0
  129. package/build/esm/devices/shared.d.ts.map +1 -0
  130. package/build/esm/devices/shared.js +2 -0
  131. package/build/{devices → esm/devices}/shared.js.map +1 -1
  132. package/build/esm/index.d.ts +13 -0
  133. package/build/esm/index.d.ts.map +1 -0
  134. package/build/esm/index.js +14 -0
  135. package/build/esm/index.js.map +1 -0
  136. package/build/esm/index_safe.d.ts +3 -0
  137. package/build/esm/index_safe.d.ts.map +1 -0
  138. package/build/esm/index_safe.js +4 -0
  139. package/build/esm/index_safe.js.map +1 -0
  140. package/build/esm/package.json +3 -0
  141. package/build/esm/utils.d.ts +19 -0
  142. package/build/esm/utils.d.ts.map +1 -0
  143. package/build/esm/utils.js +93 -0
  144. package/build/esm/utils.js.map +1 -0
  145. package/build/esm/utils_safe.d.ts +7 -0
  146. package/build/esm/utils_safe.d.ts.map +1 -0
  147. package/build/esm/utils_safe.js +28 -0
  148. package/build/esm/utils_safe.js.map +1 -0
  149. package/package.json +22 -19
  150. package/build/ConfigManager.d.ts.map +0 -1
  151. package/build/ConfigManager.js.map +0 -1
  152. package/build/JsonTemplate.d.ts.map +0 -1
  153. package/build/JsonTemplate.js.map +0 -1
  154. package/build/Logger.d.ts.map +0 -1
  155. package/build/Logger.js +0 -27
  156. package/build/Logger.js.map +0 -1
  157. package/build/Logger_safe.d.ts.map +0 -1
  158. package/build/Logger_safe.js +0 -6
  159. package/build/Logger_safe.js.map +0 -1
  160. package/build/Logic.d.ts.map +0 -1
  161. package/build/Logic.js +0 -60
  162. package/build/Logic.js.map +0 -1
  163. package/build/LogicParser.d.ts.map +0 -1
  164. package/build/Manufacturers.d.ts.map +0 -1
  165. package/build/Manufacturers.js +0 -62
  166. package/build/Manufacturers.js.map +0 -1
  167. package/build/_version.d.ts +0 -2
  168. package/build/_version.d.ts.map +0 -1
  169. package/build/_version.js +0 -6
  170. package/build/_version.js.map +0 -1
  171. package/build/devices/AssociationConfig.d.ts.map +0 -1
  172. package/build/devices/AssociationConfig.js.map +0 -1
  173. package/build/devices/CompatConfig.d.ts.map +0 -1
  174. package/build/devices/CompatConfig.js.map +0 -1
  175. package/build/devices/ConditionalItem.d.ts.map +0 -1
  176. package/build/devices/ConditionalItem.js.map +0 -1
  177. package/build/devices/ConditionalPrimitive.d.ts.map +0 -1
  178. package/build/devices/ConditionalPrimitive.js +0 -40
  179. package/build/devices/ConditionalPrimitive.js.map +0 -1
  180. package/build/devices/DeviceConfig.d.ts.map +0 -1
  181. package/build/devices/DeviceConfig.js.map +0 -1
  182. package/build/devices/DeviceConfig.unit._test.d.ts.map +0 -1
  183. package/build/devices/DeviceConfig.unit._test.js.map +0 -1
  184. package/build/devices/DeviceMetadata.d.ts.map +0 -1
  185. package/build/devices/DeviceMetadata.js.map +0 -1
  186. package/build/devices/EndpointConfig.d.ts.map +0 -1
  187. package/build/devices/EndpointConfig.js +0 -64
  188. package/build/devices/EndpointConfig.js.map +0 -1
  189. package/build/devices/ParamInformation.d.ts.map +0 -1
  190. package/build/devices/ParamInformation.js.map +0 -1
  191. package/build/devices/shared.d.ts.map +0 -1
  192. package/build/devices/shared.js +0 -3
  193. package/build/index.d.ts +0 -13
  194. package/build/index.d.ts.map +0 -1
  195. package/build/index.js +0 -33
  196. package/build/index.js.map +0 -1
  197. package/build/index_safe.d.ts +0 -3
  198. package/build/index_safe.d.ts.map +0 -1
  199. package/build/index_safe.js +0 -22
  200. package/build/index_safe.js.map +0 -1
  201. package/build/utils.d.ts.map +0 -1
  202. package/build/utils.js +0 -124
  203. package/build/utils.js.map +0 -1
  204. package/build/utils_safe.d.ts.map +0 -1
  205. package/build/utils_safe.js +0 -33
  206. package/build/utils_safe.js.map +0 -1
  207. /package/build/{JsonTemplate.d.ts → cjs/JsonTemplate.d.ts} +0 -0
  208. /package/build/{Logger_safe.d.ts → cjs/Logger_safe.d.ts} +0 -0
  209. /package/build/{Logic.d.ts → cjs/Logic.d.ts} +0 -0
  210. /package/build/{LogicParser.d.ts → cjs/LogicParser.d.ts} +0 -0
  211. /package/build/{Manufacturers.d.ts → cjs/Manufacturers.d.ts} +0 -0
  212. /package/build/{devices → cjs/devices}/DeviceConfig.unit._test.d.ts +0 -0
  213. /package/build/{devices → cjs/devices}/shared.d.ts +0 -0
  214. /package/build/{utils_safe.d.ts → cjs/utils_safe.d.ts} +0 -0
@@ -1,53 +1,23 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.clearTemplateCache = clearTemplateCache;
30
- exports.readJsonWithTemplate = readJsonWithTemplate;
31
- const safe_1 = require("@zwave-js/core/safe");
32
- const shared_1 = require("@zwave-js/shared");
33
- const safe_2 = require("@zwave-js/shared/safe");
34
- const typeguards_1 = require("alcalzone-shared/typeguards");
35
- const json5_1 = __importDefault(require("json5"));
36
- const promises_1 = __importDefault(require("node:fs/promises"));
37
- const path = __importStar(require("node:path"));
1
+ import { ZWaveError, ZWaveErrorCodes } from "@zwave-js/core/safe";
2
+ import { pathExists } from "@zwave-js/shared";
3
+ import { getErrorMessage } from "@zwave-js/shared/safe";
4
+ import { isArray, isObject } from "alcalzone-shared/typeguards/index.js";
5
+ import JSON5 from "json5";
6
+ import fs from "node:fs/promises";
7
+ import * as path from "node:path";
38
8
  const IMPORT_KEY = "$import";
39
9
  const importSpecifierRegex = /^(?<filename>(?:~\/)?[\w\d\/\\\._-]+\.json)?(?:#(?<selector>[\w\d\/\._-]+(?:\[0x[0-9a-fA-F]+\])?))?$/i;
40
10
  // The template cache is used to speed up cases where the same files get parsed multiple times,
41
11
  // e.g. during config file linting. It should be cleared whenever the files need to be loaded fresh
42
12
  // from disk, like when creating an index
43
13
  const templateCache = new Map();
44
- function clearTemplateCache() {
14
+ export function clearTemplateCache() {
45
15
  templateCache.clear();
46
16
  }
47
17
  /** Parses a JSON file with $import keys and replaces them with the selected objects */
48
- async function readJsonWithTemplate(filename, rootDirs) {
49
- if (!(await (0, shared_1.pathExists)(filename))) {
50
- throw new safe_1.ZWaveError(`Could not open config file ${filename}: not found!`, safe_1.ZWaveErrorCodes.Config_NotFound);
18
+ export async function readJsonWithTemplate(filename, rootDirs) {
19
+ if (!(await pathExists(filename))) {
20
+ throw new ZWaveError(`Could not open config file ${filename}: not found!`, ZWaveErrorCodes.Config_NotFound);
51
21
  }
52
22
  if (typeof rootDirs === "string")
53
23
  rootDirs = [rootDirs];
@@ -64,10 +34,10 @@ async function readJsonWithTemplate(filename, rootDirs) {
64
34
  }
65
35
  function assertImportSpecifier(val, source) {
66
36
  if (typeof val !== "string") {
67
- throw new safe_1.ZWaveError(`Invalid import specifier ${String(val)}!${source != undefined ? ` Source: ${source}` : ""}`, safe_1.ZWaveErrorCodes.Config_Invalid);
37
+ throw new ZWaveError(`Invalid import specifier ${String(val)}!${source != undefined ? ` Source: ${source}` : ""}`, ZWaveErrorCodes.Config_Invalid);
68
38
  }
69
39
  if (!importSpecifierRegex.test(val)) {
70
- throw new safe_1.ZWaveError(`Import specifier "${val}" is invalid!${source != undefined ? ` Source: ${source}` : ""}`, safe_1.ZWaveErrorCodes.Config_Invalid);
40
+ throw new ZWaveError(`Import specifier "${val}" is invalid!${source != undefined ? ` Source: ${source}` : ""}`, ZWaveErrorCodes.Config_Invalid);
71
41
  }
72
42
  }
73
43
  function getImportSpecifier(filename, selector) {
@@ -81,8 +51,8 @@ function select(obj, selector) {
81
51
  const selectorParts = selector.split("/").filter((s) => !!s);
82
52
  for (const part of selectorParts) {
83
53
  // Special case for paramInformation selectors to select params by #
84
- if ((0, typeguards_1.isArray)(ret)) {
85
- const item = ret.find((r) => (0, typeguards_1.isObject)(r) && "#" in r && r["#"] === part);
54
+ if (isArray(ret)) {
55
+ const item = ret.find((r) => isObject(r) && "#" in r && r["#"] === part);
86
56
  if (item != undefined) {
87
57
  // Don't copy the param number
88
58
  const { ["#"]: _, ...rest } = item;
@@ -93,8 +63,8 @@ function select(obj, selector) {
93
63
  // By default select the object property
94
64
  ret = ret[part];
95
65
  }
96
- if (!(0, typeguards_1.isObject)(ret)) {
97
- throw new safe_1.ZWaveError(`The import target "${selector}" is not an object!`, safe_1.ZWaveErrorCodes.Config_Invalid);
66
+ if (!isObject(ret)) {
67
+ throw new ZWaveError(`The import target "${selector}" is not an object!`, ZWaveErrorCodes.Config_Invalid);
98
68
  }
99
69
  return ret;
100
70
  }
@@ -116,10 +86,10 @@ async function readJsonWithTemplateInternal(filename, selector, visited, fileCac
116
86
  return relativeToRoot.startsWith("..");
117
87
  });
118
88
  if (outsideAllRootDirs) {
119
- throw new safe_1.ZWaveError(`Tried to import config file "${filename}" from outside all root directories: ${rootDirs
89
+ throw new ZWaveError(`Tried to import config file "${filename}" from outside all root directories: ${rootDirs
120
90
  .map((d) => `\n· ${d}`)
121
91
  .join("")}
122
- ${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
92
+ ${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
123
93
  }
124
94
  }
125
95
  const specifier = getImportSpecifier(filename, selector);
@@ -129,7 +99,7 @@ ${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
129
99
  specifier,
130
100
  ].join(" -> ")}\n`;
131
101
  // process.stderr.write(msg + "\n");
132
- throw new safe_1.ZWaveError(msg, safe_1.ZWaveErrorCodes.Config_CircularImport);
102
+ throw new ZWaveError(msg, ZWaveErrorCodes.Config_CircularImport);
133
103
  }
134
104
  let json;
135
105
  if (fileCache.has(filename)) {
@@ -137,12 +107,12 @@ ${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
137
107
  }
138
108
  else {
139
109
  try {
140
- const fileContent = await promises_1.default.readFile(filename, "utf8");
141
- json = json5_1.default.parse(fileContent);
110
+ const fileContent = await fs.readFile(filename, "utf8");
111
+ json = JSON5.parse(fileContent);
142
112
  fileCache.set(filename, json);
143
113
  }
144
114
  catch (e) {
145
- throw new safe_1.ZWaveError(`Could not parse config file ${filename}: ${(0, safe_2.getErrorMessage)(e)}${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
115
+ throw new ZWaveError(`Could not parse config file ${filename}: ${getErrorMessage(e)}${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
146
116
  }
147
117
  }
148
118
  // Resolve the JSON imports for (a subset) of the file and return the compound file
@@ -167,7 +137,7 @@ async function resolveJsonImports(json, filename, visited, fileCache, rootDirs)
167
137
  if (rootDirs) {
168
138
  for (const rootDir of rootDirs) {
169
139
  newFilename = path.join(rootDir, importFilename.slice(2));
170
- if (await (0, shared_1.pathExists)(newFilename)) {
140
+ if (await pathExists(newFilename)) {
171
141
  break;
172
142
  }
173
143
  else {
@@ -176,13 +146,13 @@ async function resolveJsonImports(json, filename, visited, fileCache, rootDirs)
176
146
  }
177
147
  }
178
148
  if (!newFilename) {
179
- throw new safe_1.ZWaveError(`Could not find the referenced file ${importFilename.slice(2)} in any of the root directories: ${rootDirs
149
+ throw new ZWaveError(`Could not find the referenced file ${importFilename.slice(2)} in any of the root directories: ${rootDirs
180
150
  .map((d) => `\n· ${d}`)
181
- .join("")}\n${getImportStack(visited, selector)}`, safe_1.ZWaveErrorCodes.Config_Invalid);
151
+ .join("")}\n${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
182
152
  }
183
153
  }
184
154
  else {
185
- 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);
155
+ throw new ZWaveError(`An $import specifier cannot start with ~/ when no root directory is defined!${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
186
156
  }
187
157
  }
188
158
  else {
@@ -196,15 +166,15 @@ async function resolveJsonImports(json, filename, visited, fileCache, rootDirs)
196
166
  const imported = await readJsonWithTemplateInternal(newFilename, selector, visited, fileCache, rootDirs);
197
167
  Object.assign(ret, imported);
198
168
  }
199
- else if ((0, typeguards_1.isObject)(val)) {
169
+ else if (isObject(val)) {
200
170
  // We're looking at an object, recurse into it
201
171
  ret[prop] = await resolveJsonImports(val, filename, visited, fileCache, rootDirs);
202
172
  }
203
- else if ((0, typeguards_1.isArray)(val)) {
173
+ else if (isArray(val)) {
204
174
  // We're looking at an array, check if there are objects we need to recurse into
205
175
  const vals = [];
206
176
  for (const v of val) {
207
- if ((0, typeguards_1.isObject)(v)) {
177
+ if (isObject(v)) {
208
178
  vals.push(await resolveJsonImports(v, filename, visited, fileCache, rootDirs));
209
179
  }
210
180
  else {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonTemplate.js","sourceRoot":"","sources":["../../src/JsonTemplate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type ZWaveLogContainer, ZWaveLoggerBase } from "@zwave-js/core";
2
+ import { type ConfigLogContext } from "./Logger_safe.js";
3
+ export declare class ConfigLogger extends ZWaveLoggerBase<ConfigLogContext> {
4
+ constructor(loggers: ZWaveLogContainer);
5
+ /**
6
+ * Logs a message
7
+ * @param msg The message to output
8
+ */
9
+ print(message: string, level?: "debug" | "verbose" | "warn" | "error" | "info"): void;
10
+ }
11
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,iBAAiB,EACtB,eAAe,EAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGN,KAAK,gBAAgB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,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"}
@@ -0,0 +1,23 @@
1
+ import { ZWaveLoggerBase, getDirectionPrefix, } from "@zwave-js/core";
2
+ import { CONFIG_LABEL, CONFIG_LOGLEVEL, } from "./Logger_safe.js";
3
+ export class ConfigLogger extends ZWaveLoggerBase {
4
+ constructor(loggers) {
5
+ super(loggers, CONFIG_LABEL);
6
+ }
7
+ /**
8
+ * Logs a message
9
+ * @param msg The message to output
10
+ */
11
+ print(message, level) {
12
+ const actualLevel = level || CONFIG_LOGLEVEL;
13
+ if (!this.container.isLoglevelVisible(actualLevel))
14
+ return;
15
+ this.logger.log({
16
+ level: actualLevel,
17
+ message,
18
+ direction: getDirectionPrefix("none"),
19
+ context: { source: "config" },
20
+ });
21
+ }
22
+ }
23
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,eAAe,EACf,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,YAAY,EACZ,eAAe,GAEf,MAAM,kBAAkB,CAAC;AAE1B,MAAM,OAAO,YAAa,SAAQ,eAAiC;IAClE,YAAY,OAA0B;QACrC,KAAK,CAAC,OAAO,EAAE,YAAY,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,kBAAkB,CAAC,MAAM,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -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 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,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const CONFIG_LABEL = "CONFIG";
2
+ export const CONFIG_LOGLEVEL = "debug";
3
+ //# sourceMappingURL=Logger_safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger_safe.js","sourceRoot":"","sources":["../../src/Logger_safe.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type RulesLogic } from "json-logic-js";
2
+ export declare function parseLogic(logic: string): RulesLogic;
3
+ export declare function evaluate(logic: string, context: unknown): string | number | boolean;
4
+ //# sourceMappingURL=Logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logic.d.ts","sourceRoot":"","sources":["../../src/Logic.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAwB,MAAM,eAAe,CAAC;AAqCtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAOpD;AAED,wBAAgB,QAAQ,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACd,MAAM,GAAG,MAAM,GAAG,OAAO,CAG3B"}
@@ -0,0 +1,35 @@
1
+ import { padVersion } from "@zwave-js/shared";
2
+ import * as semver from "semver";
3
+ import { parse } from "./LogicParser.js";
4
+ // The types are not correct:
5
+ import { default as JsonLogic } from "json-logic-js";
6
+ const { add_operation, apply } = JsonLogic;
7
+ function tryOr(operation, onError) {
8
+ return ((...args) => {
9
+ try {
10
+ return operation(...args);
11
+ }
12
+ catch {
13
+ return onError;
14
+ }
15
+ });
16
+ }
17
+ add_operation("ver >=", tryOr((a, b) => semver.gte(padVersion(a), padVersion(b)), false));
18
+ add_operation("ver >", tryOr((a, b) => semver.gt(padVersion(a), padVersion(b)), false));
19
+ add_operation("ver <=", tryOr((a, b) => semver.lte(padVersion(a), padVersion(b)), false));
20
+ add_operation("ver <", tryOr((a, b) => semver.lt(padVersion(a), padVersion(b)), false));
21
+ add_operation("ver ===", tryOr((a, b) => semver.eq(padVersion(a), padVersion(b)), false));
22
+ export function parseLogic(logic) {
23
+ try {
24
+ // The generated types for the version comparisons are not compatible with the RulesLogic type
25
+ return parse(logic);
26
+ }
27
+ catch (e) {
28
+ throw new Error(`Invalid logic: ${logic}\n${e.message}`);
29
+ }
30
+ }
31
+ export function evaluate(logic, context) {
32
+ const rules = parseLogic(logic);
33
+ return apply(rules, context);
34
+ }
35
+ //# sourceMappingURL=Logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logic.js","sourceRoot":"","sources":["../../src/Logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,6BAA6B;AAC7B,OAAO,EAAmB,OAAO,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACtE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;AAE3C,SAAS,KAAK,CACb,SAAY,EACZ,OAAsB;IAEtB,OAAO,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QAC1B,IAAI,CAAC;YACJ,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,OAAO,CAAC;QAChB,CAAC;IACF,CAAC,CAAa,CAAC;AAChB,CAAC;AAED,aAAa,CACZ,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAChE,CAAC;AACF,aAAa,CACZ,OAAO,EACP,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAC/D,CAAC;AACF,aAAa,CACZ,QAAQ,EACR,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAChE,CAAC;AACF,aAAa,CACZ,OAAO,EACP,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAC/D,CAAC;AACF,aAAa,CACZ,SAAS,EACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAC/D,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,IAAI,CAAC;QACJ,8FAA8F;QAC9F,OAAO,KAAK,CAAC,KAAK,CAA0B,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CACvB,KAAa,EACb,OAAgB;IAEhB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,93 @@
1
+ export interface FilePosition {
2
+ offset: number;
3
+ line: number;
4
+ column: number;
5
+ }
6
+ export interface FileRange {
7
+ start: FilePosition;
8
+ end: FilePosition;
9
+ source: string;
10
+ }
11
+ export interface LiteralExpectation {
12
+ type: "literal";
13
+ text: string;
14
+ ignoreCase: boolean;
15
+ }
16
+ export interface ClassParts extends Array<string | ClassParts> {
17
+ }
18
+ export interface ClassExpectation {
19
+ type: "class";
20
+ parts: ClassParts;
21
+ inverted: boolean;
22
+ ignoreCase: boolean;
23
+ }
24
+ export interface AnyExpectation {
25
+ type: "any";
26
+ }
27
+ export interface EndExpectation {
28
+ type: "end";
29
+ }
30
+ export interface OtherExpectation {
31
+ type: "other";
32
+ description: string;
33
+ }
34
+ export type Expectation = LiteralExpectation | ClassExpectation | AnyExpectation | EndExpectation | OtherExpectation;
35
+ declare class _PeggySyntaxError extends Error {
36
+ static buildMessage(expected: Expectation[], found: string | null): string;
37
+ message: string;
38
+ expected: Expectation[];
39
+ found: string | null;
40
+ location: FileRange;
41
+ name: string;
42
+ constructor(message: string, expected: Expectation[], found: string | null, location: FileRange);
43
+ format(sources: {
44
+ source?: any;
45
+ text: string;
46
+ }[]): string;
47
+ }
48
+ export interface TraceEvent {
49
+ type: string;
50
+ rule: string;
51
+ result?: any;
52
+ location: FileRange;
53
+ }
54
+ export interface ParseOptions {
55
+ filename?: string;
56
+ startRule?: "start";
57
+ tracer?: any;
58
+ [key: string]: any;
59
+ }
60
+ export type ParseFunction = <Options extends ParseOptions>(input: string, options?: Options) => Options extends {
61
+ startRule: infer StartRule;
62
+ } ? StartRule extends "start" ? Start : Start : Start;
63
+ export declare const parse: ParseFunction;
64
+ export declare const PeggySyntaxError: typeof _PeggySyntaxError;
65
+ export type PeggySyntaxError = _PeggySyntaxError;
66
+ export type Start = Group | Or | And | Comparison;
67
+ export type Group = Or;
68
+ export type Or = {
69
+ or: [And | Comparison, ...OrTails[]];
70
+ };
71
+ export type OrTails = And | Comparison;
72
+ export type And = {
73
+ and: [Group | Comparison, ...AndTails[]];
74
+ };
75
+ export type AndTails = Group | Comparison;
76
+ export type Comparison = VerComparison | IntComparison;
77
+ export type IntComparison = {
78
+ [x: string]: [Term, Term];
79
+ };
80
+ export type VerComparison = {
81
+ [x: string]: [Term, Version];
82
+ };
83
+ export type Term = Const | String_1 | Hex | Integer;
84
+ export type Const = {
85
+ var: string;
86
+ };
87
+ export type Integer = number;
88
+ export type Hex = number;
89
+ export type Version = string;
90
+ export type String_1 = string;
91
+ export type _ = string[];
92
+ export {};
93
+ //# sourceMappingURL=LogicParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogicParser.d.ts","sourceRoot":"","sources":["../../src/LogicParser.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
- "use strict";
2
1
  // THIS FILE WAS AUTO GENERATED
3
2
  /* eslint-disable */
4
3
  // @ts-nocheck
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PeggySyntaxError = exports.parse = void 0;
7
4
  /* eslint-disable */
8
5
  const peggyParser = // Generated by Peggy 3.0.2.
9
6
 
@@ -2355,7 +2352,7 @@ const peggyParser = // Generated by Peggy 3.0.2.
2355
2352
  };
2356
2353
  })();
2357
2354
  peggyParser.SyntaxError.prototype.name = "PeggySyntaxError";
2358
- exports.parse = peggyParser.parse;
2359
- exports.PeggySyntaxError = peggyParser
2355
+ export const parse = peggyParser.parse;
2356
+ export const PeggySyntaxError = peggyParser
2360
2357
  .SyntaxError;
2361
2358
  //# sourceMappingURL=LogicParser.js.map