@willieee802/zigbee-herdsman 0.15.0 → 0.15.1

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 (345) hide show
  1. package/dist/adapter/adapter.d.ts +61 -61
  2. package/dist/adapter/adapter.d.ts.map +1 -1
  3. package/dist/adapter/adapter.js +146 -100
  4. package/dist/adapter/adapter.js.map +1 -1
  5. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +68 -68
  6. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.js +1060 -1063
  8. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  9. package/dist/adapter/deconz/adapter/index.d.ts +2 -2
  10. package/dist/adapter/deconz/adapter/index.js +10 -10
  11. package/dist/adapter/deconz/driver/constants.d.ts +104 -104
  12. package/dist/adapter/deconz/driver/constants.js +55 -55
  13. package/dist/adapter/deconz/driver/driver.d.ts +81 -81
  14. package/dist/adapter/deconz/driver/driver.js +732 -732
  15. package/dist/adapter/deconz/driver/frame.d.ts +6 -6
  16. package/dist/adapter/deconz/driver/frame.js +13 -13
  17. package/dist/adapter/deconz/driver/frameParser.d.ts +2 -2
  18. package/dist/adapter/deconz/driver/frameParser.js +443 -443
  19. package/dist/adapter/deconz/driver/parser.d.ts +12 -12
  20. package/dist/adapter/deconz/driver/parser.js +61 -61
  21. package/dist/adapter/deconz/driver/writer.d.ts +8 -8
  22. package/dist/adapter/deconz/driver/writer.js +44 -44
  23. package/dist/adapter/events.d.ts +47 -47
  24. package/dist/adapter/events.js +14 -14
  25. package/dist/adapter/ezsp/adapter/backup.d.ts +9 -9
  26. package/dist/adapter/ezsp/adapter/backup.js +53 -53
  27. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +59 -59
  28. package/dist/adapter/ezsp/adapter/ezspAdapter.js +585 -585
  29. package/dist/adapter/ezsp/adapter/index.d.ts +2 -2
  30. package/dist/adapter/ezsp/adapter/index.js +10 -10
  31. package/dist/adapter/ezsp/driver/commands.d.ts +36 -34
  32. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  33. package/dist/adapter/ezsp/driver/commands.js +2359 -2357
  34. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  35. package/dist/adapter/ezsp/driver/consts.d.ts +10 -10
  36. package/dist/adapter/ezsp/driver/consts.js +13 -13
  37. package/dist/adapter/ezsp/driver/driver.d.ts +103 -103
  38. package/dist/adapter/ezsp/driver/driver.js +639 -639
  39. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  40. package/dist/adapter/ezsp/driver/ezsp.d.ts +96 -96
  41. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  42. package/dist/adapter/ezsp/driver/ezsp.js +586 -577
  43. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  44. package/dist/adapter/ezsp/driver/index.d.ts +3 -3
  45. package/dist/adapter/ezsp/driver/index.js +8 -8
  46. package/dist/adapter/ezsp/driver/multicast.d.ts +12 -12
  47. package/dist/adapter/ezsp/driver/multicast.js +74 -74
  48. package/dist/adapter/ezsp/driver/parser.d.ts +12 -12
  49. package/dist/adapter/ezsp/driver/parser.js +111 -111
  50. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  51. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  52. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  53. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  54. package/dist/adapter/ezsp/driver/types/index.js +133 -133
  55. package/dist/adapter/ezsp/driver/types/named.d.ts +697 -697
  56. package/dist/adapter/ezsp/driver/types/named.js +1726 -1726
  57. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  58. package/dist/adapter/ezsp/driver/types/struct.d.ts +251 -251
  59. package/dist/adapter/ezsp/driver/types/struct.js +708 -708
  60. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  61. package/dist/adapter/ezsp/driver/uart.d.ts +44 -44
  62. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  63. package/dist/adapter/ezsp/driver/uart.js +368 -366
  64. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  65. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  66. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  67. package/dist/adapter/ezsp/driver/utils/index.d.ts +18 -18
  68. package/dist/adapter/ezsp/driver/utils/index.js +67 -67
  69. package/dist/adapter/ezsp/driver/writer.d.ts +13 -13
  70. package/dist/adapter/ezsp/driver/writer.js +88 -88
  71. package/dist/adapter/index.d.ts +4 -4
  72. package/dist/adapter/index.js +35 -35
  73. package/dist/adapter/serialPort.d.ts +8 -8
  74. package/dist/adapter/serialPort.js +22 -22
  75. package/dist/adapter/serialPort.js.map +1 -1
  76. package/dist/adapter/serialPortUtils.d.ts +12 -12
  77. package/dist/adapter/serialPortUtils.js +18 -18
  78. package/dist/adapter/socketPortUtils.d.ts +10 -10
  79. package/dist/adapter/socketPortUtils.js +16 -16
  80. package/dist/adapter/tstype.d.ts +85 -85
  81. package/dist/adapter/tstype.js +2 -2
  82. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +62 -62
  83. package/dist/adapter/z-stack/adapter/adapter-backup.js +441 -441
  84. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  85. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  86. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  87. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  88. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  89. package/dist/adapter/z-stack/adapter/index.js +8 -8
  90. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  91. package/dist/adapter/z-stack/adapter/manager.js +476 -476
  92. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  93. package/dist/adapter/z-stack/adapter/tstype.js +10 -10
  94. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  95. package/dist/adapter/z-stack/adapter/zStackAdapter.js +868 -868
  96. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  97. package/dist/adapter/z-stack/constants/af.js +27 -27
  98. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  99. package/dist/adapter/z-stack/constants/common.js +289 -289
  100. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  101. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  102. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  103. package/dist/adapter/z-stack/constants/index.js +47 -47
  104. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  105. package/dist/adapter/z-stack/constants/mac.js +129 -129
  106. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  107. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  108. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  109. package/dist/adapter/z-stack/constants/sys.js +73 -73
  110. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  111. package/dist/adapter/z-stack/constants/util.js +83 -83
  112. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  113. package/dist/adapter/z-stack/constants/utils.js +14 -14
  114. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  115. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  116. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  117. package/dist/adapter/z-stack/models/index.js +17 -17
  118. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  119. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  120. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  121. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  122. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  123. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  124. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  125. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  126. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  127. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  128. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  129. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  130. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  131. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  132. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  133. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  134. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  135. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  136. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  137. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  138. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  139. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  140. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  141. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  142. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  143. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  144. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  145. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  146. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  147. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  148. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  149. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  150. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  151. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  152. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  153. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  154. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  155. package/dist/adapter/z-stack/structs/index.js +20 -20
  156. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  157. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  158. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  159. package/dist/adapter/z-stack/structs/struct.js +295 -295
  160. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  161. package/dist/adapter/z-stack/structs/table.js +161 -161
  162. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  163. package/dist/adapter/z-stack/unpi/constants.js +41 -41
  164. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  165. package/dist/adapter/z-stack/unpi/frame.js +48 -48
  166. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  167. package/dist/adapter/z-stack/unpi/index.js +37 -37
  168. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  169. package/dist/adapter/z-stack/unpi/parser.js +74 -74
  170. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  171. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  172. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  173. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  174. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  175. package/dist/adapter/z-stack/utils/index.js +18 -18
  176. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  177. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  178. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  179. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  180. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  181. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  182. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  183. package/dist/adapter/z-stack/znp/index.js +10 -10
  184. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  185. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  186. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  187. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  188. package/dist/adapter/z-stack/znp/znp.d.ts +43 -43
  189. package/dist/adapter/z-stack/znp/znp.js +325 -325
  190. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  191. package/dist/adapter/z-stack/znp/zpiObject.js +96 -96
  192. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  193. package/dist/adapter/zigate/adapter/index.js +10 -10
  194. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +69 -69
  195. package/dist/adapter/zigate/adapter/zigateAdapter.js +678 -678
  196. package/dist/adapter/zigate/debug.d.ts +7 -7
  197. package/dist/adapter/zigate/debug.js +22 -22
  198. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  199. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  200. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  201. package/dist/adapter/zigate/driver/commandType.js +385 -385
  202. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  203. package/dist/adapter/zigate/driver/constants.js +371 -371
  204. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  205. package/dist/adapter/zigate/driver/frame.js +172 -172
  206. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  207. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  208. package/dist/adapter/zigate/driver/messageType.js +278 -278
  209. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  210. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  211. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  212. package/dist/adapter/zigate/driver/ziGateObject.js +106 -106
  213. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  214. package/dist/adapter/zigate/driver/zigate.js +303 -303
  215. package/dist/buffalo/buffalo.d.ts +50 -48
  216. package/dist/buffalo/buffalo.d.ts.map +1 -1
  217. package/dist/buffalo/buffalo.js +322 -307
  218. package/dist/buffalo/buffalo.js.map +1 -1
  219. package/dist/buffalo/index.d.ts +3 -3
  220. package/dist/buffalo/index.js +33 -33
  221. package/dist/buffalo/tstype.d.ts +8 -8
  222. package/dist/buffalo/tstype.js +2 -2
  223. package/dist/controller/controller.d.ts +110 -110
  224. package/dist/controller/controller.js +607 -607
  225. package/dist/controller/database.d.ts +18 -18
  226. package/dist/controller/database.js +93 -93
  227. package/dist/controller/events.d.ts +55 -55
  228. package/dist/controller/events.d.ts.map +1 -1
  229. package/dist/controller/events.js +101 -99
  230. package/dist/controller/events.js.map +1 -1
  231. package/dist/controller/greenPower.d.ts +12 -12
  232. package/dist/controller/greenPower.js +220 -220
  233. package/dist/controller/helpers/index.d.ts +2 -2
  234. package/dist/controller/helpers/index.js +28 -28
  235. package/dist/controller/helpers/request.d.ts +23 -0
  236. package/dist/controller/helpers/request.d.ts.map +1 -0
  237. package/dist/controller/helpers/request.js +72 -0
  238. package/dist/controller/helpers/request.js.map +1 -0
  239. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  240. package/dist/controller/helpers/zclFrameConverter.js +31 -31
  241. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  242. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  243. package/dist/controller/index.d.ts +5 -5
  244. package/dist/controller/index.js +8 -8
  245. package/dist/controller/logger-stub.d.ts +6 -6
  246. package/dist/controller/logger-stub.js +2 -2
  247. package/dist/controller/model/device.d.ts +132 -127
  248. package/dist/controller/model/device.d.ts.map +1 -1
  249. package/dist/controller/model/device.js +708 -681
  250. package/dist/controller/model/device.js.map +1 -1
  251. package/dist/controller/model/endpoint.d.ts +131 -128
  252. package/dist/controller/model/endpoint.d.ts.map +1 -1
  253. package/dist/controller/model/endpoint.js +817 -665
  254. package/dist/controller/model/endpoint.js.map +1 -1
  255. package/dist/controller/model/entity.d.ts +14 -14
  256. package/dist/controller/model/entity.js +26 -26
  257. package/dist/controller/model/group.d.ts +39 -39
  258. package/dist/controller/model/group.js +221 -221
  259. package/dist/controller/model/index.d.ts +5 -5
  260. package/dist/controller/model/index.js +14 -14
  261. package/dist/controller/touchlink.d.ts +19 -19
  262. package/dist/controller/touchlink.js +157 -157
  263. package/dist/controller/tstype.d.ts +21 -20
  264. package/dist/controller/tstype.d.ts.map +1 -1
  265. package/dist/controller/tstype.js +9 -9
  266. package/dist/controller/tstype.js.map +1 -1
  267. package/dist/index.d.ts +3 -3
  268. package/dist/index.js +33 -33
  269. package/dist/models/backup-storage-legacy.d.ts +26 -26
  270. package/dist/models/backup-storage-legacy.js +2 -2
  271. package/dist/models/backup-storage-unified.d.ts +49 -49
  272. package/dist/models/backup-storage-unified.js +2 -2
  273. package/dist/models/backup.d.ts +37 -37
  274. package/dist/models/backup.js +2 -2
  275. package/dist/models/index.d.ts +4 -4
  276. package/dist/models/index.js +20 -20
  277. package/dist/models/network-options.d.ts +12 -12
  278. package/dist/models/network-options.js +2 -2
  279. package/dist/utils/assertString.d.ts +2 -2
  280. package/dist/utils/assertString.js +8 -8
  281. package/dist/utils/backup.d.ts +20 -20
  282. package/dist/utils/backup.js +187 -187
  283. package/dist/utils/equalsPartial.d.ts +2 -2
  284. package/dist/utils/equalsPartial.js +11 -11
  285. package/dist/utils/index.d.ts +9 -9
  286. package/dist/utils/index.js +45 -45
  287. package/dist/utils/isNumberArray.d.ts +2 -2
  288. package/dist/utils/isNumberArray.js +6 -6
  289. package/dist/utils/queue.d.ts +11 -11
  290. package/dist/utils/queue.js +50 -50
  291. package/dist/utils/realpathSync.d.ts +2 -2
  292. package/dist/utils/realpathSync.js +12 -12
  293. package/dist/utils/wait.d.ts +2 -2
  294. package/dist/utils/wait.js +8 -8
  295. package/dist/utils/waitress.d.ts +21 -21
  296. package/dist/utils/waitress.js +61 -61
  297. package/dist/zcl/buffaloZcl.d.ts +41 -41
  298. package/dist/zcl/buffaloZcl.js +591 -591
  299. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  300. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  301. package/dist/zcl/definition/cluster.d.ts +29 -29
  302. package/dist/zcl/definition/cluster.d.ts.map +1 -1
  303. package/dist/zcl/definition/cluster.js +5335 -5215
  304. package/dist/zcl/definition/cluster.js.map +1 -1
  305. package/dist/zcl/definition/dataType.d.ts +59 -59
  306. package/dist/zcl/definition/dataType.d.ts.map +1 -1
  307. package/dist/zcl/definition/dataType.js +64 -64
  308. package/dist/zcl/definition/dataType.js.map +1 -1
  309. package/dist/zcl/definition/direction.d.ts +5 -5
  310. package/dist/zcl/definition/direction.js +8 -8
  311. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  312. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  313. package/dist/zcl/definition/foundation.d.ts +11 -11
  314. package/dist/zcl/definition/foundation.js +167 -167
  315. package/dist/zcl/definition/frameControl.d.ts +10 -10
  316. package/dist/zcl/definition/frameControl.js +2 -2
  317. package/dist/zcl/definition/frameType.d.ts +5 -5
  318. package/dist/zcl/definition/frameType.js +8 -8
  319. package/dist/zcl/definition/index.d.ts +13 -13
  320. package/dist/zcl/definition/index.js +51 -51
  321. package/dist/zcl/definition/manufacturerCode.d.ts +1074 -1074
  322. package/dist/zcl/definition/manufacturerCode.js +1079 -1079
  323. package/dist/zcl/definition/powerSource.d.ts +4 -4
  324. package/dist/zcl/definition/powerSource.js +12 -12
  325. package/dist/zcl/definition/status.d.ts +38 -38
  326. package/dist/zcl/definition/status.js +41 -41
  327. package/dist/zcl/definition/tstype.d.ts +16 -16
  328. package/dist/zcl/definition/tstype.js +2 -2
  329. package/dist/zcl/index.d.ts +15 -15
  330. package/dist/zcl/index.js +55 -55
  331. package/dist/zcl/tstype.d.ts +56 -56
  332. package/dist/zcl/tstype.js +10 -10
  333. package/dist/zcl/utils.d.ts +6 -6
  334. package/dist/zcl/utils.js +165 -165
  335. package/dist/zcl/zclFrame.d.ts +45 -45
  336. package/dist/zcl/zclFrame.js +347 -347
  337. package/dist/zcl/zclStatusError.d.ts +5 -5
  338. package/dist/zcl/zclStatusError.js +13 -13
  339. package/package.json +1 -1
  340. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  341. package/.github/dependabot.yml +0 -6
  342. package/.github/workflows/ci.yml +0 -40
  343. package/.github/workflows/release_please.yml +0 -20
  344. package/.github/workflows/stale.yml +0 -20
  345. package/.github/workflows/update_deps.yml +0 -29
@@ -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