zigbee-herdsman 3.5.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/.github/workflows/ci.yml +2 -4
  2. package/.github/workflows/stale.yml +1 -1
  3. package/.release-please-manifest.json +1 -1
  4. package/.vscode/extensions.json +3 -0
  5. package/.vscode/settings.json +11 -0
  6. package/CHANGELOG.md +17 -0
  7. package/biome.json +89 -0
  8. package/dist/adapter/adapter.d.ts +11 -11
  9. package/dist/adapter/adapter.d.ts.map +1 -1
  10. package/dist/adapter/adapter.js +14 -14
  11. package/dist/adapter/adapterDiscovery.d.ts +6 -6
  12. package/dist/adapter/adapterDiscovery.d.ts.map +1 -1
  13. package/dist/adapter/adapterDiscovery.js +139 -141
  14. package/dist/adapter/adapterDiscovery.js.map +1 -1
  15. package/dist/adapter/const.d.ts +1 -1
  16. package/dist/adapter/const.js +2 -2
  17. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +16 -16
  18. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  19. package/dist/adapter/deconz/adapter/deconzAdapter.js +95 -100
  20. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  21. package/dist/adapter/deconz/driver/constants.d.ts +5 -5
  22. package/dist/adapter/deconz/driver/constants.d.ts.map +1 -1
  23. package/dist/adapter/deconz/driver/driver.d.ts +9 -9
  24. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  25. package/dist/adapter/deconz/driver/driver.js +112 -106
  26. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  27. package/dist/adapter/deconz/driver/frame.d.ts +1 -1
  28. package/dist/adapter/deconz/driver/frame.d.ts.map +1 -1
  29. package/dist/adapter/deconz/driver/frame.js +1 -2
  30. package/dist/adapter/deconz/driver/frame.js.map +1 -1
  31. package/dist/adapter/deconz/driver/frameParser.d.ts +1 -1
  32. package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
  33. package/dist/adapter/deconz/driver/frameParser.js +66 -70
  34. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  35. package/dist/adapter/deconz/driver/parser.d.ts +1 -1
  36. package/dist/adapter/deconz/driver/parser.d.ts.map +1 -1
  37. package/dist/adapter/deconz/driver/parser.js +2 -2
  38. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  39. package/dist/adapter/deconz/driver/writer.d.ts +2 -2
  40. package/dist/adapter/deconz/driver/writer.d.ts.map +1 -1
  41. package/dist/adapter/deconz/driver/writer.js +1 -1
  42. package/dist/adapter/ember/adapter/emberAdapter.d.ts +19 -19
  43. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
  44. package/dist/adapter/ember/adapter/emberAdapter.js +117 -97
  45. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
  46. package/dist/adapter/ember/adapter/endpoints.d.ts +1 -1
  47. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -1
  48. package/dist/adapter/ember/adapter/oneWaitress.d.ts +5 -5
  49. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
  50. package/dist/adapter/ember/adapter/oneWaitress.js +2 -2
  51. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
  52. package/dist/adapter/ember/adapter/tokensManager.d.ts +3 -3
  53. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
  54. package/dist/adapter/ember/adapter/tokensManager.js +20 -23
  55. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
  56. package/dist/adapter/ember/enums.d.ts +4 -4
  57. package/dist/adapter/ember/enums.d.ts.map +1 -1
  58. package/dist/adapter/ember/enums.js +4 -6
  59. package/dist/adapter/ember/enums.js.map +1 -1
  60. package/dist/adapter/ember/ezsp/buffalo.d.ts +4 -4
  61. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -1
  62. package/dist/adapter/ember/ezsp/buffalo.js +30 -32
  63. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -1
  64. package/dist/adapter/ember/ezsp/ezsp.d.ts +46 -46
  65. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
  66. package/dist/adapter/ember/ezsp/ezsp.js +85 -111
  67. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
  68. package/dist/adapter/ember/ezspError.d.ts +1 -1
  69. package/dist/adapter/ember/types.d.ts +14 -14
  70. package/dist/adapter/ember/types.d.ts.map +1 -1
  71. package/dist/adapter/ember/uart/ash.d.ts +5 -5
  72. package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
  73. package/dist/adapter/ember/uart/ash.js +80 -71
  74. package/dist/adapter/ember/uart/ash.js.map +1 -1
  75. package/dist/adapter/ember/uart/parser.d.ts +2 -2
  76. package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
  77. package/dist/adapter/ember/uart/parser.js +2 -1
  78. package/dist/adapter/ember/uart/parser.js.map +1 -1
  79. package/dist/adapter/ember/uart/queues.js +27 -29
  80. package/dist/adapter/ember/uart/queues.js.map +1 -1
  81. package/dist/adapter/ember/uart/writer.d.ts +1 -1
  82. package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
  83. package/dist/adapter/ember/uart/writer.js +3 -5
  84. package/dist/adapter/ember/uart/writer.js.map +1 -1
  85. package/dist/adapter/ember/utils/initters.d.ts +2 -2
  86. package/dist/adapter/ember/utils/initters.d.ts.map +1 -1
  87. package/dist/adapter/ember/utils/initters.js +1 -1
  88. package/dist/adapter/ember/utils/math.js +1 -1
  89. package/dist/adapter/events.d.ts +1 -1
  90. package/dist/adapter/events.d.ts.map +1 -1
  91. package/dist/adapter/ezsp/adapter/backup.d.ts +3 -3
  92. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  93. package/dist/adapter/ezsp/adapter/backup.js +8 -10
  94. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  95. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +12 -12
  96. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  97. package/dist/adapter/ezsp/adapter/ezspAdapter.js +45 -44
  98. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  99. package/dist/adapter/ezsp/driver/driver.d.ts +12 -12
  100. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  101. package/dist/adapter/ezsp/driver/driver.js +148 -141
  102. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  103. package/dist/adapter/ezsp/driver/ezsp.d.ts +7 -7
  104. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  105. package/dist/adapter/ezsp/driver/ezsp.js +61 -59
  106. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  107. package/dist/adapter/ezsp/driver/frame.js +2 -2
  108. package/dist/adapter/ezsp/driver/index.d.ts +2 -2
  109. package/dist/adapter/ezsp/driver/multicast.d.ts +8 -5
  110. package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
  111. package/dist/adapter/ezsp/driver/multicast.js +9 -9
  112. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  113. package/dist/adapter/ezsp/driver/parser.d.ts +1 -1
  114. package/dist/adapter/ezsp/driver/parser.js +3 -3
  115. package/dist/adapter/ezsp/driver/types/basic.d.ts +5 -5
  116. package/dist/adapter/ezsp/driver/types/basic.d.ts.map +1 -1
  117. package/dist/adapter/ezsp/driver/types/basic.js +12 -33
  118. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  119. package/dist/adapter/ezsp/driver/types/index.d.ts +3 -3
  120. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  121. package/dist/adapter/ezsp/driver/types/index.js +8 -9
  122. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  123. package/dist/adapter/ezsp/driver/types/named.d.ts +2 -2
  124. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  125. package/dist/adapter/ezsp/driver/types/named.js +8 -11
  126. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  127. package/dist/adapter/ezsp/driver/types/struct.d.ts +2 -2
  128. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  129. package/dist/adapter/ezsp/driver/types/struct.js +207 -214
  130. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  131. package/dist/adapter/ezsp/driver/uart.d.ts +2 -2
  132. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  133. package/dist/adapter/ezsp/driver/uart.js +48 -37
  134. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  135. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +3 -3
  136. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +1 -1
  137. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +16 -34
  138. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  139. package/dist/adapter/ezsp/driver/utils/index.d.ts +4 -4
  140. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  141. package/dist/adapter/ezsp/driver/utils/index.js +4 -4
  142. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  143. package/dist/adapter/ezsp/driver/writer.d.ts +1 -1
  144. package/dist/adapter/ezsp/driver/writer.js +2 -2
  145. package/dist/adapter/index.d.ts +3 -3
  146. package/dist/adapter/serialPort.d.ts +3 -3
  147. package/dist/adapter/serialPort.d.ts.map +1 -1
  148. package/dist/adapter/serialPort.js +1 -0
  149. package/dist/adapter/serialPort.js.map +1 -1
  150. package/dist/adapter/socketPortUtils.js +3 -3
  151. package/dist/adapter/tstype.d.ts +6 -6
  152. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +4 -4
  153. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
  154. package/dist/adapter/z-stack/adapter/adapter-backup.js +106 -119
  155. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  156. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +10 -10
  157. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +1 -1
  158. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +23 -24
  159. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  160. package/dist/adapter/z-stack/adapter/manager.d.ts +6 -6
  161. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  162. package/dist/adapter/z-stack/adapter/manager.js +115 -127
  163. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  164. package/dist/adapter/z-stack/adapter/tstype.d.ts +3 -3
  165. package/dist/adapter/z-stack/adapter/tstype.js +3 -3
  166. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +10 -10
  167. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  168. package/dist/adapter/z-stack/adapter/zStackAdapter.js +125 -137
  169. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  170. package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
  171. package/dist/adapter/z-stack/constants/common.js +0 -3
  172. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  173. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  174. package/dist/adapter/z-stack/constants/index.d.ts.map +1 -1
  175. package/dist/adapter/z-stack/constants/index.js +2 -2
  176. package/dist/adapter/z-stack/constants/index.js.map +1 -1
  177. package/dist/adapter/z-stack/constants/utils.d.ts +1 -1
  178. package/dist/adapter/z-stack/constants/utils.js +2 -2
  179. package/dist/adapter/z-stack/constants/utils.js.map +1 -1
  180. package/dist/adapter/z-stack/models/startup-options.d.ts +2 -2
  181. package/dist/adapter/z-stack/models/startup-options.d.ts.map +1 -1
  182. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +1 -1
  183. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +1 -1
  184. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +4 -5
  185. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  186. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +2 -2
  187. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +1 -1
  188. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +3 -4
  189. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +1 -1
  190. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +1 -1
  191. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +1 -1
  192. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +1 -2
  193. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +1 -1
  194. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +2 -2
  195. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +1 -1
  196. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +3 -4
  197. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +1 -1
  198. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +1 -1
  199. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +1 -1
  200. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +6 -7
  201. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +1 -1
  202. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +2 -2
  203. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +1 -1
  204. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +3 -4
  205. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +1 -1
  206. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +1 -1
  207. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +1 -1
  208. package/dist/adapter/z-stack/structs/entries/channel-list.js +1 -2
  209. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +1 -1
  210. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +1 -1
  211. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +1 -1
  212. package/dist/adapter/z-stack/structs/entries/has-configured.js +2 -3
  213. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +1 -1
  214. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  215. package/dist/adapter/z-stack/structs/entries/nib.d.ts +1 -1
  216. package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +1 -1
  217. package/dist/adapter/z-stack/structs/entries/nib.js +49 -50
  218. package/dist/adapter/z-stack/structs/entries/nib.js.map +1 -1
  219. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +1 -1
  220. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +1 -1
  221. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +1 -2
  222. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +1 -1
  223. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +1 -1
  224. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +1 -1
  225. package/dist/adapter/z-stack/structs/entries/nwk-key.js +1 -2
  226. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +1 -1
  227. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +1 -1
  228. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +1 -1
  229. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +1 -2
  230. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +1 -1
  231. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +1 -1
  232. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +1 -1
  233. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +3 -4
  234. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +1 -1
  235. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +2 -2
  236. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +1 -1
  237. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +3 -4
  238. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +1 -1
  239. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +1 -1
  240. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +1 -1
  241. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +4 -5
  242. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  243. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +2 -2
  244. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +1 -1
  245. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +3 -4
  246. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +1 -1
  247. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  248. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +2 -2
  249. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +1 -1
  250. package/dist/adapter/z-stack/structs/struct.d.ts +8 -8
  251. package/dist/adapter/z-stack/structs/struct.d.ts.map +1 -1
  252. package/dist/adapter/z-stack/structs/struct.js +42 -43
  253. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  254. package/dist/adapter/z-stack/structs/table.d.ts +3 -3
  255. package/dist/adapter/z-stack/structs/table.d.ts.map +1 -1
  256. package/dist/adapter/z-stack/structs/table.js +10 -10
  257. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  258. package/dist/adapter/z-stack/unpi/frame.d.ts +1 -1
  259. package/dist/adapter/z-stack/unpi/frame.d.ts.map +1 -1
  260. package/dist/adapter/z-stack/unpi/frame.js +2 -4
  261. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  262. package/dist/adapter/z-stack/unpi/index.d.ts +4 -4
  263. package/dist/adapter/z-stack/unpi/parser.d.ts +1 -1
  264. package/dist/adapter/z-stack/unpi/parser.js +3 -3
  265. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  266. package/dist/adapter/z-stack/unpi/writer.d.ts +2 -2
  267. package/dist/adapter/z-stack/unpi/writer.d.ts.map +1 -1
  268. package/dist/adapter/z-stack/unpi/writer.js +1 -1
  269. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  270. package/dist/adapter/z-stack/utils/network-options.d.ts +1 -1
  271. package/dist/adapter/z-stack/utils/network-options.d.ts.map +1 -1
  272. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +3 -3
  273. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +1 -1
  274. package/dist/adapter/z-stack/znp/buffaloZnp.js +34 -20
  275. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  276. package/dist/adapter/z-stack/znp/definition.d.ts +2 -2
  277. package/dist/adapter/z-stack/znp/definition.d.ts.map +1 -1
  278. package/dist/adapter/z-stack/znp/definition.js +1111 -1111
  279. package/dist/adapter/z-stack/znp/index.d.ts +2 -2
  280. package/dist/adapter/z-stack/znp/tstype.d.ts +7 -7
  281. package/dist/adapter/z-stack/znp/tstype.d.ts.map +1 -1
  282. package/dist/adapter/z-stack/znp/utils.d.ts +1 -1
  283. package/dist/adapter/z-stack/znp/utils.d.ts.map +1 -1
  284. package/dist/adapter/z-stack/znp/utils.js +2 -2
  285. package/dist/adapter/z-stack/znp/znp.d.ts +7 -7
  286. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  287. package/dist/adapter/z-stack/znp/znp.js +46 -45
  288. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  289. package/dist/adapter/z-stack/znp/zpiObject.d.ts +8 -8
  290. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +1 -1
  291. package/dist/adapter/z-stack/znp/zpiObject.js +6 -6
  292. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  293. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts +11 -11
  294. package/dist/adapter/zboss/adapter/zbossAdapter.d.ts.map +1 -1
  295. package/dist/adapter/zboss/adapter/zbossAdapter.js +37 -36
  296. package/dist/adapter/zboss/adapter/zbossAdapter.js.map +1 -1
  297. package/dist/adapter/zboss/commands.d.ts +4 -6
  298. package/dist/adapter/zboss/commands.d.ts.map +1 -1
  299. package/dist/adapter/zboss/commands.js +321 -287
  300. package/dist/adapter/zboss/commands.js.map +1 -1
  301. package/dist/adapter/zboss/driver.d.ts +9 -9
  302. package/dist/adapter/zboss/driver.d.ts.map +1 -1
  303. package/dist/adapter/zboss/driver.js +25 -25
  304. package/dist/adapter/zboss/driver.js.map +1 -1
  305. package/dist/adapter/zboss/frame.d.ts +9 -9
  306. package/dist/adapter/zboss/frame.d.ts.map +1 -1
  307. package/dist/adapter/zboss/frame.js +15 -15
  308. package/dist/adapter/zboss/frame.js.map +1 -1
  309. package/dist/adapter/zboss/reader.d.ts +2 -2
  310. package/dist/adapter/zboss/reader.d.ts.map +1 -1
  311. package/dist/adapter/zboss/reader.js +6 -5
  312. package/dist/adapter/zboss/reader.js.map +1 -1
  313. package/dist/adapter/zboss/uart.d.ts +3 -3
  314. package/dist/adapter/zboss/uart.d.ts.map +1 -1
  315. package/dist/adapter/zboss/uart.js +36 -36
  316. package/dist/adapter/zboss/uart.js.map +1 -1
  317. package/dist/adapter/zboss/writer.d.ts +1 -1
  318. package/dist/adapter/zboss/writer.d.ts.map +1 -1
  319. package/dist/adapter/zboss/writer.js +3 -5
  320. package/dist/adapter/zboss/writer.js.map +1 -1
  321. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js +2 -2
  322. package/dist/adapter/zigate/adapter/patchZdoBuffaloBE.js.map +1 -1
  323. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +14 -14
  324. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  325. package/dist/adapter/zigate/adapter/zigateAdapter.js +52 -53
  326. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  327. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +6 -6
  328. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +1 -1
  329. package/dist/adapter/zigate/driver/buffaloZiGate.js +41 -23
  330. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  331. package/dist/adapter/zigate/driver/commandType.d.ts +2 -2
  332. package/dist/adapter/zigate/driver/commandType.d.ts.map +1 -1
  333. package/dist/adapter/zigate/driver/commandType.js +37 -37
  334. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  335. package/dist/adapter/zigate/driver/constants.d.ts +27 -200
  336. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  337. package/dist/adapter/zigate/driver/constants.js +40 -236
  338. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  339. package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
  340. package/dist/adapter/zigate/driver/frame.js +4 -3
  341. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  342. package/dist/adapter/zigate/driver/messageType.d.ts +1 -1
  343. package/dist/adapter/zigate/driver/messageType.js +76 -76
  344. package/dist/adapter/zigate/driver/ziGateObject.d.ts +3 -3
  345. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
  346. package/dist/adapter/zigate/driver/ziGateObject.js +7 -6
  347. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  348. package/dist/adapter/zigate/driver/zigate.d.ts +8 -8
  349. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  350. package/dist/adapter/zigate/driver/zigate.js +59 -54
  351. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  352. package/dist/adapter/zoh/adapter/utils.js +1 -1
  353. package/dist/adapter/zoh/adapter/zohAdapter.d.ts +13 -13
  354. package/dist/adapter/zoh/adapter/zohAdapter.d.ts.map +1 -1
  355. package/dist/adapter/zoh/adapter/zohAdapter.js +101 -67
  356. package/dist/adapter/zoh/adapter/zohAdapter.js.map +1 -1
  357. package/dist/buffalo/buffalo.d.ts +2 -2
  358. package/dist/buffalo/buffalo.js +4 -4
  359. package/dist/buffalo/buffalo.js.map +1 -1
  360. package/dist/buffalo/index.d.ts +1 -1
  361. package/dist/controller/controller.d.ts +7 -7
  362. package/dist/controller/controller.d.ts.map +1 -1
  363. package/dist/controller/controller.js +94 -98
  364. package/dist/controller/controller.js.map +1 -1
  365. package/dist/controller/database.d.ts +1 -1
  366. package/dist/controller/database.d.ts.map +1 -1
  367. package/dist/controller/database.js +9 -9
  368. package/dist/controller/database.js.map +1 -1
  369. package/dist/controller/events.d.ts +6 -6
  370. package/dist/controller/events.d.ts.map +1 -1
  371. package/dist/controller/greenPower.d.ts +21 -21
  372. package/dist/controller/greenPower.d.ts.map +1 -1
  373. package/dist/controller/greenPower.js +41 -41
  374. package/dist/controller/greenPower.js.map +1 -1
  375. package/dist/controller/helpers/index.d.ts +1 -1
  376. package/dist/controller/helpers/request.d.ts +2 -2
  377. package/dist/controller/helpers/request.d.ts.map +1 -1
  378. package/dist/controller/helpers/request.js +31 -27
  379. package/dist/controller/helpers/request.js.map +1 -1
  380. package/dist/controller/helpers/requestQueue.d.ts +3 -3
  381. package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
  382. package/dist/controller/helpers/requestQueue.js +20 -20
  383. package/dist/controller/helpers/requestQueue.js.map +1 -1
  384. package/dist/controller/helpers/zclFrameConverter.d.ts +2 -2
  385. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  386. package/dist/controller/helpers/zclFrameConverter.js +1 -1
  387. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  388. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +6 -4
  389. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +1 -1
  390. package/dist/controller/helpers/zclTransactionSequenceNumber.js +6 -5
  391. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  392. package/dist/controller/index.d.ts +1 -1
  393. package/dist/controller/model/device.d.ts +23 -19
  394. package/dist/controller/model/device.d.ts.map +1 -1
  395. package/dist/controller/model/device.js +153 -128
  396. package/dist/controller/model/device.js.map +1 -1
  397. package/dist/controller/model/endpoint.d.ts +11 -11
  398. package/dist/controller/model/endpoint.d.ts.map +1 -1
  399. package/dist/controller/model/endpoint.js +84 -67
  400. package/dist/controller/model/endpoint.js.map +1 -1
  401. package/dist/controller/model/entity.d.ts +3 -3
  402. package/dist/controller/model/entity.d.ts.map +1 -1
  403. package/dist/controller/model/group.d.ts +4 -4
  404. package/dist/controller/model/group.d.ts.map +1 -1
  405. package/dist/controller/model/group.js +21 -9
  406. package/dist/controller/model/group.js.map +1 -1
  407. package/dist/controller/model/index.d.ts +4 -4
  408. package/dist/controller/touchlink.d.ts +1 -1
  409. package/dist/controller/touchlink.d.ts.map +1 -1
  410. package/dist/controller/touchlink.js +11 -11
  411. package/dist/controller/tstype.d.ts +3 -3
  412. package/dist/index.d.ts +10 -10
  413. package/dist/models/backup-storage-legacy.d.ts +14 -16
  414. package/dist/models/backup-storage-legacy.d.ts.map +1 -1
  415. package/dist/models/backup-storage-unified.d.ts +1 -1
  416. package/dist/models/backup.d.ts +2 -2
  417. package/dist/models/backup.d.ts.map +1 -1
  418. package/dist/models/index.d.ts +4 -4
  419. package/dist/utils/backup.d.ts +1 -1
  420. package/dist/utils/backup.d.ts.map +1 -1
  421. package/dist/utils/backup.js +26 -26
  422. package/dist/utils/backup.js.map +1 -1
  423. package/dist/utils/index.d.ts +5 -5
  424. package/dist/utils/logger.js +3 -3
  425. package/dist/utils/patchBigIntSerialization.js +1 -1
  426. package/dist/utils/patchBigIntSerialization.js.map +1 -1
  427. package/dist/utils/queue.d.ts.map +1 -1
  428. package/dist/utils/queue.js +1 -0
  429. package/dist/utils/queue.js.map +1 -1
  430. package/dist/utils/utils.d.ts.map +1 -1
  431. package/dist/utils/utils.js +5 -4
  432. package/dist/utils/utils.js.map +1 -1
  433. package/dist/utils/waitress.d.ts +1 -1
  434. package/dist/utils/waitress.js +3 -3
  435. package/dist/zspec/consts.d.ts +1 -1
  436. package/dist/zspec/consts.d.ts.map +1 -1
  437. package/dist/zspec/consts.js +1 -1
  438. package/dist/zspec/index.d.ts +3 -3
  439. package/dist/zspec/tstypes.d.ts +1 -1
  440. package/dist/zspec/utils.d.ts +4 -4
  441. package/dist/zspec/utils.d.ts.map +1 -1
  442. package/dist/zspec/utils.js +9 -13
  443. package/dist/zspec/utils.js.map +1 -1
  444. package/dist/zspec/zcl/buffaloZcl.d.ts +3 -3
  445. package/dist/zspec/zcl/buffaloZcl.d.ts.map +1 -1
  446. package/dist/zspec/zcl/buffaloZcl.js +127 -84
  447. package/dist/zspec/zcl/buffaloZcl.js.map +1 -1
  448. package/dist/zspec/zcl/definition/cluster.d.ts +1 -1
  449. package/dist/zspec/zcl/definition/cluster.d.ts.map +1 -1
  450. package/dist/zspec/zcl/definition/cluster.js +894 -893
  451. package/dist/zspec/zcl/definition/cluster.js.map +1 -1
  452. package/dist/zspec/zcl/definition/consts.js +7 -7
  453. package/dist/zspec/zcl/definition/foundation.d.ts +3 -3
  454. package/dist/zspec/zcl/definition/foundation.d.ts.map +1 -1
  455. package/dist/zspec/zcl/definition/foundation.js +88 -89
  456. package/dist/zspec/zcl/definition/foundation.js.map +1 -1
  457. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +1 -1
  458. package/dist/zspec/zcl/definition/manufacturerCode.js +1 -1
  459. package/dist/zspec/zcl/definition/manufacturerCode.js.map +1 -1
  460. package/dist/zspec/zcl/definition/status.d.ts +3 -3
  461. package/dist/zspec/zcl/definition/status.js +3 -3
  462. package/dist/zspec/zcl/definition/tstype.d.ts +3 -3
  463. package/dist/zspec/zcl/definition/tstype.d.ts.map +1 -1
  464. package/dist/zspec/zcl/index.d.ts +10 -10
  465. package/dist/zspec/zcl/utils.d.ts +3 -3
  466. package/dist/zspec/zcl/utils.d.ts.map +1 -1
  467. package/dist/zspec/zcl/utils.js +18 -21
  468. package/dist/zspec/zcl/utils.js.map +1 -1
  469. package/dist/zspec/zcl/zclFrame.d.ts +7 -7
  470. package/dist/zspec/zcl/zclFrame.d.ts.map +1 -1
  471. package/dist/zspec/zcl/zclFrame.js +38 -41
  472. package/dist/zspec/zcl/zclFrame.js.map +1 -1
  473. package/dist/zspec/zcl/zclHeader.d.ts +2 -2
  474. package/dist/zspec/zcl/zclHeader.d.ts.map +1 -1
  475. package/dist/zspec/zcl/zclHeader.js +3 -3
  476. package/dist/zspec/zcl/zclStatusError.d.ts +1 -1
  477. package/dist/zspec/zdo/buffaloZdo.d.ts +7 -7
  478. package/dist/zspec/zdo/buffaloZdo.d.ts.map +1 -1
  479. package/dist/zspec/zdo/buffaloZdo.js +4 -4
  480. package/dist/zspec/zdo/buffaloZdo.js.map +1 -1
  481. package/dist/zspec/zdo/definition/status.d.ts +1 -1
  482. package/dist/zspec/zdo/definition/status.js +1 -1
  483. package/dist/zspec/zdo/definition/tstypes.d.ts +48 -48
  484. package/dist/zspec/zdo/definition/tstypes.d.ts.map +1 -1
  485. package/dist/zspec/zdo/index.d.ts +7 -7
  486. package/dist/zspec/zdo/utils.d.ts +2 -2
  487. package/dist/zspec/zdo/utils.d.ts.map +1 -1
  488. package/dist/zspec/zdo/utils.js +1 -1
  489. package/dist/zspec/zdo/utils.js.map +1 -1
  490. package/dist/zspec/zdo/zdoStatusError.d.ts +1 -1
  491. package/examples/join-and-log.js +5 -5
  492. package/package.json +4 -11
  493. package/src/adapter/adapter.ts +189 -0
  494. package/src/adapter/adapterDiscovery.ts +653 -0
  495. package/src/adapter/const.ts +12 -0
  496. package/src/adapter/deconz/adapter/deconzAdapter.ts +768 -0
  497. package/src/adapter/deconz/driver/constants.ts +180 -0
  498. package/src/adapter/deconz/driver/driver.ts +900 -0
  499. package/src/adapter/deconz/driver/frame.ts +11 -0
  500. package/src/adapter/deconz/driver/frameParser.ts +557 -0
  501. package/src/adapter/deconz/driver/parser.ts +45 -0
  502. package/src/adapter/deconz/driver/writer.ts +22 -0
  503. package/src/adapter/deconz/types.d.ts +13 -0
  504. package/src/adapter/ember/adapter/emberAdapter.ts +2266 -0
  505. package/src/adapter/ember/adapter/endpoints.ts +86 -0
  506. package/src/adapter/ember/adapter/oneWaitress.ts +322 -0
  507. package/src/adapter/ember/adapter/tokensManager.ts +782 -0
  508. package/src/adapter/ember/consts.ts +178 -0
  509. package/src/adapter/ember/enums.ts +2123 -0
  510. package/src/adapter/ember/ezsp/buffalo.ts +1397 -0
  511. package/src/adapter/ember/ezsp/consts.ts +148 -0
  512. package/src/adapter/ember/ezsp/enums.ts +1087 -0
  513. package/src/adapter/ember/ezsp/ezsp.ts +8985 -0
  514. package/src/adapter/ember/ezspError.ts +10 -0
  515. package/src/adapter/ember/types.ts +866 -0
  516. package/src/adapter/ember/uart/ash.ts +1969 -0
  517. package/src/adapter/ember/uart/consts.ts +109 -0
  518. package/src/adapter/ember/uart/enums.ts +192 -0
  519. package/src/adapter/ember/uart/parser.ts +48 -0
  520. package/src/adapter/ember/uart/queues.ts +247 -0
  521. package/src/adapter/ember/uart/writer.ts +53 -0
  522. package/src/adapter/ember/utils/initters.ts +58 -0
  523. package/src/adapter/ember/utils/math.ts +73 -0
  524. package/src/adapter/events.ts +21 -0
  525. package/src/adapter/ezsp/adapter/backup.ts +109 -0
  526. package/src/adapter/ezsp/adapter/ezspAdapter.ts +614 -0
  527. package/src/adapter/ezsp/driver/commands.ts +2497 -0
  528. package/src/adapter/ezsp/driver/consts.ts +11 -0
  529. package/src/adapter/ezsp/driver/driver.ts +1002 -0
  530. package/src/adapter/ezsp/driver/ezsp.ts +802 -0
  531. package/src/adapter/ezsp/driver/frame.ts +101 -0
  532. package/src/adapter/ezsp/driver/index.ts +4 -0
  533. package/src/adapter/ezsp/driver/multicast.ts +78 -0
  534. package/src/adapter/ezsp/driver/parser.ts +81 -0
  535. package/src/adapter/ezsp/driver/types/basic.ts +201 -0
  536. package/src/adapter/ezsp/driver/types/index.ts +239 -0
  537. package/src/adapter/ezsp/driver/types/named.ts +2330 -0
  538. package/src/adapter/ezsp/driver/types/struct.ts +844 -0
  539. package/src/adapter/ezsp/driver/uart.ts +460 -0
  540. package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
  541. package/src/adapter/ezsp/driver/utils/index.ts +32 -0
  542. package/src/adapter/ezsp/driver/writer.ts +64 -0
  543. package/src/adapter/index.ts +3 -0
  544. package/src/adapter/serialPort.ts +58 -0
  545. package/src/adapter/socketPortUtils.ts +16 -0
  546. package/src/adapter/tstype.ts +78 -0
  547. package/src/adapter/z-stack/adapter/adapter-backup.ts +519 -0
  548. package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
  549. package/src/adapter/z-stack/adapter/endpoints.ts +57 -0
  550. package/src/adapter/z-stack/adapter/manager.ts +543 -0
  551. package/src/adapter/z-stack/adapter/tstype.ts +6 -0
  552. package/src/adapter/z-stack/adapter/zStackAdapter.ts +1190 -0
  553. package/src/adapter/z-stack/constants/af.ts +27 -0
  554. package/src/adapter/z-stack/constants/common.ts +285 -0
  555. package/src/adapter/z-stack/constants/dbg.ts +23 -0
  556. package/src/adapter/z-stack/constants/index.ts +11 -0
  557. package/src/adapter/z-stack/constants/mac.ts +128 -0
  558. package/src/adapter/z-stack/constants/sapi.ts +25 -0
  559. package/src/adapter/z-stack/constants/sys.ts +72 -0
  560. package/src/adapter/z-stack/constants/util.ts +82 -0
  561. package/src/adapter/z-stack/constants/utils.ts +14 -0
  562. package/src/adapter/z-stack/constants/zdo.ts +103 -0
  563. package/src/adapter/z-stack/models/startup-options.ts +13 -0
  564. package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
  565. package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
  566. package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
  567. package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
  568. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
  569. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
  570. package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
  571. package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
  572. package/src/adapter/z-stack/structs/entries/index.ts +16 -0
  573. package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
  574. package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
  575. package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
  576. package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
  577. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
  578. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
  579. package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
  580. package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
  581. package/src/adapter/z-stack/structs/index.ts +4 -0
  582. package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
  583. package/src/adapter/z-stack/structs/struct.ts +367 -0
  584. package/src/adapter/z-stack/structs/table.ts +198 -0
  585. package/src/adapter/z-stack/unpi/constants.ts +33 -0
  586. package/src/adapter/z-stack/unpi/frame.ts +62 -0
  587. package/src/adapter/z-stack/unpi/index.ts +4 -0
  588. package/src/adapter/z-stack/unpi/parser.ts +56 -0
  589. package/src/adapter/z-stack/unpi/writer.ts +21 -0
  590. package/src/adapter/z-stack/utils/channel-list.ts +40 -0
  591. package/src/adapter/z-stack/utils/index.ts +2 -0
  592. package/src/adapter/z-stack/utils/network-options.ts +26 -0
  593. package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
  594. package/src/adapter/z-stack/znp/definition.ts +2713 -0
  595. package/src/adapter/z-stack/znp/index.ts +2 -0
  596. package/src/adapter/z-stack/znp/parameterType.ts +22 -0
  597. package/src/adapter/z-stack/znp/tstype.ts +44 -0
  598. package/src/adapter/z-stack/znp/utils.ts +10 -0
  599. package/src/adapter/z-stack/znp/znp.ts +342 -0
  600. package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
  601. package/src/adapter/zboss/adapter/zbossAdapter.ts +527 -0
  602. package/src/adapter/zboss/commands.ts +1184 -0
  603. package/src/adapter/zboss/consts.ts +9 -0
  604. package/src/adapter/zboss/driver.ts +423 -0
  605. package/src/adapter/zboss/enums.ts +360 -0
  606. package/src/adapter/zboss/frame.ts +227 -0
  607. package/src/adapter/zboss/reader.ts +65 -0
  608. package/src/adapter/zboss/types.ts +0 -0
  609. package/src/adapter/zboss/uart.ts +428 -0
  610. package/src/adapter/zboss/utils.ts +58 -0
  611. package/src/adapter/zboss/writer.ts +49 -0
  612. package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +27 -0
  613. package/src/adapter/zigate/adapter/zigateAdapter.ts +618 -0
  614. package/src/adapter/zigate/driver/LICENSE +17 -0
  615. package/src/adapter/zigate/driver/buffaloZiGate.ts +212 -0
  616. package/src/adapter/zigate/driver/commandType.ts +418 -0
  617. package/src/adapter/zigate/driver/constants.ts +150 -0
  618. package/src/adapter/zigate/driver/frame.ts +197 -0
  619. package/src/adapter/zigate/driver/messageType.ts +287 -0
  620. package/src/adapter/zigate/driver/parameterType.ts +32 -0
  621. package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
  622. package/src/adapter/zigate/driver/zigate.ts +426 -0
  623. package/src/adapter/zoh/adapter/utils.ts +27 -0
  624. package/src/adapter/zoh/adapter/zohAdapter.ts +837 -0
  625. package/src/buffalo/buffalo.ts +335 -0
  626. package/src/buffalo/index.ts +1 -0
  627. package/src/controller/controller.ts +1048 -0
  628. package/src/controller/database.ts +124 -0
  629. package/src/controller/events.ts +51 -0
  630. package/src/controller/greenPower.ts +603 -0
  631. package/src/controller/helpers/index.ts +1 -0
  632. package/src/controller/helpers/request.ts +94 -0
  633. package/src/controller/helpers/requestQueue.ts +125 -0
  634. package/src/controller/helpers/zclFrameConverter.ts +51 -0
  635. package/src/controller/helpers/zclTransactionSequenceNumber.ts +19 -0
  636. package/src/controller/index.ts +6 -0
  637. package/src/controller/model/device.ts +1320 -0
  638. package/src/controller/model/endpoint.ts +1040 -0
  639. package/src/controller/model/entity.ts +23 -0
  640. package/src/controller/model/group.ts +333 -0
  641. package/src/controller/model/index.ts +4 -0
  642. package/src/controller/touchlink.ts +189 -0
  643. package/src/controller/tstype.ts +39 -0
  644. package/src/index.ts +12 -0
  645. package/src/models/backup-storage-legacy.ts +48 -0
  646. package/src/models/backup-storage-unified.ts +47 -0
  647. package/src/models/backup.ts +37 -0
  648. package/src/models/index.ts +5 -0
  649. package/src/models/network-options.ts +11 -0
  650. package/src/utils/backup.ts +152 -0
  651. package/src/utils/index.ts +5 -0
  652. package/src/utils/logger.ts +20 -0
  653. package/src/utils/patchBigIntSerialization.ts +8 -0
  654. package/src/utils/queue.ts +76 -0
  655. package/src/utils/types.d.ts +3 -0
  656. package/src/utils/utils.ts +20 -0
  657. package/src/utils/wait.ts +5 -0
  658. package/src/utils/waitress.ts +95 -0
  659. package/src/zspec/consts.ts +84 -0
  660. package/src/zspec/enums.ts +22 -0
  661. package/src/zspec/index.ts +3 -0
  662. package/src/zspec/tstypes.ts +18 -0
  663. package/src/zspec/utils.ts +308 -0
  664. package/src/zspec/zcl/buffaloZcl.ts +1133 -0
  665. package/src/zspec/zcl/definition/cluster.ts +5398 -0
  666. package/src/zspec/zcl/definition/consts.ts +24 -0
  667. package/src/zspec/zcl/definition/enums.ts +194 -0
  668. package/src/zspec/zcl/definition/foundation.ts +301 -0
  669. package/src/zspec/zcl/definition/manufacturerCode.ts +729 -0
  670. package/src/zspec/zcl/definition/status.ts +69 -0
  671. package/src/zspec/zcl/definition/tstype.ts +236 -0
  672. package/src/zspec/zcl/index.ts +10 -0
  673. package/src/zspec/zcl/utils.ts +342 -0
  674. package/src/zspec/zcl/zclFrame.ts +336 -0
  675. package/src/zspec/zcl/zclHeader.ts +102 -0
  676. package/src/zspec/zcl/zclStatusError.ts +10 -0
  677. package/src/zspec/zdo/buffaloZdo.ts +2345 -0
  678. package/src/zspec/zdo/definition/clusters.ts +722 -0
  679. package/src/zspec/zdo/definition/consts.ts +16 -0
  680. package/src/zspec/zdo/definition/enums.ts +99 -0
  681. package/src/zspec/zdo/definition/status.ts +105 -0
  682. package/src/zspec/zdo/definition/tstypes.ts +1062 -0
  683. package/src/zspec/zdo/index.ts +7 -0
  684. package/src/zspec/zdo/utils.ts +76 -0
  685. package/src/zspec/zdo/zdoStatusError.ts +10 -0
  686. package/test/adapter/adapter.test.ts +1062 -0
  687. package/test/adapter/ember/ash.test.ts +337 -0
  688. package/test/adapter/ember/consts.ts +131 -0
  689. package/test/adapter/ember/emberAdapter.test.ts +3449 -0
  690. package/test/adapter/ember/ezsp.test.ts +386 -0
  691. package/test/adapter/ember/ezspBuffalo.test.ts +92 -0
  692. package/test/adapter/ember/ezspError.test.ts +11 -0
  693. package/test/adapter/ember/math.test.ts +205 -0
  694. package/test/adapter/ezsp/frame.test.ts +29 -0
  695. package/test/adapter/ezsp/uart.test.ts +180 -0
  696. package/test/adapter/z-stack/adapter.test.ts +3985 -0
  697. package/test/adapter/z-stack/constants.test.ts +32 -0
  698. package/test/adapter/z-stack/structs.test.ts +114 -0
  699. package/test/adapter/z-stack/unpi.test.ts +212 -0
  700. package/test/adapter/z-stack/znp.test.ts +1284 -0
  701. package/test/adapter/zboss/fixZdoResponse.test.ts +178 -0
  702. package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +80 -0
  703. package/test/adapter/zigate/zdo.test.ts +187 -0
  704. package/test/adapter/zoh/utils.test.ts +35 -0
  705. package/test/adapter/zoh/zohAdapter.test.ts +1306 -0
  706. package/test/buffalo.test.ts +430 -0
  707. package/test/controller.test.ts +10005 -0
  708. package/test/greenpower.test.ts +1421 -0
  709. package/test/mockAdapters.ts +65 -0
  710. package/test/mockDevices.ts +472 -0
  711. package/test/testUtils.ts +20 -0
  712. package/test/tsconfig.json +10 -0
  713. package/test/utils/math.ts +19 -0
  714. package/test/utils.test.ts +227 -0
  715. package/test/vitest.config.mts +25 -0
  716. package/test/zcl.test.ts +2832 -0
  717. package/test/zspec/utils.test.ts +131 -0
  718. package/test/zspec/zcl/buffalo.test.ts +1231 -0
  719. package/test/zspec/zcl/frame.test.ts +925 -0
  720. package/test/zspec/zcl/utils.test.ts +280 -0
  721. package/test/zspec/zdo/buffalo.test.ts +1849 -0
  722. package/test/zspec/zdo/utils.test.ts +240 -0
  723. package/.prettierignore +0 -2
  724. package/.prettierrc +0 -26
  725. package/eslint.config.mjs +0 -32
