@zwave-js/nvmedit 15.15.3 → 15.17.0

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 (124) hide show
  1. package/build/cjs/convert.d.ts +6 -5
  2. package/build/cjs/convert.js.map +2 -2
  3. package/build/cjs/lib/NVM3.d.ts +6 -5
  4. package/build/cjs/lib/NVM3.js.map +2 -2
  5. package/build/cjs/lib/NVM500.js +1 -1
  6. package/build/cjs/lib/NVM500.js.map +2 -2
  7. package/build/cjs/lib/common/definitions.d.ts +5 -5
  8. package/build/cjs/lib/common/definitions.js.map +1 -1
  9. package/build/cjs/lib/common/routeCache.d.ts +2 -2
  10. package/build/cjs/lib/common/routeCache.js.map +2 -2
  11. package/build/cjs/lib/common/sucUpdateEntry.d.ts +2 -2
  12. package/build/cjs/lib/common/sucUpdateEntry.js.map +2 -2
  13. package/build/cjs/lib/common/utils.d.ts +3 -2
  14. package/build/cjs/lib/common/utils.js.map +2 -2
  15. package/build/cjs/lib/io/BufferedNVMReader.d.ts +3 -2
  16. package/build/cjs/lib/io/BufferedNVMReader.js.map +2 -2
  17. package/build/cjs/lib/io/NVMFileIO.d.ts +3 -2
  18. package/build/cjs/lib/io/NVMFileIO.js.map +2 -2
  19. package/build/cjs/lib/io/NVMMemoryIO.d.ts +4 -3
  20. package/build/cjs/lib/io/NVMMemoryIO.js.map +2 -2
  21. package/build/cjs/lib/nvm3/adapter.js.map +2 -2
  22. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js +1 -1
  23. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
  24. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js +1 -1
  25. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
  26. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js +1 -1
  27. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
  28. package/build/cjs/lib/nvm3/files/ControllerInfoFile.d.ts +3 -3
  29. package/build/cjs/lib/nvm3/files/ControllerInfoFile.js +1 -1
  30. package/build/cjs/lib/nvm3/files/ControllerInfoFile.js.map +2 -2
  31. package/build/cjs/lib/nvm3/files/NVMFile.d.ts +2 -2
  32. package/build/cjs/lib/nvm3/files/NVMFile.js.map +2 -2
  33. package/build/cjs/lib/nvm3/files/NodeInfoFiles.js +3 -3
  34. package/build/cjs/lib/nvm3/files/NodeInfoFiles.js.map +2 -2
  35. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js +2 -2
  36. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
  37. package/build/cjs/lib/nvm3/files/RouteCacheFiles.js +2 -2
  38. package/build/cjs/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
  39. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js +2 -2
  40. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
  41. package/build/cjs/lib/nvm3/files/VersionFiles.js +1 -1
  42. package/build/cjs/lib/nvm3/files/VersionFiles.js.map +1 -1
  43. package/build/cjs/lib/nvm3/object.d.ts +3 -2
  44. package/build/cjs/lib/nvm3/object.js.map +2 -2
  45. package/build/cjs/lib/nvm3/page.d.ts +2 -1
  46. package/build/cjs/lib/nvm3/page.js.map +2 -2
  47. package/build/cjs/lib/nvm500/EntryParsers.d.ts +4 -4
  48. package/build/cjs/lib/nvm500/EntryParsers.js.map +2 -2
  49. package/build/cjs/lib/nvm500/adapter.js +4 -2
  50. package/build/cjs/lib/nvm500/adapter.js.map +2 -2
  51. package/build/cjs/lib/nvm500/shared.d.ts +2 -1
  52. package/build/cjs/lib/nvm500/shared.js.map +2 -2
  53. package/build/esm/convert.d.ts +6 -5
  54. package/build/esm/convert.d.ts.map +1 -1
  55. package/build/esm/convert.js +1 -1
  56. package/build/esm/convert.js.map +1 -1
  57. package/build/esm/lib/NVM3.d.ts +6 -5
  58. package/build/esm/lib/NVM3.d.ts.map +1 -1
  59. package/build/esm/lib/NVM3.js +1 -1
  60. package/build/esm/lib/NVM3.js.map +1 -1
  61. package/build/esm/lib/NVM500.js +1 -1
  62. package/build/esm/lib/NVM500.js.map +1 -1
  63. package/build/esm/lib/common/definitions.d.ts +5 -5
  64. package/build/esm/lib/common/definitions.d.ts.map +1 -1
  65. package/build/esm/lib/common/routeCache.d.ts +2 -2
  66. package/build/esm/lib/common/routeCache.d.ts.map +1 -1
  67. package/build/esm/lib/common/routeCache.js.map +1 -1
  68. package/build/esm/lib/common/sucUpdateEntry.d.ts +2 -2
  69. package/build/esm/lib/common/sucUpdateEntry.d.ts.map +1 -1
  70. package/build/esm/lib/common/sucUpdateEntry.js.map +1 -1
  71. package/build/esm/lib/common/utils.d.ts +3 -2
  72. package/build/esm/lib/common/utils.d.ts.map +1 -1
  73. package/build/esm/lib/common/utils.js.map +1 -1
  74. package/build/esm/lib/io/BufferedNVMReader.d.ts +3 -2
  75. package/build/esm/lib/io/BufferedNVMReader.d.ts.map +1 -1
  76. package/build/esm/lib/io/BufferedNVMReader.js.map +1 -1
  77. package/build/esm/lib/io/NVMFileIO.d.ts +3 -2
  78. package/build/esm/lib/io/NVMFileIO.d.ts.map +1 -1
  79. package/build/esm/lib/io/NVMFileIO.js.map +1 -1
  80. package/build/esm/lib/io/NVMMemoryIO.d.ts +4 -3
  81. package/build/esm/lib/io/NVMMemoryIO.d.ts.map +1 -1
  82. package/build/esm/lib/io/NVMMemoryIO.js.map +1 -1
  83. package/build/esm/lib/nvm3/adapter.d.ts.map +1 -1
  84. package/build/esm/lib/nvm3/adapter.js.map +1 -1
  85. package/build/esm/lib/nvm3/files/ApplicationCCsFile.js +1 -1
  86. package/build/esm/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
  87. package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js +1 -1
  88. package/build/esm/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
  89. package/build/esm/lib/nvm3/files/ApplicationTypeFile.js +1 -1
  90. package/build/esm/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
  91. package/build/esm/lib/nvm3/files/ControllerInfoFile.d.ts +3 -3
  92. package/build/esm/lib/nvm3/files/ControllerInfoFile.d.ts.map +1 -1
  93. package/build/esm/lib/nvm3/files/ControllerInfoFile.js +1 -1
  94. package/build/esm/lib/nvm3/files/ControllerInfoFile.js.map +1 -1
  95. package/build/esm/lib/nvm3/files/NVMFile.d.ts +2 -2
  96. package/build/esm/lib/nvm3/files/NVMFile.d.ts.map +1 -1
  97. package/build/esm/lib/nvm3/files/NVMFile.js.map +1 -1
  98. package/build/esm/lib/nvm3/files/NodeInfoFiles.d.ts.map +1 -1
  99. package/build/esm/lib/nvm3/files/NodeInfoFiles.js +3 -3
  100. package/build/esm/lib/nvm3/files/NodeInfoFiles.js.map +1 -1
  101. package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js +2 -2
  102. package/build/esm/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
  103. package/build/esm/lib/nvm3/files/RouteCacheFiles.js +2 -2
  104. package/build/esm/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
  105. package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js +2 -2
  106. package/build/esm/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
  107. package/build/esm/lib/nvm3/files/VersionFiles.js +1 -1
  108. package/build/esm/lib/nvm3/files/VersionFiles.js.map +1 -1
  109. package/build/esm/lib/nvm3/object.d.ts +3 -2
  110. package/build/esm/lib/nvm3/object.d.ts.map +1 -1
  111. package/build/esm/lib/nvm3/object.js.map +1 -1
  112. package/build/esm/lib/nvm3/page.d.ts +2 -1
  113. package/build/esm/lib/nvm3/page.d.ts.map +1 -1
  114. package/build/esm/lib/nvm3/page.js.map +1 -1
  115. package/build/esm/lib/nvm500/EntryParsers.d.ts +4 -4
  116. package/build/esm/lib/nvm500/EntryParsers.d.ts.map +1 -1
  117. package/build/esm/lib/nvm500/EntryParsers.js.map +1 -1
  118. package/build/esm/lib/nvm500/adapter.d.ts.map +1 -1
  119. package/build/esm/lib/nvm500/adapter.js +7 -2
  120. package/build/esm/lib/nvm500/adapter.js.map +1 -1
  121. package/build/esm/lib/nvm500/shared.d.ts +2 -1
  122. package/build/esm/lib/nvm500/shared.d.ts.map +1 -1
  123. package/build/esm/lib/nvm500/shared.js.map +1 -1
  124. package/package.json +7 -9
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm500/adapter.ts"],
4
- "sourcesContent": ["import {\n\ttype CommandClasses,\n\tZWaveError,\n\tZWaveErrorCodes,\n} from \"@zwave-js/core\";\nimport { Bytes } from \"@zwave-js/shared\";\nimport { assertNever } from \"alcalzone-shared/helpers\";\nimport { SUC_MAX_UPDATES } from \"../../consts.js\";\nimport type { NVM500, NVM500Info } from \"../NVM500.js\";\nimport type {\n\tControllerNVMProperty,\n\tNVMAdapter,\n\tNVMProperty,\n\tNVMPropertyToDataType,\n\tNodeNVMProperty,\n} from \"../common/definitions.js\";\nimport type { Route } from \"../common/routeCache.js\";\nimport type { SUCUpdateEntry } from \"../common/sucUpdateEntry.js\";\nimport type { NodeInfo } from \"../nvm3/files/index.js\";\nimport type { NVM500NodeInfo } from \"./EntryParsers.js\";\nimport {\n\tAPPL_NODEPARM_MAX,\n\ttype NVMData,\n\ttype NVMEntryName,\n\tNVM_SERIALAPI_HOST_SIZE,\n} from \"./shared.js\";\n\nexport class NVM500Adapter implements NVMAdapter {\n\tpublic constructor(nvm: NVM500) {\n\t\tthis._nvm = nvm;\n\t}\n\n\tprivate _nvm: NVM500;\n\n\tpublic async get<T extends NVMProperty, R extends boolean = boolean>(\n\t\tproperty: T,\n\t\trequired?: R,\n\t): Promise<\n\t\tR extends true ? NonNullable<NVMPropertyToDataType<T>>\n\t\t\t: (NVMPropertyToDataType<T> | undefined)\n\t> {\n\t\tconst info = this._nvm.info ?? await this._nvm.init();\n\n\t\tlet ret: unknown;\n\t\tif (property.domain === \"controller\") {\n\t\t\tret = await this.getControllerNVMProperty(info, property);\n\t\t} else if (property.domain === \"lrnode\") {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`500 series NVM has no support for Long Range node information`,\n\t\t\t\tZWaveErrorCodes.NVM_ObjectNotFound,\n\t\t\t);\n\t\t} else {\n\t\t\tret = await this.getNodeNVMProperty(property);\n\t\t}\n\t\tif (required && ret === undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`NVM data for property ${JSON.stringify(property)} not found`,\n\t\t\t\tZWaveErrorCodes.NVM_ObjectNotFound,\n\t\t\t);\n\t\t}\n\t\treturn ret as any;\n\t}\n\n\tprivate async getOnly<T extends NVMData>(\n\t\tproperty: NVMEntryName,\n\t): Promise<T | undefined> {\n\t\tconst data = await this._nvm.get(property);\n\t\treturn data?.[0] as T | undefined;\n\t}\n\n\tprivate async getSingle<T extends NVMData>(\n\t\tproperty: NVMEntryName,\n\t\tindex: number,\n\t): Promise<T | undefined> {\n\t\tconst data = await this._nvm.getSingle(property, index);\n\t\treturn data as T | undefined;\n\t}\n\n\tprivate getAll<T extends NVMData>(\n\t\tproperty: NVMEntryName,\n\t): Promise<T[] | undefined> {\n\t\treturn this._nvm.get(property) as any;\n\t}\n\n\tprivate async getControllerNVMProperty(\n\t\tinfo: NVM500Info,\n\t\tproperty: ControllerNVMProperty,\n\t): Promise<unknown> {\n\t\tswitch (property.type) {\n\t\t\tcase \"protocolVersion\":\n\t\t\t\treturn info.nvmDescriptor.protocolVersion;\n\t\t\tcase \"applicationVersion\":\n\t\t\t\treturn info.nvmDescriptor.firmwareVersion;\n\n\t\t\tcase \"protocolFileFormat\":\n\t\t\tcase \"applicationFileFormat\":\n\t\t\t\t// Not supported in 500 series, but we use 500 in JSON to designate a 500 series NVM\n\t\t\t\treturn 500;\n\n\t\t\tcase \"applicationData\":\n\t\t\t\treturn this.getOnly<Uint8Array>(\n\t\t\t\t\t\"EEOFFSET_HOST_OFFSET_START_far\",\n\t\t\t\t);\n\n\t\t\tcase \"applicationName\":\n\t\t\t\t// Not supported in 500 series\n\t\t\t\treturn;\n\n\t\t\tcase \"homeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst homeId = await this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_HOME_ID_far\",\n\t\t\t\t);\n\t\t\t\tif (homeId == undefined) return;\n\t\t\t\tconst ret = new Bytes(4).fill(0);\n\t\t\t\t// FIXME: BE? LE?\n\t\t\t\tret.writeUInt32BE(homeId, 0);\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\tcase \"learnedHomeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst homeId = await this.getOnly<number>(\"NVM_HOMEID_far\");\n\t\t\t\tif (homeId == undefined) return;\n\t\t\t\tconst ret = new Bytes(4).fill(0);\n\t\t\t\t// FIXME: BE? LE?\n\t\t\t\tret.writeUInt32BE(homeId, 0);\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\tcase \"nodeId\":\n\t\t\t\treturn this.getOnly<number>(\"NVM_NODEID_far\");\n\n\t\t\tcase \"lastNodeId\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_LAST_USED_NODE_ID_START_far\",\n\t\t\t\t);\n\n\t\t\tcase \"staticControllerNodeId\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_STATIC_CONTROLLER_NODE_ID_START_far\",\n\t\t\t\t);\n\t\t\tcase \"sucLastIndex\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_SUC_LAST_INDEX_START_far\",\n\t\t\t\t);\n\t\t\tcase \"controllerConfiguration\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_CONTROLLER_CONFIGURATION_far\",\n\t\t\t\t);\n\n\t\t\tcase \"maxNodeId\":\n\t\t\t\treturn this.getOnly<number>(\"EX_NVM_MAX_NODE_ID_far\");\n\t\t\tcase \"reservedId\":\n\t\t\t\treturn this.getOnly<number>(\"EX_NVM_RESERVED_ID_far\");\n\t\t\tcase \"systemState\":\n\t\t\t\treturn this.getOnly<number>(\"NVM_SYSTEM_STATE\");\n\n\t\t\tcase \"commandClasses\": {\n\t\t\t\tconst numCCs = await this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_LEN_far\",\n\t\t\t\t);\n\t\t\t\tconst ret = await this.getAll<CommandClasses>(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_far\",\n\t\t\t\t);\n\t\t\t\treturn ret?.slice(0, numCCs);\n\t\t\t}\n\n\t\t\tcase \"preferredRepeaters\":\n\t\t\t\treturn this.getOnly<number[]>(\"NVM_PREFERRED_REPEATERS_far\");\n\n\t\t\tcase \"appRouteLock\": {\n\t\t\t\treturn this.getOnly<number[]>(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_APP_LOCK_far\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"routeSlaveSUC\": {\n\t\t\t\treturn this.getOnly<number[]>(\n\t\t\t\t\t\"EX_NVM_SUC_ROUTING_SLAVE_LIST_START_far\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"sucPendingUpdate\": {\n\t\t\t\treturn this.getOnly<number[]>(\"EX_NVM_PENDING_UPDATE_far\");\n\t\t\t}\n\t\t\tcase \"pendingDiscovery\": {\n\t\t\t\treturn this.getOnly<number[]>(\"NVM_PENDING_DISCOVERY_far\");\n\t\t\t}\n\n\t\t\tcase \"nodeIds\": {\n\t\t\t\tconst nodeInfos = await this.getAll<NVM500NodeInfo>(\n\t\t\t\t\t\"EX_NVM_NODE_TABLE_START_far\",\n\t\t\t\t);\n\t\t\t\treturn nodeInfos\n\t\t\t\t\t?.map((info, index) => info ? (index + 1) : undefined)\n\t\t\t\t\t.filter((id) => id != undefined);\n\t\t\t}\n\n\t\t\tcase \"virtualNodeIds\": {\n\t\t\t\tconst ret = await this.getOnly<number[]>(\n\t\t\t\t\t\"EX_NVM_BRIDGE_NODEPOOL_START_far\",\n\t\t\t\t);\n\t\t\t\treturn ret ?? [];\n\t\t\t}\n\n\t\t\tcase \"sucUpdateEntries\": {\n\t\t\t\tconst ret = await this.getAll<SUCUpdateEntry>(\n\t\t\t\t\t\"EX_NVM_SUC_NODE_LIST_START_far\",\n\t\t\t\t);\n\t\t\t\treturn ret?.filter(Boolean);\n\t\t\t}\n\n\t\t\tcase \"watchdogStarted\":\n\t\t\t\treturn this.getOnly<number>(\"EEOFFSET_WATCHDOG_STARTED_far\");\n\n\t\t\tcase \"powerLevelNormal\":\n\t\t\t\treturn this.getAll<number>(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_NORMAL_far\",\n\t\t\t\t);\n\t\t\tcase \"powerLevelLow\":\n\t\t\t\treturn this.getAll<number>(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_LOW_far\",\n\t\t\t\t);\n\t\t\tcase \"powerMode\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_far\",\n\t\t\t\t);\n\t\t\tcase \"powerModeExtintEnable\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_EXTINT_ENABLE_far\",\n\t\t\t\t);\n\t\t\tcase \"powerModeWutTimeout\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_WUT_TIMEOUT_far\",\n\t\t\t\t);\n\n\t\t\tcase \"sucAwarenessPushNeeded\":\n\t\t\tcase \"lastNodeIdLR\":\n\t\t\tcase \"maxNodeIdLR\":\n\t\t\tcase \"reservedIdLR\":\n\t\t\tcase \"primaryLongRangeChannelId\":\n\t\t\tcase \"dcdcConfig\":\n\t\t\tcase \"lrNodeIds\":\n\t\t\tcase \"includedInsecurely\":\n\t\t\tcase \"includedSecurelyInsecureCCs\":\n\t\t\tcase \"includedSecurelySecureCCs\":\n\t\t\tcase \"rfRegion\":\n\t\t\tcase \"txPower\":\n\t\t\tcase \"measured0dBm\":\n\t\t\tcase \"enablePTI\":\n\t\t\tcase \"maxTXPower\":\n\t\t\tcase \"nodeIdType\":\n\t\t\tcase \"isListening\":\n\t\t\tcase \"optionalFunctionality\":\n\t\t\tcase \"genericDeviceClass\":\n\t\t\tcase \"specificDeviceClass\":\n\t\t\t\t// Not supported on 500 series, 700+ series only\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\tassertNever(property.type);\n\t\t}\n\t}\n\n\tprivate async getNodeNVMProperty(\n\t\tproperty: NodeNVMProperty,\n\t): Promise<unknown> {\n\t\tswitch (property.type) {\n\t\t\tcase \"info\": {\n\t\t\t\tconst nodeId = property.nodeId;\n\t\t\t\tconst nodeInfo = await this.getSingle<NVM500NodeInfo>(\n\t\t\t\t\t\"EX_NVM_NODE_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t);\n\t\t\t\tconst sucUpdateIndex = await this.getSingle<number>(\n\t\t\t\t\t\"EX_NVM_SUC_CONTROLLER_LIST_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t) ?? 0xff;\n\t\t\t\tconst neighbors = await this.getSingle<number[]>(\n\t\t\t\t\t\"EX_NVM_ROUTING_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t) ?? [];\n\n\t\t\t\tif (!nodeInfo) return;\n\n\t\t\t\treturn {\n\t\t\t\t\tnodeId,\n\t\t\t\t\t...nodeInfo,\n\t\t\t\t\tneighbors,\n\t\t\t\t\tsucUpdateIndex,\n\t\t\t\t} satisfies NodeInfo;\n\t\t\t}\n\n\t\t\tcase \"routes\": {\n\t\t\t\tconst lwr = await this.getSingle<Route>(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_START_far\",\n\t\t\t\t\tproperty.nodeId - 1,\n\t\t\t\t);\n\t\t\t\tconst nlwr = await this.getSingle<Route>(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_NLWR_SR_START_far\",\n\t\t\t\t\tproperty.nodeId - 1,\n\t\t\t\t);\n\t\t\t\treturn { lwr, nlwr };\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate setOnly(\n\t\tproperty: NVMEntryName,\n\t\tvalue: NVMData,\n\t): Promise<void> {\n\t\treturn this._nvm.set(property, [value]);\n\t}\n\n\tprivate setSingle(\n\t\tproperty: NVMEntryName,\n\t\tindex: number,\n\t\tvalue: NVMData,\n\t): Promise<void> {\n\t\treturn this._nvm.setSingle(property, index, value);\n\t}\n\n\tprivate setAll(\n\t\tproperty: NVMEntryName,\n\t\tvalue: NVMData[],\n\t): Promise<void> {\n\t\treturn this._nvm.set(property, value);\n\t}\n\n\tset<T extends NVMProperty>(\n\t\tproperty: T,\n\t\tvalue: NVMPropertyToDataType<T>,\n\t): Promise<void> {\n\t\tif (property.domain === \"controller\") {\n\t\t\treturn this.setControllerNVMProperty(property, value);\n\t\t} else if (property.domain === \"lrnode\") {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`500 series NVM has no support for Long Range node information`,\n\t\t\t\tZWaveErrorCodes.NVM_ObjectNotFound,\n\t\t\t);\n\t\t} else {\n\t\t\treturn this.setNodeNVMProperty(property, value);\n\t\t}\n\t}\n\n\tprivate async setControllerNVMProperty(\n\t\tproperty: ControllerNVMProperty,\n\t\tvalue: any,\n\t): Promise<void> {\n\t\tswitch (property.type) {\n\t\t\tcase \"protocolVersion\":\n\t\t\tcase \"applicationVersion\":\n\t\t\t\t// Only written during erase\n\t\t\t\treturn;\n\n\t\t\tcase \"protocolFileFormat\":\n\t\t\tcase \"applicationFileFormat\":\n\t\t\t\t// Cannot be written\n\t\t\t\treturn;\n\n\t\t\tcase \"applicationData\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_HOST_OFFSET_START_far\",\n\t\t\t\t\tvalue ?? new Bytes(NVM_SERIALAPI_HOST_SIZE).fill(0xff),\n\t\t\t\t);\n\n\t\t\tcase \"applicationName\":\n\t\t\t\t// Not supported in 500 series\n\t\t\t\treturn;\n\n\t\t\tcase \"homeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst homeId = value.readUInt32BE(0);\n\t\t\t\treturn this.setOnly(\"EX_NVM_HOME_ID_far\", homeId);\n\t\t\t}\n\n\t\t\tcase \"learnedHomeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst learnedHomeId = value?.readUInt32BE(0) ?? 0x00000000;\n\t\t\t\treturn this.setOnly(\"NVM_HOMEID_far\", learnedHomeId);\n\t\t\t}\n\n\t\t\tcase \"nodeId\":\n\t\t\t\treturn this.setOnly(\"NVM_NODEID_far\", value);\n\n\t\t\tcase \"lastNodeId\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_LAST_USED_NODE_ID_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\n\t\t\tcase \"staticControllerNodeId\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_STATIC_CONTROLLER_NODE_ID_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"sucLastIndex\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_SUC_LAST_INDEX_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"controllerConfiguration\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_CONTROLLER_CONFIGURATION_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\n\t\t\tcase \"maxNodeId\":\n\t\t\t\treturn this.setOnly(\"EX_NVM_MAX_NODE_ID_far\", value);\n\t\t\tcase \"reservedId\":\n\t\t\t\treturn this.setOnly(\"EX_NVM_RESERVED_ID_far\", value);\n\t\t\tcase \"systemState\":\n\t\t\t\treturn this.setOnly(\"NVM_SYSTEM_STATE\", value);\n\n\t\t\tcase \"commandClasses\": {\n\t\t\t\tawait this.setOnly(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_LEN_far\",\n\t\t\t\t\tvalue.length,\n\t\t\t\t);\n\t\t\t\tconst CCs = new Array(APPL_NODEPARM_MAX).fill(0xff);\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tif (i < APPL_NODEPARM_MAX) {\n\t\t\t\t\t\tCCs[i] = value[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait this.setAll(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_far\",\n\t\t\t\t\tCCs,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcase \"preferredRepeaters\":\n\t\t\t\treturn this.setOnly(\"NVM_PREFERRED_REPEATERS_far\", value);\n\n\t\t\tcase \"appRouteLock\": {\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_APP_LOCK_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"routeSlaveSUC\": {\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_SUC_ROUTING_SLAVE_LIST_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"sucPendingUpdate\": {\n\t\t\t\treturn this.setOnly(\"EX_NVM_PENDING_UPDATE_far\", value);\n\t\t\t}\n\t\t\tcase \"pendingDiscovery\": {\n\t\t\t\treturn this.setOnly(\"NVM_PENDING_DISCOVERY_far\", value);\n\t\t\t}\n\n\t\t\tcase \"nodeIds\":\n\t\t\t\t// Cannot be written. Is implied by the node info table\n\t\t\t\treturn;\n\n\t\t\tcase \"virtualNodeIds\": {\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_BRIDGE_NODEPOOL_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcase \"sucUpdateEntries\": {\n\t\t\t\tconst entries = value as SUCUpdateEntry[];\n\t\t\t\tconst sucUpdateEntries = new Array(SUC_MAX_UPDATES).fill(\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t\tfor (let i = 0; i < entries.length; i++) {\n\t\t\t\t\tif (i < SUC_MAX_UPDATES) {\n\t\t\t\t\t\tsucUpdateEntries[i] = entries[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.setAll(\n\t\t\t\t\t\"EX_NVM_SUC_NODE_LIST_START_far\",\n\t\t\t\t\tsucUpdateEntries,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcase \"watchdogStarted\":\n\t\t\t\treturn this.setOnly(\"EEOFFSET_WATCHDOG_STARTED_far\", value);\n\n\t\t\tcase \"powerLevelNormal\":\n\t\t\t\treturn this.setAll(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_NORMAL_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerLevelLow\":\n\t\t\t\treturn this.setAll(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_LOW_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerMode\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerModeExtintEnable\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_EXTINT_ENABLE_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerModeWutTimeout\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_WUT_TIMEOUT_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\n\t\t\tcase \"sucAwarenessPushNeeded\":\n\t\t\tcase \"lastNodeIdLR\":\n\t\t\tcase \"maxNodeIdLR\":\n\t\t\tcase \"reservedIdLR\":\n\t\t\tcase \"primaryLongRangeChannelId\":\n\t\t\tcase \"dcdcConfig\":\n\t\t\tcase \"lrNodeIds\":\n\t\t\tcase \"includedInsecurely\":\n\t\t\tcase \"includedSecurelyInsecureCCs\":\n\t\t\tcase \"includedSecurelySecureCCs\":\n\t\t\tcase \"rfRegion\":\n\t\t\tcase \"txPower\":\n\t\t\tcase \"measured0dBm\":\n\t\t\tcase \"enablePTI\":\n\t\t\tcase \"maxTXPower\":\n\t\t\tcase \"nodeIdType\":\n\t\t\tcase \"isListening\":\n\t\t\tcase \"optionalFunctionality\":\n\t\t\tcase \"genericDeviceClass\":\n\t\t\tcase \"specificDeviceClass\":\n\t\t\t\t// Not supported on 500 series, 700+ series only\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\tassertNever(property.type);\n\t\t}\n\t}\n\n\tprivate async setNodeNVMProperty(\n\t\tproperty: NodeNVMProperty,\n\t\tvalue: any,\n\t): Promise<void> {\n\t\tswitch (property.type) {\n\t\t\tcase \"info\": {\n\t\t\t\tconst nodeId = property.nodeId;\n\t\t\t\tconst node = value as NodeInfo;\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_NODE_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\tnode\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\tisListening: node.isListening,\n\t\t\t\t\t\t\tisFrequentListening: node.isFrequentListening,\n\t\t\t\t\t\t\tisRouting: node.isRouting,\n\t\t\t\t\t\t\tsupportedDataRates: node.supportedDataRates,\n\t\t\t\t\t\t\tprotocolVersion: node.protocolVersion,\n\t\t\t\t\t\t\toptionalFunctionality: node.optionalFunctionality,\n\t\t\t\t\t\t\tnodeType: node.nodeType,\n\t\t\t\t\t\t\tsupportsSecurity: node.supportsSecurity,\n\t\t\t\t\t\t\tsupportsBeaming: node.supportsBeaming,\n\t\t\t\t\t\t\tgenericDeviceClass: node.genericDeviceClass,\n\t\t\t\t\t\t\tspecificDeviceClass: node.specificDeviceClass\n\t\t\t\t\t\t\t\t?? null,\n\t\t\t\t\t\t} satisfies NVM500NodeInfo\n\t\t\t\t\t\t: undefined,\n\t\t\t\t);\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_SUC_CONTROLLER_LIST_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\tnode?.sucUpdateIndex ?? 0xfe,\n\t\t\t\t);\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_ROUTING_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\tnode?.neighbors,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcase \"routes\": {\n\t\t\t\tconst nodeId = property.nodeId;\n\t\t\t\tconst routes = value as { lwr?: Route; nlwr?: Route };\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\troutes.lwr,\n\t\t\t\t);\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_NLWR_SR_START_far\",\n\t\t\t\t\tproperty.nodeId - 1,\n\t\t\t\t\troutes.nlwr,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async delete(_property: NVMProperty): Promise<void> {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\tpublic hasPendingChanges(): boolean {\n\t\t// We don't buffer changes\n\t\treturn false;\n\t}\n\n\tpublic async commit(): Promise<void> {\n\t\t// We don't buffer changes at the moment\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAAA,kBAIO;AACP,oBAAsB;AACtB,qBAA4B;AAC5B,oBAAgC;AAahC,IAAAA,iBAKO;AAED,MAAO,cAAa;EA3B1B,OA2B0B;;;EACzB,YAAmB,KAAW;AAC7B,SAAK,OAAO;EACb;EAEQ;EAED,MAAM,IACZ,UACA,UAAY;AAKZ,UAAM,OAAO,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAI;AAEnD,QAAI;AACJ,QAAI,SAAS,WAAW,cAAc;AACrC,YAAM,MAAM,KAAK,yBAAyB,MAAM,QAAQ;IACzD,WAAW,SAAS,WAAW,UAAU;AACxC,YAAM,IAAI,uBACT,iEACA,4BAAgB,kBAAkB;IAEpC,OAAO;AACN,YAAM,MAAM,KAAK,mBAAmB,QAAQ;IAC7C;AACA,QAAI,YAAY,QAAQ,QAAW;AAClC,YAAM,IAAI,uBACT,yBAAyB,KAAK,UAAU,QAAQ,CAAC,cACjD,4BAAgB,kBAAkB;IAEpC;AACA,WAAO;EACR;EAEQ,MAAM,QACb,UAAsB;AAEtB,UAAM,OAAO,MAAM,KAAK,KAAK,IAAI,QAAQ;AACzC,WAAO,OAAO,CAAC;EAChB;EAEQ,MAAM,UACb,UACA,OAAa;AAEb,UAAM,OAAO,MAAM,KAAK,KAAK,UAAU,UAAU,KAAK;AACtD,WAAO;EACR;EAEQ,OACP,UAAsB;AAEtB,WAAO,KAAK,KAAK,IAAI,QAAQ;EAC9B;EAEQ,MAAM,yBACb,MACA,UAA+B;AAE/B,YAAQ,SAAS,MAAM;MACtB,KAAK;AACJ,eAAO,KAAK,cAAc;MAC3B,KAAK;AACJ,eAAO,KAAK,cAAc;MAE3B,KAAK;MACL,KAAK;AAEJ,eAAO;MAER,KAAK;AACJ,eAAO,KAAK,QACX,gCAAgC;MAGlC,KAAK;AAEJ;MAED,KAAK,UAAU;AAEd,cAAM,SAAS,MAAM,KAAK,QACzB,oBAAoB;AAErB,YAAI,UAAU;AAAW;AACzB,cAAM,MAAM,IAAI,oBAAM,CAAC,EAAE,KAAK,CAAC;AAE/B,YAAI,cAAc,QAAQ,CAAC;AAC3B,eAAO;MACR;MAEA,KAAK,iBAAiB;AAErB,cAAM,SAAS,MAAM,KAAK,QAAgB,gBAAgB;AAC1D,YAAI,UAAU;AAAW;AACzB,cAAM,MAAM,IAAI,oBAAM,CAAC,EAAE,KAAK,CAAC;AAE/B,YAAI,cAAc,QAAQ,CAAC;AAC3B,eAAO;MACR;MAEA,KAAK;AACJ,eAAO,KAAK,QAAgB,gBAAgB;MAE7C,KAAK;AACJ,eAAO,KAAK,QACX,oCAAoC;MAGtC,KAAK;AACJ,eAAO,KAAK,QACX,4CAA4C;MAE9C,KAAK;AACJ,eAAO,KAAK,QACX,iCAAiC;MAEnC,KAAK;AACJ,eAAO,KAAK,QACX,qCAAqC;MAGvC,KAAK;AACJ,eAAO,KAAK,QAAgB,wBAAwB;MACrD,KAAK;AACJ,eAAO,KAAK,QAAgB,wBAAwB;MACrD,KAAK;AACJ,eAAO,KAAK,QAAgB,kBAAkB;MAE/C,KAAK,kBAAkB;AACtB,cAAM,SAAS,MAAM,KAAK,QACzB,2BAA2B;AAE5B,cAAM,MAAM,MAAM,KAAK,OACtB,uBAAuB;AAExB,eAAO,KAAK,MAAM,GAAG,MAAM;MAC5B;MAEA,KAAK;AACJ,eAAO,KAAK,QAAkB,6BAA6B;MAE5D,KAAK,gBAAgB;AACpB,eAAO,KAAK,QACX,gCAAgC;MAElC;MACA,KAAK,iBAAiB;AACrB,eAAO,KAAK,QACX,yCAAyC;MAE3C;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAkB,2BAA2B;MAC1D;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAkB,2BAA2B;MAC1D;MAEA,KAAK,WAAW;AACf,cAAM,YAAY,MAAM,KAAK,OAC5B,6BAA6B;AAE9B,eAAO,WACJ,IAAI,CAACC,OAAM,UAAUA,QAAQ,QAAQ,IAAK,MAAS,EACpD,OAAO,CAAC,OAAO,MAAM,MAAS;MACjC;MAEA,KAAK,kBAAkB;AACtB,cAAM,MAAM,MAAM,KAAK,QACtB,kCAAkC;AAEnC,eAAO,OAAO,CAAA;MACf;MAEA,KAAK,oBAAoB;AACxB,cAAM,MAAM,MAAM,KAAK,OACtB,gCAAgC;AAEjC,eAAO,KAAK,OAAO,OAAO;MAC3B;MAEA,KAAK;AACJ,eAAO,KAAK,QAAgB,+BAA+B;MAE5D,KAAK;AACJ,eAAO,KAAK,OACX,gCAAgC;MAElC,KAAK;AACJ,eAAO,KAAK,OACX,6BAA6B;MAE/B,KAAK;AACJ,eAAO,KAAK,QACX,gCAAgC;MAElC,KAAK;AACJ,eAAO,KAAK,QACX,8CAA8C;MAEhD,KAAK;AACJ,eAAO,KAAK,QACX,4CAA4C;MAG9C,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;AAEJ;MAED;AACC,wCAAY,SAAS,IAAI;IAC3B;EACD;EAEQ,MAAM,mBACb,UAAyB;AAEzB,YAAQ,SAAS,MAAM;MACtB,KAAK,QAAQ;AACZ,cAAM,SAAS,SAAS;AACxB,cAAM,WAAW,MAAM,KAAK,UAC3B,+BACA,SAAS,CAAC;AAEX,cAAM,iBAAiB,MAAM,KAAK,UACjC,wCACA,SAAS,CAAC,KACN;AACL,cAAM,YAAY,MAAM,KAAK,UAC5B,kCACA,SAAS,CAAC,KACN,CAAA;AAEL,YAAI,CAAC;AAAU;AAEf,eAAO;UACN;UACA,GAAG;UACH;UACA;;MAEF;MAEA,KAAK,UAAU;AACd,cAAM,MAAM,MAAM,KAAK,UACtB,+BACA,SAAS,SAAS,CAAC;AAEpB,cAAM,OAAO,MAAM,KAAK,UACvB,uCACA,SAAS,SAAS,CAAC;AAEpB,eAAO,EAAE,KAAK,KAAI;MACnB;IACD;EACD;EAEQ,QACP,UACA,OAAc;AAEd,WAAO,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;EACvC;EAEQ,UACP,UACA,OACA,OAAc;AAEd,WAAO,KAAK,KAAK,UAAU,UAAU,OAAO,KAAK;EAClD;EAEQ,OACP,UACA,OAAgB;AAEhB,WAAO,KAAK,KAAK,IAAI,UAAU,KAAK;EACrC;EAEA,IACC,UACA,OAA+B;AAE/B,QAAI,SAAS,WAAW,cAAc;AACrC,aAAO,KAAK,yBAAyB,UAAU,KAAK;IACrD,WAAW,SAAS,WAAW,UAAU;AACxC,YAAM,IAAI,uBACT,iEACA,4BAAgB,kBAAkB;IAEpC,OAAO;AACN,aAAO,KAAK,mBAAmB,UAAU,KAAK;IAC/C;EACD;EAEQ,MAAM,yBACb,UACA,OAAU;AAEV,YAAQ,SAAS,MAAM;MACtB,KAAK;MACL,KAAK;AAEJ;MAED,KAAK;MACL,KAAK;AAEJ;MAED,KAAK;AACJ,eAAO,KAAK,QACX,kCACA,SAAS,IAAI,oBAAM,sCAAuB,EAAE,KAAK,GAAI,CAAC;MAGxD,KAAK;AAEJ;MAED,KAAK,UAAU;AAEd,cAAM,SAAS,MAAM,aAAa,CAAC;AACnC,eAAO,KAAK,QAAQ,sBAAsB,MAAM;MACjD;MAEA,KAAK,iBAAiB;AAErB,cAAM,gBAAgB,OAAO,aAAa,CAAC,KAAK;AAChD,eAAO,KAAK,QAAQ,kBAAkB,aAAa;MACpD;MAEA,KAAK;AACJ,eAAO,KAAK,QAAQ,kBAAkB,KAAK;MAE5C,KAAK;AACJ,eAAO,KAAK,QACX,sCACA,KAAK;MAGP,KAAK;AACJ,eAAO,KAAK,QACX,8CACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,mCACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,uCACA,KAAK;MAGP,KAAK;AACJ,eAAO,KAAK,QAAQ,0BAA0B,KAAK;MACpD,KAAK;AACJ,eAAO,KAAK,QAAQ,0BAA0B,KAAK;MACpD,KAAK;AACJ,eAAO,KAAK,QAAQ,oBAAoB,KAAK;MAE9C,KAAK,kBAAkB;AACtB,cAAM,KAAK,QACV,6BACA,MAAM,MAAM;AAEb,cAAM,MAAM,IAAI,MAAM,gCAAiB,EAAE,KAAK,GAAI;AAClD,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,cAAI,IAAI,kCAAmB;AAC1B,gBAAI,CAAC,IAAI,MAAM,CAAC;UACjB;QACD;AACA,cAAM,KAAK,OACV,yBACA,GAAG;AAEJ;MACD;MAEA,KAAK;AACJ,eAAO,KAAK,QAAQ,+BAA+B,KAAK;MAEzD,KAAK,gBAAgB;AACpB,eAAO,KAAK,QACX,kCACA,KAAK;MAEP;MACA,KAAK,iBAAiB;AACrB,eAAO,KAAK,QACX,2CACA,KAAK;MAEP;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAQ,6BAA6B,KAAK;MACvD;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAQ,6BAA6B,KAAK;MACvD;MAEA,KAAK;AAEJ;MAED,KAAK,kBAAkB;AACtB,eAAO,KAAK,QACX,oCACA,KAAK;MAEP;MAEA,KAAK,oBAAoB;AACxB,cAAM,UAAU;AAChB,cAAM,mBAAmB,IAAI,MAAM,6BAAe,EAAE,KACnD,MAAS;AAEV,iBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,cAAI,IAAI,+BAAiB;AACxB,6BAAiB,CAAC,IAAI,QAAQ,CAAC;UAChC;QACD;AACA,eAAO,KAAK,OACX,kCACA,gBAAgB;MAElB;MAEA,KAAK;AACJ,eAAO,KAAK,QAAQ,iCAAiC,KAAK;MAE3D,KAAK;AACJ,eAAO,KAAK,OACX,kCACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,OACX,+BACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,kCACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,gDACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,8CACA,KAAK;MAGP,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;AAEJ;MAED;AACC,wCAAY,SAAS,IAAI;IAC3B;EACD;EAEQ,MAAM,mBACb,UACA,OAAU;AAEV,YAAQ,SAAS,MAAM;MACtB,KAAK,QAAQ;AACZ,cAAM,SAAS,SAAS;AACxB,cAAM,OAAO;AACb,cAAM,KAAK,UACV,+BACA,SAAS,GACT,OACG;UACD,aAAa,KAAK;UAClB,qBAAqB,KAAK;UAC1B,WAAW,KAAK;UAChB,oBAAoB,KAAK;UACzB,iBAAiB,KAAK;UACtB,uBAAuB,KAAK;UAC5B,UAAU,KAAK;UACf,kBAAkB,KAAK;UACvB,iBAAiB,KAAK;UACtB,oBAAoB,KAAK;UACzB,qBAAqB,KAAK,uBACtB;YAEH,MAAS;AAEb,cAAM,KAAK,UACV,wCACA,SAAS,GACT,MAAM,kBAAkB,GAAI;AAE7B,cAAM,KAAK,UACV,kCACA,SAAS,GACT,MAAM,SAAS;MAEjB;MAEA,KAAK,UAAU;AACd,cAAM,SAAS,SAAS;AACxB,cAAM,SAAS;AACf,cAAM,KAAK,UACV,+BACA,SAAS,GACT,OAAO,GAAG;AAEX,cAAM,KAAK,UACV,uCACA,SAAS,SAAS,GAClB,OAAO,IAAI;MAEb;IACD;EACD;;EAGO,MAAM,OAAO,WAAsB;AACzC,UAAM,IAAI,MAAM,yBAAyB;EAC1C;EAEO,oBAAiB;AAEvB,WAAO;EACR;EAEO,MAAM,SAAM;EAEnB;;",
4
+ "sourcesContent": ["import {\n\ttype CommandClasses,\n\tZWaveError,\n\tZWaveErrorCodes,\n} from \"@zwave-js/core\";\nimport { Bytes, type BytesView } from \"@zwave-js/shared\";\nimport { assertNever } from \"alcalzone-shared/helpers\";\nimport { SUC_MAX_UPDATES } from \"../../consts.js\";\nimport type { NVM500, NVM500Info } from \"../NVM500.js\";\nimport type {\n\tControllerNVMProperty,\n\tNVMAdapter,\n\tNVMProperty,\n\tNVMPropertyToDataType,\n\tNodeNVMProperty,\n} from \"../common/definitions.js\";\nimport type { Route } from \"../common/routeCache.js\";\nimport type { SUCUpdateEntry } from \"../common/sucUpdateEntry.js\";\nimport type { NodeInfo } from \"../nvm3/files/index.js\";\nimport type { NVM500NodeInfo } from \"./EntryParsers.js\";\nimport {\n\tAPPL_NODEPARM_MAX,\n\ttype NVMData,\n\ttype NVMEntryName,\n\tNVM_SERIALAPI_HOST_SIZE,\n} from \"./shared.js\";\n\nexport class NVM500Adapter implements NVMAdapter {\n\tpublic constructor(nvm: NVM500) {\n\t\tthis._nvm = nvm;\n\t}\n\n\tprivate _nvm: NVM500;\n\n\tpublic async get<T extends NVMProperty, R extends boolean = boolean>(\n\t\tproperty: T,\n\t\trequired?: R,\n\t): Promise<\n\t\tR extends true ? NonNullable<NVMPropertyToDataType<T>>\n\t\t\t: (NVMPropertyToDataType<T> | undefined)\n\t> {\n\t\tconst info = this._nvm.info ?? await this._nvm.init();\n\n\t\tlet ret: unknown;\n\t\tif (property.domain === \"controller\") {\n\t\t\tret = await this.getControllerNVMProperty(info, property);\n\t\t} else if (property.domain === \"lrnode\") {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`500 series NVM has no support for Long Range node information`,\n\t\t\t\tZWaveErrorCodes.NVM_ObjectNotFound,\n\t\t\t);\n\t\t} else {\n\t\t\tret = await this.getNodeNVMProperty(property);\n\t\t}\n\t\tif (required && ret === undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`NVM data for property ${JSON.stringify(property)} not found`,\n\t\t\t\tZWaveErrorCodes.NVM_ObjectNotFound,\n\t\t\t);\n\t\t}\n\t\treturn ret as any;\n\t}\n\n\tprivate async getOnly<T extends NVMData>(\n\t\tproperty: NVMEntryName,\n\t): Promise<T | undefined> {\n\t\tconst data = await this._nvm.get(property);\n\t\treturn data?.[0] as T | undefined;\n\t}\n\n\tprivate async getSingle<T extends NVMData>(\n\t\tproperty: NVMEntryName,\n\t\tindex: number,\n\t): Promise<T | undefined> {\n\t\tconst data = await this._nvm.getSingle(property, index);\n\t\treturn data as T | undefined;\n\t}\n\n\tprivate getAll<T extends NVMData>(\n\t\tproperty: NVMEntryName,\n\t): Promise<T[] | undefined> {\n\t\treturn this._nvm.get(property) as any;\n\t}\n\n\tprivate async getControllerNVMProperty(\n\t\tinfo: NVM500Info,\n\t\tproperty: ControllerNVMProperty,\n\t): Promise<unknown> {\n\t\tswitch (property.type) {\n\t\t\tcase \"protocolVersion\":\n\t\t\t\treturn info.nvmDescriptor.protocolVersion;\n\t\t\tcase \"applicationVersion\":\n\t\t\t\treturn info.nvmDescriptor.firmwareVersion;\n\n\t\t\tcase \"protocolFileFormat\":\n\t\t\tcase \"applicationFileFormat\":\n\t\t\t\t// Not supported in 500 series, but we use 500 in JSON to designate a 500 series NVM\n\t\t\t\treturn 500;\n\n\t\t\tcase \"applicationData\":\n\t\t\t\treturn this.getOnly<BytesView>(\n\t\t\t\t\t\"EEOFFSET_HOST_OFFSET_START_far\",\n\t\t\t\t);\n\n\t\t\tcase \"applicationName\":\n\t\t\t\t// Not supported in 500 series\n\t\t\t\treturn;\n\n\t\t\tcase \"homeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst homeId = await this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_HOME_ID_far\",\n\t\t\t\t);\n\t\t\t\tif (homeId == undefined) return;\n\t\t\t\tconst ret = new Bytes(4).fill(0);\n\t\t\t\t// FIXME: BE? LE?\n\t\t\t\tret.writeUInt32BE(homeId, 0);\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\tcase \"learnedHomeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst homeId = await this.getOnly<number>(\"NVM_HOMEID_far\");\n\t\t\t\tif (homeId == undefined) return;\n\t\t\t\tconst ret = new Bytes(4).fill(0);\n\t\t\t\t// FIXME: BE? LE?\n\t\t\t\tret.writeUInt32BE(homeId, 0);\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\tcase \"nodeId\":\n\t\t\t\treturn this.getOnly<number>(\"NVM_NODEID_far\");\n\n\t\t\tcase \"lastNodeId\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_LAST_USED_NODE_ID_START_far\",\n\t\t\t\t);\n\n\t\t\tcase \"staticControllerNodeId\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_STATIC_CONTROLLER_NODE_ID_START_far\",\n\t\t\t\t);\n\t\t\tcase \"sucLastIndex\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_SUC_LAST_INDEX_START_far\",\n\t\t\t\t);\n\t\t\tcase \"controllerConfiguration\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EX_NVM_CONTROLLER_CONFIGURATION_far\",\n\t\t\t\t);\n\n\t\t\tcase \"maxNodeId\":\n\t\t\t\treturn this.getOnly<number>(\"EX_NVM_MAX_NODE_ID_far\");\n\t\t\tcase \"reservedId\":\n\t\t\t\treturn this.getOnly<number>(\"EX_NVM_RESERVED_ID_far\");\n\t\t\tcase \"systemState\":\n\t\t\t\treturn this.getOnly<number>(\"NVM_SYSTEM_STATE\");\n\n\t\t\tcase \"commandClasses\": {\n\t\t\t\tconst numCCs = await this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_LEN_far\",\n\t\t\t\t);\n\t\t\t\tconst ret = await this.getAll<CommandClasses>(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_far\",\n\t\t\t\t);\n\t\t\t\treturn ret?.slice(0, numCCs);\n\t\t\t}\n\n\t\t\tcase \"preferredRepeaters\":\n\t\t\t\treturn this.getOnly<number[]>(\"NVM_PREFERRED_REPEATERS_far\");\n\n\t\t\tcase \"appRouteLock\": {\n\t\t\t\treturn this.getOnly<number[]>(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_APP_LOCK_far\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"routeSlaveSUC\": {\n\t\t\t\treturn this.getOnly<number[]>(\n\t\t\t\t\t\"EX_NVM_SUC_ROUTING_SLAVE_LIST_START_far\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"sucPendingUpdate\": {\n\t\t\t\treturn this.getOnly<number[]>(\"EX_NVM_PENDING_UPDATE_far\");\n\t\t\t}\n\t\t\tcase \"pendingDiscovery\": {\n\t\t\t\treturn this.getOnly<number[]>(\"NVM_PENDING_DISCOVERY_far\");\n\t\t\t}\n\n\t\t\tcase \"nodeIds\": {\n\t\t\t\tconst nodeInfos = await this.getAll<NVM500NodeInfo>(\n\t\t\t\t\t\"EX_NVM_NODE_TABLE_START_far\",\n\t\t\t\t);\n\t\t\t\treturn nodeInfos\n\t\t\t\t\t?.map((info, index) => info ? (index + 1) : undefined)\n\t\t\t\t\t.filter((id) => id != undefined);\n\t\t\t}\n\n\t\t\tcase \"virtualNodeIds\": {\n\t\t\t\tconst ret = await this.getOnly<number[]>(\n\t\t\t\t\t\"EX_NVM_BRIDGE_NODEPOOL_START_far\",\n\t\t\t\t);\n\t\t\t\treturn ret ?? [];\n\t\t\t}\n\n\t\t\tcase \"sucUpdateEntries\": {\n\t\t\t\tconst ret = await this.getAll<SUCUpdateEntry>(\n\t\t\t\t\t\"EX_NVM_SUC_NODE_LIST_START_far\",\n\t\t\t\t);\n\t\t\t\treturn ret?.filter(Boolean);\n\t\t\t}\n\n\t\t\tcase \"watchdogStarted\":\n\t\t\t\treturn this.getOnly<number>(\"EEOFFSET_WATCHDOG_STARTED_far\");\n\n\t\t\tcase \"powerLevelNormal\":\n\t\t\t\treturn this.getAll<number>(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_NORMAL_far\",\n\t\t\t\t);\n\t\t\tcase \"powerLevelLow\":\n\t\t\t\treturn this.getAll<number>(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_LOW_far\",\n\t\t\t\t);\n\t\t\tcase \"powerMode\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_far\",\n\t\t\t\t);\n\t\t\tcase \"powerModeExtintEnable\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_EXTINT_ENABLE_far\",\n\t\t\t\t);\n\t\t\tcase \"powerModeWutTimeout\":\n\t\t\t\treturn this.getOnly<number>(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_WUT_TIMEOUT_far\",\n\t\t\t\t);\n\n\t\t\tcase \"sucAwarenessPushNeeded\":\n\t\t\tcase \"lastNodeIdLR\":\n\t\t\tcase \"maxNodeIdLR\":\n\t\t\tcase \"reservedIdLR\":\n\t\t\tcase \"primaryLongRangeChannelId\":\n\t\t\tcase \"dcdcConfig\":\n\t\t\tcase \"lrNodeIds\":\n\t\t\tcase \"includedInsecurely\":\n\t\t\tcase \"includedSecurelyInsecureCCs\":\n\t\t\tcase \"includedSecurelySecureCCs\":\n\t\t\tcase \"rfRegion\":\n\t\t\tcase \"txPower\":\n\t\t\tcase \"measured0dBm\":\n\t\t\tcase \"enablePTI\":\n\t\t\tcase \"maxTXPower\":\n\t\t\tcase \"nodeIdType\":\n\t\t\tcase \"isListening\":\n\t\t\tcase \"optionalFunctionality\":\n\t\t\tcase \"genericDeviceClass\":\n\t\t\tcase \"specificDeviceClass\":\n\t\t\t\t// Not supported on 500 series, 700+ series only\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\tassertNever(property.type);\n\t\t}\n\t}\n\n\tprivate async getNodeNVMProperty(\n\t\tproperty: NodeNVMProperty,\n\t): Promise<unknown> {\n\t\tswitch (property.type) {\n\t\t\tcase \"info\": {\n\t\t\t\tconst nodeId = property.nodeId;\n\t\t\t\tconst nodeInfo = await this.getSingle<NVM500NodeInfo>(\n\t\t\t\t\t\"EX_NVM_NODE_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t);\n\t\t\t\tconst sucUpdateIndex = await this.getSingle<number>(\n\t\t\t\t\t\"EX_NVM_SUC_CONTROLLER_LIST_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t) ?? 0xff;\n\t\t\t\tconst neighbors = await this.getSingle<number[]>(\n\t\t\t\t\t\"EX_NVM_ROUTING_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t) ?? [];\n\n\t\t\t\tif (!nodeInfo) return;\n\n\t\t\t\treturn {\n\t\t\t\t\tnodeId,\n\t\t\t\t\t...nodeInfo,\n\t\t\t\t\tneighbors,\n\t\t\t\t\tsucUpdateIndex,\n\t\t\t\t} satisfies NodeInfo;\n\t\t\t}\n\n\t\t\tcase \"routes\": {\n\t\t\t\tconst lwr = await this.getSingle<Route>(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_START_far\",\n\t\t\t\t\tproperty.nodeId - 1,\n\t\t\t\t);\n\t\t\t\tconst nlwr = await this.getSingle<Route>(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_NLWR_SR_START_far\",\n\t\t\t\t\tproperty.nodeId - 1,\n\t\t\t\t);\n\t\t\t\treturn { lwr, nlwr };\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate setOnly(\n\t\tproperty: NVMEntryName,\n\t\tvalue: NVMData,\n\t): Promise<void> {\n\t\treturn this._nvm.set(property, [value]);\n\t}\n\n\tprivate setSingle(\n\t\tproperty: NVMEntryName,\n\t\tindex: number,\n\t\tvalue: NVMData,\n\t): Promise<void> {\n\t\treturn this._nvm.setSingle(property, index, value);\n\t}\n\n\tprivate setAll(\n\t\tproperty: NVMEntryName,\n\t\tvalue: NVMData[],\n\t): Promise<void> {\n\t\treturn this._nvm.set(property, value);\n\t}\n\n\tset<T extends NVMProperty>(\n\t\tproperty: T,\n\t\tvalue: NVMPropertyToDataType<T>,\n\t): Promise<void> {\n\t\tif (property.domain === \"controller\") {\n\t\t\treturn this.setControllerNVMProperty(property, value);\n\t\t} else if (property.domain === \"lrnode\") {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`500 series NVM has no support for Long Range node information`,\n\t\t\t\tZWaveErrorCodes.NVM_ObjectNotFound,\n\t\t\t);\n\t\t} else {\n\t\t\treturn this.setNodeNVMProperty(property, value);\n\t\t}\n\t}\n\n\tprivate async setControllerNVMProperty(\n\t\tproperty: ControllerNVMProperty,\n\t\tvalue: any,\n\t): Promise<void> {\n\t\tswitch (property.type) {\n\t\t\tcase \"protocolVersion\":\n\t\t\tcase \"applicationVersion\":\n\t\t\t\t// Only written during erase\n\t\t\t\treturn;\n\n\t\t\tcase \"protocolFileFormat\":\n\t\t\tcase \"applicationFileFormat\":\n\t\t\t\t// Cannot be written\n\t\t\t\treturn;\n\n\t\t\tcase \"applicationData\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_HOST_OFFSET_START_far\",\n\t\t\t\t\tvalue ?? new Bytes(NVM_SERIALAPI_HOST_SIZE).fill(0xff),\n\t\t\t\t);\n\n\t\t\tcase \"applicationName\":\n\t\t\t\t// Not supported in 500 series\n\t\t\t\treturn;\n\n\t\t\tcase \"homeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst homeId = value.readUInt32BE(0);\n\t\t\t\treturn this.setOnly(\"EX_NVM_HOME_ID_far\", homeId);\n\t\t\t}\n\n\t\t\tcase \"learnedHomeId\": {\n\t\t\t\t// 500 series stores the home ID as a number\n\t\t\t\tconst learnedHomeId = value?.readUInt32BE(0) ?? 0x00000000;\n\t\t\t\treturn this.setOnly(\"NVM_HOMEID_far\", learnedHomeId);\n\t\t\t}\n\n\t\t\tcase \"nodeId\":\n\t\t\t\treturn this.setOnly(\"NVM_NODEID_far\", value);\n\n\t\t\tcase \"lastNodeId\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_LAST_USED_NODE_ID_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\n\t\t\tcase \"staticControllerNodeId\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_STATIC_CONTROLLER_NODE_ID_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"sucLastIndex\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_SUC_LAST_INDEX_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"controllerConfiguration\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_CONTROLLER_CONFIGURATION_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\n\t\t\tcase \"maxNodeId\":\n\t\t\t\treturn this.setOnly(\"EX_NVM_MAX_NODE_ID_far\", value);\n\t\t\tcase \"reservedId\":\n\t\t\t\treturn this.setOnly(\"EX_NVM_RESERVED_ID_far\", value);\n\t\t\tcase \"systemState\":\n\t\t\t\treturn this.setOnly(\"NVM_SYSTEM_STATE\", value);\n\n\t\t\tcase \"commandClasses\": {\n\t\t\t\tawait this.setOnly(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_LEN_far\",\n\t\t\t\t\tvalue.length,\n\t\t\t\t);\n\t\t\t\tconst CCs = Array.from<number>({ length: APPL_NODEPARM_MAX })\n\t\t\t\t\t.fill(0xff);\n\t\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\t\tif (i < APPL_NODEPARM_MAX) {\n\t\t\t\t\t\tCCs[i] = value[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tawait this.setAll(\n\t\t\t\t\t\"EEOFFSET_CMDCLASS_far\",\n\t\t\t\t\tCCs,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcase \"preferredRepeaters\":\n\t\t\t\treturn this.setOnly(\"NVM_PREFERRED_REPEATERS_far\", value);\n\n\t\t\tcase \"appRouteLock\": {\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_APP_LOCK_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"routeSlaveSUC\": {\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_SUC_ROUTING_SLAVE_LIST_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase \"sucPendingUpdate\": {\n\t\t\t\treturn this.setOnly(\"EX_NVM_PENDING_UPDATE_far\", value);\n\t\t\t}\n\t\t\tcase \"pendingDiscovery\": {\n\t\t\t\treturn this.setOnly(\"NVM_PENDING_DISCOVERY_far\", value);\n\t\t\t}\n\n\t\t\tcase \"nodeIds\":\n\t\t\t\t// Cannot be written. Is implied by the node info table\n\t\t\t\treturn;\n\n\t\t\tcase \"virtualNodeIds\": {\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EX_NVM_BRIDGE_NODEPOOL_START_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcase \"sucUpdateEntries\": {\n\t\t\t\tconst entries = value as SUCUpdateEntry[];\n\t\t\t\tconst sucUpdateEntries = Array\n\t\t\t\t\t.from<SUCUpdateEntry | undefined>({\n\t\t\t\t\t\tlength: SUC_MAX_UPDATES,\n\t\t\t\t\t})\n\t\t\t\t\t.fill(undefined);\n\t\t\t\tfor (let i = 0; i < entries.length; i++) {\n\t\t\t\t\tif (i < SUC_MAX_UPDATES) {\n\t\t\t\t\t\tsucUpdateEntries[i] = entries[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.setAll(\n\t\t\t\t\t\"EX_NVM_SUC_NODE_LIST_START_far\",\n\t\t\t\t\tsucUpdateEntries,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcase \"watchdogStarted\":\n\t\t\t\treturn this.setOnly(\"EEOFFSET_WATCHDOG_STARTED_far\", value);\n\n\t\t\tcase \"powerLevelNormal\":\n\t\t\t\treturn this.setAll(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_NORMAL_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerLevelLow\":\n\t\t\t\treturn this.setAll(\n\t\t\t\t\t\"EEOFFSET_POWERLEVEL_LOW_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerMode\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerModeExtintEnable\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_EXTINT_ENABLE_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\t\t\tcase \"powerModeWutTimeout\":\n\t\t\t\treturn this.setOnly(\n\t\t\t\t\t\"EEOFFSET_MODULE_POWER_MODE_WUT_TIMEOUT_far\",\n\t\t\t\t\tvalue,\n\t\t\t\t);\n\n\t\t\tcase \"sucAwarenessPushNeeded\":\n\t\t\tcase \"lastNodeIdLR\":\n\t\t\tcase \"maxNodeIdLR\":\n\t\t\tcase \"reservedIdLR\":\n\t\t\tcase \"primaryLongRangeChannelId\":\n\t\t\tcase \"dcdcConfig\":\n\t\t\tcase \"lrNodeIds\":\n\t\t\tcase \"includedInsecurely\":\n\t\t\tcase \"includedSecurelyInsecureCCs\":\n\t\t\tcase \"includedSecurelySecureCCs\":\n\t\t\tcase \"rfRegion\":\n\t\t\tcase \"txPower\":\n\t\t\tcase \"measured0dBm\":\n\t\t\tcase \"enablePTI\":\n\t\t\tcase \"maxTXPower\":\n\t\t\tcase \"nodeIdType\":\n\t\t\tcase \"isListening\":\n\t\t\tcase \"optionalFunctionality\":\n\t\t\tcase \"genericDeviceClass\":\n\t\t\tcase \"specificDeviceClass\":\n\t\t\t\t// Not supported on 500 series, 700+ series only\n\t\t\t\treturn;\n\n\t\t\tdefault:\n\t\t\t\tassertNever(property.type);\n\t\t}\n\t}\n\n\tprivate async setNodeNVMProperty(\n\t\tproperty: NodeNVMProperty,\n\t\tvalue: any,\n\t): Promise<void> {\n\t\tswitch (property.type) {\n\t\t\tcase \"info\": {\n\t\t\t\tconst nodeId = property.nodeId;\n\t\t\t\tconst node = value as NodeInfo;\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_NODE_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\tnode\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\tisListening: node.isListening,\n\t\t\t\t\t\t\tisFrequentListening: node.isFrequentListening,\n\t\t\t\t\t\t\tisRouting: node.isRouting,\n\t\t\t\t\t\t\tsupportedDataRates: node.supportedDataRates,\n\t\t\t\t\t\t\tprotocolVersion: node.protocolVersion,\n\t\t\t\t\t\t\toptionalFunctionality: node.optionalFunctionality,\n\t\t\t\t\t\t\tnodeType: node.nodeType,\n\t\t\t\t\t\t\tsupportsSecurity: node.supportsSecurity,\n\t\t\t\t\t\t\tsupportsBeaming: node.supportsBeaming,\n\t\t\t\t\t\t\tgenericDeviceClass: node.genericDeviceClass,\n\t\t\t\t\t\t\tspecificDeviceClass: node.specificDeviceClass\n\t\t\t\t\t\t\t\t?? null,\n\t\t\t\t\t\t} satisfies NVM500NodeInfo\n\t\t\t\t\t\t: undefined,\n\t\t\t\t);\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_SUC_CONTROLLER_LIST_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\tnode?.sucUpdateIndex ?? 0xfe,\n\t\t\t\t);\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_ROUTING_TABLE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\tnode?.neighbors,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcase \"routes\": {\n\t\t\t\tconst nodeId = property.nodeId;\n\t\t\t\tconst routes = value as { lwr?: Route; nlwr?: Route };\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_START_far\",\n\t\t\t\t\tnodeId - 1,\n\t\t\t\t\troutes.lwr,\n\t\t\t\t);\n\t\t\t\tawait this.setSingle(\n\t\t\t\t\t\"EX_NVM_ROUTECACHE_NLWR_SR_START_far\",\n\t\t\t\t\tproperty.nodeId - 1,\n\t\t\t\t\troutes.nlwr,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async delete(_property: NVMProperty): Promise<void> {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\tpublic hasPendingChanges(): boolean {\n\t\t// We don't buffer changes\n\t\treturn false;\n\t}\n\n\tpublic async commit(): Promise<void> {\n\t\t// We don't buffer changes at the moment\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAAA,kBAIO;AACP,oBAAsC;AACtC,qBAA4B;AAC5B,oBAAgC;AAahC,IAAAA,iBAKO;AAED,MAAO,cAAa;EA3B1B,OA2B0B;;;EACzB,YAAmB,KAAW;AAC7B,SAAK,OAAO;EACb;EAEQ;EAED,MAAM,IACZ,UACA,UAAY;AAKZ,UAAM,OAAO,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK,KAAI;AAEnD,QAAI;AACJ,QAAI,SAAS,WAAW,cAAc;AACrC,YAAM,MAAM,KAAK,yBAAyB,MAAM,QAAQ;IACzD,WAAW,SAAS,WAAW,UAAU;AACxC,YAAM,IAAI,uBACT,iEACA,4BAAgB,kBAAkB;IAEpC,OAAO;AACN,YAAM,MAAM,KAAK,mBAAmB,QAAQ;IAC7C;AACA,QAAI,YAAY,QAAQ,QAAW;AAClC,YAAM,IAAI,uBACT,yBAAyB,KAAK,UAAU,QAAQ,CAAC,cACjD,4BAAgB,kBAAkB;IAEpC;AACA,WAAO;EACR;EAEQ,MAAM,QACb,UAAsB;AAEtB,UAAM,OAAO,MAAM,KAAK,KAAK,IAAI,QAAQ;AACzC,WAAO,OAAO,CAAC;EAChB;EAEQ,MAAM,UACb,UACA,OAAa;AAEb,UAAM,OAAO,MAAM,KAAK,KAAK,UAAU,UAAU,KAAK;AACtD,WAAO;EACR;EAEQ,OACP,UAAsB;AAEtB,WAAO,KAAK,KAAK,IAAI,QAAQ;EAC9B;EAEQ,MAAM,yBACb,MACA,UAA+B;AAE/B,YAAQ,SAAS,MAAM;MACtB,KAAK;AACJ,eAAO,KAAK,cAAc;MAC3B,KAAK;AACJ,eAAO,KAAK,cAAc;MAE3B,KAAK;MACL,KAAK;AAEJ,eAAO;MAER,KAAK;AACJ,eAAO,KAAK,QACX,gCAAgC;MAGlC,KAAK;AAEJ;MAED,KAAK,UAAU;AAEd,cAAM,SAAS,MAAM,KAAK,QACzB,oBAAoB;AAErB,YAAI,UAAU;AAAW;AACzB,cAAM,MAAM,IAAI,oBAAM,CAAC,EAAE,KAAK,CAAC;AAE/B,YAAI,cAAc,QAAQ,CAAC;AAC3B,eAAO;MACR;MAEA,KAAK,iBAAiB;AAErB,cAAM,SAAS,MAAM,KAAK,QAAgB,gBAAgB;AAC1D,YAAI,UAAU;AAAW;AACzB,cAAM,MAAM,IAAI,oBAAM,CAAC,EAAE,KAAK,CAAC;AAE/B,YAAI,cAAc,QAAQ,CAAC;AAC3B,eAAO;MACR;MAEA,KAAK;AACJ,eAAO,KAAK,QAAgB,gBAAgB;MAE7C,KAAK;AACJ,eAAO,KAAK,QACX,oCAAoC;MAGtC,KAAK;AACJ,eAAO,KAAK,QACX,4CAA4C;MAE9C,KAAK;AACJ,eAAO,KAAK,QACX,iCAAiC;MAEnC,KAAK;AACJ,eAAO,KAAK,QACX,qCAAqC;MAGvC,KAAK;AACJ,eAAO,KAAK,QAAgB,wBAAwB;MACrD,KAAK;AACJ,eAAO,KAAK,QAAgB,wBAAwB;MACrD,KAAK;AACJ,eAAO,KAAK,QAAgB,kBAAkB;MAE/C,KAAK,kBAAkB;AACtB,cAAM,SAAS,MAAM,KAAK,QACzB,2BAA2B;AAE5B,cAAM,MAAM,MAAM,KAAK,OACtB,uBAAuB;AAExB,eAAO,KAAK,MAAM,GAAG,MAAM;MAC5B;MAEA,KAAK;AACJ,eAAO,KAAK,QAAkB,6BAA6B;MAE5D,KAAK,gBAAgB;AACpB,eAAO,KAAK,QACX,gCAAgC;MAElC;MACA,KAAK,iBAAiB;AACrB,eAAO,KAAK,QACX,yCAAyC;MAE3C;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAkB,2BAA2B;MAC1D;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAkB,2BAA2B;MAC1D;MAEA,KAAK,WAAW;AACf,cAAM,YAAY,MAAM,KAAK,OAC5B,6BAA6B;AAE9B,eAAO,WACJ,IAAI,CAACC,OAAM,UAAUA,QAAQ,QAAQ,IAAK,MAAS,EACpD,OAAO,CAAC,OAAO,MAAM,MAAS;MACjC;MAEA,KAAK,kBAAkB;AACtB,cAAM,MAAM,MAAM,KAAK,QACtB,kCAAkC;AAEnC,eAAO,OAAO,CAAA;MACf;MAEA,KAAK,oBAAoB;AACxB,cAAM,MAAM,MAAM,KAAK,OACtB,gCAAgC;AAEjC,eAAO,KAAK,OAAO,OAAO;MAC3B;MAEA,KAAK;AACJ,eAAO,KAAK,QAAgB,+BAA+B;MAE5D,KAAK;AACJ,eAAO,KAAK,OACX,gCAAgC;MAElC,KAAK;AACJ,eAAO,KAAK,OACX,6BAA6B;MAE/B,KAAK;AACJ,eAAO,KAAK,QACX,gCAAgC;MAElC,KAAK;AACJ,eAAO,KAAK,QACX,8CAA8C;MAEhD,KAAK;AACJ,eAAO,KAAK,QACX,4CAA4C;MAG9C,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;AAEJ;MAED;AACC,wCAAY,SAAS,IAAI;IAC3B;EACD;EAEQ,MAAM,mBACb,UAAyB;AAEzB,YAAQ,SAAS,MAAM;MACtB,KAAK,QAAQ;AACZ,cAAM,SAAS,SAAS;AACxB,cAAM,WAAW,MAAM,KAAK,UAC3B,+BACA,SAAS,CAAC;AAEX,cAAM,iBAAiB,MAAM,KAAK,UACjC,wCACA,SAAS,CAAC,KACN;AACL,cAAM,YAAY,MAAM,KAAK,UAC5B,kCACA,SAAS,CAAC,KACN,CAAA;AAEL,YAAI,CAAC;AAAU;AAEf,eAAO;UACN;UACA,GAAG;UACH;UACA;;MAEF;MAEA,KAAK,UAAU;AACd,cAAM,MAAM,MAAM,KAAK,UACtB,+BACA,SAAS,SAAS,CAAC;AAEpB,cAAM,OAAO,MAAM,KAAK,UACvB,uCACA,SAAS,SAAS,CAAC;AAEpB,eAAO,EAAE,KAAK,KAAI;MACnB;IACD;EACD;EAEQ,QACP,UACA,OAAc;AAEd,WAAO,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;EACvC;EAEQ,UACP,UACA,OACA,OAAc;AAEd,WAAO,KAAK,KAAK,UAAU,UAAU,OAAO,KAAK;EAClD;EAEQ,OACP,UACA,OAAgB;AAEhB,WAAO,KAAK,KAAK,IAAI,UAAU,KAAK;EACrC;EAEA,IACC,UACA,OAA+B;AAE/B,QAAI,SAAS,WAAW,cAAc;AACrC,aAAO,KAAK,yBAAyB,UAAU,KAAK;IACrD,WAAW,SAAS,WAAW,UAAU;AACxC,YAAM,IAAI,uBACT,iEACA,4BAAgB,kBAAkB;IAEpC,OAAO;AACN,aAAO,KAAK,mBAAmB,UAAU,KAAK;IAC/C;EACD;EAEQ,MAAM,yBACb,UACA,OAAU;AAEV,YAAQ,SAAS,MAAM;MACtB,KAAK;MACL,KAAK;AAEJ;MAED,KAAK;MACL,KAAK;AAEJ;MAED,KAAK;AACJ,eAAO,KAAK,QACX,kCACA,SAAS,IAAI,oBAAM,sCAAuB,EAAE,KAAK,GAAI,CAAC;MAGxD,KAAK;AAEJ;MAED,KAAK,UAAU;AAEd,cAAM,SAAS,MAAM,aAAa,CAAC;AACnC,eAAO,KAAK,QAAQ,sBAAsB,MAAM;MACjD;MAEA,KAAK,iBAAiB;AAErB,cAAM,gBAAgB,OAAO,aAAa,CAAC,KAAK;AAChD,eAAO,KAAK,QAAQ,kBAAkB,aAAa;MACpD;MAEA,KAAK;AACJ,eAAO,KAAK,QAAQ,kBAAkB,KAAK;MAE5C,KAAK;AACJ,eAAO,KAAK,QACX,sCACA,KAAK;MAGP,KAAK;AACJ,eAAO,KAAK,QACX,8CACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,mCACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,uCACA,KAAK;MAGP,KAAK;AACJ,eAAO,KAAK,QAAQ,0BAA0B,KAAK;MACpD,KAAK;AACJ,eAAO,KAAK,QAAQ,0BAA0B,KAAK;MACpD,KAAK;AACJ,eAAO,KAAK,QAAQ,oBAAoB,KAAK;MAE9C,KAAK,kBAAkB;AACtB,cAAM,KAAK,QACV,6BACA,MAAM,MAAM;AAEb,cAAM,MAAM,MAAM,KAAa,EAAE,QAAQ,iCAAiB,CAAE,EAC1D,KAAK,GAAI;AACX,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,cAAI,IAAI,kCAAmB;AAC1B,gBAAI,CAAC,IAAI,MAAM,CAAC;UACjB;QACD;AACA,cAAM,KAAK,OACV,yBACA,GAAG;AAEJ;MACD;MAEA,KAAK;AACJ,eAAO,KAAK,QAAQ,+BAA+B,KAAK;MAEzD,KAAK,gBAAgB;AACpB,eAAO,KAAK,QACX,kCACA,KAAK;MAEP;MACA,KAAK,iBAAiB;AACrB,eAAO,KAAK,QACX,2CACA,KAAK;MAEP;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAQ,6BAA6B,KAAK;MACvD;MACA,KAAK,oBAAoB;AACxB,eAAO,KAAK,QAAQ,6BAA6B,KAAK;MACvD;MAEA,KAAK;AAEJ;MAED,KAAK,kBAAkB;AACtB,eAAO,KAAK,QACX,oCACA,KAAK;MAEP;MAEA,KAAK,oBAAoB;AACxB,cAAM,UAAU;AAChB,cAAM,mBAAmB,MACvB,KAAiC;UACjC,QAAQ;SACR,EACA,KAAK,MAAS;AAChB,iBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,cAAI,IAAI,+BAAiB;AACxB,6BAAiB,CAAC,IAAI,QAAQ,CAAC;UAChC;QACD;AACA,eAAO,KAAK,OACX,kCACA,gBAAgB;MAElB;MAEA,KAAK;AACJ,eAAO,KAAK,QAAQ,iCAAiC,KAAK;MAE3D,KAAK;AACJ,eAAO,KAAK,OACX,kCACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,OACX,+BACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,kCACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,gDACA,KAAK;MAEP,KAAK;AACJ,eAAO,KAAK,QACX,8CACA,KAAK;MAGP,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;AAEJ;MAED;AACC,wCAAY,SAAS,IAAI;IAC3B;EACD;EAEQ,MAAM,mBACb,UACA,OAAU;AAEV,YAAQ,SAAS,MAAM;MACtB,KAAK,QAAQ;AACZ,cAAM,SAAS,SAAS;AACxB,cAAM,OAAO;AACb,cAAM,KAAK,UACV,+BACA,SAAS,GACT,OACG;UACD,aAAa,KAAK;UAClB,qBAAqB,KAAK;UAC1B,WAAW,KAAK;UAChB,oBAAoB,KAAK;UACzB,iBAAiB,KAAK;UACtB,uBAAuB,KAAK;UAC5B,UAAU,KAAK;UACf,kBAAkB,KAAK;UACvB,iBAAiB,KAAK;UACtB,oBAAoB,KAAK;UACzB,qBAAqB,KAAK,uBACtB;YAEH,MAAS;AAEb,cAAM,KAAK,UACV,wCACA,SAAS,GACT,MAAM,kBAAkB,GAAI;AAE7B,cAAM,KAAK,UACV,kCACA,SAAS,GACT,MAAM,SAAS;MAEjB;MAEA,KAAK,UAAU;AACd,cAAM,SAAS,SAAS;AACxB,cAAM,SAAS;AACf,cAAM,KAAK,UACV,+BACA,SAAS,GACT,OAAO,GAAG;AAEX,cAAM,KAAK,UACV,uCACA,SAAS,SAAS,GAClB,OAAO,IAAI;MAEb;IACD;EACD;;EAGO,MAAM,OAAO,WAAsB;AACzC,UAAM,IAAI,MAAM,yBAAyB;EAC1C;EAEO,oBAAiB;AAEvB,WAAO;EACR;EAEO,MAAM,SAAM;EAEnB;;",
6
6
  "names": ["import_shared", "info"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import type { BytesView } from "@zwave-js/shared";
1
2
  import type { Route } from "../common/routeCache.js";
2
3
  import type { SUCUpdateEntry } from "../common/sucUpdateEntry.js";
3
4
  import type { NVM500NodeInfo, NVMDescriptor, NVMModuleDescriptor } from "./EntryParsers.js";
@@ -25,7 +26,7 @@ export interface NVMEntry {
25
26
  }
26
27
  /** The NVM entry as it appears in a valid layout, with all sizes and offsets resolved */
27
28
  export type ResolvedNVMEntry = Required<NVMEntry>;
28
- export type NVMData = Uint8Array | number | NVMDescriptor | number[] | Route | NVMModuleDescriptor | SUCUpdateEntry | NVM500NodeInfo | undefined;
29
+ export type NVMData = BytesView | number | NVMDescriptor | number[] | Route | NVMModuleDescriptor | SUCUpdateEntry | NVM500NodeInfo | undefined;
29
30
  export interface ParsedNVMEntry extends NVMEntry {
30
31
  data: NVMData[];
31
32
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm500/shared.ts"],
4
- "sourcesContent": ["import { NUM_NODEMASK_BYTES } from \"@zwave-js/core\";\nimport { SUC_UPDATE_ENTRY_SIZE } from \"../../consts.js\";\nimport type { Route } from \"../common/routeCache.js\";\nimport type { SUCUpdateEntry } from \"../common/sucUpdateEntry.js\";\nimport type {\n\tNVM500NodeInfo,\n\tNVMDescriptor,\n\tNVMModuleDescriptor,\n} from \"./EntryParsers.js\";\n\nexport enum NVMEntryType {\n\tNVMModuleSize,\n\tByte,\n\tWord,\n\tDWord,\n\tBuffer,\n\tNodeInfo,\n\tNodeMask,\n\tSUCUpdateEntry,\n\tRoute,\n\tNVMModuleDescriptor,\n\tNVMDescriptor,\n}\n\n// These names are pretty bad, but they're used in Silabs nvm_converter code, so we keep them for easier lookup\nexport type NVMEntryName =\n\t| \"EEOFFSET_CMDCLASS_far\"\n\t| \"EEOFFSET_CMDCLASS_LEN_far\"\n\t| \"EEOFFSET_HOST_OFFSET_START_far\"\n\t| \"EEOFFSET_MAGIC_far\"\n\t| \"EEOFFSET_MODULE_POWER_MODE_EXTINT_ENABLE_far\"\n\t| \"EEOFFSET_MODULE_POWER_MODE_far\"\n\t| \"EEOFFSET_MODULE_POWER_MODE_WUT_TIMEOUT_far\"\n\t| \"EEOFFSET_POWERLEVEL_LOW_far\"\n\t| \"EEOFFSET_POWERLEVEL_NORMAL_far\"\n\t| \"EEOFFSET_WATCHDOG_STARTED_far\"\n\t| \"EX_NVM_BRIDGE_NODEPOOL_START_far\"\n\t| \"EX_NVM_CONTROLLER_CONFIGURATION_far\"\n\t| \"EX_NVM_HOME_ID_far\"\n\t| \"EX_NVM_LAST_USED_NODE_ID_START_far\"\n\t| \"EX_NVM_MAX_NODE_ID_far\"\n\t| \"EX_NVM_NODE_TABLE_START_far\"\n\t| \"EX_NVM_PENDING_UPDATE_far\"\n\t| \"EX_NVM_RESERVED_ID_far\"\n\t| \"EX_NVM_ROUTECACHE_APP_LOCK_far\"\n\t| \"EX_NVM_ROUTECACHE_MAGIC_far\"\n\t| \"EX_NVM_ROUTECACHE_NLWR_SR_START_far\"\n\t| \"EX_NVM_ROUTECACHE_START_far\"\n\t| \"EX_NVM_ROUTING_TABLE_START_far\"\n\t| \"EX_NVM_STATIC_CONTROLLER_NODE_ID_START_far\"\n\t| \"EX_NVM_SUC_ACTIVE_START_far\"\n\t| \"EX_NVM_SUC_CONTROLLER_LIST_START_far\"\n\t| \"EX_NVM_SUC_LAST_INDEX_START_far\"\n\t| \"EX_NVM_SUC_NODE_LIST_START_far\"\n\t| \"EX_NVM_SUC_ROUTING_SLAVE_LIST_START_far\"\n\t| \"EX_NVM_ZENSOR_TABLE_START_far\"\n\t| \"NVM_CONFIGURATION_REALLYVALID_far\"\n\t| \"NVM_CONFIGURATION_VALID_far\"\n\t| \"NVM_HOMEID_far\"\n\t| \"NVM_INTERNAL_RESERVED_1_far\"\n\t| \"NVM_INTERNAL_RESERVED_2_far\"\n\t| \"NVM_INTERNAL_RESERVED_3_far\"\n\t| \"NVM_NODEID_far\"\n\t| \"NVM_PENDING_DISCOVERY_far\"\n\t| \"NVM_PREFERRED_REPEATERS_far\"\n\t| \"NVM_RTC_TIMERS_far\"\n\t| \"NVM_SECURITY0_KEY_far\"\n\t| \"NVM_SYSTEM_STATE\"\n\t| \"nvmApplicationDescriptor\"\n\t| \"nvmApplicationSize\"\n\t| \"nvmDescriptor\"\n\t| \"nvmDescriptorDescriptor\"\n\t| \"nvmDescriptorSize\"\n\t| \"nvmHostApplicationDescriptor\"\n\t| \"nvmHostApplicationSize\"\n\t| \"nvmModuleSizeEndMarker\"\n\t| \"nvmTotalEnd\"\n\t| \"nvmZWlibraryDescriptor\"\n\t| \"nvmZWlibrarySize\";\n\n// The NVM entries are organized in modules. Each module starts with 16-bit size (NVM_MODULE_SIZE)\n// and ends with a module descriptor (NVM_MODULE_DESCRIPTOR).\n// The offset (if specified) is used to validate the NVM format.\nexport interface NVMEntry {\n\tname: NVMEntryName;\n\ttype: NVMEntryType;\n\t// Override the default size for this entry\n\tsize?: number;\n\t/** The offset is only specified if it is needed for validation */\n\toffset?: number;\n\t// The actual size of this entry is size(type) * count\n\tcount: number;\n}\n\n/** The NVM entry as it appears in a valid layout, with all sizes and offsets resolved */\nexport type ResolvedNVMEntry = Required<NVMEntry>;\n\nexport type NVMData =\n\t| Uint8Array\n\t| number\n\t| NVMDescriptor\n\t| number[]\n\t| Route\n\t| NVMModuleDescriptor\n\t| SUCUpdateEntry\n\t| NVM500NodeInfo\n\t| undefined;\n\nexport interface ParsedNVMEntry extends NVMEntry {\n\tdata: NVMData[];\n}\n\nexport type NVMLayout = readonly Readonly<NVMEntry>[];\n\nexport type ResolvedNVMLayout = ReadonlyMap<NVMEntryName, ResolvedNVMEntry>;\n\nexport const NVMEntrySizes: Record<NVMEntryType, number> = {\n\t[NVMEntryType.NVMModuleSize]: 2, // Marks the start of an NVM module\n\t[NVMEntryType.Byte]: 1,\n\t[NVMEntryType.Word]: 2,\n\t[NVMEntryType.DWord]: 4,\n\t[NVMEntryType.Buffer]: 1, // The size must be specified\n\t[NVMEntryType.NodeInfo]: 5, // 3 bytes NodeProtocolInfo + generic + specific device class\n\t[NVMEntryType.NodeMask]: NUM_NODEMASK_BYTES, // Nodes bitmask\n\t[NVMEntryType.SUCUpdateEntry]: SUC_UPDATE_ENTRY_SIZE,\n\t[NVMEntryType.Route]: 5, // a Route\n\t[NVMEntryType.NVMModuleDescriptor]: 5, // 2 bytes module size, 1 byte module type, 2 bytes module version\n\t[NVMEntryType.NVMDescriptor]: 12,\n};\n\nexport enum NVMModuleType {\n\tUNDEFINED = 0x00,\n\tZW_PHY_LIBRARY = 0x01,\n\tZW_LIBRARY = 0x02,\n\tZW_FRAMEWORK = 0x03,\n\tAPPLICATION = 0x04,\n\tHOST_APPLICATION = 0x05,\n\tSECURITY_2 = 0x06,\n\tNVM_DESCRIPTOR = 0xff,\n}\n\nexport const SUC_CONTROLLER_LIST_SIZE = 232;\n\nexport const MAX_REPEATERS = 4;\n\n/* NVM is 16KB, 32KB or even more (you decide the size of your SPI EEPROM or FLASH chip) */\n/* Use only a reasonable amount of it for host application */\nexport const NVM_SERIALAPI_HOST_SIZE = 2048;\n\nexport const POWERLEVEL_CHANNELS = 3;\nexport const APPL_NODEPARM_MAX = 35;\nexport const RTC_TIMER_SIZE = 16;\nexport const TOTAL_RTC_TIMER_MAX = 8 + 2; /* max number of active RTC timers */\n\nexport const CONFIGURATION_VALID_0 = 0x54;\nexport const CONFIGURATION_VALID_1 = 0xa5;\nexport const ROUTECACHE_VALID = 0x4a;\nexport const MAGIC_VALUE = 0x42;\n\nexport interface NVM500Impl {\n\tname: string;\n\tlibrary: \"static\" | \"bridge\";\n\tprotocolVersions: string[];\n\tlayout: NVMLayout;\n}\n\nexport type ResolvedNVM500Impl = Omit<NVM500Impl, \"layout\"> & {\n\tlayout: ResolvedNVMLayout;\n};\n\nexport function resolveLayout(layout: NVMLayout): {\n\tlayout: ResolvedNVMLayout;\n\tnvmSize: number;\n} {\n\tconst ret: Map<NVMEntryName, Required<NVMEntry>> = new Map();\n\tlet offset = 0;\n\tfor (const entry of layout) {\n\t\tconst size = entry.size ?? NVMEntrySizes[entry.type];\n\t\tconst resolvedEntry: ResolvedNVMEntry = {\n\t\t\t...entry,\n\t\t\tsize,\n\t\t\toffset: entry.offset ?? offset,\n\t\t};\n\t\tret.set(resolvedEntry.name, resolvedEntry);\n\t\toffset += size * entry.count;\n\t}\n\n\tconst endMarker = ret.get(\"nvmModuleSizeEndMarker\")!;\n\tconst nvmSize = endMarker.offset + endMarker.size;\n\n\treturn { layout: ret, nvmSize };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;AAAA,kBAAmC;AACnC,oBAAsC;AAStC,IAAY;CAAZ,SAAYA,eAAY;AACvB,EAAAA,cAAAA,cAAA,eAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,MAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,MAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,OAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,QAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,UAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,UAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,gBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,OAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,qBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,eAAA,IAAA,EAAA,IAAA;AACD,GAZY,iBAAA,eAAY,CAAA,EAAA;AA0GjB,MAAM,gBAA8C;EAC1D,CAAC,aAAa,aAAa,GAAG;;EAC9B,CAAC,aAAa,IAAI,GAAG;EACrB,CAAC,aAAa,IAAI,GAAG;EACrB,CAAC,aAAa,KAAK,GAAG;EACtB,CAAC,aAAa,MAAM,GAAG;;EACvB,CAAC,aAAa,QAAQ,GAAG;;EACzB,CAAC,aAAa,QAAQ,GAAG;;EACzB,CAAC,aAAa,cAAc,GAAG;EAC/B,CAAC,aAAa,KAAK,GAAG;;EACtB,CAAC,aAAa,mBAAmB,GAAG;;EACpC,CAAC,aAAa,aAAa,GAAG;;AAG/B,IAAY;CAAZ,SAAYC,gBAAa;AACxB,EAAAA,eAAAA,eAAA,WAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,gBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,YAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,cAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,aAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,kBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,YAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,gBAAA,IAAA,GAAA,IAAA;AACD,GATY,kBAAA,gBAAa,CAAA,EAAA;AAWlB,MAAM,2BAA2B;AAEjC,MAAM,gBAAgB;AAItB,MAAM,0BAA0B;AAEhC,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB;AAC1B,MAAM,iBAAiB;AACvB,MAAM,sBAAsB,IAAI;AAEhC,MAAM,wBAAwB;AAC9B,MAAM,wBAAwB;AAC9B,MAAM,mBAAmB;AACzB,MAAM,cAAc;AAarB,SAAU,cAAc,QAAiB;AAI9C,QAAM,MAA6C,oBAAI,IAAG;AAC1D,MAAI,SAAS;AACb,aAAW,SAAS,QAAQ;AAC3B,UAAM,OAAO,MAAM,QAAQ,cAAc,MAAM,IAAI;AACnD,UAAM,gBAAkC;MACvC,GAAG;MACH;MACA,QAAQ,MAAM,UAAU;;AAEzB,QAAI,IAAI,cAAc,MAAM,aAAa;AACzC,cAAU,OAAO,MAAM;EACxB;AAEA,QAAM,YAAY,IAAI,IAAI,wBAAwB;AAClD,QAAM,UAAU,UAAU,SAAS,UAAU;AAE7C,SAAO,EAAE,QAAQ,KAAK,QAAO;AAC9B;AArBgB;",
4
+ "sourcesContent": ["import { NUM_NODEMASK_BYTES } from \"@zwave-js/core\";\nimport type { BytesView } from \"@zwave-js/shared\";\nimport { SUC_UPDATE_ENTRY_SIZE } from \"../../consts.js\";\nimport type { Route } from \"../common/routeCache.js\";\nimport type { SUCUpdateEntry } from \"../common/sucUpdateEntry.js\";\nimport type {\n\tNVM500NodeInfo,\n\tNVMDescriptor,\n\tNVMModuleDescriptor,\n} from \"./EntryParsers.js\";\n\nexport enum NVMEntryType {\n\tNVMModuleSize,\n\tByte,\n\tWord,\n\tDWord,\n\tBuffer,\n\tNodeInfo,\n\tNodeMask,\n\tSUCUpdateEntry,\n\tRoute,\n\tNVMModuleDescriptor,\n\tNVMDescriptor,\n}\n\n// These names are pretty bad, but they're used in Silabs nvm_converter code, so we keep them for easier lookup\nexport type NVMEntryName =\n\t| \"EEOFFSET_CMDCLASS_far\"\n\t| \"EEOFFSET_CMDCLASS_LEN_far\"\n\t| \"EEOFFSET_HOST_OFFSET_START_far\"\n\t| \"EEOFFSET_MAGIC_far\"\n\t| \"EEOFFSET_MODULE_POWER_MODE_EXTINT_ENABLE_far\"\n\t| \"EEOFFSET_MODULE_POWER_MODE_far\"\n\t| \"EEOFFSET_MODULE_POWER_MODE_WUT_TIMEOUT_far\"\n\t| \"EEOFFSET_POWERLEVEL_LOW_far\"\n\t| \"EEOFFSET_POWERLEVEL_NORMAL_far\"\n\t| \"EEOFFSET_WATCHDOG_STARTED_far\"\n\t| \"EX_NVM_BRIDGE_NODEPOOL_START_far\"\n\t| \"EX_NVM_CONTROLLER_CONFIGURATION_far\"\n\t| \"EX_NVM_HOME_ID_far\"\n\t| \"EX_NVM_LAST_USED_NODE_ID_START_far\"\n\t| \"EX_NVM_MAX_NODE_ID_far\"\n\t| \"EX_NVM_NODE_TABLE_START_far\"\n\t| \"EX_NVM_PENDING_UPDATE_far\"\n\t| \"EX_NVM_RESERVED_ID_far\"\n\t| \"EX_NVM_ROUTECACHE_APP_LOCK_far\"\n\t| \"EX_NVM_ROUTECACHE_MAGIC_far\"\n\t| \"EX_NVM_ROUTECACHE_NLWR_SR_START_far\"\n\t| \"EX_NVM_ROUTECACHE_START_far\"\n\t| \"EX_NVM_ROUTING_TABLE_START_far\"\n\t| \"EX_NVM_STATIC_CONTROLLER_NODE_ID_START_far\"\n\t| \"EX_NVM_SUC_ACTIVE_START_far\"\n\t| \"EX_NVM_SUC_CONTROLLER_LIST_START_far\"\n\t| \"EX_NVM_SUC_LAST_INDEX_START_far\"\n\t| \"EX_NVM_SUC_NODE_LIST_START_far\"\n\t| \"EX_NVM_SUC_ROUTING_SLAVE_LIST_START_far\"\n\t| \"EX_NVM_ZENSOR_TABLE_START_far\"\n\t| \"NVM_CONFIGURATION_REALLYVALID_far\"\n\t| \"NVM_CONFIGURATION_VALID_far\"\n\t| \"NVM_HOMEID_far\"\n\t| \"NVM_INTERNAL_RESERVED_1_far\"\n\t| \"NVM_INTERNAL_RESERVED_2_far\"\n\t| \"NVM_INTERNAL_RESERVED_3_far\"\n\t| \"NVM_NODEID_far\"\n\t| \"NVM_PENDING_DISCOVERY_far\"\n\t| \"NVM_PREFERRED_REPEATERS_far\"\n\t| \"NVM_RTC_TIMERS_far\"\n\t| \"NVM_SECURITY0_KEY_far\"\n\t| \"NVM_SYSTEM_STATE\"\n\t| \"nvmApplicationDescriptor\"\n\t| \"nvmApplicationSize\"\n\t| \"nvmDescriptor\"\n\t| \"nvmDescriptorDescriptor\"\n\t| \"nvmDescriptorSize\"\n\t| \"nvmHostApplicationDescriptor\"\n\t| \"nvmHostApplicationSize\"\n\t| \"nvmModuleSizeEndMarker\"\n\t| \"nvmTotalEnd\"\n\t| \"nvmZWlibraryDescriptor\"\n\t| \"nvmZWlibrarySize\";\n\n// The NVM entries are organized in modules. Each module starts with 16-bit size (NVM_MODULE_SIZE)\n// and ends with a module descriptor (NVM_MODULE_DESCRIPTOR).\n// The offset (if specified) is used to validate the NVM format.\nexport interface NVMEntry {\n\tname: NVMEntryName;\n\ttype: NVMEntryType;\n\t// Override the default size for this entry\n\tsize?: number;\n\t/** The offset is only specified if it is needed for validation */\n\toffset?: number;\n\t// The actual size of this entry is size(type) * count\n\tcount: number;\n}\n\n/** The NVM entry as it appears in a valid layout, with all sizes and offsets resolved */\nexport type ResolvedNVMEntry = Required<NVMEntry>;\n\nexport type NVMData =\n\t| BytesView\n\t| number\n\t| NVMDescriptor\n\t| number[]\n\t| Route\n\t| NVMModuleDescriptor\n\t| SUCUpdateEntry\n\t| NVM500NodeInfo\n\t| undefined;\n\nexport interface ParsedNVMEntry extends NVMEntry {\n\tdata: NVMData[];\n}\n\nexport type NVMLayout = readonly Readonly<NVMEntry>[];\n\nexport type ResolvedNVMLayout = ReadonlyMap<NVMEntryName, ResolvedNVMEntry>;\n\nexport const NVMEntrySizes: Record<NVMEntryType, number> = {\n\t[NVMEntryType.NVMModuleSize]: 2, // Marks the start of an NVM module\n\t[NVMEntryType.Byte]: 1,\n\t[NVMEntryType.Word]: 2,\n\t[NVMEntryType.DWord]: 4,\n\t[NVMEntryType.Buffer]: 1, // The size must be specified\n\t[NVMEntryType.NodeInfo]: 5, // 3 bytes NodeProtocolInfo + generic + specific device class\n\t[NVMEntryType.NodeMask]: NUM_NODEMASK_BYTES, // Nodes bitmask\n\t[NVMEntryType.SUCUpdateEntry]: SUC_UPDATE_ENTRY_SIZE,\n\t[NVMEntryType.Route]: 5, // a Route\n\t[NVMEntryType.NVMModuleDescriptor]: 5, // 2 bytes module size, 1 byte module type, 2 bytes module version\n\t[NVMEntryType.NVMDescriptor]: 12,\n};\n\nexport enum NVMModuleType {\n\tUNDEFINED = 0x00,\n\tZW_PHY_LIBRARY = 0x01,\n\tZW_LIBRARY = 0x02,\n\tZW_FRAMEWORK = 0x03,\n\tAPPLICATION = 0x04,\n\tHOST_APPLICATION = 0x05,\n\tSECURITY_2 = 0x06,\n\tNVM_DESCRIPTOR = 0xff,\n}\n\nexport const SUC_CONTROLLER_LIST_SIZE = 232;\n\nexport const MAX_REPEATERS = 4;\n\n/* NVM is 16KB, 32KB or even more (you decide the size of your SPI EEPROM or FLASH chip) */\n/* Use only a reasonable amount of it for host application */\nexport const NVM_SERIALAPI_HOST_SIZE = 2048;\n\nexport const POWERLEVEL_CHANNELS = 3;\nexport const APPL_NODEPARM_MAX = 35;\nexport const RTC_TIMER_SIZE = 16;\nexport const TOTAL_RTC_TIMER_MAX = 8 + 2; /* max number of active RTC timers */\n\nexport const CONFIGURATION_VALID_0 = 0x54;\nexport const CONFIGURATION_VALID_1 = 0xa5;\nexport const ROUTECACHE_VALID = 0x4a;\nexport const MAGIC_VALUE = 0x42;\n\nexport interface NVM500Impl {\n\tname: string;\n\tlibrary: \"static\" | \"bridge\";\n\tprotocolVersions: string[];\n\tlayout: NVMLayout;\n}\n\nexport type ResolvedNVM500Impl = Omit<NVM500Impl, \"layout\"> & {\n\tlayout: ResolvedNVMLayout;\n};\n\nexport function resolveLayout(layout: NVMLayout): {\n\tlayout: ResolvedNVMLayout;\n\tnvmSize: number;\n} {\n\tconst ret: Map<NVMEntryName, Required<NVMEntry>> = new Map();\n\tlet offset = 0;\n\tfor (const entry of layout) {\n\t\tconst size = entry.size ?? NVMEntrySizes[entry.type];\n\t\tconst resolvedEntry: ResolvedNVMEntry = {\n\t\t\t...entry,\n\t\t\tsize,\n\t\t\toffset: entry.offset ?? offset,\n\t\t};\n\t\tret.set(resolvedEntry.name, resolvedEntry);\n\t\toffset += size * entry.count;\n\t}\n\n\tconst endMarker = ret.get(\"nvmModuleSizeEndMarker\")!;\n\tconst nvmSize = endMarker.offset + endMarker.size;\n\n\treturn { layout: ret, nvmSize };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;AAAA,kBAAmC;AAEnC,oBAAsC;AAStC,IAAY;CAAZ,SAAYA,eAAY;AACvB,EAAAA,cAAAA,cAAA,eAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,MAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,MAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,OAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,QAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,UAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,UAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,gBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,OAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,qBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,cAAAA,cAAA,eAAA,IAAA,EAAA,IAAA;AACD,GAZY,iBAAA,eAAY,CAAA,EAAA;AA0GjB,MAAM,gBAA8C;EAC1D,CAAC,aAAa,aAAa,GAAG;;EAC9B,CAAC,aAAa,IAAI,GAAG;EACrB,CAAC,aAAa,IAAI,GAAG;EACrB,CAAC,aAAa,KAAK,GAAG;EACtB,CAAC,aAAa,MAAM,GAAG;;EACvB,CAAC,aAAa,QAAQ,GAAG;;EACzB,CAAC,aAAa,QAAQ,GAAG;;EACzB,CAAC,aAAa,cAAc,GAAG;EAC/B,CAAC,aAAa,KAAK,GAAG;;EACtB,CAAC,aAAa,mBAAmB,GAAG;;EACpC,CAAC,aAAa,aAAa,GAAG;;AAG/B,IAAY;CAAZ,SAAYC,gBAAa;AACxB,EAAAA,eAAAA,eAAA,WAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,gBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,YAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,cAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,aAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,kBAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,YAAA,IAAA,CAAA,IAAA;AACA,EAAAA,eAAAA,eAAA,gBAAA,IAAA,GAAA,IAAA;AACD,GATY,kBAAA,gBAAa,CAAA,EAAA;AAWlB,MAAM,2BAA2B;AAEjC,MAAM,gBAAgB;AAItB,MAAM,0BAA0B;AAEhC,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB;AAC1B,MAAM,iBAAiB;AACvB,MAAM,sBAAsB,IAAI;AAEhC,MAAM,wBAAwB;AAC9B,MAAM,wBAAwB;AAC9B,MAAM,mBAAmB;AACzB,MAAM,cAAc;AAarB,SAAU,cAAc,QAAiB;AAI9C,QAAM,MAA6C,oBAAI,IAAG;AAC1D,MAAI,SAAS;AACb,aAAW,SAAS,QAAQ;AAC3B,UAAM,OAAO,MAAM,QAAQ,cAAc,MAAM,IAAI;AACnD,UAAM,gBAAkC;MACvC,GAAG;MACH;MACA,QAAQ,MAAM,UAAU;;AAEzB,QAAI,IAAI,cAAc,MAAM,aAAa;AACzC,cAAU,OAAO,MAAM;EACxB;AAEA,QAAM,YAAY,IAAI,IAAI,wBAAwB;AAClD,QAAM,UAAU,UAAU,SAAS,UAAU;AAE7C,SAAO,EAAE,QAAQ,KAAK,QAAO;AAC9B;AArBgB;",
6
6
  "names": ["NVMEntryType", "NVMModuleType"]
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import { type CommandClasses, NodeIDType, type NodeProtocolInfo, RFRegion } from "@zwave-js/core";
2
+ import { type BytesView } from "@zwave-js/shared";
2
3
  import { type NVM3Meta } from "./lib/NVM3.js";
3
4
  import { type Route } from "./lib/common/routeCache.js";
4
5
  import type { SUCUpdateEntry } from "./lib/common/sucUpdateEntry.js";
@@ -95,14 +96,14 @@ export declare function nodeHasInfo(node: NVMJSONNode): node is NVMJSONNodeWithI
95
96
  /** Converts a compressed set of NVM objects to a JSON representation */
96
97
  export declare function nvmObjectsToJSON(objects: ReadonlyMap<number, NVM3Object>): NVMJSON;
97
98
  /** Reads an NVM buffer of a 700+ series stick and returns its JSON representation */
98
- export declare function nvmToJSON(buffer: Uint8Array, debugLogs?: boolean): Promise<NVMJSONWithMeta>;
99
+ export declare function nvmToJSON(buffer: BytesView, debugLogs?: boolean): Promise<NVMJSONWithMeta>;
99
100
  /** Reads an NVM buffer of a 500-series stick and returns its JSON representation */
100
- export declare function nvm500ToJSON(buffer: Uint8Array): Promise<Required<NVM500JSON>>;
101
- export declare function jsonToNVM(json: NVMJSON, targetSDKVersion: string): Promise<Uint8Array>;
101
+ export declare function nvm500ToJSON(buffer: BytesView): Promise<Required<NVM500JSON>>;
102
+ export declare function jsonToNVM(json: NVMJSON, targetSDKVersion: string): Promise<BytesView>;
102
103
  /** Takes a JSON represented 500 series NVM and converts it to binary */
103
- export declare function jsonToNVM500(json: Required<NVM500JSON>, protocolVersion: string): Promise<Uint8Array>;
104
+ export declare function jsonToNVM500(json: Required<NVM500JSON>, protocolVersion: string): Promise<BytesView>;
104
105
  export declare function json500To700(json: NVM500JSON, truncateApplicationData?: boolean): NVMJSON;
105
106
  export declare function json700To500(json: NVMJSON): NVM500JSON;
106
107
  /** Converts the given source NVM into a format that is compatible with the given target NVM */
107
- export declare function migrateNVM(sourceNVM: Uint8Array, targetNVM: Uint8Array, options?: MigrateNVMOptions): Promise<Uint8Array>;
108
+ export declare function migrateNVM(sourceNVM: BytesView, targetNVM: BytesView, options?: MigrateNVMOptions): Promise<BytesView>;
108
109
  //# sourceMappingURL=convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,gBAAgB,EAErB,QAAQ,EAER,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAEN,KAAK,SAAS,EAKd,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EACN,KAAK,KAAK,EAGV,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAmErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EACX,UAAU,EAIV,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,OAAO;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAErC,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,cAAc,EAAE;QACf,kBAAkB,EAAE,cAAc,EAAE,CAAC;QACrC,2BAA2B,EAAE,cAAc,EAAE,CAAC;QAC9C,yBAAyB,EAAE,cAAc,EAAE,CAAC;KAC5C,CAAC;IAEF,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACzC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,mBAChB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IAExD,SAAS,EAAE,OAAO,CAAC;IAEnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IAEvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACpB;AAGD,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,aAChB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;IAExD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAenE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,iDAAiD;IACjD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mDAAmD;IACnD,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,IAAI,mBAAmB,CAE1E;AA2CD,wEAAwE;AACxE,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,GACtC,OAAO,CAwWT;AAoFD,qFAAqF;AACrF,wBAAsB,SAAS,CAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,GAAE,OAAe,GACxB,OAAO,CAAC,eAAe,CAAC,CA2T1B;AAED,oFAAoF;AACpF,wBAAsB,YAAY,CACjC,MAAM,EAAE,SAAS,GACf,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAkO/B;AAED,wBAAsB,SAAS,CAC9B,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAAC,SAAS,CAAC,CAkSpB;AAED,wEAAwE;AACxE,wBAAsB,YAAY,CACjC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,CAAC,CAmNpB;AAED,wBAAgB,YAAY,CAC3B,IAAI,EAAE,UAAU,EAChB,uBAAuB,CAAC,EAAE,OAAO,GAC/B,OAAO,CA2HT;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CA6DtD;AAED,+FAA+F;AAC/F,wBAAsB,UAAU,CAC/B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,SAAS,CAAC,CAoOpB"}
@@ -1,6 +1,6 @@
1
1
  import { ControllerCapabilityFlags, MAX_NODES, NodeIDType, NodeType, RFRegion, stripUndefined, } from "@zwave-js/core";
2
2
  import { ZWaveError, ZWaveErrorCodes, isZWaveError, } from "@zwave-js/core/error";
3
- import { Bytes, buffer2hex, cloneDeep, num2hex, pick } from "@zwave-js/shared";
3
+ import { Bytes, buffer2hex, cloneDeep, num2hex, pick, } from "@zwave-js/shared";
4
4
  import { isObject } from "alcalzone-shared/typeguards";
5
5
  import semverGte from "semver/functions/gte.js";
6
6
  import semverLt from "semver/functions/lt.js";
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type BytesView } from "@zwave-js/shared";
1
2
  import { type NVM, type NVMIO } from "./common/definitions.js";
2
3
  import { PageWriteSize } from "./nvm3/consts.js";
3
4
  import { type NVMSection } from "./nvm3/files/index.js";
@@ -30,7 +31,7 @@ export interface NVM3Meta {
30
31
  memoryMapped: boolean;
31
32
  }
32
33
  export type NVM3EraseOptions = Partial<NVM3Meta>;
33
- export declare class NVM3 implements NVM<number, Uint8Array> {
34
+ export declare class NVM3 implements NVM<number, BytesView> {
34
35
  constructor(io: NVMIO);
35
36
  private _io;
36
37
  private _access;
@@ -41,12 +42,12 @@ export declare class NVM3 implements NVM<number, Uint8Array> {
41
42
  init(): Promise<NVM3FileSystemInfo>;
42
43
  private getNVMSectionForFile;
43
44
  has(fileId: number): Promise<boolean>;
44
- readObjectData(object: NVM3ObjectHeader): Promise<Uint8Array>;
45
- get(fileId: number, section?: NVM3SectionInfo): Promise<Uint8Array | undefined>;
45
+ readObjectData(object: NVM3ObjectHeader): Promise<BytesView>;
46
+ get(fileId: number, section?: NVM3SectionInfo): Promise<BytesView | undefined>;
46
47
  private writeObjects;
47
- set(property: number, value: Uint8Array): Promise<void>;
48
+ set(property: number, value: BytesView): Promise<void>;
48
49
  /** Writes multiple values to the NVM at once. `null` / `undefined` cause the value to be deleted */
49
- setMany(values: [number, Uint8Array | null | undefined][]): Promise<void>;
50
+ setMany(values: [number, BytesView | null | undefined][]): Promise<void>;
50
51
  delete(property: number): Promise<void>;
51
52
  erase(options?: NVM3EraseOptions): Promise<void>;
52
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NVM3.d.ts","sourceRoot":"","sources":["../../../src/lib/NVM3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAa,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,EAqBN,aAAa,EAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEN,KAAK,UAAU,EAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,KAAK,gBAAgB,EAMrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,KAAK,cAAc,EAGnB,MAAM,gBAAgB,CAAC;AAUxB,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG;IAC3C,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,kBAAkB,EAAE,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;CACzC,GAAG;IACH,kBAAkB,EAAE,KAAK,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjD,qBAAa,IAAK,YAAW,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;gBAChC,EAAE,EAAE,KAAK;IAI5B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,OAAO,CAA6B;IAE5C,OAAO,CAAC,KAAK,CAAiC;IAC9C,IAAW,IAAI,IAAI,kBAAkB,GAAG,SAAS,CAEhD;YAEa,cAAc;YAad,cAAc;IAaf,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiJhD,OAAO,CAAC,oBAAoB;IAOf,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3C,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAQvD,GAAG,CACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YA6GpB,YAAY;IAuHb,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAepE,oGAAoG;IACvF,OAAO,CACnB,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC/C,OAAO,CAAC,IAAI,CAAC;IAyCH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuG7D"}
1
+ {"version":3,"file":"NVM3.d.ts","sourceRoot":"","sources":["../../../src/lib/NVM3.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,SAAS,EAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,GAAG,EAAa,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAM1E,OAAO,EAqBN,aAAa,EAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEN,KAAK,UAAU,EAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEN,KAAK,gBAAgB,EAMrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,KAAK,cAAc,EAGnB,MAAM,gBAAgB,CAAC;AAUxB,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG;IAC3C,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,kBAAkB,EAAE,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;CACzC,GAAG;IACH,kBAAkB,EAAE,KAAK,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjD,qBAAa,IAAK,YAAW,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;gBAC/B,EAAE,EAAE,KAAK;IAI5B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,OAAO,CAA6B;IAE5C,OAAO,CAAC,KAAK,CAAiC;IAC9C,IAAW,IAAI,IAAI,kBAAkB,GAAG,SAAS,CAEhD;YAEa,cAAc;YAad,cAAc;IAaf,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiJhD,OAAO,CAAC,oBAAoB;IAOf,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3C,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAQtD,GAAG,CACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YA6GnB,YAAY;IAuHb,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE,oGAAoG;IACvF,OAAO,CACnB,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC9C,OAAO,CAAC,IAAI,CAAC;IAyCH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuG7D"}
@@ -1,5 +1,5 @@
1
1
  import { ZWaveError, ZWaveErrorCodes } from "@zwave-js/core";
2
- import { Bytes, getEnumMemberName, num2hex } from "@zwave-js/shared";
2
+ import { Bytes, getEnumMemberName, num2hex, } from "@zwave-js/shared";
3
3
  import { NVMAccess } from "./common/definitions.js";
4
4
  import { nvmReadBuffer, nvmReadUInt32LE, nvmWriteBuffer, } from "./common/utils.js";
5
5
  import { FLASH_MAX_PAGE_SIZE_700, FLASH_MAX_PAGE_SIZE_800, FragmentType, NVM3_CODE_LARGE_SHIFT, NVM3_CODE_SMALL_SHIFT, NVM3_COUNTER_SIZE, NVM3_MAX_OBJ_SIZE_SMALL, NVM3_OBJ_FRAGTYPE_MASK, NVM3_OBJ_FRAGTYPE_SHIFT, NVM3_OBJ_HEADER_SIZE_LARGE, NVM3_OBJ_KEY_MASK, NVM3_OBJ_KEY_SHIFT, NVM3_OBJ_LARGE_LEN_MASK, NVM3_OBJ_TYPE_MASK, NVM3_PAGE_COUNTER_MASK, NVM3_PAGE_COUNTER_SIZE, NVM3_PAGE_HEADER_SIZE, NVM3_PAGE_MAGIC, ObjectType, PageStatus, PageWriteSize, ZWAVE_APPLICATION_NVM_SIZE, } from "./nvm3/consts.js";