@willieee802/zigbee-herdsman 0.14.112 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/.release-please-manifest.json +4 -0
  2. package/CHANGELOG.md +27 -0
  3. package/dist/adapter/adapter.d.ts +61 -61
  4. package/dist/adapter/adapter.d.ts.map +1 -1
  5. package/dist/adapter/adapter.js +146 -100
  6. package/dist/adapter/adapter.js.map +1 -1
  7. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +68 -68
  8. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
  9. package/dist/adapter/deconz/adapter/deconzAdapter.js +1060 -1063
  10. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
  11. package/dist/adapter/deconz/adapter/index.d.ts +2 -2
  12. package/dist/adapter/deconz/adapter/index.js +10 -10
  13. package/dist/adapter/deconz/driver/constants.d.ts +104 -104
  14. package/dist/adapter/deconz/driver/constants.js +55 -55
  15. package/dist/adapter/deconz/driver/driver.d.ts +81 -81
  16. package/dist/adapter/deconz/driver/driver.js +732 -732
  17. package/dist/adapter/deconz/driver/frame.d.ts +6 -6
  18. package/dist/adapter/deconz/driver/frame.js +13 -13
  19. package/dist/adapter/deconz/driver/frameParser.d.ts +2 -2
  20. package/dist/adapter/deconz/driver/frameParser.js +443 -443
  21. package/dist/adapter/deconz/driver/parser.d.ts +12 -12
  22. package/dist/adapter/deconz/driver/parser.js +61 -61
  23. package/dist/adapter/deconz/driver/writer.d.ts +8 -8
  24. package/dist/adapter/deconz/driver/writer.js +44 -44
  25. package/dist/adapter/events.d.ts +47 -47
  26. package/dist/adapter/events.js +14 -14
  27. package/dist/adapter/ezsp/adapter/backup.d.ts +9 -9
  28. package/dist/adapter/ezsp/adapter/backup.js +53 -53
  29. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +59 -59
  30. package/dist/adapter/ezsp/adapter/ezspAdapter.js +585 -585
  31. package/dist/adapter/ezsp/adapter/index.d.ts +2 -2
  32. package/dist/adapter/ezsp/adapter/index.js +10 -10
  33. package/dist/adapter/ezsp/driver/commands.d.ts +36 -34
  34. package/dist/adapter/ezsp/driver/commands.d.ts.map +1 -1
  35. package/dist/adapter/ezsp/driver/commands.js +2359 -2357
  36. package/dist/adapter/ezsp/driver/commands.js.map +1 -1
  37. package/dist/adapter/ezsp/driver/consts.d.ts +10 -10
  38. package/dist/adapter/ezsp/driver/consts.js +13 -13
  39. package/dist/adapter/ezsp/driver/driver.d.ts +103 -103
  40. package/dist/adapter/ezsp/driver/driver.js +639 -639
  41. package/dist/adapter/ezsp/driver/driver.js.map +1 -1
  42. package/dist/adapter/ezsp/driver/ezsp.d.ts +96 -96
  43. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
  44. package/dist/adapter/ezsp/driver/ezsp.js +586 -577
  45. package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
  46. package/dist/adapter/ezsp/driver/index.d.ts +3 -3
  47. package/dist/adapter/ezsp/driver/index.js +8 -8
  48. package/dist/adapter/ezsp/driver/multicast.d.ts +12 -12
  49. package/dist/adapter/ezsp/driver/multicast.js +74 -74
  50. package/dist/adapter/ezsp/driver/parser.d.ts +12 -12
  51. package/dist/adapter/ezsp/driver/parser.js +111 -111
  52. package/dist/adapter/ezsp/driver/types/basic.d.ts +62 -62
  53. package/dist/adapter/ezsp/driver/types/basic.js +208 -208
  54. package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
  55. package/dist/adapter/ezsp/driver/types/index.d.ts +9 -9
  56. package/dist/adapter/ezsp/driver/types/index.js +133 -133
  57. package/dist/adapter/ezsp/driver/types/named.d.ts +697 -697
  58. package/dist/adapter/ezsp/driver/types/named.js +1726 -1726
  59. package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
  60. package/dist/adapter/ezsp/driver/types/struct.d.ts +251 -251
  61. package/dist/adapter/ezsp/driver/types/struct.js +708 -708
  62. package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
  63. package/dist/adapter/ezsp/driver/uart.d.ts +44 -44
  64. package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
  65. package/dist/adapter/ezsp/driver/uart.js +368 -366
  66. package/dist/adapter/ezsp/driver/uart.js.map +1 -1
  67. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +2 -2
  68. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +55 -55
  69. package/dist/adapter/ezsp/driver/utils/index.d.ts +18 -18
  70. package/dist/adapter/ezsp/driver/utils/index.js +67 -67
  71. package/dist/adapter/ezsp/driver/writer.d.ts +13 -13
  72. package/dist/adapter/ezsp/driver/writer.js +88 -88
  73. package/dist/adapter/index.d.ts +4 -4
  74. package/dist/adapter/index.js +35 -35
  75. package/dist/adapter/serialPort.d.ts +8 -8
  76. package/dist/adapter/serialPort.js +22 -22
  77. package/dist/adapter/serialPort.js.map +1 -1
  78. package/dist/adapter/serialPortUtils.d.ts +12 -12
  79. package/dist/adapter/serialPortUtils.js +18 -18
  80. package/dist/adapter/socketPortUtils.d.ts +10 -10
  81. package/dist/adapter/socketPortUtils.js +16 -16
  82. package/dist/adapter/tstype.d.ts +85 -85
  83. package/dist/adapter/tstype.js +2 -2
  84. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +62 -62
  85. package/dist/adapter/z-stack/adapter/adapter-backup.js +441 -441
  86. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +150 -150
  87. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +258 -258
  88. package/dist/adapter/z-stack/adapter/endpoints.d.ts +11 -11
  89. package/dist/adapter/z-stack/adapter/endpoints.js +73 -73
  90. package/dist/adapter/z-stack/adapter/index.d.ts +2 -2
  91. package/dist/adapter/z-stack/adapter/index.js +8 -8
  92. package/dist/adapter/z-stack/adapter/manager.d.ts +86 -86
  93. package/dist/adapter/z-stack/adapter/manager.js +476 -476
  94. package/dist/adapter/z-stack/adapter/tstype.d.ts +6 -6
  95. package/dist/adapter/z-stack/adapter/tstype.js +10 -10
  96. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +81 -81
  97. package/dist/adapter/z-stack/adapter/zStackAdapter.js +868 -868
  98. package/dist/adapter/z-stack/constants/af.d.ts +23 -23
  99. package/dist/adapter/z-stack/constants/af.js +27 -27
  100. package/dist/adapter/z-stack/constants/common.d.ts +278 -278
  101. package/dist/adapter/z-stack/constants/common.js +289 -289
  102. package/dist/adapter/z-stack/constants/dbg.d.ts +22 -22
  103. package/dist/adapter/z-stack/constants/dbg.js +24 -24
  104. package/dist/adapter/z-stack/constants/index.d.ts +10 -10
  105. package/dist/adapter/z-stack/constants/index.js +47 -47
  106. package/dist/adapter/z-stack/constants/mac.d.ts +127 -127
  107. package/dist/adapter/z-stack/constants/mac.js +129 -129
  108. package/dist/adapter/z-stack/constants/sapi.d.ts +24 -24
  109. package/dist/adapter/z-stack/constants/sapi.js +26 -26
  110. package/dist/adapter/z-stack/constants/sys.d.ts +71 -71
  111. package/dist/adapter/z-stack/constants/sys.js +73 -73
  112. package/dist/adapter/z-stack/constants/util.d.ts +81 -81
  113. package/dist/adapter/z-stack/constants/util.js +83 -83
  114. package/dist/adapter/z-stack/constants/utils.d.ts +4 -4
  115. package/dist/adapter/z-stack/constants/utils.js +14 -14
  116. package/dist/adapter/z-stack/constants/zdo.d.ts +102 -102
  117. package/dist/adapter/z-stack/constants/zdo.js +104 -104
  118. package/dist/adapter/z-stack/models/index.d.ts +1 -1
  119. package/dist/adapter/z-stack/models/index.js +17 -17
  120. package/dist/adapter/z-stack/models/startup-options.d.ts +12 -12
  121. package/dist/adapter/z-stack/models/startup-options.js +2 -2
  122. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +23 -23
  123. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +45 -45
  124. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +10 -10
  125. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +22 -22
  126. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +10 -10
  127. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +21 -21
  128. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +10 -10
  129. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +23 -23
  130. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +10 -10
  131. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +24 -24
  132. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +10 -10
  133. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +23 -23
  134. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +8 -8
  135. package/dist/adapter/z-stack/structs/entries/channel-list.js +15 -15
  136. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +8 -8
  137. package/dist/adapter/z-stack/structs/entries/has-configured.js +16 -16
  138. package/dist/adapter/z-stack/structs/entries/index.d.ts +16 -16
  139. package/dist/adapter/z-stack/structs/entries/index.js +32 -32
  140. package/dist/adapter/z-stack/structs/entries/nib.d.ts +10 -10
  141. package/dist/adapter/z-stack/structs/entries/nib.js +68 -68
  142. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +10 -10
  143. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +18 -18
  144. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +8 -8
  145. package/dist/adapter/z-stack/structs/entries/nwk-key.js +15 -15
  146. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +8 -8
  147. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +15 -15
  148. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +13 -13
  149. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +23 -23
  150. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +10 -10
  151. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +22 -22
  152. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +20 -20
  153. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +36 -36
  154. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +10 -10
  155. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +24 -24
  156. package/dist/adapter/z-stack/structs/index.d.ts +4 -4
  157. package/dist/adapter/z-stack/structs/index.js +20 -20
  158. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +13 -13
  159. package/dist/adapter/z-stack/structs/serializable-memory-object.js +2 -2
  160. package/dist/adapter/z-stack/structs/struct.d.ts +99 -99
  161. package/dist/adapter/z-stack/structs/struct.js +295 -295
  162. package/dist/adapter/z-stack/structs/table.d.ts +94 -94
  163. package/dist/adapter/z-stack/structs/table.js +161 -161
  164. package/dist/adapter/z-stack/unpi/constants.d.ts +28 -28
  165. package/dist/adapter/z-stack/unpi/constants.js +41 -41
  166. package/dist/adapter/z-stack/unpi/frame.d.ts +16 -16
  167. package/dist/adapter/z-stack/unpi/frame.js +48 -48
  168. package/dist/adapter/z-stack/unpi/index.d.ts +5 -5
  169. package/dist/adapter/z-stack/unpi/index.js +37 -37
  170. package/dist/adapter/z-stack/unpi/parser.d.ts +10 -10
  171. package/dist/adapter/z-stack/unpi/parser.js +74 -74
  172. package/dist/adapter/z-stack/unpi/writer.d.ts +10 -10
  173. package/dist/adapter/z-stack/unpi/writer.js +44 -44
  174. package/dist/adapter/z-stack/utils/channel-list.d.ts +20 -20
  175. package/dist/adapter/z-stack/utils/channel-list.js +40 -40
  176. package/dist/adapter/z-stack/utils/index.d.ts +2 -2
  177. package/dist/adapter/z-stack/utils/index.js +18 -18
  178. package/dist/adapter/z-stack/utils/network-options.d.ts +8 -8
  179. package/dist/adapter/z-stack/utils/network-options.js +22 -22
  180. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +11 -11
  181. package/dist/adapter/z-stack/znp/buffaloZnp.js +113 -113
  182. package/dist/adapter/z-stack/znp/definition.d.ts +5 -5
  183. package/dist/adapter/z-stack/znp/definition.js +3050 -3050
  184. package/dist/adapter/z-stack/znp/index.d.ts +3 -3
  185. package/dist/adapter/z-stack/znp/index.js +10 -10
  186. package/dist/adapter/z-stack/znp/parameterType.d.ts +22 -22
  187. package/dist/adapter/z-stack/znp/parameterType.js +25 -25
  188. package/dist/adapter/z-stack/znp/tstype.d.ts +21 -21
  189. package/dist/adapter/z-stack/znp/tstype.js +2 -2
  190. package/dist/adapter/z-stack/znp/znp.d.ts +43 -43
  191. package/dist/adapter/z-stack/znp/znp.js +325 -325
  192. package/dist/adapter/z-stack/znp/zpiObject.d.ts +19 -19
  193. package/dist/adapter/z-stack/znp/zpiObject.js +96 -96
  194. package/dist/adapter/zigate/adapter/index.d.ts +2 -2
  195. package/dist/adapter/zigate/adapter/index.js +10 -10
  196. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +69 -69
  197. package/dist/adapter/zigate/adapter/zigateAdapter.js +678 -678
  198. package/dist/adapter/zigate/debug.d.ts +7 -7
  199. package/dist/adapter/zigate/debug.js +22 -22
  200. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +18 -18
  201. package/dist/adapter/zigate/driver/buffaloZiGate.js +139 -139
  202. package/dist/adapter/zigate/driver/commandType.d.ts +41 -41
  203. package/dist/adapter/zigate/driver/commandType.js +385 -385
  204. package/dist/adapter/zigate/driver/constants.d.ts +276 -276
  205. package/dist/adapter/zigate/driver/constants.js +371 -371
  206. package/dist/adapter/zigate/driver/frame.d.ts +26 -26
  207. package/dist/adapter/zigate/driver/frame.js +172 -172
  208. package/dist/adapter/zigate/driver/frame.js.map +1 -1
  209. package/dist/adapter/zigate/driver/messageType.d.ts +11 -11
  210. package/dist/adapter/zigate/driver/messageType.js +278 -278
  211. package/dist/adapter/zigate/driver/parameterType.d.ts +20 -20
  212. package/dist/adapter/zigate/driver/parameterType.js +23 -23
  213. package/dist/adapter/zigate/driver/ziGateObject.d.ts +23 -23
  214. package/dist/adapter/zigate/driver/ziGateObject.js +106 -106
  215. package/dist/adapter/zigate/driver/zigate.d.ts +49 -49
  216. package/dist/adapter/zigate/driver/zigate.js +303 -303
  217. package/dist/buffalo/buffalo.d.ts +50 -48
  218. package/dist/buffalo/buffalo.d.ts.map +1 -1
  219. package/dist/buffalo/buffalo.js +322 -307
  220. package/dist/buffalo/buffalo.js.map +1 -1
  221. package/dist/buffalo/index.d.ts +3 -3
  222. package/dist/buffalo/index.js +33 -33
  223. package/dist/buffalo/tstype.d.ts +8 -8
  224. package/dist/buffalo/tstype.js +2 -2
  225. package/dist/controller/controller.d.ts +110 -110
  226. package/dist/controller/controller.js +607 -607
  227. package/dist/controller/database.d.ts +18 -18
  228. package/dist/controller/database.js +93 -93
  229. package/dist/controller/events.d.ts +55 -55
  230. package/dist/controller/events.d.ts.map +1 -1
  231. package/dist/controller/events.js +101 -99
  232. package/dist/controller/events.js.map +1 -1
  233. package/dist/controller/greenPower.d.ts +12 -12
  234. package/dist/controller/greenPower.js +220 -220
  235. package/dist/controller/helpers/index.d.ts +2 -2
  236. package/dist/controller/helpers/index.js +28 -28
  237. package/dist/controller/helpers/request.d.ts +23 -0
  238. package/dist/controller/helpers/request.d.ts.map +1 -0
  239. package/dist/controller/helpers/request.js +72 -0
  240. package/dist/controller/helpers/request.js.map +1 -0
  241. package/dist/controller/helpers/zclFrameConverter.d.ts +7 -7
  242. package/dist/controller/helpers/zclFrameConverter.js +31 -31
  243. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +5 -5
  244. package/dist/controller/helpers/zclTransactionSequenceNumber.js +13 -13
  245. package/dist/controller/index.d.ts +5 -5
  246. package/dist/controller/index.js +8 -8
  247. package/dist/controller/logger-stub.d.ts +6 -6
  248. package/dist/controller/logger-stub.js +2 -2
  249. package/dist/controller/model/device.d.ts +132 -127
  250. package/dist/controller/model/device.d.ts.map +1 -1
  251. package/dist/controller/model/device.js +708 -681
  252. package/dist/controller/model/device.js.map +1 -1
  253. package/dist/controller/model/endpoint.d.ts +131 -128
  254. package/dist/controller/model/endpoint.d.ts.map +1 -1
  255. package/dist/controller/model/endpoint.js +817 -665
  256. package/dist/controller/model/endpoint.js.map +1 -1
  257. package/dist/controller/model/entity.d.ts +14 -14
  258. package/dist/controller/model/entity.js +26 -26
  259. package/dist/controller/model/group.d.ts +39 -39
  260. package/dist/controller/model/group.js +221 -221
  261. package/dist/controller/model/index.d.ts +5 -5
  262. package/dist/controller/model/index.js +14 -14
  263. package/dist/controller/touchlink.d.ts +19 -19
  264. package/dist/controller/touchlink.js +157 -157
  265. package/dist/controller/tstype.d.ts +21 -20
  266. package/dist/controller/tstype.d.ts.map +1 -1
  267. package/dist/controller/tstype.js +9 -9
  268. package/dist/controller/tstype.js.map +1 -1
  269. package/dist/index.d.ts +3 -3
  270. package/dist/index.js +33 -33
  271. package/dist/models/backup-storage-legacy.d.ts +26 -26
  272. package/dist/models/backup-storage-legacy.js +2 -2
  273. package/dist/models/backup-storage-unified.d.ts +49 -49
  274. package/dist/models/backup-storage-unified.js +2 -2
  275. package/dist/models/backup.d.ts +37 -37
  276. package/dist/models/backup.js +2 -2
  277. package/dist/models/index.d.ts +4 -4
  278. package/dist/models/index.js +20 -20
  279. package/dist/models/network-options.d.ts +12 -12
  280. package/dist/models/network-options.js +2 -2
  281. package/dist/utils/assertString.d.ts +2 -2
  282. package/dist/utils/assertString.js +8 -8
  283. package/dist/utils/backup.d.ts +20 -20
  284. package/dist/utils/backup.js +187 -187
  285. package/dist/utils/equalsPartial.d.ts +2 -2
  286. package/dist/utils/equalsPartial.js +11 -11
  287. package/dist/utils/index.d.ts +9 -9
  288. package/dist/utils/index.js +45 -45
  289. package/dist/utils/isNumberArray.d.ts +2 -2
  290. package/dist/utils/isNumberArray.js +6 -6
  291. package/dist/utils/queue.d.ts +11 -11
  292. package/dist/utils/queue.js +50 -50
  293. package/dist/utils/realpathSync.d.ts +2 -2
  294. package/dist/utils/realpathSync.js +12 -12
  295. package/dist/utils/wait.d.ts +2 -2
  296. package/dist/utils/wait.js +8 -8
  297. package/dist/utils/waitress.d.ts +21 -21
  298. package/dist/utils/waitress.js +61 -61
  299. package/dist/zcl/buffaloZcl.d.ts +41 -41
  300. package/dist/zcl/buffaloZcl.js +591 -591
  301. package/dist/zcl/definition/buffaloZclDataType.d.ts +17 -17
  302. package/dist/zcl/definition/buffaloZclDataType.js +20 -20
  303. package/dist/zcl/definition/cluster.d.ts +29 -29
  304. package/dist/zcl/definition/cluster.d.ts.map +1 -1
  305. package/dist/zcl/definition/cluster.js +5335 -5215
  306. package/dist/zcl/definition/cluster.js.map +1 -1
  307. package/dist/zcl/definition/dataType.d.ts +59 -59
  308. package/dist/zcl/definition/dataType.d.ts.map +1 -1
  309. package/dist/zcl/definition/dataType.js +64 -64
  310. package/dist/zcl/definition/dataType.js.map +1 -1
  311. package/dist/zcl/definition/direction.d.ts +5 -5
  312. package/dist/zcl/definition/direction.js +8 -8
  313. package/dist/zcl/definition/endpointDeviceType.d.ts +4 -4
  314. package/dist/zcl/definition/endpointDeviceType.js +15 -15
  315. package/dist/zcl/definition/foundation.d.ts +11 -11
  316. package/dist/zcl/definition/foundation.js +167 -167
  317. package/dist/zcl/definition/frameControl.d.ts +10 -10
  318. package/dist/zcl/definition/frameControl.js +2 -2
  319. package/dist/zcl/definition/frameType.d.ts +5 -5
  320. package/dist/zcl/definition/frameType.js +8 -8
  321. package/dist/zcl/definition/index.d.ts +13 -13
  322. package/dist/zcl/definition/index.js +51 -51
  323. package/dist/zcl/definition/manufacturerCode.d.ts +1074 -1074
  324. package/dist/zcl/definition/manufacturerCode.js +1079 -1079
  325. package/dist/zcl/definition/powerSource.d.ts +4 -4
  326. package/dist/zcl/definition/powerSource.js +12 -12
  327. package/dist/zcl/definition/status.d.ts +38 -38
  328. package/dist/zcl/definition/status.js +41 -41
  329. package/dist/zcl/definition/tstype.d.ts +16 -16
  330. package/dist/zcl/definition/tstype.js +2 -2
  331. package/dist/zcl/index.d.ts +15 -15
  332. package/dist/zcl/index.js +55 -55
  333. package/dist/zcl/tstype.d.ts +56 -56
  334. package/dist/zcl/tstype.js +10 -10
  335. package/dist/zcl/utils.d.ts +6 -6
  336. package/dist/zcl/utils.js +165 -165
  337. package/dist/zcl/zclFrame.d.ts +45 -45
  338. package/dist/zcl/zclFrame.js +347 -347
  339. package/dist/zcl/zclStatusError.d.ts +5 -5
  340. package/dist/zcl/zclStatusError.js +13 -13
  341. package/package.json +6 -5
  342. package/release-please-config.json +13 -0
  343. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  344. package/.github/dependabot.yml +0 -6
  345. package/.github/workflows/ci.yml +0 -31
  346. package/.github/workflows/release.yml +0 -56
  347. package/.github/workflows/stale.yml +0 -19
  348. package/.github/workflows/update_deps.yml +0 -24
