@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.
Files changed (208) hide show
  1. package/build/cjs/cli.d.ts +1 -1
  2. package/build/cjs/cli.js +1 -2
  3. package/build/cjs/cli.js.map +2 -2
  4. package/build/cjs/convert.d.ts +3 -3
  5. package/build/cjs/convert.js +45 -45
  6. package/build/cjs/convert.js.map +3 -3
  7. package/build/cjs/lib/NVM3.js +17 -17
  8. package/build/cjs/lib/NVM3.js.map +3 -3
  9. package/build/cjs/lib/NVM500.js +54 -54
  10. package/build/cjs/lib/NVM500.js.map +3 -3
  11. package/build/cjs/lib/common/definitions.d.ts +5 -5
  12. package/build/cjs/lib/common/definitions.js.map +1 -1
  13. package/build/cjs/lib/common/routeCache.d.ts +2 -2
  14. package/build/cjs/lib/common/routeCache.js +10 -10
  15. package/build/cjs/lib/common/routeCache.js.map +3 -3
  16. package/build/cjs/lib/common/sucUpdateEntry.d.ts +1 -1
  17. package/build/cjs/lib/common/sucUpdateEntry.js +4 -4
  18. package/build/cjs/lib/common/sucUpdateEntry.js.map +1 -1
  19. package/build/cjs/lib/common/utils.js +6 -6
  20. package/build/cjs/lib/common/utils.js.map +2 -2
  21. package/build/cjs/lib/io/BufferedNVMReader.d.ts +1 -1
  22. package/build/cjs/lib/io/BufferedNVMReader.js +2 -2
  23. package/build/cjs/lib/io/BufferedNVMReader.js.map +2 -2
  24. package/build/cjs/lib/nvm3/adapter.d.ts +2 -2
  25. package/build/cjs/lib/nvm3/adapter.js +6 -6
  26. package/build/cjs/lib/nvm3/adapter.js.map +3 -3
  27. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.d.ts +2 -2
  28. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js +6 -6
  29. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js.map +3 -3
  30. package/build/cjs/lib/nvm3/files/ApplicationDataFile.d.ts +1 -1
  31. package/build/cjs/lib/nvm3/files/ApplicationDataFile.js.map +1 -1
  32. package/build/cjs/lib/nvm3/files/ApplicationNameFile.d.ts +1 -1
  33. package/build/cjs/lib/nvm3/files/ApplicationNameFile.js.map +1 -1
  34. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.d.ts +2 -2
  35. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js +9 -9
  36. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js.map +3 -3
  37. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.d.ts +1 -1
  38. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js +2 -2
  39. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js.map +2 -2
  40. package/build/cjs/lib/nvm3/files/ControllerInfoFile.js +3 -3
  41. package/build/cjs/lib/nvm3/files/ControllerInfoFile.js.map +2 -2
  42. package/build/cjs/lib/nvm3/files/NVMFile.js +4 -4
  43. package/build/cjs/lib/nvm3/files/NVMFile.js.map +2 -2
  44. package/build/cjs/lib/nvm3/files/NodeInfoFiles.d.ts +2 -2
  45. package/build/cjs/lib/nvm3/files/NodeInfoFiles.js +18 -18
  46. package/build/cjs/lib/nvm3/files/NodeInfoFiles.js.map +3 -3
  47. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts +1 -1
  48. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js +5 -5
  49. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
  50. package/build/cjs/lib/nvm3/files/RouteCacheFiles.d.ts +1 -1
  51. package/build/cjs/lib/nvm3/files/RouteCacheFiles.js +11 -11
  52. package/build/cjs/lib/nvm3/files/RouteCacheFiles.js.map +3 -3
  53. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.d.ts +1 -1
  54. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js +3 -3
  55. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js.map +2 -2
  56. package/build/cjs/lib/nvm3/files/index.d.ts +0 -1
  57. package/build/cjs/lib/nvm3/files/index.js +0 -1
  58. package/build/cjs/lib/nvm3/files/index.js.map +2 -2
  59. package/build/cjs/lib/nvm3/page.d.ts +1 -1
  60. package/build/cjs/lib/nvm3/page.js.map +1 -1
  61. package/build/cjs/lib/nvm3/utils.d.ts +1 -1
  62. package/build/cjs/lib/nvm3/utils.js +3 -3
  63. package/build/cjs/lib/nvm3/utils.js.map +1 -1
  64. package/build/cjs/lib/nvm500/EntryParsers.d.ts +2 -2
  65. package/build/cjs/lib/nvm500/EntryParsers.js +10 -10
  66. package/build/cjs/lib/nvm500/EntryParsers.js.map +3 -3
  67. package/build/cjs/lib/nvm500/adapter.d.ts +2 -2
  68. package/build/cjs/lib/nvm500/adapter.js.map +1 -1
  69. package/build/cjs/lib/nvm500/impls/Bridge_6_6x.d.ts +1 -1
  70. package/build/cjs/lib/nvm500/impls/Bridge_6_6x.js +7 -7
  71. package/build/cjs/lib/nvm500/impls/Bridge_6_6x.js.map +2 -2
  72. package/build/cjs/lib/nvm500/impls/Bridge_6_7x.d.ts +1 -1
  73. package/build/cjs/lib/nvm500/impls/Bridge_6_7x.js +7 -7
  74. package/build/cjs/lib/nvm500/impls/Bridge_6_7x.js.map +2 -2
  75. package/build/cjs/lib/nvm500/impls/Bridge_6_8x.d.ts +1 -1
  76. package/build/cjs/lib/nvm500/impls/Bridge_6_8x.js +7 -7
  77. package/build/cjs/lib/nvm500/impls/Bridge_6_8x.js.map +2 -2
  78. package/build/cjs/lib/nvm500/impls/Static_6_6x.d.ts +1 -1
  79. package/build/cjs/lib/nvm500/impls/Static_6_6x.js +7 -7
  80. package/build/cjs/lib/nvm500/impls/Static_6_6x.js.map +2 -2
  81. package/build/cjs/lib/nvm500/impls/Static_6_7x.d.ts +1 -1
  82. package/build/cjs/lib/nvm500/impls/Static_6_7x.js +7 -7
  83. package/build/cjs/lib/nvm500/impls/Static_6_7x.js.map +2 -2
  84. package/build/cjs/lib/nvm500/impls/Static_6_8x.d.ts +1 -1
  85. package/build/cjs/lib/nvm500/impls/Static_6_8x.js +7 -7
  86. package/build/cjs/lib/nvm500/impls/Static_6_8x.js.map +2 -2
  87. package/build/cjs/lib/nvm500/shared.d.ts +2 -2
  88. package/build/cjs/lib/nvm500/shared.js +2 -2
  89. package/build/cjs/lib/nvm500/shared.js.map +1 -1
  90. package/build/cjs/nvm500/NVMParser.d.ts +5 -5
  91. package/build/cjs/package.json +2 -1
  92. package/build/esm/cli.d.ts +1 -1
  93. package/build/esm/cli.d.ts.map +1 -1
  94. package/build/esm/cli.js +1 -2
  95. package/build/esm/cli.js.map +1 -1
  96. package/build/esm/convert.d.ts +3 -3
  97. package/build/esm/convert.d.ts.map +1 -1
  98. package/build/esm/convert.js +2 -2
  99. package/build/esm/convert.js.map +1 -1
  100. package/build/esm/lib/NVM3.js +2 -2
  101. package/build/esm/lib/NVM3.js.map +1 -1
  102. package/build/esm/lib/NVM500.js +1 -1
  103. package/build/esm/lib/NVM500.js.map +1 -1
  104. package/build/esm/lib/common/definitions.d.ts +5 -5
  105. package/build/esm/lib/common/definitions.d.ts.map +1 -1
  106. package/build/esm/lib/common/routeCache.d.ts +2 -2
  107. package/build/esm/lib/common/routeCache.d.ts.map +1 -1
  108. package/build/esm/lib/common/routeCache.js +2 -2
  109. package/build/esm/lib/common/routeCache.js.map +1 -1
  110. package/build/esm/lib/common/sucUpdateEntry.d.ts +1 -1
  111. package/build/esm/lib/common/sucUpdateEntry.d.ts.map +1 -1
  112. package/build/esm/lib/common/sucUpdateEntry.js +1 -1
  113. package/build/esm/lib/common/sucUpdateEntry.js.map +1 -1
  114. package/build/esm/lib/common/utils.js +1 -1
  115. package/build/esm/lib/common/utils.js.map +1 -1
  116. package/build/esm/lib/io/BufferedNVMReader.d.ts +1 -1
  117. package/build/esm/lib/io/BufferedNVMReader.d.ts.map +1 -1
  118. package/build/esm/lib/io/BufferedNVMReader.js +1 -1
  119. package/build/esm/lib/io/BufferedNVMReader.js.map +1 -1
  120. package/build/esm/lib/nvm3/adapter.d.ts +2 -2
  121. package/build/esm/lib/nvm3/adapter.d.ts.map +1 -1
  122. package/build/esm/lib/nvm3/adapter.js +2 -2
  123. package/build/esm/lib/nvm3/adapter.js.map +1 -1
  124. package/build/esm/lib/nvm3/files/ApplicationCCsFile.d.ts +2 -2
  125. package/build/esm/lib/nvm3/files/ApplicationCCsFile.d.ts.map +1 -1
  126. package/build/esm/lib/nvm3/files/ApplicationCCsFile.js +2 -2
  127. package/build/esm/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
  128. package/build/esm/lib/nvm3/files/ApplicationDataFile.d.ts +1 -1
  129. package/build/esm/lib/nvm3/files/ApplicationDataFile.d.ts.map +1 -1
  130. package/build/esm/lib/nvm3/files/ApplicationNameFile.d.ts +1 -1
  131. package/build/esm/lib/nvm3/files/ApplicationNameFile.d.ts.map +1 -1
  132. package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.d.ts +2 -2
  133. package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.d.ts.map +1 -1
  134. package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js +2 -2
  135. package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
  136. package/build/esm/lib/nvm3/files/ApplicationTypeFile.d.ts +1 -1
  137. package/build/esm/lib/nvm3/files/ApplicationTypeFile.d.ts.map +1 -1
  138. package/build/esm/lib/nvm3/files/ApplicationTypeFile.js +1 -1
  139. package/build/esm/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
  140. package/build/esm/lib/nvm3/files/ControllerInfoFile.d.ts.map +1 -1
  141. package/build/esm/lib/nvm3/files/ControllerInfoFile.js +1 -1
  142. package/build/esm/lib/nvm3/files/ControllerInfoFile.js.map +1 -1
  143. package/build/esm/lib/nvm3/files/NVMFile.js +1 -1
  144. package/build/esm/lib/nvm3/files/NVMFile.js.map +1 -1
  145. package/build/esm/lib/nvm3/files/NodeInfoFiles.d.ts +2 -2
  146. package/build/esm/lib/nvm3/files/NodeInfoFiles.d.ts.map +1 -1
  147. package/build/esm/lib/nvm3/files/NodeInfoFiles.js +2 -2
  148. package/build/esm/lib/nvm3/files/NodeInfoFiles.js.map +1 -1
  149. package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts +1 -1
  150. package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts.map +1 -1
  151. package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js +1 -1
  152. package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
  153. package/build/esm/lib/nvm3/files/RouteCacheFiles.d.ts +1 -1
  154. package/build/esm/lib/nvm3/files/RouteCacheFiles.d.ts.map +1 -1
  155. package/build/esm/lib/nvm3/files/RouteCacheFiles.js +2 -2
  156. package/build/esm/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
  157. package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.d.ts +1 -1
  158. package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.d.ts.map +1 -1
  159. package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js +1 -1
  160. package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
  161. package/build/esm/lib/nvm3/files/index.d.ts +0 -1
  162. package/build/esm/lib/nvm3/files/index.d.ts.map +1 -1
  163. package/build/esm/lib/nvm3/files/index.js +0 -1
  164. package/build/esm/lib/nvm3/files/index.js.map +1 -1
  165. package/build/esm/lib/nvm3/page.d.ts +1 -1
  166. package/build/esm/lib/nvm3/page.d.ts.map +1 -1
  167. package/build/esm/lib/nvm3/utils.d.ts +1 -1
  168. package/build/esm/lib/nvm3/utils.d.ts.map +1 -1
  169. package/build/esm/lib/nvm3/utils.js +1 -1
  170. package/build/esm/lib/nvm3/utils.js.map +1 -1
  171. package/build/esm/lib/nvm500/EntryParsers.d.ts +2 -2
  172. package/build/esm/lib/nvm500/EntryParsers.d.ts.map +1 -1
  173. package/build/esm/lib/nvm500/EntryParsers.js +2 -2
  174. package/build/esm/lib/nvm500/EntryParsers.js.map +1 -1
  175. package/build/esm/lib/nvm500/adapter.d.ts +2 -2
  176. package/build/esm/lib/nvm500/adapter.d.ts.map +1 -1
  177. package/build/esm/lib/nvm500/impls/Bridge_6_6x.d.ts +1 -1
  178. package/build/esm/lib/nvm500/impls/Bridge_6_6x.d.ts.map +1 -1
  179. package/build/esm/lib/nvm500/impls/Bridge_6_6x.js +1 -1
  180. package/build/esm/lib/nvm500/impls/Bridge_6_6x.js.map +1 -1
  181. package/build/esm/lib/nvm500/impls/Bridge_6_7x.d.ts +1 -1
  182. package/build/esm/lib/nvm500/impls/Bridge_6_7x.d.ts.map +1 -1
  183. package/build/esm/lib/nvm500/impls/Bridge_6_7x.js +1 -1
  184. package/build/esm/lib/nvm500/impls/Bridge_6_7x.js.map +1 -1
  185. package/build/esm/lib/nvm500/impls/Bridge_6_8x.d.ts +1 -1
  186. package/build/esm/lib/nvm500/impls/Bridge_6_8x.d.ts.map +1 -1
  187. package/build/esm/lib/nvm500/impls/Bridge_6_8x.js +1 -1
  188. package/build/esm/lib/nvm500/impls/Bridge_6_8x.js.map +1 -1
  189. package/build/esm/lib/nvm500/impls/Static_6_6x.d.ts +1 -1
  190. package/build/esm/lib/nvm500/impls/Static_6_6x.d.ts.map +1 -1
  191. package/build/esm/lib/nvm500/impls/Static_6_6x.js +1 -1
  192. package/build/esm/lib/nvm500/impls/Static_6_6x.js.map +1 -1
  193. package/build/esm/lib/nvm500/impls/Static_6_7x.d.ts +1 -1
  194. package/build/esm/lib/nvm500/impls/Static_6_7x.d.ts.map +1 -1
  195. package/build/esm/lib/nvm500/impls/Static_6_7x.js +1 -1
  196. package/build/esm/lib/nvm500/impls/Static_6_7x.js.map +1 -1
  197. package/build/esm/lib/nvm500/impls/Static_6_8x.d.ts +1 -1
  198. package/build/esm/lib/nvm500/impls/Static_6_8x.d.ts.map +1 -1
  199. package/build/esm/lib/nvm500/impls/Static_6_8x.js +1 -1
  200. package/build/esm/lib/nvm500/impls/Static_6_8x.js.map +1 -1
  201. package/build/esm/lib/nvm500/shared.d.ts +2 -2
  202. package/build/esm/lib/nvm500/shared.d.ts.map +1 -1
  203. package/build/esm/lib/nvm500/shared.js +1 -1
  204. package/build/esm/lib/nvm500/shared.js.map +1 -1
  205. package/build/esm/nvm500/NVMParser.d.ts +5 -5
  206. package/build/esm/nvm500/NVMParser.d.ts.map +1 -1
  207. package/build/esm/package.json +2 -1
  208. package/package.json +4 -3
