@zwave-js/nvmedit 13.3.0 → 13.4.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 (235) hide show
  1. package/build/cli.js +5 -5
  2. package/build/cli.js.map +1 -1
  3. package/build/convert.d.ts +15 -14
  4. package/build/convert.d.ts.map +1 -1
  5. package/build/convert.js +647 -389
  6. package/build/convert.js.map +1 -1
  7. package/build/index.d.ts +12 -4
  8. package/build/index.d.ts.map +1 -1
  9. package/build/index.js +20 -2
  10. package/build/index.js.map +1 -1
  11. package/build/index_safe.d.ts +7 -4
  12. package/build/index_safe.d.ts.map +1 -1
  13. package/build/index_safe.js +4 -2
  14. package/build/index_safe.js.map +1 -1
  15. package/build/lib/NVM3.d.ts +53 -0
  16. package/build/lib/NVM3.d.ts.map +1 -0
  17. package/build/lib/NVM3.js +650 -0
  18. package/build/lib/NVM3.js.map +1 -0
  19. package/build/lib/NVM500.d.ts +46 -0
  20. package/build/lib/NVM500.d.ts.map +1 -0
  21. package/build/lib/NVM500.js +413 -0
  22. package/build/lib/NVM500.js.map +1 -0
  23. package/build/lib/common/definitions.d.ts +138 -0
  24. package/build/lib/common/definitions.d.ts.map +1 -0
  25. package/build/lib/common/definitions.js +11 -0
  26. package/build/lib/common/definitions.js.map +1 -0
  27. package/build/lib/common/routeCache.d.ts +18 -0
  28. package/build/lib/common/routeCache.d.ts.map +1 -0
  29. package/build/lib/common/routeCache.js +56 -0
  30. package/build/lib/common/routeCache.js.map +1 -0
  31. package/build/lib/common/sucUpdateEntry.d.ts +10 -0
  32. package/build/lib/common/sucUpdateEntry.d.ts.map +1 -0
  33. package/build/lib/common/sucUpdateEntry.js +35 -0
  34. package/build/lib/common/sucUpdateEntry.js.map +1 -0
  35. package/build/lib/common/utils.d.ts +9 -0
  36. package/build/lib/common/utils.d.ts.map +1 -0
  37. package/build/lib/common/utils.js +52 -0
  38. package/build/lib/common/utils.js.map +1 -0
  39. package/build/lib/io/BufferedNVMReader.d.ts +21 -0
  40. package/build/lib/io/BufferedNVMReader.d.ts.map +1 -0
  41. package/build/lib/io/BufferedNVMReader.js +79 -0
  42. package/build/lib/io/BufferedNVMReader.js.map +1 -0
  43. package/build/lib/io/NVMFileIO.d.ts +24 -0
  44. package/build/lib/io/NVMFileIO.d.ts.map +1 -0
  45. package/build/lib/io/NVMFileIO.js +86 -0
  46. package/build/lib/io/NVMFileIO.js.map +1 -0
  47. package/build/lib/io/NVMMemoryIO.d.ts +20 -0
  48. package/build/lib/io/NVMMemoryIO.d.ts.map +1 -0
  49. package/build/lib/io/NVMMemoryIO.js +48 -0
  50. package/build/lib/io/NVMMemoryIO.js.map +1 -0
  51. package/build/lib/nvm3/adapter.d.ts +33 -0
  52. package/build/lib/nvm3/adapter.d.ts.map +1 -0
  53. package/build/lib/nvm3/adapter.js +903 -0
  54. package/build/lib/nvm3/adapter.js.map +1 -0
  55. package/build/lib/nvm3/consts.d.ts.map +1 -0
  56. package/build/lib/nvm3/consts.js.map +1 -0
  57. package/build/{files → lib/nvm3/files}/ApplicationCCsFile.d.ts +5 -3
  58. package/build/lib/nvm3/files/ApplicationCCsFile.d.ts.map +1 -0
  59. package/build/{files → lib/nvm3/files}/ApplicationCCsFile.js +4 -3
  60. package/build/lib/nvm3/files/ApplicationCCsFile.js.map +1 -0
  61. package/build/{files → lib/nvm3/files}/ApplicationDataFile.d.ts +4 -4
  62. package/build/lib/nvm3/files/ApplicationDataFile.d.ts.map +1 -0
  63. package/build/{files → lib/nvm3/files}/ApplicationDataFile.js +7 -6
  64. package/build/lib/nvm3/files/ApplicationDataFile.js.map +1 -0
  65. package/build/{files → lib/nvm3/files}/ApplicationNameFile.d.ts +5 -3
  66. package/build/lib/nvm3/files/ApplicationNameFile.d.ts.map +1 -0
  67. package/build/{files → lib/nvm3/files}/ApplicationNameFile.js +4 -3
  68. package/build/lib/nvm3/files/ApplicationNameFile.js.map +1 -0
  69. package/build/{files → lib/nvm3/files}/ApplicationRFConfigFile.d.ts +5 -3
  70. package/build/lib/nvm3/files/ApplicationRFConfigFile.d.ts.map +1 -0
  71. package/build/{files → lib/nvm3/files}/ApplicationRFConfigFile.js +4 -3
  72. package/build/lib/nvm3/files/ApplicationRFConfigFile.js.map +1 -0
  73. package/build/{files → lib/nvm3/files}/ApplicationTypeFile.d.ts +5 -3
  74. package/build/lib/nvm3/files/ApplicationTypeFile.d.ts.map +1 -0
  75. package/build/{files → lib/nvm3/files}/ApplicationTypeFile.js +4 -3
  76. package/build/lib/nvm3/files/ApplicationTypeFile.js.map +1 -0
  77. package/build/{files → lib/nvm3/files}/ControllerInfoFile.d.ts +5 -3
  78. package/build/lib/nvm3/files/ControllerInfoFile.d.ts.map +1 -0
  79. package/build/{files → lib/nvm3/files}/ControllerInfoFile.js +4 -3
  80. package/build/lib/nvm3/files/ControllerInfoFile.js.map +1 -0
  81. package/build/{files → lib/nvm3/files}/NVMFile.d.ts +18 -7
  82. package/build/lib/nvm3/files/NVMFile.d.ts.map +1 -0
  83. package/build/{files → lib/nvm3/files}/NVMFile.js +44 -30
  84. package/build/lib/nvm3/files/NVMFile.js.map +1 -0
  85. package/build/{files → lib/nvm3/files}/NodeInfoFiles.d.ts +10 -4
  86. package/build/lib/nvm3/files/NodeInfoFiles.d.ts.map +1 -0
  87. package/build/{files → lib/nvm3/files}/NodeInfoFiles.js +6 -3
  88. package/build/lib/nvm3/files/NodeInfoFiles.js.map +1 -0
  89. package/build/{files → lib/nvm3/files}/ProtocolNodeMaskFiles.d.ts +22 -15
  90. package/build/lib/nvm3/files/ProtocolNodeMaskFiles.d.ts.map +1 -0
  91. package/build/{files → lib/nvm3/files}/ProtocolNodeMaskFiles.js +50 -30
  92. package/build/lib/nvm3/files/ProtocolNodeMaskFiles.js.map +1 -0
  93. package/build/{files → lib/nvm3/files}/RouteCacheFiles.d.ts +8 -17
  94. package/build/lib/nvm3/files/RouteCacheFiles.d.ts.map +1 -0
  95. package/build/{files → lib/nvm3/files}/RouteCacheFiles.js +16 -64
  96. package/build/lib/nvm3/files/RouteCacheFiles.js.map +1 -0
  97. package/build/{files → lib/nvm3/files}/SUCUpdateEntriesFile.d.ts +10 -13
  98. package/build/lib/nvm3/files/SUCUpdateEntriesFile.d.ts.map +1 -0
  99. package/build/{files → lib/nvm3/files}/SUCUpdateEntriesFile.js +15 -42
  100. package/build/lib/nvm3/files/SUCUpdateEntriesFile.js.map +1 -0
  101. package/build/{files → lib/nvm3/files}/VersionFiles.d.ts +7 -5
  102. package/build/lib/nvm3/files/VersionFiles.d.ts.map +1 -0
  103. package/build/{files → lib/nvm3/files}/VersionFiles.js +10 -7
  104. package/build/lib/nvm3/files/VersionFiles.js.map +1 -0
  105. package/build/{files → lib/nvm3/files}/index.d.ts +1 -0
  106. package/build/lib/nvm3/files/index.d.ts.map +1 -0
  107. package/build/{files → lib/nvm3/files}/index.js +1 -0
  108. package/build/lib/nvm3/files/index.js.map +1 -0
  109. package/build/lib/nvm3/object.d.ts +29 -0
  110. package/build/lib/nvm3/object.d.ts.map +1 -0
  111. package/build/lib/nvm3/object.js +118 -0
  112. package/build/lib/nvm3/object.js.map +1 -0
  113. package/build/{nvm3 → lib/nvm3}/page.d.ts +1 -5
  114. package/build/lib/nvm3/page.d.ts.map +1 -0
  115. package/build/lib/nvm3/page.js +37 -0
  116. package/build/lib/nvm3/page.js.map +1 -0
  117. package/build/{nvm3 → lib/nvm3}/utils.d.ts +2 -4
  118. package/build/lib/nvm3/utils.d.ts.map +1 -0
  119. package/build/lib/nvm3/utils.js +143 -0
  120. package/build/lib/nvm3/utils.js.map +1 -0
  121. package/build/lib/nvm500/EntryParsers.d.ts.map +1 -0
  122. package/build/lib/nvm500/EntryParsers.js.map +1 -0
  123. package/build/lib/nvm500/adapter.d.ts +22 -0
  124. package/build/lib/nvm500/adapter.d.ts.map +1 -0
  125. package/build/lib/nvm500/adapter.js +371 -0
  126. package/build/lib/nvm500/adapter.js.map +1 -0
  127. package/build/lib/nvm500/impls/Bridge_6_6x.d.ts +3 -0
  128. package/build/lib/nvm500/impls/Bridge_6_6x.d.ts.map +1 -0
  129. package/build/{nvm500/parsers → lib/nvm500/impls}/Bridge_6_6x.js +1 -1
  130. package/build/lib/nvm500/impls/Bridge_6_6x.js.map +1 -0
  131. package/build/lib/nvm500/impls/Bridge_6_7x.d.ts +3 -0
  132. package/build/lib/nvm500/impls/Bridge_6_7x.d.ts.map +1 -0
  133. package/build/{nvm500/parsers → lib/nvm500/impls}/Bridge_6_7x.js +1 -1
  134. package/build/lib/nvm500/impls/Bridge_6_7x.js.map +1 -0
  135. package/build/lib/nvm500/impls/Bridge_6_8x.d.ts +3 -0
  136. package/build/lib/nvm500/impls/Bridge_6_8x.d.ts.map +1 -0
  137. package/build/{nvm500/parsers → lib/nvm500/impls}/Bridge_6_8x.js +1 -1
  138. package/build/lib/nvm500/impls/Bridge_6_8x.js.map +1 -0
  139. package/build/lib/nvm500/impls/Static_6_6x.d.ts +3 -0
  140. package/build/lib/nvm500/impls/Static_6_6x.d.ts.map +1 -0
  141. package/build/{nvm500/parsers → lib/nvm500/impls}/Static_6_6x.js +1 -1
  142. package/build/lib/nvm500/impls/Static_6_6x.js.map +1 -0
  143. package/build/lib/nvm500/impls/Static_6_7x.d.ts +3 -0
  144. package/build/lib/nvm500/impls/Static_6_7x.d.ts.map +1 -0
  145. package/build/{nvm500/parsers → lib/nvm500/impls}/Static_6_7x.js +1 -1
  146. package/build/lib/nvm500/impls/Static_6_7x.js.map +1 -0
  147. package/build/lib/nvm500/impls/Static_6_8x.d.ts +3 -0
  148. package/build/lib/nvm500/impls/Static_6_8x.d.ts.map +1 -0
  149. package/build/{nvm500/parsers → lib/nvm500/impls}/Static_6_8x.js +1 -1
  150. package/build/lib/nvm500/impls/Static_6_8x.js.map +1 -0
  151. package/build/lib/nvm500/impls/index.d.ts +2 -0
  152. package/build/lib/nvm500/impls/index.d.ts.map +1 -0
  153. package/build/lib/nvm500/impls/index.js +18 -0
  154. package/build/lib/nvm500/impls/index.js.map +1 -0
  155. package/build/{nvm500 → lib/nvm500}/shared.d.ts +19 -2
  156. package/build/lib/nvm500/shared.d.ts.map +1 -0
  157. package/build/{nvm500 → lib/nvm500}/shared.js +19 -1
  158. package/build/lib/nvm500/shared.js.map +1 -0
  159. package/build/nvm500/NVMParser.d.ts +5 -36
  160. package/build/nvm500/NVMParser.d.ts.map +1 -1
  161. package/build/nvm500/NVMParser.js +0 -524
  162. package/build/nvm500/NVMParser.js.map +1 -1
  163. package/package.json +2 -2
  164. package/build/files/ApplicationCCsFile.d.ts.map +0 -1
  165. package/build/files/ApplicationCCsFile.js.map +0 -1
  166. package/build/files/ApplicationDataFile.d.ts.map +0 -1
  167. package/build/files/ApplicationDataFile.js.map +0 -1
  168. package/build/files/ApplicationNameFile.d.ts.map +0 -1
  169. package/build/files/ApplicationNameFile.js.map +0 -1
  170. package/build/files/ApplicationRFConfigFile.d.ts.map +0 -1
  171. package/build/files/ApplicationRFConfigFile.js.map +0 -1
  172. package/build/files/ApplicationTypeFile.d.ts.map +0 -1
  173. package/build/files/ApplicationTypeFile.js.map +0 -1
  174. package/build/files/ControllerInfoFile.d.ts.map +0 -1
  175. package/build/files/ControllerInfoFile.js.map +0 -1
  176. package/build/files/NVMFile.d.ts.map +0 -1
  177. package/build/files/NVMFile.js.map +0 -1
  178. package/build/files/NodeInfoFiles.d.ts.map +0 -1
  179. package/build/files/NodeInfoFiles.js.map +0 -1
  180. package/build/files/ProtocolNodeMaskFiles.d.ts.map +0 -1
  181. package/build/files/ProtocolNodeMaskFiles.js.map +0 -1
  182. package/build/files/RouteCacheFiles.d.ts.map +0 -1
  183. package/build/files/RouteCacheFiles.js.map +0 -1
  184. package/build/files/SUCUpdateEntriesFile.d.ts.map +0 -1
  185. package/build/files/SUCUpdateEntriesFile.js.map +0 -1
  186. package/build/files/VersionFiles.d.ts.map +0 -1
  187. package/build/files/VersionFiles.js.map +0 -1
  188. package/build/files/index.d.ts.map +0 -1
  189. package/build/files/index.js.map +0 -1
  190. package/build/nvm3/consts.d.ts.map +0 -1
  191. package/build/nvm3/consts.js.map +0 -1
  192. package/build/nvm3/nvm.d.ts +0 -31
  193. package/build/nvm3/nvm.d.ts.map +0 -1
  194. package/build/nvm3/nvm.js +0 -184
  195. package/build/nvm3/nvm.js.map +0 -1
  196. package/build/nvm3/object.d.ts +0 -25
  197. package/build/nvm3/object.d.ts.map +0 -1
  198. package/build/nvm3/object.js +0 -197
  199. package/build/nvm3/object.js.map +0 -1
  200. package/build/nvm3/page.d.ts.map +0 -1
  201. package/build/nvm3/page.js +0 -129
  202. package/build/nvm3/page.js.map +0 -1
  203. package/build/nvm3/utils.d.ts.map +0 -1
  204. package/build/nvm3/utils.js +0 -103
  205. package/build/nvm3/utils.js.map +0 -1
  206. package/build/nvm500/EntryParsers.d.ts.map +0 -1
  207. package/build/nvm500/EntryParsers.js.map +0 -1
  208. package/build/nvm500/parsers/Bridge_6_6x.d.ts +0 -3
  209. package/build/nvm500/parsers/Bridge_6_6x.d.ts.map +0 -1
  210. package/build/nvm500/parsers/Bridge_6_6x.js.map +0 -1
  211. package/build/nvm500/parsers/Bridge_6_7x.d.ts +0 -3
  212. package/build/nvm500/parsers/Bridge_6_7x.d.ts.map +0 -1
  213. package/build/nvm500/parsers/Bridge_6_7x.js.map +0 -1
  214. package/build/nvm500/parsers/Bridge_6_8x.d.ts +0 -3
  215. package/build/nvm500/parsers/Bridge_6_8x.d.ts.map +0 -1
  216. package/build/nvm500/parsers/Bridge_6_8x.js.map +0 -1
  217. package/build/nvm500/parsers/Static_6_6x.d.ts +0 -3
  218. package/build/nvm500/parsers/Static_6_6x.d.ts.map +0 -1
  219. package/build/nvm500/parsers/Static_6_6x.js.map +0 -1
  220. package/build/nvm500/parsers/Static_6_7x.d.ts +0 -3
  221. package/build/nvm500/parsers/Static_6_7x.d.ts.map +0 -1
  222. package/build/nvm500/parsers/Static_6_7x.js.map +0 -1
  223. package/build/nvm500/parsers/Static_6_8x.d.ts +0 -3
  224. package/build/nvm500/parsers/Static_6_8x.d.ts.map +0 -1
  225. package/build/nvm500/parsers/Static_6_8x.js.map +0 -1
  226. package/build/nvm500/shared.d.ts.map +0 -1
  227. package/build/nvm500/shared.js.map +0 -1
  228. package/build/shared.d.ts +0 -2
  229. package/build/shared.d.ts.map +0 -1
  230. package/build/shared.js +0 -3
  231. package/build/shared.js.map +0 -1
  232. /package/build/{nvm3 → lib/nvm3}/consts.d.ts +0 -0
  233. /package/build/{nvm3 → lib/nvm3}/consts.js +0 -0
  234. /package/build/{nvm500 → lib/nvm500}/EntryParsers.d.ts +0 -0
  235. /package/build/{nvm500 → lib/nvm500}/EntryParsers.js +0 -0