@@ -0,0 +1,101 @@
1
+ /* v8 ignore start */
2
+
3
+ import {RANDOMIZE_SEQ, RANDOMIZE_START} from "./consts";
4
+ import crc16ccitt from "./utils/crc16ccitt";
5
+
6
+ export enum FrameType {
7
+ UNKNOWN = 0,
8
+ ERROR = 1,
9
+ DATA = 2,
10
+ ACK = 3,
11
+ NAK = 4,
12
+ RST = 5,
13
+ RSTACK = 6,
14
+ }
15
+
16
+ /**
17
+ * Basic class to handle uart-level frames
18
+ * https://www.silabs.com/documents/public/user-guides/ug101-uart-gateway-protocol-reference.pdf
19
+ */
20
+ export class Frame {
21
+ /**
22
+ * Type of the Frame as determined by its control byte.
23
+ */
24
+ public readonly type: FrameType;
25
+ public readonly buffer: Buffer;
26
+
27
+ public constructor(buffer: Buffer) {
28
+ this.buffer = buffer;
29
+
30
+ const ctrlByte = this.buffer[0];
31
+
32
+ if ((ctrlByte & 0x80) === 0) {
33
+ this.type = FrameType.DATA;
34
+ } else if ((ctrlByte & 0xe0) === 0x80) {
35
+ this.type = FrameType.ACK;
36
+ } else if ((ctrlByte & 0xe0) === 0xa0) {
37
+ this.type = FrameType.NAK;
38
+ } else if (ctrlByte === 0xc0) {
39
+ this.type = FrameType.RST;
40
+ } else if (ctrlByte === 0xc1) {
41
+ this.type = FrameType.RSTACK;
42
+ } else if (ctrlByte === 0xc2) {
43
+ this.type = FrameType.ERROR;
44
+ } else {
45
+ this.type = FrameType.UNKNOWN;
46
+ }
47
+ }
48
+
49
+ get control(): number {
50
+ return this.buffer[0];
51
+ }
52
+
53
+ public static fromBuffer(buffer: Buffer): Frame {
54
+ return new Frame(buffer);
55
+ }
56
+
57
+ /**
58
+ * XOR s with a pseudo-random sequence for transmission.
59
+ * Used only in data frames.
60
+ */
61
+ public static makeRandomizedBuffer(buffer: Buffer): Buffer {
62
+ let rand = RANDOMIZE_START;
63
+ const out = Buffer.alloc(buffer.length);
64
+ let outIdx = 0;
65
+
66
+ for (const c of buffer) {
67
+ out.writeUInt8(c ^ rand, outIdx++);
68
+
69
+ if (rand % 2) {
70
+ rand = (rand >> 1) ^ RANDOMIZE_SEQ;
71
+ } else {
72
+ rand = rand >> 1;
73
+ }
74
+ }
75
+
76
+ return out;
77
+ }
78
+
79
+ /**
80
+ * Throws on CRC error.
81
+ */
82
+ public checkCRC(): void {
83
+ const crc = crc16ccitt(this.buffer.subarray(0, -3), 65535);
84
+ const crcArr = Buffer.from([crc >> 8, crc % 256]);
85
+ const subArr = this.buffer.subarray(-3, -1);
86
+
87
+ if (!subArr.equals(crcArr)) {
88
+ throw new Error(`<-- CRC error: ${this.toString()}|${subArr.toString("hex")}|${crcArr.toString("hex")}`);
89
+ }
90
+ }
91
+
92
+ /**
93
+ *
94
+ * @returns Buffer to hex string
95
+ */
96
+ public toString(): string {
97
+ return this.buffer.toString("hex");
98
+ }
99
+ }
100
+
101
+ export default Frame;
@@ -0,0 +1,4 @@
1
+ import {Driver, EmberIncomingMessage} from "./driver";
2
+ import {Ezsp} from "./ezsp";
3
+
4
+ export {Ezsp, Driver, EmberIncomingMessage};
@@ -0,0 +1,78 @@
1
+ /* v8 ignore start */
2
+
3
+ import {logger} from "../../../utils/logger";
4
+ import type {Driver} from "./driver";
5
+ import {EzspConfigId} from "./types";
6
+ import {EmberStatus} from "./types/named";
7
+ import {EmberMulticastTableEntry} from "./types/struct";
8
+
9
+ const NS = "zh:ezsp:cast";
10
+
11
+ export class Multicast {
12
+ tableSize = 16;
13
+ private driver: Driver;
14
+ private _multicast: Record<number, [EmberMulticastTableEntry, number]>;
15
+ private _available: number[];
16
+
17
+ constructor(driver: Driver) {
18
+ this.driver = driver;
19
+ this._multicast = {};
20
+ this._available = [];
21
+ }
22
+
23
+ private async _initialize(): Promise<void> {
24
+ const size = await this.driver.ezsp.getConfigurationValue(EzspConfigId.CONFIG_MULTICAST_TABLE_SIZE);
25
+ for (let i = 0; i < size; i++) {
26
+ const entry = await this.driver.ezsp.getMulticastTableEntry(i);
27
+ logger.debug(`MulticastTableEntry[${i}] = ${entry}`, NS);
28
+ if (entry.endpoint !== 0) {
29
+ this._multicast[entry.multicastId] = [entry, i];
30
+ } else {
31
+ this._available.push(i);
32
+ }
33
+ }
34
+ }
35
+
36
+ async startup(enpoints: {id: number; member_of: number[]}[]): Promise<void> {
37
+ await this._initialize();
38
+ for (const ep of enpoints) {
39
+ if (!ep.id) continue;
40
+ for (const group_id of ep.member_of) {
41
+ await this.subscribe(group_id, ep.id);
42
+ }
43
+ }
44
+ }
45
+
46
+ public async subscribe(groupId: number, endpoint: number): Promise<EmberStatus> {
47
+ if (this._multicast[groupId] !== undefined) {
48
+ logger.debug(`${groupId} is already subscribed`, NS);
49
+ return EmberStatus.SUCCESS;
50
+ }
51
+
52
+ try {
53
+ const idx = this._available.pop();
54
+
55
+ if (idx === undefined) {
56
+ throw new Error("No available");
57
+ }
58
+
59
+ const entry: EmberMulticastTableEntry = new EmberMulticastTableEntry();
60
+ entry.endpoint = endpoint;
61
+ entry.multicastId = groupId;
62
+ entry.networkIndex = 0;
63
+ const status = await this.driver.ezsp.setMulticastTableEntry(idx, entry);
64
+ if (status !== EmberStatus.SUCCESS) {
65
+ logger.error(`Set MulticastTableEntry #${idx} for ${entry.multicastId} multicast id: ${status}`, NS);
66
+ this._available.push(idx);
67
+ return status;
68
+ }
69
+
70
+ this._multicast[entry.multicastId] = [entry, idx];
71
+ logger.debug(`Set MulticastTableEntry #${idx} for ${entry.multicastId} multicast id: ${status}`, NS);
72
+ return status;
73
+ } catch (error) {
74
+ logger.error(`No more available slots MulticastId subscription (${(error as Error).stack})`, NS);
75
+ return EmberStatus.INDEX_OUT_OF_RANGE;
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,81 @@
1
+ /* v8 ignore start */
2
+
3
+ import * as stream from "node:stream";
4
+
5
+ import {logger} from "../../../utils/logger";
6
+ import * as consts from "./consts";
7
+ import Frame from "./frame";
8
+
9
+ const NS = "zh:ezsp:uart";
10
+
11
+ export class Parser extends stream.Transform {
12
+ private tail: Buffer[];
13
+
14
+ public constructor() {
15
+ super();
16
+
17
+ this.tail = [];
18
+ }
19
+
20
+ public override _transform(chunk: Buffer, _: string, cb: () => void): void {
21
+ if (chunk.indexOf(consts.CANCEL) >= 0) {
22
+ this.reset();
23
+ chunk = chunk.subarray(chunk.lastIndexOf(consts.CANCEL) + 1);
24
+ }
25
+
26
+ if (chunk.indexOf(consts.SUBSTITUTE) >= 0) {
27
+ this.reset();
28
+ chunk = chunk.subarray(chunk.indexOf(consts.FLAG) + 1);
29
+ }
30
+
31
+ logger.debug(`<-- [${chunk.toString("hex")}]`, NS);
32
+
33
+ let delimiterPlace = chunk.indexOf(consts.FLAG);
34
+
35
+ while (delimiterPlace >= 0) {
36
+ const buffer = chunk.subarray(0, delimiterPlace + 1);
37
+ const frameBuffer = Buffer.from([...this.unstuff(Buffer.concat([...this.tail, buffer]))]);
38
+ this.reset();
39
+
40
+ try {
41
+ const frame = Frame.fromBuffer(frameBuffer);
42
+
43
+ if (frame) {
44
+ this.emit("parsed", frame);
45
+ }
46
+ } catch (error) {
47
+ logger.debug(`<-- error ${error}`, NS);
48
+ }
49
+
50
+ chunk = chunk.subarray(delimiterPlace + 1);
51
+ delimiterPlace = chunk.indexOf(consts.FLAG);
52
+ }
53
+
54
+ this.tail.push(chunk);
55
+ cb();
56
+ }
57
+
58
+ private *unstuff(buffer: Buffer): Generator<number> {
59
+ /* Unstuff (unescape) a buffer after receipt */
60
+ let escaped = false;
61
+ for (const byte of buffer) {
62
+ if (escaped) {
63
+ yield byte ^ consts.STUFF;
64
+ escaped = false;
65
+ } else {
66
+ if (byte === consts.ESCAPE) {
67
+ escaped = true;
68
+ } else if (byte === consts.XOFF || byte === consts.XON) {
69
+ // skip
70
+ } else {
71
+ yield byte;
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ public reset(): void {
78
+ // clear tail
79
+ this.tail.length = 0;
80
+ }
81
+ }
@@ -0,0 +1,201 @@
1
+ /* v8 ignore start */
2
+ export class int_t {
3
+ static _signed = true;
4
+
5
+ static serialize(cls: any, value: number): Buffer {
6
+ const buffer = Buffer.alloc(cls._size, 0);
7
+ if (cls._signed) {
8
+ buffer.writeIntLE(value, 0, cls._size);
9
+ } else {
10
+ buffer.writeUIntLE(value, 0, cls._size);
11
+ }
12
+ return buffer;
13
+ }
14
+
15
+ static deserialize(cls: any, data: Buffer): any[] {
16
+ return [cls._signed ? data.readIntLE(0, cls._size) : data.readUIntLE(0, cls._size), data.subarray(cls._size)];
17
+ }
18
+
19
+ static valueToName(cls: any, value: any): string {
20
+ for (const prop of Object.getOwnPropertyNames(cls)) {
21
+ const desc = Object.getOwnPropertyDescriptor(cls, prop);
22
+ if (desc?.enumerable && desc.writable && value == desc.value) {
23
+ return `${cls.name}.${prop}`;
24
+ }
25
+ }
26
+ return "";
27
+ }
28
+
29
+ static valueName(cls: any, value: any): string {
30
+ for (const prop of Object.getOwnPropertyNames(cls)) {
31
+ const desc = Object.getOwnPropertyDescriptor(cls, prop);
32
+ if (desc?.enumerable && desc.writable && value == desc.value) {
33
+ return `${prop}`;
34
+ }
35
+ }
36
+ return "";
37
+ }
38
+ }
39
+
40
+ export class int8s extends int_t {
41
+ static _size = 1;
42
+ }
43
+
44
+ export class int16s extends int_t {
45
+ static _size = 2;
46
+ }
47
+
48
+ export class int24s extends int_t {
49
+ static _size = 3;
50
+ }
51
+
52
+ export class int32s extends int_t {
53
+ static _size = 4;
54
+ }
55
+
56
+ export class int64s extends int_t {
57
+ static _size = 8;
58
+ }
59
+
60
+ export class uint_t extends int_t {
61
+ static override _signed = false;
62
+ }
63
+
64
+ export class uint8_t extends uint_t {
65
+ static _size = 1;
66
+ }
67
+
68
+ export class uint16_t extends uint_t {
69
+ static _size = 2;
70
+ }
71
+
72
+ export class uint24_t extends uint_t {
73
+ static _size = 3;
74
+ }
75
+
76
+ export class uint32_t extends uint_t {
77
+ static _size = 4;
78
+ }
79
+
80
+ export class uint64_t extends uint_t {
81
+ static _size = 8;
82
+ }
83
+
84
+ export class LVBytes {
85
+ static serialize(_cls: any, value: any[]): Buffer {
86
+ if (Buffer.isBuffer(value)) {
87
+ const ret = Buffer.alloc(1);
88
+ ret.writeUInt8(value.length, 0);
89
+ return Buffer.concat([ret, value]);
90
+ }
91
+ return Buffer.from([value.length].concat(value));
92
+ }
93
+
94
+ static deserialize(_cls: any, data: Buffer): any[] {
95
+ const l = data.readIntLE(0, 1);
96
+ const s = data.subarray(1, l + 1);
97
+ return [s, data.subarray(l + 1)];
98
+ }
99
+ }
100
+
101
+ export abstract class List {
102
+ static serialize(cls: any, value: any[]): Buffer {
103
+ // console.assert(((cls._length === null) || (cls.length === cls._length)));
104
+ return Buffer.from(value.map((i) => i.serialize(cls, i)));
105
+ }
106
+
107
+ static deserialize(cls: any, data: Buffer): any[] {
108
+ let item;
109
+ const r: any[] = [];
110
+ while (data) {
111
+ [item, data] = cls.itemtype.deserialize(cls.itemtype, data);
112
+ r.push(item);
113
+ }
114
+ return [r, data];
115
+ }
116
+ }
117
+
118
+ class _LVList extends List {
119
+ static override serialize(cls: any, value: any[]): Buffer {
120
+ const head = [cls.length];
121
+ const data = List.serialize(cls, value);
122
+ return Buffer.from(head.concat(data));
123
+ }
124
+
125
+ static override deserialize(cls: any, data: Buffer): any[] {
126
+ let item;
127
+ let length;
128
+ const r: any[] = [];
129
+ [length, data] = [data[0], data.subarray(1)];
130
+ for (let i = 0; i < length; i++) {
131
+ [item, data] = cls.itemtype.deserialize(cls.itemtype, data);
132
+ r.push(item);
133
+ }
134
+ return [r, data];
135
+ }
136
+ }
137
+
138
+ export function list(itemtype: any): List {
139
+ class ConreteList extends List {
140
+ static itemtype = itemtype;
141
+ }
142
+
143
+ return ConreteList;
144
+ }
145
+
146
+ export function LVList(itemtype: any): List {
147
+ class LVList extends _LVList {
148
+ static itemtype = itemtype;
149
+ }
150
+
151
+ return LVList;
152
+ }
153
+
154
+ export class WordList extends List {
155
+ static override serialize(_cls: any, value: any[]): Buffer {
156
+ const data = value.map((i) => Buffer.from(uint16_t.serialize(uint16_t, i)));
157
+ return Buffer.concat(data);
158
+ }
159
+ }
160
+
161
+ class _FixedList extends List {
162
+ static override serialize(cls: any, value: any[]): Buffer {
163
+ const data = value.map((i) => cls.itemtype.serialize(cls.itemtype, i)[0]);
164
+ return Buffer.from(data);
165
+ }
166
+
167
+ static override deserialize(cls: any, data: Buffer): any[] {
168
+ let item;
169
+ const r: any[] = [];
170
+ for (let i = 0; i < cls._length; i++) {
171
+ [item, data] = cls.itemtype.deserialize(cls.itemtype, data);
172
+ r.push(item);
173
+ }
174
+ return [r, data];
175
+ }
176
+ }
177
+
178
+ export function fixed_list(
179
+ length: number,
180
+ itemtype: any,
181
+ ): {
182
+ new (): any;
183
+ deserialize(cls: any, data: Buffer): any;
184
+ } {
185
+ class FixedList extends _FixedList {
186
+ static itemtype = itemtype;
187
+ static _length = length;
188
+ }
189
+
190
+ return FixedList;
191
+ }
192
+
193
+ export class Bytes {
194
+ static serialize(_cls: any, value: any[]): Buffer {
195
+ return Buffer.from(value);
196
+ }
197
+
198
+ static deserialize(_cls: any, data: Buffer): any[] {
199
+ return [data];
200
+ }
201
+ }
@@ -0,0 +1,239 @@
1
+ /* v8 ignore start */
2
+
3
+ import {Bytes, LVBytes, LVList, WordList, fixed_list, int8s, list, uint8_t, uint16_t, uint24_t, uint32_t, uint64_t, uint_t} from "./basic";
4
+ import {
5
+ Bool,
6
+ EmberApsOption,
7
+ EmberBindingType,
8
+ EmberConcentratorType,
9
+ EmberConfigTxPowerMode,
10
+ EmberCounterType,
11
+ EmberCurrentSecurityBitmask,
12
+ EmberDerivedKeyType,
13
+ EmberDeviceUpdate,
14
+ EmberEUI64,
15
+ EmberEventUnits,
16
+ EmberGpKeyType,
17
+ EmberGpSecurityLevel,
18
+ EmberIncomingMessageType,
19
+ EmberInitialSecurityBitmask,
20
+ EmberJoinDecision,
21
+ EmberJoinMethod,
22
+ EmberKeyStatus,
23
+ EmberKeyStructBitmask,
24
+ EmberKeyType,
25
+ EmberLibraryStatus,
26
+ EmberMacPassthroughType,
27
+ EmberMulticastId,
28
+ EmberNetworkInitBitmask,
29
+ EmberNetworkStatus,
30
+ EmberNodeId,
31
+ EmberNodeType,
32
+ EmberOutgoingMessageType,
33
+ EmberPanId,
34
+ EmberRf4ceApplicationCapabilities,
35
+ EmberRf4ceNodeCapabilities,
36
+ EmberRf4ceTxOption,
37
+ EmberStackError,
38
+ EmberStatus,
39
+ EmberZDOCmd,
40
+ EmberZdoConfigurationFlags,
41
+ EmberZllKeyIndex,
42
+ EmberZllState,
43
+ EzspConfigId,
44
+ EzspDecisionId,
45
+ EzspEndpointFlags,
46
+ EzspExtendedValueId,
47
+ EzspMfgTokenId,
48
+ EzspNetworkScanType,
49
+ EzspPolicyId,
50
+ EzspSourceRouteOverheadInformation,
51
+ EzspStatus,
52
+ EzspValueId,
53
+ EzspZllNetworkOperation,
54
+ NcpResetCode,
55
+ SLStatus,
56
+ SecureEzspRandomNumber,
57
+ SecureEzspSecurityLevel,
58
+ SecureEzspSecurityType,
59
+ SecureEzspSessionId,
60
+ } from "./named";
61
+ import {
62
+ EmberAesMmoHashContext,
63
+ EmberApsFrame,
64
+ EmberBindingTableEntry,
65
+ EmberCertificate283k1Data,
66
+ EmberCertificateData,
67
+ EmberCurrentSecurityState,
68
+ EmberGpAddress,
69
+ EmberGpSinkListEntry,
70
+ EmberInitialSecurityState,
71
+ EmberKeyData,
72
+ EmberKeyStruct,
73
+ EmberMessageDigest,
74
+ EmberMultiAddress,
75
+ EmberMulticastTableEntry,
76
+ EmberNeighborTableEntry,
77
+ EmberNeighbors,
78
+ EmberNetworkInitStruct,
79
+ EmberNetworkParameters,
80
+ EmberNodeDescriptor,
81
+ EmberPrivateKey283k1Data,
82
+ EmberPrivateKeyData,
83
+ EmberPublicKey283k1Data,
84
+ EmberPublicKeyData,
85
+ EmberRf4ceApplicationInfo,
86
+ EmberRf4cePairingTableEntry,
87
+ EmberRf4ceVendorInfo,
88
+ EmberRouteTableEntry,
89
+ EmberRoutingTable,
90
+ EmberRoutingTableEntry,
91
+ EmberSecurityManagerContext,
92
+ EmberSecurityManagerNetworkKeyInfo,
93
+ EmberSignature283k1Data,
94
+ EmberSignatureData,
95
+ EmberSimpleDescriptor,
96
+ EmberSmacData,
97
+ EmberTokTypeStackZllData,
98
+ EmberTokTypeStackZllSecurity,
99
+ EmberZigbeeNetwork,
100
+ EmberZllAddressAssignment,
101
+ EmberZllDeviceInfoRecord,
102
+ EmberZllInitialSecurityState,
103
+ EmberZllNetwork,
104
+ EmberZllSecurityAlgorithmData,
105
+ EzspStruct,
106
+ } from "./struct";
107
+
108
+ export function deserialize(payload: any, schema: any[]): any[] {
109
+ const result = [];
110
+ let value;
111
+ let data = payload;
112
+ for (const type of schema) {
113
+ [value, data] = type.deserialize(type, data);
114
+ result.push(value);
115
+ }
116
+ return [result, data];
117
+ }
118
+
119
+ export function serialize(data: any[], schema: {serialize: (schema: any, item: any) => Buffer}[]): Buffer {
120
+ return Buffer.concat(schema.map((s, idx) => s.serialize(s, data[idx])));
121
+ }
122
+
123
+ export {
124
+ /* Basic Types */
125
+ int8s,
126
+ uint_t,
127
+ uint8_t,
128
+ uint16_t,
129
+ uint24_t,
130
+ uint32_t,
131
+ uint64_t,
132
+ LVBytes,
133
+ list,
134
+ LVList,
135
+ fixed_list,
136
+ WordList,
137
+ Bytes,
138
+ /* Named Types */
139
+ NcpResetCode,
140
+ EmberRf4ceTxOption,
141
+ EmberRf4ceNodeCapabilities,
142
+ EmberRf4ceApplicationCapabilities,
143
+ EmberNodeId,
144
+ EmberPanId,
145
+ EmberMulticastId,
146
+ EmberEUI64,
147
+ EmberLibraryStatus,
148
+ SecureEzspSecurityType,
149
+ SecureEzspSecurityLevel,
150
+ EmberGpSecurityLevel,
151
+ EmberGpKeyType,
152
+ SecureEzspRandomNumber,
153
+ SecureEzspSessionId,
154
+ Bool,
155
+ EzspConfigId,
156
+ EzspValueId,
157
+ EzspExtendedValueId,
158
+ EzspEndpointFlags,
159
+ EmberConfigTxPowerMode,
160
+ EzspPolicyId,
161
+ EzspDecisionId,
162
+ EzspMfgTokenId,
163
+ EzspStatus,
164
+ EmberStatus,
165
+ SLStatus,
166
+ EmberStackError,
167
+ EmberEventUnits,
168
+ EmberNodeType,
169
+ EmberNetworkStatus,
170
+ EmberIncomingMessageType,
171
+ EmberOutgoingMessageType,
172
+ EmberMacPassthroughType,
173
+ EmberBindingType,
174
+ EmberApsOption,
175
+ EzspNetworkScanType,
176
+ EmberJoinDecision,
177
+ EmberInitialSecurityBitmask,
178
+ EmberCurrentSecurityBitmask,
179
+ EmberKeyType,
180
+ EmberKeyStructBitmask,
181
+ EmberDeviceUpdate,
182
+ EmberKeyStatus,
183
+ EmberCounterType,
184
+ EmberJoinMethod,
185
+ EmberZdoConfigurationFlags,
186
+ EmberConcentratorType,
187
+ EmberZllState,
188
+ EmberZllKeyIndex,
189
+ EzspZllNetworkOperation,
190
+ EzspSourceRouteOverheadInformation,
191
+ EmberNetworkInitBitmask,
192
+ EmberZDOCmd,
193
+ EmberDerivedKeyType,
194
+ /* Structs */
195
+ EzspStruct,
196
+ EmberNetworkParameters,
197
+ EmberZigbeeNetwork,
198
+ EmberApsFrame,
199
+ EmberBindingTableEntry,
200
+ EmberMulticastTableEntry,
201
+ EmberKeyData,
202
+ EmberCertificateData,
203
+ EmberPublicKeyData,
204
+ EmberPrivateKeyData,
205
+ EmberSmacData,
206
+ EmberSignatureData,
207
+ EmberCertificate283k1Data,
208
+ EmberPublicKey283k1Data,
209
+ EmberPrivateKey283k1Data,
210
+ EmberSignature283k1Data,
211
+ EmberMessageDigest,
212
+ EmberAesMmoHashContext,
213
+ EmberNeighborTableEntry,
214
+ EmberRouteTableEntry,
215
+ EmberInitialSecurityState,
216
+ EmberCurrentSecurityState,
217
+ EmberKeyStruct,
218
+ EmberNetworkInitStruct,
219
+ EmberZllSecurityAlgorithmData,
220
+ EmberZllNetwork,
221
+ EmberZllInitialSecurityState,
222
+ EmberZllDeviceInfoRecord,
223
+ EmberZllAddressAssignment,
224
+ EmberTokTypeStackZllData,
225
+ EmberTokTypeStackZllSecurity,
226
+ EmberRf4ceVendorInfo,
227
+ EmberRf4ceApplicationInfo,
228
+ EmberRf4cePairingTableEntry,
229
+ EmberGpAddress,
230
+ EmberGpSinkListEntry,
231
+ EmberNodeDescriptor,
232
+ EmberSimpleDescriptor,
233
+ EmberMultiAddress,
234
+ EmberNeighbors,
235
+ EmberRoutingTable,
236
+ EmberRoutingTableEntry,
237
+ EmberSecurityManagerContext,
238
+ EmberSecurityManagerNetworkKeyInfo,
239
+ };