@willieee802/zigbee-herdsman 0.18.2 → 0.19.2

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 (329) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +67 -0
  3. package/dist/adapter/adapter.d.ts +61 -61
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +146 -146
  6. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +68 -68
  7. package/dist/adapter/deconz/adapter/deconzAdapter.js +1060 -1060
  8. package/dist/adapter/deconz/adapter/index.d.ts +2 -2
  9. package/dist/adapter/deconz/adapter/index.js +10 -10
  10. package/dist/adapter/deconz/driver/constants.d.ts +104 -104
  11. package/dist/adapter/deconz/driver/constants.js +55 -55
  12. package/dist/adapter/deconz/driver/driver.d.ts +81 -81
  13. package/dist/adapter/deconz/driver/driver.js +732 -732
  14. package/dist/adapter/deconz/driver/frame.d.ts +6 -6
  15. package/dist/adapter/deconz/driver/frame.js +13 -13
  16. package/dist/adapter/deconz/driver/frameParser.d.ts +2 -2
  17. package/dist/adapter/deconz/driver/frameParser.js +443 -443
  18. package/dist/adapter/deconz/driver/parser.d.ts +12 -12
  19. package/dist/adapter/deconz/driver/parser.js +61 -61
  20. package/dist/adapter/deconz/driver/writer.d.ts +8 -8
  21. package/dist/adapter/deconz/driver/writer.js +44 -44
  22. package/dist/adapter/events.d.ts +47 -47
  23. package/dist/adapter/events.js +14 -14
  24. package/dist/adapter/ezsp/adapter/backup.d.ts +9 -9
  25. package/dist/adapter/ezsp/adapter/backup.js +53 -53
  26. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +59 -59
  27. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  28. package/dist/adapter/ezsp/adapter/ezspAdapter.js +603 -585
  29. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  30. package/dist/adapter/ezsp/adapter/index.d.ts +2 -2
  31. package/dist/adapter/ezsp/adapter/index.js +10 -10
  32. package/dist/adapter/ezsp/driver/commands.d.ts +36 -36
  33. package/dist/adapter/ezsp/driver/commands.js +2359 -2359
  34. package/dist/adapter/ezsp/driver/consts.d.ts +10 -10
  35. package/dist/adapter/ezsp/driver/consts.js +13 -13
  36. package/dist/adapter/ezsp/driver/driver.d.ts +103 -103
  37. package/dist/adapter/ezsp/driver/driver.js +639 -639
  38. package/dist/adapter/ezsp/driver/ezsp.d.ts +96 -96
  39. package/dist/adapter/ezsp/driver/ezsp.js +586 -586
  40. package/dist/adapter/ezsp/driver/index.d.ts +3 -3
  41. package/dist/adapter/ezsp/driver/index.js +8 -8
  42. package/dist/adapter/ezsp/driver/multicast.d.ts +12 -12
  43. package/dist/adapter/ezsp/driver/multicast.js +74 -74
  44. package/dist/adapter/ezsp/driver/parser.d.ts +12 -12
  45. package/dist/adapter/ezsp/driver/parser.js +111 -111
  46. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  47. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  48. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  49. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  50. package/dist/adapter/ezsp/driver/types/index.js +133 -133
  51. package/dist/adapter/ezsp/driver/types/named.d.ts +697 -697
  52. package/dist/adapter/ezsp/driver/types/named.js +1726 -1726
  53. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  54. package/dist/adapter/ezsp/driver/types/struct.d.ts +251 -251
  55. package/dist/adapter/ezsp/driver/types/struct.js +708 -708
  56. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  57. package/dist/adapter/ezsp/driver/uart.d.ts +44 -44
  58. package/dist/adapter/ezsp/driver/uart.js +368 -368
  59. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  60. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  61. package/dist/adapter/ezsp/driver/utils/index.d.ts +18 -18
  62. package/dist/adapter/ezsp/driver/utils/index.js +67 -67
  63. package/dist/adapter/ezsp/driver/writer.d.ts +13 -13
  64. package/dist/adapter/ezsp/driver/writer.js +88 -88
  65. package/dist/adapter/index.d.ts +4 -4
  66. package/dist/adapter/index.js +35 -35
  67. package/dist/adapter/serialPort.d.ts +8 -8
  68. package/dist/adapter/serialPort.js +22 -22
  69. package/dist/adapter/serialPort.js.map +1 -1
  70. package/dist/adapter/serialPortUtils.d.ts +12 -12
  71. package/dist/adapter/serialPortUtils.js +18 -18
  72. package/dist/adapter/socketPortUtils.d.ts +10 -10
  73. package/dist/adapter/socketPortUtils.js +16 -16
  74. package/dist/adapter/tstype.d.ts +85 -85
  75. package/dist/adapter/tstype.js +2 -2
  76. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +62 -62
  77. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  78. package/dist/adapter/z-stack/adapter/adapter-backup.js +460 -441
  79. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  80. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  81. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  82. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  83. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  84. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  85. package/dist/adapter/z-stack/adapter/index.js +8 -8
  86. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  87. package/dist/adapter/z-stack/adapter/manager.js +476 -476
  88. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  89. package/dist/adapter/z-stack/adapter/tstype.js +10 -10
  90. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  91. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  92. package/dist/adapter/z-stack/adapter/zStackAdapter.js +868 -868
  93. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  94. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  95. package/dist/adapter/z-stack/constants/af.js +27 -27
  96. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  97. package/dist/adapter/z-stack/constants/common.js +289 -289
  98. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  99. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  100. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  101. package/dist/adapter/z-stack/constants/index.js +47 -47
  102. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  103. package/dist/adapter/z-stack/constants/mac.js +129 -129
  104. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  105. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  106. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  107. package/dist/adapter/z-stack/constants/sys.js +73 -73
  108. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  109. package/dist/adapter/z-stack/constants/util.js +83 -83
  110. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  111. package/dist/adapter/z-stack/constants/utils.js +14 -14
  112. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  113. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  114. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  115. package/dist/adapter/z-stack/models/index.js +17 -17
  116. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  117. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  118. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  119. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  120. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  121. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  122. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  123. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  124. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  125. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  126. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  127. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  128. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  129. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  130. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  131. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  132. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  133. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  134. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  135. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  136. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  137. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  138. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  139. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  140. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  141. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  142. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  143. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  144. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  145. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  146. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  147. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  148. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  149. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  150. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  151. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  152. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  153. package/dist/adapter/z-stack/structs/index.js +20 -20
  154. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  155. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  156. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  157. package/dist/adapter/z-stack/structs/struct.js +295 -295
  158. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  159. package/dist/adapter/z-stack/structs/table.js +161 -161
  160. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  161. package/dist/adapter/z-stack/unpi/constants.js +41 -41
  162. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  163. package/dist/adapter/z-stack/unpi/frame.js +48 -48
  164. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  165. package/dist/adapter/z-stack/unpi/index.js +37 -37
  166. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  167. package/dist/adapter/z-stack/unpi/parser.js +74 -74
  168. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  169. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  170. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  171. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  172. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  173. package/dist/adapter/z-stack/utils/index.js +18 -18
  174. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  175. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  176. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  177. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  178. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  179. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  180. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  181. package/dist/adapter/z-stack/znp/index.js +10 -10
  182. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  183. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  184. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  185. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  186. package/dist/adapter/z-stack/znp/znp.d.ts +43 -43
  187. package/dist/adapter/z-stack/znp/znp.js +325 -325
  188. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  189. package/dist/adapter/z-stack/znp/zpiObject.js +96 -96
  190. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  191. package/dist/adapter/zigate/adapter/index.js +10 -10
  192. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +69 -69
  193. package/dist/adapter/zigate/adapter/zigateAdapter.js +678 -678
  194. package/dist/adapter/zigate/debug.d.ts +7 -7
  195. package/dist/adapter/zigate/debug.js +22 -22
  196. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  197. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  198. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  199. package/dist/adapter/zigate/driver/commandType.js +385 -385
  200. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  201. package/dist/adapter/zigate/driver/constants.js +371 -371
  202. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  203. package/dist/adapter/zigate/driver/frame.js +172 -172
  204. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  205. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  206. package/dist/adapter/zigate/driver/messageType.js +278 -278
  207. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  208. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  209. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  210. package/dist/adapter/zigate/driver/ziGateObject.js +106 -106
  211. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  212. package/dist/adapter/zigate/driver/zigate.js +303 -303
  213. package/dist/buffalo/buffalo.d.ts +50 -50
  214. package/dist/buffalo/buffalo.js +322 -322
  215. package/dist/buffalo/index.d.ts +3 -3
  216. package/dist/buffalo/index.js +33 -33
  217. package/dist/buffalo/tstype.d.ts +8 -8
  218. package/dist/buffalo/tstype.js +2 -2
  219. package/dist/controller/controller.d.ts +113 -110
  220. package/dist/controller/controller.d.ts.map +1 -1
  221. package/dist/controller/controller.js +619 -607
  222. package/dist/controller/controller.js.map +1 -1
  223. package/dist/controller/database.d.ts +18 -18
  224. package/dist/controller/database.js +93 -93
  225. package/dist/controller/events.d.ts +58 -55
  226. package/dist/controller/events.d.ts.map +1 -1
  227. package/dist/controller/events.js +101 -101
  228. package/dist/controller/events.js.map +1 -1
  229. package/dist/controller/greenPower.d.ts +12 -12
  230. package/dist/controller/greenPower.js +220 -220
  231. package/dist/controller/helpers/index.d.ts +2 -2
  232. package/dist/controller/helpers/index.js +28 -28
  233. package/dist/controller/helpers/request.d.ts +22 -22
  234. package/dist/controller/helpers/request.js +71 -71
  235. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  236. package/dist/controller/helpers/zclFrameConverter.js +31 -31
  237. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  238. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  239. package/dist/controller/index.d.ts +5 -5
  240. package/dist/controller/index.js +8 -8
  241. package/dist/controller/logger-stub.d.ts +6 -6
  242. package/dist/controller/logger-stub.js +2 -2
  243. package/dist/controller/model/device.d.ts +133 -132
  244. package/dist/controller/model/device.d.ts.map +1 -1
  245. package/dist/controller/model/device.js +717 -708
  246. package/dist/controller/model/device.js.map +1 -1
  247. package/dist/controller/model/endpoint.d.ts +131 -131
  248. package/dist/controller/model/endpoint.d.ts.map +1 -1
  249. package/dist/controller/model/endpoint.js +816 -817
  250. package/dist/controller/model/endpoint.js.map +1 -1
  251. package/dist/controller/model/entity.d.ts +14 -14
  252. package/dist/controller/model/entity.js +26 -26
  253. package/dist/controller/model/group.d.ts +38 -38
  254. package/dist/controller/model/group.js +221 -221
  255. package/dist/controller/model/index.d.ts +5 -5
  256. package/dist/controller/model/index.js +14 -14
  257. package/dist/controller/touchlink.d.ts +19 -19
  258. package/dist/controller/touchlink.js +157 -157
  259. package/dist/controller/tstype.d.ts +21 -21
  260. package/dist/controller/tstype.js +9 -9
  261. package/dist/index.d.ts +3 -3
  262. package/dist/index.js +33 -33
  263. package/dist/models/backup-storage-legacy.d.ts +26 -26
  264. package/dist/models/backup-storage-legacy.js +2 -2
  265. package/dist/models/backup-storage-unified.d.ts +49 -49
  266. package/dist/models/backup-storage-unified.js +2 -2
  267. package/dist/models/backup.d.ts +37 -37
  268. package/dist/models/backup.js +2 -2
  269. package/dist/models/index.d.ts +4 -4
  270. package/dist/models/index.js +20 -20
  271. package/dist/models/network-options.d.ts +12 -12
  272. package/dist/models/network-options.js +2 -2
  273. package/dist/utils/assertString.d.ts +2 -2
  274. package/dist/utils/assertString.js +8 -8
  275. package/dist/utils/backup.d.ts +20 -20
  276. package/dist/utils/backup.js +187 -187
  277. package/dist/utils/equalsPartial.d.ts +2 -2
  278. package/dist/utils/equalsPartial.js +11 -11
  279. package/dist/utils/index.d.ts +9 -9
  280. package/dist/utils/index.js +45 -45
  281. package/dist/utils/isNumberArray.d.ts +2 -2
  282. package/dist/utils/isNumberArray.js +6 -6
  283. package/dist/utils/queue.d.ts +11 -11
  284. package/dist/utils/queue.js +50 -50
  285. package/dist/utils/realpathSync.d.ts +2 -2
  286. package/dist/utils/realpathSync.js +12 -12
  287. package/dist/utils/wait.d.ts +2 -2
  288. package/dist/utils/wait.js +8 -8
  289. package/dist/utils/waitress.d.ts +21 -21
  290. package/dist/utils/waitress.js +61 -61
  291. package/dist/zcl/buffaloZcl.d.ts +41 -41
  292. package/dist/zcl/buffaloZcl.js +591 -591
  293. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  294. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  295. package/dist/zcl/definition/cluster.d.ts +29 -29
  296. package/dist/zcl/definition/cluster.js +5335 -5335
  297. package/dist/zcl/definition/dataType.d.ts +59 -59
  298. package/dist/zcl/definition/dataType.js +64 -64
  299. package/dist/zcl/definition/direction.d.ts +5 -5
  300. package/dist/zcl/definition/direction.js +8 -8
  301. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  302. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  303. package/dist/zcl/definition/foundation.d.ts +11 -11
  304. package/dist/zcl/definition/foundation.js +167 -167
  305. package/dist/zcl/definition/frameControl.d.ts +10 -10
  306. package/dist/zcl/definition/frameControl.js +2 -2
  307. package/dist/zcl/definition/frameType.d.ts +5 -5
  308. package/dist/zcl/definition/frameType.js +8 -8
  309. package/dist/zcl/definition/index.d.ts +13 -13
  310. package/dist/zcl/definition/index.js +51 -51
  311. package/dist/zcl/definition/manufacturerCode.d.ts +1074 -1074
  312. package/dist/zcl/definition/manufacturerCode.js +1079 -1079
  313. package/dist/zcl/definition/powerSource.d.ts +4 -4
  314. package/dist/zcl/definition/powerSource.js +12 -12
  315. package/dist/zcl/definition/status.d.ts +38 -38
  316. package/dist/zcl/definition/status.js +41 -41
  317. package/dist/zcl/definition/tstype.d.ts +16 -16
  318. package/dist/zcl/definition/tstype.js +2 -2
  319. package/dist/zcl/index.d.ts +15 -15
  320. package/dist/zcl/index.js +55 -55
  321. package/dist/zcl/tstype.d.ts +56 -56
  322. package/dist/zcl/tstype.js +10 -10
  323. package/dist/zcl/utils.d.ts +6 -6
  324. package/dist/zcl/utils.js +165 -165
  325. package/dist/zcl/zclFrame.d.ts +45 -45
  326. package/dist/zcl/zclFrame.js +347 -347
  327. package/dist/zcl/zclStatusError.d.ts +5 -5
  328. package/dist/zcl/zclStatusError.js +13 -13
  329. package/package.json +6 -6
