@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.
- package/build/{ConfigManager.d.ts → cjs/ConfigManager.d.ts} +2 -2
- package/build/cjs/ConfigManager.js +208 -0
- package/build/cjs/ConfigManager.js.map +7 -0
- package/build/cjs/JsonTemplate.js +198 -0
- package/build/cjs/JsonTemplate.js.map +7 -0
- package/build/{Logger.d.ts → cjs/Logger.d.ts} +1 -1
- package/build/cjs/Logger.js +50 -0
- package/build/cjs/Logger.js.map +7 -0
- package/build/cjs/Logger_safe.js +32 -0
- package/build/cjs/Logger_safe.js.map +7 -0
- package/build/cjs/Logic.js +71 -0
- package/build/cjs/Logic.js.map +7 -0
- package/build/cjs/LogicParser.js +1343 -0
- package/build/cjs/LogicParser.js.map +7 -0
- package/build/cjs/Manufacturers.js +88 -0
- package/build/cjs/Manufacturers.js.map +7 -0
- package/build/cjs/_version.d.ts +2 -0
- package/build/cjs/_version.js +29 -0
- package/build/cjs/_version.js.map +7 -0
- package/build/{devices → cjs/devices}/AssociationConfig.d.ts +2 -2
- package/build/cjs/devices/AssociationConfig.js +93 -0
- package/build/cjs/devices/AssociationConfig.js.map +7 -0
- package/build/{devices → cjs/devices}/CompatConfig.d.ts +2 -2
- package/build/cjs/devices/CompatConfig.js +584 -0
- package/build/cjs/devices/CompatConfig.js.map +7 -0
- package/build/{devices → cjs/devices}/ConditionalItem.d.ts +1 -1
- package/build/cjs/devices/ConditionalItem.js +107 -0
- package/build/cjs/devices/ConditionalItem.js.map +7 -0
- package/build/{devices → cjs/devices}/ConditionalPrimitive.d.ts +2 -2
- package/build/cjs/devices/ConditionalPrimitive.js +59 -0
- package/build/cjs/devices/ConditionalPrimitive.js.map +7 -0
- package/build/{devices → cjs/devices}/DeviceConfig.d.ts +7 -7
- package/build/cjs/devices/DeviceConfig.js +502 -0
- package/build/cjs/devices/DeviceConfig.js.map +7 -0
- package/build/cjs/devices/DeviceConfig.unit._test.js +17 -0
- package/build/cjs/devices/DeviceConfig.unit._test.js.map +7 -0
- package/build/{devices → cjs/devices}/DeviceMetadata.d.ts +3 -3
- package/build/cjs/devices/DeviceMetadata.js +112 -0
- package/build/cjs/devices/DeviceMetadata.js.map +7 -0
- package/build/{devices → cjs/devices}/EndpointConfig.d.ts +5 -5
- package/build/cjs/devices/EndpointConfig.js +87 -0
- package/build/cjs/devices/EndpointConfig.js.map +7 -0
- package/build/{devices → cjs/devices}/ParamInformation.d.ts +3 -3
- package/build/cjs/devices/ParamInformation.js +209 -0
- package/build/cjs/devices/ParamInformation.js.map +7 -0
- package/build/cjs/devices/shared.js +17 -0
- package/build/cjs/devices/shared.js.map +7 -0
- package/build/cjs/index.d.ts +13 -0
- package/build/cjs/index.js +53 -0
- package/build/cjs/index.js.map +7 -0
- package/build/cjs/index_safe.d.ts +3 -0
- package/build/cjs/index_safe.js +32 -0
- package/build/cjs/index_safe.js.map +7 -0
- package/build/cjs/package.json +3 -0
- package/build/{utils.d.ts → cjs/utils.d.ts} +2 -2
- package/build/cjs/utils.js +117 -0
- package/build/cjs/utils.js.map +7 -0
- package/build/cjs/utils_safe.js +57 -0
- package/build/cjs/utils_safe.js.map +7 -0
- package/build/esm/ConfigManager.d.ts +57 -0
- package/build/esm/ConfigManager.d.ts.map +1 -0
- package/build/{ConfigManager.js → esm/ConfigManager.js} +36 -43
- package/build/esm/ConfigManager.js.map +1 -0
- package/build/esm/JsonTemplate.d.ts +4 -0
- package/build/esm/JsonTemplate.d.ts.map +1 -0
- package/build/{JsonTemplate.js → esm/JsonTemplate.js} +30 -60
- package/build/esm/JsonTemplate.js.map +1 -0
- package/build/esm/Logger.d.ts +11 -0
- package/build/esm/Logger.d.ts.map +1 -0
- package/build/esm/Logger.js +23 -0
- package/build/esm/Logger.js.map +1 -0
- package/build/esm/Logger_safe.d.ts +5 -0
- package/build/esm/Logger_safe.d.ts.map +1 -0
- package/build/esm/Logger_safe.js +3 -0
- package/build/esm/Logger_safe.js.map +1 -0
- package/build/esm/Logic.d.ts +4 -0
- package/build/esm/Logic.d.ts.map +1 -0
- package/build/esm/Logic.js +35 -0
- package/build/esm/Logic.js.map +1 -0
- package/build/esm/LogicParser.d.ts +93 -0
- package/build/esm/LogicParser.d.ts.map +1 -0
- package/build/{LogicParser.js → esm/LogicParser.js} +2 -5
- package/build/{LogicParser.js.map → esm/LogicParser.js.map} +1 -1
- package/build/esm/Manufacturers.d.ts +6 -0
- package/build/esm/Manufacturers.d.ts.map +1 -0
- package/build/esm/Manufacturers.js +55 -0
- package/build/esm/Manufacturers.js.map +1 -0
- package/build/esm/_version.d.ts +2 -0
- package/build/esm/_version.d.ts.map +1 -0
- package/build/esm/_version.js +3 -0
- package/build/esm/_version.js.map +1 -0
- package/build/esm/devices/AssociationConfig.d.ts +27 -0
- package/build/esm/devices/AssociationConfig.d.ts.map +1 -0
- package/build/{devices → esm/devices}/AssociationConfig.js +12 -16
- package/build/esm/devices/AssociationConfig.js.map +1 -0
- package/build/esm/devices/CompatConfig.d.ts +112 -0
- package/build/esm/devices/CompatConfig.d.ts.map +1 -0
- package/build/{devices → esm/devices}/CompatConfig.js +112 -119
- package/build/esm/devices/CompatConfig.js.map +1 -0
- package/build/esm/devices/ConditionalItem.d.ts +14 -0
- package/build/esm/devices/ConditionalItem.d.ts.map +1 -0
- package/build/{devices → esm/devices}/ConditionalItem.js +15 -21
- package/build/esm/devices/ConditionalItem.js.map +1 -0
- package/build/esm/devices/ConditionalPrimitive.d.ts +13 -0
- package/build/esm/devices/ConditionalPrimitive.d.ts.map +1 -0
- package/build/esm/devices/ConditionalPrimitive.js +35 -0
- package/build/esm/devices/ConditionalPrimitive.js.map +1 -0
- package/build/esm/devices/DeviceConfig.d.ts +117 -0
- package/build/esm/devices/DeviceConfig.d.ts.map +1 -0
- package/build/{devices → esm/devices}/DeviceConfig.js +96 -108
- package/build/esm/devices/DeviceConfig.js.map +1 -0
- package/build/esm/devices/DeviceConfig.unit._test.d.ts +2 -0
- package/build/esm/devices/DeviceConfig.unit._test.d.ts.map +1 -0
- package/build/{devices → esm/devices}/DeviceConfig.unit._test.js +1 -2
- package/build/esm/devices/DeviceConfig.unit._test.js.map +1 -0
- package/build/esm/devices/DeviceMetadata.d.ts +41 -0
- package/build/esm/devices/DeviceMetadata.d.ts.map +1 -0
- package/build/{devices → esm/devices}/DeviceMetadata.js +16 -21
- package/build/esm/devices/DeviceMetadata.js.map +1 -0
- package/build/esm/devices/EndpointConfig.d.ts +20 -0
- package/build/esm/devices/EndpointConfig.d.ts.map +1 -0
- package/build/esm/devices/EndpointConfig.js +60 -0
- package/build/esm/devices/EndpointConfig.js.map +1 -0
- package/build/esm/devices/ParamInformation.d.ts +50 -0
- package/build/esm/devices/ParamInformation.d.ts.map +1 -0
- package/build/{devices → esm/devices}/ParamInformation.js +38 -44
- package/build/esm/devices/ParamInformation.js.map +1 -0
- package/build/esm/devices/shared.d.ts +11 -0
- package/build/esm/devices/shared.d.ts.map +1 -0
- package/build/esm/devices/shared.js +2 -0
- package/build/{devices → esm/devices}/shared.js.map +1 -1
- package/build/esm/index.d.ts +13 -0
- package/build/esm/index.d.ts.map +1 -0
- package/build/esm/index.js +14 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/index_safe.d.ts +3 -0
- package/build/esm/index_safe.d.ts.map +1 -0
- package/build/esm/index_safe.js +4 -0
- package/build/esm/index_safe.js.map +1 -0
- package/build/esm/package.json +3 -0
- package/build/esm/utils.d.ts +19 -0
- package/build/esm/utils.d.ts.map +1 -0
- package/build/esm/utils.js +93 -0
- package/build/esm/utils.js.map +1 -0
- package/build/esm/utils_safe.d.ts +7 -0
- package/build/esm/utils_safe.d.ts.map +1 -0
- package/build/esm/utils_safe.js +28 -0
- package/build/esm/utils_safe.js.map +1 -0
- package/package.json +22 -19
- package/build/ConfigManager.d.ts.map +0 -1
- package/build/ConfigManager.js.map +0 -1
- package/build/JsonTemplate.d.ts.map +0 -1
- package/build/JsonTemplate.js.map +0 -1
- package/build/Logger.d.ts.map +0 -1
- package/build/Logger.js +0 -27
- package/build/Logger.js.map +0 -1
- package/build/Logger_safe.d.ts.map +0 -1
- package/build/Logger_safe.js +0 -6
- package/build/Logger_safe.js.map +0 -1
- package/build/Logic.d.ts.map +0 -1
- package/build/Logic.js +0 -60
- package/build/Logic.js.map +0 -1
- package/build/LogicParser.d.ts.map +0 -1
- package/build/Manufacturers.d.ts.map +0 -1
- package/build/Manufacturers.js +0 -62
- package/build/Manufacturers.js.map +0 -1
- package/build/_version.d.ts +0 -2
- package/build/_version.d.ts.map +0 -1
- package/build/_version.js +0 -6
- package/build/_version.js.map +0 -1
- package/build/devices/AssociationConfig.d.ts.map +0 -1
- package/build/devices/AssociationConfig.js.map +0 -1
- package/build/devices/CompatConfig.d.ts.map +0 -1
- package/build/devices/CompatConfig.js.map +0 -1
- package/build/devices/ConditionalItem.d.ts.map +0 -1
- package/build/devices/ConditionalItem.js.map +0 -1
- package/build/devices/ConditionalPrimitive.d.ts.map +0 -1
- package/build/devices/ConditionalPrimitive.js +0 -40
- package/build/devices/ConditionalPrimitive.js.map +0 -1
- package/build/devices/DeviceConfig.d.ts.map +0 -1
- package/build/devices/DeviceConfig.js.map +0 -1
- package/build/devices/DeviceConfig.unit._test.d.ts.map +0 -1
- package/build/devices/DeviceConfig.unit._test.js.map +0 -1
- package/build/devices/DeviceMetadata.d.ts.map +0 -1
- package/build/devices/DeviceMetadata.js.map +0 -1
- package/build/devices/EndpointConfig.d.ts.map +0 -1
- package/build/devices/EndpointConfig.js +0 -64
- package/build/devices/EndpointConfig.js.map +0 -1
- package/build/devices/ParamInformation.d.ts.map +0 -1
- package/build/devices/ParamInformation.js.map +0 -1
- package/build/devices/shared.d.ts.map +0 -1
- package/build/devices/shared.js +0 -3
- package/build/index.d.ts +0 -13
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -33
- package/build/index.js.map +0 -1
- package/build/index_safe.d.ts +0 -3
- package/build/index_safe.d.ts.map +0 -1
- package/build/index_safe.js +0 -22
- package/build/index_safe.js.map +0 -1
- package/build/utils.d.ts.map +0 -1
- package/build/utils.js +0 -124
- package/build/utils.js.map +0 -1
- package/build/utils_safe.d.ts.map +0 -1
- package/build/utils_safe.js +0 -33
- package/build/utils_safe.js.map +0 -1
- /package/build/{JsonTemplate.d.ts → cjs/JsonTemplate.d.ts} +0 -0
- /package/build/{Logger_safe.d.ts → cjs/Logger_safe.d.ts} +0 -0
- /package/build/{Logic.d.ts → cjs/Logic.d.ts} +0 -0
- /package/build/{LogicParser.d.ts → cjs/LogicParser.d.ts} +0 -0
- /package/build/{Manufacturers.d.ts → cjs/Manufacturers.d.ts} +0 -0
- /package/build/{devices → cjs/devices}/DeviceConfig.unit._test.d.ts +0 -0
- /package/build/{devices → cjs/devices}/shared.d.ts +0 -0
- /package/build/{utils_safe.d.ts → cjs/utils_safe.d.ts} +0 -0
|
@@ -1,53 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
50
|
-
throw new
|
|
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
|
|
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
|
|
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 (
|
|
85
|
-
const item = ret.find((r) =>
|
|
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 (!
|
|
97
|
-
throw new
|
|
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
|
|
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)}`,
|
|
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
|
|
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
|
|
141
|
-
json =
|
|
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
|
|
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
|
|
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
|
|
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)}`,
|
|
151
|
+
.join("")}\n${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
|
|
182
152
|
}
|
|
183
153
|
}
|
|
184
154
|
else {
|
|
185
|
-
throw new
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,oBAAoB,GACzB,uGAAuG,CAAC;AAIzG,+FAA+F;AAC/F,mGAAmG;AACnG,yCAAyC;AACzC,MAAM,aAAa,GAAc,IAAI,GAAG,EAAE,CAAC;AAC3C,MAAM,UAAU,kBAAkB;IACjC,aAAa,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,QAAgB,EAChB,QAA4B;IAE5B,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,UAAU,CACnB,8BAA8B,QAAQ,cAAc,EACpD,eAAe,CAAC,eAAe,CAC/B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;IAExD,+EAA+E;IAC/E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,4BAA4B,CAC7C,QAAQ,EACR,SAAS,EACT,EAAE,EACF,SAAS,EACT,QAAQ,CACR,CAAC;IAEF,2EAA2E;IAC3E,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAC7B,GAAY,EACZ,MAAe;IAEf,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,UAAU,CACnB,4BAA4B,MAAM,CAAC,GAAG,CAAC,IACtC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAC9C,EAAE,EACF,eAAe,CAAC,cAAc,CAC9B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CACnB,qBAAqB,GAAG,gBACvB,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,EAC9C,EAAE,EACF,eAAe,CAAC,cAAc,CAC9B,CAAC;IACH,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAiB;IAC9D,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,IAAI,QAAQ;QAAE,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;IACpC,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,MAAM,CACd,GAA4B,EAC5B,QAAgB;IAEhB,IAAI,GAAG,GAA4B,GAAG,CAAC;IACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAClC,oEAAoE;QACpE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CACjD,CAAC;YACF,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;gBACvB,8BAA8B;gBAC9B,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAW,CAAC;gBAC1C,GAAG,GAAG,IAAI,CAAC;gBACX,SAAS;YACV,CAAC;QACF,CAAC;QACD,wCAAwC;QACxC,GAAG,GAAI,GAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,UAAU,CACnB,sBAAsB,QAAQ,qBAAqB,EACnD,eAAe,CAAC,cAAc,CAC9B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CACtB,OAAiB,EACjB,QAA4B;IAE5B,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SAChE,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,mBAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,KAAK,UAAU,4BAA4B,CAC1C,QAAgB,EAChB,QAA4B,EAC5B,OAAiB,EACjB,SAAoB,EACpB,QAAmB;IAEnB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpC,8FAA8F;IAC9F,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YACrD,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxD,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,UAAU,CACnB,gCAAgC,QAAQ,wCACvC,QAAQ;iBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBACtB,IAAI,CAAC,EAAE,CACV;EACF,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EACjC,eAAe,CAAC,cAAc,CAC9B,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,qCACX;YACC,GAAG,OAAO;YACV,SAAS;SACT,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,CAAC;QACL,oCAAoC;QACpC,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,IAA6B,CAAC;IAClC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACP,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,UAAU,CACnB,+BAA+B,QAAQ,KACtC,eAAe,CACd,CAAC,CAEH,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EACtC,eAAe,CAAC,cAAc,CAC9B,CAAC;QACH,CAAC;IACF,CAAC;IACD,mFAAmF;IACnF,OAAO,kBAAkB,CACxB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EACxC,QAAQ,EACR,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,EACvB,SAAS,EACT,QAAQ,CACR,CAAC;AACH,CAAC;AAED,6GAA6G;AAC7G,KAAK,UAAU,kBAAkB,CAChC,IAA6B,EAC7B,QAAgB,EAChB,OAAiB,EACjB,SAAoB,EACpB,QAAmB;IAEnB,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,oEAAoE;IACpE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACzB,qEAAqE;YACrE,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,oBAAoB;iBACjE,IAAI,CAAC,GAAG,CAAE,CAAC,MAAO,CAAC;YAErB,kCAAkC;YAClC,IAAI,WAA+B,CAAC;YACpC,IAAI,cAAc,EAAE,CAAC;gBACpB,IAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,4EAA4E;oBAC5E,4EAA4E;oBAC5E,IAAI,QAAQ,EAAE,CAAC;wBACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;4BAChC,WAAW,GAAG,IAAI,CAAC,IAAI,CACtB,OAAO,EACP,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CACvB,CAAC;4BACF,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gCACnC,MAAM;4BACP,CAAC;iCAAM,CAAC;gCACP,eAAe;gCACf,WAAW,GAAG,SAAU,CAAC;4BAC1B,CAAC;wBACF,CAAC;wBAED,IAAI,CAAC,WAAW,EAAE,CAAC;4BAClB,MAAM,IAAI,UAAU,CACnB,sCACC,cAAc,CAAC,KAAK,CACnB,CAAC,CAEH,oCACC,QAAQ;iCACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iCACtB,IAAI,CAAC,EAAE,CACV,KACC,cAAc,CACb,OAAO,EACP,QAAQ,CAEV,EAAE,EACF,eAAe,CAAC,cAAc,CAC9B,CAAC;wBACH,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,MAAM,IAAI,UAAU,CACnB,+EACC,cAAc,CACb,OAAO,EACP,QAAQ,CAEV,EAAE,EACF,eAAe,CAAC,cAAc,CAC9B,CAAC;oBACH,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,WAAW,GAAG,IAAI,CAAC,IAAI,CACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtB,cAAc,CACd,CAAC;gBACH,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,QAAQ,CAAC;YACxB,CAAC;YAED,iEAAiE;YACjE,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAClD,WAAW,EACX,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,CACR,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,8CAA8C;YAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,kBAAkB,CACnC,GAAG,EACH,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,CACR,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,gFAAgF;YAChF,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CACR,MAAM,kBAAkB,CACvB,CAAC,EACD,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,CACR,CACD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;YACF,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
-
|
|
2359
|
-
|
|
2355
|
+
export const parse = peggyParser.parse;
|
|
2356
|
+
export const PeggySyntaxError = peggyParser
|
|
2360
2357
|
.SyntaxError;
|
|
2361
2358
|
//# sourceMappingURL=LogicParser.js.map
|