@zwave-js/nvmedit 14.3.3 → 14.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/build/cjs/convert.js +36 -20
  2. package/build/cjs/convert.js.map +1 -1
  3. package/build/cjs/lib/NVM3.js +15 -7
  4. package/build/cjs/lib/NVM3.js.map +1 -1
  5. package/build/cjs/lib/NVM500.js +4 -0
  6. package/build/cjs/lib/NVM500.js.map +1 -1
  7. package/build/cjs/lib/common/routeCache.js +4 -0
  8. package/build/cjs/lib/common/routeCache.js.map +1 -1
  9. package/build/cjs/lib/common/sucUpdateEntry.js +3 -0
  10. package/build/cjs/lib/common/sucUpdateEntry.js.map +1 -1
  11. package/build/cjs/lib/common/utils.js +8 -0
  12. package/build/cjs/lib/common/utils.js.map +1 -1
  13. package/build/cjs/lib/io/BufferedNVMReader.js +4 -0
  14. package/build/cjs/lib/io/BufferedNVMReader.js.map +1 -1
  15. package/build/cjs/lib/io/NVMFileIO.js +4 -0
  16. package/build/cjs/lib/io/NVMFileIO.js.map +1 -1
  17. package/build/cjs/lib/io/NVMMemoryIO.js +4 -0
  18. package/build/cjs/lib/io/NVMMemoryIO.js.map +1 -1
  19. package/build/cjs/lib/nvm3/adapter.js +13 -8
  20. package/build/cjs/lib/nvm3/adapter.js.map +1 -1
  21. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js +5 -0
  22. package/build/cjs/lib/nvm3/files/ApplicationCCsFile.js.map +1 -1
  23. package/build/cjs/lib/nvm3/files/ApplicationDataFile.js +5 -0
  24. package/build/cjs/lib/nvm3/files/ApplicationDataFile.js.map +1 -1
  25. package/build/cjs/lib/nvm3/files/ApplicationNameFile.js +5 -0
  26. package/build/cjs/lib/nvm3/files/ApplicationNameFile.js.map +1 -1
  27. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js +5 -0
  28. package/build/cjs/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -1
  29. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js +5 -0
  30. package/build/cjs/lib/nvm3/files/ApplicationTypeFile.js.map +1 -1
  31. package/build/cjs/lib/nvm3/files/ControllerInfoFile.js +5 -0
  32. package/build/cjs/lib/nvm3/files/ControllerInfoFile.js.map +1 -1
  33. package/build/cjs/lib/nvm3/files/NVMFile.js +10 -0
  34. package/build/cjs/lib/nvm3/files/NVMFile.js.map +1 -1
  35. package/build/cjs/lib/nvm3/files/NodeInfoFiles.js +18 -0
  36. package/build/cjs/lib/nvm3/files/NodeInfoFiles.js.map +1 -1
  37. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js +32 -0
  38. package/build/cjs/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -1
  39. package/build/cjs/lib/nvm3/files/RouteCacheFiles.js +10 -0
  40. package/build/cjs/lib/nvm3/files/RouteCacheFiles.js.map +1 -1
  41. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js +9 -0
  42. package/build/cjs/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -1
  43. package/build/cjs/lib/nvm3/files/VersionFiles.js +14 -0
  44. package/build/cjs/lib/nvm3/files/VersionFiles.js.map +1 -1
  45. package/build/cjs/lib/nvm3/object.js +8 -0
  46. package/build/cjs/lib/nvm3/object.js.map +1 -1
  47. package/build/cjs/lib/nvm3/page.js +4 -0
  48. package/build/cjs/lib/nvm3/page.js.map +1 -1
  49. package/build/cjs/lib/nvm3/utils.js +8 -0
  50. package/build/cjs/lib/nvm3/utils.js.map +1 -1
  51. package/build/cjs/lib/nvm500/EntryParsers.js +7 -0
  52. package/build/cjs/lib/nvm500/EntryParsers.js.map +1 -1
  53. package/build/cjs/lib/nvm500/adapter.js +4 -0
  54. package/build/cjs/lib/nvm500/adapter.js.map +1 -1
  55. package/build/cjs/lib/nvm500/shared.js +2 -0
  56. package/build/cjs/lib/nvm500/shared.js.map +1 -1
  57. package/package.json +4 -4
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm3/page.ts"],
4
4
  "sourcesContent": ["import { Bytes } from \"@zwave-js/shared\";\nimport {\n\tNVM3_MIN_PAGE_SIZE,\n\tNVM3_PAGE_COUNTER_MASK,\n\tNVM3_PAGE_COUNTER_SIZE,\n\tNVM3_PAGE_HEADER_SIZE,\n\tNVM3_PAGE_MAGIC,\n\ttype PageStatus,\n\ttype PageWriteSize,\n} from \"./consts.js\";\nimport { type NVM3Object } from \"./object.js\";\nimport { computeBergerCode } from \"./utils.js\";\n\nexport interface NVM3PageHeader {\n\toffset: number;\n\tversion: number;\n\teraseCount: number;\n\tstatus: PageStatus;\n\tencrypted: boolean;\n\tpageSize: number;\n\twriteSize: PageWriteSize;\n\tmemoryMapped: boolean;\n\tdeviceFamily: number;\n}\n\nexport interface NVM3Page {\n\theader: NVM3PageHeader;\n\tobjects: NVM3Object[];\n}\n\n// The page size field has a value from 0 to 7 describing page sizes from 512 to 65536 bytes\nexport function pageSizeToBits(pageSize: number): number {\n\treturn Math.ceil(Math.log2(pageSize) - Math.log2(NVM3_MIN_PAGE_SIZE));\n}\n\nexport function pageSizeFromBits(bits: number): number {\n\treturn NVM3_MIN_PAGE_SIZE * Math.pow(2, bits);\n}\n\nexport function serializePageHeader(\n\theader: Omit<NVM3PageHeader, \"offset\">,\n): Uint8Array {\n\tconst ret = new Bytes(NVM3_PAGE_HEADER_SIZE);\n\n\tret.writeUInt16LE(header.version, 0);\n\tret.writeUInt16LE(NVM3_PAGE_MAGIC, 2);\n\n\tlet eraseCount = header.eraseCount & NVM3_PAGE_COUNTER_MASK;\n\tconst eraseCountCode = computeBergerCode(\n\t\teraseCount,\n\t\tNVM3_PAGE_COUNTER_SIZE,\n\t);\n\teraseCount |= eraseCountCode << NVM3_PAGE_COUNTER_SIZE;\n\tret.writeInt32LE(eraseCount, 4);\n\n\tlet eraseCountInv = ~header.eraseCount & NVM3_PAGE_COUNTER_MASK;\n\tconst eraseCountInvCode = computeBergerCode(\n\t\teraseCountInv,\n\t\tNVM3_PAGE_COUNTER_SIZE,\n\t);\n\teraseCountInv |= eraseCountInvCode << NVM3_PAGE_COUNTER_SIZE;\n\tret.writeInt32LE(eraseCountInv, 8);\n\n\tret.writeUInt32LE(header.status, 12);\n\n\tconst devInfo = (header.deviceFamily & 0x7ff)\n\t\t| ((header.writeSize & 0b1) << 11)\n\t\t| ((header.memoryMapped ? 1 : 0) << 12)\n\t\t| (pageSizeToBits(header.pageSize) << 13);\n\tret.writeUInt16LE(devInfo, 16);\n\n\tconst formatInfo = header.encrypted ? 0xfffe : 0xffff;\n\tret.writeUInt16LE(formatInfo, 18);\n\n\treturn ret;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAAA,oBAAsB;AACtB,oBAQO;AAEP,mBAAkC;AAoB5B,SAAU,eAAe,UAAgB;AAC9C,SAAO,KAAK,KAAK,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,gCAAkB,CAAC;AACrE;AAEM,SAAU,iBAAiB,MAAY;AAC5C,SAAO,mCAAqB,KAAK,IAAI,GAAG,IAAI;AAC7C;AAEM,SAAU,oBACf,QAAsC;AAEtC,QAAM,MAAM,IAAI,oBAAM,mCAAqB;AAE3C,MAAI,cAAc,OAAO,SAAS,CAAC;AACnC,MAAI,cAAc,+BAAiB,CAAC;AAEpC,MAAI,aAAa,OAAO,aAAa;AACrC,QAAM,qBAAiB,gCACtB,YACA,oCAAsB;AAEvB,gBAAc,kBAAkB;AAChC,MAAI,aAAa,YAAY,CAAC;AAE9B,MAAI,gBAAgB,CAAC,OAAO,aAAa;AACzC,QAAM,wBAAoB,gCACzB,eACA,oCAAsB;AAEvB,mBAAiB,qBAAqB;AACtC,MAAI,aAAa,eAAe,CAAC;AAEjC,MAAI,cAAc,OAAO,QAAQ,EAAE;AAEnC,QAAM,UAAW,OAAO,eAAe,QAClC,OAAO,YAAY,MAAQ,MAC3B,OAAO,eAAe,IAAI,MAAM,KACjC,eAAe,OAAO,QAAQ,KAAK;AACvC,MAAI,cAAc,SAAS,EAAE;AAE7B,QAAM,aAAa,OAAO,YAAY,QAAS;AAC/C,MAAI,cAAc,YAAY,EAAE;AAEhC,SAAO;AACR;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAAA,oBAAsB;AACtB,oBAQO;AAEP,mBAAkC;AAoB5B,SAAU,eAAe,UAAgB;AAC9C,SAAO,KAAK,KAAK,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,gCAAkB,CAAC;AACrE;AAFgB;AAIV,SAAU,iBAAiB,MAAY;AAC5C,SAAO,mCAAqB,KAAK,IAAI,GAAG,IAAI;AAC7C;AAFgB;AAIV,SAAU,oBACf,QAAsC;AAEtC,QAAM,MAAM,IAAI,oBAAM,mCAAqB;AAE3C,MAAI,cAAc,OAAO,SAAS,CAAC;AACnC,MAAI,cAAc,+BAAiB,CAAC;AAEpC,MAAI,aAAa,OAAO,aAAa;AACrC,QAAM,qBAAiB,gCACtB,YACA,oCAAsB;AAEvB,gBAAc,kBAAkB;AAChC,MAAI,aAAa,YAAY,CAAC;AAE9B,MAAI,gBAAgB,CAAC,OAAO,aAAa;AACzC,QAAM,wBAAoB,gCACzB,eACA,oCAAsB;AAEvB,mBAAiB,qBAAqB;AACtC,MAAI,aAAa,eAAe,CAAC;AAEjC,MAAI,cAAc,OAAO,QAAQ,EAAE;AAEnC,QAAM,UAAW,OAAO,eAAe,QAClC,OAAO,YAAY,MAAQ,MAC3B,OAAO,eAAe,IAAI,MAAM,KACjC,eAAe,OAAO,QAAQ,KAAK;AACvC,MAAI,cAAc,SAAS,EAAE;AAE7B,QAAM,aAAa,OAAO,YAAY,QAAS;AAC/C,MAAI,cAAc,YAAY,EAAE;AAEhC,SAAO;AACR;AApCgB;",
6
6
  "names": []
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -40,11 +41,13 @@ function computeBergerCode(word, numBits = 32) {
40
41
  ret = (ret + (ret >> 4) & 252645135) * 16843009 >> 24;
41
42
  return numBits - ret;
42
43
  }
44
+ __name(computeBergerCode, "computeBergerCode");
43
45
  function validateBergerCode(word, code, numBits = 32) {
44
46
  if (computeBergerCode(word, numBits) !== code) {
45
47
  throw new import_safe.ZWaveError("Berger Code validation failed!", import_safe.ZWaveErrorCodes.NVM_InvalidFormat);
46
48
  }
47
49
  }
50
+ __name(validateBergerCode, "validateBergerCode");
48
51
  function computeBergerCodeMulti(words, numBits) {
49
52
  let ret = 0;
50
53
  for (const word of words) {
@@ -55,6 +58,7 @@ function computeBergerCodeMulti(words, numBits) {
55
58
  }
56
59
  return ret;
57
60
  }
61
+ __name(computeBergerCodeMulti, "computeBergerCodeMulti");
58
62
  function validateBergerCodeMulti(words, numBits) {
59
63
  let actual = 0;
60
64
  let expected;
@@ -72,6 +76,7 @@ function validateBergerCodeMulti(words, numBits) {
72
76
  throw new import_safe.ZWaveError("Berger Code validation failed!", import_safe.ZWaveErrorCodes.NVM_InvalidFormat);
73
77
  }
74
78
  }
79
+ __name(validateBergerCodeMulti, "validateBergerCodeMulti");
75
80
  function mapToObject(map) {
76
81
  const obj = {};
77
82
  for (const [key, value] of map) {
@@ -79,6 +84,7 @@ function mapToObject(map) {
79
84
  }
80
85
  return obj;
81
86
  }
87
+ __name(mapToObject, "mapToObject");
82
88
  function dumpObject(obj, json = false) {
83
89
  try {
84
90
  if (json) {
@@ -102,6 +108,7 @@ function dumpObject(obj, json = false) {
102
108
  }
103
109
  console.log();
104
110
  }
111
+ __name(dumpObject, "dumpObject");
105
112
  async function dumpNVM(nvm) {
106
113
  for (const [name, section] of Object.entries(nvm.info.sections)) {
107
114
  console.log(`NVM section: ${name}`);
@@ -153,6 +160,7 @@ async function dumpNVM(nvm) {
153
160
  console.log();
154
161
  }
155
162
  }
163
+ __name(dumpNVM, "dumpNVM");
156
164
  // Annotate the CommonJS export names for ESM import in node:
157
165
  0 && (module.exports = {
158
166
  computeBergerCode,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm3/utils.ts"],
4
4
  "sourcesContent": ["import { ZWaveError, ZWaveErrorCodes } from \"@zwave-js/core/safe\";\nimport { buffer2hex, num2hex } from \"@zwave-js/shared\";\nimport { type NVM3 } from \"../NVM3.js\";\nimport { FragmentType, ObjectType, PageStatus } from \"./consts.js\";\nimport { NVMFile } from \"./files/NVMFile.js\";\nimport type { NVM3Object } from \"./object.js\";\n\n/** Counts the number of unset bits in the given word */\nexport function computeBergerCode(word: number, numBits: number = 32): number {\n\tlet ret = word;\n\n\t// Mask the number of bits we're interested in\n\tif (numBits < 32) {\n\t\tret &= (1 << numBits) - 1;\n\t}\n\n\t// And count the bits, see http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel\n\tret = ret - ((ret >> 1) & 0x55555555);\n\tret = (ret & 0x33333333) + ((ret >> 2) & 0x33333333);\n\tret = (((ret + (ret >> 4)) & 0xf0f0f0f) * 0x1010101) >> 24;\n\n\treturn numBits - ret;\n}\n\nexport function validateBergerCode(\n\tword: number,\n\tcode: number,\n\tnumBits: number = 32,\n): void {\n\tif (computeBergerCode(word, numBits) !== code) {\n\t\tthrow new ZWaveError(\n\t\t\t\"Berger Code validation failed!\",\n\t\t\tZWaveErrorCodes.NVM_InvalidFormat,\n\t\t);\n\t}\n}\n\nexport function computeBergerCodeMulti(\n\twords: number[],\n\tnumBits: number,\n): number {\n\tlet ret = 0;\n\tfor (const word of words) {\n\t\tret += computeBergerCode(word, Math.min(numBits, 32));\n\t\tif (numBits < 32) break;\n\t\tnumBits -= 32;\n\t}\n\treturn ret;\n}\n\nexport function validateBergerCodeMulti(\n\twords: number[],\n\tnumBits: number,\n): void {\n\tlet actual = 0;\n\tlet expected: number;\n\tfor (const word of words) {\n\t\tactual += computeBergerCode(word, Math.min(numBits, 32));\n\t\tif (numBits < 32) {\n\t\t\tconst maskSize = 32 - numBits;\n\t\t\tconst mask = (1 << maskSize) - 1;\n\t\t\texpected = (word >>> numBits) & mask;\n\t\t\tbreak;\n\t\t}\n\t\tnumBits -= 32;\n\t}\n\tif (actual !== expected!) {\n\t\tthrow new ZWaveError(\n\t\t\t\"Berger Code validation failed!\",\n\t\t\tZWaveErrorCodes.NVM_InvalidFormat,\n\t\t);\n\t}\n}\n\nexport function mapToObject<T, TMap extends Map<string | number, T>>(\n\tmap: TMap,\n): Record<string, T> {\n\tconst obj: Record<string | number, T> = {};\n\tfor (const [key, value] of map) {\n\t\tobj[key] = value;\n\t}\n\treturn obj;\n}\n\nfunction dumpObject(\n\tobj: NVM3Object & { offset: number },\n\tjson: boolean = false,\n): void {\n\ttry {\n\t\tif (json) {\n\t\t\tconst file = NVMFile.from(obj.key, obj.data!, \"7.0.0\");\n\t\t\tconsole.log(\n\t\t\t\tJSON.stringify(\n\t\t\t\t\t{\n\t\t\t\t\t\toffset: num2hex(obj.offset),\n\t\t\t\t\t\t...file.toJSON(),\n\t\t\t\t\t},\n\t\t\t\t\tnull,\n\t\t\t\t\t2,\n\t\t\t\t),\n\t\t\t);\n\t\t\tconsole.log();\n\t\t\treturn;\n\t\t}\n\t} catch {\n\t\t// ignore\n\t}\n\tconst prefix = json ? \"\" : \" \";\n\tconsole.log(`${prefix}\u00B7 offset: ${num2hex(obj.offset)}`);\n\tconsole.log(`${prefix} key: 0x${obj.key.toString(16)}`);\n\tconsole.log(`${prefix} type: ${ObjectType[obj.type]}`);\n\tconsole.log(`${prefix} fragment type: ${FragmentType[obj.fragmentType]}`);\n\tif (obj.data) {\n\t\tconsole.log(\n\t\t\t`${prefix} data: ${\n\t\t\t\tbuffer2hex(obj.data)\n\t\t\t} (${obj.data.length} bytes)`,\n\t\t);\n\t}\n\tconsole.log();\n}\n\nexport async function dumpNVM(nvm: NVM3): Promise<void> {\n\tfor (const [name, section] of Object.entries(nvm.info!.sections)) {\n\t\tconsole.log(`NVM section: ${name}`);\n\n\t\tfor (const page of section.pages) {\n\t\t\tconsole.log(\"\");\n\t\t\tconsole.log(`page (offset 0x${page.offset.toString(16)}):`);\n\t\t\tconsole.log(` version: ${page.version}`);\n\t\t\tconsole.log(` eraseCount: ${page.eraseCount}`);\n\t\t\tconsole.log(` status: ${PageStatus[page.status]}`);\n\t\t\tconsole.log(` encrypted: ${page.encrypted}`);\n\t\t\tconsole.log(` pageSize: ${page.pageSize}`);\n\t\t\tconsole.log(` writeSize: ${page.writeSize}`);\n\t\t\tconsole.log(` memoryMapped: ${page.memoryMapped}`);\n\t\t\tconsole.log(` deviceFamily: ${page.deviceFamily}`);\n\t\t\tconsole.log(\"\");\n\t\t\tif (page.objects.length) {\n\t\t\t\tconsole.log(` raw objects:`);\n\n\t\t\t\tfor (const objectHeader of page.objects) {\n\t\t\t\t\tconst objectData = objectHeader.type !== ObjectType.Deleted\n\t\t\t\t\t\t? await nvm.readObjectData(objectHeader)\n\t\t\t\t\t\t: undefined;\n\t\t\t\t\tdumpObject({\n\t\t\t\t\t\toffset: objectHeader.offset,\n\t\t\t\t\t\tkey: objectHeader.key,\n\t\t\t\t\t\ttype: objectHeader.type,\n\t\t\t\t\t\tfragmentType: objectHeader.fragmentType,\n\t\t\t\t\t\tdata: objectData,\n\t\t\t\t\t}, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconsole.log();\n\t\tconsole.log();\n\t}\n\n\tfor (const [name, section] of Object.entries(nvm.info!.sections)) {\n\t\tconsole.log(`${name} objects:`);\n\t\tfor (const [fileId, pageIndex] of section.objectLocations) {\n\t\t\tconst page = section.pages[pageIndex];\n\t\t\tconst objectHeader = page.objects.findLast((o) => o.key === fileId);\n\t\t\tif (!objectHeader) continue;\n\t\t\tconst objectData = await nvm.get(fileId);\n\n\t\t\tdumpObject({\n\t\t\t\toffset: objectHeader.offset,\n\t\t\t\tkey: fileId,\n\t\t\t\ttype: objectHeader.type,\n\t\t\t\tfragmentType: FragmentType.None,\n\t\t\t\tdata: objectData,\n\t\t\t}, true);\n\t\t}\n\n\t\tconsole.log();\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -40,6 +41,7 @@ function parseNVMDescriptor(data, offset = 0) {
40
41
  protocolVersion: `${buffer[offset + 10]}.${buffer[offset + 11].toString().padStart(2, "0")}`
41
42
  };
42
43
  }
44
+ __name(parseNVMDescriptor, "parseNVMDescriptor");
43
45
  function encodeNVMDescriptor(descriptor) {
44
46
  const ret = new import_safe2.Bytes(12);
45
47
  ret.writeUInt16BE(descriptor.manufacturerID, 0);
@@ -54,6 +56,7 @@ function encodeNVMDescriptor(descriptor) {
54
56
  ret[11] = protocolVersionParts[1];
55
57
  return ret;
56
58
  }
59
+ __name(encodeNVMDescriptor, "encodeNVMDescriptor");
57
60
  function parseNVMModuleDescriptor(data, offset = 0) {
58
61
  const buffer = import_safe2.Bytes.view(data);
59
62
  return {
@@ -62,6 +65,7 @@ function parseNVMModuleDescriptor(data, offset = 0) {
62
65
  version: `${buffer[offset + 3]}.${buffer[offset + 4]}`
63
66
  };
64
67
  }
68
+ __name(parseNVMModuleDescriptor, "parseNVMModuleDescriptor");
65
69
  function encodeNVMModuleDescriptor(descriptior) {
66
70
  const ret = new import_safe2.Bytes(5);
67
71
  ret.writeUInt16BE(descriptior.size, 0);
@@ -71,6 +75,7 @@ function encodeNVMModuleDescriptor(descriptior) {
71
75
  ret[4] = versionParts[1];
72
76
  return ret;
73
77
  }
78
+ __name(encodeNVMModuleDescriptor, "encodeNVMModuleDescriptor");
74
79
  function parseNVM500NodeInfo(buffer, offset) {
75
80
  const { hasSpecificDeviceClass, ...protocolInfo } = (0, import_safe.parseNodeProtocolInfo)(buffer, offset);
76
81
  const genericDeviceClass = buffer[offset + 3];
@@ -81,6 +86,7 @@ function parseNVM500NodeInfo(buffer, offset) {
81
86
  specificDeviceClass
82
87
  };
83
88
  }
89
+ __name(parseNVM500NodeInfo, "parseNVM500NodeInfo");
84
90
  function encodeNVM500NodeInfo(nodeInfo) {
85
91
  return import_safe2.Bytes.concat([
86
92
  (0, import_safe.encodeNodeProtocolInfo)({
@@ -93,6 +99,7 @@ function encodeNVM500NodeInfo(nodeInfo) {
93
99
  ])
94
100
  ]);
95
101
  }
102
+ __name(encodeNVM500NodeInfo, "encodeNVM500NodeInfo");
96
103
  // Annotate the CommonJS export names for ESM import in node:
97
104
  0 && (module.exports = {
98
105
  encodeNVM500NodeInfo,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm500/EntryParsers.ts"],
4
4
  "sourcesContent": ["import {\n\ttype NodeProtocolInfo,\n\tencodeNodeProtocolInfo,\n\tparseNodeProtocolInfo,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport type { NVMModuleType } from \"./shared.js\";\n\nexport interface NVMDescriptor {\n\tmanufacturerID: number;\n\tfirmwareID: number;\n\tproductType: number;\n\tproductID: number;\n\tfirmwareVersion: string;\n\tprotocolVersion: string;\n}\n\nexport function parseNVMDescriptor(\n\tdata: Uint8Array,\n\toffset: number = 0,\n): NVMDescriptor {\n\tconst buffer = Bytes.view(data);\n\treturn {\n\t\tmanufacturerID: buffer.readUInt16BE(offset),\n\t\tfirmwareID: buffer.readUInt16BE(offset + 2),\n\t\tproductType: buffer.readUInt16BE(offset + 4),\n\t\tproductID: buffer.readUInt16BE(offset + 6),\n\t\tfirmwareVersion: `${buffer[offset + 8]}.${buffer[offset + 9]}`,\n\t\t// Z-Wave protocol versions are formatted as \"6.07\" and similar\n\t\tprotocolVersion: `${buffer[offset + 10]}.${\n\t\t\tbuffer[offset + 11].toString().padStart(\n\t\t\t\t2,\n\t\t\t\t\"0\",\n\t\t\t)\n\t\t}`,\n\t};\n}\n\nexport function encodeNVMDescriptor(descriptor: NVMDescriptor): Bytes {\n\tconst ret = new Bytes(12);\n\tret.writeUInt16BE(descriptor.manufacturerID, 0);\n\tret.writeUInt16BE(descriptor.firmwareID, 2);\n\tret.writeUInt16BE(descriptor.productType, 4);\n\tret.writeUInt16BE(descriptor.productID, 6);\n\tconst fwVersionParts = descriptor.firmwareVersion\n\t\t.split(\".\")\n\t\t.map((i) => parseInt(i));\n\tret[8] = fwVersionParts[0];\n\tret[9] = fwVersionParts[1];\n\tconst protocolVersionParts = descriptor.protocolVersion\n\t\t.split(\".\")\n\t\t.map((i) => parseInt(i));\n\tret[10] = protocolVersionParts[0];\n\tret[11] = protocolVersionParts[1];\n\treturn ret;\n}\n\nexport interface NVMModuleDescriptor {\n\tsize: number;\n\ttype: NVMModuleType;\n\tversion: string;\n}\n\nexport function parseNVMModuleDescriptor(\n\tdata: Uint8Array,\n\toffset: number = 0,\n): NVMModuleDescriptor {\n\tconst buffer = Bytes.view(data);\n\treturn {\n\t\tsize: buffer.readUInt16BE(offset),\n\t\ttype: buffer[offset + 2],\n\t\tversion: `${buffer[offset + 3]}.${buffer[offset + 4]}`,\n\t};\n}\n\nexport function encodeNVMModuleDescriptor(\n\tdescriptior: NVMModuleDescriptor,\n): Bytes {\n\tconst ret = new Bytes(5);\n\tret.writeUInt16BE(descriptior.size, 0);\n\tret[2] = descriptior.type;\n\tconst versionParts = descriptior.version.split(\".\").map((i) => parseInt(i));\n\tret[3] = versionParts[0];\n\tret[4] = versionParts[1];\n\treturn ret;\n}\n\nexport interface NVM500NodeInfo\n\textends Omit<NodeProtocolInfo, \"hasSpecificDeviceClass\">\n{\n\tgenericDeviceClass: number;\n\tspecificDeviceClass: number | null;\n}\n\nexport function parseNVM500NodeInfo(\n\tbuffer: Uint8Array,\n\toffset: number,\n): NVM500NodeInfo {\n\tconst { hasSpecificDeviceClass, ...protocolInfo } = parseNodeProtocolInfo(\n\t\tbuffer,\n\t\toffset,\n\t);\n\tconst genericDeviceClass = buffer[offset + 3];\n\tconst specificDeviceClass = hasSpecificDeviceClass\n\t\t? buffer[offset + 4]\n\t\t: null;\n\treturn {\n\t\t...protocolInfo,\n\t\tgenericDeviceClass,\n\t\tspecificDeviceClass,\n\t};\n}\n\nexport function encodeNVM500NodeInfo(nodeInfo: NVM500NodeInfo): Bytes {\n\treturn Bytes.concat([\n\t\tencodeNodeProtocolInfo({\n\t\t\t...nodeInfo,\n\t\t\thasSpecificDeviceClass: !!nodeInfo.specificDeviceClass,\n\t\t}),\n\t\tBytes.from([\n\t\t\tnodeInfo.genericDeviceClass,\n\t\t\tnodeInfo.specificDeviceClass ?? 0,\n\t\t]),\n\t]);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;AAAA,kBAIO;AACP,IAAAA,eAAsB;AAYhB,SAAU,mBACf,MACA,SAAiB,GAAC;AAElB,QAAM,SAAS,mBAAM,KAAK,IAAI;AAC9B,SAAO;IACN,gBAAgB,OAAO,aAAa,MAAM;IAC1C,YAAY,OAAO,aAAa,SAAS,CAAC;IAC1C,aAAa,OAAO,aAAa,SAAS,CAAC;IAC3C,WAAW,OAAO,aAAa,SAAS,CAAC;IACzC,iBAAiB,GAAG,OAAO,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC;;IAE5D,iBAAiB,GAAG,OAAO,SAAS,EAAE,CAAC,IACtC,OAAO,SAAS,EAAE,EAAE,SAAQ,EAAG,SAC9B,GACA,GAAG,CAEL;;AAEF;AAEM,SAAU,oBAAoB,YAAyB;AAC5D,QAAM,MAAM,IAAI,mBAAM,EAAE;AACxB,MAAI,cAAc,WAAW,gBAAgB,CAAC;AAC9C,MAAI,cAAc,WAAW,YAAY,CAAC;AAC1C,MAAI,cAAc,WAAW,aAAa,CAAC;AAC3C,MAAI,cAAc,WAAW,WAAW,CAAC;AACzC,QAAM,iBAAiB,WAAW,gBAChC,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AACxB,MAAI,CAAC,IAAI,eAAe,CAAC;AACzB,MAAI,CAAC,IAAI,eAAe,CAAC;AACzB,QAAM,uBAAuB,WAAW,gBACtC,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AACxB,MAAI,EAAE,IAAI,qBAAqB,CAAC;AAChC,MAAI,EAAE,IAAI,qBAAqB,CAAC;AAChC,SAAO;AACR;AAQM,SAAU,yBACf,MACA,SAAiB,GAAC;AAElB,QAAM,SAAS,mBAAM,KAAK,IAAI;AAC9B,SAAO;IACN,MAAM,OAAO,aAAa,MAAM;IAChC,MAAM,OAAO,SAAS,CAAC;IACvB,SAAS,GAAG,OAAO,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC;;AAEtD;AAEM,SAAU,0BACf,aAAgC;AAEhC,QAAM,MAAM,IAAI,mBAAM,CAAC;AACvB,MAAI,cAAc,YAAY,MAAM,CAAC;AACrC,MAAI,CAAC,IAAI,YAAY;AACrB,QAAM,eAAe,YAAY,QAAQ,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AAC1E,MAAI,CAAC,IAAI,aAAa,CAAC;AACvB,MAAI,CAAC,IAAI,aAAa,CAAC;AACvB,SAAO;AACR;AASM,SAAU,oBACf,QACA,QAAc;AAEd,QAAM,EAAE,wBAAwB,GAAG,aAAY,QAAK,mCACnD,QACA,MAAM;AAEP,QAAM,qBAAqB,OAAO,SAAS,CAAC;AAC5C,QAAM,sBAAsB,yBACzB,OAAO,SAAS,CAAC,IACjB;AACH,SAAO;IACN,GAAG;IACH;IACA;;AAEF;AAEM,SAAU,qBAAqB,UAAwB;AAC5D,SAAO,mBAAM,OAAO;QACnB,oCAAuB;MACtB,GAAG;MACH,wBAAwB,CAAC,CAAC,SAAS;KACnC;IACD,mBAAM,KAAK;MACV,SAAS;MACT,SAAS,uBAAuB;KAChC;GACD;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;AAAA,kBAIO;AACP,IAAAA,eAAsB;AAYhB,SAAU,mBACf,MACA,SAAiB,GAAC;AAElB,QAAM,SAAS,mBAAM,KAAK,IAAI;AAC9B,SAAO;IACN,gBAAgB,OAAO,aAAa,MAAM;IAC1C,YAAY,OAAO,aAAa,SAAS,CAAC;IAC1C,aAAa,OAAO,aAAa,SAAS,CAAC;IAC3C,WAAW,OAAO,aAAa,SAAS,CAAC;IACzC,iBAAiB,GAAG,OAAO,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC;;IAE5D,iBAAiB,GAAG,OAAO,SAAS,EAAE,CAAC,IACtC,OAAO,SAAS,EAAE,EAAE,SAAQ,EAAG,SAC9B,GACA,GAAG,CAEL;;AAEF;AAnBgB;AAqBV,SAAU,oBAAoB,YAAyB;AAC5D,QAAM,MAAM,IAAI,mBAAM,EAAE;AACxB,MAAI,cAAc,WAAW,gBAAgB,CAAC;AAC9C,MAAI,cAAc,WAAW,YAAY,CAAC;AAC1C,MAAI,cAAc,WAAW,aAAa,CAAC;AAC3C,MAAI,cAAc,WAAW,WAAW,CAAC;AACzC,QAAM,iBAAiB,WAAW,gBAChC,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AACxB,MAAI,CAAC,IAAI,eAAe,CAAC;AACzB,MAAI,CAAC,IAAI,eAAe,CAAC;AACzB,QAAM,uBAAuB,WAAW,gBACtC,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AACxB,MAAI,EAAE,IAAI,qBAAqB,CAAC;AAChC,MAAI,EAAE,IAAI,qBAAqB,CAAC;AAChC,SAAO;AACR;AAjBgB;AAyBV,SAAU,yBACf,MACA,SAAiB,GAAC;AAElB,QAAM,SAAS,mBAAM,KAAK,IAAI;AAC9B,SAAO;IACN,MAAM,OAAO,aAAa,MAAM;IAChC,MAAM,OAAO,SAAS,CAAC;IACvB,SAAS,GAAG,OAAO,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC;;AAEtD;AAVgB;AAYV,SAAU,0BACf,aAAgC;AAEhC,QAAM,MAAM,IAAI,mBAAM,CAAC;AACvB,MAAI,cAAc,YAAY,MAAM,CAAC;AACrC,MAAI,CAAC,IAAI,YAAY;AACrB,QAAM,eAAe,YAAY,QAAQ,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;AAC1E,MAAI,CAAC,IAAI,aAAa,CAAC;AACvB,MAAI,CAAC,IAAI,aAAa,CAAC;AACvB,SAAO;AACR;AAVgB;AAmBV,SAAU,oBACf,QACA,QAAc;AAEd,QAAM,EAAE,wBAAwB,GAAG,aAAY,QAAK,mCACnD,QACA,MAAM;AAEP,QAAM,qBAAqB,OAAO,SAAS,CAAC;AAC5C,QAAM,sBAAsB,yBACzB,OAAO,SAAS,CAAC,IACjB;AACH,SAAO;IACN,GAAG;IACH;IACA;;AAEF;AAjBgB;AAmBV,SAAU,qBAAqB,UAAwB;AAC5D,SAAO,mBAAM,OAAO;QACnB,oCAAuB;MACtB,GAAG;MACH,wBAAwB,CAAC,CAAC,SAAS;KACnC;IACD,mBAAM,KAAK;MACV,SAAS;MACT,SAAS,uBAAuB;KAChC;GACD;AACF;AAXgB;",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -27,6 +28,9 @@ var import_helpers = require("alcalzone-shared/helpers");
27
28
  var import_consts = require("../../consts.js");
28
29
  var import_shared2 = require("./shared.js");
29
30
  class NVM500Adapter {
31
+ static {
32
+ __name(this, "NVM500Adapter");
33
+ }
30
34
  constructor(nvm) {
31
35
  this._nvm = nvm;
32
36
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm500/adapter.ts"],
4
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, type NVM500Info } from \"../NVM500.js\";\nimport {\n\ttype ControllerNVMProperty,\n\ttype NVMAdapter,\n\ttype NVMProperty,\n\ttype NVMPropertyToDataType,\n\ttype NodeNVMProperty,\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": "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",
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;;",
6
6
  "names": ["import_shared", "info"]
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -109,6 +110,7 @@ function resolveLayout(layout) {
109
110
  const nvmSize = endMarker.offset + endMarker.size;
110
111
  return { layout: ret, nvmSize };
111
112
  }
113
+ __name(resolveLayout, "resolveLayout");
112
114
  // Annotate the CommonJS export names for ESM import in node:
113
115
  0 && (module.exports = {
114
116
  APPL_NODEPARM_MAX,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/nvm500/shared.ts"],
4
4
  "sourcesContent": ["import { NUM_NODEMASK_BYTES } from \"@zwave-js/core/safe\";\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;",
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;",
6
6
  "names": ["NVMEntryType", "NVMModuleType"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zwave-js/nvmedit",
3
- "version": "14.3.3",
3
+ "version": "14.3.4",
4
4
  "description": "zwave-js: library to edit NVM backups",
5
5
  "keywords": [],
6
6
  "publishConfig": {
@@ -47,8 +47,8 @@
47
47
  "node": ">= 18"
48
48
  },
49
49
  "dependencies": {
50
- "@zwave-js/core": "14.3.3",
51
- "@zwave-js/shared": "14.3.2",
50
+ "@zwave-js/core": "14.3.4",
51
+ "@zwave-js/shared": "14.3.4",
52
52
  "alcalzone-shared": "^5.0.0",
53
53
  "reflect-metadata": "^0.2.2",
54
54
  "semver": "^7.6.3",
@@ -65,7 +65,7 @@
65
65
  "test:dirty": "tsx ../maintenance/src/resolveDirtyTests.ts --run"
66
66
  },
67
67
  "devDependencies": {
68
- "@alcalzone/esm2cjs": "^1.4.0",
68
+ "@alcalzone/esm2cjs": "^1.4.1",
69
69
  "@microsoft/api-extractor": "^7.47.9",
70
70
  "@types/node": "^18.19.63",
71
71
  "@types/semver": "^7.5.8",