@zwave-js/config 14.3.10 → 15.0.0-beta.1
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/cjs/ConfigManager.d.ts +9 -3
- package/build/cjs/ConfigManager.js +42 -20
- package/build/cjs/ConfigManager.js.map +2 -2
- package/build/cjs/JsonTemplate.d.ts +2 -1
- package/build/cjs/JsonTemplate.js +16 -17
- package/build/cjs/JsonTemplate.js.map +3 -3
- package/build/cjs/Logger.d.ts +2 -2
- package/build/cjs/Logger.js.map +2 -2
- package/build/cjs/Manufacturers.d.ts +2 -1
- package/build/cjs/Manufacturers.js +8 -9
- package/build/cjs/Manufacturers.js.map +3 -3
- package/build/cjs/_version.d.ts +1 -1
- package/build/cjs/_version.js +1 -1
- package/build/cjs/_version.js.map +1 -1
- package/build/cjs/devices/DeviceConfig.d.ts +3 -2
- package/build/cjs/devices/DeviceConfig.js +34 -35
- package/build/cjs/devices/DeviceConfig.js.map +3 -3
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index_safe.d.ts +1 -0
- package/build/cjs/index_safe.js.map +1 -1
- package/build/cjs/traits.d.ts +11 -0
- package/build/cjs/traits.js +17 -0
- package/build/cjs/traits.js.map +7 -0
- package/build/cjs/utils.d.ts +2 -1
- package/build/cjs/utils.js +13 -14
- package/build/cjs/utils.js.map +3 -3
- package/build/esm/ConfigManager.d.ts +9 -3
- package/build/esm/ConfigManager.d.ts.map +1 -1
- package/build/esm/ConfigManager.js +42 -19
- package/build/esm/ConfigManager.js.map +1 -1
- package/build/esm/JsonTemplate.d.ts +2 -1
- package/build/esm/JsonTemplate.d.ts.map +1 -1
- package/build/esm/JsonTemplate.js +13 -14
- package/build/esm/JsonTemplate.js.map +1 -1
- package/build/esm/Logger.d.ts +2 -2
- package/build/esm/Logger.d.ts.map +1 -1
- package/build/esm/Logger.js.map +1 -1
- package/build/esm/Manufacturers.d.ts +2 -1
- package/build/esm/Manufacturers.d.ts.map +1 -1
- package/build/esm/Manufacturers.js +7 -8
- package/build/esm/Manufacturers.js.map +1 -1
- package/build/esm/_version.d.ts +1 -1
- package/build/esm/_version.d.ts.map +1 -1
- package/build/esm/_version.js +1 -1
- package/build/esm/_version.js.map +1 -1
- package/build/esm/devices/DeviceConfig.d.ts +3 -2
- package/build/esm/devices/DeviceConfig.d.ts.map +1 -1
- package/build/esm/devices/DeviceConfig.js +25 -26
- package/build/esm/devices/DeviceConfig.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index_safe.d.ts +1 -0
- package/build/esm/index_safe.d.ts.map +1 -1
- package/build/esm/traits.d.ts +11 -0
- package/build/esm/traits.d.ts.map +1 -0
- package/build/esm/traits.js +2 -0
- package/build/esm/traits.js.map +1 -0
- package/build/esm/utils.d.ts +2 -1
- package/build/esm/utils.d.ts.map +1 -1
- package/build/esm/utils.js +16 -14
- package/build/esm/utils.js.map +1 -1
- package/config/README.md +1 -1
- package/config/devices/0x0005/pe653.json +1 -1
- package/config/devices/0x003b/be469zp.json +1 -1
- package/config/devices/0x0090/hc620.json +1 -1
- package/config/devices/0x0098/ct100.json +2 -2
- package/config/devices/0x0098/ct101.json +1 -1
- package/config/devices/0x0098/ct200x.json +1 -1
- package/config/devices/0x0287/iblindsv3.json +1 -1
- package/config/devices/0x031e/vzw31-sn.json +1 -1
- package/config/devices/0x0344/he-zw-therm-fl2.json +1 -1
- package/config/devices/0x0441/ibt4zwave.json +1 -1
- package/config/devices/0x045a/Z-CM-V01.json +1 -1
- package/config/devices/templates/master_template.json +1 -1
- package/package.json +15 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAIjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EACN,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAK9B,MAAM,2BAA2B,CAAC;AASnC,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,aAAa;gBACN,OAAO,GAAE,oBAAyB;IAUrD,OAAO,CAAC,GAAG,CAAyB;YACtB,KAAK;IAKnB,OAAO,CAAC,cAAc,CAAS;IAC/B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,OAAO,CAA2B;YAC5B,SAAS;IAavB,OAAO,CAAC,cAAc,CAA+B;IACrD,IAAW,aAAa,IAAI,gBAAgB,CAQ3C;IAED,OAAO,CAAC,uBAAuB,CAAqB;IACpD,OAAO,CAAC,uBAAuB,CAAqB;IACpD,IAAW,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAGjD;IAED,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAEY,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BxB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/C;;;OAGG;IACI,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAWrE;;;;OAIG;IACI,eAAe,CACrB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,GACtB,IAAI;IAWM,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDtC,QAAQ,IAAI,iBAAiB,GAAG,SAAS;IAInC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9C,gBAAgB,IAAI,yBAAyB,GAAG,SAAS;IAIhE;;;;;;;OAOG;IACU,8BAA8B,CAC1C,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAgE/C;;;;;;;OAOG;IACU,YAAY,CACxB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAcpC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ZWaveError, ZWaveErrorCodes,
|
|
1
|
+
import { ZWaveError, ZWaveErrorCodes, isZWaveError, } from "@zwave-js/core";
|
|
2
2
|
import { getErrorMessage, pathExists } from "@zwave-js/shared";
|
|
3
|
-
import path from "
|
|
3
|
+
import path from "pathe";
|
|
4
4
|
import { ConfigLogger } from "./Logger.js";
|
|
5
5
|
import { loadManufacturersInternal, saveManufacturersInternal, } from "./Manufacturers.js";
|
|
6
6
|
import { PACKAGE_VERSION } from "./_version.js";
|
|
@@ -8,16 +8,35 @@ import { ConditionalDeviceConfig, generatePriorityDeviceIndex, getDevicesPaths,
|
|
|
8
8
|
import { configDir, getDeviceEntryPredicate, getExternalConfigDirEnvVariable, syncExternalConfigDir, } from "./utils.js";
|
|
9
9
|
export class ConfigManager {
|
|
10
10
|
constructor(options = {}) {
|
|
11
|
-
this.
|
|
11
|
+
this._fs = options.bindings;
|
|
12
|
+
this._logContainer = options.logContainer;
|
|
12
13
|
this.deviceConfigPriorityDir = options.deviceConfigPriorityDir;
|
|
13
14
|
this.deviceConfigExternalDir = options.deviceConfigExternalDir;
|
|
14
15
|
this._configVersion = PACKAGE_VERSION;
|
|
15
16
|
}
|
|
17
|
+
_fs;
|
|
18
|
+
async getFS() {
|
|
19
|
+
this._fs ??= (await import("@zwave-js/core/bindings/fs/node")).fs;
|
|
20
|
+
return this._fs;
|
|
21
|
+
}
|
|
16
22
|
_configVersion;
|
|
17
23
|
get configVersion() {
|
|
18
24
|
return this._configVersion;
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
_logContainer;
|
|
27
|
+
_logger;
|
|
28
|
+
async getLogger() {
|
|
29
|
+
if (!this._logContainer) {
|
|
30
|
+
this._logContainer =
|
|
31
|
+
(await import("@zwave-js/core/bindings/log/node")).log({
|
|
32
|
+
enabled: false,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (!this._logger) {
|
|
36
|
+
this._logger = new ConfigLogger(this._logContainer);
|
|
37
|
+
}
|
|
38
|
+
return this._logger;
|
|
39
|
+
}
|
|
21
40
|
_manufacturers;
|
|
22
41
|
get manufacturers() {
|
|
23
42
|
if (!this._manufacturers) {
|
|
@@ -38,35 +57,36 @@ export class ConfigManager {
|
|
|
38
57
|
return this._useExternalConfig;
|
|
39
58
|
}
|
|
40
59
|
async loadAll() {
|
|
60
|
+
const logger = await this.getLogger();
|
|
41
61
|
// If the environment option for an external config dir is set
|
|
42
62
|
// try to sync it and then use it
|
|
43
63
|
let syncResult;
|
|
44
64
|
const externalConfigDir = this.externalConfigDir;
|
|
45
65
|
if (externalConfigDir) {
|
|
46
|
-
syncResult = await syncExternalConfigDir(externalConfigDir,
|
|
66
|
+
syncResult = await syncExternalConfigDir(await this.getFS(), externalConfigDir, logger);
|
|
47
67
|
}
|
|
48
68
|
if (syncResult?.success) {
|
|
49
69
|
this._useExternalConfig = true;
|
|
50
|
-
|
|
70
|
+
logger.print(`Using external configuration dir ${externalConfigDir}`);
|
|
51
71
|
this._configVersion = syncResult.version;
|
|
52
72
|
}
|
|
53
73
|
else {
|
|
54
74
|
this._useExternalConfig = false;
|
|
55
75
|
this._configVersion = PACKAGE_VERSION;
|
|
56
76
|
}
|
|
57
|
-
|
|
77
|
+
logger.print(`version ${this._configVersion}`, "info");
|
|
58
78
|
await this.loadManufacturers();
|
|
59
79
|
await this.loadDeviceIndex();
|
|
60
80
|
}
|
|
61
81
|
async loadManufacturers() {
|
|
62
82
|
try {
|
|
63
|
-
this._manufacturers = await loadManufacturersInternal(this._useExternalConfig && this.externalConfigDir || undefined);
|
|
83
|
+
this._manufacturers = await loadManufacturersInternal(await this.getFS(), this._useExternalConfig && this.externalConfigDir || undefined);
|
|
64
84
|
}
|
|
65
85
|
catch (e) {
|
|
66
86
|
// If the config file is missing or invalid, don't try to find it again
|
|
67
87
|
if (isZWaveError(e) && e.code === ZWaveErrorCodes.Config_Invalid) {
|
|
68
88
|
if (process.env.NODE_ENV !== "test") {
|
|
69
|
-
this.
|
|
89
|
+
(await this.getLogger()).print(`Could not load manufacturers config: ${e.message}`, "error");
|
|
70
90
|
}
|
|
71
91
|
if (!this._manufacturers)
|
|
72
92
|
this._manufacturers = new Map();
|
|
@@ -81,7 +101,7 @@ export class ConfigManager {
|
|
|
81
101
|
if (!this._manufacturers) {
|
|
82
102
|
throw new ZWaveError("The config has not been loaded yet!", ZWaveErrorCodes.Driver_NotReady);
|
|
83
103
|
}
|
|
84
|
-
await saveManufacturersInternal(this._manufacturers);
|
|
104
|
+
await saveManufacturersInternal(await this.getFS(), this._manufacturers);
|
|
85
105
|
}
|
|
86
106
|
/**
|
|
87
107
|
* Looks up the name of the manufacturer with the given ID in the configuration DB
|
|
@@ -105,17 +125,19 @@ export class ConfigManager {
|
|
|
105
125
|
this._manufacturers.set(manufacturerId, manufacturerName);
|
|
106
126
|
}
|
|
107
127
|
async loadDeviceIndex() {
|
|
128
|
+
const fs = await this.getFS();
|
|
129
|
+
const logger = await this.getLogger();
|
|
108
130
|
try {
|
|
109
131
|
// The index of config files included in this package
|
|
110
|
-
const embeddedIndex = await loadDeviceIndexInternal(
|
|
132
|
+
const embeddedIndex = await loadDeviceIndexInternal(fs, logger, this._useExternalConfig && this.externalConfigDir || undefined);
|
|
111
133
|
// A dynamic index of the user-defined priority device config files
|
|
112
134
|
const priorityIndex = [];
|
|
113
135
|
if (this.deviceConfigPriorityDir) {
|
|
114
|
-
if (await pathExists(this.deviceConfigPriorityDir)) {
|
|
115
|
-
priorityIndex.push(...(await generatePriorityDeviceIndex(this.deviceConfigPriorityDir,
|
|
136
|
+
if (await pathExists(fs, this.deviceConfigPriorityDir)) {
|
|
137
|
+
priorityIndex.push(...(await generatePriorityDeviceIndex(fs, this.deviceConfigPriorityDir, logger)));
|
|
116
138
|
}
|
|
117
139
|
else {
|
|
118
|
-
|
|
140
|
+
logger.print(`Priority device configuration directory ${this.deviceConfigPriorityDir} not found`, "warn");
|
|
119
141
|
}
|
|
120
142
|
}
|
|
121
143
|
// Put the priority index in front, so the files get resolved first
|
|
@@ -130,7 +152,7 @@ export class ConfigManager {
|
|
|
130
152
|
if (!this.index)
|
|
131
153
|
this.index = [];
|
|
132
154
|
if (process.env.NODE_ENV !== "test") {
|
|
133
|
-
|
|
155
|
+
logger.print(`Could not load or regenerate device config index: ${e.message}`, "error");
|
|
134
156
|
// and don't throw
|
|
135
157
|
return;
|
|
136
158
|
}
|
|
@@ -143,7 +165,7 @@ export class ConfigManager {
|
|
|
143
165
|
return this.index;
|
|
144
166
|
}
|
|
145
167
|
async loadFulltextDeviceIndex() {
|
|
146
|
-
this.fulltextIndex = await loadFulltextDeviceIndexInternal(this.
|
|
168
|
+
this.fulltextIndex = await loadFulltextDeviceIndexInternal(await this.getFS(), await this.getLogger());
|
|
147
169
|
}
|
|
148
170
|
getFulltextIndex() {
|
|
149
171
|
return this.fulltextIndex;
|
|
@@ -160,6 +182,7 @@ export class ConfigManager {
|
|
|
160
182
|
// Load/regenerate the index if necessary
|
|
161
183
|
if (!this.index)
|
|
162
184
|
await this.loadDeviceIndex();
|
|
185
|
+
const fs = await this.getFS();
|
|
163
186
|
// Look up the device in the index
|
|
164
187
|
const indexEntries = this.index.filter(getDeviceEntryPredicate(manufacturerId, productType, productId, firmwareVersion));
|
|
165
188
|
// If there are multiple with overlapping firmware ranges, return the preferred one first
|
|
@@ -170,7 +193,7 @@ export class ConfigManager {
|
|
|
170
193
|
const filePath = path.isAbsolute(indexEntry.filename)
|
|
171
194
|
? indexEntry.filename
|
|
172
195
|
: path.join(devicesDir, indexEntry.filename);
|
|
173
|
-
if (!(await pathExists(filePath)))
|
|
196
|
+
if (!(await pathExists(fs, filePath)))
|
|
174
197
|
return;
|
|
175
198
|
// A config file is treated as am embedded one when it is located under the devices root dir
|
|
176
199
|
// or the external config dir
|
|
@@ -184,11 +207,11 @@ export class ConfigManager {
|
|
|
184
207
|
? undefined
|
|
185
208
|
: [devicesDir];
|
|
186
209
|
try {
|
|
187
|
-
return await ConditionalDeviceConfig.from(filePath, isEmbedded, { rootDir, fallbackDirs });
|
|
210
|
+
return await ConditionalDeviceConfig.from(fs, filePath, isEmbedded, { rootDir, fallbackDirs });
|
|
188
211
|
}
|
|
189
212
|
catch (e) {
|
|
190
213
|
if (process.env.NODE_ENV !== "test") {
|
|
191
|
-
this.
|
|
214
|
+
(await this.getLogger()).print(`Error loading device config ${filePath}: ${getErrorMessage(e, true)}`, "error");
|
|
192
215
|
}
|
|
193
216
|
}
|
|
194
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/ConfigManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { type ReadFile, type ReadFileSystemInfo } from "@zwave-js/shared/bindings";
|
|
1
2
|
export declare function clearTemplateCache(): void;
|
|
2
3
|
/** Parses a JSON file with $import keys and replaces them with the selected objects */
|
|
3
|
-
export declare function readJsonWithTemplate(filename: string, rootDirs?: string | string[]): Promise<Record<string, unknown>>;
|
|
4
|
+
export declare function readJsonWithTemplate(fs: ReadFileSystemInfo & ReadFile, filename: string, rootDirs?: string | string[]): Promise<Record<string, unknown>>;
|
|
4
5
|
//# sourceMappingURL=JsonTemplate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonTemplate.d.ts","sourceRoot":"","sources":["../../src/JsonTemplate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonTemplate.d.ts","sourceRoot":"","sources":["../../src/JsonTemplate.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,MAAM,2BAA2B,CAAC;AAgBnC,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,uFAAuF;AACvF,wBAAsB,oBAAoB,CACzC,EAAE,EAAE,kBAAkB,GAAG,QAAQ,EACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6BlC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ZWaveError, ZWaveErrorCodes } from "@zwave-js/core/safe";
|
|
2
|
-
import { pathExists } from "@zwave-js/shared";
|
|
2
|
+
import { pathExists, readTextFile } from "@zwave-js/shared";
|
|
3
3
|
import { getErrorMessage } from "@zwave-js/shared/safe";
|
|
4
4
|
import { isArray, isObject } from "alcalzone-shared/typeguards";
|
|
5
5
|
import JSON5 from "json5";
|
|
6
|
-
import
|
|
7
|
-
import * as path from "node:path";
|
|
6
|
+
import path from "pathe";
|
|
8
7
|
const IMPORT_KEY = "$import";
|
|
9
8
|
const importSpecifierRegex = /^(?<filename>(?:~\/)?[\w\d\/\\\._-]+\.json)?(?:#(?<selector>[\w\d\/\._-]+(?:\[0x[0-9a-fA-F]+\])?))?$/i;
|
|
10
9
|
// The template cache is used to speed up cases where the same files get parsed multiple times,
|
|
@@ -15,15 +14,15 @@ export function clearTemplateCache() {
|
|
|
15
14
|
templateCache.clear();
|
|
16
15
|
}
|
|
17
16
|
/** Parses a JSON file with $import keys and replaces them with the selected objects */
|
|
18
|
-
export async function readJsonWithTemplate(filename, rootDirs) {
|
|
19
|
-
if (!(await pathExists(filename))) {
|
|
17
|
+
export async function readJsonWithTemplate(fs, filename, rootDirs) {
|
|
18
|
+
if (!(await pathExists(fs, filename))) {
|
|
20
19
|
throw new ZWaveError(`Could not open config file ${filename}: not found!`, ZWaveErrorCodes.Config_NotFound);
|
|
21
20
|
}
|
|
22
21
|
if (typeof rootDirs === "string")
|
|
23
22
|
rootDirs = [rootDirs];
|
|
24
23
|
// Try to use the cached versions of the template files to speed up the loading
|
|
25
24
|
const fileCache = new Map(templateCache);
|
|
26
|
-
const ret = await readJsonWithTemplateInternal(filename, undefined, [], fileCache, rootDirs);
|
|
25
|
+
const ret = await readJsonWithTemplateInternal(fs, filename, undefined, [], fileCache, rootDirs);
|
|
27
26
|
// Only remember the cached templates, not the individual files to save RAM
|
|
28
27
|
for (const [filename, cached] of fileCache) {
|
|
29
28
|
if (/[\\/]templates[\\/]/.test(filename)) {
|
|
@@ -77,7 +76,7 @@ function getImportStack(visited, selector) {
|
|
|
77
76
|
}
|
|
78
77
|
return "";
|
|
79
78
|
}
|
|
80
|
-
async function readJsonWithTemplateInternal(filename, selector, visited, fileCache, rootDirs) {
|
|
79
|
+
async function readJsonWithTemplateInternal(fs, filename, selector, visited, fileCache, rootDirs) {
|
|
81
80
|
filename = path.normalize(filename);
|
|
82
81
|
// If we're limited by one or more root directories, make sure the file is inside one of those
|
|
83
82
|
if (rootDirs) {
|
|
@@ -107,7 +106,7 @@ ${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
|
|
|
107
106
|
}
|
|
108
107
|
else {
|
|
109
108
|
try {
|
|
110
|
-
const fileContent = await fs
|
|
109
|
+
const fileContent = await readTextFile(fs, filename, "utf8");
|
|
111
110
|
json = JSON5.parse(fileContent);
|
|
112
111
|
fileCache.set(filename, json);
|
|
113
112
|
}
|
|
@@ -116,10 +115,10 @@ ${getImportStack(visited, selector)}`, ZWaveErrorCodes.Config_Invalid);
|
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
117
|
// Resolve the JSON imports for (a subset) of the file and return the compound file
|
|
119
|
-
return resolveJsonImports(selector ? select(json, selector) : json, filename, [...visited, specifier], fileCache, rootDirs);
|
|
118
|
+
return resolveJsonImports(fs, selector ? select(json, selector) : json, filename, [...visited, specifier], fileCache, rootDirs);
|
|
120
119
|
}
|
|
121
120
|
/** Replaces all `$import` properties in a JSON object with object spreads of the referenced file/property */
|
|
122
|
-
async function resolveJsonImports(json, filename, visited, fileCache, rootDirs) {
|
|
121
|
+
async function resolveJsonImports(fs, json, filename, visited, fileCache, rootDirs) {
|
|
123
122
|
const ret = {};
|
|
124
123
|
// Loop through all properties and copy them to the resulting object
|
|
125
124
|
for (const [prop, val] of Object.entries(json)) {
|
|
@@ -137,7 +136,7 @@ async function resolveJsonImports(json, filename, visited, fileCache, rootDirs)
|
|
|
137
136
|
if (rootDirs) {
|
|
138
137
|
for (const rootDir of rootDirs) {
|
|
139
138
|
newFilename = path.join(rootDir, importFilename.slice(2));
|
|
140
|
-
if (await pathExists(newFilename)) {
|
|
139
|
+
if (await pathExists(fs, newFilename)) {
|
|
141
140
|
break;
|
|
142
141
|
}
|
|
143
142
|
else {
|
|
@@ -163,19 +162,19 @@ async function resolveJsonImports(json, filename, visited, fileCache, rootDirs)
|
|
|
163
162
|
newFilename = filename;
|
|
164
163
|
}
|
|
165
164
|
// const importFilename = path.join(path.dirname(filename), val);
|
|
166
|
-
const imported = await readJsonWithTemplateInternal(newFilename, selector, visited, fileCache, rootDirs);
|
|
165
|
+
const imported = await readJsonWithTemplateInternal(fs, newFilename, selector, visited, fileCache, rootDirs);
|
|
167
166
|
Object.assign(ret, imported);
|
|
168
167
|
}
|
|
169
168
|
else if (isObject(val)) {
|
|
170
169
|
// We're looking at an object, recurse into it
|
|
171
|
-
ret[prop] = await resolveJsonImports(val, filename, visited, fileCache, rootDirs);
|
|
170
|
+
ret[prop] = await resolveJsonImports(fs, val, filename, visited, fileCache, rootDirs);
|
|
172
171
|
}
|
|
173
172
|
else if (isArray(val)) {
|
|
174
173
|
// We're looking at an array, check if there are objects we need to recurse into
|
|
175
174
|
const vals = [];
|
|
176
175
|
for (const v of val) {
|
|
177
176
|
if (isObject(v)) {
|
|
178
|
-
vals.push(await resolveJsonImports(v, filename, visited, fileCache, rootDirs));
|
|
177
|
+
vals.push(await resolveJsonImports(fs, v, filename, visited, fileCache, rootDirs));
|
|
179
178
|
}
|
|
180
179
|
else {
|
|
181
180
|
vals.push(v);
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"JsonTemplate.js","sourceRoot":"","sources":["../../src/JsonTemplate.ts"],"names":[],"mappings":"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"}
|
package/build/esm/Logger.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type LogContainer, ZWaveLoggerBase } from "@zwave-js/core";
|
|
2
2
|
import { type ConfigLogContext } from "./Logger_safe.js";
|
|
3
3
|
export declare class ConfigLogger extends ZWaveLoggerBase<ConfigLogContext> {
|
|
4
|
-
constructor(loggers:
|
|
4
|
+
constructor(loggers: LogContainer);
|
|
5
5
|
/**
|
|
6
6
|
* Logs a message
|
|
7
7
|
* @param msg The message to output
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,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,YAAY;IAIjC;;;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/esm/Logger.js.map
CHANGED
|
@@ -1 +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,
|
|
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,OAAqB;QAChC,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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type WriteFile } from "@zwave-js/shared/bindings";
|
|
1
2
|
export type ManufacturersMap = Map<number, string>;
|
|
2
3
|
/**
|
|
3
4
|
* Write current manufacturers map to json
|
|
4
5
|
*/
|
|
5
|
-
export declare function saveManufacturersInternal(manufacturers: ManufacturersMap): Promise<void>;
|
|
6
|
+
export declare function saveManufacturersInternal(fs: WriteFile, manufacturers: ManufacturersMap): Promise<void>;
|
|
6
7
|
//# sourceMappingURL=Manufacturers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manufacturers.d.ts","sourceRoot":"","sources":["../../src/Manufacturers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Manufacturers.d.ts","sourceRoot":"","sources":["../../src/Manufacturers.ts"],"names":[],"mappings":"AAQA,OAAO,EAGN,KAAK,SAAS,EACd,MAAM,2BAA2B,CAAC;AAOnC,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAwDnD;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,gBAAgB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { ZWaveError, ZWaveErrorCodes, isZWaveError } from "@zwave-js/core";
|
|
2
|
-
import { formatId, pathExists, stringify } from "@zwave-js/shared";
|
|
2
|
+
import { formatId, pathExists, readTextFile, stringify, writeTextFile, } from "@zwave-js/shared";
|
|
3
3
|
import { isObject } from "alcalzone-shared/typeguards";
|
|
4
4
|
import JSON5 from "json5";
|
|
5
|
-
import
|
|
6
|
-
import path from "node:path";
|
|
5
|
+
import path from "pathe";
|
|
7
6
|
import { configDir } from "./utils.js";
|
|
8
7
|
import { hexKeyRegex4Digits, throwInvalidConfig } from "./utils_safe.js";
|
|
9
8
|
/** @internal */
|
|
10
|
-
export async function loadManufacturersInternal(externalConfigDir) {
|
|
9
|
+
export async function loadManufacturersInternal(fs, externalConfigDir) {
|
|
11
10
|
const configPath = path.join(externalConfigDir || configDir, "manufacturers.json");
|
|
12
|
-
if (!(await pathExists(configPath))) {
|
|
11
|
+
if (!(await pathExists(fs, configPath))) {
|
|
13
12
|
throw new ZWaveError("The manufacturer config file does not exist!", ZWaveErrorCodes.Config_Invalid);
|
|
14
13
|
}
|
|
15
14
|
try {
|
|
16
|
-
const fileContents = await fs
|
|
15
|
+
const fileContents = await readTextFile(fs, configPath, "utf8");
|
|
17
16
|
const definition = JSON5.parse(fileContents);
|
|
18
17
|
if (!isObject(definition)) {
|
|
19
18
|
throwInvalidConfig("manufacturers", `the database is not an object!`);
|
|
@@ -43,13 +42,13 @@ export async function loadManufacturersInternal(externalConfigDir) {
|
|
|
43
42
|
/**
|
|
44
43
|
* Write current manufacturers map to json
|
|
45
44
|
*/
|
|
46
|
-
export async function saveManufacturersInternal(manufacturers) {
|
|
45
|
+
export async function saveManufacturersInternal(fs, manufacturers) {
|
|
47
46
|
const data = {};
|
|
48
47
|
const orderedMap = new Map([...manufacturers].sort((a, b) => (a[0] > b[0] ? 1 : -1)));
|
|
49
48
|
for (const [id, name] of orderedMap) {
|
|
50
49
|
data[formatId(id)] = name;
|
|
51
50
|
}
|
|
52
51
|
const configPath = path.join(configDir, "manufacturers.json");
|
|
53
|
-
await fs
|
|
52
|
+
await writeTextFile(fs, configPath, stringify(data, "\t") + "\n");
|
|
54
53
|
}
|
|
55
54
|
//# sourceMappingURL=Manufacturers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manufacturers.js","sourceRoot":"","sources":["../../src/Manufacturers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"Manufacturers.js","sourceRoot":"","sources":["../../src/Manufacturers.ts"],"names":[],"mappings":"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"}
|
package/build/esm/_version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "
|
|
1
|
+
export declare const PACKAGE_VERSION = "15.0.0-beta.1";
|
|
2
2
|
//# sourceMappingURL=_version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_version.d.ts","sourceRoot":"","sources":["../../src/_version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"_version.d.ts","sourceRoot":"","sources":["../../src/_version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,kBAAkB,CAAC"}
|
package/build/esm/_version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_version.js","sourceRoot":"","sources":["../../src/_version.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"_version.js","sourceRoot":"","sources":["../../src/_version.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type JSONObject } from "@zwave-js/shared";
|
|
2
|
+
import { type ReadFile, type ReadFileSystemInfo } from "@zwave-js/shared/bindings";
|
|
2
3
|
import { type AssociationConfig, ConditionalAssociationConfig } from "./AssociationConfig.js";
|
|
3
4
|
import { type CompatConfig, ConditionalCompatConfig } from "./CompatConfig.js";
|
|
4
5
|
import { type ConditionalPrimitive } from "./ConditionalPrimitive.js";
|
|
@@ -36,7 +37,7 @@ export type DeviceConfigIndex = DeviceConfigIndexEntry[];
|
|
|
36
37
|
export type FulltextDeviceConfigIndex = FulltextDeviceConfigIndexEntry[];
|
|
37
38
|
/** This class represents a device config entry whose conditional settings have not been evaluated yet */
|
|
38
39
|
export declare class ConditionalDeviceConfig {
|
|
39
|
-
static from(filename: string, isEmbedded: boolean, options: {
|
|
40
|
+
static from(fs: ReadFileSystemInfo & ReadFile, filename: string, isEmbedded: boolean, options: {
|
|
40
41
|
rootDir: string;
|
|
41
42
|
fallbackDirs?: string[];
|
|
42
43
|
relative?: boolean;
|
|
@@ -71,7 +72,7 @@ export declare class ConditionalDeviceConfig {
|
|
|
71
72
|
evaluate(deviceId?: DeviceID): DeviceConfig;
|
|
72
73
|
}
|
|
73
74
|
export declare class DeviceConfig {
|
|
74
|
-
static from(filename: string, isEmbedded: boolean, options: {
|
|
75
|
+
static from(fs: ReadFileSystemInfo & ReadFile, filename: string, isEmbedded: boolean, options: {
|
|
75
76
|
rootDir: string;
|
|
76
77
|
fallbackDirs?: string[];
|
|
77
78
|
relative?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceConfig.d.ts","sourceRoot":"","sources":["../../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"DeviceConfig.d.ts","sourceRoot":"","sources":["../../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"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"}
|