@@ -1,2 +1,2 @@
1
- import "reflect-metadata";
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");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "sourcesContent": ["import { readJSON, writeTextFile } from \"@zwave-js/shared\";\nimport { isObject } from \"alcalzone-shared/typeguards\";\nimport \"reflect-metadata\";\nimport { fs } from \"@zwave-js/core/bindings/fs/node\";\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": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAwC;AACxC,wBAAyB;AACzB,8BAAO;AACP,kBAAmB;AACnB,mBAAkB;AAClB,qBAAwB;AACxB,qBASO;AAEP,MAAM,oBAAgB,aAAAA,aAAM,wBAAQ,QAAQ,IAAI,CAAC;AAEjD,KAAK,cACH,IAAI,SAAS,EACb,OAAM,EACN,MAAM,wDAAwD,EAC9D,MAAM,KAAK,MAAM,EACjB,MAAM,KAAK,SAAS,EACpB,KAAK,KAAK,IAAI,KAAK,cAAc,cAAa,CAAE,CAAC,EACjD,QAAQ;EACR,SAAS;IACR,OAAO;IACP,UAAU;IACV,MAAM;;CAEP,EACA,QACA,YACA,iCACA,CAACA,WACAA,OAAM,MAAM,yCAAyC,EAAE,QAAQ;EAC9D,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;CAEX,GACF,OAAO,SAAQ;AACd,QAAM,SAAS,MAAM,eAAG,SAAS,KAAK,EAAE;AACxC,MAAI;AACJ,MAAI;AACH,WAAO,UAAM,0BAAU,QAAQ,KAAK,OAAO;EAC5C,SAAS,GAAG;AACX,QAAI;AACH,aAAO,UAAM,6BAAa,MAAM;IACjC,QAAQ;AACP,cAAQ,MAAM,CAAC;AACf,cAAQ,KAAK,CAAC;IACf;EACD;AACA,YAAM,6BAAc,gBAAI,KAAK,KAAK,KAAK,UAAU,MAAM,MAAM,GAAI,CAAC;AAClE,UAAQ,MAAM,yBAAyB,KAAK,GAAG,EAAE;AAEjD,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,YACA,uDACA,CAACA,WACAA,OACE,MACA,qEAAqE,EAErE,QAAQ;EACR,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,iBAAiB;IAChB,OAAO;IACP,UACC;IACD,MAAM;IACN,UAAU;;CAEX,GACH,OAAO,SAAQ;AACd,QAAM,EAAE,gBAAe,IAAK;AAC5B,QAAM,eAAe,YAAY,KAAK,eAAe;AAErD,QAAM,OAAO,UAAM,wBAAS,gBAAI,KAAK,EAAE;AACvC,QAAM,YAAY,KAAK,WAAW;AAClC,MAAI,gBAAgB,CAAC,WAAW;AAC/B,YAAQ,MACP,2BAA2B,eAAe;6CACF;AAEzC,YAAQ,KAAK,CAAC;EACf,WAAW,aAAa,CAAC,cAAc;AACtC,YAAQ,MACP,2BAA2B,eAAe;6CACF;AAEzC,YAAQ,KAAK,CAAC;EACf;AAEA,MAAI,KAAC,4BAAS,KAAK,IAAI,GAAG;AACzB,YAAQ,MACP;0HACqH;AAEtH,YAAQ,KAAK,CAAC;EACf;AAEA,QAAM,MAAM,eACT,UAAM,6BAAa,MAAM,eAAe,IACxC,UAAM,0BAAU,MAAM,eAAe;AACxC,QAAM,eAAG,UAAU,KAAK,KAAK,GAAG;AAChC,UAAQ,MAAM,2BAA2B,KAAK,GAAG,EAAE;AAEnD,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,YACA,8DACA,CAACA,WACAA,OACE,MAAM,sDAAsD,EAC5D,QAAQ;EACR,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,UAAU;IACT,OAAO;IACP,UACC;IACD,MAAM;IACN,UAAU;IACV,SAAS;;CAEV,GACH,OAAO,SAAQ;AACd,QAAM,UAAU,UAAM,wBAAS,gBAAI,KAAK,EAAE;AAC1C,QAAM,cAAU,6BAAa,SAAS,KAAK,QAAQ;AACnD,YAAM,6BACL,gBACA,KAAK,KACL,KAAK,UAAU,SAAS,MAAM,GAAI,CAAC;AAEpC,UAAQ,MAAM,oCAAoC,KAAK,GAAG,EAAE;AAE5D,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,YACA,8DACA,CAACA,WACAA,OAAM,MAAM,yCAAyC,EAAE,QAAQ;EAC9D,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;CAEX,GACF,OAAO,SAAQ;AACd,QAAM,UAAU,UAAM,wBAAS,gBAAI,KAAK,EAAE;AAC1C,QAAM,cAAU,6BAAa,OAAO;AACpC,YAAM,6BACL,gBACA,KAAK,KACL,KAAK,UAAU,SAAS,MAAM,GAAI,CAAC;AAEpC,UAAQ,MAAM,oCAAoC,KAAK,GAAG,EAAE;AAE5D,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,WACA,wEACA,CAACA,WACAA,OACE,MACA,+DAA+D,EAE/D,QAAQ;EACR,QAAQ;IACP,UACC;IACD,MAAM;IACN,UAAU;;EAEX,QAAQ;IACP,UACC;IACD,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UACC;IACD,MAAM;IACN,UAAU;;EAEX,WAAW;IACV,UACC;IACD,MAAM;IACN,SAAS;;EAEV,UAAU;IACT,UACC;IACD,MAAM;IACN,SAAS;;EAEV,aAAa;IACZ,UACC;IACD,MAAM;IACN,SAAS;;EAEV,cAAc;IACb,UACC;IACD,MAAM;IACN,SAAS;;EAEV,YAAY;IACX,UACC;IACD,MAAM;IACN,SAAS;;CAEV,GACH,OAAO,SAAQ;AACd,QAAM,EACL,WACA,aACA,UACA,cACA,WAAU,IACP;AACJ,QAAM,UAA6B;IAClC,yBAAyB,CAAC,cAAc,CAAC;IACzC,gBAAgB,CAAC,cAAc,CAAC;IAChC,mBAAmB,CAAC,cAAc,CAAC;IACnC,0BAA0B,CAAC,cAAc,CAAC;;AAG3C,QAAM,SAAS,MAAM,eAAG,SAAS,KAAK,MAAM;AAC5C,QAAM,SAAS,MAAM,eAAG,SAAS,KAAK,MAAM;AAE5C,QAAM,SAAS,UAAM,2BAAW,QAAQ,QAAQ,OAAO;AAEvD,QAAM,eAAG,UAAU,KAAK,KAAK,MAAM;AACnC,UAAQ,MAAM,4BAA4B,KAAK,GAAG,EAAE;AAEpD,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,cAAc,GAAG,0BAA0B,EAC3C,WAAU;",
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": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAmB;AACnB,oBAAwC;AACxC,wBAAyB;AACzB,mBAAkB;AAClB,qBAAwB;AACxB,qBASO;AAEP,MAAM,oBAAgB,aAAAA,aAAM,wBAAQ,QAAQ,IAAI,CAAC;AAEjD,KAAK,cACH,IAAI,SAAS,EACb,OAAM,EACN,MAAM,wDAAwD,EAC9D,MAAM,KAAK,MAAM,EACjB,MAAM,KAAK,SAAS,EACpB,KAAK,KAAK,IAAI,KAAK,cAAc,cAAa,CAAE,CAAC,EACjD,QAAQ;EACR,SAAS;IACR,OAAO;IACP,UAAU;IACV,MAAM;;CAEP,EACA,QACA,YACA,iCACA,CAACA,WACAA,OAAM,MAAM,yCAAyC,EAAE,QAAQ;EAC9D,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;CAEX,GACF,OAAO,SAAQ;AACd,QAAM,SAAS,MAAM,eAAG,SAAS,KAAK,EAAE;AACxC,MAAI;AACJ,MAAI;AACH,WAAO,UAAM,0BAAU,QAAQ,KAAK,OAAO;EAC5C,SAAS,GAAG;AACX,QAAI;AACH,aAAO,UAAM,6BAAa,MAAM;IACjC,QAAQ;AACP,cAAQ,MAAM,CAAC;AACf,cAAQ,KAAK,CAAC;IACf;EACD;AACA,YAAM,6BAAc,gBAAI,KAAK,KAAK,KAAK,UAAU,MAAM,MAAM,GAAI,CAAC;AAClE,UAAQ,MAAM,yBAAyB,KAAK,GAAG,EAAE;AAEjD,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,YACA,uDACA,CAACA,WACAA,OACE,MACA,qEAAqE,EAErE,QAAQ;EACR,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,iBAAiB;IAChB,OAAO;IACP,UACC;IACD,MAAM;IACN,UAAU;;CAEX,GACH,OAAO,SAAQ;AACd,QAAM,EAAE,gBAAe,IAAK;AAC5B,QAAM,eAAe,YAAY,KAAK,eAAe;AAErD,QAAM,OAAO,UAAM,wBAAS,gBAAI,KAAK,EAAE;AACvC,QAAM,YAAY,KAAK,WAAW;AAClC,MAAI,gBAAgB,CAAC,WAAW;AAC/B,YAAQ,MACP,2BAA2B,eAAe;6CACF;AAEzC,YAAQ,KAAK,CAAC;EACf,WAAW,aAAa,CAAC,cAAc;AACtC,YAAQ,MACP,2BAA2B,eAAe;6CACF;AAEzC,YAAQ,KAAK,CAAC;EACf;AAEA,MAAI,KAAC,4BAAS,KAAK,IAAI,GAAG;AACzB,YAAQ,MACP;0HACqH;AAEtH,YAAQ,KAAK,CAAC;EACf;AAEA,QAAM,MAAM,eACT,UAAM,6BAAa,MAAM,eAAe,IACxC,UAAM,0BAAU,MAAM,eAAe;AACxC,QAAM,eAAG,UAAU,KAAK,KAAK,GAAG;AAChC,UAAQ,MAAM,2BAA2B,KAAK,GAAG,EAAE;AAEnD,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,YACA,8DACA,CAACA,WACAA,OACE,MAAM,sDAAsD,EAC5D,QAAQ;EACR,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,UAAU;IACT,OAAO;IACP,UACC;IACD,MAAM;IACN,UAAU;IACV,SAAS;;CAEV,GACH,OAAO,SAAQ;AACd,QAAM,UAAU,UAAM,wBAAS,gBAAI,KAAK,EAAE;AAC1C,QAAM,cAAU,6BAAa,SAAS,KAAK,QAAQ;AACnD,YAAM,6BACL,gBACA,KAAK,KACL,KAAK,UAAU,SAAS,MAAM,GAAI,CAAC;AAEpC,UAAQ,MAAM,oCAAoC,KAAK,GAAG,EAAE;AAE5D,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,YACA,8DACA,CAACA,WACAA,OAAM,MAAM,yCAAyC,EAAE,QAAQ;EAC9D,IAAI;IACH,UAAU;IACV,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UAAU;IACV,MAAM;IACN,UAAU;;CAEX,GACF,OAAO,SAAQ;AACd,QAAM,UAAU,UAAM,wBAAS,gBAAI,KAAK,EAAE;AAC1C,QAAM,cAAU,6BAAa,OAAO;AACpC,YAAM,6BACL,gBACA,KAAK,KACL,KAAK,UAAU,SAAS,MAAM,GAAI,CAAC;AAEpC,UAAQ,MAAM,oCAAoC,KAAK,GAAG,EAAE;AAE5D,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,QACA,WACA,wEACA,CAACA,WACAA,OACE,MACA,+DAA+D,EAE/D,QAAQ;EACR,QAAQ;IACP,UACC;IACD,MAAM;IACN,UAAU;;EAEX,QAAQ;IACP,UACC;IACD,MAAM;IACN,UAAU;;EAEX,KAAK;IACJ,UACC;IACD,MAAM;IACN,UAAU;;EAEX,WAAW;IACV,UACC;IACD,MAAM;IACN,SAAS;;EAEV,UAAU;IACT,UACC;IACD,MAAM;IACN,SAAS;;EAEV,aAAa;IACZ,UACC;IACD,MAAM;IACN,SAAS;;EAEV,cAAc;IACb,UACC;IACD,MAAM;IACN,SAAS;;EAEV,YAAY;IACX,UACC;IACD,MAAM;IACN,SAAS;;CAEV,GACH,OAAO,SAAQ;AACd,QAAM,EACL,WACA,aACA,UACA,cACA,WAAU,IACP;AACJ,QAAM,UAA6B;IAClC,yBAAyB,CAAC,cAAc,CAAC;IACzC,gBAAgB,CAAC,cAAc,CAAC;IAChC,mBAAmB,CAAC,cAAc,CAAC;IACnC,0BAA0B,CAAC,cAAc,CAAC;;AAG3C,QAAM,SAAS,MAAM,eAAG,SAAS,KAAK,MAAM;AAC5C,QAAM,SAAS,MAAM,eAAG,SAAS,KAAK,MAAM;AAE5C,QAAM,SAAS,UAAM,2BAAW,QAAQ,QAAQ,OAAO;AAEvD,QAAM,eAAG,UAAU,KAAK,KAAK,MAAM;AACnC,UAAQ,MAAM,4BAA4B,KAAK,GAAG,EAAE;AAEpD,UAAQ,KAAK,CAAC;AACf,CAAC,EAED,cAAc,GAAG,0BAA0B,EAC3C,WAAU;",
6
6
  "names": ["yargs"]
