@willieee802/zigbee-herdsman 0.48.3 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1025) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  2. package/.github/copilot-instructions.md +689 -0
  3. package/.github/dependabot.yml +22 -0
  4. package/.github/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
  5. package/.github/prompts/create-agentsmd.prompt.md +249 -0
  6. package/.github/prompts/create-specification.prompt.md +127 -0
  7. package/.github/prompts/review-and-refactor.prompt.md +15 -0
  8. package/.github/prompts/update-specification.prompt.md +127 -0
  9. package/.github/workflows/ci.yml +70 -0
  10. package/.github/workflows/release-please.yml +18 -0
  11. package/.github/workflows/stale.yml +20 -0
  12. package/.github/workflows/typedoc.yaml +47 -0
  13. package/.release-please-manifest.json +2 -2
  14. package/.vscode/extensions.json +3 -0
  15. package/.vscode/settings.json +11 -0
  16. package/AGENTS.md +441 -0
  17. package/CHANGELOG.md +1245 -0
  18. package/README.md +1 -1
  19. package/biome.json +103 -0
  20. package/examples/join-and-log.js +18 -18
  21. package/package.json +83 -70
  22. package/release-please-config.json +8 -8
  23. package/scripts/check-clusters-changes.ts +328 -0
  24. package/scripts/clusters-changes.log +584 -0
  25. package/scripts/clusters-typegen.ts +608 -0
  26. package/scripts/utils.ts +88 -0
  27. package/scripts/zap-update-clusters-report.json +303 -0
  28. package/scripts/zap-update-clusters.ts +1520 -0
  29. package/scripts/zap-update-types.ts +707 -0
  30. package/scripts/zap-xml-clusters-overrides-data.ts +52 -0
  31. package/scripts/zap-xml-clusters-overrides.ts +400 -0
  32. package/scripts/zap-xml-types.ts +146 -0
  33. package/src/adapter/adapter.ts +210 -0
  34. package/src/adapter/adapterDiscovery.ts +736 -0
  35. package/src/adapter/const.ts +12 -0
  36. package/src/adapter/deconz/adapter/deconzAdapter.ts +888 -0
  37. package/src/adapter/deconz/driver/constants.ts +246 -0
  38. package/src/adapter/deconz/driver/driver.ts +1528 -0
  39. package/src/adapter/deconz/driver/frame.ts +11 -0
  40. package/src/adapter/deconz/driver/frameParser.ts +766 -0
  41. package/src/adapter/deconz/driver/parser.ts +45 -0
  42. package/src/adapter/deconz/driver/writer.ts +22 -0
  43. package/src/adapter/deconz/types.d.ts +13 -0
  44. package/src/adapter/ember/adapter/emberAdapter.ts +2262 -0
  45. package/src/adapter/ember/adapter/endpoints.ts +86 -0
  46. package/src/adapter/ember/adapter/oneWaitress.ts +324 -0
  47. package/src/adapter/ember/adapter/tokensManager.ts +780 -0
  48. package/src/adapter/ember/consts.ts +178 -0
  49. package/src/adapter/ember/enums.ts +1746 -0
  50. package/src/adapter/ember/ezsp/buffalo.ts +1392 -0
  51. package/src/adapter/ember/ezsp/consts.ts +148 -0
  52. package/src/adapter/ember/ezsp/enums.ts +1114 -0
  53. package/src/adapter/ember/ezsp/ezsp.ts +9073 -0
  54. package/src/adapter/ember/ezspError.ts +10 -0
  55. package/src/adapter/ember/types.ts +866 -0
  56. package/src/adapter/ember/uart/ash.ts +1933 -0
  57. package/src/adapter/ember/uart/consts.ts +109 -0
  58. package/src/adapter/ember/uart/enums.ts +192 -0
  59. package/src/adapter/ember/uart/parser.ts +42 -0
  60. package/src/adapter/ember/uart/queues.ts +247 -0
  61. package/src/adapter/ember/uart/writer.ts +50 -0
  62. package/src/adapter/ember/utils/initters.ts +58 -0
  63. package/src/adapter/ember/utils/math.ts +71 -0
  64. package/src/adapter/events.ts +21 -0
  65. package/src/adapter/ezsp/adapter/backup.ts +100 -0
  66. package/src/adapter/ezsp/adapter/ezspAdapter.ts +632 -0
  67. package/src/adapter/ezsp/driver/commands.ts +2497 -0
  68. package/src/adapter/ezsp/driver/consts.ts +11 -0
  69. package/src/adapter/ezsp/driver/driver.ts +1002 -0
  70. package/src/adapter/ezsp/driver/ezsp.ts +802 -0
  71. package/src/adapter/ezsp/driver/frame.ts +101 -0
  72. package/src/adapter/ezsp/driver/index.ts +4 -0
  73. package/src/adapter/ezsp/driver/multicast.ts +78 -0
  74. package/src/adapter/ezsp/driver/parser.ts +81 -0
  75. package/src/adapter/ezsp/driver/types/basic.ts +201 -0
  76. package/src/adapter/ezsp/driver/types/index.ts +239 -0
  77. package/src/adapter/ezsp/driver/types/named.ts +2330 -0
  78. package/src/adapter/ezsp/driver/types/struct.ts +844 -0
  79. package/src/adapter/ezsp/driver/uart.ts +460 -0
  80. package/src/adapter/ezsp/driver/utils/crc16ccitt.ts +44 -0
  81. package/src/adapter/ezsp/driver/utils/index.ts +32 -0
  82. package/src/adapter/ezsp/driver/writer.ts +64 -0
  83. package/src/adapter/index.ts +3 -0
  84. package/src/adapter/serialPort.ts +58 -0
  85. package/src/adapter/tstype.ts +57 -0
  86. package/src/adapter/utils.ts +41 -0
  87. package/src/adapter/z-stack/adapter/adapter-backup.ts +509 -0
  88. package/src/adapter/z-stack/adapter/adapter-nv-memory.ts +457 -0
  89. package/src/adapter/z-stack/adapter/endpoints.ts +60 -0
  90. package/src/adapter/z-stack/adapter/manager.ts +543 -0
  91. package/src/adapter/z-stack/adapter/tstype.ts +6 -0
  92. package/src/adapter/z-stack/adapter/zStackAdapter.ts +1350 -0
  93. package/src/adapter/z-stack/constants/af.ts +27 -0
  94. package/src/adapter/z-stack/constants/common.ts +285 -0
  95. package/src/adapter/z-stack/constants/dbg.ts +23 -0
  96. package/src/adapter/z-stack/constants/index.ts +11 -0
  97. package/src/adapter/z-stack/constants/mac.ts +128 -0
  98. package/src/adapter/z-stack/constants/sapi.ts +25 -0
  99. package/src/adapter/z-stack/constants/sys.ts +72 -0
  100. package/src/adapter/z-stack/constants/util.ts +82 -0
  101. package/src/adapter/z-stack/constants/utils.ts +14 -0
  102. package/src/adapter/z-stack/constants/zdo.ts +103 -0
  103. package/src/adapter/z-stack/models/startup-options.ts +13 -0
  104. package/src/adapter/z-stack/structs/entries/address-manager-entry.ts +44 -0
  105. package/src/adapter/z-stack/structs/entries/address-manager-table.ts +19 -0
  106. package/src/adapter/z-stack/structs/entries/aps-link-key-data-entry.ts +12 -0
  107. package/src/adapter/z-stack/structs/entries/aps-link-key-data-table.ts +21 -0
  108. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-entry.ts +19 -0
  109. package/src/adapter/z-stack/structs/entries/aps-tc-link-key-table.ts +21 -0
  110. package/src/adapter/z-stack/structs/entries/channel-list.ts +8 -0
  111. package/src/adapter/z-stack/structs/entries/has-configured.ts +16 -0
  112. package/src/adapter/z-stack/structs/entries/index.ts +16 -0
  113. package/src/adapter/z-stack/structs/entries/nib.ts +66 -0
  114. package/src/adapter/z-stack/structs/entries/nwk-key-descriptor.ts +15 -0
  115. package/src/adapter/z-stack/structs/entries/nwk-key.ts +13 -0
  116. package/src/adapter/z-stack/structs/entries/nwk-pan-id.ts +8 -0
  117. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.ts +20 -0
  118. package/src/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.ts +19 -0
  119. package/src/adapter/z-stack/structs/entries/security-manager-entry.ts +33 -0
  120. package/src/adapter/z-stack/structs/entries/security-manager-table.ts +22 -0
  121. package/src/adapter/z-stack/structs/index.ts +4 -0
  122. package/src/adapter/z-stack/structs/serializable-memory-object.ts +14 -0
  123. package/src/adapter/z-stack/structs/struct.ts +367 -0
  124. package/src/adapter/z-stack/structs/table.ts +198 -0
  125. package/src/adapter/z-stack/unpi/constants.ts +33 -0
  126. package/src/adapter/z-stack/unpi/frame.ts +62 -0
  127. package/src/adapter/z-stack/unpi/index.ts +4 -0
  128. package/src/adapter/z-stack/unpi/parser.ts +67 -0
  129. package/src/adapter/z-stack/unpi/writer.ts +37 -0
  130. package/src/adapter/z-stack/utils/channel-list.ts +40 -0
  131. package/src/adapter/z-stack/utils/index.ts +2 -0
  132. package/src/adapter/z-stack/utils/network-options.ts +26 -0
  133. package/src/adapter/z-stack/znp/buffaloZnp.ts +175 -0
  134. package/src/adapter/z-stack/znp/definition.ts +2713 -0
  135. package/src/adapter/z-stack/znp/index.ts +2 -0
  136. package/src/adapter/z-stack/znp/parameterType.ts +22 -0
  137. package/src/adapter/z-stack/znp/tstype.ts +44 -0
  138. package/src/adapter/z-stack/znp/utils.ts +10 -0
  139. package/src/adapter/z-stack/znp/znp.ts +345 -0
  140. package/src/adapter/z-stack/znp/zpiObject.ts +148 -0
  141. package/src/adapter/zboss/adapter/zbossAdapter.ts +535 -0
  142. package/src/adapter/zboss/commands.ts +1184 -0
  143. package/src/adapter/zboss/consts.ts +9 -0
  144. package/src/adapter/zboss/driver.ts +422 -0
  145. package/src/adapter/zboss/enums.ts +360 -0
  146. package/src/adapter/zboss/frame.ts +227 -0
  147. package/src/adapter/zboss/reader.ts +65 -0
  148. package/src/adapter/zboss/types.ts +0 -0
  149. package/src/adapter/zboss/uart.ts +428 -0
  150. package/src/adapter/zboss/utils.ts +58 -0
  151. package/src/adapter/zboss/writer.ts +49 -0
  152. package/src/adapter/zigate/adapter/patchZdoBuffaloBE.ts +25 -0
  153. package/src/adapter/zigate/adapter/zigateAdapter.ts +633 -0
  154. package/src/adapter/zigate/driver/LICENSE +17 -0
  155. package/src/adapter/zigate/driver/buffaloZiGate.ts +210 -0
  156. package/src/adapter/zigate/driver/commandType.ts +418 -0
  157. package/src/adapter/zigate/driver/constants.ts +150 -0
  158. package/src/adapter/zigate/driver/frame.ts +197 -0
  159. package/src/adapter/zigate/driver/messageType.ts +287 -0
  160. package/src/adapter/zigate/driver/parameterType.ts +32 -0
  161. package/src/adapter/zigate/driver/ziGateObject.ts +146 -0
  162. package/src/adapter/zigate/driver/zigate.ts +422 -0
  163. package/src/adapter/zoh/adapter/utils.ts +27 -0
  164. package/src/adapter/zoh/adapter/zohAdapter.ts +931 -0
  165. package/src/buffalo/buffalo.ts +336 -0
  166. package/src/buffalo/index.ts +1 -0
  167. package/src/controller/controller.ts +1159 -0
  168. package/src/controller/database.ts +148 -0
  169. package/src/controller/events.ts +52 -0
  170. package/src/controller/greenPower.ts +613 -0
  171. package/src/controller/helpers/index.ts +1 -0
  172. package/src/controller/helpers/installCodes.ts +107 -0
  173. package/src/controller/helpers/ota.ts +575 -0
  174. package/src/controller/helpers/request.ts +96 -0
  175. package/src/controller/helpers/requestQueue.ts +126 -0
  176. package/src/controller/helpers/zclFrameConverter.ts +64 -0
  177. package/src/controller/helpers/zclTransactionSequenceNumber.ts +15 -0
  178. package/src/controller/index.ts +6 -0
  179. package/src/controller/model/device.ts +1791 -0
  180. package/src/controller/model/endpoint.ts +1235 -0
  181. package/src/controller/model/entity.ts +43 -0
  182. package/src/controller/model/group.ts +446 -0
  183. package/src/controller/model/index.ts +5 -0
  184. package/src/controller/model/konnextConfig.ts +6 -0
  185. package/src/controller/model/zigbeeEntity.ts +30 -0
  186. package/src/controller/touchlink.ts +195 -0
  187. package/src/controller/tstype.ts +374 -0
  188. package/src/index.ts +14 -0
  189. package/src/models/backup-storage-legacy.ts +48 -0
  190. package/src/models/backup-storage-unified.ts +47 -0
  191. package/src/models/backup.ts +37 -0
  192. package/src/models/index.ts +5 -0
  193. package/src/models/network-options.ts +11 -0
  194. package/src/utils/aes.ts +218 -0
  195. package/src/utils/async-mutex.ts +31 -0
  196. package/src/utils/backup.ts +152 -0
  197. package/src/utils/index.ts +5 -0
  198. package/src/utils/logger.ts +20 -0
  199. package/src/utils/patchBigIntSerialization.ts +8 -0
  200. package/src/utils/queue.ts +79 -0
  201. package/src/utils/timeService.ts +139 -0
  202. package/src/utils/utils.ts +19 -0
  203. package/src/utils/wait.ts +5 -0
  204. package/src/utils/waitress.ts +96 -0
  205. package/src/zspec/consts.ts +89 -0
  206. package/src/zspec/enums.ts +22 -0
  207. package/src/zspec/index.ts +3 -0
  208. package/src/zspec/tstypes.ts +18 -0
  209. package/src/zspec/utils.ts +247 -0
  210. package/src/zspec/zcl/buffaloZcl.ts +1073 -0
  211. package/src/zspec/zcl/definition/cluster.ts +7845 -0
  212. package/src/zspec/zcl/definition/clusters-types.ts +8577 -0
  213. package/src/zspec/zcl/definition/consts.ts +24 -0
  214. package/src/zspec/zcl/definition/datatypes.ts +2454 -0
  215. package/src/zspec/zcl/definition/enums.ts +224 -0
  216. package/src/zspec/zcl/definition/foundation.ts +342 -0
  217. package/src/zspec/zcl/definition/manufacturerCode.ts +730 -0
  218. package/src/zspec/zcl/definition/status.ts +69 -0
  219. package/src/zspec/zcl/definition/tstype.ts +446 -0
  220. package/src/zspec/zcl/index.ts +11 -0
  221. package/src/zspec/zcl/utils.ts +521 -0
  222. package/src/zspec/zcl/zclFrame.ts +383 -0
  223. package/src/zspec/zcl/zclHeader.ts +102 -0
  224. package/src/zspec/zcl/zclStatusError.ts +10 -0
  225. package/src/zspec/zdo/buffaloZdo.ts +2336 -0
  226. package/src/zspec/zdo/definition/clusters.ts +722 -0
  227. package/src/zspec/zdo/definition/consts.ts +16 -0
  228. package/src/zspec/zdo/definition/enums.ts +99 -0
  229. package/src/zspec/zdo/definition/status.ts +105 -0
  230. package/src/zspec/zdo/definition/tstypes.ts +1062 -0
  231. package/src/zspec/zdo/index.ts +7 -0
  232. package/src/zspec/zdo/utils.ts +76 -0
  233. package/src/zspec/zdo/zdoStatusError.ts +10 -0
  234. package/test/adapter/adapter.test.ts +1276 -0
  235. package/test/adapter/ember/ash.test.ts +337 -0
  236. package/test/adapter/ember/consts.ts +131 -0
  237. package/test/adapter/ember/emberAdapter.test.ts +3447 -0
  238. package/test/adapter/ember/ezsp.test.ts +389 -0
  239. package/test/adapter/ember/ezspBuffalo.test.ts +93 -0
  240. package/test/adapter/ember/ezspError.test.ts +12 -0
  241. package/test/adapter/ember/math.test.ts +190 -0
  242. package/test/adapter/ezsp/frame.test.ts +30 -0
  243. package/test/adapter/ezsp/uart.test.ts +181 -0
  244. package/test/adapter/z-stack/adapter.test.ts +4260 -0
  245. package/test/adapter/z-stack/constants.test.ts +33 -0
  246. package/test/adapter/z-stack/structs.test.ts +115 -0
  247. package/test/adapter/z-stack/unpi.test.ts +213 -0
  248. package/test/adapter/z-stack/znp.test.ts +1288 -0
  249. package/test/adapter/zboss/fixZdoResponse.test.ts +179 -0
  250. package/test/adapter/zigate/patchZdoBuffaloBE.test.ts +81 -0
  251. package/test/adapter/zigate/zdo.test.ts +187 -0
  252. package/test/adapter/zoh/utils.test.ts +36 -0
  253. package/test/adapter/zoh/zohAdapter.test.ts +1451 -0
  254. package/test/benchOptions.ts +14 -0
  255. package/test/buffalo.test.ts +431 -0
  256. package/test/controller.bench.ts +215 -0
  257. package/test/controller.test.ts +10030 -0
  258. package/test/data/integrity-code-1166-012B-24031511-upgradeMe-RB 249 T.zigbee +0 -0
  259. package/test/data/manuf-tags-tradfri-cv-cct-unified_release_prod_v587757105_33e34452-9267-4665-bc5a-844c8f61f063.ota +0 -0
  260. package/test/data/padded-tretakt_smart_plug_soc-0x1100-2.4.25-prod.ota.ota.signed +0 -0
  261. package/test/data/telink-aes-A60_RGBW_T-0x00B6-0x03483712-MF_DIS.OTA +0 -0
  262. package/test/data/zbminir2_v1.0.8.ota +0 -0
  263. package/test/device-ota.test.ts +3332 -0
  264. package/test/greenpower.test.ts +1409 -0
  265. package/test/mockAdapters.ts +95 -0
  266. package/test/mockDevices.ts +623 -0
  267. package/test/requests.bench.ts +321 -0
  268. package/test/testUtils.ts +20 -0
  269. package/test/timeService.test.ts +214 -0
  270. package/test/tsconfig.json +9 -0
  271. package/test/utils/math.ts +19 -0
  272. package/test/utils.test.ts +352 -0
  273. package/test/vitest.config.mts +28 -0
  274. package/test/vitest.ts +9 -0
  275. package/test/zcl.test.ts +2858 -0
  276. package/test/zspec/utils.test.ts +68 -0
  277. package/test/zspec/zcl/buffalo.test.ts +1316 -0
  278. package/test/zspec/zcl/frame.test.ts +1056 -0
  279. package/test/zspec/zcl/utils.test.ts +650 -0
  280. package/test/zspec/zdo/buffalo.test.ts +1850 -0
  281. package/test/zspec/zdo/utils.test.ts +241 -0
  282. package/tsconfig.json +8 -10
  283. package/.babelrc.js +0 -6
  284. package/.eslintignore +0 -3
  285. package/dist/adapter/adapter.d.ts +0 -64
  286. package/dist/adapter/adapter.d.ts.map +0 -1
  287. package/dist/adapter/adapter.js +0 -157
  288. package/dist/adapter/adapter.js.map +0 -1
  289. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +0 -71
  290. package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +0 -1
  291. package/dist/adapter/deconz/adapter/deconzAdapter.js +0 -1072
  292. package/dist/adapter/deconz/adapter/deconzAdapter.js.map +0 -1
  293. package/dist/adapter/deconz/adapter/index.d.ts +0 -3
  294. package/dist/adapter/deconz/adapter/index.d.ts.map +0 -1
  295. package/dist/adapter/deconz/adapter/index.js +0 -11
  296. package/dist/adapter/deconz/adapter/index.js.map +0 -1
  297. package/dist/adapter/deconz/driver/constants.d.ts +0 -105
  298. package/dist/adapter/deconz/driver/constants.d.ts.map +0 -1
  299. package/dist/adapter/deconz/driver/constants.js +0 -56
  300. package/dist/adapter/deconz/driver/constants.js.map +0 -1
  301. package/dist/adapter/deconz/driver/driver.d.ts +0 -82
  302. package/dist/adapter/deconz/driver/driver.d.ts.map +0 -1
  303. package/dist/adapter/deconz/driver/driver.js +0 -751
  304. package/dist/adapter/deconz/driver/driver.js.map +0 -1
  305. package/dist/adapter/deconz/driver/frame.d.ts +0 -7
  306. package/dist/adapter/deconz/driver/frame.d.ts.map +0 -1
  307. package/dist/adapter/deconz/driver/frame.js +0 -14
  308. package/dist/adapter/deconz/driver/frame.js.map +0 -1
  309. package/dist/adapter/deconz/driver/frameParser.d.ts +0 -3
  310. package/dist/adapter/deconz/driver/frameParser.d.ts.map +0 -1
  311. package/dist/adapter/deconz/driver/frameParser.js +0 -444
  312. package/dist/adapter/deconz/driver/frameParser.js.map +0 -1
  313. package/dist/adapter/deconz/driver/parser.d.ts +0 -13
  314. package/dist/adapter/deconz/driver/parser.d.ts.map +0 -1
  315. package/dist/adapter/deconz/driver/parser.js +0 -64
  316. package/dist/adapter/deconz/driver/parser.js.map +0 -1
  317. package/dist/adapter/deconz/driver/writer.d.ts +0 -9
  318. package/dist/adapter/deconz/driver/writer.d.ts.map +0 -1
  319. package/dist/adapter/deconz/driver/writer.js +0 -45
  320. package/dist/adapter/deconz/driver/writer.js.map +0 -1
  321. package/dist/adapter/ember/adapter/emberAdapter.d.ts +0 -806
  322. package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +0 -1
  323. package/dist/adapter/ember/adapter/emberAdapter.js +0 -2942
  324. package/dist/adapter/ember/adapter/emberAdapter.js.map +0 -1
  325. package/dist/adapter/ember/adapter/endpoints.d.ts +0 -27
  326. package/dist/adapter/ember/adapter/endpoints.d.ts.map +0 -1
  327. package/dist/adapter/ember/adapter/endpoints.js +0 -68
  328. package/dist/adapter/ember/adapter/endpoints.js.map +0 -1
  329. package/dist/adapter/ember/adapter/index.d.ts +0 -3
  330. package/dist/adapter/ember/adapter/index.d.ts.map +0 -1
  331. package/dist/adapter/ember/adapter/index.js +0 -6
  332. package/dist/adapter/ember/adapter/index.js.map +0 -1
  333. package/dist/adapter/ember/adapter/oneWaitress.d.ts +0 -108
  334. package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +0 -1
  335. package/dist/adapter/ember/adapter/oneWaitress.js +0 -241
  336. package/dist/adapter/ember/adapter/oneWaitress.js.map +0 -1
  337. package/dist/adapter/ember/adapter/requestQueue.d.ts +0 -57
  338. package/dist/adapter/ember/adapter/requestQueue.d.ts.map +0 -1
  339. package/dist/adapter/ember/adapter/requestQueue.js +0 -139
  340. package/dist/adapter/ember/adapter/requestQueue.js.map +0 -1
  341. package/dist/adapter/ember/adapter/tokensManager.d.ts +0 -69
  342. package/dist/adapter/ember/adapter/tokensManager.d.ts.map +0 -1
  343. package/dist/adapter/ember/adapter/tokensManager.js +0 -688
  344. package/dist/adapter/ember/adapter/tokensManager.js.map +0 -1
  345. package/dist/adapter/ember/consts.d.ts +0 -191
  346. package/dist/adapter/ember/consts.d.ts.map +0 -1
  347. package/dist/adapter/ember/consts.js +0 -246
  348. package/dist/adapter/ember/consts.js.map +0 -1
  349. package/dist/adapter/ember/enums.d.ts +0 -2172
  350. package/dist/adapter/ember/enums.d.ts.map +0 -1
  351. package/dist/adapter/ember/enums.js +0 -2375
  352. package/dist/adapter/ember/enums.js.map +0 -1
  353. package/dist/adapter/ember/ezsp/buffalo.d.ts +0 -156
  354. package/dist/adapter/ember/ezsp/buffalo.d.ts.map +0 -1
  355. package/dist/adapter/ember/ezsp/buffalo.js +0 -1033
  356. package/dist/adapter/ember/ezsp/buffalo.js.map +0 -1
  357. package/dist/adapter/ember/ezsp/consts.d.ts +0 -116
  358. package/dist/adapter/ember/ezsp/consts.d.ts.map +0 -1
  359. package/dist/adapter/ember/ezsp/consts.js +0 -128
  360. package/dist/adapter/ember/ezsp/consts.js.map +0 -1
  361. package/dist/adapter/ember/ezsp/enums.d.ts +0 -879
  362. package/dist/adapter/ember/ezsp/enums.d.ts.map +0 -1
  363. package/dist/adapter/ember/ezsp/enums.js +0 -948
  364. package/dist/adapter/ember/ezsp/enums.js.map +0 -1
  365. package/dist/adapter/ember/ezsp/ezsp.d.ts +0 -2662
  366. package/dist/adapter/ember/ezsp/ezsp.d.ts.map +0 -1
  367. package/dist/adapter/ember/ezsp/ezsp.js +0 -6454
  368. package/dist/adapter/ember/ezsp/ezsp.js.map +0 -1
  369. package/dist/adapter/ember/types.d.ts +0 -733
  370. package/dist/adapter/ember/types.d.ts.map +0 -1
  371. package/dist/adapter/ember/types.js +0 -3
  372. package/dist/adapter/ember/types.js.map +0 -1
  373. package/dist/adapter/ember/uart/ash.d.ts +0 -464
  374. package/dist/adapter/ember/uart/ash.d.ts.map +0 -1
  375. package/dist/adapter/ember/uart/ash.js +0 -1633
  376. package/dist/adapter/ember/uart/ash.js.map +0 -1
  377. package/dist/adapter/ember/uart/consts.d.ts +0 -91
  378. package/dist/adapter/ember/uart/consts.d.ts.map +0 -1
  379. package/dist/adapter/ember/uart/consts.js +0 -100
  380. package/dist/adapter/ember/uart/consts.js.map +0 -1
  381. package/dist/adapter/ember/uart/enums.d.ts +0 -191
  382. package/dist/adapter/ember/uart/enums.d.ts.map +0 -1
  383. package/dist/adapter/ember/uart/enums.js +0 -197
  384. package/dist/adapter/ember/uart/enums.js.map +0 -1
  385. package/dist/adapter/ember/uart/parser.d.ts +0 -10
  386. package/dist/adapter/ember/uart/parser.d.ts.map +0 -1
  387. package/dist/adapter/ember/uart/parser.js +0 -37
  388. package/dist/adapter/ember/uart/parser.js.map +0 -1
  389. package/dist/adapter/ember/uart/queues.d.ts +0 -85
  390. package/dist/adapter/ember/uart/queues.d.ts.map +0 -1
  391. package/dist/adapter/ember/uart/queues.js +0 -214
  392. package/dist/adapter/ember/uart/queues.js.map +0 -1
  393. package/dist/adapter/ember/uart/writer.d.ts +0 -15
  394. package/dist/adapter/ember/uart/writer.d.ts.map +0 -1
  395. package/dist/adapter/ember/uart/writer.js +0 -46
  396. package/dist/adapter/ember/uart/writer.js.map +0 -1
  397. package/dist/adapter/ember/utils/initters.d.ts +0 -20
  398. package/dist/adapter/ember/utils/initters.d.ts.map +0 -1
  399. package/dist/adapter/ember/utils/initters.js +0 -58
  400. package/dist/adapter/ember/utils/initters.js.map +0 -1
  401. package/dist/adapter/ember/utils/math.d.ts +0 -51
  402. package/dist/adapter/ember/utils/math.d.ts.map +0 -1
  403. package/dist/adapter/ember/utils/math.js +0 -102
  404. package/dist/adapter/ember/utils/math.js.map +0 -1
  405. package/dist/adapter/ember/zdo.d.ts +0 -925
  406. package/dist/adapter/ember/zdo.d.ts.map +0 -1
  407. package/dist/adapter/ember/zdo.js +0 -723
  408. package/dist/adapter/ember/zdo.js.map +0 -1
  409. package/dist/adapter/events.d.ts +0 -42
  410. package/dist/adapter/events.d.ts.map +0 -1
  411. package/dist/adapter/events.js +0 -13
  412. package/dist/adapter/events.js.map +0 -1
  413. package/dist/adapter/ezsp/adapter/backup.d.ts +0 -13
  414. package/dist/adapter/ezsp/adapter/backup.d.ts.map +0 -1
  415. package/dist/adapter/ezsp/adapter/backup.js +0 -101
  416. package/dist/adapter/ezsp/adapter/backup.js.map +0 -1
  417. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +0 -65
  418. package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +0 -1
  419. package/dist/adapter/ezsp/adapter/ezspAdapter.js +0 -634
  420. package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +0 -1
  421. package/dist/adapter/ezsp/adapter/index.d.ts +0 -3
  422. package/dist/adapter/ezsp/adapter/index.d.ts.map +0 -1
  423. package/dist/adapter/ezsp/adapter/index.js +0 -11
  424. package/dist/adapter/ezsp/adapter/index.js.map +0 -1
  425. package/dist/adapter/ezsp/driver/commands.d.ts +0 -37
  426. package/dist/adapter/ezsp/driver/commands.d.ts.map +0 -1
  427. package/dist/adapter/ezsp/driver/commands.js +0 -2387
  428. package/dist/adapter/ezsp/driver/commands.js.map +0 -1
  429. package/dist/adapter/ezsp/driver/consts.d.ts +0 -11
  430. package/dist/adapter/ezsp/driver/consts.d.ts.map +0 -1
  431. package/dist/adapter/ezsp/driver/consts.js +0 -14
  432. package/dist/adapter/ezsp/driver/consts.js.map +0 -1
  433. package/dist/adapter/ezsp/driver/driver.d.ts +0 -109
  434. package/dist/adapter/ezsp/driver/driver.d.ts.map +0 -1
  435. package/dist/adapter/ezsp/driver/driver.js +0 -796
  436. package/dist/adapter/ezsp/driver/driver.js.map +0 -1
  437. package/dist/adapter/ezsp/driver/ezsp.d.ts +0 -106
  438. package/dist/adapter/ezsp/driver/ezsp.d.ts.map +0 -1
  439. package/dist/adapter/ezsp/driver/ezsp.js +0 -664
  440. package/dist/adapter/ezsp/driver/ezsp.js.map +0 -1
  441. package/dist/adapter/ezsp/driver/frame.d.ts +0 -40
  442. package/dist/adapter/ezsp/driver/frame.d.ts.map +0 -1
  443. package/dist/adapter/ezsp/driver/frame.js +0 -101
  444. package/dist/adapter/ezsp/driver/frame.js.map +0 -1
  445. package/dist/adapter/ezsp/driver/index.d.ts +0 -4
  446. package/dist/adapter/ezsp/driver/index.d.ts.map +0 -1
  447. package/dist/adapter/ezsp/driver/index.js +0 -9
  448. package/dist/adapter/ezsp/driver/index.js.map +0 -1
  449. package/dist/adapter/ezsp/driver/multicast.d.ts +0 -13
  450. package/dist/adapter/ezsp/driver/multicast.d.ts.map +0 -1
  451. package/dist/adapter/ezsp/driver/multicast.js +0 -74
  452. package/dist/adapter/ezsp/driver/multicast.js.map +0 -1
  453. package/dist/adapter/ezsp/driver/parser.d.ts +0 -12
  454. package/dist/adapter/ezsp/driver/parser.d.ts.map +0 -1
  455. package/dist/adapter/ezsp/driver/parser.js +0 -105
  456. package/dist/adapter/ezsp/driver/parser.js.map +0 -1
  457. package/dist/adapter/ezsp/driver/types/basic.d.ts +0 -63
  458. package/dist/adapter/ezsp/driver/types/basic.d.ts.map +0 -1
  459. package/dist/adapter/ezsp/driver/types/basic.js +0 -209
  460. package/dist/adapter/ezsp/driver/types/basic.js.map +0 -1
  461. package/dist/adapter/ezsp/driver/types/index.d.ts +0 -10
  462. package/dist/adapter/ezsp/driver/types/index.d.ts.map +0 -1
  463. package/dist/adapter/ezsp/driver/types/index.js +0 -139
  464. package/dist/adapter/ezsp/driver/types/index.js.map +0 -1
  465. package/dist/adapter/ezsp/driver/types/named.d.ts +0 -1288
  466. package/dist/adapter/ezsp/driver/types/named.d.ts.map +0 -1
  467. package/dist/adapter/ezsp/driver/types/named.js +0 -2330
  468. package/dist/adapter/ezsp/driver/types/named.js.map +0 -1
  469. package/dist/adapter/ezsp/driver/types/struct.d.ts +0 -271
  470. package/dist/adapter/ezsp/driver/types/struct.d.ts.map +0 -1
  471. package/dist/adapter/ezsp/driver/types/struct.js +0 -804
  472. package/dist/adapter/ezsp/driver/types/struct.js.map +0 -1
  473. package/dist/adapter/ezsp/driver/uart.d.ts +0 -49
  474. package/dist/adapter/ezsp/driver/uart.d.ts.map +0 -1
  475. package/dist/adapter/ezsp/driver/uart.js +0 -383
  476. package/dist/adapter/ezsp/driver/uart.js.map +0 -1
  477. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts +0 -3
  478. package/dist/adapter/ezsp/driver/utils/crc16ccitt.d.ts.map +0 -1
  479. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js +0 -56
  480. package/dist/adapter/ezsp/driver/utils/crc16ccitt.js.map +0 -1
  481. package/dist/adapter/ezsp/driver/utils/index.d.ts +0 -20
  482. package/dist/adapter/ezsp/driver/utils/index.d.ts.map +0 -1
  483. package/dist/adapter/ezsp/driver/utils/index.js +0 -73
  484. package/dist/adapter/ezsp/driver/utils/index.js.map +0 -1
  485. package/dist/adapter/ezsp/driver/writer.d.ts +0 -14
  486. package/dist/adapter/ezsp/driver/writer.d.ts.map +0 -1
  487. package/dist/adapter/ezsp/driver/writer.js +0 -83
  488. package/dist/adapter/ezsp/driver/writer.js.map +0 -1
  489. package/dist/adapter/index.d.ts +0 -5
  490. package/dist/adapter/index.d.ts.map +0 -1
  491. package/dist/adapter/index.js +0 -36
  492. package/dist/adapter/index.js.map +0 -1
  493. package/dist/adapter/serialPort.d.ts +0 -14
  494. package/dist/adapter/serialPort.d.ts.map +0 -1
  495. package/dist/adapter/serialPort.js +0 -47
  496. package/dist/adapter/serialPort.js.map +0 -1
  497. package/dist/adapter/serialPortUtils.d.ts +0 -13
  498. package/dist/adapter/serialPortUtils.d.ts.map +0 -1
  499. package/dist/adapter/serialPortUtils.js +0 -19
  500. package/dist/adapter/serialPortUtils.js.map +0 -1
  501. package/dist/adapter/socketPortUtils.d.ts +0 -11
  502. package/dist/adapter/socketPortUtils.d.ts.map +0 -1
  503. package/dist/adapter/socketPortUtils.js +0 -17
  504. package/dist/adapter/socketPortUtils.js.map +0 -1
  505. package/dist/adapter/tstype.d.ts +0 -86
  506. package/dist/adapter/tstype.d.ts.map +0 -1
  507. package/dist/adapter/tstype.js +0 -3
  508. package/dist/adapter/tstype.js.map +0 -1
  509. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -62
  510. package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +0 -1
  511. package/dist/adapter/z-stack/adapter/adapter-backup.js +0 -459
  512. package/dist/adapter/z-stack/adapter/adapter-backup.js.map +0 -1
  513. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts +0 -151
  514. package/dist/adapter/z-stack/adapter/adapter-nv-memory.d.ts.map +0 -1
  515. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js +0 -259
  516. package/dist/adapter/z-stack/adapter/adapter-nv-memory.js.map +0 -1
  517. package/dist/adapter/z-stack/adapter/endpoints.d.ts +0 -12
  518. package/dist/adapter/z-stack/adapter/endpoints.d.ts.map +0 -1
  519. package/dist/adapter/z-stack/adapter/endpoints.js +0 -74
  520. package/dist/adapter/z-stack/adapter/endpoints.js.map +0 -1
  521. package/dist/adapter/z-stack/adapter/index.d.ts +0 -3
  522. package/dist/adapter/z-stack/adapter/index.d.ts.map +0 -1
  523. package/dist/adapter/z-stack/adapter/index.js +0 -9
  524. package/dist/adapter/z-stack/adapter/index.js.map +0 -1
  525. package/dist/adapter/z-stack/adapter/manager.d.ts +0 -84
  526. package/dist/adapter/z-stack/adapter/manager.d.ts.map +0 -1
  527. package/dist/adapter/z-stack/adapter/manager.js +0 -474
  528. package/dist/adapter/z-stack/adapter/manager.js.map +0 -1
  529. package/dist/adapter/z-stack/adapter/tstype.d.ts +0 -7
  530. package/dist/adapter/z-stack/adapter/tstype.d.ts.map +0 -1
  531. package/dist/adapter/z-stack/adapter/tstype.js +0 -10
  532. package/dist/adapter/z-stack/adapter/tstype.js.map +0 -1
  533. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +0 -86
  534. package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +0 -1
  535. package/dist/adapter/z-stack/adapter/zStackAdapter.js +0 -912
  536. package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +0 -1
  537. package/dist/adapter/z-stack/constants/af.d.ts +0 -24
  538. package/dist/adapter/z-stack/constants/af.d.ts.map +0 -1
  539. package/dist/adapter/z-stack/constants/af.js +0 -28
  540. package/dist/adapter/z-stack/constants/af.js.map +0 -1
  541. package/dist/adapter/z-stack/constants/common.d.ts +0 -279
  542. package/dist/adapter/z-stack/constants/common.d.ts.map +0 -1
  543. package/dist/adapter/z-stack/constants/common.js +0 -293
  544. package/dist/adapter/z-stack/constants/common.js.map +0 -1
  545. package/dist/adapter/z-stack/constants/dbg.d.ts +0 -23
  546. package/dist/adapter/z-stack/constants/dbg.d.ts.map +0 -1
  547. package/dist/adapter/z-stack/constants/dbg.js +0 -25
  548. package/dist/adapter/z-stack/constants/dbg.js.map +0 -1
  549. package/dist/adapter/z-stack/constants/index.d.ts +0 -11
  550. package/dist/adapter/z-stack/constants/index.d.ts.map +0 -1
  551. package/dist/adapter/z-stack/constants/index.js +0 -48
  552. package/dist/adapter/z-stack/constants/index.js.map +0 -1
  553. package/dist/adapter/z-stack/constants/mac.d.ts +0 -128
  554. package/dist/adapter/z-stack/constants/mac.d.ts.map +0 -1
  555. package/dist/adapter/z-stack/constants/mac.js +0 -130
  556. package/dist/adapter/z-stack/constants/mac.js.map +0 -1
  557. package/dist/adapter/z-stack/constants/sapi.d.ts +0 -25
  558. package/dist/adapter/z-stack/constants/sapi.d.ts.map +0 -1
  559. package/dist/adapter/z-stack/constants/sapi.js +0 -27
  560. package/dist/adapter/z-stack/constants/sapi.js.map +0 -1
  561. package/dist/adapter/z-stack/constants/sys.d.ts +0 -72
  562. package/dist/adapter/z-stack/constants/sys.d.ts.map +0 -1
  563. package/dist/adapter/z-stack/constants/sys.js +0 -74
  564. package/dist/adapter/z-stack/constants/sys.js.map +0 -1
  565. package/dist/adapter/z-stack/constants/util.d.ts +0 -82
  566. package/dist/adapter/z-stack/constants/util.d.ts.map +0 -1
  567. package/dist/adapter/z-stack/constants/util.js +0 -84
  568. package/dist/adapter/z-stack/constants/util.js.map +0 -1
  569. package/dist/adapter/z-stack/constants/utils.d.ts +0 -5
  570. package/dist/adapter/z-stack/constants/utils.d.ts.map +0 -1
  571. package/dist/adapter/z-stack/constants/utils.js +0 -15
  572. package/dist/adapter/z-stack/constants/utils.js.map +0 -1
  573. package/dist/adapter/z-stack/constants/zdo.d.ts +0 -103
  574. package/dist/adapter/z-stack/constants/zdo.d.ts.map +0 -1
  575. package/dist/adapter/z-stack/constants/zdo.js +0 -105
  576. package/dist/adapter/z-stack/constants/zdo.js.map +0 -1
  577. package/dist/adapter/z-stack/models/index.d.ts +0 -2
  578. package/dist/adapter/z-stack/models/index.d.ts.map +0 -1
  579. package/dist/adapter/z-stack/models/index.js +0 -18
  580. package/dist/adapter/z-stack/models/index.js.map +0 -1
  581. package/dist/adapter/z-stack/models/startup-options.d.ts +0 -13
  582. package/dist/adapter/z-stack/models/startup-options.d.ts.map +0 -1
  583. package/dist/adapter/z-stack/models/startup-options.js +0 -3
  584. package/dist/adapter/z-stack/models/startup-options.js.map +0 -1
  585. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts +0 -24
  586. package/dist/adapter/z-stack/structs/entries/address-manager-entry.d.ts.map +0 -1
  587. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js +0 -46
  588. package/dist/adapter/z-stack/structs/entries/address-manager-entry.js.map +0 -1
  589. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts +0 -11
  590. package/dist/adapter/z-stack/structs/entries/address-manager-table.d.ts.map +0 -1
  591. package/dist/adapter/z-stack/structs/entries/address-manager-table.js +0 -23
  592. package/dist/adapter/z-stack/structs/entries/address-manager-table.js.map +0 -1
  593. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts +0 -11
  594. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.d.ts.map +0 -1
  595. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js +0 -22
  596. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-entry.js.map +0 -1
  597. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts +0 -11
  598. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.d.ts.map +0 -1
  599. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js +0 -24
  600. package/dist/adapter/z-stack/structs/entries/aps-link-key-data-table.js.map +0 -1
  601. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts +0 -11
  602. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.d.ts.map +0 -1
  603. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js +0 -25
  604. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-entry.js.map +0 -1
  605. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts +0 -11
  606. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.d.ts.map +0 -1
  607. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js +0 -24
  608. package/dist/adapter/z-stack/structs/entries/aps-tc-link-key-table.js.map +0 -1
  609. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts +0 -9
  610. package/dist/adapter/z-stack/structs/entries/channel-list.d.ts.map +0 -1
  611. package/dist/adapter/z-stack/structs/entries/channel-list.js +0 -16
  612. package/dist/adapter/z-stack/structs/entries/channel-list.js.map +0 -1
  613. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts +0 -9
  614. package/dist/adapter/z-stack/structs/entries/has-configured.d.ts.map +0 -1
  615. package/dist/adapter/z-stack/structs/entries/has-configured.js +0 -17
  616. package/dist/adapter/z-stack/structs/entries/has-configured.js.map +0 -1
  617. package/dist/adapter/z-stack/structs/entries/index.d.ts +0 -17
  618. package/dist/adapter/z-stack/structs/entries/index.d.ts.map +0 -1
  619. package/dist/adapter/z-stack/structs/entries/index.js +0 -33
  620. package/dist/adapter/z-stack/structs/entries/index.js.map +0 -1
  621. package/dist/adapter/z-stack/structs/entries/nib.d.ts +0 -11
  622. package/dist/adapter/z-stack/structs/entries/nib.d.ts.map +0 -1
  623. package/dist/adapter/z-stack/structs/entries/nib.js +0 -69
  624. package/dist/adapter/z-stack/structs/entries/nib.js.map +0 -1
  625. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts +0 -11
  626. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.d.ts.map +0 -1
  627. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js +0 -19
  628. package/dist/adapter/z-stack/structs/entries/nwk-key-descriptor.js.map +0 -1
  629. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts +0 -9
  630. package/dist/adapter/z-stack/structs/entries/nwk-key.d.ts.map +0 -1
  631. package/dist/adapter/z-stack/structs/entries/nwk-key.js +0 -16
  632. package/dist/adapter/z-stack/structs/entries/nwk-key.js.map +0 -1
  633. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts +0 -9
  634. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.d.ts.map +0 -1
  635. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js +0 -16
  636. package/dist/adapter/z-stack/structs/entries/nwk-pan-id.js.map +0 -1
  637. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts +0 -14
  638. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.d.ts.map +0 -1
  639. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js +0 -24
  640. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-entry.js.map +0 -1
  641. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts +0 -11
  642. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.d.ts.map +0 -1
  643. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js +0 -23
  644. package/dist/adapter/z-stack/structs/entries/nwk-sec-material-descriptor-table.js.map +0 -1
  645. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts +0 -21
  646. package/dist/adapter/z-stack/structs/entries/security-manager-entry.d.ts.map +0 -1
  647. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js +0 -37
  648. package/dist/adapter/z-stack/structs/entries/security-manager-entry.js.map +0 -1
  649. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts +0 -11
  650. package/dist/adapter/z-stack/structs/entries/security-manager-table.d.ts.map +0 -1
  651. package/dist/adapter/z-stack/structs/entries/security-manager-table.js +0 -25
  652. package/dist/adapter/z-stack/structs/entries/security-manager-table.js.map +0 -1
  653. package/dist/adapter/z-stack/structs/index.d.ts +0 -5
  654. package/dist/adapter/z-stack/structs/index.d.ts.map +0 -1
  655. package/dist/adapter/z-stack/structs/index.js +0 -21
  656. package/dist/adapter/z-stack/structs/index.js.map +0 -1
  657. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts +0 -14
  658. package/dist/adapter/z-stack/structs/serializable-memory-object.d.ts.map +0 -1
  659. package/dist/adapter/z-stack/structs/serializable-memory-object.js +0 -3
  660. package/dist/adapter/z-stack/structs/serializable-memory-object.js.map +0 -1
  661. package/dist/adapter/z-stack/structs/struct.d.ts +0 -100
  662. package/dist/adapter/z-stack/structs/struct.d.ts.map +0 -1
  663. package/dist/adapter/z-stack/structs/struct.js +0 -297
  664. package/dist/adapter/z-stack/structs/struct.js.map +0 -1
  665. package/dist/adapter/z-stack/structs/table.d.ts +0 -95
  666. package/dist/adapter/z-stack/structs/table.d.ts.map +0 -1
  667. package/dist/adapter/z-stack/structs/table.js +0 -164
  668. package/dist/adapter/z-stack/structs/table.js.map +0 -1
  669. package/dist/adapter/z-stack/unpi/constants.d.ts +0 -29
  670. package/dist/adapter/z-stack/unpi/constants.d.ts.map +0 -1
  671. package/dist/adapter/z-stack/unpi/constants.js +0 -40
  672. package/dist/adapter/z-stack/unpi/constants.js.map +0 -1
  673. package/dist/adapter/z-stack/unpi/frame.d.ts +0 -17
  674. package/dist/adapter/z-stack/unpi/frame.d.ts.map +0 -1
  675. package/dist/adapter/z-stack/unpi/frame.js +0 -55
  676. package/dist/adapter/z-stack/unpi/frame.js.map +0 -1
  677. package/dist/adapter/z-stack/unpi/index.d.ts +0 -6
  678. package/dist/adapter/z-stack/unpi/index.d.ts.map +0 -1
  679. package/dist/adapter/z-stack/unpi/index.js +0 -38
  680. package/dist/adapter/z-stack/unpi/index.js.map +0 -1
  681. package/dist/adapter/z-stack/unpi/parser.d.ts +0 -13
  682. package/dist/adapter/z-stack/unpi/parser.d.ts.map +0 -1
  683. package/dist/adapter/z-stack/unpi/parser.js +0 -86
  684. package/dist/adapter/z-stack/unpi/parser.js.map +0 -1
  685. package/dist/adapter/z-stack/unpi/writer.d.ts +0 -12
  686. package/dist/adapter/z-stack/unpi/writer.d.ts.map +0 -1
  687. package/dist/adapter/z-stack/unpi/writer.js +0 -55
  688. package/dist/adapter/z-stack/unpi/writer.js.map +0 -1
  689. package/dist/adapter/z-stack/utils/channel-list.d.ts +0 -21
  690. package/dist/adapter/z-stack/utils/channel-list.d.ts.map +0 -1
  691. package/dist/adapter/z-stack/utils/channel-list.js +0 -41
  692. package/dist/adapter/z-stack/utils/channel-list.js.map +0 -1
  693. package/dist/adapter/z-stack/utils/index.d.ts +0 -3
  694. package/dist/adapter/z-stack/utils/index.d.ts.map +0 -1
  695. package/dist/adapter/z-stack/utils/index.js +0 -19
  696. package/dist/adapter/z-stack/utils/index.js.map +0 -1
  697. package/dist/adapter/z-stack/utils/network-options.d.ts +0 -9
  698. package/dist/adapter/z-stack/utils/network-options.d.ts.map +0 -1
  699. package/dist/adapter/z-stack/utils/network-options.js +0 -23
  700. package/dist/adapter/z-stack/utils/network-options.js.map +0 -1
  701. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts +0 -14
  702. package/dist/adapter/z-stack/znp/buffaloZnp.d.ts.map +0 -1
  703. package/dist/adapter/z-stack/znp/buffaloZnp.js +0 -243
  704. package/dist/adapter/z-stack/znp/buffaloZnp.js.map +0 -1
  705. package/dist/adapter/z-stack/znp/definition.d.ts +0 -6
  706. package/dist/adapter/z-stack/znp/definition.d.ts.map +0 -1
  707. package/dist/adapter/z-stack/znp/definition.js +0 -3052
  708. package/dist/adapter/z-stack/znp/definition.js.map +0 -1
  709. package/dist/adapter/z-stack/znp/index.d.ts +0 -4
  710. package/dist/adapter/z-stack/znp/index.d.ts.map +0 -1
  711. package/dist/adapter/z-stack/znp/index.js +0 -11
  712. package/dist/adapter/z-stack/znp/index.js.map +0 -1
  713. package/dist/adapter/z-stack/znp/parameterType.d.ts +0 -23
  714. package/dist/adapter/z-stack/znp/parameterType.d.ts.map +0 -1
  715. package/dist/adapter/z-stack/znp/parameterType.js +0 -26
  716. package/dist/adapter/z-stack/znp/parameterType.js.map +0 -1
  717. package/dist/adapter/z-stack/znp/tstype.d.ts +0 -23
  718. package/dist/adapter/z-stack/znp/tstype.d.ts.map +0 -1
  719. package/dist/adapter/z-stack/znp/tstype.js +0 -3
  720. package/dist/adapter/z-stack/znp/tstype.js.map +0 -1
  721. package/dist/adapter/z-stack/znp/znp.d.ts +0 -47
  722. package/dist/adapter/z-stack/znp/znp.d.ts.map +0 -1
  723. package/dist/adapter/z-stack/znp/znp.js +0 -322
  724. package/dist/adapter/z-stack/znp/znp.js.map +0 -1
  725. package/dist/adapter/z-stack/znp/zpiObject.d.ts +0 -20
  726. package/dist/adapter/z-stack/znp/zpiObject.d.ts.map +0 -1
  727. package/dist/adapter/z-stack/znp/zpiObject.js +0 -103
  728. package/dist/adapter/z-stack/znp/zpiObject.js.map +0 -1
  729. package/dist/adapter/zigate/adapter/index.d.ts +0 -3
  730. package/dist/adapter/zigate/adapter/index.d.ts.map +0 -1
  731. package/dist/adapter/zigate/adapter/index.js +0 -11
  732. package/dist/adapter/zigate/adapter/index.js.map +0 -1
  733. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +0 -72
  734. package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +0 -1
  735. package/dist/adapter/zigate/adapter/zigateAdapter.js +0 -681
  736. package/dist/adapter/zigate/adapter/zigateAdapter.js.map +0 -1
  737. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts +0 -18
  738. package/dist/adapter/zigate/driver/buffaloZiGate.d.ts.map +0 -1
  739. package/dist/adapter/zigate/driver/buffaloZiGate.js +0 -190
  740. package/dist/adapter/zigate/driver/buffaloZiGate.js.map +0 -1
  741. package/dist/adapter/zigate/driver/commandType.d.ts +0 -43
  742. package/dist/adapter/zigate/driver/commandType.d.ts.map +0 -1
  743. package/dist/adapter/zigate/driver/commandType.js +0 -390
  744. package/dist/adapter/zigate/driver/commandType.js.map +0 -1
  745. package/dist/adapter/zigate/driver/constants.d.ts +0 -277
  746. package/dist/adapter/zigate/driver/constants.d.ts.map +0 -1
  747. package/dist/adapter/zigate/driver/constants.js +0 -372
  748. package/dist/adapter/zigate/driver/constants.js.map +0 -1
  749. package/dist/adapter/zigate/driver/frame.d.ts +0 -27
  750. package/dist/adapter/zigate/driver/frame.d.ts.map +0 -1
  751. package/dist/adapter/zigate/driver/frame.js +0 -173
  752. package/dist/adapter/zigate/driver/frame.js.map +0 -1
  753. package/dist/adapter/zigate/driver/messageType.d.ts +0 -13
  754. package/dist/adapter/zigate/driver/messageType.d.ts.map +0 -1
  755. package/dist/adapter/zigate/driver/messageType.js +0 -284
  756. package/dist/adapter/zigate/driver/messageType.js.map +0 -1
  757. package/dist/adapter/zigate/driver/parameterType.d.ts +0 -28
  758. package/dist/adapter/zigate/driver/parameterType.d.ts.map +0 -1
  759. package/dist/adapter/zigate/driver/parameterType.js +0 -33
  760. package/dist/adapter/zigate/driver/parameterType.js.map +0 -1
  761. package/dist/adapter/zigate/driver/ziGateObject.d.ts +0 -24
  762. package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +0 -1
  763. package/dist/adapter/zigate/driver/ziGateObject.js +0 -111
  764. package/dist/adapter/zigate/driver/ziGateObject.js.map +0 -1
  765. package/dist/adapter/zigate/driver/zigate.d.ts +0 -50
  766. package/dist/adapter/zigate/driver/zigate.d.ts.map +0 -1
  767. package/dist/adapter/zigate/driver/zigate.js +0 -289
  768. package/dist/adapter/zigate/driver/zigate.js.map +0 -1
  769. package/dist/buffalo/buffalo.d.ts +0 -55
  770. package/dist/buffalo/buffalo.d.ts.map +0 -1
  771. package/dist/buffalo/buffalo.js +0 -230
  772. package/dist/buffalo/buffalo.js.map +0 -1
  773. package/dist/buffalo/index.d.ts +0 -3
  774. package/dist/buffalo/index.d.ts.map +0 -1
  775. package/dist/buffalo/index.js +0 -9
  776. package/dist/buffalo/index.js.map +0 -1
  777. package/dist/controller/controller.d.ts +0 -119
  778. package/dist/controller/controller.d.ts.map +0 -1
  779. package/dist/controller/controller.js +0 -700
  780. package/dist/controller/controller.js.map +0 -1
  781. package/dist/controller/database.d.ts +0 -20
  782. package/dist/controller/database.d.ts.map +0 -1
  783. package/dist/controller/database.js +0 -94
  784. package/dist/controller/database.js.map +0 -1
  785. package/dist/controller/events.d.ts +0 -59
  786. package/dist/controller/events.d.ts.map +0 -1
  787. package/dist/controller/events.js +0 -113
  788. package/dist/controller/events.js.map +0 -1
  789. package/dist/controller/greenPower.d.ts +0 -14
  790. package/dist/controller/greenPower.d.ts.map +0 -1
  791. package/dist/controller/greenPower.js +0 -216
  792. package/dist/controller/greenPower.js.map +0 -1
  793. package/dist/controller/helpers/index.d.ts +0 -3
  794. package/dist/controller/helpers/index.d.ts.map +0 -1
  795. package/dist/controller/helpers/index.js +0 -29
  796. package/dist/controller/helpers/index.js.map +0 -1
  797. package/dist/controller/helpers/request.d.ts +0 -22
  798. package/dist/controller/helpers/request.d.ts.map +0 -1
  799. package/dist/controller/helpers/request.js +0 -78
  800. package/dist/controller/helpers/request.js.map +0 -1
  801. package/dist/controller/helpers/requestQueue.d.ts +0 -13
  802. package/dist/controller/helpers/requestQueue.d.ts.map +0 -1
  803. package/dist/controller/helpers/requestQueue.js +0 -106
  804. package/dist/controller/helpers/requestQueue.js.map +0 -1
  805. package/dist/controller/helpers/zclFrameConverter.d.ts +0 -9
  806. package/dist/controller/helpers/zclFrameConverter.d.ts.map +0 -1
  807. package/dist/controller/helpers/zclFrameConverter.js +0 -70
  808. package/dist/controller/helpers/zclFrameConverter.js.map +0 -1
  809. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts +0 -6
  810. package/dist/controller/helpers/zclTransactionSequenceNumber.d.ts.map +0 -1
  811. package/dist/controller/helpers/zclTransactionSequenceNumber.js +0 -14
  812. package/dist/controller/helpers/zclTransactionSequenceNumber.js.map +0 -1
  813. package/dist/controller/index.d.ts +0 -6
  814. package/dist/controller/index.d.ts.map +0 -1
  815. package/dist/controller/index.js +0 -9
  816. package/dist/controller/index.js.map +0 -1
  817. package/dist/controller/model/device.d.ts +0 -140
  818. package/dist/controller/model/device.d.ts.map +0 -1
  819. package/dist/controller/model/device.js +0 -746
  820. package/dist/controller/model/device.js.map +0 -1
  821. package/dist/controller/model/endpoint.d.ts +0 -134
  822. package/dist/controller/model/endpoint.d.ts.map +0 -1
  823. package/dist/controller/model/endpoint.js +0 -667
  824. package/dist/controller/model/endpoint.js.map +0 -1
  825. package/dist/controller/model/entity.d.ts +0 -15
  826. package/dist/controller/model/entity.d.ts.map +0 -1
  827. package/dist/controller/model/entity.js +0 -27
  828. package/dist/controller/model/entity.js.map +0 -1
  829. package/dist/controller/model/group.d.ts +0 -39
  830. package/dist/controller/model/group.d.ts.map +0 -1
  831. package/dist/controller/model/group.js +0 -226
  832. package/dist/controller/model/group.js.map +0 -1
  833. package/dist/controller/model/index.d.ts +0 -6
  834. package/dist/controller/model/index.d.ts.map +0 -1
  835. package/dist/controller/model/index.js +0 -15
  836. package/dist/controller/model/index.js.map +0 -1
  837. package/dist/controller/model/konnextConfig.d.ts +0 -7
  838. package/dist/controller/model/konnextConfig.d.ts.map +0 -1
  839. package/dist/controller/model/konnextConfig.js +0 -3
  840. package/dist/controller/model/konnextConfig.js.map +0 -1
  841. package/dist/controller/touchlink.d.ts +0 -20
  842. package/dist/controller/touchlink.d.ts.map +0 -1
  843. package/dist/controller/touchlink.js +0 -157
  844. package/dist/controller/touchlink.js.map +0 -1
  845. package/dist/controller/tstype.d.ts +0 -21
  846. package/dist/controller/tstype.d.ts.map +0 -1
  847. package/dist/controller/tstype.js +0 -9
  848. package/dist/controller/tstype.js.map +0 -1
  849. package/dist/index.d.ts +0 -6
  850. package/dist/index.d.ts.map +0 -1
  851. package/dist/index.js +0 -37
  852. package/dist/index.js.map +0 -1
  853. package/dist/models/backup-storage-legacy.d.ts +0 -27
  854. package/dist/models/backup-storage-legacy.d.ts.map +0 -1
  855. package/dist/models/backup-storage-legacy.js +0 -3
  856. package/dist/models/backup-storage-legacy.js.map +0 -1
  857. package/dist/models/backup-storage-unified.d.ts +0 -50
  858. package/dist/models/backup-storage-unified.d.ts.map +0 -1
  859. package/dist/models/backup-storage-unified.js +0 -3
  860. package/dist/models/backup-storage-unified.js.map +0 -1
  861. package/dist/models/backup.d.ts +0 -38
  862. package/dist/models/backup.d.ts.map +0 -1
  863. package/dist/models/backup.js +0 -3
  864. package/dist/models/backup.js.map +0 -1
  865. package/dist/models/index.d.ts +0 -5
  866. package/dist/models/index.d.ts.map +0 -1
  867. package/dist/models/index.js +0 -21
  868. package/dist/models/index.js.map +0 -1
  869. package/dist/models/network-options.d.ts +0 -13
  870. package/dist/models/network-options.d.ts.map +0 -1
  871. package/dist/models/network-options.js +0 -3
  872. package/dist/models/network-options.js.map +0 -1
  873. package/dist/utils/aes.d.ts +0 -40
  874. package/dist/utils/aes.d.ts.map +0 -1
  875. package/dist/utils/aes.js +0 -198
  876. package/dist/utils/aes.js.map +0 -1
  877. package/dist/utils/assertString.d.ts +0 -3
  878. package/dist/utils/assertString.d.ts.map +0 -1
  879. package/dist/utils/assertString.js +0 -9
  880. package/dist/utils/assertString.js.map +0 -1
  881. package/dist/utils/backup.d.ts +0 -21
  882. package/dist/utils/backup.d.ts.map +0 -1
  883. package/dist/utils/backup.js +0 -190
  884. package/dist/utils/backup.js.map +0 -1
  885. package/dist/utils/equalsPartial.d.ts +0 -3
  886. package/dist/utils/equalsPartial.d.ts.map +0 -1
  887. package/dist/utils/equalsPartial.js +0 -12
  888. package/dist/utils/equalsPartial.js.map +0 -1
  889. package/dist/utils/index.d.ts +0 -10
  890. package/dist/utils/index.d.ts.map +0 -1
  891. package/dist/utils/index.js +0 -46
  892. package/dist/utils/index.js.map +0 -1
  893. package/dist/utils/isNumberArray.d.ts +0 -3
  894. package/dist/utils/isNumberArray.d.ts.map +0 -1
  895. package/dist/utils/isNumberArray.js +0 -7
  896. package/dist/utils/isNumberArray.js.map +0 -1
  897. package/dist/utils/logger.d.ts +0 -9
  898. package/dist/utils/logger.d.ts.map +0 -1
  899. package/dist/utils/logger.js +0 -14
  900. package/dist/utils/logger.js.map +0 -1
  901. package/dist/utils/queue.d.ts +0 -12
  902. package/dist/utils/queue.d.ts.map +0 -1
  903. package/dist/utils/queue.js +0 -62
  904. package/dist/utils/queue.js.map +0 -1
  905. package/dist/utils/realpathSync.d.ts +0 -3
  906. package/dist/utils/realpathSync.d.ts.map +0 -1
  907. package/dist/utils/realpathSync.js +0 -13
  908. package/dist/utils/realpathSync.js.map +0 -1
  909. package/dist/utils/wait.d.ts +0 -3
  910. package/dist/utils/wait.d.ts.map +0 -1
  911. package/dist/utils/wait.js +0 -9
  912. package/dist/utils/wait.js.map +0 -1
  913. package/dist/utils/waitress.d.ts +0 -22
  914. package/dist/utils/waitress.d.ts.map +0 -1
  915. package/dist/utils/waitress.js +0 -69
  916. package/dist/utils/waitress.js.map +0 -1
  917. package/dist/zspec/consts.d.ts +0 -60
  918. package/dist/zspec/consts.d.ts.map +0 -1
  919. package/dist/zspec/consts.js +0 -64
  920. package/dist/zspec/consts.js.map +0 -1
  921. package/dist/zspec/enums.d.ts +0 -19
  922. package/dist/zspec/enums.d.ts.map +0 -1
  923. package/dist/zspec/enums.js +0 -28
  924. package/dist/zspec/enums.js.map +0 -1
  925. package/dist/zspec/index.d.ts +0 -4
  926. package/dist/zspec/index.d.ts.map +0 -1
  927. package/dist/zspec/index.js +0 -43
  928. package/dist/zspec/index.js.map +0 -1
  929. package/dist/zspec/tstypes.d.ts +0 -19
  930. package/dist/zspec/tstypes.d.ts.map +0 -1
  931. package/dist/zspec/tstypes.js +0 -3
  932. package/dist/zspec/tstypes.js.map +0 -1
  933. package/dist/zspec/utils.d.ts +0 -14
  934. package/dist/zspec/utils.d.ts.map +0 -1
  935. package/dist/zspec/utils.js +0 -29
  936. package/dist/zspec/utils.js.map +0 -1
  937. package/dist/zspec/zcl/buffaloZcl.d.ts +0 -55
  938. package/dist/zspec/zcl/buffaloZcl.d.ts.map +0 -1
  939. package/dist/zspec/zcl/buffaloZcl.js +0 -929
  940. package/dist/zspec/zcl/buffaloZcl.js.map +0 -1
  941. package/dist/zspec/zcl/definition/cluster.d.ts +0 -3
  942. package/dist/zspec/zcl/definition/cluster.d.ts.map +0 -1
  943. package/dist/zspec/zcl/definition/cluster.js +0 -5500
  944. package/dist/zspec/zcl/definition/cluster.js.map +0 -1
  945. package/dist/zspec/zcl/definition/consts.d.ts +0 -9
  946. package/dist/zspec/zcl/definition/consts.d.ts.map +0 -1
  947. package/dist/zspec/zcl/definition/consts.js +0 -27
  948. package/dist/zspec/zcl/definition/consts.js.map +0 -1
  949. package/dist/zspec/zcl/definition/enums.d.ts +0 -177
  950. package/dist/zspec/zcl/definition/enums.d.ts.map +0 -1
  951. package/dist/zspec/zcl/definition/enums.js +0 -187
  952. package/dist/zspec/zcl/definition/enums.js.map +0 -1
  953. package/dist/zspec/zcl/definition/foundation.d.ts +0 -11
  954. package/dist/zspec/zcl/definition/foundation.d.ts.map +0 -1
  955. package/dist/zspec/zcl/definition/foundation.js +0 -241
  956. package/dist/zspec/zcl/definition/foundation.js.map +0 -1
  957. package/dist/zspec/zcl/definition/manufacturerCode.d.ts +0 -727
  958. package/dist/zspec/zcl/definition/manufacturerCode.d.ts.map +0 -1
  959. package/dist/zspec/zcl/definition/manufacturerCode.js +0 -733
  960. package/dist/zspec/zcl/definition/manufacturerCode.js.map +0 -1
  961. package/dist/zspec/zcl/definition/status.d.ts +0 -69
  962. package/dist/zspec/zcl/definition/status.d.ts.map +0 -1
  963. package/dist/zspec/zcl/definition/status.js +0 -74
  964. package/dist/zspec/zcl/definition/status.js.map +0 -1
  965. package/dist/zspec/zcl/definition/tstype.d.ts +0 -114
  966. package/dist/zspec/zcl/definition/tstype.d.ts.map +0 -1
  967. package/dist/zspec/zcl/definition/tstype.js +0 -4
  968. package/dist/zspec/zcl/definition/tstype.js.map +0 -1
  969. package/dist/zspec/zcl/index.d.ts +0 -11
  970. package/dist/zspec/zcl/index.d.ts.map +0 -1
  971. package/dist/zspec/zcl/index.js +0 -47
  972. package/dist/zspec/zcl/index.js.map +0 -1
  973. package/dist/zspec/zcl/utils.d.ts +0 -7
  974. package/dist/zspec/zcl/utils.d.ts.map +0 -1
  975. package/dist/zspec/zcl/utils.js +0 -234
  976. package/dist/zspec/zcl/utils.js.map +0 -1
  977. package/dist/zspec/zcl/zclFrame.d.ts +0 -36
  978. package/dist/zspec/zcl/zclFrame.d.ts.map +0 -1
  979. package/dist/zspec/zcl/zclFrame.js +0 -304
  980. package/dist/zspec/zcl/zclFrame.js.map +0 -1
  981. package/dist/zspec/zcl/zclHeader.d.ts +0 -17
  982. package/dist/zspec/zcl/zclHeader.d.ts.map +0 -1
  983. package/dist/zspec/zcl/zclHeader.js +0 -88
  984. package/dist/zspec/zcl/zclHeader.js.map +0 -1
  985. package/dist/zspec/zcl/zclStatusError.d.ts +0 -6
  986. package/dist/zspec/zcl/zclStatusError.d.ts.map +0 -1
  987. package/dist/zspec/zcl/zclStatusError.js +0 -13
  988. package/dist/zspec/zcl/zclStatusError.js.map +0 -1
  989. package/dist/zspec/zdo/buffaloZdo.d.ts +0 -438
  990. package/dist/zspec/zdo/buffaloZdo.d.ts.map +0 -1
  991. package/dist/zspec/zdo/buffaloZdo.js +0 -1892
  992. package/dist/zspec/zdo/buffaloZdo.js.map +0 -1
  993. package/dist/zspec/zdo/definition/clusters.d.ts +0 -624
  994. package/dist/zspec/zdo/definition/clusters.d.ts.map +0 -1
  995. package/dist/zspec/zdo/definition/clusters.js +0 -687
  996. package/dist/zspec/zdo/definition/clusters.js.map +0 -1
  997. package/dist/zspec/zdo/definition/consts.d.ts +0 -13
  998. package/dist/zspec/zdo/definition/consts.d.ts.map +0 -1
  999. package/dist/zspec/zdo/definition/consts.js +0 -16
  1000. package/dist/zspec/zdo/definition/consts.js.map +0 -1
  1001. package/dist/zspec/zdo/definition/enums.d.ts +0 -75
  1002. package/dist/zspec/zdo/definition/enums.d.ts.map +0 -1
  1003. package/dist/zspec/zdo/definition/enums.js +0 -97
  1004. package/dist/zspec/zdo/definition/enums.js.map +0 -1
  1005. package/dist/zspec/zdo/definition/status.d.ts +0 -99
  1006. package/dist/zspec/zdo/definition/status.d.ts.map +0 -1
  1007. package/dist/zspec/zdo/definition/status.js +0 -109
  1008. package/dist/zspec/zdo/definition/status.js.map +0 -1
  1009. package/dist/zspec/zdo/definition/tstypes.d.ts +0 -787
  1010. package/dist/zspec/zdo/definition/tstypes.d.ts.map +0 -1
  1011. package/dist/zspec/zdo/definition/tstypes.js +0 -3
  1012. package/dist/zspec/zdo/definition/tstypes.js.map +0 -1
  1013. package/dist/zspec/zdo/index.d.ts +0 -7
  1014. package/dist/zspec/zdo/index.d.ts.map +0 -1
  1015. package/dist/zspec/zdo/index.js +0 -39
  1016. package/dist/zspec/zdo/index.js.map +0 -1
  1017. package/dist/zspec/zdo/utils.d.ts +0 -25
  1018. package/dist/zspec/zdo/utils.d.ts.map +0 -1
  1019. package/dist/zspec/zdo/utils.js +0 -75
  1020. package/dist/zspec/zdo/utils.js.map +0 -1
  1021. package/dist/zspec/zdo/zdoStatusError.d.ts +0 -6
  1022. package/dist/zspec/zdo/zdoStatusError.d.ts.map +0 -1
  1023. package/dist/zspec/zdo/zdoStatusError.js +0 -13
  1024. package/dist/zspec/zdo/zdoStatusError.js.map +0 -1
  1025. package/typedoc-tsconfig.json +0 -44
