@willieee802/zigbee-herdsman 0.19.21 → 0.36.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 (523) hide show
  1. package/.babelrc.js +0 -4
  2. package/.release-please-manifest.json +1 -2
  3. package/CHANGELOG.md +462 -0
  4. package/README.md +1 -1
  5. package/dist/adapter/adapter.d.ts +61 -61
  6. package/dist/adapter/adapter.d.ts.map +1 -1
  7. package/dist/adapter/adapter.js +158 -153
  8. package/dist/adapter/adapter.js.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +68 -68
  10. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  11. package/dist/adapter/deconz/adapter/deconzAdapter.js +1081 -1060
  12. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  13. package/dist/adapter/deconz/adapter/index.d.ts +2 -2
  14. package/dist/adapter/deconz/adapter/index.js +10 -10
  15. package/dist/adapter/deconz/driver/constants.d.ts +104 -104
  16. package/dist/adapter/deconz/driver/constants.js +55 -55
  17. package/dist/adapter/deconz/driver/driver.d.ts +81 -81
  18. package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
  19. package/dist/adapter/deconz/driver/driver.js +750 -732
  20. package/dist/adapter/deconz/driver/driver.js.map +1 -1
  21. package/dist/adapter/deconz/driver/frame.d.ts +6 -6
  22. package/dist/adapter/deconz/driver/frame.js +13 -13
  23. package/dist/adapter/deconz/driver/frameParser.d.ts +2 -2
  24. package/dist/adapter/deconz/driver/frameParser.js +443 -443
  25. package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
  26. package/dist/adapter/deconz/driver/parser.d.ts +12 -12
  27. package/dist/adapter/deconz/driver/parser.js +63 -61
  28. package/dist/adapter/deconz/driver/parser.js.map +1 -1
  29. package/dist/adapter/deconz/driver/writer.d.ts +8 -8
  30. package/dist/adapter/deconz/driver/writer.js +44 -44
  31. package/dist/adapter/ember/adapter/emberAdapter.d.ts +810 -0
  32. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -0
  33. package/dist/adapter/ember/adapter/emberAdapter.js +2970 -0
  34. package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -0
  35. package/dist/adapter/ember/adapter/endpoints.d.ts +25 -0
  36. package/dist/adapter/ember/adapter/endpoints.d.ts.map +1 -0
  37. package/dist/adapter/ember/adapter/endpoints.js +66 -0
  38. package/dist/adapter/ember/adapter/endpoints.js.map +1 -0
  39. package/dist/adapter/ember/adapter/index.d.ts +3 -0
  40. package/dist/adapter/ember/adapter/index.d.ts.map +1 -0
  41. package/dist/adapter/ember/adapter/index.js +6 -0
  42. package/dist/adapter/ember/adapter/index.js.map +1 -0
  43. package/dist/adapter/ember/adapter/oneWaitress.d.ts +100 -0
  44. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -0
  45. package/dist/adapter/ember/adapter/oneWaitress.js +227 -0
  46. package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -0
  47. package/dist/adapter/ember/adapter/requestQueue.d.ts +59 -0
  48. package/dist/adapter/ember/adapter/requestQueue.d.ts.map +1 -0
  49. package/dist/adapter/ember/adapter/requestQueue.js +144 -0
  50. package/dist/adapter/ember/adapter/requestQueue.js.map +1 -0
  51. package/dist/adapter/ember/adapter/tokensManager.d.ts +69 -0
  52. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -0
  53. package/dist/adapter/ember/adapter/tokensManager.js +685 -0
  54. package/dist/adapter/ember/adapter/tokensManager.js.map +1 -0
  55. package/dist/adapter/ember/consts.d.ts +198 -0
  56. package/dist/adapter/ember/consts.d.ts.map +1 -0
  57. package/dist/adapter/ember/consts.js +253 -0
  58. package/dist/adapter/ember/consts.js.map +1 -0
  59. package/dist/adapter/ember/enums.d.ts +2174 -0
  60. package/dist/adapter/ember/enums.d.ts.map +1 -0
  61. package/dist/adapter/ember/enums.js +2377 -0
  62. package/dist/adapter/ember/enums.js.map +1 -0
  63. package/dist/adapter/ember/ezsp/buffalo.d.ts +156 -0
  64. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +1 -0
  65. package/dist/adapter/ember/ezsp/buffalo.js +1033 -0
  66. package/dist/adapter/ember/ezsp/buffalo.js.map +1 -0
  67. package/dist/adapter/ember/ezsp/consts.d.ts +116 -0
  68. package/dist/adapter/ember/ezsp/consts.d.ts.map +1 -0
  69. package/dist/adapter/ember/ezsp/consts.js +128 -0
  70. package/dist/adapter/ember/ezsp/consts.js.map +1 -0
  71. package/dist/adapter/ember/ezsp/enums.d.ts +879 -0
  72. package/dist/adapter/ember/ezsp/enums.d.ts.map +1 -0
  73. package/dist/adapter/ember/ezsp/enums.js +948 -0
  74. package/dist/adapter/ember/ezsp/enums.js.map +1 -0
  75. package/dist/adapter/ember/ezsp/ezsp.d.ts +2663 -0
  76. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -0
  77. package/dist/adapter/ember/ezsp/ezsp.js +6435 -0
  78. package/dist/adapter/ember/ezsp/ezsp.js.map +1 -0
  79. package/dist/adapter/ember/types.d.ts +733 -0
  80. package/dist/adapter/ember/types.d.ts.map +1 -0
  81. package/dist/adapter/ember/types.js +3 -0
  82. package/dist/adapter/ember/types.js.map +1 -0
  83. package/dist/adapter/ember/uart/ash.d.ts +458 -0
  84. package/dist/adapter/ember/uart/ash.d.ts.map +1 -0
  85. package/dist/adapter/ember/uart/ash.js +1601 -0
  86. package/dist/adapter/ember/uart/ash.js.map +1 -0
  87. package/dist/adapter/ember/uart/consts.d.ts +91 -0
  88. package/dist/adapter/ember/uart/consts.d.ts.map +1 -0
  89. package/dist/adapter/ember/uart/consts.js +100 -0
  90. package/dist/adapter/ember/uart/consts.js.map +1 -0
  91. package/dist/adapter/ember/uart/enums.d.ts +191 -0
  92. package/dist/adapter/ember/uart/enums.d.ts.map +1 -0
  93. package/dist/adapter/ember/uart/enums.js +197 -0
  94. package/dist/adapter/ember/uart/enums.js.map +1 -0
  95. package/dist/adapter/ember/uart/parser.d.ts +10 -0
  96. package/dist/adapter/ember/uart/parser.d.ts.map +1 -0
  97. package/dist/adapter/ember/uart/parser.js +41 -0
  98. package/dist/adapter/ember/uart/parser.js.map +1 -0
  99. package/dist/adapter/ember/uart/queues.d.ts +85 -0
  100. package/dist/adapter/ember/uart/queues.d.ts.map +1 -0
  101. package/dist/adapter/ember/uart/queues.js +212 -0
  102. package/dist/adapter/ember/uart/queues.js.map +1 -0
  103. package/dist/adapter/ember/uart/writer.d.ts +15 -0
  104. package/dist/adapter/ember/uart/writer.d.ts.map +1 -0
  105. package/dist/adapter/ember/uart/writer.js +48 -0
  106. package/dist/adapter/ember/uart/writer.js.map +1 -0
  107. package/dist/adapter/ember/utils/initters.d.ts +20 -0
  108. package/dist/adapter/ember/utils/initters.d.ts.map +1 -0
  109. package/dist/adapter/ember/utils/initters.js +58 -0
  110. package/dist/adapter/ember/utils/initters.js.map +1 -0
  111. package/dist/adapter/ember/utils/math.d.ts +51 -0
  112. package/dist/adapter/ember/utils/math.d.ts.map +1 -0
  113. package/dist/adapter/ember/utils/math.js +102 -0
  114. package/dist/adapter/ember/utils/math.js.map +1 -0
  115. package/dist/adapter/ember/zdo.d.ts +921 -0
  116. package/dist/adapter/ember/zdo.d.ts.map +1 -0
  117. package/dist/adapter/ember/zdo.js +723 -0
  118. package/dist/adapter/ember/zdo.js.map +1 -0
  119. package/dist/adapter/events.d.ts +47 -47
  120. package/dist/adapter/events.js +13 -14
  121. package/dist/adapter/events.js.map +1 -1
  122. package/dist/adapter/ezsp/adapter/backup.d.ts +13 -9
  123. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  124. package/dist/adapter/ezsp/adapter/backup.js +104 -53
  125. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  126. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +61 -60
  127. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  128. package/dist/adapter/ezsp/adapter/ezspAdapter.js +626 -608
  129. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
  130. package/dist/adapter/ezsp/adapter/index.d.ts +2 -2
  131. package/dist/adapter/ezsp/adapter/index.js +10 -10
  132. package/dist/adapter/ezsp/driver/commands.d.ts +36 -36
  133. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  134. package/dist/adapter/ezsp/driver/commands.js +2388 -2359
  135. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  136. package/dist/adapter/ezsp/driver/consts.d.ts +10 -10
  137. package/dist/adapter/ezsp/driver/consts.js +13 -13
  138. package/dist/adapter/ezsp/driver/driver.d.ts +111 -101
  139. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  140. package/dist/adapter/ezsp/driver/driver.js +816 -638
  141. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  142. package/dist/adapter/ezsp/driver/ezsp.d.ts +105 -96
  143. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  144. package/dist/adapter/ezsp/driver/ezsp.js +652 -586
  145. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  146. package/dist/adapter/ezsp/driver/frame.d.ts +40 -0
  147. package/dist/adapter/ezsp/driver/frame.d.ts.map +1 -0
  148. package/dist/adapter/ezsp/driver/frame.js +101 -0
  149. package/dist/adapter/ezsp/driver/frame.js.map +1 -0
  150. package/dist/adapter/ezsp/driver/index.d.ts +3 -3
  151. package/dist/adapter/ezsp/driver/index.js +8 -8
  152. package/dist/adapter/ezsp/driver/multicast.d.ts +12 -12
  153. package/dist/adapter/ezsp/driver/multicast.js +77 -72
  154. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  155. package/dist/adapter/ezsp/driver/parser.d.ts +11 -12
  156. package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
  157. package/dist/adapter/ezsp/driver/parser.js +104 -111
  158. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  159. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  160. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  161. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  162. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  163. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  164. package/dist/adapter/ezsp/driver/types/index.js +138 -133
  165. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  166. package/dist/adapter/ezsp/driver/types/named.d.ts +1287 -697
  167. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  168. package/dist/adapter/ezsp/driver/types/named.js +2329 -1726
  169. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  170. package/dist/adapter/ezsp/driver/types/struct.d.ts +270 -251
  171. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  172. package/dist/adapter/ezsp/driver/types/struct.js +803 -708
  173. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  174. package/dist/adapter/ezsp/driver/uart.d.ts +48 -44
  175. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  176. package/dist/adapter/ezsp/driver/uart.js +382 -368
  177. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  178. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  179. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  180. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  181. package/dist/adapter/ezsp/driver/utils/index.d.ts +19 -18
  182. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +1 -1
  183. package/dist/adapter/ezsp/driver/utils/index.js +72 -67
  184. package/dist/adapter/ezsp/driver/utils/index.js.map +1 -1
  185. package/dist/adapter/ezsp/driver/writer.d.ts +13 -13
  186. package/dist/adapter/ezsp/driver/writer.d.ts.map +1 -1
  187. package/dist/adapter/ezsp/driver/writer.js +85 -88
  188. package/dist/adapter/ezsp/driver/writer.js.map +1 -1
  189. package/dist/adapter/index.d.ts +4 -4
  190. package/dist/adapter/index.js +35 -35
  191. package/dist/adapter/serialPort.d.ts +13 -8
  192. package/dist/adapter/serialPort.d.ts.map +1 -1
  193. package/dist/adapter/serialPort.js +46 -22
  194. package/dist/adapter/serialPort.js.map +1 -1
  195. package/dist/adapter/serialPortUtils.d.ts +12 -12
  196. package/dist/adapter/serialPortUtils.js +18 -18
  197. package/dist/adapter/serialPortUtils.js.map +1 -1
  198. package/dist/adapter/socketPortUtils.d.ts +10 -10
  199. package/dist/adapter/socketPortUtils.js +16 -16
  200. package/dist/adapter/tstype.d.ts +85 -85
  201. package/dist/adapter/tstype.d.ts.map +1 -1
  202. package/dist/adapter/tstype.js +2 -2
  203. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +62 -62
  204. package/dist/adapter/z-stack/adapter/adapter-backup.js +462 -461
  205. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  206. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  207. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  208. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  209. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  210. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  211. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  212. package/dist/adapter/z-stack/adapter/index.js +8 -8
  213. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  214. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  215. package/dist/adapter/z-stack/adapter/manager.js +482 -476
  216. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  217. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  218. package/dist/adapter/z-stack/adapter/tstype.js +9 -10
  219. package/dist/adapter/z-stack/adapter/tstype.js.map +1 -1
  220. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  221. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  222. package/dist/adapter/z-stack/adapter/zStackAdapter.js +885 -868
  223. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  224. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  225. package/dist/adapter/z-stack/constants/af.js +27 -27
  226. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  227. package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
  228. package/dist/adapter/z-stack/constants/common.js +292 -289
  229. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  230. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  231. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  232. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  233. package/dist/adapter/z-stack/constants/index.js +47 -47
  234. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  235. package/dist/adapter/z-stack/constants/mac.js +129 -129
  236. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  237. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  238. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  239. package/dist/adapter/z-stack/constants/sys.js +73 -73
  240. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  241. package/dist/adapter/z-stack/constants/util.js +83 -83
  242. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  243. package/dist/adapter/z-stack/constants/utils.js +14 -14
  244. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  245. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  246. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  247. package/dist/adapter/z-stack/models/index.js +17 -17
  248. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  249. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  250. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  251. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  252. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  253. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  254. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  255. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  256. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  257. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  258. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  259. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  260. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  261. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  262. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  263. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  264. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  265. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  266. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  267. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  268. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  269. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  270. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  271. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  272. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  273. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  274. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  275. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  276. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  277. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  278. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  279. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  280. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  281. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  282. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  283. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  284. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  285. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  286. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  287. package/dist/adapter/z-stack/structs/index.js +20 -20
  288. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  289. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  290. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  291. package/dist/adapter/z-stack/structs/struct.js +296 -295
  292. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  293. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  294. package/dist/adapter/z-stack/structs/table.js +163 -161
  295. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  296. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  297. package/dist/adapter/z-stack/unpi/constants.js +39 -41
  298. package/dist/adapter/z-stack/unpi/constants.js.map +1 -1
  299. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  300. package/dist/adapter/z-stack/unpi/frame.js +54 -48
  301. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  302. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  303. package/dist/adapter/z-stack/unpi/index.js +37 -37
  304. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  305. package/dist/adapter/z-stack/unpi/parser.js +75 -74
  306. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  307. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  308. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  309. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  310. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  311. package/dist/adapter/z-stack/utils/channel-list.js.map +1 -1
  312. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  313. package/dist/adapter/z-stack/utils/index.js +18 -18
  314. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  315. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  316. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  317. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  318. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  319. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  320. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  321. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  322. package/dist/adapter/z-stack/znp/index.js +10 -10
  323. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  324. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  325. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  326. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  327. package/dist/adapter/z-stack/znp/znp.d.ts +44 -43
  328. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  329. package/dist/adapter/z-stack/znp/znp.js +326 -325
  330. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  331. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  332. package/dist/adapter/z-stack/znp/zpiObject.js +102 -96
  333. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  334. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  335. package/dist/adapter/zigate/adapter/index.js +10 -10
  336. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +70 -70
  337. package/dist/adapter/zigate/adapter/zigateAdapter.js +689 -684
  338. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  339. package/dist/adapter/zigate/debug.d.ts +7 -7
  340. package/dist/adapter/zigate/debug.d.ts.map +1 -1
  341. package/dist/adapter/zigate/debug.js +19 -22
  342. package/dist/adapter/zigate/debug.js.map +1 -1
  343. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  344. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  345. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  346. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  347. package/dist/adapter/zigate/driver/commandType.js +385 -385
  348. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  349. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  350. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  351. package/dist/adapter/zigate/driver/constants.js +371 -371
  352. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  353. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  354. package/dist/adapter/zigate/driver/frame.js +172 -172
  355. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  356. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  357. package/dist/adapter/zigate/driver/messageType.js +278 -278
  358. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  359. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  360. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  361. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  362. package/dist/adapter/zigate/driver/ziGateObject.js +110 -106
  363. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  364. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  365. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  366. package/dist/adapter/zigate/driver/zigate.js +296 -303
  367. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  368. package/dist/buffalo/buffalo.d.ts +50 -50
  369. package/dist/buffalo/buffalo.js +324 -322
  370. package/dist/buffalo/buffalo.js.map +1 -1
  371. package/dist/buffalo/index.d.ts +3 -3
  372. package/dist/buffalo/index.js +33 -33
  373. package/dist/buffalo/tstype.d.ts +8 -8
  374. package/dist/buffalo/tstype.js +2 -2
  375. package/dist/controller/controller.d.ts +113 -113
  376. package/dist/controller/controller.d.ts.map +1 -1
  377. package/dist/controller/controller.js +641 -619
  378. package/dist/controller/controller.js.map +1 -1
  379. package/dist/controller/database.d.ts +18 -18
  380. package/dist/controller/database.js +96 -93
  381. package/dist/controller/database.js.map +1 -1
  382. package/dist/controller/events.d.ts +58 -58
  383. package/dist/controller/events.d.ts.map +1 -1
  384. package/dist/controller/events.js +108 -102
  385. package/dist/controller/events.js.map +1 -1
  386. package/dist/controller/greenPower.d.ts +12 -12
  387. package/dist/controller/greenPower.js +221 -220
  388. package/dist/controller/greenPower.js.map +1 -1
  389. package/dist/controller/helpers/index.d.ts +2 -2
  390. package/dist/controller/helpers/index.js +28 -28
  391. package/dist/controller/helpers/request.d.ts +21 -22
  392. package/dist/controller/helpers/request.d.ts.map +1 -1
  393. package/dist/controller/helpers/request.js +77 -71
  394. package/dist/controller/helpers/request.js.map +1 -1
  395. package/dist/controller/helpers/requestQueue.d.ts +13 -0
  396. package/dist/controller/helpers/requestQueue.d.ts.map +1 -0
  397. package/dist/controller/helpers/requestQueue.js +116 -0
  398. package/dist/controller/helpers/requestQueue.js.map +1 -0
  399. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  400. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  401. package/dist/controller/helpers/zclFrameConverter.js +50 -31
  402. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  403. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  404. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  405. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  406. package/dist/controller/index.d.ts +5 -5
  407. package/dist/controller/index.js +8 -8
  408. package/dist/controller/logger-stub.d.ts +6 -6
  409. package/dist/controller/logger-stub.js +2 -2
  410. package/dist/controller/model/device.d.ts +132 -133
  411. package/dist/controller/model/device.d.ts.map +1 -1
  412. package/dist/controller/model/device.js +726 -717
  413. package/dist/controller/model/device.js.map +1 -1
  414. package/dist/controller/model/endpoint.d.ts +128 -131
  415. package/dist/controller/model/endpoint.d.ts.map +1 -1
  416. package/dist/controller/model/endpoint.js +755 -821
  417. package/dist/controller/model/endpoint.js.map +1 -1
  418. package/dist/controller/model/entity.d.ts +14 -14
  419. package/dist/controller/model/entity.js +26 -26
  420. package/dist/controller/model/entity.js.map +1 -1
  421. package/dist/controller/model/group.d.ts +38 -38
  422. package/dist/controller/model/group.d.ts.map +1 -1
  423. package/dist/controller/model/group.js +225 -221
  424. package/dist/controller/model/group.js.map +1 -1
  425. package/dist/controller/model/index.d.ts +5 -5
  426. package/dist/controller/model/index.js +14 -14
  427. package/dist/controller/touchlink.d.ts +19 -19
  428. package/dist/controller/touchlink.js +159 -157
  429. package/dist/controller/touchlink.js.map +1 -1
  430. package/dist/controller/tstype.d.ts +20 -21
  431. package/dist/controller/tstype.d.ts.map +1 -1
  432. package/dist/controller/tstype.js +8 -9
  433. package/dist/controller/tstype.js.map +1 -1
  434. package/dist/index.d.ts +3 -3
  435. package/dist/index.js +33 -33
  436. package/dist/models/backup-storage-legacy.d.ts +26 -26
  437. package/dist/models/backup-storage-legacy.js +2 -2
  438. package/dist/models/backup-storage-unified.d.ts +49 -49
  439. package/dist/models/backup-storage-unified.js +2 -2
  440. package/dist/models/backup.d.ts +37 -37
  441. package/dist/models/backup.js +2 -2
  442. package/dist/models/index.d.ts +4 -4
  443. package/dist/models/index.js +20 -20
  444. package/dist/models/network-options.d.ts +12 -12
  445. package/dist/models/network-options.js +2 -2
  446. package/dist/utils/assertString.d.ts +2 -2
  447. package/dist/utils/assertString.js +8 -8
  448. package/dist/utils/assertString.js.map +1 -1
  449. package/dist/utils/backup.d.ts +20 -20
  450. package/dist/utils/backup.d.ts.map +1 -1
  451. package/dist/utils/backup.js +189 -187
  452. package/dist/utils/backup.js.map +1 -1
  453. package/dist/utils/equalsPartial.d.ts +2 -2
  454. package/dist/utils/equalsPartial.js +11 -11
  455. package/dist/utils/index.d.ts +9 -9
  456. package/dist/utils/index.js +45 -45
  457. package/dist/utils/isNumberArray.d.ts +2 -2
  458. package/dist/utils/isNumberArray.js +6 -6
  459. package/dist/utils/queue.d.ts +11 -11
  460. package/dist/utils/queue.d.ts.map +1 -1
  461. package/dist/utils/queue.js +61 -50
  462. package/dist/utils/queue.js.map +1 -1
  463. package/dist/utils/realpathSync.d.ts +2 -2
  464. package/dist/utils/realpathSync.js +12 -12
  465. package/dist/utils/wait.d.ts +2 -2
  466. package/dist/utils/wait.js +8 -8
  467. package/dist/utils/waitress.d.ts +21 -21
  468. package/dist/utils/waitress.d.ts.map +1 -1
  469. package/dist/utils/waitress.js +68 -61
  470. package/dist/utils/waitress.js.map +1 -1
  471. package/dist/zcl/buffaloZcl.d.ts +41 -41
  472. package/dist/zcl/buffaloZcl.d.ts.map +1 -1
  473. package/dist/zcl/buffaloZcl.js +594 -591
  474. package/dist/zcl/buffaloZcl.js.map +1 -1
  475. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  476. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  477. package/dist/zcl/definition/cluster.d.ts +29 -29
  478. package/dist/zcl/definition/cluster.d.ts.map +1 -1
  479. package/dist/zcl/definition/cluster.js +5530 -5335
  480. package/dist/zcl/definition/cluster.js.map +1 -1
  481. package/dist/zcl/definition/dataType.d.ts +59 -59
  482. package/dist/zcl/definition/dataType.js +64 -64
  483. package/dist/zcl/definition/direction.d.ts +5 -5
  484. package/dist/zcl/definition/direction.js +8 -8
  485. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  486. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  487. package/dist/zcl/definition/foundation.d.ts +11 -11
  488. package/dist/zcl/definition/foundation.js +167 -167
  489. package/dist/zcl/definition/frameControl.d.ts +10 -10
  490. package/dist/zcl/definition/frameControl.js +2 -2
  491. package/dist/zcl/definition/frameType.d.ts +5 -5
  492. package/dist/zcl/definition/frameType.js +8 -8
  493. package/dist/zcl/definition/index.d.ts +13 -13
  494. package/dist/zcl/definition/index.js +51 -51
  495. package/dist/zcl/definition/manufacturerCode.d.ts +1077 -1074
  496. package/dist/zcl/definition/manufacturerCode.d.ts.map +1 -1
  497. package/dist/zcl/definition/manufacturerCode.js +1082 -1079
  498. package/dist/zcl/definition/manufacturerCode.js.map +1 -1
  499. package/dist/zcl/definition/powerSource.d.ts +4 -4
  500. package/dist/zcl/definition/powerSource.js +12 -12
  501. package/dist/zcl/definition/status.d.ts +38 -38
  502. package/dist/zcl/definition/status.js +41 -41
  503. package/dist/zcl/definition/tstype.d.ts +16 -16
  504. package/dist/zcl/definition/tstype.js +2 -2
  505. package/dist/zcl/index.d.ts +16 -16
  506. package/dist/zcl/index.js +55 -55
  507. package/dist/zcl/tstype.d.ts +56 -56
  508. package/dist/zcl/tstype.js +9 -10
  509. package/dist/zcl/tstype.js.map +1 -1
  510. package/dist/zcl/utils.d.ts +6 -6
  511. package/dist/zcl/utils.js +164 -165
  512. package/dist/zcl/utils.js.map +1 -1
  513. package/dist/zcl/zclFrame.d.ts +40 -40
  514. package/dist/zcl/zclFrame.js +351 -347
  515. package/dist/zcl/zclFrame.js.map +1 -1
  516. package/dist/zcl/zclHeader.d.ts +8 -8
  517. package/dist/zcl/zclHeader.js +2 -2
  518. package/dist/zcl/zclStatusError.d.ts +5 -5
  519. package/dist/zcl/zclStatusError.js +14 -13
  520. package/dist/zcl/zclStatusError.js.map +1 -1
  521. package/package.json +11 -11
  522. package/release-please-config.json +1 -5
  523. package/tsconfig.json +4 -2
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EmberOneWaitress = void 0;
7
+ /* istanbul ignore file */
8
+ const es6_1 = __importDefault(require("fast-deep-equal/es6"));
9
+ const consts_1 = require("../consts");
10
+ const zdo_1 = require("../zdo");
11
+ ;
12
+ /**
13
+ * The one waitress to rule them all. Hopefully.
14
+ * Careful, she'll burn you if you're late on delivery!
15
+ *
16
+ * NOTE: `messageTag` is unreliable, so not used...
17
+ */
18
+ class EmberOneWaitress {
19
+ waiters;
20
+ // NOTE: for now, this could be much simpler (array-like), but more complex events might come into play
21
+ eventWaiters;
22
+ currentId;
23
+ currentEventId;
24
+ constructor() {
25
+ this.waiters = new Map();
26
+ this.eventWaiters = new Map();
27
+ this.currentId = 0;
28
+ this.currentEventId = 0;
29
+ }
30
+ /**
31
+ * Reject because of failed delivery notified by `ezspMessageSentHandler`.
32
+ * NOTE: This checks for APS sequence, which is only valid in `ezspMessageSentHandler`, not `ezspIncomingMessageHandler` (sequence from stack)
33
+ *
34
+ * @param target
35
+ * @param apsFrame
36
+ * @returns
37
+ */
38
+ deliveryFailedFor(target, apsFrame) {
39
+ for (const [index, waiter] of this.waiters.entries()) {
40
+ if (waiter.timedout) {
41
+ this.waiters.delete(index);
42
+ continue;
43
+ }
44
+ // no target in touchlink
45
+ // in `ezspMessageSentHandler`, the clusterId for ZDO is still the request one, so check against apsFrame, not override
46
+ if (((waiter.matcher.apsFrame.profileId === consts_1.TOUCHLINK_PROFILE_ID) || (target === waiter.matcher.target))
47
+ && (apsFrame.sequence === waiter.matcher.apsFrame.sequence) && (apsFrame.profileId === waiter.matcher.apsFrame.profileId)
48
+ && (apsFrame.clusterId === waiter.matcher.apsFrame.clusterId)) {
49
+ clearTimeout(waiter.timer);
50
+ waiter.resolved = true;
51
+ this.waiters.delete(index);
52
+ waiter.reject(new Error(`Delivery failed for ${JSON.stringify(apsFrame)}`));
53
+ return true;
54
+ }
55
+ }
56
+ return false;
57
+ }
58
+ /**
59
+ * Resolve or reject ZDO response based on given status.
60
+ * @param status
61
+ * @param sender
62
+ * @param apsFrame
63
+ * @param payload
64
+ * @returns
65
+ */
66
+ resolveZDO(status, sender, apsFrame, payload) {
67
+ for (const [index, waiter] of this.waiters.entries()) {
68
+ if (waiter.timedout) {
69
+ this.waiters.delete(index);
70
+ continue;
71
+ }
72
+ // always a sender expected in ZDO, profileId is a bit redundant here, but...
73
+ if ((sender === waiter.matcher.target) && (apsFrame.profileId === waiter.matcher.apsFrame.profileId)
74
+ && (apsFrame.clusterId === (waiter.matcher.responseClusterId != null ?
75
+ waiter.matcher.responseClusterId : waiter.matcher.apsFrame.clusterId))) {
76
+ clearTimeout(waiter.timer);
77
+ waiter.resolved = true;
78
+ this.waiters.delete(index);
79
+ if (status === zdo_1.EmberZdoStatus.ZDP_SUCCESS) {
80
+ waiter.resolve(payload);
81
+ }
82
+ else if (status === zdo_1.EmberZdoStatus.ZDP_NO_ENTRY) {
83
+ // XXX: bypassing fail here since Z2M seems to trigger ZDO remove-type commands without checking current state
84
+ // Z2M also fails with ZCL payload NOT_FOUND though. This should be removed once upstream fixes that.
85
+ console.log(`[ZDO] Received status ZDP_NO_ENTRY for "${sender}" cluster "${apsFrame.clusterId}". Ignoring.`);
86
+ waiter.resolve(payload);
87
+ }
88
+ else {
89
+ waiter.reject(new Error(`[ZDO] Failed response by NCP for "${sender}" cluster "${apsFrame.clusterId}" `
90
+ + `with status=${zdo_1.EmberZdoStatus[status]}.`));
91
+ }
92
+ return true;
93
+ }
94
+ }
95
+ return false;
96
+ }
97
+ resolveZCL(payload) {
98
+ for (const [index, waiter] of this.waiters.entries()) {
99
+ if (waiter.timedout) {
100
+ this.waiters.delete(index);
101
+ continue;
102
+ }
103
+ // no target in touchlink, also no APS sequence, but use the ZCL one instead
104
+ if (((waiter.matcher.apsFrame.profileId === consts_1.TOUCHLINK_PROFILE_ID) || (payload.address === waiter.matcher.target))
105
+ && (!waiter.matcher.zclSequence || (payload.frame.Header.transactionSequenceNumber === waiter.matcher.zclSequence))
106
+ && (!waiter.matcher.commandIdentifier || (payload.frame.Header.commandIdentifier === waiter.matcher.commandIdentifier))
107
+ && (payload.frame.Cluster.ID === waiter.matcher.apsFrame.clusterId)
108
+ && (payload.endpoint === waiter.matcher.apsFrame.destinationEndpoint)) {
109
+ clearTimeout(waiter.timer);
110
+ waiter.resolved = true;
111
+ this.waiters.delete(index);
112
+ waiter.resolve(payload);
113
+ return true;
114
+ }
115
+ }
116
+ return false;
117
+ }
118
+ waitFor(matcher, timeout) {
119
+ const id = this.currentId++;
120
+ this.currentId &= 0xFFFF; // roll-over every so often - 65535 should be enough not to create conflicts ;-)
121
+ const promise = new Promise((resolve, reject) => {
122
+ const object = { matcher, resolve, reject, timedout: false, resolved: false, id };
123
+ this.waiters.set(id, object);
124
+ });
125
+ const start = () => {
126
+ const waiter = this.waiters.get(id);
127
+ if (waiter && !waiter.resolved && !waiter.timer) {
128
+ // Capture the stack trace from the caller of start()
129
+ const error = new Error();
130
+ Error.captureStackTrace(error);
131
+ waiter.timer = setTimeout(() => {
132
+ error.message = `${JSON.stringify(matcher)} timed out after ${timeout}ms`;
133
+ waiter.timedout = true;
134
+ waiter.reject(error);
135
+ }, timeout);
136
+ }
137
+ return { promise, id };
138
+ };
139
+ return { id, start };
140
+ }
141
+ /**
142
+ * Shortcut that starts the timer immediately and returns the promise.
143
+ * No access to `id`, so no easy cancel.
144
+ * @param matcher
145
+ * @param timeout
146
+ * @returns
147
+ */
148
+ startWaitingFor(matcher, timeout) {
149
+ return this.waitFor(matcher, timeout).start().promise;
150
+ }
151
+ remove(id) {
152
+ const waiter = this.waiters.get(id);
153
+ if (waiter) {
154
+ if (!waiter.timedout && waiter.timer) {
155
+ clearTimeout(waiter.timer);
156
+ }
157
+ this.waiters.delete(id);
158
+ }
159
+ }
160
+ /**
161
+ * Matches event name with matcher's, and payload (if any in matcher) using `fast-deep-equal/es6` (all keys & values must match)
162
+ * @param eventName
163
+ * @param payload
164
+ * @returns
165
+ */
166
+ resolveEvent(eventName, payload) {
167
+ for (const [index, waiter] of this.eventWaiters.entries()) {
168
+ if (waiter.timedout) {
169
+ this.eventWaiters.delete(index);
170
+ continue;
171
+ }
172
+ if (eventName === waiter.matcher.eventName && (!waiter.matcher.payload || ((0, es6_1.default)(payload, waiter.matcher.payload)))) {
173
+ clearTimeout(waiter.timer);
174
+ waiter.resolved = true;
175
+ this.eventWaiters.delete(index);
176
+ waiter.resolve(payload);
177
+ return true;
178
+ }
179
+ }
180
+ }
181
+ waitForEvent(matcher, timeout, reason = null) {
182
+ // NOTE: logic is very much the same as `waitFor`, just different matcher
183
+ const id = this.currentEventId++;
184
+ this.currentEventId &= 0xFFFF; // roll-over every so often - 65535 should be enough not to create conflicts ;-)
185
+ const promise = new Promise((resolve, reject) => {
186
+ const object = { matcher, resolve, reject, timedout: false, resolved: false, id };
187
+ this.eventWaiters.set(id, object);
188
+ });
189
+ const start = () => {
190
+ const waiter = this.eventWaiters.get(id);
191
+ if (waiter && !waiter.resolved && !waiter.timer) {
192
+ // Capture the stack trace from the caller of start()
193
+ const error = new Error();
194
+ Error.captureStackTrace(error);
195
+ waiter.timer = setTimeout(() => {
196
+ error.message = `${reason ? reason : JSON.stringify(matcher)} timed out after ${timeout}ms`;
197
+ waiter.timedout = true;
198
+ waiter.reject(error);
199
+ }, timeout);
200
+ }
201
+ return { promise, id };
202
+ };
203
+ return { id, start };
204
+ }
205
+ /**
206
+ * Shortcut that starts the timer immediately and returns the promise.
207
+ * No access to `id`, so no easy cancel.
208
+ * @param matcher
209
+ * @param timeout
210
+ * @param reason If supplied, will be used as timeout label, otherwise stringified matcher is.
211
+ * @returns
212
+ */
213
+ startWaitingForEvent(matcher, timeout, reason = null) {
214
+ return this.waitForEvent(matcher, timeout, reason).start().promise;
215
+ }
216
+ removeEvent(id) {
217
+ const waiter = this.eventWaiters.get(id);
218
+ if (waiter) {
219
+ if (!waiter.timedout && waiter.timer) {
220
+ clearTimeout(waiter.timer);
221
+ }
222
+ this.eventWaiters.delete(id);
223
+ }
224
+ }
225
+ }
226
+ exports.EmberOneWaitress = EmberOneWaitress;
227
+ //# sourceMappingURL=oneWaitress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oneWaitress.js","sourceRoot":"","sources":["../../../../src/adapter/ember/adapter/oneWaitress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { EmberStatus } from "../enums";
2
+ export declare const NETWORK_BUSY_DEFER_MSEC = 500;
3
+ export declare const NETWORK_DOWN_DEFER_MSEC = 1500;
4
+ export declare class EmberRequestQueue {
5
+ private readonly dispatchInterval;
6
+ /** Interval handler that manages `dispatch()` */
7
+ private dispatchHandler;
8
+ /** If true, the queue is currently busy dispatching. */
9
+ private dispatching;
10
+ /** The queue holding requests to be sent. */
11
+ private queue;
12
+ /** Queue with requests that should take priority over the above queue. */
13
+ private priorityQueue;
14
+ constructor(dispatchInterval: number);
15
+ /**
16
+ * Empty each queue.
17
+ */
18
+ clear(): void;
19
+ /**
20
+ * Prevent sending requests (usually due to NCP being reset).
21
+ */
22
+ stopDispatching(): void;
23
+ /**
24
+ * Allow sending requests.
25
+ * Must be called after init.
26
+ */
27
+ startDispatching(): void;
28
+ /**
29
+ * Store a function in the queue to be resolved when appropriate.
30
+ * @param function The function to enqueue. Upon dispatch:
31
+ * - if its return value is one of MAX_MESSAGE_LIMIT_REACHED, NETWORK_BUSY, NETWORK_DOWN,
32
+ * queue will defer dispatching and keep the function in the queue; reject otherwise.
33
+ * - if it throws, it is expected to throw `EzspStatus`, and will act same as above if one of NOT_CONNECTED, NO_TX_SPACE; reject otherwise.
34
+ * - any other value will result in the function being removed from the queue.
35
+ * @param reject The `reject` of the Promise wrapping the `enqueue` call
36
+ * (`resolve` is done in `func` directly to have typing on results & control on exec).
37
+ * @param prioritize If true, function will be enqueued in the priority queue. Defaults to false.
38
+ * @returns new length of the queue.
39
+ */
40
+ enqueue(func: () => Promise<EmberStatus>, reject: (reason: Error) => void, prioritize?: boolean): number;
41
+ /**
42
+ * Dispatch the head of the queue.
43
+ *
44
+ * If request `func` throws, catch error and reject the request. `ezsp${x}` functions throw `EzspStatus` as error.
45
+ *
46
+ * If request `func` resolves but has an error, look at what error, and determine if should retry or remove the request from queue.
47
+ *
48
+ * If request `func` resolves without error, remove request from queue.
49
+ *
50
+ * WARNING: Because of this logic for "internal retries", any error thrown by `func` will not immediatedly bubble back to Adapter/Controller
51
+ */
52
+ dispatch(): Promise<void>;
53
+ /**
54
+ * Defer dispatching for the specified duration (in msec).
55
+ * @param msec
56
+ */
57
+ defer(msec: number): void;
58
+ }
59
+ //# sourceMappingURL=requestQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestQueue.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ember/adapter/requestQueue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAa,MAAM,UAAU,CAAC;AAgBjD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,iDAAiD;IACjD,OAAO,CAAC,eAAe,CAAiB;IACxC,wDAAwD;IACxD,OAAO,CAAC,WAAW,CAAU;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAA2B;IACxC,0EAA0E;IAC1E,OAAO,CAAC,aAAa,CAA2B;gBAEpC,gBAAgB,EAAE,MAAM;IAOpC;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,eAAe,IAAI,IAAI;IAM9B;;;OAGG;IACI,gBAAgB,IAAI,IAAI;IAM/B;;;;;;;;;;;OAWG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,UAAU,GAAE,OAAe,GAAG,MAAM;IAStH;;;;;;;;;;OAUG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDtC;;;OAGG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAKnC"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EmberRequestQueue = exports.NETWORK_DOWN_DEFER_MSEC = exports.NETWORK_BUSY_DEFER_MSEC = void 0;
7
+ /* istanbul ignore file */
8
+ const debug_1 = __importDefault(require("debug"));
9
+ const enums_1 = require("../enums");
10
+ const debug = (0, debug_1.default)('zigbee-herdsman:adapter:ember:queue');
11
+ ;
12
+ exports.NETWORK_BUSY_DEFER_MSEC = 500;
13
+ exports.NETWORK_DOWN_DEFER_MSEC = 1500;
14
+ class EmberRequestQueue {
15
+ dispatchInterval;
16
+ /** Interval handler that manages `dispatch()` */
17
+ dispatchHandler;
18
+ /** If true, the queue is currently busy dispatching. */
19
+ dispatching;
20
+ /** The queue holding requests to be sent. */
21
+ queue;
22
+ /** Queue with requests that should take priority over the above queue. */
23
+ priorityQueue;
24
+ constructor(dispatchInterval) {
25
+ this.dispatchInterval = dispatchInterval || 5;
26
+ this.dispatching = false;
27
+ this.queue = [];
28
+ this.priorityQueue = [];
29
+ }
30
+ /**
31
+ * Empty each queue.
32
+ */
33
+ clear() {
34
+ this.queue = [];
35
+ this.priorityQueue = [];
36
+ }
37
+ /**
38
+ * Prevent sending requests (usually due to NCP being reset).
39
+ */
40
+ stopDispatching() {
41
+ clearInterval(this.dispatchHandler);
42
+ debug(`Dispatching stopped; queue=${this.queue.length} priorityQueue=${this.priorityQueue.length}`);
43
+ }
44
+ /**
45
+ * Allow sending requests.
46
+ * Must be called after init.
47
+ */
48
+ startDispatching() {
49
+ this.dispatchHandler = setInterval(this.dispatch.bind(this), this.dispatchInterval);
50
+ debug(`Dispatching started.`);
51
+ }
52
+ /**
53
+ * Store a function in the queue to be resolved when appropriate.
54
+ * @param function The function to enqueue. Upon dispatch:
55
+ * - if its return value is one of MAX_MESSAGE_LIMIT_REACHED, NETWORK_BUSY, NETWORK_DOWN,
56
+ * queue will defer dispatching and keep the function in the queue; reject otherwise.
57
+ * - if it throws, it is expected to throw `EzspStatus`, and will act same as above if one of NOT_CONNECTED, NO_TX_SPACE; reject otherwise.
58
+ * - any other value will result in the function being removed from the queue.
59
+ * @param reject The `reject` of the Promise wrapping the `enqueue` call
60
+ * (`resolve` is done in `func` directly to have typing on results & control on exec).
61
+ * @param prioritize If true, function will be enqueued in the priority queue. Defaults to false.
62
+ * @returns new length of the queue.
63
+ */
64
+ enqueue(func, reject, prioritize = false) {
65
+ debug(`Status queue=${this.queue.length} priorityQueue=${this.priorityQueue.length}.`);
66
+ return (prioritize ? this.priorityQueue : this.queue).push({
67
+ sendAttempts: 0,
68
+ func,
69
+ reject,
70
+ });
71
+ }
72
+ /**
73
+ * Dispatch the head of the queue.
74
+ *
75
+ * If request `func` throws, catch error and reject the request. `ezsp${x}` functions throw `EzspStatus` as error.
76
+ *
77
+ * If request `func` resolves but has an error, look at what error, and determine if should retry or remove the request from queue.
78
+ *
79
+ * If request `func` resolves without error, remove request from queue.
80
+ *
81
+ * WARNING: Because of this logic for "internal retries", any error thrown by `func` will not immediatedly bubble back to Adapter/Controller
82
+ */
83
+ async dispatch() {
84
+ if (this.dispatching) {
85
+ return;
86
+ }
87
+ let fromPriorityQueue = true;
88
+ let entry = this.priorityQueue[0]; // head of queue if any, priority first
89
+ if (!entry) {
90
+ fromPriorityQueue = false;
91
+ entry = this.queue[0];
92
+ }
93
+ if (entry) {
94
+ this.dispatching = true;
95
+ entry.sendAttempts++;
96
+ // NOTE: refer to `enqueue()` comment to keep logic in sync with expectations, adjust comment on change.
97
+ try {
98
+ const status = (await entry.func());
99
+ if ((status === enums_1.EmberStatus.MAX_MESSAGE_LIMIT_REACHED) || (status === enums_1.EmberStatus.NETWORK_BUSY)) {
100
+ debug(`Dispatching deferred: NCP busy.`);
101
+ this.defer(exports.NETWORK_BUSY_DEFER_MSEC);
102
+ }
103
+ else if (status === enums_1.EmberStatus.NETWORK_DOWN) {
104
+ debug(`Dispatching deferred: Network not ready`);
105
+ this.defer(exports.NETWORK_DOWN_DEFER_MSEC);
106
+ }
107
+ else {
108
+ // success
109
+ (fromPriorityQueue ? this.priorityQueue : this.queue).shift();
110
+ if (status !== enums_1.EmberStatus.SUCCESS) {
111
+ entry.reject(new Error(enums_1.EmberStatus[status]));
112
+ }
113
+ }
114
+ }
115
+ catch (err) { // message is EzspStatus string from ezsp${x} commands, except for stuff rejected by OneWaitress, but that's never "retry"
116
+ if (err.message === enums_1.EzspStatus[enums_1.EzspStatus.NO_TX_SPACE]) {
117
+ debug(`Dispatching deferred: Host busy.`);
118
+ this.defer(exports.NETWORK_BUSY_DEFER_MSEC);
119
+ }
120
+ else if (err.message === enums_1.EzspStatus[enums_1.EzspStatus.NOT_CONNECTED]) {
121
+ debug(`Dispatching deferred: Network not ready`);
122
+ this.defer(exports.NETWORK_DOWN_DEFER_MSEC);
123
+ }
124
+ else {
125
+ (fromPriorityQueue ? this.priorityQueue : this.queue).shift();
126
+ entry.reject(err);
127
+ }
128
+ }
129
+ finally {
130
+ this.dispatching = false;
131
+ }
132
+ }
133
+ }
134
+ /**
135
+ * Defer dispatching for the specified duration (in msec).
136
+ * @param msec
137
+ */
138
+ defer(msec) {
139
+ this.stopDispatching();
140
+ setTimeout(this.startDispatching.bind(this), msec);
141
+ }
142
+ }
143
+ exports.EmberRequestQueue = EmberRequestQueue;
144
+ //# sourceMappingURL=requestQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestQueue.js","sourceRoot":"","sources":["../../../../src/adapter/ember/adapter/requestQueue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /// <reference types="node" />
2
+ import { EmberStatus } from "../enums";
3
+ import { Ezsp } from "../ezsp/ezsp";
4
+ export declare class EmberTokensManager {
5
+ /**
6
+ * Host-only API to check whether the NCP uses key storage.
7
+ *
8
+ * @returns false if keys are in classic key storage, and true if they are located in PSA key storage.
9
+ */
10
+ private static ncpUsesPSAKeyStorage;
11
+ /**
12
+ * Matcher for Zigbeed tokens.
13
+ * @param nvm3Key
14
+ * @returns
15
+ */
16
+ private static getCreatorFromNvm3Key;
17
+ /**
18
+ * Saves tokens. Only for NVM3-based NCP.
19
+ *
20
+ * The binary file format to save the tokens are
21
+ *
22
+ * Number of Tokens (1 byte)
23
+ * Token0 (4 bytes) Token0Size(1 byte) Token0ArraySize(1 byte) Token0Data(Token0Size * Token0ArraySize)
24
+ * :
25
+ * :
26
+ * TokenM (4 bytes) TokenMSize(1 byte) TokenMArraySize(1 byte) TokenMData(TokenMSize * TokenMArraySize)
27
+ *
28
+ * @param localEui64 Used in place of blank `restoredEui64` keys
29
+ *
30
+ * @return Saved tokens buffer or null.
31
+ */
32
+ static saveTokens(ezsp: Ezsp, localEui64: Buffer): Promise<Buffer>;
33
+ /**
34
+ * Restores tokens. Only for NVM3-based NCP.
35
+ * XXX: If a previous backup from an NVM3 NCP is attempted on a non-NVM3 NCP,
36
+ * it should just fail (LIBRARY_NOT_PRESENT all on token-related functions).
37
+ *
38
+ * @see EmberTokensManager.saveTokens() for format
39
+ *
40
+ * @return EmberStatus status code
41
+ */
42
+ static restoreTokens(ezsp: Ezsp, inBuffer: Buffer): Promise<EmberStatus>;
43
+ /**
44
+ * Secure key storage needs to export the keys first so backup file has them.
45
+ *
46
+ * @param tokenData EmberTokenData* [IN/OUT]
47
+ * @param nvm3Key uint32_t
48
+ * @param index uint8_t
49
+ * @returns
50
+ */
51
+ private static saveKeysToData;
52
+ /**
53
+ *
54
+ * @param data_s EmberTokenData*
55
+ * @param nvm3Key uint32_t
56
+ * @param index uint8_t
57
+ * @returns
58
+ *
59
+ * @from sli_zigbee_af_trust_center_backup_restore_keys_from_data
60
+ */
61
+ private static restoreKeysFromData;
62
+ /**
63
+ * Updates zigbeed tokens from a backup of NCP tokens.
64
+ *
65
+ * @return EmberStatus status code
66
+ */
67
+ static writeNcpTokensToZigbeedTokens(ezsp: Ezsp, inBuffer: Buffer): Promise<EmberStatus>;
68
+ }
69
+ //# sourceMappingURL=tokensManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokensManager.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ember/adapter/tokensManager.ts"],"names":[],"mappings":";AAKA,OAAO,EAAC,WAAW,EAAkD,MAAM,UAAU,CAAC;AAGtF,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AA+RlC,qBAAa,kBAAkB;IAE3B;;;;OAIG;mBACkB,oBAAoB;IAUzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC;;;;;;;;;;;;;;OAcG;WACiB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0E/E;;;;;;;;OAQG;WACiB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkDrF;;;;;;;OAOG;mBACkB,cAAc;IA2HnC;;;;;;;;OAQG;mBACkB,mBAAmB;IA2HxC;;;;OAIG;WACiB,6BAA6B,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAoCxG"}