7
7
  }
@@ -1,9 +1,9 @@
1
- import { type CommandClasses, NodeIDType, type NodeProtocolInfo, RFRegion } from "@zwave-js/core/safe";
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 { type SUCUpdateEntry } from "./lib/common/sucUpdateEntry.js";
4
+ import type { SUCUpdateEntry } from "./lib/common/sucUpdateEntry.js";
5
5
  import type { NVM3Object } from "./lib/nvm3/object.js";
6
- import { type NVM500JSON } from "./nvm500/NVMParser.js";
6
+ import type { NVM500JSON } from "./nvm500/NVMParser.js";
7
7
  export interface NVMJSON {
8
8
  format: number;
9
9
  applicationFileFormat?: number;
@@ -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 import_safe = require("@zwave-js/core/safe");
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 import_shared = require("./lib/nvm500/shared.js");
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: import_safe.NodeType["End Node"],
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: import_safe.NodeType["End Node"],
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, import_safe2.num2hex)(id)} (${id})` : ""} not found!`, import_error.ZWaveErrorCodes.NVM_ObjectNotFound);
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, import_safe2.buffer2hex)(controllerInfoFile.homeId),
266
- ...(0, import_safe2.pick)(controllerInfoFile, controllerProps),
267
- ...(0, import_safe2.pick)(applicationTypeFile, [
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, import_safe2.pick)(applicationCCsFile, [
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, import_safe2.pick)(node, [
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, import_safe2.pick)(node, [
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: import_safe2.Bytes.from(ctrlr.homeId.replace(/^0x/, ""), "hex"),
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, import_safe.stripUndefined)((0, import_safe2.pick)(ctrlr, [
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, import_safe2.pick)(firstPageHeader, [
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, import_safe2.buffer2hex)(controllerInfoFile.homeId),
522
- ...(0, import_safe2.pick)(controllerInfoFile, [
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, import_safe2.pick)(applicationTypeFile, [
538
+ ...(0, import_shared.pick)(applicationTypeFile, [
539
539
  "isListening",
540
540
  "optionalFunctionality",
541
541
  "genericDeviceClass",
542
542
  "specificDeviceClass"
543
543
  ]),
544
- commandClasses: (0, import_safe2.pick)(applicationCCsFile, [
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 && import_safe2.Bytes.view(applicationData).toString("hex")) ?? null,
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, import_safe2.pick)(info.nvmDescriptor, [
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 <= import_safe.MAX_NODES; 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, import_safe2.buffer2hex)(ownHomeId),
747
- learnedHomeId: learnedHomeId ? (0, import_safe2.buffer2hex)(learnedHomeId) : null,
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 && import_safe2.Bytes.view(applicationData).toString("hex")) ?? null
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, import_safe2.cloneDeep)(json);
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, import_safe2.pick)(target.controller, [
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, import_safe2.pick)(target.controller.commandClasses, [
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: import_safe.RFRegion["Default (EU)"],
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 ??= import_safe.NodeIDType.Short;
880
+ target.controller.rfConfig.nodeIdType ??= import_core.NodeIDType.Short;
881
881
  }
882
882
  const applRFConfigFile = new import_files.ApplicationRFConfigFile({
883
- ...(0, import_safe2.pick)(target.controller.rfConfig, [
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" }, import_safe2.Bytes.from(target.controller.applicationData, "hex"));
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, import_shared.resolveLayout)(impl.layout);
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, import_safe2.pick)(json.meta, [
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" }, import_safe2.Bytes.from(c.ownHomeId.replace(/^0x/, ""), "hex"));
996
- await adapter.set({ domain: "controller", type: "learnedHomeId" }, c.learnedHomeId ? import_safe2.Bytes.from(c.learnedHomeId.replace(/^0x/, ""), "hex") : void 0);
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" }, import_safe2.Bytes.from(c.applicationData, "hex"));
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, import_safe2.cloneDeep)(json);
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 = import_safe2.Bytes.from(source.controller.applicationData, "hex");
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 = import_safe.ControllerCapabilityFlags.SISPresent | import_safe.ControllerCapabilityFlags.WasRealPrimary | import_safe.ControllerCapabilityFlags.SUC;
1103
+ controllerConfiguration = import_core.ControllerCapabilityFlags.SISPresent | import_core.ControllerCapabilityFlags.WasRealPrimary | import_core.ControllerCapabilityFlags.SUC;
1104
1104
  }
1105
1105
  let homeId;
1106
- if (!!(controllerConfiguration & import_safe.ControllerCapabilityFlags.OnOtherNetwork) && source.controller.learnedHomeId && source.controller.nodeId) {
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 &= ~import_safe.ControllerCapabilityFlags.OnOtherNetwork;
1111
- if (controllerConfiguration & import_safe.ControllerCapabilityFlags.SUC) {
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, import_safe2.cloneDeep)(json);
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 & import_safe.ControllerCapabilityFlags.OnOtherNetwork) {
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 {