zigbee-herdsman 0.29.0 → 0.30.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 (302) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +19 -0
  3. package/dist/adapter/adapter.js +39 -11
  4. package/dist/adapter/adapter.js.map +1 -1
  5. package/dist/adapter/deconz/adapter/deconzAdapter.js +94 -66
  6. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/index.js +8 -2
  8. package/dist/adapter/deconz/adapter/index.js.map +1 -1
  9. package/dist/adapter/deconz/driver/constants.js +3 -1
  10. package/dist/adapter/deconz/driver/constants.js.map +1 -1
  11. package/dist/adapter/deconz/driver/driver.js +68 -57
  12. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  13. package/dist/adapter/deconz/driver/frame.js +3 -1
  14. package/dist/adapter/deconz/driver/frame.js.map +1 -1
  15. package/dist/adapter/deconz/driver/frameParser.js +41 -36
  16. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  17. package/dist/adapter/deconz/driver/parser.js +34 -6
  18. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  19. package/dist/adapter/deconz/driver/writer.js +34 -6
  20. package/dist/adapter/deconz/driver/writer.js.map +1 -1
  21. package/dist/adapter/events.js +4 -2
  22. package/dist/adapter/events.js.map +1 -1
  23. package/dist/adapter/ezsp/adapter/backup.js +15 -8
  24. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  25. package/dist/adapter/ezsp/adapter/ezspAdapter.js +81 -53
  26. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  27. package/dist/adapter/ezsp/adapter/index.js +8 -2
  28. package/dist/adapter/ezsp/adapter/index.js.map +1 -1
  29. package/dist/adapter/ezsp/driver/commands.js +628 -629
  30. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  31. package/dist/adapter/ezsp/driver/consts.js +13 -10
  32. package/dist/adapter/ezsp/driver/consts.js.map +1 -1
  33. package/dist/adapter/ezsp/driver/driver.js +93 -86
  34. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  35. package/dist/adapter/ezsp/driver/ezsp.js +100 -67
  36. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  37. package/dist/adapter/ezsp/driver/index.js +7 -3
  38. package/dist/adapter/ezsp/driver/index.js.map +1 -1
  39. package/dist/adapter/ezsp/driver/multicast.js +18 -11
  40. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  41. package/dist/adapter/ezsp/driver/parser.js +35 -5
  42. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  43. package/dist/adapter/ezsp/driver/types/basic.js +41 -19
  44. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  45. package/dist/adapter/ezsp/driver/types/index.js +119 -12
  46. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  47. package/dist/adapter/ezsp/driver/types/named.js +135 -55
  48. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  49. package/dist/adapter/ezsp/driver/types/struct.js +118 -47
  50. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  51. package/dist/adapter/ezsp/driver/uart.js +54 -24
  52. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  53. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +3 -1
  54. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  55. package/dist/adapter/ezsp/driver/utils/index.js +25 -16
  56. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  57. package/dist/adapter/ezsp/driver/writer.js +37 -7
  58. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  59. package/dist/adapter/index.js +35 -4
  60. package/dist/adapter/index.js.map +1 -1
  61. package/dist/adapter/serialPort.js +8 -4
  62. package/dist/adapter/serialPort.js.map +1 -1
  63. package/dist/adapter/serialPortUtils.js +9 -7
  64. package/dist/adapter/serialPortUtils.js.map +1 -1
  65. package/dist/adapter/socketPortUtils.js +3 -1
  66. package/dist/adapter/socketPortUtils.js.map +1 -1
  67. package/dist/adapter/tstype.js +2 -1
  68. package/dist/adapter/z-stack/adapter/adapter-backup.js +95 -65
  69. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  70. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +23 -19
  71. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  72. package/dist/adapter/z-stack/adapter/endpoints.js +29 -3
  73. package/dist/adapter/z-stack/adapter/endpoints.js.map +1 -1
  74. package/dist/adapter/z-stack/adapter/index.js +8 -2
  75. package/dist/adapter/z-stack/adapter/index.js.map +1 -1
  76. package/dist/adapter/z-stack/adapter/manager.js +99 -69
  77. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  78. package/dist/adapter/z-stack/adapter/tstype.js +4 -2
  79. package/dist/adapter/z-stack/adapter/tstype.js.map +1 -1
  80. package/dist/adapter/z-stack/adapter/zStackAdapter.js +76 -48
  81. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  82. package/dist/adapter/z-stack/constants/af.js +3 -1
  83. package/dist/adapter/z-stack/constants/af.js.map +1 -1
  84. package/dist/adapter/z-stack/constants/common.js +19 -16
  85. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  86. package/dist/adapter/z-stack/constants/dbg.js +3 -1
  87. package/dist/adapter/z-stack/constants/dbg.js.map +1 -1
  88. package/dist/adapter/z-stack/constants/index.js +47 -10
  89. package/dist/adapter/z-stack/constants/index.js.map +1 -1
  90. package/dist/adapter/z-stack/constants/mac.js +3 -1
  91. package/dist/adapter/z-stack/constants/mac.js.map +1 -1
  92. package/dist/adapter/z-stack/constants/sapi.js +3 -1
  93. package/dist/adapter/z-stack/constants/sapi.js.map +1 -1
  94. package/dist/adapter/z-stack/constants/sys.js +3 -1
  95. package/dist/adapter/z-stack/constants/sys.js.map +1 -1
  96. package/dist/adapter/z-stack/constants/util.js +3 -1
  97. package/dist/adapter/z-stack/constants/util.js.map +1 -1
  98. package/dist/adapter/z-stack/constants/utils.js +7 -3
  99. package/dist/adapter/z-stack/constants/utils.js.map +1 -1
  100. package/dist/adapter/z-stack/constants/zdo.js +3 -1
  101. package/dist/adapter/z-stack/constants/zdo.js.map +1 -1
  102. package/dist/adapter/z-stack/models/index.js +17 -1
  103. package/dist/adapter/z-stack/models/index.js.map +1 -1
  104. package/dist/adapter/z-stack/models/startup-options.js +2 -1
  105. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +9 -5
  106. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  107. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +9 -5
  108. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
  109. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +7 -3
  110. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
  111. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +9 -5
  112. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
  113. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +7 -3
  114. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
  115. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +9 -5
  116. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
  117. package/dist/adapter/z-stack/structs/entries/channel-list.js +6 -2
  118. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
  119. package/dist/adapter/z-stack/structs/entries/has-configured.js +6 -2
  120. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
  121. package/dist/adapter/z-stack/structs/entries/index.js +32 -16
  122. package/dist/adapter/z-stack/structs/entries/index.js.map +1 -1
  123. package/dist/adapter/z-stack/structs/entries/nib.js +10 -6
  124. package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
  125. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +6 -2
  126. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
  127. package/dist/adapter/z-stack/structs/entries/nwk-key.js +6 -2
  128. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
  129. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +6 -2
  130. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
  131. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +6 -2
  132. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
  133. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +9 -5
  134. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
  135. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +9 -5
  136. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  137. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +10 -6
  138. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
  139. package/dist/adapter/z-stack/structs/index.js +20 -4
  140. package/dist/adapter/z-stack/structs/index.js.map +1 -1
  141. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -1
  142. package/dist/adapter/z-stack/structs/struct.js +5 -1
  143. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  144. package/dist/adapter/z-stack/structs/table.js +5 -1
  145. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  146. package/dist/adapter/z-stack/unpi/constants.js +12 -3
  147. package/dist/adapter/z-stack/unpi/constants.js.map +1 -1
  148. package/dist/adapter/z-stack/unpi/frame.js +9 -7
  149. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  150. package/dist/adapter/z-stack/unpi/index.js +37 -5
  151. package/dist/adapter/z-stack/unpi/index.js.map +1 -1
  152. package/dist/adapter/z-stack/unpi/parser.js +40 -12
  153. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  154. package/dist/adapter/z-stack/unpi/writer.js +32 -4
  155. package/dist/adapter/z-stack/unpi/writer.js.map +1 -1
  156. package/dist/adapter/z-stack/utils/channel-list.js +11 -5
  157. package/dist/adapter/z-stack/utils/channel-list.js.map +1 -1
  158. package/dist/adapter/z-stack/utils/index.js +18 -2
  159. package/dist/adapter/z-stack/utils/index.js.map +1 -1
  160. package/dist/adapter/z-stack/utils/network-options.js +7 -3
  161. package/dist/adapter/z-stack/utils/network-options.js.map +1 -1
  162. package/dist/adapter/z-stack/znp/buffaloZnp.js +5 -3
  163. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  164. package/dist/adapter/z-stack/znp/definition.js +1285 -1280
  165. package/dist/adapter/z-stack/znp/definition.js.map +1 -1
  166. package/dist/adapter/z-stack/znp/index.js +10 -3
  167. package/dist/adapter/z-stack/znp/index.js.map +1 -1
  168. package/dist/adapter/z-stack/znp/parameterType.js +3 -1
  169. package/dist/adapter/z-stack/znp/parameterType.js.map +1 -1
  170. package/dist/adapter/z-stack/znp/tstype.js +2 -1
  171. package/dist/adapter/z-stack/znp/znp.js +81 -53
  172. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  173. package/dist/adapter/z-stack/znp/zpiObject.js +29 -24
  174. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  175. package/dist/adapter/zigate/adapter/index.js +8 -2
  176. package/dist/adapter/zigate/adapter/index.js.map +1 -1
  177. package/dist/adapter/zigate/adapter/zigateAdapter.js +87 -59
  178. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  179. package/dist/adapter/zigate/debug.js +9 -3
  180. package/dist/adapter/zigate/debug.js.map +1 -1
  181. package/dist/adapter/zigate/driver/buffaloZiGate.js +9 -7
  182. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  183. package/dist/adapter/zigate/driver/commandType.js +50 -45
  184. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  185. package/dist/adapter/zigate/driver/constants.js +34 -31
  186. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  187. package/dist/adapter/zigate/driver/frame.js +6 -3
  188. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  189. package/dist/adapter/zigate/driver/messageType.js +30 -27
  190. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  191. package/dist/adapter/zigate/driver/parameterType.js +3 -1
  192. package/dist/adapter/zigate/driver/parameterType.js.map +1 -1
  193. package/dist/adapter/zigate/driver/ziGateObject.js +18 -13
  194. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  195. package/dist/adapter/zigate/driver/zigate.js +47 -41
  196. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  197. package/dist/buffalo/buffalo.js +5 -3
  198. package/dist/buffalo/buffalo.js.map +1 -1
  199. package/dist/buffalo/index.js +33 -3
  200. package/dist/buffalo/index.js.map +1 -1
  201. package/dist/buffalo/tstype.js +2 -1
  202. package/dist/controller/controller.js +108 -80
  203. package/dist/controller/controller.js.map +1 -1
  204. package/dist/controller/database.js +16 -11
  205. package/dist/controller/database.js.map +1 -1
  206. package/dist/controller/events.js +5 -2
  207. package/dist/controller/events.js.map +1 -1
  208. package/dist/controller/greenPower.js +44 -16
  209. package/dist/controller/greenPower.js.map +1 -1
  210. package/dist/controller/helpers/index.js +28 -2
  211. package/dist/controller/helpers/index.js.map +1 -1
  212. package/dist/controller/helpers/request.js +3 -1
  213. package/dist/controller/helpers/request.js.map +1 -1
  214. package/dist/controller/helpers/requestQueue.js +9 -4
  215. package/dist/controller/helpers/requestQueue.js.map +1 -1
  216. package/dist/controller/helpers/zclFrameConverter.js +12 -5
  217. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  218. package/dist/controller/helpers/zclTransactionSequenceNumber.js +3 -1
  219. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  220. package/dist/controller/index.js +8 -5
  221. package/dist/controller/index.js.map +1 -1
  222. package/dist/controller/logger-stub.js +2 -1
  223. package/dist/controller/model/device.js +67 -39
  224. package/dist/controller/model/device.js.map +1 -1
  225. package/dist/controller/model/endpoint.js +73 -45
  226. package/dist/controller/model/endpoint.js.map +1 -1
  227. package/dist/controller/model/entity.js +8 -3
  228. package/dist/controller/model/entity.js.map +1 -1
  229. package/dist/controller/model/group.js +52 -24
  230. package/dist/controller/model/group.js.map +1 -1
  231. package/dist/controller/model/index.js +14 -5
  232. package/dist/controller/model/index.js.map +1 -1
  233. package/dist/controller/touchlink.js +37 -9
  234. package/dist/controller/touchlink.js.map +1 -1
  235. package/dist/controller/tstype.js +4 -2
  236. package/dist/controller/tstype.js.map +1 -1
  237. package/dist/index.js +33 -3
  238. package/dist/index.js.map +1 -1
  239. package/dist/models/backup-storage-legacy.js +2 -1
  240. package/dist/models/backup-storage-unified.js +2 -1
  241. package/dist/models/backup.js +2 -1
  242. package/dist/models/index.js +20 -4
  243. package/dist/models/index.js.map +1 -1
  244. package/dist/models/network-options.js +2 -1
  245. package/dist/utils/assertString.js +3 -1
  246. package/dist/utils/assertString.js.map +1 -1
  247. package/dist/utils/backup.js +37 -8
  248. package/dist/utils/backup.js.map +1 -1
  249. package/dist/utils/equalsPartial.js +8 -3
  250. package/dist/utils/equalsPartial.js.map +1 -1
  251. package/dist/utils/index.js +45 -9
  252. package/dist/utils/index.js.map +1 -1
  253. package/dist/utils/isNumberArray.js +3 -1
  254. package/dist/utils/isNumberArray.js.map +1 -1
  255. package/dist/utils/queue.js +3 -1
  256. package/dist/utils/queue.js.map +1 -1
  257. package/dist/utils/realpathSync.js +8 -3
  258. package/dist/utils/realpathSync.js.map +1 -1
  259. package/dist/utils/wait.js +3 -1
  260. package/dist/utils/wait.js.map +1 -1
  261. package/dist/utils/waitress.js +3 -1
  262. package/dist/utils/waitress.js.map +1 -1
  263. package/dist/zcl/buffaloZcl.js +44 -16
  264. package/dist/zcl/buffaloZcl.js.map +1 -1
  265. package/dist/zcl/definition/buffaloZclDataType.js +3 -1
  266. package/dist/zcl/definition/buffaloZclDataType.js.map +1 -1
  267. package/dist/zcl/definition/cluster.d.ts.map +1 -1
  268. package/dist/zcl/definition/cluster.js +2371 -2352
  269. package/dist/zcl/definition/cluster.js.map +1 -1
  270. package/dist/zcl/definition/dataType.js +3 -1
  271. package/dist/zcl/definition/dataType.js.map +1 -1
  272. package/dist/zcl/definition/direction.js +3 -1
  273. package/dist/zcl/definition/direction.js.map +1 -1
  274. package/dist/zcl/definition/endpointDeviceType.js +3 -1
  275. package/dist/zcl/definition/endpointDeviceType.js.map +1 -1
  276. package/dist/zcl/definition/foundation.js +58 -53
  277. package/dist/zcl/definition/foundation.js.map +1 -1
  278. package/dist/zcl/definition/frameControl.js +2 -1
  279. package/dist/zcl/definition/frameType.js +3 -1
  280. package/dist/zcl/definition/frameType.js.map +1 -1
  281. package/dist/zcl/definition/index.js +51 -12
  282. package/dist/zcl/definition/index.js.map +1 -1
  283. package/dist/zcl/definition/manufacturerCode.js +3 -1
  284. package/dist/zcl/definition/manufacturerCode.js.map +1 -1
  285. package/dist/zcl/definition/powerSource.js +3 -1
  286. package/dist/zcl/definition/powerSource.js.map +1 -1
  287. package/dist/zcl/definition/status.js +3 -1
  288. package/dist/zcl/definition/status.js.map +1 -1
  289. package/dist/zcl/definition/tstype.js +2 -1
  290. package/dist/zcl/index.js +55 -14
  291. package/dist/zcl/index.js.map +1 -1
  292. package/dist/zcl/tstype.js +4 -2
  293. package/dist/zcl/tstype.js.map +1 -1
  294. package/dist/zcl/utils.js +27 -22
  295. package/dist/zcl/utils.js.map +1 -1
  296. package/dist/zcl/zclFrame.js +70 -42
  297. package/dist/zcl/zclFrame.js.map +1 -1
  298. package/dist/zcl/zclHeader.js +2 -1
  299. package/dist/zcl/zclStatusError.js +8 -3
  300. package/dist/zcl/zclStatusError.js.map +1 -1
  301. package/package.json +1 -1
  302. package/tsconfig.json +1 -1