@@ -0,0 +1,1073 @@
1
+ import {Buffalo} from "../../buffalo";
2
+ import {logger} from "../../utils/logger";
3
+ import {isNumberArray} from "../../utils/utils";
4
+ import {ZCL_TYPE_INVALID_BY_TYPE, ZclType} from "./definition/datatypes";
5
+ import {BuffaloZclDataType, DataType, StructuredIndicatorType} from "./definition/enums";
6
+ import type {
7
+ BuffaloZclOptions,
8
+ ExtensionFieldSet,
9
+ Gpd,
10
+ GpdAttributeReport,
11
+ GpdChannelConfiguration,
12
+ GpdChannelRequest,
13
+ GpdCommissioningReply,
14
+ GpdCustomReply,
15
+ KeyZclValue,
16
+ MiboxerZone,
17
+ Struct,
18
+ StructuredSelector,
19
+ ThermoTransition,
20
+ TuyaDataPointValue,
21
+ ZclArray,
22
+ ZclDate,
23
+ ZclTimeOfDay,
24
+ ZoneInfo,
25
+ } from "./definition/tstype";
26
+ import * as Utils from "./utils";
27
+
28
+ const NS = "zh:zcl:buffalo";
29
+
30
+ const UINT8_NON_VALUE = ZCL_TYPE_INVALID_BY_TYPE[ZclType.Uint8] as number;
31
+ const UINT16_NON_VALUE = ZCL_TYPE_INVALID_BY_TYPE[ZclType.Uint16] as number;
32
+
33
+ const SEC_KEY_LENGTH = 16;
34
+
35
+ const EXTENSION_FIELD_SETS_DATA_TYPE: {[key: number]: DataType[]} = {
36
+ 6: [DataType.UINT8],
37
+ 8: [DataType.UINT8],
38
+ 258: [DataType.UINT8, DataType.UINT8],
39
+ 768: [DataType.UINT16, DataType.UINT16, DataType.UINT16, DataType.UINT8, DataType.UINT8, DataType.UINT8, DataType.UINT16, DataType.UINT16],
40
+ };
41
+
42
+ export class BuffaloZcl extends Buffalo {
43
+ private readLengthUInt8(): number {
44
+ const value = this.readUInt8();
45
+
46
+ return value === UINT8_NON_VALUE ? Number.NaN : value;
47
+ }
48
+
49
+ private readLengthUInt16(): number {
50
+ const value = this.readUInt16();
51
+
52
+ return value === UINT16_NON_VALUE ? Number.NaN : value;
53
+ }
54
+
55
+ private writeOctetStr(value?: number[]): void {
56
+ if (value) {
57
+ this.writeUInt8(value.length);
58
+ this.writeBuffer(value, value.length);
59
+ } else {
60
+ this.writeUInt8(UINT8_NON_VALUE);
61
+ }
62
+ }
63
+
64
+ private readOctetStr(): Buffer {
65
+ const length = this.readLengthUInt8();
66
+ return Number.isNaN(length) ? Buffer.from([]) : this.readBuffer(length);
67
+ }
68
+
69
+ // TODO: support read/write with specific `length` from attribute metadata (CHAR_STR & LONG_CHAR_STR)
70
+ private writeCharStr(value?: string | number[]): void {
71
+ // In case of an empty string, send 0 length, from the spec:
72
+ // "Setting this sub-field to 0x00 represents a character string with no character data (an “empty string”). Setting
73
+ // this sub-field to 0xff represents the non-value. In both cases the character data sub-field has zero length."
74
+ if (value != null) {
75
+ if (typeof value === "string") {
76
+ this.writeUInt8(Buffer.byteLength(value, "utf8"));
77
+ this.writeUtf8String(value);
78
+ } else {
79
+ // XXX: value.length not written?
80
+ this.writeBuffer(value, value.length);
81
+ }
82
+ } else {
83
+ this.writeUInt8(UINT8_NON_VALUE);
84
+ }
85
+ }
86
+
87
+ private readCharStr(): string {
88
+ const length = this.readLengthUInt8();
89
+
90
+ return Number.isNaN(length) ? "" : this.readUtf8String(length);
91
+ }
92
+
93
+ private writeLongOctetStr(value?: number[]): void {
94
+ if (value) {
95
+ this.writeUInt16(value.length);
96
+ this.writeBuffer(value, value.length);
97
+ } else {
98
+ this.writeUInt16(UINT16_NON_VALUE);
99
+ }
100
+ }
101
+
102
+ private readLongOctetStr(): Buffer {
103
+ const length = this.readLengthUInt16();
104
+ return Number.isNaN(length) ? Buffer.from([]) : this.readBuffer(length);
105
+ }
106
+
107
+ private writeLongCharStr(value?: string): void {
108
+ // In case of an empty string, send 0 length, from the spec:
109
+ // "Setting this sub-field to 0x0000 represents a long character string with no character data (an “empty string”).
110
+ // Setting this sub-field to 0xffff represents an non-value long character string value. In both cases the character
111
+ // data sub-field has zero length"
112
+ if (value != null) {
113
+ this.writeUInt16(Buffer.byteLength(value, "utf8"));
114
+ this.writeUtf8String(value);
115
+ } else {
116
+ this.writeUInt16(UINT16_NON_VALUE);
117
+ }
118
+ }
119
+
120
+ private readLongCharStr(): string {
121
+ const length = this.readLengthUInt16();
122
+ return Number.isNaN(length) ? "" : this.readUtf8String(length);
123
+ }
124
+
125
+ private writeArray(value?: ZclArray): void {
126
+ if (value) {
127
+ const elTypeNumeric = typeof value.elementType === "number" ? value.elementType : DataType[value.elementType];
128
+ this.writeUInt8(elTypeNumeric);
129
+ this.writeUInt16(value.elements.length);
130
+
131
+ for (const element of value.elements) {
132
+ this.write(elTypeNumeric, element, {});
133
+ }
134
+ } else {
135
+ this.writeUInt8(DataType.NO_DATA); // XXX: correct value?
136
+ this.writeUInt16(UINT16_NON_VALUE);
137
+ }
138
+ }
139
+
140
+ // TODO: support read [] with specific length (`arrayLengthSize` & `arrayLengthField`) from parameter metadata
141
+ private readArray(): unknown[] {
142
+ const values: unknown[] = [];
143
+
144
+ const elementType = this.readUInt8();
145
+ const numberOfElements = this.readLengthUInt16();
146
+
147
+ if (!Number.isNaN(numberOfElements)) {
148
+ // not non-value
149
+ for (let i = 0; i < numberOfElements; i++) {
150
+ const value = this.read(elementType, {});
151
+ values.push(value);
152
+ }
153
+ }
154
+
155
+ return values;
156
+ }
157
+
158
+ private writeStruct(value?: Struct[]): void {
159
+ if (value) {
160
+ this.writeUInt16(value.length);
161
+
162
+ for (const v of value) {
163
+ this.writeUInt8(v.elmType);
164
+ this.write(v.elmType, v.elmVal, {});
165
+ }
166
+ } else {
167
+ this.writeUInt16(UINT16_NON_VALUE);
168
+ }
169
+ }
170
+
171
+ private readStruct(): Struct[] {
172
+ const values: Struct[] = [];
173
+ const numberOfElements = this.readLengthUInt16();
174
+
175
+ if (!Number.isNaN(numberOfElements)) {
176
+ // not non-value
177
+ for (let i = 0; i < numberOfElements; i++) {
178
+ const elementType = this.readUInt8();
179
+ const value = this.read(elementType, {});
180
+ values.push({elmType: elementType, elmVal: value});
181
+ }
182
+ }
183
+
184
+ return values;
185
+ }
186
+
187
+ private writeToD(value: ZclTimeOfDay): void {
188
+ this.writeUInt8(value.hours == null || Number.isNaN(value.hours) ? UINT8_NON_VALUE : value.hours);
189
+ this.writeUInt8(value.minutes == null || Number.isNaN(value.minutes) ? UINT8_NON_VALUE : value.minutes);
190
+ this.writeUInt8(value.seconds == null || Number.isNaN(value.seconds) ? UINT8_NON_VALUE : value.seconds);
191
+ this.writeUInt8(value.hundredths == null || Number.isNaN(value.hundredths) ? UINT8_NON_VALUE : value.hundredths);
192
+ }
193
+
194
+ private readToD(): ZclTimeOfDay {
195
+ const hours = this.readLengthUInt8();
196
+ const minutes = this.readLengthUInt8();
197
+ const seconds = this.readLengthUInt8();
198
+ const hundredths = this.readLengthUInt8();
199
+
200
+ return {
201
+ hours,
202
+ minutes,
203
+ seconds,
204
+ hundredths,
205
+ };
206
+ }
207
+
208
+ private writeDate(value: ZclDate): void {
209
+ this.writeUInt8(value.year == null || Number.isNaN(value.year) ? UINT8_NON_VALUE : value.year - 1900);
210
+ this.writeUInt8(value.month == null || Number.isNaN(value.month) ? UINT8_NON_VALUE : value.month);
211
+ this.writeUInt8(value.dayOfMonth == null || Number.isNaN(value.dayOfMonth) ? UINT8_NON_VALUE : value.dayOfMonth);
212
+ this.writeUInt8(value.dayOfWeek == null || Number.isNaN(value.dayOfWeek) ? UINT8_NON_VALUE : value.dayOfWeek);
213
+ }
214
+
215
+ private readDate(): ZclDate {
216
+ const year = this.readLengthUInt8();
217
+ const month = this.readLengthUInt8();
218
+ const dayOfMonth = this.readLengthUInt8();
219
+ const dayOfWeek = this.readLengthUInt8();
220
+
221
+ return {
222
+ year: year + 1900, // remains NaN if year is NaN
223
+ month,
224
+ dayOfMonth,
225
+ dayOfWeek,
226
+ };
227
+ }
228
+
229
+ //--- BuffaloZclDataType
230
+
231
+ private writeListZoneInfo(values: ZoneInfo[]): void {
232
+ for (const value of values) {
233
+ this.writeUInt8(value.zoneID);
234
+ this.writeUInt16(value.zoneStatus);
235
+ }
236
+ }
237
+
238
+ private readListZoneInfo(length: number): ZoneInfo[] {
239
+ const value: ZoneInfo[] = [];
240
+ for (let i = 0; i < length; i++) {
241
+ value.push({
242
+ zoneID: this.readUInt8(),
243
+ zoneStatus: this.readUInt16(),
244
+ });
245
+ }
246
+
247
+ return value;
248
+ }
249
+
250
+ private writeExtensionFieldSets(values: {clstId: number; len: number; extField: number[]}[]): void {
251
+ for (const value of values) {
252
+ this.writeUInt16(value.clstId);
253
+ this.writeUInt8(value.len);
254
+ let index = 0;
255
+
256
+ for (const entry of value.extField) {
257
+ this.write(EXTENSION_FIELD_SETS_DATA_TYPE[value.clstId][index], entry, {});
258
+ index++;
259
+ }
260
+ }
261
+ }
262
+
263
+ private readExtensionFieldSets(): ExtensionFieldSet[] {
264
+ const value: ExtensionFieldSet[] = [];
265
+
266
+ // XXX: doesn't work if buffer has more unrelated fields after this one
267
+ while (this.isMore()) {
268
+ const clstId = this.readUInt16();
269
+ const len = this.readUInt8();
270
+ const end = this.getPosition() + len;
271
+ let index = 0;
272
+ const extField: unknown[] = [];
273
+
274
+ while (this.getPosition() < end) {
275
+ extField.push(this.read(EXTENSION_FIELD_SETS_DATA_TYPE[clstId][index], {}));
276
+ index++;
277
+ }
278
+
279
+ value.push({extField, clstId, len});
280
+ }
281
+
282
+ return value;
283
+ }
284
+
285
+ private writeListThermoTransitions(value: ThermoTransition[]): void {
286
+ for (const entry of value) {
287
+ this.writeUInt16(entry.transitionTime);
288
+
289
+ if (entry.heatSetpoint != null) {
290
+ this.writeInt16(entry.heatSetpoint);
291
+ }
292
+
293
+ if (entry.coolSetpoint != null) {
294
+ this.writeInt16(entry.coolSetpoint);
295
+ }
296
+ }
297
+ }
298
+
299
+ private readListThermoTransitions(options: BuffaloZclOptions): ThermoTransition[] {
300
+ if (options.payload == null || options.payload.mode == null || options.payload.numoftrans == null) {
301
+ throw new Error("Cannot read LIST_THERMO_TRANSITIONS without required payload options specified");
302
+ }
303
+
304
+ const heat = options.payload.mode & 1;
305
+ const cool = options.payload.mode & 2;
306
+ const result: ThermoTransition[] = [];
307
+
308
+ for (let i = 0; i < options.payload.numoftrans; i++) {
309
+ const entry: ThermoTransition = {
310
+ transitionTime: this.readUInt16(),
311
+ };
312
+
313
+ if (heat) {
314
+ entry.heatSetpoint = this.readInt16();
315
+ }
316
+
317
+ if (cool) {
318
+ entry.coolSetpoint = this.readInt16();
319
+ }
320
+
321
+ result.push(entry);
322
+ }
323
+
324
+ return result;
325
+ }
326
+
327
+ private writeGpdFrame(value: GpdCommissioningReply | GpdChannelConfiguration | GpdCustomReply): void {
328
+ if (value.commandID === 0xf0) {
329
+ // Commissioning Reply
330
+ const v = value as GpdCommissioningReply;
331
+
332
+ const panIDPresent = Boolean(v.options & 0x1);
333
+ const gpdSecurityKeyPresent = Boolean(v.options & 0x2);
334
+ const gpdKeyEncryption = Boolean((v.options >> 2) & 0x1);
335
+ const securityLevel = (v.options >> 3) & 0x3;
336
+ const hasGPDKeyMIC = gpdKeyEncryption && gpdSecurityKeyPresent;
337
+ const hasFrameCounter = gpdSecurityKeyPresent && gpdKeyEncryption && (securityLevel === 0b10 || securityLevel === 0b11);
338
+
339
+ this.writeUInt8(1 + (panIDPresent ? 2 : 0) + (gpdSecurityKeyPresent ? 16 : 0) + (hasGPDKeyMIC ? 4 : 0) + (hasFrameCounter ? 4 : 0)); // Length
340
+ this.writeUInt8(v.options);
341
+
342
+ if (panIDPresent) {
343
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
344
+ this.writeUInt16(v.panID!);
345
+ }
346
+
347
+ if (gpdSecurityKeyPresent) {
348
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
349
+ this.writeBuffer(v.securityKey!, 16);
350
+ }
351
+
352
+ if (hasGPDKeyMIC) {
353
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
354
+ this.writeUInt32(v.keyMic!);
355
+ }
356
+
357
+ if (hasFrameCounter) {
358
+ // biome-ignore lint/style/noNonNullAssertion: ignored using `--suppress`
359
+ this.writeUInt32(v.frameCounter!);
360
+ }
361
+ } else if (value.commandID === 0xf3) {
362
+ // Channel configuration
363
+ const v = value as GpdChannelConfiguration;
364
+
365
+ this.writeUInt8(1);
366
+ this.writeUInt8((v.operationalChannel & 0xf) | ((v.basic ? 1 : 0) << 4));
367
+ } else if (value.commandID === 0xf4 || value.commandID === 0xf5 || (value.commandID >= 0xf7 && value.commandID <= 0xff)) {
368
+ // Other commands sent to GPD
369
+ const v = value as GpdCustomReply;
370
+
371
+ this.writeUInt8(v.buffer.length);
372
+ this.writeBuffer(v.buffer, v.buffer.length);
373
+ }
374
+ // 0xf1: Write Attributes
375
+ // 0xf2: Read Attributes
376
+ // 0xf6: ZCL Tunneling
377
+ }
378
+
379
+ private readGpdFrame(options: BuffaloZclOptions): Gpd | GpdChannelRequest | GpdAttributeReport | {raw: Buffer} | Record<string, never> {
380
+ if (options.payload?.payloadSize === undefined) {
381
+ throw new Error("Cannot read GPD_FRAME without required payload options specified");
382
+ }
383
+
384
+ if (Number.isNaN(options.payload.payloadSize) || options.payload.payloadSize === 0) {
385
+ return {}; // non-value, don't move position
386
+ }
387
+
388
+ // ensure offset by options.payload.payloadSize (if any) at end of parsing to not cause issues with spec changes (until supported)
389
+ const startPosition = this.position;
390
+
391
+ if (options.payload.commandID === 0xe0) {
392
+ // Commisioning
393
+ const frame = {
394
+ deviceID: this.readUInt8(),
395
+ options: this.readUInt8(),
396
+ extendedOptions: 0,
397
+ securityKey: Buffer.alloc(16) as Buffer<ArrayBufferLike>,
398
+ keyMic: 0,
399
+ outgoingCounter: 0,
400
+ applicationInfo: 0,
401
+ manufacturerID: 0,
402
+ modelID: 0,
403
+ numGpdCommands: 0,
404
+ gpdCommandIdList: Buffer.alloc(0) as Buffer<ArrayBufferLike>,
405
+ numServerClusters: 0,
406
+ numClientClusters: 0,
407
+ gpdServerClusters: Buffer.alloc(0) as Buffer<ArrayBufferLike>,
408
+ gpdClientClusters: Buffer.alloc(0) as Buffer<ArrayBufferLike>,
409
+ genericSwitchConfig: 0,
410
+ currentContactStatus: 0,
411
+ };
412
+
413
+ if (frame.options & 0x80) {
414
+ frame.extendedOptions = this.readUInt8();
415
+ }
416
+
417
+ if (frame.extendedOptions & 0x20) {
418
+ frame.securityKey = this.readBuffer(16);
419
+ }
420
+
421
+ if (frame.extendedOptions & 0x40) {
422
+ frame.keyMic = this.readUInt32();
423
+ }
424
+
425
+ if (frame.extendedOptions & 0x80) {
426
+ frame.outgoingCounter = this.readUInt32();
427
+ }
428
+
429
+ if (frame.options & 0x04) {
430
+ frame.applicationInfo = this.readUInt8();
431
+ }
432
+
433
+ if (frame.applicationInfo & 0x01) {
434
+ frame.manufacturerID = this.readUInt16();
435
+ }
436
+
437
+ if (frame.applicationInfo & 0x02) {
438
+ frame.modelID = this.readUInt16();
439
+ }
440
+
441
+ if (frame.applicationInfo & 0x04) {
442
+ frame.numGpdCommands = this.readUInt8();
443
+ frame.gpdCommandIdList = this.readBuffer(frame.numGpdCommands);
444
+ }
445
+
446
+ if (frame.applicationInfo & 0x08) {
447
+ const len = this.readUInt8();
448
+ frame.numServerClusters = len & 0xf;
449
+ frame.numClientClusters = (len >> 4) & 0xf;
450
+
451
+ frame.gpdServerClusters = this.readBuffer(2 * frame.numServerClusters);
452
+ frame.gpdClientClusters = this.readBuffer(2 * frame.numClientClusters);
453
+ }
454
+
455
+ if (frame.applicationInfo & 0x10) {
456
+ const len = this.readUInt8();
457
+
458
+ if (len >= 1) {
459
+ frame.genericSwitchConfig = this.readUInt8();
460
+ }
461
+
462
+ if (len >= 2) {
463
+ frame.currentContactStatus = this.readUInt8();
464
+ }
465
+ }
466
+
467
+ this.setPosition(startPosition + options.payload.payloadSize);
468
+
469
+ return frame;
470
+ }
471
+
472
+ if (options.payload.commandID === 0xe3) {
473
+ // Channel Request
474
+ const channelOpts = this.readUInt8();
475
+
476
+ this.setPosition(startPosition + options.payload.payloadSize);
477
+
478
+ return {
479
+ nextChannel: channelOpts & 0xf,
480
+ nextNextChannel: channelOpts >> 4,
481
+ };
482
+ }
483
+
484
+ if (options.payload.commandID === 0xa1) {
485
+ // Manufacturer-specific Attribute Reporting
486
+ const start = this.position;
487
+ const frame = {
488
+ manufacturerCode: this.readUInt16(),
489
+ clusterID: this.readUInt16(),
490
+ attributes: {} as KeyZclValue,
491
+ };
492
+
493
+ const cluster = Utils.getCluster(frame.clusterID, frame.manufacturerCode, {});
494
+
495
+ while (this.position - start < options.payload.payloadSize) {
496
+ const attributeID = this.readUInt16();
497
+ const type = this.readUInt8();
498
+ /* v8 ignore next */
499
+ let attribute: string | undefined | number = cluster.getAttribute(attributeID)?.name;
500
+
501
+ // number type is only used when going into this if
502
+ if (!attribute) {
503
+ // this is spammy because of the many manufacturer-specific attributes not currently used
504
+ logger.debug(`Unknown attribute ${attributeID} in cluster ${cluster.name}`, NS);
505
+
506
+ attribute = attributeID;
507
+ }
508
+
509
+ frame.attributes[attribute] = this.read(type, options);
510
+ }
511
+
512
+ this.setPosition(startPosition + options.payload.payloadSize);
513
+
514
+ return frame;
515
+ }
516
+
517
+ // might contain `gppNwkAddr`, `gppGpdLink` & `mic` from ZCL cluster after this, so limit by `payloadSize`
518
+ return {raw: this.readBuffer(options.payload.payloadSize)};
519
+ }
520
+
521
+ private writeStructuredSelector(value: StructuredSelector): void {
522
+ if (value != null) {
523
+ const indexes = value.indexes || [];
524
+ const indicatorType = value.indicatorType || StructuredIndicatorType.Whole;
525
+ const indicator = indexes.length + indicatorType;
526
+
527
+ this.writeUInt8(indicator);
528
+
529
+ for (const index of indexes) {
530
+ this.writeUInt16(index);
531
+ }
532
+ }
533
+ }
534
+
535
+ private readStructuredSelector(): StructuredSelector {
536
+ /** [0-15] range */
537
+ const indicator = this.readUInt8();
538
+
539
+ if (indicator === 0) {
540
+ // no indexes, whole attribute value is to be read
541
+ return {indicatorType: StructuredIndicatorType.Whole};
542
+ }
543
+
544
+ if (indicator < StructuredIndicatorType.WriteAdd) {
545
+ const indexes: StructuredSelector["indexes"] = [];
546
+
547
+ for (let i = 0; i < indicator; i++) {
548
+ const index = this.readUInt16();
549
+ indexes.push(index);
550
+ }
551
+
552
+ return {indexes};
553
+ }
554
+
555
+ throw new Error("Read structured selector was outside [0-15] range.");
556
+ }
557
+
558
+ private writeListTuyaDataPointValues(dpValues: TuyaDataPointValue[]): void {
559
+ for (const dpValue of dpValues) {
560
+ this.writeUInt8(dpValue.dp);
561
+ this.writeUInt8(dpValue.datatype);
562
+ const dataLen = dpValue.data.length;
563
+ // UInt16BE
564
+ this.writeUInt8((dataLen >> 8) & 0xff);
565
+ this.writeUInt8(dataLen & 0xff);
566
+ this.writeBuffer(dpValue.data, dataLen);
567
+ }
568
+ }
569
+
570
+ private readListTuyaDataPointValues(): TuyaDataPointValue[] {
571
+ const value: TuyaDataPointValue[] = [];
572
+
573
+ // XXX: doesn't work if buffer has more unrelated fields after this one
574
+ while (this.isMore()) {
575
+ try {
576
+ const dp = this.readUInt8();
577
+ const datatype = this.readUInt8();
578
+ const len_hi = this.readUInt8();
579
+ const len_lo = this.readUInt8();
580
+ const data = this.readBuffer(len_lo + (len_hi << 8));
581
+ value.push({dp, datatype, data});
582
+ } catch {
583
+ break;
584
+ }
585
+ }
586
+
587
+ return value;
588
+ }
589
+
590
+ private writeListMiboxerZones(values: MiboxerZone[]): void {
591
+ this.writeUInt8(values.length);
592
+
593
+ for (const value of values) {
594
+ this.writeUInt16(value.groupId);
595
+ this.writeUInt8(value.zoneNum);
596
+ }
597
+ }
598
+
599
+ private readListMiboxerZones(): MiboxerZone[] {
600
+ const value: MiboxerZone[] = [];
601
+ const len = this.readUInt8();
602
+
603
+ for (let i = 0; i < len; i++) {
604
+ const groupId = this.readUInt16();
605
+ const zoneNum = this.readUInt8();
606
+
607
+ value.push({groupId, zoneNum});
608
+ }
609
+
610
+ return value;
611
+ }
612
+
613
+ private writeBigEndianUInt24(value: number): void {
614
+ this.position = this.buffer.writeUIntBE(value, this.position, 3);
615
+ }
616
+
617
+ private readBigEndianUInt24(): number {
618
+ const value = this.buffer.readUIntBE(this.position, 3);
619
+ this.position += 3;
620
+ return value;
621
+ }
622
+
623
+ // NOTE: writeMiStruct is not supported.
624
+ private readMiStruct(): Record<number, number | number[]> {
625
+ const length = this.readUInt8();
626
+ const value: Record<number, number | number[]> = {};
627
+
628
+ if (length === UINT8_NON_VALUE) {
629
+ return value;
630
+ }
631
+
632
+ for (let i = 0; i < length; i++) {
633
+ const index = this.readUInt8();
634
+ const dataType = this.readUInt8();
635
+ value[index] = this.read(dataType, {});
636
+
637
+ const remaining = this.buffer.length - this.position;
638
+ if (remaining <= 1) {
639
+ if (remaining === 1) {
640
+ // Some Xiaomi structs have a trailing byte, skip it.
641
+ this.position += 1;
642
+ }
643
+ break;
644
+ }
645
+ }
646
+
647
+ return value;
648
+ }
649
+ // biome-ignore lint/suspicious/noExplicitAny: API
650
+ public write(type: DataType | BuffaloZclDataType, value: any, options: BuffaloZclOptions): void {
651
+ switch (type) {
652
+ case DataType.NO_DATA:
653
+ case DataType.UNKNOWN: {
654
+ return; // nothing to write
655
+ }
656
+ case DataType.BOOLEAN:
657
+ case DataType.DATA8:
658
+ case DataType.BITMAP8:
659
+ case DataType.UINT8:
660
+ case DataType.ENUM8: {
661
+ this.writeUInt8(value);
662
+ break;
663
+ }
664
+ case DataType.DATA16:
665
+ case DataType.BITMAP16:
666
+ case DataType.UINT16:
667
+ case DataType.ENUM16:
668
+ case DataType.CLUSTER_ID:
669
+ case DataType.ATTR_ID: {
670
+ this.writeUInt16(value);
671
+ break;
672
+ }
673
+ case DataType.DATA24:
674
+ case DataType.BITMAP24:
675
+ case DataType.UINT24: {
676
+ this.writeUInt24(value);
677
+ break;
678
+ }
679
+ case DataType.DATA32:
680
+ case DataType.BITMAP32:
681
+ case DataType.UINT32:
682
+ case DataType.UTC:
683
+ case DataType.BAC_OID: {
684
+ this.writeUInt32(value);
685
+ break;
686
+ }
687
+ case DataType.DATA40:
688
+ case DataType.BITMAP40:
689
+ case DataType.UINT40: {
690
+ this.writeUInt40(value);
691
+ break;
692
+ }
693
+ case DataType.DATA48:
694
+ case DataType.BITMAP48:
695
+ case DataType.UINT48: {
696
+ this.writeUInt48(value);
697
+ break;
698
+ }
699
+ case DataType.DATA56:
700
+ case DataType.BITMAP56:
701
+ case DataType.UINT56: {
702
+ this.writeUInt56(value);
703
+ break;
704
+ }
705
+ case DataType.DATA64:
706
+ case DataType.BITMAP64:
707
+ case DataType.UINT64: {
708
+ this.writeUInt64(value);
709
+ break;
710
+ }
711
+ case DataType.INT8: {
712
+ this.writeInt8(value);
713
+ break;
714
+ }
715
+ case DataType.INT16: {
716
+ this.writeInt16(value);
717
+ break;
718
+ }
719
+ case DataType.INT24: {
720
+ this.writeInt24(value);
721
+ break;
722
+ }
723
+ case DataType.INT32: {
724
+ this.writeInt32(value);
725
+ break;
726
+ }
727
+ case DataType.INT40: {
728
+ this.writeInt40(value);
729
+ break;
730
+ }
731
+ case DataType.INT48: {
732
+ this.writeInt48(value);
733
+ break;
734
+ }
735
+ case DataType.INT56: {
736
+ this.writeInt56(value);
737
+ break;
738
+ }
739
+ case DataType.INT64: {
740
+ this.writeInt64(value);
741
+ break;
742
+ }
743
+ // case DataType.SEMI_PREC: {
744
+ // // https://tc39.es/proposal-float16array/
745
+ // // not currently used
746
+ // this.writeSemiFloatLE(value);
747
+ // break;
748
+ // }
749
+ case DataType.SINGLE_PREC: {
750
+ this.writeFloatLE(value);
751
+ break;
752
+ }
753
+ case DataType.DOUBLE_PREC: {
754
+ this.writeDoubleLE(value);
755
+ break;
756
+ }
757
+ case DataType.OCTET_STR: {
758
+ this.writeOctetStr(value);
759
+ break;
760
+ }
761
+ case DataType.CHAR_STR: {
762
+ this.writeCharStr(value);
763
+ break;
764
+ }
765
+ case DataType.LONG_OCTET_STR: {
766
+ this.writeLongOctetStr(value);
767
+ break;
768
+ }
769
+ case DataType.LONG_CHAR_STR: {
770
+ this.writeLongCharStr(value);
771
+ break;
772
+ }
773
+ case DataType.ARRAY:
774
+ case DataType.SET:
775
+ case DataType.BAG: {
776
+ this.writeArray(value);
777
+ break;
778
+ }
779
+ case DataType.STRUCT: {
780
+ this.writeStruct(value);
781
+ break;
782
+ }
783
+ case DataType.TOD: {
784
+ this.writeToD(value);
785
+ break;
786
+ }
787
+ case DataType.DATE: {
788
+ this.writeDate(value);
789
+ break;
790
+ }
791
+ case DataType.IEEE_ADDR: {
792
+ this.writeIeeeAddr(value);
793
+ break;
794
+ }
795
+ case DataType.SEC_KEY: {
796
+ this.writeBuffer(value, SEC_KEY_LENGTH);
797
+ break;
798
+ }
799
+ case BuffaloZclDataType.USE_DATA_TYPE: {
800
+ if (options.dataType == null) {
801
+ if (Buffer.isBuffer(value) || isNumberArray(value)) {
802
+ this.writeBuffer(value, value.length);
803
+ break;
804
+ }
805
+
806
+ throw new Error("Cannot write USE_DATA_TYPE without dataType option specified");
807
+ }
808
+
809
+ this.write(options.dataType, value, options);
810
+ break;
811
+ }
812
+ case BuffaloZclDataType.LIST_UINT8: {
813
+ this.writeListUInt8(value);
814
+ break;
815
+ }
816
+ case BuffaloZclDataType.LIST_UINT16: {
817
+ this.writeListUInt16(value);
818
+ break;
819
+ }
820
+ case BuffaloZclDataType.LIST_UINT24: {
821
+ this.writeListUInt24(value);
822
+ break;
823
+ }
824
+ case BuffaloZclDataType.LIST_UINT32: {
825
+ this.writeListUInt32(value);
826
+ break;
827
+ }
828
+ case BuffaloZclDataType.LIST_ZONEINFO: {
829
+ this.writeListZoneInfo(value);
830
+ break;
831
+ }
832
+ case BuffaloZclDataType.EXTENSION_FIELD_SETS: {
833
+ this.writeExtensionFieldSets(value);
834
+ break;
835
+ }
836
+ case BuffaloZclDataType.LIST_THERMO_TRANSITIONS: {
837
+ this.writeListThermoTransitions(value);
838
+ break;
839
+ }
840
+ case BuffaloZclDataType.BUFFER: {
841
+ // XXX: inconsistent with read that allows partial with options.length, here always "whole"
842
+ this.writeBuffer(value, value.length);
843
+ break;
844
+ }
845
+ case BuffaloZclDataType.GPD_FRAME: {
846
+ this.writeGpdFrame(value);
847
+ break;
848
+ }
849
+ case BuffaloZclDataType.STRUCTURED_SELECTOR: {
850
+ this.writeStructuredSelector(value);
851
+ break;
852
+ }
853
+ case BuffaloZclDataType.LIST_TUYA_DATAPOINT_VALUES: {
854
+ this.writeListTuyaDataPointValues(value);
855
+ break;
856
+ }
857
+ case BuffaloZclDataType.LIST_MIBOXER_ZONES: {
858
+ this.writeListMiboxerZones(value);
859
+ break;
860
+ }
861
+ case BuffaloZclDataType.BIG_ENDIAN_UINT24: {
862
+ this.writeBigEndianUInt24(value);
863
+ break;
864
+ }
865
+ default: {
866
+ // In case the type is undefined, write it as a buffer to easily allow for custom types
867
+ // e.g. for https://github.com/Koenkk/zigbee-herdsman/issues/127
868
+ if (Buffer.isBuffer(value) || isNumberArray(value)) {
869
+ this.writeBuffer(value, value.length);
870
+ break;
871
+ }
872
+
873
+ throw new Error(`Write for '${type}' not available`);
874
+ }
875
+ }
876
+ }
877
+
878
+ // biome-ignore lint/suspicious/noExplicitAny: API
879
+ public read(type: DataType | BuffaloZclDataType, options: BuffaloZclOptions): any {
880
+ switch (type) {
881
+ case DataType.NO_DATA:
882
+ case DataType.UNKNOWN: {
883
+ return; // nothing to write
884
+ }
885
+ case DataType.BOOLEAN:
886
+ case DataType.DATA8:
887
+ case DataType.BITMAP8:
888
+ case DataType.UINT8:
889
+ case DataType.ENUM8: {
890
+ return this.readUInt8();
891
+ }
892
+ case DataType.DATA16:
893
+ case DataType.BITMAP16:
894
+ case DataType.UINT16:
895
+ case DataType.ENUM16:
896
+ case DataType.CLUSTER_ID:
897
+ case DataType.ATTR_ID: {
898
+ return this.readUInt16();
899
+ }
900
+ case DataType.DATA24:
901
+ case DataType.BITMAP24:
902
+ case DataType.UINT24: {
903
+ return this.readUInt24();
904
+ }
905
+ case DataType.DATA32:
906
+ case DataType.BITMAP32:
907
+ case DataType.UINT32:
908
+ case DataType.UTC:
909
+ case DataType.BAC_OID: {
910
+ return this.readUInt32();
911
+ }
912
+ case DataType.DATA40:
913
+ case DataType.BITMAP40:
914
+ case DataType.UINT40: {
915
+ return this.readUInt40();
916
+ }
917
+ case DataType.DATA48:
918
+ case DataType.BITMAP48:
919
+ case DataType.UINT48: {
920
+ return this.readUInt48();
921
+ }
922
+ case DataType.DATA56:
923
+ case DataType.BITMAP56:
924
+ case DataType.UINT56: {
925
+ return this.readUInt56();
926
+ }
927
+ case DataType.DATA64:
928
+ case DataType.BITMAP64:
929
+ case DataType.UINT64: {
930
+ return this.readUInt64();
931
+ }
932
+ case DataType.INT8: {
933
+ return this.readInt8();
934
+ }
935
+ case DataType.INT16: {
936
+ return this.readInt16();
937
+ }
938
+ case DataType.INT24: {
939
+ return this.readInt24();
940
+ }
941
+ case DataType.INT32: {
942
+ return this.readInt32();
943
+ }
944
+ case DataType.INT40: {
945
+ return this.readInt40();
946
+ }
947
+ case DataType.INT48: {
948
+ return this.readInt48();
949
+ }
950
+ case DataType.INT56: {
951
+ return this.readInt56();
952
+ }
953
+ case DataType.INT64: {
954
+ return this.readInt64();
955
+ }
956
+ // case DataType.SEMI_PREC: {
957
+ // // https://tc39.es/proposal-float16array/
958
+ // // not currently used
959
+ // return this.readSemiFloatLE();
960
+ // }
961
+ case DataType.SINGLE_PREC: {
962
+ return this.readFloatLE();
963
+ }
964
+ case DataType.DOUBLE_PREC: {
965
+ return this.readDoubleLE();
966
+ }
967
+ case DataType.OCTET_STR: {
968
+ return this.readOctetStr();
969
+ }
970
+ case DataType.CHAR_STR: {
971
+ return this.readCharStr();
972
+ }
973
+ case DataType.LONG_OCTET_STR: {
974
+ return this.readLongOctetStr();
975
+ }
976
+ case DataType.LONG_CHAR_STR: {
977
+ return this.readLongCharStr();
978
+ }
979
+ case DataType.ARRAY:
980
+ case DataType.SET:
981
+ case DataType.BAG: {
982
+ return this.readArray();
983
+ }
984
+ case DataType.STRUCT: {
985
+ return this.readStruct();
986
+ }
987
+ case DataType.TOD: {
988
+ return this.readToD();
989
+ }
990
+ case DataType.DATE: {
991
+ return this.readDate();
992
+ }
993
+ case DataType.IEEE_ADDR: {
994
+ return this.readIeeeAddr();
995
+ }
996
+ case DataType.SEC_KEY: {
997
+ return this.readBuffer(SEC_KEY_LENGTH);
998
+ }
999
+ case BuffaloZclDataType.USE_DATA_TYPE: {
1000
+ if (options.dataType == null) {
1001
+ return this.readBuffer(options.length ?? this.buffer.length);
1002
+ }
1003
+
1004
+ return this.read(options.dataType, options);
1005
+ }
1006
+ case BuffaloZclDataType.LIST_UINT8: {
1007
+ if (options.length == null) {
1008
+ throw new Error("Cannot read LIST_UINT8 without length option specified");
1009
+ }
1010
+
1011
+ return this.readListUInt8(options.length);
1012
+ }
1013
+ case BuffaloZclDataType.LIST_UINT16: {
1014
+ if (options.length == null) {
1015
+ throw new Error("Cannot read LIST_UINT16 without length option specified");
1016
+ }
1017
+
1018
+ return this.readListUInt16(options.length);
1019
+ }
1020
+ case BuffaloZclDataType.LIST_UINT24: {
1021
+ if (options.length == null) {
1022
+ throw new Error("Cannot read LIST_UINT24 without length option specified");
1023
+ }
1024
+
1025
+ return this.readListUInt24(options.length);
1026
+ }
1027
+ case BuffaloZclDataType.LIST_UINT32: {
1028
+ if (options.length == null) {
1029
+ throw new Error("Cannot read LIST_UINT32 without length option specified");
1030
+ }
1031
+
1032
+ return this.readListUInt32(options.length);
1033
+ }
1034
+ case BuffaloZclDataType.LIST_ZONEINFO: {
1035
+ if (options.length == null) {
1036
+ throw new Error("Cannot read LIST_ZONEINFO without length option specified");
1037
+ }
1038
+
1039
+ return this.readListZoneInfo(options.length);
1040
+ }
1041
+ case BuffaloZclDataType.EXTENSION_FIELD_SETS: {
1042
+ return this.readExtensionFieldSets();
1043
+ }
1044
+ case BuffaloZclDataType.LIST_THERMO_TRANSITIONS: {
1045
+ return this.readListThermoTransitions(options);
1046
+ }
1047
+ case BuffaloZclDataType.BUFFER: {
1048
+ // if length option not specified, read the whole buffer
1049
+ return this.readBuffer(options.length ?? this.buffer.length);
1050
+ }
1051
+ case BuffaloZclDataType.GPD_FRAME: {
1052
+ return this.readGpdFrame(options);
1053
+ }
1054
+ case BuffaloZclDataType.STRUCTURED_SELECTOR: {
1055
+ return this.readStructuredSelector();
1056
+ }
1057
+ case BuffaloZclDataType.LIST_TUYA_DATAPOINT_VALUES: {
1058
+ return this.readListTuyaDataPointValues();
1059
+ }
1060
+ case BuffaloZclDataType.LIST_MIBOXER_ZONES: {
1061
+ return this.readListMiboxerZones();
1062
+ }
1063
+ case BuffaloZclDataType.BIG_ENDIAN_UINT24: {
1064
+ return this.readBigEndianUInt24();
1065
+ }
1066
+ case BuffaloZclDataType.MI_STRUCT: {
1067
+ return this.readMiStruct();
1068
+ }
1069
+ }
1070
+
1071
+ throw new Error(`Read for '${type}' not available`);
1072
+ }
1073
+ }