@@ -7,62 +7,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.RouteCacheFileV1 = exports.RouteCacheFileV1IDBase = exports.RouteCacheFileV0 = exports.RouteCacheFileV0IDBase = exports.ROUTECACHES_PER_FILE_V1 = void 0;
10
- exports.parseRoute = parseRoute;
11
- exports.encodeRoute = encodeRoute;
12
- exports.getEmptyRoute = getEmptyRoute;
13
10
  exports.nodeIdToRouteCacheFileIDV0 = nodeIdToRouteCacheFileIDV0;
14
11
  exports.nodeIdToRouteCacheFileIDV1 = nodeIdToRouteCacheFileIDV1;
15
12
  const safe_1 = require("@zwave-js/core/safe");
13
+ const routeCache_1 = require("../../common/routeCache");
16
14
  const NVMFile_1 = require("./NVMFile");
17
15
  exports.ROUTECACHES_PER_FILE_V1 = 8;
18
- const ROUTE_SIZE = safe_1.MAX_REPEATERS + 1;
19
- const ROUTECACHE_SIZE = 2 * ROUTE_SIZE;
20
- const EMPTY_ROUTECACHE_FILL = 0xff;
21
- const emptyRouteCache = Buffer.alloc(ROUTECACHE_SIZE, EMPTY_ROUTECACHE_FILL);
22
- var Beaming;
23
- (function (Beaming) {
24
- Beaming[Beaming["1000ms"] = 64] = "1000ms";
25
- Beaming[Beaming["250ms"] = 32] = "250ms";
26
- })(Beaming || (Beaming = {}));
27
- function parseRoute(buffer, offset) {
28
- const routeConf = buffer[offset + safe_1.MAX_REPEATERS];
29
- const ret = {
30
- beaming: (Beaming[routeConf & 0x60] ?? false),
31
- protocolRate: routeConf & safe_1.protocolDataRateMask,
32
- repeaterNodeIDs: [
33
- ...buffer.subarray(offset, offset + safe_1.MAX_REPEATERS),
34
- ].filter((id) => id !== 0),
35
- };
36
- if (ret.repeaterNodeIDs[0] === 0xfe)
37
- delete ret.repeaterNodeIDs;
38
- return ret;
39
- }
40
- function encodeRoute(route) {
41
- const ret = Buffer.alloc(ROUTE_SIZE, 0);
42
- if (route) {
43
- if (route.repeaterNodeIDs) {
44
- for (let i = 0; i < safe_1.MAX_REPEATERS && i < route.repeaterNodeIDs.length; i++) {
45
- ret[i] = route.repeaterNodeIDs[i];
46
- }
47
- }
48
- else {
49
- ret[0] = 0xfe;
50
- }
51
- let routeConf = 0;
52
- if (route.beaming)
53
- routeConf |= Beaming[route.beaming] ?? 0;
54
- routeConf |= route.protocolRate & safe_1.protocolDataRateMask;
55
- ret[ROUTE_SIZE - 1] = routeConf;
56
- }
57
- return ret;
58
- }
59
- function getEmptyRoute() {
60
- return {
61
- beaming: false,
62
- protocolRate: safe_1.RouteProtocolDataRate.ZWave_40k,
63
- repeaterNodeIDs: undefined,
64
- };
65
- }
66
16
  exports.RouteCacheFileV0IDBase = 0x50400;