@@ -1,21 +1,50 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.AdapterBackup = void 0;
1
30
  /* eslint-disable max-len */
2
- import Debug from "debug";
3
- import * as Structs from "../structs";
4
- import * as Utils from "../utils";
5
- import { BackupUtils } from "../../../utils";
6
- import { fs } from "mz";
7
- import { NvItemsIds, NvSystemIds } from "../constants/common";
8
- import { Subsystem } from "../unpi/constants";
9
- import { ZnpVersion } from "./tstype";
10
- import { AddressManagerUser, SecurityManagerAuthenticationOption } from "../structs";
31
+ const debug_1 = __importDefault(require("debug"));
32
+ const Structs = __importStar(require("../structs"));
33
+ const Utils = __importStar(require("../utils"));
34
+ const utils_1 = require("../../../utils");
35
+ const mz_1 = require("mz");
36
+ const common_1 = require("../constants/common");
37
+ const constants_1 = require("../unpi/constants");
38
+ const tstype_1 = require("./tstype");
39
+ const structs_1 = require("../structs");
11
40
  /**
12
41
  * Class providing ZNP adapter backup and restore procedures based mostly on NV memory manipulation.
13
42
  */
14
- export class AdapterBackup {
43
+ class AdapterBackup {
15
44
  znp;
16
45
  nv;
17
46
  defaultPath;
18
- debug = Debug("zigbee-herdsman:adapter:zStack:startup:backup");
47
+ debug = (0, debug_1.default)("zigbee-herdsman:adapter:zStack:startup:backup");
19
48
  constructor(znp, nv, path) {
20
49
  this.znp = znp;
21
50
  this.nv = nv;
@@ -26,14 +55,14 @@ export class AdapterBackup {
26
55
  */
27
56
  async getStoredBackup() {
28
57
  try {
29
- await fs.access(this.defaultPath);
58
+ await mz_1.fs.access(this.defaultPath);
30
59
  }
31
60
  catch (error) {
32
61
  return null;
33
62
  }
34
63
  let data;
35
64
  try {
36
- data = JSON.parse((await fs.readFile(this.defaultPath)).toString());
65
+ data = JSON.parse((await mz_1.fs.readFile(this.defaultPath)).toString());
37
66
  }
38
67
  catch (error) {
39
68
  throw new Error('Coordinator backup is corrupted');
@@ -42,10 +71,10 @@ export class AdapterBackup {
42
71
  if (data.metadata?.version !== 1) {
43
72
  throw new Error(`Unsupported open coordinator backup version (version=${data.metadata?.version})`);
44
73
  }
45
- return BackupUtils.fromUnifiedBackup(data);
74
+ return utils_1.BackupUtils.fromUnifiedBackup(data);
46
75
  }
47
76
  else if (data.adapterType === "zStack") {
48
- return BackupUtils.fromLegacyBackup(data);
77
+ return utils_1.BackupUtils.fromLegacyBackup(data);
49
78
  }
50
79
  else {
51
80
  throw new Error("Unknown backup format");
@@ -58,34 +87,34 @@ export class AdapterBackup {
58
87
  this.debug("creating backup");
59
88
  const version = await this.getAdapterVersion();
60
89
  /* get adapter ieee address */
61
- const ieeeAddressResponse = await this.znp.request(Subsystem.SYS, "getExtAddr", {});
90
+ const ieeeAddressResponse = await this.znp.request(constants_1.Subsystem.SYS, "getExtAddr", {});
62
91
  if (!ieeeAddressResponse || !ieeeAddressResponse.payload.extaddress || !ieeeAddressResponse.payload.extaddress.startsWith("0x")) {
63
92
  throw new Error("Failed to read adapter IEEE address");
64
93
  }
65
94
  const ieeeAddress = Buffer.from(ieeeAddressResponse.payload.extaddress.split("0x")[1], "hex");
66
95
  this.debug("fetched adapter ieee address");
67
96
  /* get adapter nib */
68
- const nib = await this.nv.readItem(NvItemsIds.NIB, 0, Structs.nib);
97
+ const nib = await this.nv.readItem(common_1.NvItemsIds.NIB, 0, Structs.nib);
69
98
  if (!nib) {
70
99
  throw new Error("Cannot backup - adapter not commissioned");
71
100
  }
72
101
  this.debug("fetched adapter nib");
73
102
  /* get adapter active key information */
74
103
  let activeKeyInfo;
75
- if (version === ZnpVersion.zStack12) {
76
- const key = Structs.nwkKey((await this.znp.request(Subsystem.SAPI, "readConfiguration", { configid: NvItemsIds.PRECFGKEY })).payload.value);
104
+ if (version === tstype_1.ZnpVersion.zStack12) {
105
+ const key = Structs.nwkKey((await this.znp.request(constants_1.Subsystem.SAPI, "readConfiguration", { configid: common_1.NvItemsIds.PRECFGKEY })).payload.value);
77
106
  activeKeyInfo = Structs.nwkKeyDescriptor();
78
107
  activeKeyInfo.key = key.key;
79
108
  }
80
109
  else {
81
- activeKeyInfo = await this.nv.readItem(NvItemsIds.NWK_ACTIVE_KEY_INFO, 0, Structs.nwkKeyDescriptor);
110
+ activeKeyInfo = await this.nv.readItem(common_1.NvItemsIds.NWK_ACTIVE_KEY_INFO, 0, Structs.nwkKeyDescriptor);
82
111
  }
83
112
  if (!activeKeyInfo) {
84
113
  throw new Error("Cannot backup - missing active key info");
85
114
  }
86
115
  this.debug("fetched adapter active key information");
87
116
  /* get adapter security data */
88
- const preconfiguredKeyEnabled = await this.nv.readItem(NvItemsIds.PRECFGKEYS_ENABLE, 0);
117
+ const preconfiguredKeyEnabled = await this.nv.readItem(common_1.NvItemsIds.PRECFGKEYS_ENABLE, 0);
89
118
  this.debug("fetched adapter pre-configured key");
90
119
  const addressManagerTable = await this.getAddressManagerTable(version);
91
120
  this.debug(`fetched adapter address manager table (capacity=${addressManagerTable?.capacity || 0}, used=${addressManagerTable?.usedCount || 0})`);
@@ -93,7 +122,7 @@ export class AdapterBackup {
93
122
  this.debug(`fetched adapter security manager table (capacity=${securityManagerTable?.usedCount || 0}, used=${securityManagerTable?.usedCount || 0})`);
94
123
  const apsLinkKeyDataTable = await this.getApsLinkKeyDataTable(version);
95
124
  this.debug(`fetched adapter aps link key data table (capacity=${apsLinkKeyDataTable?.usedCount || 0}, used=${apsLinkKeyDataTable?.usedCount || 0})`);
96
- const tclkSeed = version === ZnpVersion.zStack12 ? null : await this.nv.readItem(NvItemsIds.TCLK_SEED, 0, Structs.nwkKey);
125
+ const tclkSeed = version === tstype_1.ZnpVersion.zStack12 ? null : await this.nv.readItem(common_1.NvItemsIds.TCLK_SEED, 0, Structs.nwkKey);
97
126
  this.debug("fetched adapter tclk seed");
98
127
  const tclkTable = await this.getTclkTable(version);
99
128
  this.debug(`fetched adapter tclk table (capacity=${tclkTable?.usedCount || 0}, used=${tclkTable?.usedCount || 0})`);
@@ -115,7 +144,7 @@ export class AdapterBackup {
115
144
  if (!secMaterialDescriptor) {
116
145
  secMaterialDescriptor = Structs.nwkSecMaterialDescriptorEntry();
117
146
  secMaterialDescriptor.extendedPanID = nib.extendedPANID;
118
- secMaterialDescriptor.FrameCounter = version === ZnpVersion.zStack12 ? 0 : 1250;
147
+ secMaterialDescriptor.FrameCounter = version === tstype_1.ZnpVersion.zStack12 ? 0 : 1250;
119
148
  }
120
149
  /* return backup structure */
121
150
  /* istanbul ignore next */
@@ -141,14 +170,14 @@ export class AdapterBackup {
141
170
  coordinatorIeeeAddress: ieeeAddress,
142
171
  devices: addressManagerTable && addressManagerTable.used.map((ame, ami) => {
143
172
  /* take all entries of assoc and/or security type */
144
- if (!ame.isSet() || (ame.user & (AddressManagerUser.Assoc | AddressManagerUser.Security)) === 0) {
173
+ if (!ame.isSet() || (ame.user & (structs_1.AddressManagerUser.Assoc | structs_1.AddressManagerUser.Security)) === 0) {
145
174
  /* istanbul ignore next */
146
175
  return null;
147
176
  }
148
177
  let linkKeyInfo = null;
149
178
  const sme = securityManagerTable.used.find(e => e.ami === ami);
150
179
  if (sme) {
151
- const apsKeyDataIndex = version === ZnpVersion.zStack30x ? sme.keyNvId - NvItemsIds.APS_LINK_KEY_DATA_START : sme.keyNvId;
180
+ const apsKeyDataIndex = version === tstype_1.ZnpVersion.zStack30x ? sme.keyNvId - common_1.NvItemsIds.APS_LINK_KEY_DATA_START : sme.keyNvId;
152
181
  const apsKeyData = apsLinkKeyDataTable.used[apsKeyDataIndex] || null;
153
182
  if (apsKeyData) {
154
183
  linkKeyInfo = {
@@ -178,7 +207,7 @@ export class AdapterBackup {
178
207
  return {
179
208
  networkAddress: ame.nwkAddr,
180
209
  ieeeAddress: ame.extAddr,
181
- isDirectChild: (ame.user & AddressManagerUser.Assoc) > 0,
210
+ isDirectChild: (ame.user & structs_1.AddressManagerUser.Assoc) > 0,
182
211
  linkKey: !linkKeyInfo ? undefined : linkKeyInfo
183
212
  };
184
213
  }).filter(e => e) || []
@@ -213,11 +242,11 @@ export class AdapterBackup {
213
242
  this.debug("restoring backup");
214
243
  const version = await this.getAdapterVersion();
215
244
  /* istanbul ignore next */
216
- if (version === ZnpVersion.zStack12) {
245
+ if (version === tstype_1.ZnpVersion.zStack12) {
217
246
  throw new Error("backup cannot be restored on Z-Stack 1.2 adapter");
218
247
  }
219
248
  /* fetch provisional NIB */
220
- const nib = await this.nv.readItem(NvItemsIds.NIB, 0, Structs.nib);
249
+ const nib = await this.nv.readItem(common_1.NvItemsIds.NIB, 0, Structs.nib);
221
250
  /* update NIB with desired nwk config */
222
251
  nib.nwkPanId = backup.networkOptions.panId;
223
252
  nib.channelList = Utils.packChannelList(backup.networkOptions.channelList);
@@ -259,7 +288,7 @@ export class AdapterBackup {
259
288
  const ame = addressManagerTable.getNextFree();
260
289
  ame.nwkAddr = device.networkAddress;
261
290
  ame.extAddr = device.ieeeAddress;
262
- ame.user = device.isDirectChild ? AddressManagerUser.Assoc : AddressManagerUser.Default;
291
+ ame.user = device.isDirectChild ? structs_1.AddressManagerUser.Assoc : structs_1.AddressManagerUser.Default;
263
292
  if (device.linkKey) {
264
293
  let linkKeyProcessed = false;
265
294
  /* attempt to recover tclk seed parameters (if available) */
@@ -280,7 +309,7 @@ export class AdapterBackup {
280
309
  }
281
310
  }
282
311
  if (recoveredSeedShift !== null) {
283
- ame.user |= AddressManagerUser.Security;
312
+ ame.user |= structs_1.AddressManagerUser.Security;
284
313
  const tclkEntry = tclkTable.getNextFree();
285
314
  if (!tclkEntry) {
286
315
  throw new Error(`target adapter tclk table size insufficient (size=${tclkTable.capacity})`);
@@ -297,7 +326,7 @@ export class AdapterBackup {
297
326
  }
298
327
  /* attempt to create aps link key data entry */
299
328
  if (!linkKeyProcessed) {
300
- ame.user |= AddressManagerUser.Security;
329
+ ame.user |= structs_1.AddressManagerUser.Security;
301
330
  const apsKeyDataEntry = apsLinkKeyDataTable.getNextFree();
302
331
  if (!apsKeyDataEntry) {
303
332
  throw new Error(`target adapter aps link key data table size insufficient (size=${apsLinkKeyDataTable.capacity})`);
@@ -310,8 +339,8 @@ export class AdapterBackup {
310
339
  throw new Error(`target adapter security manager table size insufficient (size=${securityManagerTable.capacity})`);
311
340
  }
312
341
  sme.ami = addressManagerTable.indexOf(ame);
313
- sme.keyNvId = version === ZnpVersion.zStack3x0 ? apsLinkKeyDataTable.indexOf(apsKeyDataEntry) : NvItemsIds.APS_LINK_KEY_DATA_START + apsLinkKeyDataTable.indexOf(apsKeyDataEntry);
314
- sme.authenticationOption = SecurityManagerAuthenticationOption.AuthenticatedCBCK;
342
+ sme.keyNvId = version === tstype_1.ZnpVersion.zStack3x0 ? apsLinkKeyDataTable.indexOf(apsKeyDataEntry) : common_1.NvItemsIds.APS_LINK_KEY_DATA_START + apsLinkKeyDataTable.indexOf(apsKeyDataEntry);
343
+ sme.authenticationOption = structs_1.SecurityManagerAuthenticationOption.AuthenticatedCBCK;
315
344
  linkKeyProcessed = true;
316
345
  this.debug(`successfully recovered link key for ${device.ieeeAddress.toString("hex")} using aps key data table`);
317
346
  }
@@ -319,45 +348,45 @@ export class AdapterBackup {
319
348
  }
320
349
  /* recover coordinator ieee address */
321
350
  const reversedAdapterIeee = Buffer.from(backup.coordinatorIeeeAddress).reverse();
322
- await this.nv.writeItem(NvItemsIds.EXTADDR, reversedAdapterIeee);
351
+ await this.nv.writeItem(common_1.NvItemsIds.EXTADDR, reversedAdapterIeee);
323
352
  /* write updated nib */
324
- await this.nv.writeItem(NvItemsIds.NIB, nib);
353
+ await this.nv.writeItem(common_1.NvItemsIds.NIB, nib);
325
354
  /* write network key info */
326
- await this.nv.updateItem(NvItemsIds.NWK_ACTIVE_KEY_INFO, keyDescriptor.serialize());
327
- await this.nv.updateItem(NvItemsIds.NWK_ALTERN_KEY_INFO, keyDescriptor.serialize());
355
+ await this.nv.updateItem(common_1.NvItemsIds.NWK_ACTIVE_KEY_INFO, keyDescriptor.serialize());
356
+ await this.nv.updateItem(common_1.NvItemsIds.NWK_ALTERN_KEY_INFO, keyDescriptor.serialize());
328
357
  /* write tclk seed if present */
329
358
  if (backup.znp?.trustCenterLinkKeySeed) {
330
- await this.nv.writeItem(NvItemsIds.TCLK_SEED, backup.znp.trustCenterLinkKeySeed);
359
+ await this.nv.writeItem(common_1.NvItemsIds.TCLK_SEED, backup.znp.trustCenterLinkKeySeed);
331
360
  }
332
361
  /* write network security material table (nwk frame counters) */
333
- if (version === ZnpVersion.zStack3x0) {
334
- await this.nv.writeTable("extended", NvSystemIds.ZSTACK, NvItemsIds.EX_NWK_SEC_MATERIAL_TABLE, nwkSecurityMaterialTable);
362
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
363
+ await this.nv.writeTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.EX_NWK_SEC_MATERIAL_TABLE, nwkSecurityMaterialTable);
335
364
  }
336
365
  else {
337
- await this.nv.writeTable("legacy", NvItemsIds.LEGACY_NWK_SEC_MATERIAL_TABLE_START, nwkSecurityMaterialTable);
366
+ await this.nv.writeTable("legacy", common_1.NvItemsIds.LEGACY_NWK_SEC_MATERIAL_TABLE_START, nwkSecurityMaterialTable);
338
367
  }
339
368
  /* write address manager table */
340
- if (version === ZnpVersion.zStack3x0) {
341
- await this.nv.writeTable("extended", NvSystemIds.ZSTACK, NvItemsIds.ZCD_NV_EX_ADDRMGR, addressManagerTable);
369
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
370
+ await this.nv.writeTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.ZCD_NV_EX_ADDRMGR, addressManagerTable);
342
371
  }
343
372
  else {
344
- await this.nv.writeItem(NvItemsIds.ADDRMGR, addressManagerTable);
373
+ await this.nv.writeItem(common_1.NvItemsIds.ADDRMGR, addressManagerTable);
345
374
  }
346
375
  /* write security manager table */
347
- await this.nv.writeItem(NvItemsIds.APS_LINK_KEY_TABLE, securityManagerTable);
376
+ await this.nv.writeItem(common_1.NvItemsIds.APS_LINK_KEY_TABLE, securityManagerTable);
348
377
  /* write aps link key data table */
349
- if (version === ZnpVersion.zStack3x0) {
350
- await this.nv.writeTable("extended", NvSystemIds.ZSTACK, NvItemsIds.ZCD_NV_EX_APS_KEY_DATA_TABLE, apsLinkKeyDataTable);
378
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
379
+ await this.nv.writeTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.ZCD_NV_EX_APS_KEY_DATA_TABLE, apsLinkKeyDataTable);
351
380
  }
352
381
  else {
353
- await this.nv.writeTable("legacy", NvItemsIds.APS_LINK_KEY_DATA_START, apsLinkKeyDataTable);
382
+ await this.nv.writeTable("legacy", common_1.NvItemsIds.APS_LINK_KEY_DATA_START, apsLinkKeyDataTable);
354
383
  }
355
384
  /* write tclk table */
356
- if (version === ZnpVersion.zStack3x0) {
357
- await this.nv.writeTable("extended", NvSystemIds.ZSTACK, NvItemsIds.EX_TCLK_TABLE, tclkTable);
385
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
386
+ await this.nv.writeTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.EX_TCLK_TABLE, tclkTable);
358
387
  }
359
388
  else {
360
- await this.nv.writeTable("legacy", NvItemsIds.LEGACY_TCLK_TABLE_START, tclkTable);
389
+ await this.nv.writeTable("legacy", common_1.NvItemsIds.LEGACY_TCLK_TABLE_START, tclkTable);
361
390
  }
362
391
  }
363
392
  /**
@@ -367,7 +396,7 @@ export class AdapterBackup {
367
396
  * and restore procedures are not supported.*
368
397
  */
369
398
  async getAdapterVersion() {
370
- const versionResponse = await this.znp.request(Subsystem.SYS, "version", {});
399
+ const versionResponse = await this.znp.request(constants_1.Subsystem.SYS, "version", {});
371
400
  const version = versionResponse.payload.product;
372
401
  return version;
373
402
  }
@@ -377,18 +406,18 @@ export class AdapterBackup {
377
406
  * @param version ZNP stack version the adapter is running.
378
407
  */
379
408
  async getAddressManagerTable(version) {
380
- if (version === ZnpVersion.zStack3x0) {
381
- return this.nv.readTable("extended", NvSystemIds.ZSTACK, NvItemsIds.ZCD_NV_EX_ADDRMGR, undefined, Structs.addressManagerTable);
409
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
410
+ return this.nv.readTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.ZCD_NV_EX_ADDRMGR, undefined, Structs.addressManagerTable);
382
411
  }
383
412
  else {
384
- return this.nv.readItem(NvItemsIds.ADDRMGR, 0, Structs.addressManagerTable);
413
+ return this.nv.readItem(common_1.NvItemsIds.ADDRMGR, 0, Structs.addressManagerTable);
385
414
  }
386
415
  }
387
416
  /**
388
417
  * Internal method to retrieve security manager table. Also referred to as APS Link Key Table.
389
418
  */
390
419
  async getSecurityManagerTable() {
391
- return this.nv.readItem(NvItemsIds.APS_LINK_KEY_TABLE, 0, Structs.securityManagerTable);
420
+ return this.nv.readItem(common_1.NvItemsIds.APS_LINK_KEY_TABLE, 0, Structs.securityManagerTable);
392
421
  }
393
422
  /**
394
423
  * Internal method to retrieve APS Link Key Data Table containing arbitrary APS link keys.
@@ -396,11 +425,11 @@ export class AdapterBackup {
396
425
  * @param version ZNP stack version the adapter is running.
397
426
  */
398
427
  async getApsLinkKeyDataTable(version) {
399
- if (version === ZnpVersion.zStack3x0) {
400
- return this.nv.readTable("extended", NvSystemIds.ZSTACK, NvItemsIds.ZCD_NV_EX_APS_KEY_DATA_TABLE, undefined, Structs.apsLinkKeyDataTable);
428
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
429
+ return this.nv.readTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.ZCD_NV_EX_APS_KEY_DATA_TABLE, undefined, Structs.apsLinkKeyDataTable);
401
430
  }
402
431
  else {
403
- return this.nv.readTable("legacy", NvItemsIds.APS_LINK_KEY_DATA_START, 255, Structs.apsLinkKeyDataTable);
432
+ return this.nv.readTable("legacy", common_1.NvItemsIds.APS_LINK_KEY_DATA_START, 255, Structs.apsLinkKeyDataTable);
404
433
  }
405
434
  }
406
435
  /**
@@ -409,11 +438,11 @@ export class AdapterBackup {
409
438
  * @param version ZNP stack version the adapter is running.
410
439
  */
411
440
  async getTclkTable(version) {
412
- if (version === ZnpVersion.zStack3x0) {
413
- return this.nv.readTable("extended", NvSystemIds.ZSTACK, NvItemsIds.EX_TCLK_TABLE, undefined, Structs.apsTcLinkKeyTable);
441
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
442
+ return this.nv.readTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.EX_TCLK_TABLE, undefined, Structs.apsTcLinkKeyTable);
414
443
  }
415
444
  else {
416
- return this.nv.readTable("legacy", NvItemsIds.LEGACY_TCLK_TABLE_START, 239, Structs.apsTcLinkKeyTable);
445
+ return this.nv.readTable("legacy", common_1.NvItemsIds.LEGACY_TCLK_TABLE_START, 239, Structs.apsTcLinkKeyTable);
417
446
  }
418
447
  }
419
448
  /**
@@ -422,12 +451,13 @@ export class AdapterBackup {
422
451
  * @param version ZNP stack version the adapter is running.
423
452
  */
424
453
  async getNetworkSecurityMaterialTable(version) {
425
- if (version === ZnpVersion.zStack3x0) {
426
- return this.nv.readTable("extended", NvSystemIds.ZSTACK, NvItemsIds.EX_NWK_SEC_MATERIAL_TABLE, undefined, Structs.nwkSecMaterialDescriptorTable);
454
+ if (version === tstype_1.ZnpVersion.zStack3x0) {
455
+ return this.nv.readTable("extended", common_1.NvSystemIds.ZSTACK, common_1.NvItemsIds.EX_NWK_SEC_MATERIAL_TABLE, undefined, Structs.nwkSecMaterialDescriptorTable);
427
456
  }
428
457
  else {
429
- return this.nv.readTable("legacy", NvItemsIds.LEGACY_NWK_SEC_MATERIAL_TABLE_START, 12, Structs.nwkSecMaterialDescriptorTable);
458
+ return this.nv.readTable("legacy", common_1.NvItemsIds.LEGACY_NWK_SEC_MATERIAL_TABLE_START, 12, Structs.nwkSecMaterialDescriptorTable);
430
459
  }
431
460
  }
432
461
  }
462
+ exports.AdapterBackup = AdapterBackup;
433
463
  //# sourceMappingURL=adapter-backup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-backup.js","sourceRoot":"","sources":["../../../../src/adapter/z-stack/adapter/adapter-backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter-backup.js","sourceRoot":"","sources":["../../../../src/adapter/z-stack/adapter/adapter-backup.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdapterNvMemory = void 0;
1
4
  /* eslint-disable max-len */
2
- import { NvItemsIds, ZnpCommandStatus } from "../constants/common";
3
- import { Subsystem } from "../unpi/constants";
5
+ const common_1 = require("../constants/common");
6
+ const constants_1 = require("../unpi/constants");
4
7
  /**
5
8
  * Adapter non-volatile memory instrumentation. This class provides interface to interact
6
9
  * with ZNP adapter's NV memory. Provided functionality covers basic operations from reading,
7
10
  * writing and deleting keys to extended table manipulation.
8
11
  */
9
- export class AdapterNvMemory {
12
+ class AdapterNvMemory {
10
13
  memoryAlignment = null;
11
14
  znp;
12
15
  constructor(znp) {
@@ -17,21 +20,21 @@ export class AdapterNvMemory {
17
20
  */
18
21
  async init() {
19
22
  /* use `ZCD_NV_NWKKEY` to determine if target platform uses memory alignment (length 21 = unaligned, length 24 = aligned) */
20
- const rawNwkKey = await this.readItem(NvItemsIds.NWKKEY);
23
+ const rawNwkKey = await this.readItem(common_1.NvItemsIds.NWKKEY);
21
24
  this.memoryAlignment = rawNwkKey.length === 21 ? "unaligned" : "aligned";
22
25
  }
23
26
  async readItem(id, offset = 0, useStruct) {
24
27
  if (useStruct) {
25
28
  this.checkMemoryAlignmentSetup();
26
29
  }
27
- const lengthResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvLength", { id }));
30
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
28
31
  if (!lengthResponse?.payload?.length || lengthResponse?.payload?.length === 0) {
29
32
  return null;
30
33
  }
31
34
  const length = lengthResponse.payload.length;
32
35
  const buffer = Buffer.alloc(length);
33
36
  while (offset < length) {
34
- const readResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvReadExt", { id, offset }));
37
+ const readResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvReadExt", { id, offset }));
35
38
  /* istanbul ignore next */
36
39
  if (!readResponse) {
37
40
  return null;
@@ -61,7 +64,7 @@ export class AdapterNvMemory {
61
64
  async writeItem(id, data, offset = 0, autoInit = true) {
62
65
  this.checkMemoryAlignmentSetup();
63
66
  const buffer = Buffer.isBuffer(data) ? data : data.serialize(this.memoryAlignment);
64
- const lengthResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvLength", { id }));
67
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
65
68
  const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
66
69
  /* istanbul ignore next */
67
70
  if (!exists) {
@@ -69,9 +72,9 @@ export class AdapterNvMemory {
69
72
  if (!autoInit) {
70
73
  throw new Error(`Cannot write NV memory item which does not exist (id=${id})`);
71
74
  }
72
- const initResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvItemInit", { id, len: buffer.length, initlen: initLength, initvalue: buffer.slice(0, initLength) }, undefined, null, [ZnpCommandStatus.SUCCESS, ZnpCommandStatus.NV_ITEM_INITIALIZED]));
75
+ const initResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvItemInit", { id, len: buffer.length, initlen: initLength, initvalue: buffer.slice(0, initLength) }, undefined, null, [common_1.ZnpCommandStatus.SUCCESS, common_1.ZnpCommandStatus.NV_ITEM_INITIALIZED]));
73
76
  if (initResponse.payload.status !== 0x09) {
74
- throw new Error(`Failed to initialize NV memory item (id=${id}, name=${NvItemsIds[id]}, len=${buffer.length}, status=${initResponse.payload.status})`);
77
+ throw new Error(`Failed to initialize NV memory item (id=${id}, name=${common_1.NvItemsIds[id]}, len=${buffer.length}, status=${initResponse.payload.status})`);
75
78
  }
76
79
  }
77
80
  let remaining = buffer.length;
@@ -80,7 +83,7 @@ export class AdapterNvMemory {
80
83
  const writeLength = remaining > 240 ? 240 : remaining;
81
84
  const dataOffset = buffer.length - remaining;
82
85
  const writeData = buffer.slice(dataOffset, dataOffset + writeLength);
83
- const writeResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvWriteExt", { id, offset: dataOffset, len: writeLength, value: writeData }));
86
+ const writeResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvWriteExt", { id, offset: dataOffset, len: writeLength, value: writeData }));
84
87
  /* istanbul ignore next */
85
88
  if (writeResponse.payload.status !== 0) {
86
89
  throw new Error(`Received non-success status while writing NV (id=${id}, offset=${offset}, status=${writeResponse.payload.status})`);
@@ -109,12 +112,12 @@ export class AdapterNvMemory {
109
112
  */
110
113
  async deleteItem(id) {
111
114
  this.checkMemoryAlignmentSetup();
112
- const lengthResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvLength", { id }));
115
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
113
116
  const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
114
117
  /* istanbul ignore next */
115
118
  if (exists) {
116
- const deleteResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "osalNvDelete", { id, len: lengthResponse.payload.length }));
117
- if (!deleteResponse || ![ZnpCommandStatus.SUCCESS, ZnpCommandStatus.NV_ITEM_INITIALIZED].includes(deleteResponse.payload.status)) {
119
+ const deleteResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvDelete", { id, len: lengthResponse.payload.length }));
120
+ if (!deleteResponse || ![common_1.ZnpCommandStatus.SUCCESS, common_1.ZnpCommandStatus.NV_ITEM_INITIALIZED].includes(deleteResponse.payload.status)) {
118
121
  /* istanbul ignore next */
119
122
  throw new Error(`Received non-success status while deleting NV (id=${id}, status=${deleteResponse.payload.status})`);
120
123
  }
@@ -122,10 +125,10 @@ export class AdapterNvMemory {
122
125
  }
123
126
  async readExtendedTableEntry(sysId, id, subId, offset, useStruct) {
124
127
  this.checkMemoryAlignmentSetup();
125
- const lengthResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
128
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
126
129
  const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
127
130
  if (exists) {
128
- const readResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "nvRead", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: lengthResponse.payload.len }));
131
+ const readResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvRead", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: lengthResponse.payload.len }));
129
132
  /* istanbul ignore next */
130
133
  if (readResponse.payload.status !== 0) {
131
134
  throw new Error(`Received non-success status while reading NV extended table entry (sysId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${readResponse.payload.status})`);
@@ -153,20 +156,20 @@ export class AdapterNvMemory {
153
156
  */
154
157
  async writeExtendedTableEntry(sysId, id, subId, data, offset, autoInit = true) {
155
158
  this.checkMemoryAlignmentSetup();
156
- const lengthResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
159
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
157
160
  const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
158
161
  /* istanbul ignore if */
159
162
  if (!exists) {
160
163
  if (!autoInit) {
161
164
  throw new Error(`Cannot write NV memory extended table item which does not exist (sudId=${sysId}, id=${id}, subId=${subId})`);
162
165
  }
163
- const createResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "nvCreate", { sysid: sysId, itemid: id, subid: subId, len: data.length }));
164
- if (!createResponse || createResponse.payload.status !== ZnpCommandStatus.SUCCESS) {
166
+ const createResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvCreate", { sysid: sysId, itemid: id, subid: subId, len: data.length }));
167
+ if (!createResponse || createResponse.payload.status !== common_1.ZnpCommandStatus.SUCCESS) {
165
168
  /* istanbul ignore next */
166
169
  throw new Error(`Failed to crate NV memory extended table item with status (sudId=${sysId}, id=${id}, subId=${subId})`);
167
170
  }
168
171
  }
169
- const writeResponse = await this.retry(() => this.znp.request(Subsystem.SYS, "nvWrite", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: data.length, value: data }));
172
+ const writeResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvWrite", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: data.length, value: data }));
170
173
  /* istanbul ignore next */
171
174
  if (writeResponse.payload.status !== 0) {
172
175
  throw new Error(`Received non-success status while writing NV extended table idem (sudId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${writeResponse.payload.status})`);
@@ -252,4 +255,5 @@ export class AdapterNvMemory {
252
255
  }
253
256
  }
254
257
  }
258
+ exports.AdapterNvMemory = AdapterNvMemory;
255
259
  //# sourceMappingURL=adapter-nv-memory.js.map