@@ -1,259 +1,259 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdapterNvMemory = void 0;
4
- /* eslint-disable max-len */
5
- const common_1 = require("../constants/common");
6
- const constants_1 = require("../unpi/constants");
7
- /**
8
- * Adapter non-volatile memory instrumentation. This class provides interface to interact
9
- * with ZNP adapter's NV memory. Provided functionality covers basic operations from reading,
10
- * writing and deleting keys to extended table manipulation.
11
- */
12
- class AdapterNvMemory {
13
- constructor(znp) {
14
- this.memoryAlignment = null;
15
- this.znp = znp;
16
- }
17
- /**
18
- * Initialize NV memory driver by examining target and determining memory alignment.
19
- */
20
- async init() {
21
- /* use `ZCD_NV_NWKKEY` to determine if target platform uses memory alignment (length 21 = unaligned, length 24 = aligned) */
22
- const rawNwkKey = await this.readItem(common_1.NvItemsIds.NWKKEY);
23
- this.memoryAlignment = rawNwkKey.length === 21 ? "unaligned" : "aligned";
24
- }
25
- async readItem(id, offset = 0, useStruct) {
26
- var _a, _b, _c;
27
- if (useStruct) {
28
- this.checkMemoryAlignmentSetup();
29
- }
30
- const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
31
- if (!((_a = lengthResponse === null || lengthResponse === void 0 ? void 0 : lengthResponse.payload) === null || _a === void 0 ? void 0 : _a.length) || ((_b = lengthResponse === null || lengthResponse === void 0 ? void 0 : lengthResponse.payload) === null || _b === void 0 ? void 0 : _b.length) === 0) {
32
- return null;
33
- }
34
- const length = lengthResponse.payload.length;
35
- const buffer = Buffer.alloc(length);
36
- while (offset < length) {
37
- const readResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvReadExt", { id, offset }));
38
- /* istanbul ignore next */
39
- if (!readResponse) {
40
- return null;
41
- }
42
- /* istanbul ignore next */
43
- if (((_c = readResponse.payload) === null || _c === void 0 ? void 0 : _c.status) !== 0) {
44
- throw new Error(`Received non-success status while reading NV (id=${id}, offset=${offset}, status=${readResponse.payload.status})`);
45
- }
46
- buffer.set(readResponse.payload.value, offset);
47
- offset += readResponse.payload.value.length;
48
- }
49
- if (useStruct) {
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- return useStruct(buffer, this.memoryAlignment);
52
- }
53
- return buffer;
54
- }
55
- /**
56
- * Writes data to adapter NV memory. Method fails if write fails.
57
- *
58
- * @param id NV item identifier.
59
- * @param data Data to be written.
60
- * @param offset Offset within NV item to write the data.
61
- * @param autoInit Whether NV item should be automatically initialized if not present.
62
- */
63
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
- async writeItem(id, data, offset = 0, autoInit = true) {
65
- this.checkMemoryAlignmentSetup();
66
- const buffer = Buffer.isBuffer(data) ? data : data.serialize(this.memoryAlignment);
67
- const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
68
- const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
69
- /* istanbul ignore next */
70
- if (!exists) {
71
- const initLength = buffer.length > 240 ? 240 : buffer.length;
72
- if (!autoInit) {
73
- throw new Error(`Cannot write NV memory item which does not exist (id=${id})`);
74
- }
75
- const initResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvItemInit", { id, len: buffer.length, initlen: initLength, initvalue: buffer.slice(0, initLength) }, undefined, null, [common_1.ZnpCommandStatus.SUCCESS, common_1.ZnpCommandStatus.NV_ITEM_INITIALIZED]));
76
- if (initResponse.payload.status !== 0x09) {
77
- throw new Error(`Failed to initialize NV memory item (id=${id}, name=${common_1.NvItemsIds[id]}, len=${buffer.length}, status=${initResponse.payload.status})`);
78
- }
79
- }
80
- let remaining = buffer.length;
81
- while (remaining > 0) {
82
- /* istanbul ignore next */
83
- const writeLength = remaining > 240 ? 240 : remaining;
84
- const dataOffset = buffer.length - remaining;
85
- const writeData = buffer.slice(dataOffset, dataOffset + writeLength);
86
- const writeResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvWriteExt", { id, offset: dataOffset, len: writeLength, value: writeData }));
87
- /* istanbul ignore next */
88
- if (writeResponse.payload.status !== 0) {
89
- throw new Error(`Received non-success status while writing NV (id=${id}, offset=${offset}, status=${writeResponse.payload.status})`);
90
- }
91
- remaining -= writeLength;
92
- }
93
- }
94
- /**
95
- * Determines whether NV item is different from provided data and updates if necessary.
96
- *
97
- * @param id NV item identifier.
98
- * @param data Desired NV item value.
99
- * @param autoInit Whether NV item should be automatically initialized if not present.
100
- */
101
- async updateItem(id, data, autoInit = true) {
102
- this.checkMemoryAlignmentSetup();
103
- const current = await this.readItem(id);
104
- if (!current || !current.equals(data)) {
105
- await this.writeItem(id, data, 0, autoInit);
106
- }
107
- }
108
- /**
109
- * Deletes an NV memory item.
110
- *
111
- * @param id NV item identifier.
112
- */
113
- async deleteItem(id) {
114
- this.checkMemoryAlignmentSetup();
115
- const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
116
- const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
117
- /* istanbul ignore next */
118
- if (exists) {
119
- const deleteResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvDelete", { id, len: lengthResponse.payload.length }));
120
- if (!deleteResponse || ![common_1.ZnpCommandStatus.SUCCESS, common_1.ZnpCommandStatus.NV_ITEM_INITIALIZED].includes(deleteResponse.payload.status)) {
121
- /* istanbul ignore next */
122
- throw new Error(`Received non-success status while deleting NV (id=${id}, status=${deleteResponse.payload.status})`);
123
- }
124
- }
125
- }
126
- async readExtendedTableEntry(sysId, id, subId, offset, useStruct) {
127
- this.checkMemoryAlignmentSetup();
128
- const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
129
- const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
130
- if (exists) {
131
- const readResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvRead", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: lengthResponse.payload.len }));
132
- /* istanbul ignore next */
133
- if (readResponse.payload.status !== 0) {
134
- throw new Error(`Received non-success status while reading NV extended table entry (sysId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${readResponse.payload.status})`);
135
- }
136
- /* istanbul ignore next */
137
- if (useStruct) {
138
- return useStruct(readResponse.payload.value);
139
- }
140
- else {
141
- return readResponse.payload.value;
142
- }
143
- }
144
- return null;
145
- }
146
- /**
147
- * Writes extended table entry (user by Z-Stack 3.x+). NV tables within newer Z-Stack releases include 16-bit `subId`
148
- * identifying table tnreis.
149
- *
150
- * @param sysId SimpleLink system identifier.
151
- * @param id NV item identifier.
152
- * @param subId Entry index.
153
- * @param data Data to write to the table.
154
- * @param offset Offset to write at.
155
- * @param autoInit Whether non-existent entry should be automatically initialized.
156
- */
157
- async writeExtendedTableEntry(sysId, id, subId, data, offset, autoInit = true) {
158
- this.checkMemoryAlignmentSetup();
159
- const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
160
- const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
161
- /* istanbul ignore if */
162
- if (!exists) {
163
- if (!autoInit) {
164
- throw new Error(`Cannot write NV memory extended table item which does not exist (sudId=${sysId}, id=${id}, subId=${subId})`);
165
- }
166
- const createResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvCreate", { sysid: sysId, itemid: id, subid: subId, len: data.length }));
167
- if (!createResponse || createResponse.payload.status !== common_1.ZnpCommandStatus.SUCCESS) {
168
- /* istanbul ignore next */
169
- throw new Error(`Failed to crate NV memory extended table item with status (sudId=${sysId}, id=${id}, subId=${subId})`);
170
- }
171
- }
172
- const writeResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvWrite", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: data.length, value: data }));
173
- /* istanbul ignore next */
174
- if (writeResponse.payload.status !== 0) {
175
- throw new Error(`Received non-success status while writing NV extended table idem (sudId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${writeResponse.payload.status})`);
176
- }
177
- }
178
- async readTable(mode, p1, p2, p3, p4) {
179
- const sysId = mode === "legacy" ? undefined : p1;
180
- const id = (mode === "legacy" ? p1 : p2);
181
- const maxLength = (mode === "legacy" ? p2 : p3);
182
- const useTable = (mode === "legacy" ? p3 : p4);
183
- const rawEntries = [];
184
- let entryOffset = 0;
185
- let rawEntry = null;
186
- if (mode === "legacy") {
187
- do {
188
- rawEntry = await this.readItem(id + (entryOffset++));
189
- if (rawEntry) {
190
- rawEntries.push(rawEntry);
191
- }
192
- } while (rawEntry !== null && entryOffset < maxLength);
193
- }
194
- else {
195
- /* istanbul ignore next */
196
- do {
197
- rawEntry = await this.readExtendedTableEntry(sysId, id, entryOffset++);
198
- if (rawEntry) {
199
- rawEntries.push(rawEntry);
200
- }
201
- } while (rawEntry !== null && (!maxLength || entryOffset < maxLength));
202
- }
203
- /* istanbul ignore next */
204
- return useTable ? useTable(rawEntries) : rawEntries;
205
- }
206
- async writeTable(mode, p1, p2, p3) {
207
- this.checkMemoryAlignmentSetup();
208
- const sysId = mode === "legacy" ? undefined : p1;
209
- const id = (mode === "legacy" ? p1 : p2);
210
- const table = (mode === "legacy" ? p2 : p3);
211
- if (mode === "legacy") {
212
- for (const [index, entry] of table.entries.entries()) {
213
- await this.writeItem(id + index, entry.serialize(this.memoryAlignment));
214
- }
215
- }
216
- else {
217
- for (const [index, entry] of table.entries.entries()) {
218
- await this.writeExtendedTableEntry(sysId, id, index, entry.serialize(this.memoryAlignment));
219
- }
220
- }
221
- }
222
- /**
223
- * Internal function to prevent occasional ZNP request failures.
224
- *
225
- * *Some timeouts were present when working with SimpleLink Z-Stack 3.x.0+.*
226
- *
227
- * @param fn Function to retry.
228
- * @param retries Maximum number of retries.
229
- */
230
- async retry(fn, retries = 3) {
231
- let i = 0;
232
- while (i < retries) {
233
- try {
234
- const result = await fn();
235
- return result;
236
- }
237
- catch (error) {
238
- /* istanbul ignore next */
239
- if (i >= retries) {
240
- /* istanbul ignore next */
241
- throw error;
242
- }
243
- }
244
- /* istanbul ignore next */
245
- i++;
246
- }
247
- }
248
- /**
249
- * Internal function used by NV manipulation methods to check for correct driver initialization.
250
- */
251
- checkMemoryAlignmentSetup() {
252
- /* istanbul ignore next */
253
- if (this.memoryAlignment === null) {
254
- throw new Error("adapter memory alignment unknown - has nv memory driver been initialized?");
255
- }
256
- }
257
- }
258
- exports.AdapterNvMemory = AdapterNvMemory;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdapterNvMemory = void 0;
4
+ /* eslint-disable max-len */
5
+ const common_1 = require("../constants/common");
6
+ const constants_1 = require("../unpi/constants");
7
+ /**
8
+ * Adapter non-volatile memory instrumentation. This class provides interface to interact
9
+ * with ZNP adapter's NV memory. Provided functionality covers basic operations from reading,
10
+ * writing and deleting keys to extended table manipulation.
11
+ */
12
+ class AdapterNvMemory {
13
+ constructor(znp) {
14
+ this.memoryAlignment = null;
15
+ this.znp = znp;
16
+ }
17
+ /**
18
+ * Initialize NV memory driver by examining target and determining memory alignment.
19
+ */
20
+ async init() {
21
+ /* use `ZCD_NV_NWKKEY` to determine if target platform uses memory alignment (length 21 = unaligned, length 24 = aligned) */
22
+ const rawNwkKey = await this.readItem(common_1.NvItemsIds.NWKKEY);
23
+ this.memoryAlignment = rawNwkKey.length === 21 ? "unaligned" : "aligned";
24
+ }
25
+ async readItem(id, offset = 0, useStruct) {
26
+ var _a, _b, _c;
27
+ if (useStruct) {
28
+ this.checkMemoryAlignmentSetup();
29
+ }
30
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
31
+ if (!((_a = lengthResponse === null || lengthResponse === void 0 ? void 0 : lengthResponse.payload) === null || _a === void 0 ? void 0 : _a.length) || ((_b = lengthResponse === null || lengthResponse === void 0 ? void 0 : lengthResponse.payload) === null || _b === void 0 ? void 0 : _b.length) === 0) {
32
+ return null;
33
+ }
34
+ const length = lengthResponse.payload.length;
35
+ const buffer = Buffer.alloc(length);
36
+ while (offset < length) {
37
+ const readResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvReadExt", { id, offset }));
38
+ /* istanbul ignore next */
39
+ if (!readResponse) {
40
+ return null;
41
+ }
42
+ /* istanbul ignore next */
43
+ if (((_c = readResponse.payload) === null || _c === void 0 ? void 0 : _c.status) !== 0) {
44
+ throw new Error(`Received non-success status while reading NV (id=${id}, offset=${offset}, status=${readResponse.payload.status})`);
45
+ }
46
+ buffer.set(readResponse.payload.value, offset);
47
+ offset += readResponse.payload.value.length;
48
+ }
49
+ if (useStruct) {
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ return useStruct(buffer, this.memoryAlignment);
52
+ }
53
+ return buffer;
54
+ }
55
+ /**
56
+ * Writes data to adapter NV memory. Method fails if write fails.
57
+ *
58
+ * @param id NV item identifier.
59
+ * @param data Data to be written.
60
+ * @param offset Offset within NV item to write the data.
61
+ * @param autoInit Whether NV item should be automatically initialized if not present.
62
+ */
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ async writeItem(id, data, offset = 0, autoInit = true) {
65
+ this.checkMemoryAlignmentSetup();
66
+ const buffer = Buffer.isBuffer(data) ? data : data.serialize(this.memoryAlignment);
67
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
68
+ const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
69
+ /* istanbul ignore next */
70
+ if (!exists) {
71
+ const initLength = buffer.length > 240 ? 240 : buffer.length;
72
+ if (!autoInit) {
73
+ throw new Error(`Cannot write NV memory item which does not exist (id=${id})`);
74
+ }
75
+ const initResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvItemInit", { id, len: buffer.length, initlen: initLength, initvalue: buffer.slice(0, initLength) }, undefined, null, [common_1.ZnpCommandStatus.SUCCESS, common_1.ZnpCommandStatus.NV_ITEM_INITIALIZED]));
76
+ if (initResponse.payload.status !== 0x09) {
77
+ throw new Error(`Failed to initialize NV memory item (id=${id}, name=${common_1.NvItemsIds[id]}, len=${buffer.length}, status=${initResponse.payload.status})`);
78
+ }
79
+ }
80
+ let remaining = buffer.length;
81
+ while (remaining > 0) {
82
+ /* istanbul ignore next */
83
+ const writeLength = remaining > 240 ? 240 : remaining;
84
+ const dataOffset = buffer.length - remaining;
85
+ const writeData = buffer.slice(dataOffset, dataOffset + writeLength);
86
+ const writeResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvWriteExt", { id, offset: dataOffset, len: writeLength, value: writeData }));
87
+ /* istanbul ignore next */
88
+ if (writeResponse.payload.status !== 0) {
89
+ throw new Error(`Received non-success status while writing NV (id=${id}, offset=${offset}, status=${writeResponse.payload.status})`);
90
+ }
91
+ remaining -= writeLength;
92
+ }
93
+ }
94
+ /**
95
+ * Determines whether NV item is different from provided data and updates if necessary.
96
+ *
97
+ * @param id NV item identifier.
98
+ * @param data Desired NV item value.
99
+ * @param autoInit Whether NV item should be automatically initialized if not present.
100
+ */
101
+ async updateItem(id, data, autoInit = true) {
102
+ this.checkMemoryAlignmentSetup();
103
+ const current = await this.readItem(id);
104
+ if (!current || !current.equals(data)) {
105
+ await this.writeItem(id, data, 0, autoInit);
106
+ }
107
+ }
108
+ /**
109
+ * Deletes an NV memory item.
110
+ *
111
+ * @param id NV item identifier.
112
+ */
113
+ async deleteItem(id) {
114
+ this.checkMemoryAlignmentSetup();
115
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvLength", { id }));
116
+ const exists = lengthResponse.payload.length && lengthResponse.payload.length > 0;
117
+ /* istanbul ignore next */
118
+ if (exists) {
119
+ const deleteResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "osalNvDelete", { id, len: lengthResponse.payload.length }));
120
+ if (!deleteResponse || ![common_1.ZnpCommandStatus.SUCCESS, common_1.ZnpCommandStatus.NV_ITEM_INITIALIZED].includes(deleteResponse.payload.status)) {
121
+ /* istanbul ignore next */
122
+ throw new Error(`Received non-success status while deleting NV (id=${id}, status=${deleteResponse.payload.status})`);
123
+ }
124
+ }
125
+ }
126
+ async readExtendedTableEntry(sysId, id, subId, offset, useStruct) {
127
+ this.checkMemoryAlignmentSetup();
128
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
129
+ const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
130
+ if (exists) {
131
+ const readResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvRead", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: lengthResponse.payload.len }));
132
+ /* istanbul ignore next */
133
+ if (readResponse.payload.status !== 0) {
134
+ throw new Error(`Received non-success status while reading NV extended table entry (sysId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${readResponse.payload.status})`);
135
+ }
136
+ /* istanbul ignore next */
137
+ if (useStruct) {
138
+ return useStruct(readResponse.payload.value);
139
+ }
140
+ else {
141
+ return readResponse.payload.value;
142
+ }
143
+ }
144
+ return null;
145
+ }
146
+ /**
147
+ * Writes extended table entry (user by Z-Stack 3.x+). NV tables within newer Z-Stack releases include 16-bit `subId`
148
+ * identifying table tnreis.
149
+ *
150
+ * @param sysId SimpleLink system identifier.
151
+ * @param id NV item identifier.
152
+ * @param subId Entry index.
153
+ * @param data Data to write to the table.
154
+ * @param offset Offset to write at.
155
+ * @param autoInit Whether non-existent entry should be automatically initialized.
156
+ */
157
+ async writeExtendedTableEntry(sysId, id, subId, data, offset, autoInit = true) {
158
+ this.checkMemoryAlignmentSetup();
159
+ const lengthResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvLength", { sysid: sysId, itemid: id, subid: subId }));
160
+ const exists = lengthResponse.payload.len && lengthResponse.payload.len > 0;
161
+ /* istanbul ignore if */
162
+ if (!exists) {
163
+ if (!autoInit) {
164
+ throw new Error(`Cannot write NV memory extended table item which does not exist (sudId=${sysId}, id=${id}, subId=${subId})`);
165
+ }
166
+ const createResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvCreate", { sysid: sysId, itemid: id, subid: subId, len: data.length }));
167
+ if (!createResponse || createResponse.payload.status !== common_1.ZnpCommandStatus.SUCCESS) {
168
+ /* istanbul ignore next */
169
+ throw new Error(`Failed to crate NV memory extended table item with status (sudId=${sysId}, id=${id}, subId=${subId})`);
170
+ }
171
+ }
172
+ const writeResponse = await this.retry(() => this.znp.request(constants_1.Subsystem.SYS, "nvWrite", { sysid: sysId, itemid: id, subid: subId, offset: offset || 0, len: data.length, value: data }));
173
+ /* istanbul ignore next */
174
+ if (writeResponse.payload.status !== 0) {
175
+ throw new Error(`Received non-success status while writing NV extended table idem (sudId=${sysId}, id=${id}, subId=${subId}, offset=${offset}, status=${writeResponse.payload.status})`);
176
+ }
177
+ }
178
+ async readTable(mode, p1, p2, p3, p4) {
179
+ const sysId = mode === "legacy" ? undefined : p1;
180
+ const id = (mode === "legacy" ? p1 : p2);
181
+ const maxLength = (mode === "legacy" ? p2 : p3);
182
+ const useTable = (mode === "legacy" ? p3 : p4);
183
+ const rawEntries = [];
184
+ let entryOffset = 0;
185
+ let rawEntry = null;
186
+ if (mode === "legacy") {
187
+ do {
188
+ rawEntry = await this.readItem(id + (entryOffset++));
189
+ if (rawEntry) {
190
+ rawEntries.push(rawEntry);
191
+ }
192
+ } while (rawEntry !== null && entryOffset < maxLength);
193
+ }
194
+ else {
195
+ /* istanbul ignore next */
196
+ do {
197
+ rawEntry = await this.readExtendedTableEntry(sysId, id, entryOffset++);
198
+ if (rawEntry) {
199
+ rawEntries.push(rawEntry);
200
+ }
201
+ } while (rawEntry !== null && (!maxLength || entryOffset < maxLength));
202
+ }
203
+ /* istanbul ignore next */
204
+ return useTable ? useTable(rawEntries) : rawEntries;
205
+ }
206
+ async writeTable(mode, p1, p2, p3) {
207
+ this.checkMemoryAlignmentSetup();
208
+ const sysId = mode === "legacy" ? undefined : p1;
209
+ const id = (mode === "legacy" ? p1 : p2);
210
+ const table = (mode === "legacy" ? p2 : p3);
211
+ if (mode === "legacy") {
212
+ for (const [index, entry] of table.entries.entries()) {
213
+ await this.writeItem(id + index, entry.serialize(this.memoryAlignment));
214
+ }
215
+ }
216
+ else {
217
+ for (const [index, entry] of table.entries.entries()) {
218
+ await this.writeExtendedTableEntry(sysId, id, index, entry.serialize(this.memoryAlignment));
219
+ }
220
+ }
221
+ }
222
+ /**
223
+ * Internal function to prevent occasional ZNP request failures.
224
+ *
225
+ * *Some timeouts were present when working with SimpleLink Z-Stack 3.x.0+.*
226
+ *
227
+ * @param fn Function to retry.
228
+ * @param retries Maximum number of retries.
229
+ */
230
+ async retry(fn, retries = 3) {
231
+ let i = 0;
232
+ while (i < retries) {
233
+ try {
234
+ const result = await fn();
235
+ return result;
236
+ }
237
+ catch (error) {
238
+ /* istanbul ignore next */
239
+ if (i >= retries) {
240
+ /* istanbul ignore next */
241
+ throw error;
242
+ }
243
+ }
244
+ /* istanbul ignore next */
245
+ i++;
246
+ }
247
+ }
248
+ /**
249
+ * Internal function used by NV manipulation methods to check for correct driver initialization.
250
+ */
251
+ checkMemoryAlignmentSetup() {
252
+ /* istanbul ignore next */
253
+ if (this.memoryAlignment === null) {
254
+ throw new Error("adapter memory alignment unknown - has nv memory driver been initialized?");
255
+ }
256
+ }
257
+ }
258
+ exports.AdapterNvMemory = AdapterNvMemory;
259
259
  //# sourceMappingURL=adapter-nv-memory.js.map
@@ -1,12 +1,12 @@
1
- export declare const Endpoints: {
2
- endpoint: number;
3
- appprofid: number;
4
- appdeviceid: number;
5
- appdevver: number;
6
- appnuminclusters: number;
7
- appinclusterlist: number[];
8
- appnumoutclusters: number;
9
- appoutclusterlist: number[];
10
- latencyreq: number;
11
- }[];
1
+ export declare const Endpoints: {
2
+ endpoint: number;
3
+ appprofid: number;
4
+ appdeviceid: number;
5
+ appdevver: number;
6
+ appnuminclusters: number;
7
+ appinclusterlist: number[];
8
+ appnumoutclusters: number;
9
+ appoutclusterlist: number[];
10
+ latencyreq: number;
11
+ }[];
12
12
  //# sourceMappingURL=endpoints.d.ts.map