@@ -1,38 +1,38 @@
1
- /// <reference types="node" />
2
- import { ZnpVersion } from "../adapter/z-stack/adapter/tstype";
3
- import { NetworkOptions } from "./network-options";
4
- /**
5
- * Internal representation of stored backup. Contains all essential network information.
6
- *
7
- * Additional `znp` object may contain extra information specific to Z-Stack based coordinators.
8
- */
9
- export interface Backup {
10
- networkOptions: NetworkOptions;
11
- logicalChannel: number;
12
- networkKeyInfo: {
13
- sequenceNumber: number;
14
- frameCounter: number;
15
- };
16
- securityLevel: number;
17
- networkUpdateId: number;
18
- coordinatorIeeeAddress: Buffer;
19
- devices: {
20
- networkAddress: number;
21
- ieeeAddress: Buffer;
22
- isDirectChild: boolean;
23
- linkKey?: {
24
- key: Buffer;
25
- rxCounter: number;
26
- txCounter: number;
27
- };
28
- }[];
29
- znp?: {
30
- version?: ZnpVersion;
31
- trustCenterLinkKeySeed?: Buffer;
32
- };
33
- ezsp?: {
34
- version?: number;
35
- hashed_tclk?: Buffer;
36
- };
37
- }
1
+ /// <reference types="node" />
2
+ import { ZnpVersion } from "../adapter/z-stack/adapter/tstype";
3
+ import { NetworkOptions } from "./network-options";
4
+ /**
5
+ * Internal representation of stored backup. Contains all essential network information.
6
+ *
7
+ * Additional `znp` object may contain extra information specific to Z-Stack based coordinators.
8
+ */
9
+ export interface Backup {
10
+ networkOptions: NetworkOptions;
11
+ logicalChannel: number;
12
+ networkKeyInfo: {
13
+ sequenceNumber: number;
14
+ frameCounter: number;
15
+ };
16
+ securityLevel: number;
17
+ networkUpdateId: number;
18
+ coordinatorIeeeAddress: Buffer;
19
+ devices: {
20
+ networkAddress: number;
21
+ ieeeAddress: Buffer;
22
+ isDirectChild: boolean;
23
+ linkKey?: {
24
+ key: Buffer;
25
+ rxCounter: number;
26
+ txCounter: number;
27
+ };
28
+ }[];
29
+ znp?: {
30
+ version?: ZnpVersion;
31
+ trustCenterLinkKeySeed?: Buffer;
32
+ };
33
+ ezsp?: {
34
+ version?: number;
35
+ hashed_tclk?: Buffer;
36
+ };
37
+ }
38
38
  //# sourceMappingURL=backup.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=backup.js.map
