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,103 @@
1
+ const ZDO = {
2
+ status: {
3
+ SUCCESS: 0,
4
+ INVALID_REQTYPE: 128,
5
+ DEVICE_NOT_FOUND: 129,
6
+ INVALID_EP: 130,
7
+ NOT_ACTIVE: 131,
8
+ NOT_SUPPORTED: 132,
9
+ TIMEOUT: 133,
10
+ NO_MATCH: 134,
11
+ NO_ENTRY: 136,
12
+ NO_DESCRIPTOR: 137,
13
+ INSUFFICIENT_SPACE: 138,
14
+ NOT_PERMITTED: 139,
15
+ TABLE_FULL: 140,
16
+ NOT_AUTHORIZED: 141,
17
+ BINDING_TABLE_FULL: 142,
18
+ },
19
+ initDev: {
20
+ RESTORED_NETWORK_STATE: 0,
21
+ NEW_NETWORK_STATE: 1,
22
+ LEAVE_NOT_STARTED: 2,
23
+ },
24
+ serverCapability: {
25
+ NOT_SUPPORTED: 0,
26
+ PRIM_TRUST_CENTER: 1,
27
+ BKUP_TRUST_CENTER: 2,
28
+ PRIM_BIND_TABLE: 4,
29
+ BKUP_BIND_TABLE: 8,
30
+ PRIM_DISC_TABLE: 16,
31
+ BKUP_DISC_TABLE: 32,
32
+ NETWORK_MANAGER: 64,
33
+ },
34
+ appDevVer: {
35
+ VER_100: 0,
36
+ RESERVE01: 1,
37
+ RESERVE02: 2,
38
+ RESERVE03: 3,
39
+ RESERVE04: 4,
40
+ RESERVE05: 5,
41
+ RESERVE06: 6,
42
+ RESERVE07: 7,
43
+ RESERVE08: 8,
44
+ RESERVE09: 9,
45
+ RESERVE10: 10,
46
+ RESERVE11: 11,
47
+ RESERVE12: 12,
48
+ RESERVE13: 13,
49
+ RESERVE14: 14,
50
+ RESERVE15: 15,
51
+ },
52
+ stackProfileId: {
53
+ NETWORK_SPECIFIC: 0,
54
+ HOME_CONTROLS: 1,
55
+ ZIGBEEPRO_PROFILE: 2,
56
+ GENERIC_STAR: 3,
57
+ GENERIC_TREE: 4,
58
+ },
59
+ deviceLogicalType: {
60
+ COORDINATOR: 0,
61
+ ROUTER: 1,
62
+ ENDDEVICE: 2,
63
+ COMPLEX_DESC_AVAIL: 4,
64
+ USER_DESC_AVAIL: 8,
65
+ RESERVED1: 16,
66
+ RESERVED2: 32,
67
+ RESERVED3: 64,
68
+ RESERVED4: 128,
69
+ },
70
+ addrReqType: {
71
+ SINGLE: 0,
72
+ EXTENDED: 1,
73
+ },
74
+ leaveAndRemoveChild: {
75
+ NONE: 0,
76
+ LEAVE_REMOVE_CHILDREN: 1,
77
+ },
78
+ leaveIndRequest: {
79
+ INDICATION: 0,
80
+ REQUEST: 1,
81
+ },
82
+ leaveIndRemove: {
83
+ NONE: 0,
84
+ REMOVE_CHILDREN: 1,
85
+ },
86
+ leaveIndRejoin: {
87
+ NONE: 0,
88
+ REJOIN: 1,
89
+ },
90
+ descCapability: {
91
+ EXT_LIST_NOT_SUPPORTED: 0,
92
+ EXT_ACTIVE_EP_LIST_AVAIL: 1,
93
+ EXT_SIMPLE_DESC_LIST_AVAIL: 2,
94
+ RESERVED1: 4,
95
+ RESERVED2: 8,
96
+ RESERVED3: 16,
97
+ RESERVED4: 32,
98
+ RESERVED5: 64,
99
+ RESERVED6: 128,
100
+ },
101
+ };
102
+
103
+ export default ZDO;
@@ -0,0 +1,13 @@
1
+ import type {TsType} from "../../";
2
+ import type {ZnpVersion} from "../adapter/tstype";
3
+
4
+ /**
5
+ * Startup options structure is used by `zStackAdapter` to pass configuration to adapter manager.
6
+ */
7
+ export interface StartupOptions {
8
+ version: ZnpVersion;
9
+ networkOptions: TsType.NetworkOptions;
10
+ greenPowerGroup: number;
11
+ backupPath: string;
12
+ adapterOptions: TsType.AdapterOptions;
13
+ }
@@ -0,0 +1,44 @@
1
+ import {Struct} from "../struct";
2
+
3
+ /**
4
+ * Address manager entry flags present in `user` field.
5
+ *
6
+ * *Definition from Z-Stack 3.0.2 `ADdrMgr.h`*
7
+ */
8
+ export enum AddressManagerUser {
9
+ /* ADDRMGR_USER_DEFAULT */
10
+ Default = 0x00,
11
+
12
+ /* ADDRMGR_USER_ASSOC */
13
+ Assoc = 0x01,
14
+
15
+ /* ADDRMGR_USER_SECURITY */
16
+ Security = 0x02,
17
+
18
+ /* ADDRMGR_USER_BINDING */
19
+ Binding = 0x04,
20
+
21
+ /* ADDRMGR_USER_PRIVATE1 */
22
+ Private1 = 0x08,
23
+ }
24
+
25
+ const emptyAddress1 = Buffer.alloc(8, 0x00);
26
+ const emptyAddress2 = Buffer.alloc(8, 0xff);
27
+
28
+ /**
29
+ * Creates an address manager entry.
30
+ *
31
+ * *Definition from Z-Stack 3.0.2 `AddrMgr.h`*
32
+ * *The `uint16` index field is not physically present.*
33
+ *
34
+ * @param data Data to initialize structure with.
35
+ */
36
+ export const addressManagerEntry = (data?: Buffer) => {
37
+ return Struct.new()
38
+ .member("uint8", "user")
39
+ .member("uint16", "nwkAddr")
40
+ .member("uint8array-reversed", "extAddr", 8)
41
+ .method("isSet", Boolean.prototype, (e) => e.user !== 0x00 && !e.extAddr.equals(emptyAddress1) && !e.extAddr.equals(emptyAddress2))
42
+ .padding(0xff)
43
+ .build(data);
44
+ };
@@ -0,0 +1,19 @@
1
+ import assert from "node:assert";
2
+
3
+ import type {StructMemoryAlignment} from "../struct";
4
+ import {Table} from "../table";
5
+ import {addressManagerEntry} from "./address-manager-entry";
6
+
7
+ /**
8
+ * Creates an address manager inline table present within Z-Stack NV memory.
9
+ *
10
+ * @param data Data to initialize table with.
11
+ * @param alignment Memory alignment of initialization data.
12
+ */
13
+ export const addressManagerTable = (dataOrCapacity?: Buffer | Buffer[] | number, alignment: StructMemoryAlignment = "unaligned") => {
14
+ const table = Table.new<ReturnType<typeof addressManagerEntry>>()
15
+ .struct(addressManagerEntry)
16
+ .occupancy((e) => e.isSet() as boolean);
17
+ assert(dataOrCapacity !== undefined, "dataOrCapacity cannot be undefined");
18
+ return typeof dataOrCapacity === "number" ? table.build(dataOrCapacity) : table.build(dataOrCapacity, alignment);
19
+ };
@@ -0,0 +1,12 @@
1
+ import {Struct} from "../struct";
2
+
3
+ /**
4
+ * Creates a APS Link Key Data Entry.
5
+ *
6
+ * *Definition from Z-Stack 3.0.2 `APSMEDE.h`*
7
+ *
8
+ * @param data Data to initialize structure with.
9
+ */
10
+ export const apsLinkKeyDataEntry = (data?: Buffer) => {
11
+ return Struct.new().member("uint8array", "key", 16).member("uint32", "txFrmCntr").member("uint32", "rxFrmCntr").build(data);
12
+ };
@@ -0,0 +1,21 @@
1
+ import assert from "node:assert";
2
+
3
+ import type {StructMemoryAlignment} from "../struct";
4
+ import {Table} from "../table";
5
+ import {apsLinkKeyDataEntry} from "./aps-link-key-data-entry";
6
+
7
+ const emptyKey = Buffer.alloc(16, 0x00);
8
+
9
+ /**
10
+ * Creates an APS link key data table.
11
+ *
12
+ * @param data Data to initialize table with.
13
+ * @param alignment Memory alignment of initialization data.
14
+ */
15
+ export const apsLinkKeyDataTable = (dataOrCapacity?: Buffer | Buffer[] | number, alignment: StructMemoryAlignment = "unaligned") => {
16
+ const table = Table.new<ReturnType<typeof apsLinkKeyDataEntry>>()
17
+ .struct(apsLinkKeyDataEntry)
18
+ .occupancy((e) => !e.key.equals(emptyKey));
19
+ assert(dataOrCapacity !== undefined, "dataOrCapacity cannot be undefined");
20
+ return typeof dataOrCapacity === "number" ? table.build(dataOrCapacity) : table.build(dataOrCapacity, alignment);
21
+ };
@@ -0,0 +1,19 @@
1
+ import {Struct} from "../struct";
2
+
3
+ /**
4
+ * Creates a APS ME Trust Center Link Key NV Entry struct.
5
+ *
6
+ * *Definition from Z-Stack 3.0.2 `APSMEDE.h`*
7
+ *
8
+ * @param data Data to initialize structure with.
9
+ */
10
+ export const apsTcLinkKeyEntry = (data?: Buffer) => {
11
+ return Struct.new()
12
+ .member("uint32", "txFrmCntr")
13
+ .member("uint32", "rxFrmCntr")
14
+ .member("uint8array-reversed", "extAddr", 8)
15
+ .member("uint8", "keyAttributes")
16
+ .member("uint8", "keyType")
17
+ .member("uint8", "SeedShift_IcIndex")
18
+ .build(data);
19
+ };
@@ -0,0 +1,21 @@
1
+ import assert from "node:assert";
2
+
3
+ import type {StructMemoryAlignment} from "../struct";
4
+ import {Table} from "../table";
5
+ import {apsTcLinkKeyEntry} from "./aps-tc-link-key-entry";
6
+
7
+ const emptyAddress = Buffer.alloc(8, 0x00);
8
+
9
+ /**
10
+ * Creates an APS trust center link key data table.
11
+ *
12
+ * @param data Data to initialize table with.
13
+ * @param alignment Memory alignment of initialization data.
14
+ */
15
+ export const apsTcLinkKeyTable = (dataOrCapacity?: Buffer | Buffer[] | number, alignment: StructMemoryAlignment = "unaligned") => {
16
+ const table = Table.new<ReturnType<typeof apsTcLinkKeyEntry>>()
17
+ .struct(apsTcLinkKeyEntry)
18
+ .occupancy((e) => !e.extAddr.equals(emptyAddress));
19
+ assert(dataOrCapacity !== undefined, "dataOrCapacity cannot be undefined");
20
+ return typeof dataOrCapacity === "number" ? table.build(dataOrCapacity) : table.build(dataOrCapacity, alignment);
21
+ };
@@ -0,0 +1,8 @@
1
+ import {Struct} from "../struct";
2
+
3
+ /**
4
+ * Creates a channel list struct.
5
+ *
6
+ * @param data Data to initialize structure with.
7
+ */
8
+ export const channelList = (data?: Buffer) => Struct.new().member("uint32", "channelList").build(data);
@@ -0,0 +1,16 @@
1
+ import assert from "node:assert";
2
+
3
+ import {Struct} from "../struct";
4
+
5
+ /**
6
+ * Creates a zigbee-herdsman `hasConfigured` struct.
7
+ *
8
+ * @param data Data to initialize structure with.
9
+ */
10
+ export const hasConfigured = (data?: Buffer | Buffer[]) => {
11
+ assert(!Array.isArray(data));
12
+ return Struct.new()
13
+ .member("uint8", "hasConfigured")
14
+ .method("isConfigured", Boolean.prototype, (struct) => struct.hasConfigured === 0x55)
15
+ .build(data);
16
+ };
@@ -0,0 +1,16 @@
1
+ export * from "./channel-list";
2
+ export * from "./has-configured";
3
+ export * from "./nib";
4
+ export * from "./nwk-key-descriptor";
5
+ export * from "./nwk-key";
6
+ export * from "./nwk-pan-id";
7
+ export * from "./nwk-sec-material-descriptor-entry";
8
+ export * from "./nwk-sec-material-descriptor-table";
9
+ export * from "./aps-tc-link-key-entry";
10
+ export * from "./aps-tc-link-key-table";
11
+ export * from "./aps-link-key-data-entry";
12
+ export * from "./aps-link-key-data-table";
13
+ export * from "./address-manager-entry";
14
+ export * from "./address-manager-table";
15
+ export * from "./security-manager-entry";
16
+ export * from "./security-manager-table";
@@ -0,0 +1,66 @@
1
+ import assert from "node:assert";
2
+
3
+ import {Struct} from "../struct";
4
+ import {nwkKeyDescriptor} from "./nwk-key-descriptor";
5
+
6
+ /**
7
+ * Creates a NIB (Network Information Base) struct.
8
+ *
9
+ * *Definition from Z-Stack 3.0.2 `nwk.h`*
10
+ *
11
+ * @param data Data to initialize structure with.
12
+ */
13
+ export const nib = (data?: Buffer | Buffer[]) => {
14
+ assert(!Array.isArray(data));
15
+ return Struct.new()
16
+ .member("uint8", "SequenceNum")
17
+ .member("uint8", "PassiveAckTimeout")
18
+ .member("uint8", "MaxBroadcastRetries")
19
+ .member("uint8", "MaxChildren")
20
+ .member("uint8", "MaxDepth")
21
+ .member("uint8", "MaxRouters")
22
+ .member("uint8", "dummyNeighborTable")
23
+ .member("uint8", "BroadcastDeliveryTime")
24
+ .member("uint8", "ReportConstantCost")
25
+ .member("uint8", "RouteDiscRetries")
26
+ .member("uint8", "dummyRoutingTable")
27
+ .member("uint8", "SecureAllFrames")
28
+ .member("uint8", "SecurityLevel")
29
+ .member("uint8", "SymLink")
30
+ .member("uint8", "CapabilityFlags")
31
+ .member("uint16", "TransactionPersistenceTime")
32
+ .member("uint8", "nwkProtocolVersion")
33
+ .member("uint8", "RouteDiscoveryTime")
34
+ .member("uint8", "RouteExpiryTime")
35
+ .member("uint16", "nwkDevAddress")
36
+ .member("uint8", "nwkLogicalChannel")
37
+ .member("uint16", "nwkCoordAddress")
38
+ .member("uint8array-reversed", "nwkCoordExtAddress", 8)
39
+ .member("uint16", "nwkPanId")
40
+ .member("uint8", "nwkState")
41
+ .member("uint32", "channelList")
42
+ .member("uint8", "beaconOrder")
43
+ .member("uint8", "superFrameOrder")
44
+ .member("uint8", "scanDuration")
45
+ .member("uint8", "battLifeExt")
46
+ .member("uint32", "allocatedRouterAddresses")
47
+ .member("uint32", "allocatedEndDeviceAddresses")
48
+ .member("uint8", "nodeDepth")
49
+ .member("uint8array-reversed", "extendedPANID", 8)
50
+ .member("uint8", "nwkKeyLoaded")
51
+ .member("struct", "spare1", nwkKeyDescriptor)
52
+ .member("struct", "spare2", nwkKeyDescriptor)
53
+ .member("uint8", "spare3")
54
+ .member("uint8", "spare4")
55
+ .member("uint8", "nwkLinkStatusPeriod")
56
+ .member("uint8", "nwkRouterAgeLimit")
57
+ .member("uint8", "nwkUseMultiCast")
58
+ .member("uint8", "nwkIsConcentrator")
59
+ .member("uint8", "nwkConcentratorDiscoveryTime")
60
+ .member("uint8", "nwkConcentratorRadius")
61
+ .member("uint8", "nwkAllFresh")
62
+ .member("uint16", "nwkManagerAddr")
63
+ .member("uint16", "nwkTotalTransmissions")
64
+ .member("uint8", "nwkUpdateId")
65
+ .build(data);
66
+ };
@@ -0,0 +1,15 @@
1
+ import assert from "node:assert";
2
+
3
+ import {Struct} from "../struct";
4
+
5
+ /**
6
+ * Creates a Security Service Provider (SSP) Network Descriptor struct.
7
+ *
8
+ * *Definition from Z-Stack 3.0.2 `ssp.h`*
9
+ *
10
+ * @param data Data to initialize structure with.
11
+ */
12
+ export const nwkKeyDescriptor = (data?: Buffer | Buffer[]) => {
13
+ assert(!Array.isArray(data));
14
+ return Struct.new().member("uint8", "keySeqNum").member("uint8array", "key", 16).build(data);
15
+ };
@@ -0,0 +1,13 @@
1
+ import assert from "node:assert";
2
+
3
+ import {Struct} from "../struct";
4
+
5
+ /**
6
+ * Creates a network key struct.
7
+ *
8
+ * @param data Data to initialize structure with.
9
+ */
10
+ export const nwkKey = (data?: Buffer | Buffer[]) => {
11
+ assert(!Array.isArray(data));
12
+ return Struct.new().member("uint8array", "key", 16).build(data);
13
+ };
@@ -0,0 +1,8 @@
1
+ import {Struct} from "../struct";
2
+
3
+ /**
4
+ * Creates a network PAN ID struct.
5
+ *
6
+ * @param data Data to initialize structure with.
7
+ */
8
+ export const nwkPanId = (data?: Buffer) => Struct.new().member("uint16", "panId").build(data);
@@ -0,0 +1,20 @@
1
+ import {Struct} from "../struct";
2
+
3
+ const emptyExtendedPanId = Buffer.alloc(8, 0x00);
4
+
5
+ /**
6
+ * Create a ZigBee Device Security Manager Security Material struct. This structure stores a frame counter
7
+ * associated with a particular Extended PAN ID used by device. Used in NV in table format:
8
+ * - `ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE` - extended table (SimpleLink Z-Stack 3.x.0)
9
+ * - `ZCD_NV_LEGACY_NWK_SEC_MATERIAL_TABLE_START` through `ZCD_NV_LEGACY_NWK_SEC_MATERIAL_TABLE_END` (Z-Stack 3.0.x)
10
+ *
11
+ * *Definition from Z-Stack 3.0.2 `ZDSecMgr.h`*
12
+ *
13
+ * @param data Data to initialize structure with.
14
+ */
15
+ export const nwkSecMaterialDescriptorEntry = (data?: Buffer) =>
16
+ Struct.new()
17
+ .member("uint32", "FrameCounter")
18
+ .member("uint8array-reversed", "extendedPanID", 8)
19
+ .method("isSet", Boolean.prototype, (struct) => !struct.extendedPanID.equals(emptyExtendedPanId))
20
+ .build(data);
@@ -0,0 +1,19 @@
1
+ import assert from "node:assert";
2
+
3
+ import type {StructMemoryAlignment} from "../struct";
4
+ import {Table} from "../table";
5
+ import {nwkSecMaterialDescriptorEntry} from "./nwk-sec-material-descriptor-entry";
6
+
7
+ /**
8
+ * Creates a network security material table.
9
+ *
10
+ * @param data Data to initialize table with.
11
+ * @param alignment Memory alignment of initialization data.
12
+ */
13
+ export const nwkSecMaterialDescriptorTable = (dataOrCapacity?: Buffer | Buffer[] | number, alignment: StructMemoryAlignment = "unaligned") => {
14
+ const table = Table.new<ReturnType<typeof nwkSecMaterialDescriptorEntry>>()
15
+ .struct(nwkSecMaterialDescriptorEntry)
16
+ .occupancy((e) => e.isSet() as boolean);
17
+ assert(dataOrCapacity !== undefined, "dataOrCapacity cannot be undefined");
18
+ return typeof dataOrCapacity === "number" ? table.build(dataOrCapacity) : table.build(dataOrCapacity, alignment);
19
+ };
@@ -0,0 +1,33 @@
1
+ import {Struct} from "../struct";
2
+
3
+ /**
4
+ * Security manager authentication options.
5
+ *
6
+ * *Definition from Z-Stack 3.0.2 `ZDSecMgr.h.h`*
7
+ */
8
+ export enum SecurityManagerAuthenticationOption {
9
+ /* ZDSecMgr_Not_Authenticated */
10
+ Default = 0x00,
11
+
12
+ /* ZDSecMgr_Authenticated_CBCK */
13
+ AuthenticatedCBCK = 0x01,
14
+
15
+ /* ZDSecMgr_Authenticated_EA */
16
+ AuthenticatedEA = 0x02,
17
+ }
18
+
19
+ /**
20
+ * Creates a security manager entry.
21
+ *
22
+ * *Definition from Z-Stack 3.0.2 `ZDSecMgr.c`*
23
+ *
24
+ * @param data Data to initialize structure with.
25
+ */
26
+ export const securityManagerEntry = (data?: Buffer) => {
27
+ return Struct.new()
28
+ .member("uint16", "ami")
29
+ .member("uint16", "keyNvId")
30
+ .member("uint8", "authenticationOption")
31
+ .default(Buffer.from("feff000000", "hex"))
32
+ .build(data);
33
+ };
@@ -0,0 +1,22 @@
1
+ import assert from "node:assert";
2
+
3
+ import type {StructMemoryAlignment} from "../struct";
4
+ import {Table} from "../table";
5
+ import {SecurityManagerAuthenticationOption, securityManagerEntry} from "./security-manager-entry";
6
+
7
+ /**
8
+ * Creates a security manager inline table present within Z-Stack NV memory.
9
+ *
10
+ * @param data Data to initialize table with.
11
+ * @param alignment Memory alignment of initialization data.
12
+ */
13
+ export const securityManagerTable = (dataOrCapacity?: Buffer | Buffer[] | number, alignment: StructMemoryAlignment = "unaligned") => {
14
+ const table = Table.new<ReturnType<typeof securityManagerEntry>>()
15
+ .struct(securityManagerEntry)
16
+ .occupancy(
17
+ (e) => ![0xfffe, 0xffff].includes(e.ami) && !(e.ami === 0x0000 && e.authenticationOption === SecurityManagerAuthenticationOption.Default),
18
+ )
19
+ .inlineHeader();
20
+ assert(dataOrCapacity !== undefined, "dataOrCapacity cannot be undefined");
21
+ return typeof dataOrCapacity === "number" ? table.build(dataOrCapacity) : table.build(dataOrCapacity, alignment);
22
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./struct";
2
+ export * from "./table";
3
+ export * from "./serializable-memory-object";
4
+ export * from "./entries";
@@ -0,0 +1,14 @@
1
+ import type {StructMemoryAlignment} from "./struct";
2
+
3
+ /**
4
+ * Interface for serializable items to be written to NV. Objects implementing this interface
5
+ * are structs and tables.
6
+ */
7
+ export interface SerializableMemoryObject {
8
+ serialize(alignment?: StructMemoryAlignment): Buffer;
9
+ }
10
+
11
+ /**
12
+ * Signature for factory returning a memory struct or a table.
13
+ */
14
+ export type MemoryObjectFactory<T> = (data?: Buffer | Buffer[], alignment?: StructMemoryAlignment) => T;