@willieee802/zigbee-herdsman 0.19.2 → 0.34.3

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 (530) hide show
  1. package/.babelrc.js +0 -4
  2. package/.release-please-manifest.json +1 -2
  3. package/CHANGELOG.md +376 -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 -146
  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 +817 -0
  32. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -0
  33. package/dist/adapter/ember/adapter/emberAdapter.js +2981 -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 +97 -0
  44. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -0
  45. package/dist/adapter/ember/adapter/oneWaitress.js +226 -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 +2184 -0
  60. package/dist/adapter/ember/enums.d.ts.map +1 -0
  61. package/dist/adapter/ember/enums.js +2391 -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 +2664 -0
  76. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -0
  77. package/dist/adapter/ember/ezsp/ezsp.js +6438 -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 +451 -0
  84. package/dist/adapter/ember/uart/ash.d.ts.map +1 -0
  85. package/dist/adapter/ember/uart/ash.js +1584 -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 +9 -9
  123. package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
  124. package/dist/adapter/ezsp/adapter/backup.js +72 -53
  125. package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
  126. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +61 -59
  127. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
  128. package/dist/adapter/ezsp/adapter/ezspAdapter.js +629 -603
  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 +106 -103
  139. package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
  140. package/dist/adapter/ezsp/driver/driver.js +731 -639
  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 +651 -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.d.ts.map +1 -1
  154. package/dist/adapter/ezsp/driver/multicast.js +77 -74
  155. package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
  156. package/dist/adapter/ezsp/driver/parser.d.ts +11 -12
  157. package/dist/adapter/ezsp/driver/parser.d.ts.map +1 -1
  158. package/dist/adapter/ezsp/driver/parser.js +104 -111
  159. package/dist/adapter/ezsp/driver/parser.js.map +1 -1
  160. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  161. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  162. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  163. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  164. package/dist/adapter/ezsp/driver/types/index.d.ts.map +1 -1
  165. package/dist/adapter/ezsp/driver/types/index.js +138 -133
  166. package/dist/adapter/ezsp/driver/types/index.js.map +1 -1
  167. package/dist/adapter/ezsp/driver/types/named.d.ts +1287 -697
  168. package/dist/adapter/ezsp/driver/types/named.d.ts.map +1 -1
  169. package/dist/adapter/ezsp/driver/types/named.js +2329 -1726
  170. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  171. package/dist/adapter/ezsp/driver/types/struct.d.ts +270 -251
  172. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +1 -1
  173. package/dist/adapter/ezsp/driver/types/struct.js +803 -708
  174. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  175. package/dist/adapter/ezsp/driver/uart.d.ts +48 -44
  176. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  177. package/dist/adapter/ezsp/driver/uart.js +382 -368
  178. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  179. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  180. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  181. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +1 -1
  182. package/dist/adapter/ezsp/driver/utils/index.d.ts +18 -18
  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 +10 -8
  192. package/dist/adapter/serialPort.d.ts.map +1 -1
  193. package/dist/adapter/serialPort.js +53 -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.d.ts.map +1 -1
  205. package/dist/adapter/z-stack/adapter/adapter-backup.js +462 -460
  206. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
  207. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  208. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  209. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +1 -1
  210. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  211. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  212. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  213. package/dist/adapter/z-stack/adapter/index.js +8 -8
  214. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  215. package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
  216. package/dist/adapter/z-stack/adapter/manager.js +482 -476
  217. package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
  218. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  219. package/dist/adapter/z-stack/adapter/tstype.js +9 -10
  220. package/dist/adapter/z-stack/adapter/tstype.js.map +1 -1
  221. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  222. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
  223. package/dist/adapter/z-stack/adapter/zStackAdapter.js +891 -868
  224. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
  225. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  226. package/dist/adapter/z-stack/constants/af.js +27 -27
  227. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  228. package/dist/adapter/z-stack/constants/common.d.ts.map +1 -1
  229. package/dist/adapter/z-stack/constants/common.js +292 -289
  230. package/dist/adapter/z-stack/constants/common.js.map +1 -1
  231. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  232. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  233. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  234. package/dist/adapter/z-stack/constants/index.js +47 -47
  235. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  236. package/dist/adapter/z-stack/constants/mac.js +129 -129
  237. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  238. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  239. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  240. package/dist/adapter/z-stack/constants/sys.js +73 -73
  241. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  242. package/dist/adapter/z-stack/constants/util.js +83 -83
  243. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  244. package/dist/adapter/z-stack/constants/utils.js +14 -14
  245. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  246. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  247. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  248. package/dist/adapter/z-stack/models/index.js +17 -17
  249. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  250. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  251. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  252. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  253. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +1 -1
  254. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  255. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  256. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  257. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  258. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  259. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  260. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  261. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  262. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  263. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  264. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  265. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  266. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  267. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  268. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  269. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  270. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  271. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  272. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  273. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  274. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  275. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  276. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  277. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  278. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  279. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  280. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  281. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  282. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  283. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  284. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +1 -1
  285. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  286. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  287. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  288. package/dist/adapter/z-stack/structs/index.js +20 -20
  289. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  290. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  291. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  292. package/dist/adapter/z-stack/structs/struct.js +296 -295
  293. package/dist/adapter/z-stack/structs/struct.js.map +1 -1
  294. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  295. package/dist/adapter/z-stack/structs/table.js +163 -161
  296. package/dist/adapter/z-stack/structs/table.js.map +1 -1
  297. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  298. package/dist/adapter/z-stack/unpi/constants.js +39 -41
  299. package/dist/adapter/z-stack/unpi/constants.js.map +1 -1
  300. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  301. package/dist/adapter/z-stack/unpi/frame.js +54 -48
  302. package/dist/adapter/z-stack/unpi/frame.js.map +1 -1
  303. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  304. package/dist/adapter/z-stack/unpi/index.js +37 -37
  305. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  306. package/dist/adapter/z-stack/unpi/parser.js +75 -74
  307. package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
  308. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  309. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  310. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  311. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  312. package/dist/adapter/z-stack/utils/channel-list.js.map +1 -1
  313. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  314. package/dist/adapter/z-stack/utils/index.js +18 -18
  315. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  316. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  317. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  318. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  319. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +1 -1
  320. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  321. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  322. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  323. package/dist/adapter/z-stack/znp/index.js +10 -10
  324. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  325. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  326. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  327. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  328. package/dist/adapter/z-stack/znp/znp.d.ts +44 -43
  329. package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
  330. package/dist/adapter/z-stack/znp/znp.js +326 -325
  331. package/dist/adapter/z-stack/znp/znp.js.map +1 -1
  332. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  333. package/dist/adapter/z-stack/znp/zpiObject.js +102 -96
  334. package/dist/adapter/z-stack/znp/zpiObject.js.map +1 -1
  335. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  336. package/dist/adapter/zigate/adapter/index.js +10 -10
  337. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +70 -69
  338. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
  339. package/dist/adapter/zigate/adapter/zigateAdapter.js +689 -678
  340. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
  341. package/dist/adapter/zigate/debug.d.ts +7 -7
  342. package/dist/adapter/zigate/debug.d.ts.map +1 -1
  343. package/dist/adapter/zigate/debug.js +19 -22
  344. package/dist/adapter/zigate/debug.js.map +1 -1
  345. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  346. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  347. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +1 -1
  348. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  349. package/dist/adapter/zigate/driver/commandType.js +385 -385
  350. package/dist/adapter/zigate/driver/commandType.js.map +1 -1
  351. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  352. package/dist/adapter/zigate/driver/constants.d.ts.map +1 -1
  353. package/dist/adapter/zigate/driver/constants.js +371 -371
  354. package/dist/adapter/zigate/driver/constants.js.map +1 -1
  355. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  356. package/dist/adapter/zigate/driver/frame.js +172 -172
  357. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  358. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  359. package/dist/adapter/zigate/driver/messageType.js +278 -278
  360. package/dist/adapter/zigate/driver/messageType.js.map +1 -1
  361. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  362. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  363. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  364. package/dist/adapter/zigate/driver/ziGateObject.js +110 -106
  365. package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
  366. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  367. package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
  368. package/dist/adapter/zigate/driver/zigate.js +296 -303
  369. package/dist/adapter/zigate/driver/zigate.js.map +1 -1
  370. package/dist/buffalo/buffalo.d.ts +50 -50
  371. package/dist/buffalo/buffalo.js +324 -322
  372. package/dist/buffalo/buffalo.js.map +1 -1
  373. package/dist/buffalo/index.d.ts +3 -3
  374. package/dist/buffalo/index.js +33 -33
  375. package/dist/buffalo/tstype.d.ts +8 -8
  376. package/dist/buffalo/tstype.js +2 -2
  377. package/dist/controller/controller.d.ts +113 -113
  378. package/dist/controller/controller.d.ts.map +1 -1
  379. package/dist/controller/controller.js +641 -619
  380. package/dist/controller/controller.js.map +1 -1
  381. package/dist/controller/database.d.ts +18 -18
  382. package/dist/controller/database.js +96 -93
  383. package/dist/controller/database.js.map +1 -1
  384. package/dist/controller/events.d.ts +58 -58
  385. package/dist/controller/events.d.ts.map +1 -1
  386. package/dist/controller/events.js +108 -101
  387. package/dist/controller/events.js.map +1 -1
  388. package/dist/controller/greenPower.d.ts +12 -12
  389. package/dist/controller/greenPower.js +221 -220
  390. package/dist/controller/greenPower.js.map +1 -1
  391. package/dist/controller/helpers/index.d.ts +2 -2
  392. package/dist/controller/helpers/index.js +28 -28
  393. package/dist/controller/helpers/request.d.ts +21 -22
  394. package/dist/controller/helpers/request.d.ts.map +1 -1
  395. package/dist/controller/helpers/request.js +77 -71
  396. package/dist/controller/helpers/request.js.map +1 -1
  397. package/dist/controller/helpers/requestQueue.d.ts +13 -0
  398. package/dist/controller/helpers/requestQueue.d.ts.map +1 -0
  399. package/dist/controller/helpers/requestQueue.js +116 -0
  400. package/dist/controller/helpers/requestQueue.js.map +1 -0
  401. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  402. package/dist/controller/helpers/zclFrameConverter.d.ts.map +1 -1
  403. package/dist/controller/helpers/zclFrameConverter.js +50 -31
  404. package/dist/controller/helpers/zclFrameConverter.js.map +1 -1
  405. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  406. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  407. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +1 -1
  408. package/dist/controller/index.d.ts +5 -5
  409. package/dist/controller/index.js +8 -8
  410. package/dist/controller/logger-stub.d.ts +6 -6
  411. package/dist/controller/logger-stub.js +2 -2
  412. package/dist/controller/model/device.d.ts +132 -133
  413. package/dist/controller/model/device.d.ts.map +1 -1
  414. package/dist/controller/model/device.js +724 -717
  415. package/dist/controller/model/device.js.map +1 -1
  416. package/dist/controller/model/endpoint.d.ts +128 -131
  417. package/dist/controller/model/endpoint.d.ts.map +1 -1
  418. package/dist/controller/model/endpoint.js +755 -816
  419. package/dist/controller/model/endpoint.js.map +1 -1
  420. package/dist/controller/model/entity.d.ts +14 -14
  421. package/dist/controller/model/entity.js +26 -26
  422. package/dist/controller/model/entity.js.map +1 -1
  423. package/dist/controller/model/group.d.ts +38 -38
  424. package/dist/controller/model/group.d.ts.map +1 -1
  425. package/dist/controller/model/group.js +225 -221
  426. package/dist/controller/model/group.js.map +1 -1
  427. package/dist/controller/model/index.d.ts +5 -5
  428. package/dist/controller/model/index.js +14 -14
  429. package/dist/controller/touchlink.d.ts +19 -19
  430. package/dist/controller/touchlink.js +159 -157
  431. package/dist/controller/touchlink.js.map +1 -1
  432. package/dist/controller/tstype.d.ts +20 -21
  433. package/dist/controller/tstype.d.ts.map +1 -1
  434. package/dist/controller/tstype.js +8 -9
  435. package/dist/controller/tstype.js.map +1 -1
  436. package/dist/index.d.ts +3 -3
  437. package/dist/index.js +33 -33
  438. package/dist/models/backup-storage-legacy.d.ts +26 -26
  439. package/dist/models/backup-storage-legacy.js +2 -2
  440. package/dist/models/backup-storage-unified.d.ts +49 -49
  441. package/dist/models/backup-storage-unified.js +2 -2
  442. package/dist/models/backup.d.ts +37 -37
  443. package/dist/models/backup.js +2 -2
  444. package/dist/models/index.d.ts +4 -4
  445. package/dist/models/index.js +20 -20
  446. package/dist/models/network-options.d.ts +12 -12
  447. package/dist/models/network-options.js +2 -2
  448. package/dist/utils/assertString.d.ts +2 -2
  449. package/dist/utils/assertString.js +8 -8
  450. package/dist/utils/assertString.js.map +1 -1
  451. package/dist/utils/backup.d.ts +20 -20
  452. package/dist/utils/backup.d.ts.map +1 -1
  453. package/dist/utils/backup.js +189 -187
  454. package/dist/utils/backup.js.map +1 -1
  455. package/dist/utils/equalsPartial.d.ts +2 -2
  456. package/dist/utils/equalsPartial.js +11 -11
  457. package/dist/utils/index.d.ts +9 -9
  458. package/dist/utils/index.js +45 -45
  459. package/dist/utils/isNumberArray.d.ts +2 -2
  460. package/dist/utils/isNumberArray.js +6 -6
  461. package/dist/utils/queue.d.ts +11 -11
  462. package/dist/utils/queue.d.ts.map +1 -1
  463. package/dist/utils/queue.js +61 -50
  464. package/dist/utils/queue.js.map +1 -1
  465. package/dist/utils/realpathSync.d.ts +2 -2
  466. package/dist/utils/realpathSync.js +12 -12
  467. package/dist/utils/wait.d.ts +2 -2
  468. package/dist/utils/wait.js +8 -8
  469. package/dist/utils/waitress.d.ts +21 -21
  470. package/dist/utils/waitress.d.ts.map +1 -1
  471. package/dist/utils/waitress.js +68 -61
  472. package/dist/utils/waitress.js.map +1 -1
  473. package/dist/zcl/buffaloZcl.d.ts +41 -41
  474. package/dist/zcl/buffaloZcl.d.ts.map +1 -1
  475. package/dist/zcl/buffaloZcl.js +594 -591
  476. package/dist/zcl/buffaloZcl.js.map +1 -1
  477. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  478. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  479. package/dist/zcl/definition/cluster.d.ts +29 -29
  480. package/dist/zcl/definition/cluster.d.ts.map +1 -1
  481. package/dist/zcl/definition/cluster.js +5520 -5335
  482. package/dist/zcl/definition/cluster.js.map +1 -1
  483. package/dist/zcl/definition/dataType.d.ts +59 -59
  484. package/dist/zcl/definition/dataType.js +64 -64
  485. package/dist/zcl/definition/direction.d.ts +5 -5
  486. package/dist/zcl/definition/direction.js +8 -8
  487. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  488. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  489. package/dist/zcl/definition/foundation.d.ts +11 -11
  490. package/dist/zcl/definition/foundation.js +167 -167
  491. package/dist/zcl/definition/frameControl.d.ts +10 -10
  492. package/dist/zcl/definition/frameControl.js +2 -2
  493. package/dist/zcl/definition/frameType.d.ts +5 -5
  494. package/dist/zcl/definition/frameType.js +8 -8
  495. package/dist/zcl/definition/index.d.ts +13 -13
  496. package/dist/zcl/definition/index.js +51 -51
  497. package/dist/zcl/definition/manufacturerCode.d.ts +1077 -1074
  498. package/dist/zcl/definition/manufacturerCode.d.ts.map +1 -1
  499. package/dist/zcl/definition/manufacturerCode.js +1082 -1079
  500. package/dist/zcl/definition/manufacturerCode.js.map +1 -1
  501. package/dist/zcl/definition/powerSource.d.ts +4 -4
  502. package/dist/zcl/definition/powerSource.js +12 -12
  503. package/dist/zcl/definition/status.d.ts +38 -38
  504. package/dist/zcl/definition/status.js +41 -41
  505. package/dist/zcl/definition/tstype.d.ts +16 -16
  506. package/dist/zcl/definition/tstype.js +2 -2
  507. package/dist/zcl/index.d.ts +16 -15
  508. package/dist/zcl/index.d.ts.map +1 -1
  509. package/dist/zcl/index.js +55 -55
  510. package/dist/zcl/index.js.map +1 -1
  511. package/dist/zcl/tstype.d.ts +56 -56
  512. package/dist/zcl/tstype.js +9 -10
  513. package/dist/zcl/tstype.js.map +1 -1
  514. package/dist/zcl/utils.d.ts +6 -6
  515. package/dist/zcl/utils.js +164 -165
  516. package/dist/zcl/utils.js.map +1 -1
  517. package/dist/zcl/zclFrame.d.ts +40 -45
  518. package/dist/zcl/zclFrame.d.ts.map +1 -1
  519. package/dist/zcl/zclFrame.js +351 -347
  520. package/dist/zcl/zclFrame.js.map +1 -1
  521. package/dist/zcl/zclHeader.d.ts +9 -0
  522. package/dist/zcl/zclHeader.d.ts.map +1 -0
  523. package/dist/zcl/zclHeader.js +3 -0
  524. package/dist/zcl/zclHeader.js.map +1 -0
  525. package/dist/zcl/zclStatusError.d.ts +5 -5
  526. package/dist/zcl/zclStatusError.js +14 -13
  527. package/dist/zcl/zclStatusError.js.map +1 -1
  528. package/package.json +11 -11
  529. package/release-please-config.json +1 -5
  530. package/tsconfig.json +4 -2