67
17
  function nodeIdToRouteCacheFileIDV0(nodeId) {
68
18
  return exports.RouteCacheFileV0IDBase + nodeId - 1;
@@ -72,8 +22,8 @@ let RouteCacheFileV0 = class RouteCacheFileV0 extends NVMFile_1.NVMFile {
72
22
  super(options);
73
23
  if ((0, NVMFile_1.gotDeserializationOptions)(options)) {
74
24
  const nodeId = this.fileId - exports.RouteCacheFileV0IDBase + 1;
75
- const lwr = parseRoute(this.payload, 0);
76
- const nlwr = parseRoute(this.payload, safe_1.MAX_REPEATERS + 1);
25
+ const lwr = (0, routeCache_1.parseRoute)(this.payload, 0);
26
+ const nlwr = (0, routeCache_1.parseRoute)(this.payload, safe_1.MAX_REPEATERS + 1);
77
27
  this.routeCache = { nodeId, lwr, nlwr };
78
28
  }
79
29
  else {
@@ -84,8 +34,8 @@ let RouteCacheFileV0 = class RouteCacheFileV0 extends NVMFile_1.NVMFile {
84
34
  serialize() {
85
35
  this.fileId = nodeIdToRouteCacheFileIDV0(this.routeCache.nodeId);
86
36
  this.payload = Buffer.concat([
87
- encodeRoute(this.routeCache.lwr),
88
- encodeRoute(this.routeCache.nlwr),
37
+ (0, routeCache_1.encodeRoute)(this.routeCache.lwr),
38
+ (0, routeCache_1.encodeRoute)(this.routeCache.nlwr),
89
39
  ]);
90
40
  return super.serialize();
91
41
  }
@@ -99,7 +49,8 @@ let RouteCacheFileV0 = class RouteCacheFileV0 extends NVMFile_1.NVMFile {
99
49
  };
100
50
  exports.RouteCacheFileV0 = RouteCacheFileV0;
101
51
  exports.RouteCacheFileV0 = RouteCacheFileV0 = __decorate([
102
- (0, NVMFile_1.nvmFileID)((id) => id >= exports.RouteCacheFileV0IDBase && id < exports.RouteCacheFileV0IDBase + safe_1.MAX_NODES)
52
+ (0, NVMFile_1.nvmFileID)((id) => id >= exports.RouteCacheFileV0IDBase && id < exports.RouteCacheFileV0IDBase + safe_1.MAX_NODES),
53
+ (0, NVMFile_1.nvmSection)("protocol")
103
54
  ], RouteCacheFileV0);
104
55
  exports.RouteCacheFileV1IDBase = 0x51400;
105
56
  function nodeIdToRouteCacheFileIDV1(nodeId) {
@@ -114,14 +65,14 @@ let RouteCacheFileV1 = class RouteCacheFileV1 extends NVMFile_1.NVMFile {
114
65
  for (let i = 0; i < exports.ROUTECACHES_PER_FILE_V1; i++) {
115
66
  const offset = i * 2 * (safe_1.MAX_REPEATERS + 1);
116
67
  const entry = this.payload.subarray(offset, offset + 2 * (safe_1.MAX_REPEATERS + 1));
117
- if (entry.equals(emptyRouteCache))
68
+ if (entry.equals(routeCache_1.emptyRouteCache))
118
69
  continue;
119
70
  const nodeId = (this.fileId - exports.RouteCacheFileV1IDBase)
120
71
  * exports.ROUTECACHES_PER_FILE_V1
121
72
  + 1
122
73
  + i;
123
- const lwr = parseRoute(this.payload, offset);
124
- const nlwr = parseRoute(this.payload, offset + safe_1.MAX_REPEATERS + 1);
74
+ const lwr = (0, routeCache_1.parseRoute)(this.payload, offset);
75
+ const nlwr = (0, routeCache_1.parseRoute)(this.payload, offset + safe_1.MAX_REPEATERS + 1);
125
76
  this.routeCaches.push({ nodeId, lwr, nlwr });
126
77
  }
127
78
  }
@@ -135,16 +86,16 @@ let RouteCacheFileV1 = class RouteCacheFileV1 extends NVMFile_1.NVMFile {
135
86
  this.routeCaches.sort((a, b) => a.nodeId - b.nodeId);
136
87
  const minNodeId = this.routeCaches[0].nodeId;
137
88
  this.fileId = nodeIdToRouteCacheFileIDV1(minNodeId);
138
- this.payload = Buffer.alloc(exports.ROUTECACHES_PER_FILE_V1 * ROUTECACHE_SIZE, EMPTY_ROUTECACHE_FILL);
89
+ this.payload = Buffer.alloc(exports.ROUTECACHES_PER_FILE_V1 * routeCache_1.ROUTECACHE_SIZE, routeCache_1.EMPTY_ROUTECACHE_FILL);
139
90
  const minFileNodeId = Math.floor((minNodeId - 1) / exports.ROUTECACHES_PER_FILE_V1)
140
91
  * exports.ROUTECACHES_PER_FILE_V1
141
92
  + 1;
142
93
  for (const routeCache of this.routeCaches) {
143
94
  const offset = (routeCache.nodeId - minFileNodeId)
144
- * ROUTECACHE_SIZE;
95
+ * routeCache_1.ROUTECACHE_SIZE;
145
96
  Buffer.concat([
146
- encodeRoute(routeCache.lwr),
147
- encodeRoute(routeCache.nlwr),
97
+ (0, routeCache_1.encodeRoute)(routeCache.lwr),
98
+ (0, routeCache_1.encodeRoute)(routeCache.nlwr),
148
99
  ]).copy(this.payload, offset);
149
100
  }
150
101
  return super.serialize();
@@ -160,6 +111,7 @@ let RouteCacheFileV1 = class RouteCacheFileV1 extends NVMFile_1.NVMFile {
160
111
  exports.RouteCacheFileV1 = RouteCacheFileV1;
161
112
  exports.RouteCacheFileV1 = RouteCacheFileV1 = __decorate([
162
113
  (0, NVMFile_1.nvmFileID)((id) => id >= exports.RouteCacheFileV1IDBase
163
- && id < exports.RouteCacheFileV1IDBase + safe_1.MAX_NODES / exports.ROUTECACHES_PER_FILE_V1)
114
+ && id < exports.RouteCacheFileV1IDBase + safe_1.MAX_NODES / exports.ROUTECACHES_PER_FILE_V1),
115
+ (0, NVMFile_1.nvmSection)("protocol")
164
116
  ], RouteCacheFileV1);
165
117
  //# sourceMappingURL=RouteCacheFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteCacheFiles.js","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/RouteCacheFiles.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,30 @@
1
- import { type CommandClasses } from "@zwave-js/core/safe";
2
- import type { NVM3Object } from "../nvm3/object";
1
+ import { type SUCUpdateEntry } from "../../common/sucUpdateEntry";
2
+ import type { NVM3Object } from "../object";
3
3
  import { NVMFile, type NVMFileCreationOptions, type NVMFileDeserializationOptions } from "./NVMFile";
4
4
  export declare const SUC_UPDATES_PER_FILE_V5 = 8;
5
5
  export interface SUCUpdateEntriesFileOptions extends NVMFileCreationOptions {
6
6
  updateEntries: SUCUpdateEntry[];
7
7
  }
8
- export interface SUCUpdateEntry {
9
- nodeId: number;
10
- changeType: number;
11
- supportedCCs: CommandClasses[];
12
- controlledCCs: CommandClasses[];
13
- }
14
- export declare function parseSUCUpdateEntry(buffer: Buffer, offset: number): SUCUpdateEntry | undefined;
15
- export declare function encodeSUCUpdateEntry(entry: SUCUpdateEntry | undefined): Buffer;
8
+ export declare const SUCUpdateEntriesFileIDV0 = 327683;
16
9
  export declare class SUCUpdateEntriesFileV0 extends NVMFile {
17
10
  constructor(options: NVMFileDeserializationOptions | SUCUpdateEntriesFileOptions);
18
11
  updateEntries: SUCUpdateEntry[];
19
- serialize(): NVM3Object;
12
+ serialize(): NVM3Object & {
13
+ data: Buffer;
14
+ };
20
15
  toJSON(): {
21
16
  "SUC update entries": SUCUpdateEntry[];
22
17
  };
23
18
  }
24
- export declare const SUCUpdateEntriesFileIDV0: number | ((id: number) => boolean);
25
19
  export declare const SUCUpdateEntriesFileV5IDBase = 344064;
20
+ export declare const SUCUpdateEntriesFileV5IDMax: number;
26
21
  export declare function sucUpdateIndexToSUCUpdateEntriesFileIDV5(index: number): number;
27
22
  export declare class SUCUpdateEntriesFileV5 extends NVMFile {
28
23
  constructor(options: NVMFileDeserializationOptions | SUCUpdateEntriesFileOptions);
29
24
  updateEntries: SUCUpdateEntry[];
30
- serialize(): NVM3Object;
25
+ serialize(): NVM3Object & {
26
+ data: Buffer;
27
+ };
31
28
  toJSON(): {
32
29
  "SUC update entries": SUCUpdateEntry[];
33
30
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SUCUpdateEntriesFile.d.ts","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/SUCUpdateEntriesFile.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,cAAc,EAGnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACN,OAAO,EACP,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAIlC,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IAC1E,aAAa,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAEhD,qBAEa,sBAAuB,SAAQ,OAAO;gBAEjD,OAAO,EAAE,6BAA6B,GAAG,2BAA2B;IAe9D,aAAa,EAAE,cAAc,EAAE,CAAC;IAEhC,SAAS,IAAI,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAW1C,MAAM;;;CAMb;AAED,eAAO,MAAM,4BAA4B,SAAU,CAAC;AACpD,eAAO,MAAM,2BAA2B,QAEpC,CAAC;AACL,wBAAgB,wCAAwC,CACvD,KAAK,EAAE,MAAM,GACX,MAAM,CAKR;AAED,qBAMa,sBAAuB,SAAQ,OAAO;gBAEjD,OAAO,EAAE,6BAA6B,GAAG,2BAA2B;IAe9D,aAAa,EAAE,cAAc,EAAE,CAAC;IAEhC,SAAS,IAAI,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAc1C,MAAM;;;CAMb"}
@@ -6,42 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.SUCUpdateEntriesFileV5 = exports.SUCUpdateEntriesFileV5IDBase = exports.SUCUpdateEntriesFileIDV0 = exports.SUCUpdateEntriesFileV0 = exports.SUC_UPDATES_PER_FILE_V5 = void 0;
10
- exports.parseSUCUpdateEntry = parseSUCUpdateEntry;
11
- exports.encodeSUCUpdateEntry = encodeSUCUpdateEntry;
9
+ exports.SUCUpdateEntriesFileV5 = exports.SUCUpdateEntriesFileV5IDMax = exports.SUCUpdateEntriesFileV5IDBase = exports.SUCUpdateEntriesFileV0 = exports.SUCUpdateEntriesFileIDV0 = exports.SUC_UPDATES_PER_FILE_V5 = void 0;
12
10
  exports.sucUpdateIndexToSUCUpdateEntriesFileIDV5 = sucUpdateIndexToSUCUpdateEntriesFileIDV5;
13
- const safe_1 = require("@zwave-js/core/safe");
14
- const consts_1 = require("../consts");
11
+ const consts_1 = require("../../../consts");
12
+ const sucUpdateEntry_1 = require("../../common/sucUpdateEntry");
15
13
  const NVMFile_1 = require("./NVMFile");
16
14
  exports.SUC_UPDATES_PER_FILE_V5 = 8;
17
- function parseSUCUpdateEntry(buffer, offset) {
18
- const slice = buffer.subarray(offset, offset + consts_1.SUC_UPDATE_ENTRY_SIZE);
19
- if (slice.every((b) => b === 0x00 || b === 0xff)) {
20
- return;
21
- }
22
- const nodeId = slice[0];
23
- const changeType = slice[1];
24
- const { supportedCCs, controlledCCs } = (0, safe_1.parseCCList)(slice.subarray(2, consts_1.SUC_UPDATE_ENTRY_SIZE));
25
- return {
26
- nodeId,
27
- changeType,
28
- supportedCCs: supportedCCs.filter((cc) => cc > 0),
29
- controlledCCs: controlledCCs.filter((cc) => cc > 0),
30
- };
31
- }
32
- function encodeSUCUpdateEntry(entry) {
33
- const ret = Buffer.alloc(consts_1.SUC_UPDATE_ENTRY_SIZE, 0);
34
- if (entry) {
35
- ret[0] = entry.nodeId;
36
- ret[1] = entry.changeType;
37
- const ccList = (0, safe_1.encodeCCList)(entry.supportedCCs, entry.controlledCCs);
38
- if (ccList.length > consts_1.SUC_UPDATE_NODEPARM_MAX) {
39
- throw new safe_1.ZWaveError("Cannot encode SUC update entry, too many CCs", safe_1.ZWaveErrorCodes.Argument_Invalid);
40
- }
41
- ccList.copy(ret, 2);
42
- }
43
- return ret;
44
- }
15
+ exports.SUCUpdateEntriesFileIDV0 = 0x50003;
45
16
  let SUCUpdateEntriesFileV0 = class SUCUpdateEntriesFileV0 extends NVMFile_1.NVMFile {
46
17
  constructor(options) {
47
18
  super(options);
@@ -49,7 +20,7 @@ let SUCUpdateEntriesFileV0 = class SUCUpdateEntriesFileV0 extends NVMFile_1.NVMF
49
20
  this.updateEntries = [];
50
21
  for (let entry = 0; entry < consts_1.SUC_MAX_UPDATES; entry++) {
51
22
  const offset = entry * consts_1.SUC_UPDATE_ENTRY_SIZE;
52
- const updateEntry = parseSUCUpdateEntry(this.payload, offset);
23
+ const updateEntry = (0, sucUpdateEntry_1.parseSUCUpdateEntry)(this.payload, offset);
53
24
  if (updateEntry)
54
25
  this.updateEntries.push(updateEntry);
55
26
  }
@@ -64,7 +35,7 @@ let SUCUpdateEntriesFileV0 = class SUCUpdateEntriesFileV0 extends NVMFile_1.NVMF
64
35
  for (let i = 0; i < this.updateEntries.length; i++) {
65
36
  const offset = i * consts_1.SUC_UPDATE_ENTRY_SIZE;
66
37
  const entry = this.updateEntries[i];
67
- encodeSUCUpdateEntry(entry).copy(this.payload, offset);
38
+ (0, sucUpdateEntry_1.encodeSUCUpdateEntry)(entry).copy(this.payload, offset);
68
39
  }
69
40
  return super.serialize();
70
41
  }
@@ -78,10 +49,13 @@ let SUCUpdateEntriesFileV0 = class SUCUpdateEntriesFileV0 extends NVMFile_1.NVMF
78
49
  };
79
50
  exports.SUCUpdateEntriesFileV0 = SUCUpdateEntriesFileV0;
80
51
  exports.SUCUpdateEntriesFileV0 = SUCUpdateEntriesFileV0 = __decorate([
81
- (0, NVMFile_1.nvmFileID)(0x50003)
52
+ (0, NVMFile_1.nvmFileID)(exports.SUCUpdateEntriesFileIDV0),
53
+ (0, NVMFile_1.nvmSection)("protocol")
82
54
  ], SUCUpdateEntriesFileV0);
83
- exports.SUCUpdateEntriesFileIDV0 = (0, NVMFile_1.getNVMFileIDStatic)(SUCUpdateEntriesFileV0);
84
55
  exports.SUCUpdateEntriesFileV5IDBase = 0x54000;
56
+ exports.SUCUpdateEntriesFileV5IDMax = exports.SUCUpdateEntriesFileV5IDBase
57
+ + consts_1.SUC_MAX_UPDATES / exports.SUC_UPDATES_PER_FILE_V5
58
+ - 1;
85
59
  function sucUpdateIndexToSUCUpdateEntriesFileIDV5(index) {
86
60
  return (exports.SUCUpdateEntriesFileV5IDBase
87
61
  + Math.floor(index / exports.SUC_UPDATES_PER_FILE_V5));
@@ -93,7 +67,7 @@ let SUCUpdateEntriesFileV5 = class SUCUpdateEntriesFileV5 extends NVMFile_1.NVMF
93
67
  this.updateEntries = [];
94
68
  for (let entry = 0; entry < exports.SUC_UPDATES_PER_FILE_V5; entry++) {
95
69
  const offset = entry * consts_1.SUC_UPDATE_ENTRY_SIZE;
96
- const updateEntry = parseSUCUpdateEntry(this.payload, offset);
70
+ const updateEntry = (0, sucUpdateEntry_1.parseSUCUpdateEntry)(this.payload, offset);
97
71
  if (updateEntry)
98
72
  this.updateEntries.push(updateEntry);
99
73
  }
@@ -108,7 +82,7 @@ let SUCUpdateEntriesFileV5 = class SUCUpdateEntriesFileV5 extends NVMFile_1.NVMF
108
82
  for (let i = 0; i < this.updateEntries.length; i++) {
109
83
  const offset = i * consts_1.SUC_UPDATE_ENTRY_SIZE;
110
84
  const entry = this.updateEntries[i];
111
- encodeSUCUpdateEntry(entry).copy(this.payload, offset);
85
+ (0, sucUpdateEntry_1.encodeSUCUpdateEntry)(entry).copy(this.payload, offset);
112
86
  }
113
87
  return super.serialize();
114
88
  }
@@ -123,8 +97,7 @@ let SUCUpdateEntriesFileV5 = class SUCUpdateEntriesFileV5 extends NVMFile_1.NVMF
123
97
  exports.SUCUpdateEntriesFileV5 = SUCUpdateEntriesFileV5;
124
98
  exports.SUCUpdateEntriesFileV5 = SUCUpdateEntriesFileV5 = __decorate([
125
99
  (0, NVMFile_1.nvmFileID)((id) => id >= exports.SUCUpdateEntriesFileV5IDBase
126
- && id
127
- < exports.SUCUpdateEntriesFileV5IDBase
128
- + consts_1.SUC_MAX_UPDATES / exports.SUC_UPDATES_PER_FILE_V5)
100
+ && id <= exports.SUCUpdateEntriesFileV5IDMax),
101
+ (0, NVMFile_1.nvmSection)("protocol")
129
102
  ], SUCUpdateEntriesFileV5);
130
103
  //# sourceMappingURL=SUCUpdateEntriesFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SUCUpdateEntriesFile.js","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/SUCUpdateEntriesFile.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { NVM3Object } from "../nvm3/object";
1
+ import type { NVM3Object } from "../object";
2
2
  import { NVMFile, type NVMFileCreationOptions, type NVMFileDeserializationOptions } from "./NVMFile";
3
3
  export interface VersionFileOptions extends NVMFileCreationOptions {
4
4
  format: number;
@@ -12,19 +12,21 @@ export declare class VersionFile extends NVMFile {
12
12
  major: number;
13
13
  minor: number;
14
14
  patch: number;
15
- serialize(): NVM3Object;
15
+ serialize(): NVM3Object & {
16
+ data: Buffer;
17
+ };
16
18
  toJSON(): {
17
19
  format: number;
18
20
  version: string;
19
21
  };
20
22
  }
23
+ export declare const ApplicationVersionFileID = 331776;
21
24
  export declare class ApplicationVersionFile extends VersionFile {
22
25
  }
23
- export declare const ApplicationVersionFileID: number | ((id: number) => boolean);
26
+ export declare const ApplicationVersionFile800ID = 266240;
24
27
  export declare class ApplicationVersionFile800 extends VersionFile {
25
28
  }
26
- export declare const ApplicationVersionFile800ID: number | ((id: number) => boolean);
29
+ export declare const ProtocolVersionFileID = 327680;
27
30
  export declare class ProtocolVersionFile extends VersionFile {
28
31
  }
29
- export declare const ProtocolVersionFileID: number | ((id: number) => boolean);
30
32
  //# sourceMappingURL=VersionFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionFiles.d.ts","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/VersionFiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACN,OAAO,EACP,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAIlC,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,WAAY,SAAQ,OAAO;gBAEtC,OAAO,EAAE,6BAA6B,GAAG,kBAAkB;IAgBrD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,IAAI,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAW1C,MAAM;;;;CAOb;AAED,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAEhD,qBAEa,sBAAuB,SAAQ,WAAW;CAAG;AAI1D,eAAO,MAAM,2BAA2B,SAAU,CAAC;AAEnD,qBAEa,yBAA0B,SAAQ,WAAW;CAAG;AAE7D,eAAO,MAAM,qBAAqB,SAAU,CAAC;AAE7C,qBAEa,mBAAoB,SAAQ,WAAW;CAAG"}
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ProtocolVersionFileID = exports.ProtocolVersionFile = exports.ApplicationVersionFile800ID = exports.ApplicationVersionFile800 = exports.ApplicationVersionFileID = exports.ApplicationVersionFile = exports.VersionFile = void 0;
9
+ exports.ProtocolVersionFile = exports.ProtocolVersionFileID = exports.ApplicationVersionFile800 = exports.ApplicationVersionFile800ID = exports.ApplicationVersionFile = exports.ApplicationVersionFileID = exports.VersionFile = void 0;
10
10
  const NVMFile_1 = require("./NVMFile");
11
11
  class VersionFile extends NVMFile_1.NVMFile {
12
12
  constructor(options) {
@@ -47,27 +47,30 @@ class VersionFile extends NVMFile_1.NVMFile {
47
47
  }
48
48
  }
49
49
  exports.VersionFile = VersionFile;
50
+ exports.ApplicationVersionFileID = 0x51000;
50
51
  let ApplicationVersionFile = class ApplicationVersionFile extends VersionFile {
51
52
  };
52
53
  exports.ApplicationVersionFile = ApplicationVersionFile;
53
54
  exports.ApplicationVersionFile = ApplicationVersionFile = __decorate([
54
- (0, NVMFile_1.nvmFileID)(0x51000)
55
+ (0, NVMFile_1.nvmFileID)(exports.ApplicationVersionFileID),
56
+ (0, NVMFile_1.nvmSection)("application")
55
57
  ], ApplicationVersionFile);
56
- exports.ApplicationVersionFileID = (0, NVMFile_1.getNVMFileIDStatic)(ApplicationVersionFile);
57
58
  // The 800 series has a shared application/protocol file system
58
59
  // and uses a different ID for the application version file
60
+ exports.ApplicationVersionFile800ID = 0x41000;
59
61
  let ApplicationVersionFile800 = class ApplicationVersionFile800 extends VersionFile {
60
62
  };
61
63
  exports.ApplicationVersionFile800 = ApplicationVersionFile800;
62
64
  exports.ApplicationVersionFile800 = ApplicationVersionFile800 = __decorate([
63
- (0, NVMFile_1.nvmFileID)(0x41000)
65
+ (0, NVMFile_1.nvmFileID)(exports.ApplicationVersionFile800ID),
66
+ (0, NVMFile_1.nvmSection)("application")
64
67
  ], ApplicationVersionFile800);
65
- exports.ApplicationVersionFile800ID = (0, NVMFile_1.getNVMFileIDStatic)(ApplicationVersionFile800);
68
+ exports.ProtocolVersionFileID = 0x50000;
66
69
  let ProtocolVersionFile = class ProtocolVersionFile extends VersionFile {
67
70
  };
68
71
  exports.ProtocolVersionFile = ProtocolVersionFile;
69
72
  exports.ProtocolVersionFile = ProtocolVersionFile = __decorate([
70
- (0, NVMFile_1.nvmFileID)(0x50000)
73
+ (0, NVMFile_1.nvmFileID)(exports.ProtocolVersionFileID),
74
+ (0, NVMFile_1.nvmSection)("protocol")
71
75
  ], ProtocolVersionFile);
72
- exports.ProtocolVersionFileID = (0, NVMFile_1.getNVMFileIDStatic)(ProtocolVersionFile);
73
76
  //# sourceMappingURL=VersionFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionFiles.js","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/VersionFiles.ts"],"names":[],"mappings":";;;;;;;;;AACA,uCAOmB;AASnB,MAAa,WAAY,SAAQ,iBAAO;IACvC,YACC,OAA2D;QAE3D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,IAAA,mCAAyB,EAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,CAAC;IACF,CAAC;IAEM,MAAM,CAAS;IACf,KAAK,CAAS;IACd,KAAK,CAAS;IACd,KAAK,CAAS;IAEd,SAAS;QACf,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,MAAM;SACX,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,6EAA6E;IACtE,MAAM;QACZ,OAAO;YACN,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;SACpD,CAAC;IACH,CAAC;CACD;AAzCD,kCAyCC;AAEY,QAAA,wBAAwB,GAAG,OAAO,CAAC;AAIzC,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,WAAW;CAAG,CAAA;AAA7C,wDAAsB;iCAAtB,sBAAsB;IAFlC,IAAA,mBAAS,EAAC,gCAAwB,CAAC;IACnC,IAAA,oBAAU,EAAC,aAAa,CAAC;GACb,sBAAsB,CAAuB;AAE1D,+DAA+D;AAC/D,2DAA2D;AAC9C,QAAA,2BAA2B,GAAG,OAAO,CAAC;AAI5C,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,WAAW;CAAG,CAAA;AAAhD,8DAAyB;oCAAzB,yBAAyB;IAFrC,IAAA,mBAAS,EAAC,mCAA2B,CAAC;IACtC,IAAA,oBAAU,EAAC,aAAa,CAAC;GACb,yBAAyB,CAAuB;AAEhD,QAAA,qBAAqB,GAAG,OAAO,CAAC;AAItC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,WAAW;CAAG,CAAA;AAA1C,kDAAmB;8BAAnB,mBAAmB;IAF/B,IAAA,mBAAS,EAAC,6BAAqB,CAAC;IAChC,IAAA,oBAAU,EAAC,UAAU,CAAC;GACV,mBAAmB,CAAuB"}
@@ -1,6 +1,7 @@
1
1
  import "reflect-metadata";
2
2
  export * from "./ApplicationCCsFile";
3
3
  export * from "./ApplicationDataFile";
4
+ export * from "./ApplicationNameFile";
4
5
  export * from "./ApplicationRFConfigFile";
5
6
  export * from "./ApplicationTypeFile";
6
7
  export * from "./ControllerInfoFile";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  require("reflect-metadata");
18
18
  __exportStar(require("./ApplicationCCsFile"), exports);
19
19
  __exportStar(require("./ApplicationDataFile"), exports);
20
+ __exportStar(require("./ApplicationNameFile"), exports);
20
21
  __exportStar(require("./ApplicationRFConfigFile"), exports);
21
22
  __exportStar(require("./ApplicationTypeFile"), exports);
22
23
  __exportStar(require("./ControllerInfoFile"), exports);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/nvm3/files/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4BAA0B;AAE1B,uDAAqC;AACrC,wDAAsC;AACtC,wDAAsC;AACtC,4DAA0C;AAC1C,wDAAsC;AACtC,uDAAqC;AACrC,4CAA0B;AAC1B,kDAAgC;AAChC,0DAAwC;AACxC,oDAAkC;AAClC,yDAAuC;AACvC,iDAA+B"}
@@ -0,0 +1,29 @@
1
+ import { FragmentType, ObjectType } from "./consts";
2
+ export interface NVM3ObjectHeader {
3
+ offset: number;
4
+ type: ObjectType;
5
+ key: number;
6
+ fragmentType: FragmentType;
7
+ /** The length of the header */
8
+ headerSize: number;
9
+ /** The length of the object data */
10
+ fragmentSize: number;
11
+ /** The total length of the object in the NVM */
12
+ alignedSize: number;
13
+ }
14
+ export interface NVM3Object {
15
+ type: ObjectType;
16
+ fragmentType: FragmentType;
17
+ key: number;
18
+ data?: Buffer;
19
+ }
20
+ export declare function serializeObject(obj: NVM3Object): Buffer;
21
+ export declare function fragmentLargeObject(obj: NVM3Object & {
22
+ type: ObjectType.DataLarge | ObjectType.CounterLarge;
23
+ }, maxFirstFragmentSizeWithHeader: number, maxFragmentSizeWithHeader: number): NVM3Object[];
24
+ export declare function getAlignedSize(size: number): number;
25
+ export declare function getHeaderSize(obj: NVM3Object): number;
26
+ export declare function getFragmentSize(obj: NVM3Object): number;
27
+ export declare function getRequiredSpace(obj: NVM3Object): number;
28
+ export declare function getObjectHeader(obj: NVM3Object, offset: number): NVM3ObjectHeader;
29
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../src/lib/nvm3/object.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EAaZ,UAAU,EACV,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,YAAY,CAAC;IAC3B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CA4CvD;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAA;CAAE,EAC1E,8BAA8B,EAAE,MAAM,EACtC,yBAAyB,EAAE,MAAM,GAC/B,UAAU,EAAE,CAiCd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAUrD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAWvD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAExD;AAED,wBAAgB,eAAe,CAC9B,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,MAAM,GACZ,gBAAgB,CAYlB"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeObject = serializeObject;
4
+ exports.fragmentLargeObject = fragmentLargeObject;
5
+ exports.getAlignedSize = getAlignedSize;
6
+ exports.getHeaderSize = getHeaderSize;
7
+ exports.getFragmentSize = getFragmentSize;
8
+ exports.getRequiredSpace = getRequiredSpace;
9
+ exports.getObjectHeader = getObjectHeader;
10
+ const consts_1 = require("./consts");
11
+ const utils_1 = require("./utils");
12
+ function serializeObject(obj) {
13
+ const isLarge = obj.type === consts_1.ObjectType.DataLarge
14
+ || obj.type === consts_1.ObjectType.CounterLarge;
15
+ const headerSize = isLarge
16
+ ? consts_1.NVM3_OBJ_HEADER_SIZE_LARGE
17
+ : consts_1.NVM3_OBJ_HEADER_SIZE_SMALL;
18
+ const dataLength = obj.data?.length ?? 0;
19
+ const ret = Buffer.allocUnsafe(dataLength + headerSize);
20
+ // Write header
21
+ if (isLarge) {
22
+ let hdr2 = dataLength & consts_1.NVM3_OBJ_LARGE_LEN_MASK;
23
+ const hdr1 = (obj.type & consts_1.NVM3_OBJ_TYPE_MASK)
24
+ | ((obj.key & consts_1.NVM3_OBJ_KEY_MASK) << consts_1.NVM3_OBJ_KEY_SHIFT)
25
+ | ((obj.fragmentType & consts_1.NVM3_OBJ_FRAGTYPE_MASK)
26
+ << consts_1.NVM3_OBJ_FRAGTYPE_SHIFT);
27
+ const bergerCode = (0, utils_1.computeBergerCodeMulti)([hdr1, hdr2], 32 + consts_1.NVM3_CODE_LARGE_SHIFT);
28
+ hdr2 |= bergerCode << consts_1.NVM3_CODE_LARGE_SHIFT;
29
+ ret.writeInt32LE(hdr1, 0);
30
+ ret.writeInt32LE(hdr2, 4);
31
+ }
32
+ else {
33
+ let typeAndLen = obj.type;
34
+ if (typeAndLen === consts_1.ObjectType.DataSmall && dataLength > 0) {
35
+ typeAndLen += dataLength;
36
+ }
37
+ let hdr1 = (typeAndLen & consts_1.NVM3_OBJ_TYPE_MASK)
38
+ | ((obj.key & consts_1.NVM3_OBJ_KEY_MASK) << consts_1.NVM3_OBJ_KEY_SHIFT);
39
+ const bergerCode = (0, utils_1.computeBergerCode)(hdr1, consts_1.NVM3_CODE_SMALL_SHIFT);
40
+ hdr1 |= bergerCode << consts_1.NVM3_CODE_SMALL_SHIFT;
41
+ ret.writeInt32LE(hdr1, 0);
42
+ }
43
+ // Write data
44
+ if (obj.data) {
45
+ obj.data.copy(ret, headerSize);
46
+ }
47
+ return ret;
48
+ }
49
+ function fragmentLargeObject(obj, maxFirstFragmentSizeWithHeader, maxFragmentSizeWithHeader) {
50
+ const ret = [];
51
+ if (obj.data.length + consts_1.NVM3_OBJ_HEADER_SIZE_LARGE
52
+ <= maxFirstFragmentSizeWithHeader) {
53
+ return [obj];
54
+ }
55
+ let offset = 0;
56
+ while (offset < obj.data.length) {
57
+ const fragmentSize = offset === 0
58
+ ? maxFirstFragmentSizeWithHeader - consts_1.NVM3_OBJ_HEADER_SIZE_LARGE
59
+ : maxFragmentSizeWithHeader - consts_1.NVM3_OBJ_HEADER_SIZE_LARGE;
60
+ const data = obj.data.subarray(offset, offset + fragmentSize);
61
+ ret.push({
62
+ type: obj.type,
63
+ key: obj.key,
64
+ fragmentType: offset === 0
65
+ ? consts_1.FragmentType.First
66
+ : data.length + consts_1.NVM3_OBJ_HEADER_SIZE_LARGE
67
+ < maxFragmentSizeWithHeader
68
+ ? consts_1.FragmentType.Last
69
+ : consts_1.FragmentType.Next,
70
+ data,
71
+ });
72
+ offset += fragmentSize;
73
+ }
74
+ return ret;
75
+ }
76
+ function getAlignedSize(size) {
77
+ return (size + consts_1.NVM3_WORD_SIZE - 1) & ~(consts_1.NVM3_WORD_SIZE - 1);
78
+ }
79
+ function getHeaderSize(obj) {
80
+ switch (obj.type) {
81
+ case consts_1.ObjectType.Deleted:
82
+ case consts_1.ObjectType.CounterSmall:
83
+ case consts_1.ObjectType.DataSmall:
84
+ return consts_1.NVM3_OBJ_HEADER_SIZE_SMALL;
85
+ case consts_1.ObjectType.CounterLarge:
86
+ case consts_1.ObjectType.DataLarge:
87
+ return consts_1.NVM3_OBJ_HEADER_SIZE_LARGE;
88
+ }
89
+ }
90
+ function getFragmentSize(obj) {
91
+ switch (obj.type) {
92
+ case consts_1.ObjectType.Deleted:
93
+ return 0;
94
+ case consts_1.ObjectType.CounterSmall:
95
+ return consts_1.NVM3_COUNTER_SIZE;
96
+ case consts_1.ObjectType.DataSmall:
97
+ case consts_1.ObjectType.DataLarge:
98
+ case consts_1.ObjectType.CounterLarge:
99
+ return obj.data?.length ?? 0;
100
+ }
101
+ }
102
+ function getRequiredSpace(obj) {
103
+ return getHeaderSize(obj) + getAlignedSize(getFragmentSize(obj));
104
+ }
105
+ function getObjectHeader(obj, offset) {
106
+ const headerSize = getHeaderSize(obj);
107
+ const fragmentSize = getFragmentSize(obj);
108
+ return {
109
+ offset,
110
+ key: obj.key,
111
+ type: obj.type,
112
+ fragmentType: obj.fragmentType,
113
+ headerSize,
114
+ fragmentSize,
115
+ alignedSize: headerSize + getAlignedSize(fragmentSize),
116
+ };
117
+ }
118
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/lib/nvm3/object.ts"],"names":[],"mappings":";;AAsCA,0CA4CC;AAED,kDAqCC;AAED,wCAEC;AAED,sCAUC;AAED,0CAWC;AAED,4CAEC;AAED,0CAeC;AA3KD,qCAekB;AAClB,mCAAoE;AAsBpE,SAAgB,eAAe,CAAC,GAAe;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,mBAAU,CAAC,SAAS;WAC7C,GAAG,CAAC,IAAI,KAAK,mBAAU,CAAC,YAAY,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO;QACzB,CAAC,CAAC,mCAA0B;QAC5B,CAAC,CAAC,mCAA0B,CAAC;IAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC;IAExD,eAAe;IACf,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,IAAI,GAAG,UAAU,GAAG,gCAAuB,CAAC;QAEhD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,2BAAkB,CAAC;cACzC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,0BAAiB,CAAC,IAAI,2BAAkB,CAAC;cACrD,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,+BAAsB,CAAC;mBAC1C,gCAAuB,CAAC,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAA,8BAAsB,EACxC,CAAC,IAAI,EAAE,IAAI,CAAC,EACZ,EAAE,GAAG,8BAAqB,CAC1B,CAAC;QACF,IAAI,IAAI,UAAU,IAAI,8BAAqB,CAAC;QAE5C,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACP,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,UAAU,KAAK,mBAAU,CAAC,SAAS,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAC3D,UAAU,IAAI,UAAU,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,UAAU,GAAG,2BAAkB,CAAC;cACzC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,0BAAiB,CAAC,IAAI,2BAAkB,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,IAAI,EAAE,8BAAqB,CAAC,CAAC;QAClE,IAAI,IAAI,UAAU,IAAI,8BAAqB,CAAC;QAE5C,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa;IACb,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAgB,mBAAmB,CAClC,GAA0E,EAC1E,8BAAsC,EACtC,yBAAiC;IAEjC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAE7B,IACC,GAAG,CAAC,IAAK,CAAC,MAAM,GAAG,mCAA0B;WACzC,8BAA8B,EACjC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,GAAG,CAAC,IAAK,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,8BAA8B,GAAG,mCAA0B;YAC7D,CAAC,CAAC,yBAAyB,GAAG,mCAA0B,CAAC;QAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;QAE/D,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,YAAY,EAAE,MAAM,KAAK,CAAC;gBACzB,CAAC,CAAC,qBAAY,CAAC,KAAK;gBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,mCAA0B;sBACtC,yBAAyB;oBAC7B,CAAC,CAAC,qBAAY,CAAC,IAAI;oBACnB,CAAC,CAAC,qBAAY,CAAC,IAAI;YACpB,IAAI;SACJ,CAAC,CAAC;QAEH,MAAM,IAAI,YAAY,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IAC1C,OAAO,CAAC,IAAI,GAAG,uBAAc,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,uBAAc,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,aAAa,CAAC,GAAe;IAC5C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,mBAAU,CAAC,OAAO,CAAC;QACxB,KAAK,mBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,mBAAU,CAAC,SAAS;YACxB,OAAO,mCAA0B,CAAC;QACnC,KAAK,mBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,mBAAU,CAAC,SAAS;YACxB,OAAO,mCAA0B,CAAC;IACpC,CAAC;AACF,CAAC;AAED,SAAgB,eAAe,CAAC,GAAe;IAC9C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,mBAAU,CAAC,OAAO;YACtB,OAAO,CAAC,CAAC;QACV,KAAK,mBAAU,CAAC,YAAY;YAC3B,OAAO,0BAAiB,CAAC;QAC1B,KAAK,mBAAU,CAAC,SAAS,CAAC;QAC1B,KAAK,mBAAU,CAAC,SAAS,CAAC;QAC1B,KAAK,mBAAU,CAAC,YAAY;YAC3B,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;IAC/B,CAAC;AACF,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAe;IAC/C,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,eAAe,CAC9B,GAAe,EACf,MAAc;IAEd,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO;QACN,MAAM;QACN,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,UAAU;QACV,YAAY;QACZ,WAAW,EAAE,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC;KACtD,CAAC;AACH,CAAC"}
@@ -17,9 +17,5 @@ export interface NVM3Page {
17
17
  }
18
18
  export declare function pageSizeToBits(pageSize: number): number;
19
19
  export declare function pageSizeFromBits(bits: number): number;
20
- export declare function readPage(buffer: Buffer, offset: number): {
21
- page: NVM3Page;
22
- bytesRead: number;
23
- };
24
- export declare function writePageHeader(header: Omit<NVM3PageHeader, "offset">): Buffer;
20
+ export declare function serializePageHeader(header: Omit<NVM3PageHeader, "offset">): Buffer;
25
21
  //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/lib/nvm3/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;CACtB;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GACpC,MAAM,CAkCR"}