@zwave-js/nvmedit 15.1.1 → 15.2.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/cli.d.ts +1 -1
- package/build/cjs/cli.js +1 -2
- package/build/cjs/cli.js.map +2 -2
- package/build/cjs/convert.d.ts +3 -3
- package/build/cjs/convert.js +45 -45
- package/build/cjs/convert.js.map +3 -3
- package/build/cjs/lib/NVM3.js +17 -17
- package/build/cjs/lib/NVM3.js.map +3 -3
- package/build/cjs/lib/NVM500.js +54 -54
- package/build/cjs/lib/NVM500.js.map +3 -3
- package/build/cjs/lib/common/definitions.d.ts +5 -5
- package/build/cjs/lib/common/definitions.js.map +1 -1
- package/build/cjs/lib/common/routeCache.d.ts +2 -2
- package/build/cjs/lib/common/routeCache.js +10 -10
- package/build/cjs/lib/common/routeCache.js.map +3 -3
- package/build/cjs/lib/common/sucUpdateEntry.d.ts +1 -1
- package/build/cjs/lib/common/sucUpdateEntry.js +4 -4
- package/build/cjs/lib/common/sucUpdateEntry.js.map +1 -1
- package/build/cjs/lib/common/utils.js +6 -6
- package/build/cjs/lib/common/utils.js.map +2 -2
- package/build/cjs/lib/io/BufferedNVMReader.d.ts +1 -1
- package/build/cjs/lib/io/BufferedNVMReader.js +2 -2
- package/build/cjs/lib/io/BufferedNVMReader.js.map +2 -2
- package/build/cjs/lib/nvm3/adapter.d.ts +2 -2
- package/build/cjs/lib/nvm3/adapter.js +6 -6
- package/build/cjs/lib/nvm3/adapter.js.map +3 -3
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.d.ts +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js +6 -6
- package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js.map +3 -3
- package/build/cjs/lib/nvm3/files/ApplicationDataFile.d.ts +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationDataFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationNameFile.d.ts +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationNameFile.js.map +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.d.ts +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js +9 -9
- package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js.map +3 -3
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.d.ts +1 -1
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js +2 -2
- package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/ControllerInfoFile.js +3 -3
- package/build/cjs/lib/nvm3/files/ControllerInfoFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/NVMFile.js +4 -4
- package/build/cjs/lib/nvm3/files/NVMFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.d.ts +2 -2
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.js +18 -18
- package/build/cjs/lib/nvm3/files/NodeInfoFiles.js.map +3 -3
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts +1 -1
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js +5 -5
- package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.d.ts +1 -1
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.js +11 -11
- package/build/cjs/lib/nvm3/files/RouteCacheFiles.js.map +3 -3
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.d.ts +1 -1
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js +3 -3
- package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js.map +2 -2
- package/build/cjs/lib/nvm3/files/index.d.ts +0 -1
- package/build/cjs/lib/nvm3/files/index.js +0 -1
- package/build/cjs/lib/nvm3/files/index.js.map +2 -2
- package/build/cjs/lib/nvm3/page.d.ts +1 -1
- package/build/cjs/lib/nvm3/page.js.map +1 -1
- package/build/cjs/lib/nvm3/utils.d.ts +1 -1
- package/build/cjs/lib/nvm3/utils.js +3 -3
- package/build/cjs/lib/nvm3/utils.js.map +1 -1
- package/build/cjs/lib/nvm500/EntryParsers.d.ts +2 -2
- package/build/cjs/lib/nvm500/EntryParsers.js +10 -10
- package/build/cjs/lib/nvm500/EntryParsers.js.map +3 -3
- package/build/cjs/lib/nvm500/adapter.d.ts +2 -2
- package/build/cjs/lib/nvm500/adapter.js.map +1 -1
- package/build/cjs/lib/nvm500/impls/Bridge_6_6x.d.ts +1 -1
- package/build/cjs/lib/nvm500/impls/Bridge_6_6x.js +7 -7
- package/build/cjs/lib/nvm500/impls/Bridge_6_6x.js.map +2 -2
- package/build/cjs/lib/nvm500/impls/Bridge_6_7x.d.ts +1 -1
- package/build/cjs/lib/nvm500/impls/Bridge_6_7x.js +7 -7
- package/build/cjs/lib/nvm500/impls/Bridge_6_7x.js.map +2 -2
- package/build/cjs/lib/nvm500/impls/Bridge_6_8x.d.ts +1 -1
- package/build/cjs/lib/nvm500/impls/Bridge_6_8x.js +7 -7
- package/build/cjs/lib/nvm500/impls/Bridge_6_8x.js.map +2 -2
- package/build/cjs/lib/nvm500/impls/Static_6_6x.d.ts +1 -1
- package/build/cjs/lib/nvm500/impls/Static_6_6x.js +7 -7
- package/build/cjs/lib/nvm500/impls/Static_6_6x.js.map +2 -2
- package/build/cjs/lib/nvm500/impls/Static_6_7x.d.ts +1 -1
- package/build/cjs/lib/nvm500/impls/Static_6_7x.js +7 -7
- package/build/cjs/lib/nvm500/impls/Static_6_7x.js.map +2 -2
- package/build/cjs/lib/nvm500/impls/Static_6_8x.d.ts +1 -1
- package/build/cjs/lib/nvm500/impls/Static_6_8x.js +7 -7
- package/build/cjs/lib/nvm500/impls/Static_6_8x.js.map +2 -2
- package/build/cjs/lib/nvm500/shared.d.ts +2 -2
- package/build/cjs/lib/nvm500/shared.js +2 -2
- package/build/cjs/lib/nvm500/shared.js.map +1 -1
- package/build/cjs/nvm500/NVMParser.d.ts +5 -5
- package/build/cjs/package.json +2 -1
- package/build/esm/cli.d.ts +1 -1
- package/build/esm/cli.d.ts.map +1 -1
- package/build/esm/cli.js +1 -2
- package/build/esm/cli.js.map +1 -1
- package/build/esm/convert.d.ts +3 -3
- package/build/esm/convert.d.ts.map +1 -1
- package/build/esm/convert.js +2 -2
- package/build/esm/convert.js.map +1 -1
- package/build/esm/lib/NVM3.js +2 -2
- package/build/esm/lib/NVM3.js.map +1 -1
- package/build/esm/lib/NVM500.js +1 -1
- package/build/esm/lib/NVM500.js.map +1 -1
- package/build/esm/lib/common/definitions.d.ts +5 -5
- package/build/esm/lib/common/definitions.d.ts.map +1 -1
- package/build/esm/lib/common/routeCache.d.ts +2 -2
- package/build/esm/lib/common/routeCache.d.ts.map +1 -1
- package/build/esm/lib/common/routeCache.js +2 -2
- package/build/esm/lib/common/routeCache.js.map +1 -1
- package/build/esm/lib/common/sucUpdateEntry.d.ts +1 -1
- package/build/esm/lib/common/sucUpdateEntry.d.ts.map +1 -1
- package/build/esm/lib/common/sucUpdateEntry.js +1 -1
- package/build/esm/lib/common/sucUpdateEntry.js.map +1 -1
- package/build/esm/lib/common/utils.js +1 -1
- package/build/esm/lib/common/utils.js.map +1 -1
- package/build/esm/lib/io/BufferedNVMReader.d.ts +1 -1
- package/build/esm/lib/io/BufferedNVMReader.d.ts.map +1 -1
- package/build/esm/lib/io/BufferedNVMReader.js +1 -1
- package/build/esm/lib/io/BufferedNVMReader.js.map +1 -1
- package/build/esm/lib/nvm3/adapter.d.ts +2 -2
- package/build/esm/lib/nvm3/adapter.d.ts.map +1 -1
- package/build/esm/lib/nvm3/adapter.js +2 -2
- package/build/esm/lib/nvm3/adapter.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationCCsFile.d.ts +2 -2
- package/build/esm/lib/nvm3/files/ApplicationCCsFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationCCsFile.js +2 -2
- package/build/esm/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationDataFile.d.ts +1 -1
- package/build/esm/lib/nvm3/files/ApplicationDataFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationNameFile.d.ts +1 -1
- package/build/esm/lib/nvm3/files/ApplicationNameFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.d.ts +2 -2
- package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js +2 -2
- package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationTypeFile.d.ts +1 -1
- package/build/esm/lib/nvm3/files/ApplicationTypeFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ApplicationTypeFile.js +1 -1
- package/build/esm/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/ControllerInfoFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ControllerInfoFile.js +1 -1
- package/build/esm/lib/nvm3/files/ControllerInfoFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/NVMFile.js +1 -1
- package/build/esm/lib/nvm3/files/NVMFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/NodeInfoFiles.d.ts +2 -2
- package/build/esm/lib/nvm3/files/NodeInfoFiles.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/NodeInfoFiles.js +2 -2
- package/build/esm/lib/nvm3/files/NodeInfoFiles.js.map +1 -1
- package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts +1 -1
- package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js +1 -1
- package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
- package/build/esm/lib/nvm3/files/RouteCacheFiles.d.ts +1 -1
- package/build/esm/lib/nvm3/files/RouteCacheFiles.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/RouteCacheFiles.js +2 -2
- package/build/esm/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
- package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.d.ts +1 -1
- package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js +1 -1
- package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
- package/build/esm/lib/nvm3/files/index.d.ts +0 -1
- package/build/esm/lib/nvm3/files/index.d.ts.map +1 -1
- package/build/esm/lib/nvm3/files/index.js +0 -1
- package/build/esm/lib/nvm3/files/index.js.map +1 -1
- package/build/esm/lib/nvm3/page.d.ts +1 -1
- package/build/esm/lib/nvm3/page.d.ts.map +1 -1
- package/build/esm/lib/nvm3/utils.d.ts +1 -1
- package/build/esm/lib/nvm3/utils.d.ts.map +1 -1
- package/build/esm/lib/nvm3/utils.js +1 -1
- package/build/esm/lib/nvm3/utils.js.map +1 -1
- package/build/esm/lib/nvm500/EntryParsers.d.ts +2 -2
- package/build/esm/lib/nvm500/EntryParsers.d.ts.map +1 -1
- package/build/esm/lib/nvm500/EntryParsers.js +2 -2
- package/build/esm/lib/nvm500/EntryParsers.js.map +1 -1
- package/build/esm/lib/nvm500/adapter.d.ts +2 -2
- package/build/esm/lib/nvm500/adapter.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_6x.d.ts +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_6x.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_6x.js +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_6x.js.map +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_7x.d.ts +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_7x.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_7x.js +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_7x.js.map +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_8x.d.ts +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_8x.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_8x.js +1 -1
- package/build/esm/lib/nvm500/impls/Bridge_6_8x.js.map +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_6x.d.ts +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_6x.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_6x.js +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_6x.js.map +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_7x.d.ts +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_7x.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_7x.js +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_7x.js.map +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_8x.d.ts +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_8x.d.ts.map +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_8x.js +1 -1
- package/build/esm/lib/nvm500/impls/Static_6_8x.js.map +1 -1
- package/build/esm/lib/nvm500/shared.d.ts +2 -2
- package/build/esm/lib/nvm500/shared.d.ts.map +1 -1
- package/build/esm/lib/nvm500/shared.js +1 -1
- package/build/esm/lib/nvm500/shared.js.map +1 -1
- package/build/esm/nvm500/NVMParser.d.ts +5 -5
- package/build/esm/nvm500/NVMParser.d.ts.map +1 -1
- package/build/esm/package.json +2 -1
- package/package.json +4 -3
package/build/cjs/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=cli.d.ts.map
|
package/build/cjs/cli.js
CHANGED
|
@@ -21,10 +21,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
22
|
mod
|
|
23
23
|
));
|
|
24
|
+
var import_node = require("@zwave-js/core/bindings/fs/node");
|
|
24
25
|
var import_shared = require("@zwave-js/shared");
|
|
25
26
|
var import_typeguards = require("alcalzone-shared/typeguards");
|
|
26
|
-
var import_reflect_metadata = require("reflect-metadata");
|
|
27
|
-
var import_node = require("@zwave-js/core/bindings/fs/node");
|
|
28
27
|
var import_yargs = __toESM(require("yargs"), 1);
|
|
29
28
|
var import_helpers = require("yargs/helpers");
|
|
30
29
|
var import_convert = require("./convert.js");
|
package/build/cjs/cli.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cli.ts"],
|
|
4
|
-
"sourcesContent": ["import {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAwC;AACxC,wBAAyB;AACzB,
|
|
4
|
+
"sourcesContent": ["import { fs } from \"@zwave-js/core/bindings/fs/node\";\nimport { readJSON, writeTextFile } from \"@zwave-js/shared\";\nimport { isObject } from \"alcalzone-shared/typeguards\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\nimport {\n\ttype MigrateNVMOptions,\n\tjson500To700,\n\tjson700To500,\n\tjsonToNVM,\n\tjsonToNVM500,\n\tmigrateNVM,\n\tnvm500ToJSON,\n\tnvmToJSON,\n} from \"./convert.js\";\n\nconst yargsInstance = yargs(hideBin(process.argv));\n\nvoid yargsInstance\n\t.env(\"NVMEDIT\")\n\t.strict()\n\t.usage(\"Z-Wave JS NVM converter utility\\n\\nUsage: $0 [options]\")\n\t.alias(\"h\", \"help\")\n\t.alias(\"v\", \"version\")\n\t.wrap(Math.min(100, yargsInstance.terminalWidth()))\n\t.options({\n\t\tverbose: {\n\t\t\talias: \"vv\",\n\t\t\tdescribe: \"Print verbose output\",\n\t\t\ttype: \"boolean\",\n\t\t},\n\t})\n\t.command(\n\t\t\"nvm2json\",\n\t\t\"Convert an NVM backup to JSON\",\n\t\t(yargs) =>\n\t\t\tyargs.usage(\"$0 nvm2json --in <input> --out <output>\").options({\n\t\t\t\tin: {\n\t\t\t\t\tdescribe: \"NVM backup filename\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t\tout: {\n\t\t\t\t\tdescribe: \"JSON output filename\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t}),\n\t\tasync (argv) => {\n\t\t\tconst buffer = await fs.readFile(argv.in);\n\t\t\tlet json: any;\n\t\t\ttry {\n\t\t\t\tjson = await nvmToJSON(buffer, argv.verbose);\n\t\t\t} catch (e) {\n\t\t\t\ttry {\n\t\t\t\t\tjson = await nvm500ToJSON(buffer);\n\t\t\t\t} catch {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t\tprocess.exit(1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait writeTextFile(fs, argv.out, JSON.stringify(json, null, \"\\t\"));\n\t\t\tconsole.error(`NVM (JSON) written to ${argv.out}`);\n\n\t\t\tprocess.exit(0);\n\t\t},\n\t)\n\t.command(\n\t\t\"json2nvm\",\n\t\t\"Convert the JSON representation of an NVM to binary\",\n\t\t(yargs) =>\n\t\t\tyargs\n\t\t\t\t.usage(\n\t\t\t\t\t\"$0 json2nvm --in <input> --out <output> --protocolVersion <version>\",\n\t\t\t\t)\n\t\t\t\t.options({\n\t\t\t\t\tin: {\n\t\t\t\t\t\tdescribe: \"JSON input filename\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tout: {\n\t\t\t\t\t\tdescribe: \"NVM output filename\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tprotocolVersion: {\n\t\t\t\t\t\talias: \"V\",\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"target protocol version, determines the NVM format\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\tasync (argv) => {\n\t\t\tconst { protocolVersion } = argv;\n\t\t\tconst versionIs500 = /^\\d\\.\\d+$/.test(protocolVersion);\n\n\t\t\tconst json = await readJSON(fs, argv.in);\n\t\t\tconst jsonIs500 = json.format === 500;\n\t\t\tif (versionIs500 && !jsonIs500) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`ERROR: Protocol version ${protocolVersion} looks like a 500-series version, but the JSON file does not belong to a 500-series NVM!\nConvert it first using the 700to500 command.`,\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t} else if (jsonIs500 && !versionIs500) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`ERROR: Protocol version ${protocolVersion} looks like a 700-series version, but the JSON file belong to a 500-series NVM!\nConvert it first using the 500to700 command.`,\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tif (!isObject(json.meta)) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`ERROR: The JSON file does not contain the meta section, which is required for the conversion to a binary NVM!\nCreate a backup of the target stick, use the nvm2json command to convert it to JSON and copy the meta section from there.`,\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\n\t\t\tconst nvm = versionIs500\n\t\t\t\t? await jsonToNVM500(json, protocolVersion)\n\t\t\t\t: await jsonToNVM(json, protocolVersion);\n\t\t\tawait fs.writeFile(argv.out, nvm);\n\t\t\tconsole.error(`NVM (binary) written to ${argv.out}`);\n\n\t\t\tprocess.exit(0);\n\t\t},\n\t)\n\t.command(\n\t\t\"500to700\",\n\t\t\"Convert a 500-series JSON file into a 700-series JSON file\",\n\t\t(yargs) =>\n\t\t\tyargs\n\t\t\t\t.usage(\"$0 500to700 --in <input> --out <output> [--truncate]\")\n\t\t\t\t.options({\n\t\t\t\t\tin: {\n\t\t\t\t\t\tdescribe: \"500 series JSON input filename\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tout: {\n\t\t\t\t\t\tdescribe: \"700 series output filename\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\ttruncate: {\n\t\t\t\t\t\talias: \"t\",\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"Truncate application data if it is too large (> 512 bytes)\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\trequired: false,\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\tasync (argv) => {\n\t\t\tconst json500 = await readJSON(fs, argv.in);\n\t\t\tconst json700 = json500To700(json500, argv.truncate);\n\t\t\tawait writeTextFile(\n\t\t\t\tfs,\n\t\t\t\targv.out,\n\t\t\t\tJSON.stringify(json700, null, \"\\t\"),\n\t\t\t);\n\t\t\tconsole.error(`700-series NVM (JSON) written to ${argv.out}`);\n\n\t\t\tprocess.exit(0);\n\t\t},\n\t)\n\t.command(\n\t\t\"700to500\",\n\t\t\"Convert a 700-series JSON file into a 500-series JSON file\",\n\t\t(yargs) =>\n\t\t\tyargs.usage(\"$0 700to500 --in <input> --out <output>\").options({\n\t\t\t\tin: {\n\t\t\t\t\tdescribe: \"700 series JSON input filename\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t\tout: {\n\t\t\t\t\tdescribe: \"500 series output filename\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t}),\n\t\tasync (argv) => {\n\t\t\tconst json700 = await readJSON(fs, argv.in);\n\t\t\tconst json500 = json700To500(json700);\n\t\t\tawait writeTextFile(\n\t\t\t\tfs,\n\t\t\t\targv.out,\n\t\t\t\tJSON.stringify(json500, null, \"\\t\"),\n\t\t\t);\n\t\t\tconsole.error(`500-series NVM (JSON) written to ${argv.out}`);\n\n\t\t\tprocess.exit(0);\n\t\t},\n\t)\n\t.command(\n\t\t\"convert\",\n\t\t\"Convert the format of an NVM backup between different Z-Wave modules\",\n\t\t(yargs) =>\n\t\t\tyargs\n\t\t\t\t.usage(\n\t\t\t\t\t\"$0 convert --source <source> --target <target> --out <output>\",\n\t\t\t\t)\n\t\t\t\t.options({\n\t\t\t\t\tsource: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"The source NVM filename. This file will be converted to match the target NVM.\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"The target NVM filename. This file will used to determine how to convert the source NVM.\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tout: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"The output filename where the convert NVM will be written.\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tnoAppData: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"Whether application data should be stripped during the migration\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t},\n\t\t\t\t\tnoRoutes: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"Whether known routes should be stripped during the migration\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t},\n\t\t\t\t\tnoNeighbors: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"Whether information about neighbors should be stripped during the migration\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t},\n\t\t\t\t\tnoSUCEntries: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"Whether SUC update entries should be stripped during the migration\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t},\n\t\t\t\t\tnoOptional: {\n\t\t\t\t\t\tdescribe:\n\t\t\t\t\t\t\t\"Strip all optional information from the NVM. Overrides all other noXYZ flags.\",\n\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\tdefault: false,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\tasync (argv) => {\n\t\t\tconst {\n\t\t\t\tnoAppData,\n\t\t\t\tnoNeighbors,\n\t\t\t\tnoRoutes,\n\t\t\t\tnoSUCEntries,\n\t\t\t\tnoOptional,\n\t\t\t} = argv;\n\t\t\tconst options: MigrateNVMOptions = {\n\t\t\t\tpreserveApplicationData: !noOptional && !noAppData,\n\t\t\t\tpreserveRoutes: !noOptional && !noRoutes,\n\t\t\t\tpreserveNeighbors: !noOptional && !noNeighbors,\n\t\t\t\tpreserveSUCUpdateEntries: !noOptional && !noSUCEntries,\n\t\t\t};\n\n\t\t\tconst source = await fs.readFile(argv.source);\n\t\t\tconst target = await fs.readFile(argv.target);\n\n\t\t\tconst output = await migrateNVM(source, target, options);\n\n\t\t\tawait fs.writeFile(argv.out, output);\n\t\t\tconsole.error(`Converted NVM written to ${argv.out}`);\n\n\t\t\tprocess.exit(0);\n\t\t},\n\t)\n\t.demandCommand(1, \"Please specify a command\")\n\t.parseAsync();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["yargs"]
|
|
7
7
|
}
|
package/build/cjs/convert.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type CommandClasses, NodeIDType, type NodeProtocolInfo, RFRegion } from "@zwave-js/core
|
|
1
|
+
import { type CommandClasses, NodeIDType, type NodeProtocolInfo, RFRegion } from "@zwave-js/core";
|
|
2
2
|
import { type NVM3Meta } from "./lib/NVM3.js";
|
|
3
3
|
import { type Route } from "./lib/common/routeCache.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { SUCUpdateEntry } from "./lib/common/sucUpdateEntry.js";
|
|
5
5
|
import type { NVM3Object } from "./lib/nvm3/object.js";
|
|
6
|
-
import {
|
|
6
|
+
import type { NVM500JSON } from "./nvm500/NVMParser.js";
|
|
7
7
|
export interface NVMJSON {
|
|
8
8
|
format: number;
|
|
9
9
|
applicationFileFormat?: number;
|
package/build/cjs/convert.js
CHANGED
|
@@ -40,9 +40,9 @@ __export(convert_exports, {
|
|
|
40
40
|
nvmToJSON: () => nvmToJSON
|
|
41
41
|
});
|
|
42
42
|
module.exports = __toCommonJS(convert_exports);
|
|
43
|
+
var import_core = require("@zwave-js/core");
|
|
43
44
|
var import_error = require("@zwave-js/core/error");
|
|
44
|
-
var
|
|
45
|
-
var import_safe2 = require("@zwave-js/shared/safe");
|
|
45
|
+
var import_shared = require("@zwave-js/shared");
|
|
46
46
|
var import_typeguards = require("alcalzone-shared/typeguards");
|
|
47
47
|
var import_gte = __toESM(require("semver/functions/gte.js"), 1);
|
|
48
48
|
var import_lt = __toESM(require("semver/functions/lt.js"), 1);
|
|
@@ -60,7 +60,7 @@ var import_files = require("./lib/nvm3/files/index.js");
|
|
|
60
60
|
var import_utils = require("./lib/nvm3/utils.js");
|
|
61
61
|
var import_adapter2 = require("./lib/nvm500/adapter.js");
|
|
62
62
|
var import_impls = require("./lib/nvm500/impls/index.js");
|
|
63
|
-
var
|
|
63
|
+
var import_shared2 = require("./lib/nvm500/shared.js");
|
|
64
64
|
function nodeHasInfo(node) {
|
|
65
65
|
return !node.isVirtual || Object.keys(node).length > 1;
|
|
66
66
|
}
|
|
@@ -74,7 +74,7 @@ function createEmptyPhysicalNode() {
|
|
|
74
74
|
supportedDataRates: [],
|
|
75
75
|
protocolVersion: 0,
|
|
76
76
|
optionalFunctionality: false,
|
|
77
|
-
nodeType:
|
|
77
|
+
nodeType: import_core.NodeType["End Node"],
|
|
78
78
|
supportsSecurity: false,
|
|
79
79
|
supportsBeaming: false,
|
|
80
80
|
genericDeviceClass: 0,
|
|
@@ -98,7 +98,7 @@ function createEmptyLRNode() {
|
|
|
98
98
|
supportedDataRates: [],
|
|
99
99
|
protocolVersion: 3,
|
|
100
100
|
optionalFunctionality: false,
|
|
101
|
-
nodeType:
|
|
101
|
+
nodeType: import_core.NodeType["End Node"],
|
|
102
102
|
supportsSecurity: true,
|
|
103
103
|
supportsBeaming: false,
|
|
104
104
|
genericDeviceClass: 0,
|
|
@@ -133,7 +133,7 @@ function nvmObjectsToJSON(objects) {
|
|
|
133
133
|
const ret2 = getObject(id);
|
|
134
134
|
if (ret2)
|
|
135
135
|
return ret2;
|
|
136
|
-
throw new import_error.ZWaveError(`Object${typeof id === "number" ? ` ${(0,
|
|
136
|
+
throw new import_error.ZWaveError(`Object${typeof id === "number" ? ` ${(0, import_shared.num2hex)(id)} (${id})` : ""} not found!`, import_error.ZWaveErrorCodes.NVM_ObjectNotFound);
|
|
137
137
|
}, "getObjectOrThrow");
|
|
138
138
|
const getFileOrThrow = /* @__PURE__ */ __name((id, fileVersion) => {
|
|
139
139
|
const obj = getObjectOrThrow(id);
|
|
@@ -262,15 +262,15 @@ function nvmObjectsToJSON(objects) {
|
|
|
262
262
|
const controller = {
|
|
263
263
|
protocolVersion,
|
|
264
264
|
applicationVersion,
|
|
265
|
-
homeId: (0,
|
|
266
|
-
...(0,
|
|
267
|
-
...(0,
|
|
265
|
+
homeId: (0, import_shared.buffer2hex)(controllerInfoFile.homeId),
|
|
266
|
+
...(0, import_shared.pick)(controllerInfoFile, controllerProps),
|
|
267
|
+
...(0, import_shared.pick)(applicationTypeFile, [
|
|
268
268
|
"isListening",
|
|
269
269
|
"optionalFunctionality",
|
|
270
270
|
"genericDeviceClass",
|
|
271
271
|
"specificDeviceClass"
|
|
272
272
|
]),
|
|
273
|
-
commandClasses: (0,
|
|
273
|
+
commandClasses: (0, import_shared.pick)(applicationCCsFile, [
|
|
274
274
|
"includedInsecurely",
|
|
275
275
|
"includedSecurelyInsecureCCs",
|
|
276
276
|
"includedSecurelySecureCCs"
|
|
@@ -319,7 +319,7 @@ __name(nvmObjectsToJSON, "nvmObjectsToJSON");
|
|
|
319
319
|
function nvmJSONNodeToNodeInfo(nodeId, node) {
|
|
320
320
|
return {
|
|
321
321
|
nodeId,
|
|
322
|
-
...(0,
|
|
322
|
+
...(0, import_shared.pick)(node, [
|
|
323
323
|
"isListening",
|
|
324
324
|
"isFrequentListening",
|
|
325
325
|
"isRouting",
|
|
@@ -340,7 +340,7 @@ __name(nvmJSONNodeToNodeInfo, "nvmJSONNodeToNodeInfo");
|
|
|
340
340
|
function nvmJSONLRNodeToLRNodeInfo(nodeId, node) {
|
|
341
341
|
return {
|
|
342
342
|
nodeId,
|
|
343
|
-
...(0,
|
|
343
|
+
...(0, import_shared.pick)(node, [
|
|
344
344
|
"isListening",
|
|
345
345
|
"isFrequentListening",
|
|
346
346
|
"isRouting",
|
|
@@ -358,7 +358,7 @@ function nvmJSONLRNodeToLRNodeInfo(nodeId, node) {
|
|
|
358
358
|
__name(nvmJSONLRNodeToLRNodeInfo, "nvmJSONLRNodeToLRNodeInfo");
|
|
359
359
|
function nvmJSONControllerToFileOptions(ctrlr) {
|
|
360
360
|
const ret = {
|
|
361
|
-
homeId:
|
|
361
|
+
homeId: import_shared.Bytes.from(ctrlr.homeId.replace(/^0x/, ""), "hex"),
|
|
362
362
|
nodeId: ctrlr.nodeId,
|
|
363
363
|
lastNodeId: ctrlr.lastNodeId,
|
|
364
364
|
staticControllerNodeId: ctrlr.staticControllerNodeId,
|
|
@@ -371,7 +371,7 @@ function nvmJSONControllerToFileOptions(ctrlr) {
|
|
|
371
371
|
if (ctrlr.sucAwarenessPushNeeded != void 0) {
|
|
372
372
|
ret.sucAwarenessPushNeeded = ctrlr.sucAwarenessPushNeeded;
|
|
373
373
|
} else {
|
|
374
|
-
Object.assign(ret, (0,
|
|
374
|
+
Object.assign(ret, (0, import_core.stripUndefined)((0, import_shared.pick)(ctrlr, [
|
|
375
375
|
"sucAwarenessPushNeeded",
|
|
376
376
|
"lastNodeIdLR",
|
|
377
377
|
"maxNodeIdLR",
|
|
@@ -394,7 +394,7 @@ async function nvmToJSON(buffer, debugLogs = false) {
|
|
|
394
394
|
const firstPageHeader = info.isSharedFileSystem ? info.sections.all.pages[0] : info.sections.protocol.pages[0];
|
|
395
395
|
const meta = {
|
|
396
396
|
sharedFileSystem: info.isSharedFileSystem,
|
|
397
|
-
...(0,
|
|
397
|
+
...(0, import_shared.pick)(firstPageHeader, [
|
|
398
398
|
"pageSize",
|
|
399
399
|
"writeSize",
|
|
400
400
|
"memoryMapped",
|
|
@@ -518,8 +518,8 @@ async function nvmToJSON(buffer, debugLogs = false) {
|
|
|
518
518
|
const controller = {
|
|
519
519
|
protocolVersion,
|
|
520
520
|
applicationVersion,
|
|
521
|
-
homeId: (0,
|
|
522
|
-
...(0,
|
|
521
|
+
homeId: (0, import_shared.buffer2hex)(controllerInfoFile.homeId),
|
|
522
|
+
...(0, import_shared.pick)(controllerInfoFile, [
|
|
523
523
|
"nodeId",
|
|
524
524
|
"lastNodeId",
|
|
525
525
|
"staticControllerNodeId",
|
|
@@ -535,13 +535,13 @@ async function nvmToJSON(buffer, debugLogs = false) {
|
|
|
535
535
|
"primaryLongRangeChannelId",
|
|
536
536
|
"dcdcConfig"
|
|
537
537
|
]),
|
|
538
|
-
...(0,
|
|
538
|
+
...(0, import_shared.pick)(applicationTypeFile, [
|
|
539
539
|
"isListening",
|
|
540
540
|
"optionalFunctionality",
|
|
541
541
|
"genericDeviceClass",
|
|
542
542
|
"specificDeviceClass"
|
|
543
543
|
]),
|
|
544
|
-
commandClasses: (0,
|
|
544
|
+
commandClasses: (0, import_shared.pick)(applicationCCsFile, [
|
|
545
545
|
"includedInsecurely",
|
|
546
546
|
"includedSecurelyInsecureCCs",
|
|
547
547
|
"includedSecurelySecureCCs"
|
|
@@ -558,7 +558,7 @@ async function nvmToJSON(buffer, debugLogs = false) {
|
|
|
558
558
|
}
|
|
559
559
|
} : {},
|
|
560
560
|
sucUpdateEntries,
|
|
561
|
-
applicationData: (applicationData &&
|
|
561
|
+
applicationData: (applicationData && import_shared.Bytes.view(applicationData).toString("hex")) ?? null,
|
|
562
562
|
applicationName: applicationName ?? null
|
|
563
563
|
};
|
|
564
564
|
const optionalControllerProps = [
|
|
@@ -597,7 +597,7 @@ async function nvm500ToJSON(buffer) {
|
|
|
597
597
|
const info = await nvm.init();
|
|
598
598
|
const meta = {
|
|
599
599
|
library: info.library,
|
|
600
|
-
...(0,
|
|
600
|
+
...(0, import_shared.pick)(info.nvmDescriptor, [
|
|
601
601
|
"manufacturerID",
|
|
602
602
|
"firmwareID",
|
|
603
603
|
"productType",
|
|
@@ -626,7 +626,7 @@ async function nvm500ToJSON(buffer) {
|
|
|
626
626
|
type: "pendingDiscovery"
|
|
627
627
|
}, true));
|
|
628
628
|
const nodes = {};
|
|
629
|
-
for (let nodeId = 1; nodeId <=
|
|
629
|
+
for (let nodeId = 1; nodeId <= import_core.MAX_NODES; nodeId++) {
|
|
630
630
|
const nodeInfo = await adapter.get({
|
|
631
631
|
domain: "node",
|
|
632
632
|
nodeId,
|
|
@@ -743,8 +743,8 @@ async function nvm500ToJSON(buffer) {
|
|
|
743
743
|
const controller = {
|
|
744
744
|
protocolVersion: info.nvmDescriptor.protocolVersion,
|
|
745
745
|
applicationVersion: info.nvmDescriptor.firmwareVersion,
|
|
746
|
-
ownHomeId: (0,
|
|
747
|
-
learnedHomeId: learnedHomeId ? (0,
|
|
746
|
+
ownHomeId: (0, import_shared.buffer2hex)(ownHomeId),
|
|
747
|
+
learnedHomeId: learnedHomeId ? (0, import_shared.buffer2hex)(learnedHomeId) : null,
|
|
748
748
|
nodeId: ownNodeId,
|
|
749
749
|
lastNodeId,
|
|
750
750
|
staticControllerNodeId,
|
|
@@ -764,7 +764,7 @@ async function nvm500ToJSON(buffer) {
|
|
|
764
764
|
},
|
|
765
765
|
preferredRepeaters,
|
|
766
766
|
commandClasses,
|
|
767
|
-
applicationData: (applicationData &&
|
|
767
|
+
applicationData: (applicationData && import_shared.Bytes.view(applicationData).toString("hex")) ?? null
|
|
768
768
|
};
|
|
769
769
|
return {
|
|
770
770
|
format: 500,
|
|
@@ -817,7 +817,7 @@ async function jsonToNVM(json, targetSDKVersion) {
|
|
|
817
817
|
targetProtocolVersion = (0, import_parse.default)("7.0.0");
|
|
818
818
|
targetProtocolFormat = 0;
|
|
819
819
|
}
|
|
820
|
-
const target = (0,
|
|
820
|
+
const target = (0, import_shared.cloneDeep)(json);
|
|
821
821
|
target.controller.protocolVersion = targetProtocolVersion.format();
|
|
822
822
|
target.format = targetProtocolFormat;
|
|
823
823
|
target.controller.applicationVersion = parsedVersion.format();
|
|
@@ -846,7 +846,7 @@ async function jsonToNVM(json, targetSDKVersion) {
|
|
|
846
846
|
}
|
|
847
847
|
const adapter = new import_adapter.NVM3Adapter(nvm3);
|
|
848
848
|
const applTypeFile = new import_files.ApplicationTypeFile({
|
|
849
|
-
...(0,
|
|
849
|
+
...(0, import_shared.pick)(target.controller, [
|
|
850
850
|
"isListening",
|
|
851
851
|
"optionalFunctionality",
|
|
852
852
|
"genericDeviceClass",
|
|
@@ -856,7 +856,7 @@ async function jsonToNVM(json, targetSDKVersion) {
|
|
|
856
856
|
});
|
|
857
857
|
adapter.setFile(applTypeFile);
|
|
858
858
|
const applCCsFile = new import_files.ApplicationCCsFile({
|
|
859
|
-
...(0,
|
|
859
|
+
...(0, import_shared.pick)(target.controller.commandClasses, [
|
|
860
860
|
"includedInsecurely",
|
|
861
861
|
"includedSecurelyInsecureCCs",
|
|
862
862
|
"includedSecurelySecureCCs"
|
|
@@ -865,7 +865,7 @@ async function jsonToNVM(json, targetSDKVersion) {
|
|
|
865
865
|
});
|
|
866
866
|
adapter.setFile(applCCsFile);
|
|
867
867
|
target.controller.rfConfig ??= {
|
|
868
|
-
rfRegion:
|
|
868
|
+
rfRegion: import_core.RFRegion["Default (EU)"],
|
|
869
869
|
txPower: 0,
|
|
870
870
|
measured0dBm: 3.3,
|
|
871
871
|
enablePTI: null,
|
|
@@ -877,10 +877,10 @@ async function jsonToNVM(json, targetSDKVersion) {
|
|
|
877
877
|
target.controller.rfConfig.maxTXPower ??= 14;
|
|
878
878
|
}
|
|
879
879
|
if ((0, import_gte.default)(targetSDKVersion, "7.21.0")) {
|
|
880
|
-
target.controller.rfConfig.nodeIdType ??=
|
|
880
|
+
target.controller.rfConfig.nodeIdType ??= import_core.NodeIDType.Short;
|
|
881
881
|
}
|
|
882
882
|
const applRFConfigFile = new import_files.ApplicationRFConfigFile({
|
|
883
|
-
...(0,
|
|
883
|
+
...(0, import_shared.pick)(target.controller.rfConfig, [
|
|
884
884
|
"rfRegion",
|
|
885
885
|
"txPower",
|
|
886
886
|
"measured0dBm"
|
|
@@ -892,7 +892,7 @@ async function jsonToNVM(json, targetSDKVersion) {
|
|
|
892
892
|
});
|
|
893
893
|
adapter.setFile(applRFConfigFile);
|
|
894
894
|
if (target.controller.applicationData) {
|
|
895
|
-
await adapter.set({ domain: "controller", type: "applicationData" },
|
|
895
|
+
await adapter.set({ domain: "controller", type: "applicationData" }, import_shared.Bytes.from(target.controller.applicationData, "hex"));
|
|
896
896
|
}
|
|
897
897
|
if (target.controller.applicationName && target.meta?.sharedFileSystem) {
|
|
898
898
|
await adapter.set({ domain: "controller", type: "applicationName" }, target.controller.applicationName);
|
|
@@ -970,7 +970,7 @@ async function jsonToNVM500(json, protocolVersion) {
|
|
|
970
970
|
if (!impl) {
|
|
971
971
|
throw new import_error.ZWaveError(`Did not find a matching implementation for protocol version ${protocolVersion} and library ${json.meta.library}. To convert 500-series NVMs, both the source and the target controller must be using Z-Wave SDK 6.61 or higher.`, import_error.ZWaveErrorCodes.NVM_NotSupported);
|
|
972
972
|
}
|
|
973
|
-
const { layout, nvmSize } = (0,
|
|
973
|
+
const { layout, nvmSize } = (0, import_shared2.resolveLayout)(impl.layout);
|
|
974
974
|
const ret = new Uint8Array(nvmSize);
|
|
975
975
|
const io = new import_NVMMemoryIO.NVMMemoryIO(ret);
|
|
976
976
|
const nvm = new import_NVM500.NVM500(io);
|
|
@@ -979,7 +979,7 @@ async function jsonToNVM500(json, protocolVersion) {
|
|
|
979
979
|
nvmSize,
|
|
980
980
|
library: impl.library,
|
|
981
981
|
nvmDescriptor: {
|
|
982
|
-
...(0,
|
|
982
|
+
...(0, import_shared.pick)(json.meta, [
|
|
983
983
|
"manufacturerID",
|
|
984
984
|
"productType",
|
|
985
985
|
"productID",
|
|
@@ -992,8 +992,8 @@ async function jsonToNVM500(json, protocolVersion) {
|
|
|
992
992
|
});
|
|
993
993
|
const adapter = new import_adapter2.NVM500Adapter(nvm);
|
|
994
994
|
const c = json.controller;
|
|
995
|
-
await adapter.set({ domain: "controller", type: "homeId" },
|
|
996
|
-
await adapter.set({ domain: "controller", type: "learnedHomeId" }, c.learnedHomeId ?
|
|
995
|
+
await adapter.set({ domain: "controller", type: "homeId" }, import_shared.Bytes.from(c.ownHomeId.replace(/^0x/, ""), "hex"));
|
|
996
|
+
await adapter.set({ domain: "controller", type: "learnedHomeId" }, c.learnedHomeId ? import_shared.Bytes.from(c.learnedHomeId.replace(/^0x/, ""), "hex") : void 0);
|
|
997
997
|
await adapter.set({ domain: "controller", type: "nodeId" }, c.nodeId);
|
|
998
998
|
await adapter.set({ domain: "controller", type: "lastNodeId" }, c.lastNodeId);
|
|
999
999
|
await adapter.set({ domain: "controller", type: "maxNodeId" }, c.maxNodeId);
|
|
@@ -1024,7 +1024,7 @@ async function jsonToNVM500(json, protocolVersion) {
|
|
|
1024
1024
|
await adapter.set({ domain: "controller", type: "preferredRepeaters" }, c.preferredRepeaters);
|
|
1025
1025
|
await adapter.set({ domain: "controller", type: "commandClasses" }, c.commandClasses);
|
|
1026
1026
|
if (c.applicationData) {
|
|
1027
|
-
await adapter.set({ domain: "controller", type: "applicationData" },
|
|
1027
|
+
await adapter.set({ domain: "controller", type: "applicationData" }, import_shared.Bytes.from(c.applicationData, "hex"));
|
|
1028
1028
|
}
|
|
1029
1029
|
const appRouteLock = [];
|
|
1030
1030
|
const routeSlaveSUC = [];
|
|
@@ -1067,7 +1067,7 @@ async function jsonToNVM500(json, protocolVersion) {
|
|
|
1067
1067
|
}
|
|
1068
1068
|
__name(jsonToNVM500, "jsonToNVM500");
|
|
1069
1069
|
function json500To700(json, truncateApplicationData) {
|
|
1070
|
-
const source = (0,
|
|
1070
|
+
const source = (0, import_shared.cloneDeep)(json);
|
|
1071
1071
|
let controllerNode = source.nodes[source.controller.nodeId || 1];
|
|
1072
1072
|
if (!nodeHasInfo(controllerNode)) {
|
|
1073
1073
|
controllerNode = {
|
|
@@ -1080,7 +1080,7 @@ function json500To700(json, truncateApplicationData) {
|
|
|
1080
1080
|
}
|
|
1081
1081
|
let applicationData = null;
|
|
1082
1082
|
if (source.controller.applicationData) {
|
|
1083
|
-
let raw =
|
|
1083
|
+
let raw = import_shared.Bytes.from(source.controller.applicationData, "hex");
|
|
1084
1084
|
let start = 0;
|
|
1085
1085
|
while (start < raw.length && raw[start] === 0) {
|
|
1086
1086
|
start++;
|
|
@@ -1100,15 +1100,15 @@ function json500To700(json, truncateApplicationData) {
|
|
|
1100
1100
|
}
|
|
1101
1101
|
let controllerConfiguration = source.controller.controllerConfiguration;
|
|
1102
1102
|
if (source.controller.controllerConfiguration === 255) {
|
|
1103
|
-
controllerConfiguration =
|
|
1103
|
+
controllerConfiguration = import_core.ControllerCapabilityFlags.SISPresent | import_core.ControllerCapabilityFlags.WasRealPrimary | import_core.ControllerCapabilityFlags.SUC;
|
|
1104
1104
|
}
|
|
1105
1105
|
let homeId;
|
|
1106
|
-
if (!!(controllerConfiguration &
|
|
1106
|
+
if (!!(controllerConfiguration & import_core.ControllerCapabilityFlags.OnOtherNetwork) && source.controller.learnedHomeId && source.controller.nodeId) {
|
|
1107
1107
|
homeId = source.controller.learnedHomeId;
|
|
1108
1108
|
} else {
|
|
1109
1109
|
homeId = source.controller.ownHomeId;
|
|
1110
|
-
controllerConfiguration &= ~
|
|
1111
|
-
if (controllerConfiguration &
|
|
1110
|
+
controllerConfiguration &= ~import_core.ControllerCapabilityFlags.OnOtherNetwork;
|
|
1111
|
+
if (controllerConfiguration & import_core.ControllerCapabilityFlags.SUC) {
|
|
1112
1112
|
source.controller.nodeId = source.controller.staticControllerNodeId || 1;
|
|
1113
1113
|
} else {
|
|
1114
1114
|
source.controller.nodeId = 1;
|
|
@@ -1158,11 +1158,11 @@ function json500To700(json, truncateApplicationData) {
|
|
|
1158
1158
|
}
|
|
1159
1159
|
__name(json500To700, "json500To700");
|
|
1160
1160
|
function json700To500(json) {
|
|
1161
|
-
const source = (0,
|
|
1161
|
+
const source = (0, import_shared.cloneDeep)(json);
|
|
1162
1162
|
let ownHomeId;
|
|
1163
1163
|
let learnedHomeId = null;
|
|
1164
1164
|
let nodeId;
|
|
1165
|
-
if (source.controller.controllerConfiguration &
|
|
1165
|
+
if (source.controller.controllerConfiguration & import_core.ControllerCapabilityFlags.OnOtherNetwork) {
|
|
1166
1166
|
ownHomeId = learnedHomeId = source.controller.homeId;
|
|
1167
1167
|
nodeId = source.controller.nodeId;
|
|
1168
1168
|
} else {
|