@@ -0,0 +1,226 @@
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
+ && (payload.frame.Cluster.ID === waiter.matcher.apsFrame.clusterId)
107
+ && (payload.endpoint === waiter.matcher.apsFrame.destinationEndpoint)) {
108
+ clearTimeout(waiter.timer);
109
+ waiter.resolved = true;
110
+ this.waiters.delete(index);
111
+ waiter.resolve(payload);
112
+ return true;
113
+ }
114
+ }
115
+ return false;
116
+ }
117
+ waitFor(matcher, timeout) {
118
+ const id = this.currentId++;
119
+ this.currentId &= 0xFFFF; // roll-over every so often - 65535 should be enough not to create conflicts ;-)
120
+ const promise = new Promise((resolve, reject) => {
121
+ const object = { matcher, resolve, reject, timedout: false, resolved: false, id };
122
+ this.waiters.set(id, object);
123
+ });
124
+ const start = () => {
125
+ const waiter = this.waiters.get(id);
126
+ if (waiter && !waiter.resolved && !waiter.timer) {
127
+ // Capture the stack trace from the caller of start()
128
+ const error = new Error();
129
+ Error.captureStackTrace(error);
130
+ waiter.timer = setTimeout(() => {
131
+ error.message = `${JSON.stringify(matcher)} timed out after ${timeout}ms`;
132
+ waiter.timedout = true;
133
+ waiter.reject(error);
134
+ }, timeout);
135
+ }
136
+ return { promise, id };
137
+ };
138
+ return { id, start };
139
+ }
140
+ /**
141
+ * Shortcut that starts the timer immediately and returns the promise.
142
+ * No access to `id`, so no easy cancel.
143
+ * @param matcher
144
+ * @param timeout
145
+ * @returns
146
+ */
147
+ startWaitingFor(matcher, timeout) {
148
+ return this.waitFor(matcher, timeout).start().promise;
149
+ }
150
+ remove(id) {
151
+ const waiter = this.waiters.get(id);
152
+ if (waiter) {
153
+ if (!waiter.timedout && waiter.timer) {
154
+ clearTimeout(waiter.timer);
155
+ }
156
+ this.waiters.delete(id);
157
+ }
158
+ }
159
+ /**
160
+ * Matches event name with matcher's, and payload (if any in matcher) using `fast-deep-equal/es6` (all keys & values must match)
161
+ * @param eventName
162
+ * @param payload
163
+ * @returns
164
+ */
165
+ resolveEvent(eventName, payload) {
166
+ for (const [index, waiter] of this.eventWaiters.entries()) {
167
+ if (waiter.timedout) {
168
+ this.eventWaiters.delete(index);
169
+ continue;
170
+ }
171
+ if (eventName === waiter.matcher.eventName && (!waiter.matcher.payload || ((0, es6_1.default)(payload, waiter.matcher.payload)))) {
172
+ clearTimeout(waiter.timer);
173
+ waiter.resolved = true;
174
+ this.eventWaiters.delete(index);
175
+ waiter.resolve(payload);
176
+ return true;
177
+ }
178
+ }
179
+ }
180
+ waitForEvent(matcher, timeout, reason = null) {
181
+ // NOTE: logic is very much the same as `waitFor`, just different matcher
182
+ const id = this.currentEventId++;
183
+ this.currentEventId &= 0xFFFF; // roll-over every so often - 65535 should be enough not to create conflicts ;-)
184
+ const promise = new Promise((resolve, reject) => {
185
+ const object = { matcher, resolve, reject, timedout: false, resolved: false, id };
186
+ this.eventWaiters.set(id, object);
187
+ });
188
+ const start = () => {
189
+ const waiter = this.eventWaiters.get(id);
190
+ if (waiter && !waiter.resolved && !waiter.timer) {
191
+ // Capture the stack trace from the caller of start()
192
+ const error = new Error();
193
+ Error.captureStackTrace(error);
194
+ waiter.timer = setTimeout(() => {
195
+ error.message = `${reason ? reason : JSON.stringify(matcher)} timed out after ${timeout}ms`;
196
+ waiter.timedout = true;
197
+ waiter.reject(error);
198
+ }, timeout);
199
+ }
200
+ return { promise, id };
201
+ };
202
+ return { id, start };
203
+ }
204
+ /**
205
+ * Shortcut that starts the timer immediately and returns the promise.
206
+ * No access to `id`, so no easy cancel.
207
+ * @param matcher
208
+ * @param timeout
209
+ * @param reason If supplied, will be used as timeout label, otherwise stringified matcher is.
210
+ * @returns
211
+ */
212
+ startWaitingForEvent(matcher, timeout, reason = null) {
213
+ return this.waitForEvent(matcher, timeout, reason).start().promise;
214
+ }
215
+ removeEvent(id) {
216
+ const waiter = this.eventWaiters.get(id);
217
+ if (waiter) {
218
+ if (!waiter.timedout && waiter.timer) {
219
+ clearTimeout(waiter.timer);
220
+ }
221
+ this.eventWaiters.delete(id);
222
+ }
223
+ }
224
+ }
225
+ exports.EmberOneWaitress = EmberOneWaitress;
226
+ //# 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 || 60;
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"}