@@ -1,5 +1,5 @@
1
- export * from "./backup";
2
- export * from "./backup-storage-legacy";
3
- export * from "./backup-storage-unified";
4
- export * from "./network-options";
1
+ export * from "./backup";
2
+ export * from "./backup-storage-legacy";
3
+ export * from "./backup-storage-unified";
4
+ export * from "./network-options";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,21 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./backup"), exports);
18
- __exportStar(require("./backup-storage-legacy"), exports);
19
- __exportStar(require("./backup-storage-unified"), exports);
20
- __exportStar(require("./network-options"), exports);
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./backup"), exports);
18
+ __exportStar(require("./backup-storage-legacy"), exports);
19
+ __exportStar(require("./backup-storage-unified"), exports);
20
+ __exportStar(require("./network-options"), exports);
21
21
  //# sourceMappingURL=index.js.map
@@ -1,13 +1,13 @@
1
- /// <reference types="node" />
2
- /**
3
- * Buffer-oriented structure representing network configuration.
4
- */
5
- export interface NetworkOptions {
6
- panId: number;
7
- extendedPanId: Buffer;
8
- channelList: number[];
9
- networkKey: Buffer;
10
- networkKeyDistribute: boolean;
11
- hasDefaultExtendedPanId?: boolean;
12
- }
1
+ /// <reference types="node" />
2
+ /**
3
+ * Buffer-oriented structure representing network configuration.
4
+ */
5
+ export interface NetworkOptions {
6
+ panId: number;
7
+ extendedPanId: Buffer;
8
+ channelList: number[];
9
+ networkKey: Buffer;
10
+ networkKeyDistribute: boolean;
11
+ hasDefaultExtendedPanId?: boolean;
12
+ }
13
13
  //# sourceMappingURL=network-options.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=network-options.js.map
@@ -1,3 +1,3 @@
1
- declare function assertString(input: unknown): asserts input is string;
2
- export default assertString;
1
+ declare function assertString(input: unknown): asserts input is string;
2
+ export default assertString;
3
3
  //# sourceMappingURL=assertString.d.ts.map
@@ -1,9 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function assertString(input) {
4
- if (typeof input !== 'string') {
5
- throw new Error('Input must be a string!');
6
- }
7
- }
8
- exports.default = assertString;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function assertString(input) {
4
+ if (typeof input !== 'string') {
5
+ throw new Error('Input must be a string!');
6
+ }
7
+ }
8
+ exports.default = assertString;
9
9
  //# sourceMappingURL=assertString.js.map
@@ -1,21 +1,21 @@
1
- import * as Models from "../models";
2
- /**
3
- * Converts internal backup format to unified backup storage format as described by
4
- * [zigpy/open-coordinator-backup](https://github.com/zigpy/open-coordinator-backup).
5
- *
6
- * @param backup Backup to create unified backup format from.
7
- */
8
- export declare const toUnifiedBackup: (backup: Models.Backup) => Promise<Models.UnifiedBackupStorage>;
9
- /**
10
- * Converts unified backup storage format to internal backup format.
11
- *
12
- * @param backup Unified format to convert to internal backup format.
13
- */
14
- export declare const fromUnifiedBackup: (backup: Models.UnifiedBackupStorage) => Models.Backup;
15
- /**
16
- * Converts legacy Zigbee2MQTT format to internal backup format.
17
- *
18
- * @param backup Legacy format to convert.
19
- */
20
- export declare const fromLegacyBackup: (backup: Models.LegacyBackupStorage) => Models.Backup;
1
+ import * as Models from "../models";
2
+ /**
3
+ * Converts internal backup format to unified backup storage format as described by
4
+ * [zigpy/open-coordinator-backup](https://github.com/zigpy/open-coordinator-backup).
5
+ *
6
+ * @param backup Backup to create unified backup format from.
7
+ */
8
+ export declare const toUnifiedBackup: (backup: Models.Backup) => Promise<Models.UnifiedBackupStorage>;
9
+ /**
10
+ * Converts unified backup storage format to internal backup format.
11
+ *
12
+ * @param backup Unified format to convert to internal backup format.
13
+ */
14
+ export declare const fromUnifiedBackup: (backup: Models.UnifiedBackupStorage) => Models.Backup;
15
+ /**
16
+ * Converts legacy Zigbee2MQTT format to internal backup format.
17
+ *
18
+ * @param backup Legacy format to convert.
19
+ */
20
+ export declare const fromLegacyBackup: (backup: Models.LegacyBackupStorage) => Models.Backup;
21
21
  //# sourceMappingURL=backup.d.ts.map
@@ -1,188 +1,188 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.fromLegacyBackup = exports.fromUnifiedBackup = exports.toUnifiedBackup = void 0;
27
- const ZStackStructs = __importStar(require("../adapter/z-stack/structs"));
28
- const ZStackUtils = __importStar(require("../adapter/z-stack/utils"));
29
- const mz_1 = require("mz");
30
- const path = __importStar(require("path"));
31
- /**
32
- * Converts internal backup format to unified backup storage format as described by
33
- * [zigpy/open-coordinator-backup](https://github.com/zigpy/open-coordinator-backup).
34
- *
35
- * @param backup Backup to create unified backup format from.
36
- */
37
- const toUnifiedBackup = async (backup) => {
38
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
39
- const panIdBuffer = Buffer.alloc(2);
40
- panIdBuffer.writeUInt16BE(backup.networkOptions.panId);
41
- const packageInfo = JSON.parse((await mz_1.fs.readFile(path.join(__dirname, "../../", "package.json"))).toString());
42
- /* istanbul ignore next */
43
- return {
44
- metadata: {
45
- format: "zigpy/open-coordinator-backup",
46
- version: 1,
47
- source: `${packageInfo.name}@${packageInfo.version}`,
48
- internal: {
49
- date: new Date().toISOString(),
50
- ...(backup.znp) ? {
51
- znpVersion: [null, undefined].includes((_a = backup.znp) === null || _a === void 0 ? void 0 : _a.version) ? undefined : (_b = backup.znp) === null || _b === void 0 ? void 0 : _b.version
52
- } : undefined,
53
- ...(backup.ezsp) ? {
54
- ezspVersion: [null, undefined].includes((_c = backup.ezsp) === null || _c === void 0 ? void 0 : _c.version) ? undefined : (_d = backup.ezsp) === null || _d === void 0 ? void 0 : _d.version
55
- } : undefined,
56
- }
57
- },
58
- stack_specific: {
59
- ...(backup.znp) ? {
60
- zstack: {
61
- tclk_seed: ((_f = (_e = backup.znp) === null || _e === void 0 ? void 0 : _e.trustCenterLinkKeySeed) === null || _f === void 0 ? void 0 : _f.toString("hex")) || undefined
62
- }
63
- } : undefined,
64
- ...(backup.ezsp) ? {
65
- ezsp: {
66
- hashed_tclk: ((_h = (_g = backup.ezsp) === null || _g === void 0 ? void 0 : _g.hashed_tclk) === null || _h === void 0 ? void 0 : _h.toString("hex")) || undefined
67
- }
68
- } : undefined
69
- },
70
- coordinator_ieee: ((_j = backup.coordinatorIeeeAddress) === null || _j === void 0 ? void 0 : _j.toString("hex")) || null,
71
- pan_id: panIdBuffer.toString("hex"),
72
- extended_pan_id: backup.networkOptions.extendedPanId.toString("hex"),
73
- nwk_update_id: backup.networkUpdateId || 0,
74
- security_level: backup.securityLevel || null,
75
- channel: backup.logicalChannel,
76
- channel_mask: backup.networkOptions.channelList,
77
- network_key: {
78
- key: backup.networkOptions.networkKey.toString("hex"),
79
- sequence_number: backup.networkKeyInfo.sequenceNumber,
80
- frame_counter: backup.networkKeyInfo.frameCounter
81
- },
82
- devices: backup.devices.map(device => {
83
- const nwkAddressBuffer = Buffer.alloc(2);
84
- nwkAddressBuffer.writeUInt16BE(device.networkAddress);
85
- return {
86
- nwk_address: nwkAddressBuffer.toString("hex"),
87
- ieee_address: device.ieeeAddress.toString("hex"),
88
- is_child: device.isDirectChild,
89
- link_key: !device.linkKey ? undefined : {
90
- key: device.linkKey.key.toString("hex"),
91
- rx_counter: device.linkKey.rxCounter,
92
- tx_counter: device.linkKey.txCounter
93
- }
94
- };
95
- }),
96
- };
97
- };
98
- exports.toUnifiedBackup = toUnifiedBackup;
99
- /**
100
- * Converts unified backup storage format to internal backup format.
101
- *
102
- * @param backup Unified format to convert to internal backup format.
103
- */
104
- const fromUnifiedBackup = (backup) => {
105
- var _a, _b, _c;
106
- const tclkSeedString = ((_b = (_a = backup.stack_specific) === null || _a === void 0 ? void 0 : _a.zstack) === null || _b === void 0 ? void 0 : _b.tclk_seed) || null;
107
- /* istanbul ignore next */
108
- return {
109
- networkOptions: {
110
- panId: Buffer.from(backup.pan_id, "hex").readUInt16BE(),
111
- extendedPanId: Buffer.from(backup.extended_pan_id, "hex"),
112
- channelList: backup.channel_mask,
113
- networkKey: Buffer.from(backup.network_key.key, "hex"),
114
- networkKeyDistribute: false
115
- },
116
- logicalChannel: backup.channel,
117
- networkKeyInfo: {
118
- sequenceNumber: backup.network_key.sequence_number,
119
- frameCounter: backup.network_key.frame_counter
120
- },
121
- coordinatorIeeeAddress: backup.coordinator_ieee ? Buffer.from(backup.coordinator_ieee, "hex") : null,
122
- securityLevel: backup.security_level || null,
123
- networkUpdateId: backup.nwk_update_id || null,
124
- devices: backup.devices.map(device => ({
125
- networkAddress: device.nwk_address ? Buffer.from(device.nwk_address, "hex").readUInt16BE() : Buffer.from("fffe", "hex").readUInt16BE(),
126
- ieeeAddress: Buffer.from(device.ieee_address, "hex"),
127
- isDirectChild: typeof device.is_child === "boolean" ? device.is_child : true,
128
- linkKey: !device.link_key ? undefined : {
129
- key: Buffer.from(device.link_key.key, "hex"),
130
- rxCounter: device.link_key.rx_counter,
131
- txCounter: device.link_key.tx_counter
132
- }
133
- })),
134
- znp: {
135
- version: ((_c = backup.metadata.internal) === null || _c === void 0 ? void 0 : _c.znpVersion) || undefined,
136
- trustCenterLinkKeySeed: tclkSeedString ? Buffer.from(tclkSeedString, "hex") : undefined,
137
- }
138
- };
139
- };
140
- exports.fromUnifiedBackup = fromUnifiedBackup;
141
- /**
142
- * Converts legacy Zigbee2MQTT format to internal backup format.
143
- *
144
- * @param backup Legacy format to convert.
145
- */
146
- const fromLegacyBackup = (backup) => {
147
- if (!backup.data.ZCD_NV_NIB) {
148
- throw new Error("Backup corrupted - missing NIB");
149
- }
150
- else if (!backup.data.ZCD_NV_NWK_ACTIVE_KEY_INFO) {
151
- throw new Error("Backup corrupted - missing active key info");
152
- }
153
- else if (!backup.data.ZCD_NV_PRECFGKEY_ENABLE) {
154
- throw new Error("Backup corrupted - missing pre-configured key enable attribute");
155
- }
156
- else if (!backup.data.ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE && !backup.data.ZCD_NV_LEGACY_NWK_SEC_MATERIAL_TABLE_START) {
157
- throw new Error("Backup corrupted - missing network security material table");
158
- }
159
- else if (!backup.data.ZCD_NV_EXTADDR) {
160
- throw new Error("Backup corrupted - missing adapter IEEE address NV entry");
161
- }
162
- const ieeeAddress = Buffer.from(backup.data.ZCD_NV_EXTADDR.value).reverse();
163
- const nib = ZStackStructs.nib(Buffer.from(backup.data.ZCD_NV_NIB.value));
164
- const activeKeyInfo = ZStackStructs.nwkKeyDescriptor(Buffer.from(backup.data.ZCD_NV_NWK_ACTIVE_KEY_INFO.value));
165
- const preconfiguredKeyEnabled = backup.data.ZCD_NV_PRECFGKEY_ENABLE.value[0] !== 0x00;
166
- const nwkSecMaterialSource = backup.data.ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE || backup.data.ZCD_NV_LEGACY_NWK_SEC_MATERIAL_TABLE_START;
167
- const nwkSecMaterialEntry = ZStackStructs.nwkSecMaterialDescriptorEntry(Buffer.from(nwkSecMaterialSource.value));
168
- return {
169
- networkOptions: {
170
- panId: nib.nwkPanId,
171
- extendedPanId: nib.extendedPANID,
172
- channelList: ZStackUtils.unpackChannelList(nib.channelList),
173
- networkKey: activeKeyInfo.key,
174
- networkKeyDistribute: preconfiguredKeyEnabled
175
- },
176
- logicalChannel: nib.nwkLogicalChannel,
177
- networkKeyInfo: {
178
- sequenceNumber: activeKeyInfo.keySeqNum,
179
- frameCounter: nwkSecMaterialEntry.FrameCounter
180
- },
181
- coordinatorIeeeAddress: ieeeAddress,
182
- securityLevel: nib.SecurityLevel,
183
- networkUpdateId: nib.nwkUpdateId,
184
- devices: []
185
- };
186
- };
187
- exports.fromLegacyBackup = fromLegacyBackup;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.fromLegacyBackup = exports.fromUnifiedBackup = exports.toUnifiedBackup = void 0;
27
+ const ZStackStructs = __importStar(require("../adapter/z-stack/structs"));
28
+ const ZStackUtils = __importStar(require("../adapter/z-stack/utils"));
29
+ const mz_1 = require("mz");
30
+ const path = __importStar(require("path"));
31
+ /**
32
+ * Converts internal backup format to unified backup storage format as described by
33
+ * [zigpy/open-coordinator-backup](https://github.com/zigpy/open-coordinator-backup).
34
+ *
35
+ * @param backup Backup to create unified backup format from.
36
+ */
37
+ const toUnifiedBackup = async (backup) => {
38
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
39
+ const panIdBuffer = Buffer.alloc(2);
40
+ panIdBuffer.writeUInt16BE(backup.networkOptions.panId);
41
+ const packageInfo = JSON.parse((await mz_1.fs.readFile(path.join(__dirname, "../../", "package.json"))).toString());
42
+ /* istanbul ignore next */
43
+ return {
44
+ metadata: {
45
+ format: "zigpy/open-coordinator-backup",
46
+ version: 1,
47
+ source: `${packageInfo.name}@${packageInfo.version}`,
48
+ internal: {
49
+ date: new Date().toISOString(),
50
+ ...(backup.znp) ? {
51
+ znpVersion: [null, undefined].includes((_a = backup.znp) === null || _a === void 0 ? void 0 : _a.version) ? undefined : (_b = backup.znp) === null || _b === void 0 ? void 0 : _b.version
52
+ } : undefined,
53
+ ...(backup.ezsp) ? {
54
+ ezspVersion: [null, undefined].includes((_c = backup.ezsp) === null || _c === void 0 ? void 0 : _c.version) ? undefined : (_d = backup.ezsp) === null || _d === void 0 ? void 0 : _d.version
55
+ } : undefined,
56
+ }
57
+ },
58
+ stack_specific: {
59
+ ...(backup.znp) ? {
60
+ zstack: {
61
+ tclk_seed: ((_f = (_e = backup.znp) === null || _e === void 0 ? void 0 : _e.trustCenterLinkKeySeed) === null || _f === void 0 ? void 0 : _f.toString("hex")) || undefined
62
+ }
63
+ } : undefined,
64
+ ...(backup.ezsp) ? {
65
+ ezsp: {
66
+ hashed_tclk: ((_h = (_g = backup.ezsp) === null || _g === void 0 ? void 0 : _g.hashed_tclk) === null || _h === void 0 ? void 0 : _h.toString("hex")) || undefined
67
+ }
68
+ } : undefined
69
+ },
70
+ coordinator_ieee: ((_j = backup.coordinatorIeeeAddress) === null || _j === void 0 ? void 0 : _j.toString("hex")) || null,
71
+ pan_id: panIdBuffer.toString("hex"),
72
+ extended_pan_id: backup.networkOptions.extendedPanId.toString("hex"),
73
+ nwk_update_id: backup.networkUpdateId || 0,
74
+ security_level: backup.securityLevel || null,
75
+ channel: backup.logicalChannel,
76
+ channel_mask: backup.networkOptions.channelList,
77
+ network_key: {
78
+ key: backup.networkOptions.networkKey.toString("hex"),
79
+ sequence_number: backup.networkKeyInfo.sequenceNumber,
80
+ frame_counter: backup.networkKeyInfo.frameCounter
81
+ },
82
+ devices: backup.devices.map(device => {
83
+ const nwkAddressBuffer = Buffer.alloc(2);
84
+ nwkAddressBuffer.writeUInt16BE(device.networkAddress);
85
+ return {
86
+ nwk_address: nwkAddressBuffer.toString("hex"),
87
+ ieee_address: device.ieeeAddress.toString("hex"),
88
+ is_child: device.isDirectChild,
89
+ link_key: !device.linkKey ? undefined : {
90
+ key: device.linkKey.key.toString("hex"),
91
+ rx_counter: device.linkKey.rxCounter,
92
+ tx_counter: device.linkKey.txCounter
93
+ }
94
+ };
95
+ }),
96
+ };
97
+ };
98
+ exports.toUnifiedBackup = toUnifiedBackup;
99
+ /**
100
+ * Converts unified backup storage format to internal backup format.
101
+ *
102
+ * @param backup Unified format to convert to internal backup format.
103
+ */
104
+ const fromUnifiedBackup = (backup) => {
105
+ var _a, _b, _c;
106
+ const tclkSeedString = ((_b = (_a = backup.stack_specific) === null || _a === void 0 ? void 0 : _a.zstack) === null || _b === void 0 ? void 0 : _b.tclk_seed) || null;
107
+ /* istanbul ignore next */
108
+ return {
109
+ networkOptions: {
110
+ panId: Buffer.from(backup.pan_id, "hex").readUInt16BE(),
111
+ extendedPanId: Buffer.from(backup.extended_pan_id, "hex"),
112
+ channelList: backup.channel_mask,
113
+ networkKey: Buffer.from(backup.network_key.key, "hex"),
114
+ networkKeyDistribute: false
115
+ },
116
+ logicalChannel: backup.channel,
117
+ networkKeyInfo: {
118
+ sequenceNumber: backup.network_key.sequence_number,
119
+ frameCounter: backup.network_key.frame_counter
120
+ },
121
+ coordinatorIeeeAddress: backup.coordinator_ieee ? Buffer.from(backup.coordinator_ieee, "hex") : null,
122
+ securityLevel: backup.security_level || null,
123
+ networkUpdateId: backup.nwk_update_id || null,
124
+ devices: backup.devices.map(device => ({
125
+ networkAddress: device.nwk_address ? Buffer.from(device.nwk_address, "hex").readUInt16BE() : Buffer.from("fffe", "hex").readUInt16BE(),
126
+ ieeeAddress: Buffer.from(device.ieee_address, "hex"),
127
+ isDirectChild: typeof device.is_child === "boolean" ? device.is_child : true,
128
+ linkKey: !device.link_key ? undefined : {
129
+ key: Buffer.from(device.link_key.key, "hex"),
130
+ rxCounter: device.link_key.rx_counter,
131
+ txCounter: device.link_key.tx_counter
132
+ }
133
+ })),
134
+ znp: {
135
+ version: ((_c = backup.metadata.internal) === null || _c === void 0 ? void 0 : _c.znpVersion) || undefined,
136
+ trustCenterLinkKeySeed: tclkSeedString ? Buffer.from(tclkSeedString, "hex") : undefined,
137
+ }
138
+ };
139
+ };
140
+ exports.fromUnifiedBackup = fromUnifiedBackup;
141
+ /**
142
+ * Converts legacy Zigbee2MQTT format to internal backup format.
143
+ *
144
+ * @param backup Legacy format to convert.
145
+ */
146
+ const fromLegacyBackup = (backup) => {
147
+ if (!backup.data.ZCD_NV_NIB) {
148
+ throw new Error("Backup corrupted - missing NIB");
149
+ }
150
+ else if (!backup.data.ZCD_NV_NWK_ACTIVE_KEY_INFO) {
151
+ throw new Error("Backup corrupted - missing active key info");
152
+ }
153
+ else if (!backup.data.ZCD_NV_PRECFGKEY_ENABLE) {
154
+ throw new Error("Backup corrupted - missing pre-configured key enable attribute");
155
+ }
156
+ else if (!backup.data.ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE && !backup.data.ZCD_NV_LEGACY_NWK_SEC_MATERIAL_TABLE_START) {
157
+ throw new Error("Backup corrupted - missing network security material table");
158
+ }
159
+ else if (!backup.data.ZCD_NV_EXTADDR) {
160
+ throw new Error("Backup corrupted - missing adapter IEEE address NV entry");
161
+ }
162
+ const ieeeAddress = Buffer.from(backup.data.ZCD_NV_EXTADDR.value).reverse();
163
+ const nib = ZStackStructs.nib(Buffer.from(backup.data.ZCD_NV_NIB.value));
164
+ const activeKeyInfo = ZStackStructs.nwkKeyDescriptor(Buffer.from(backup.data.ZCD_NV_NWK_ACTIVE_KEY_INFO.value));
165
+ const preconfiguredKeyEnabled = backup.data.ZCD_NV_PRECFGKEY_ENABLE.value[0] !== 0x00;
166
+ const nwkSecMaterialSource = backup.data.ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE || backup.data.ZCD_NV_LEGACY_NWK_SEC_MATERIAL_TABLE_START;
167
+ const nwkSecMaterialEntry = ZStackStructs.nwkSecMaterialDescriptorEntry(Buffer.from(nwkSecMaterialSource.value));
168
+ return {
169
+ networkOptions: {
170
+ panId: nib.nwkPanId,
171
+ extendedPanId: nib.extendedPANID,
172
+ channelList: ZStackUtils.unpackChannelList(nib.channelList),
173
+ networkKey: activeKeyInfo.key,
174
+ networkKeyDistribute: preconfiguredKeyEnabled
175
+ },
176
+ logicalChannel: nib.nwkLogicalChannel,
177
+ networkKeyInfo: {
178
+ sequenceNumber: activeKeyInfo.keySeqNum,
179
+ frameCounter: nwkSecMaterialEntry.FrameCounter
180
+ },
181
+ coordinatorIeeeAddress: ieeeAddress,
182
+ securityLevel: nib.SecurityLevel,
183
+ networkUpdateId: nib.nwkUpdateId,
184
+ devices: []
185
+ };
186
+ };
187
+ exports.fromLegacyBackup = fromLegacyBackup;
188
188
  //# sourceMappingURL=backup.js.map
@@ -1,3 +1,3 @@
1
- declare function equalsPartial<T>(object: T, expected: Partial<T>): boolean;
2
- export default equalsPartial;
1
+ declare function equalsPartial<T>(object: T, expected: Partial<T>): boolean;
2
+ export default equalsPartial;
3
3
  //# sourceMappingURL=equalsPartial.d.ts.map
@@ -1,12 +1,12 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const es6_1 = __importDefault(require("fast-deep-equal/es6"));
7
- function equalsPartial(object, expected) {
8
- const entries = Object.entries(expected);
9
- return entries.every(([key, value]) => (0, es6_1.default)(object[key], value));
10
- }
11
- exports.default = equalsPartial;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const es6_1 = __importDefault(require("fast-deep-equal/es6"));
7
+ function equalsPartial(object, expected) {
8
+ const entries = Object.entries(expected);
9
+ return entries.every(([key, value]) => (0, es6_1.default)(object[key], value));
10
+ }
11
+ exports.default = equalsPartial;
12
12
  //# sourceMappingURL=equalsPartial.js.map