@willieee802/zigbee-herdsman 0.48.2 → 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 +2 -2
  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,1276 @@
1
+ import type {BrowserConfig, Service} from "bonjour-service";
2
+ import type {MockInstance} from "vitest";
3
+
4
+ import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from "vitest";
5
+ import {Adapter, type TsType} from "../../src/adapter";
6
+ import {findAllDevices} from "../../src/adapter/adapterDiscovery";
7
+ import {DeconzAdapter} from "../../src/adapter/deconz/adapter/deconzAdapter";
8
+ import {EmberAdapter} from "../../src/adapter/ember/adapter/emberAdapter";
9
+ import {EZSPAdapter} from "../../src/adapter/ezsp/adapter/ezspAdapter";
10
+ import {SerialPort} from "../../src/adapter/serialPort";
11
+ import {parseTcpPath} from "../../src/adapter/utils";
12
+ import {ZStackAdapter} from "../../src/adapter/z-stack/adapter/zStackAdapter";
13
+ import {ZBOSSAdapter} from "../../src/adapter/zboss/adapter/zbossAdapter";
14
+ import {ZiGateAdapter} from "../../src/adapter/zigate/adapter/zigateAdapter";
15
+ import {ZoHAdapter} from "../../src/adapter/zoh/adapter/zohAdapter";
16
+ import {
17
+ DECONZ_CONBEE_II,
18
+ EMBER_SKYCONNECT,
19
+ EMBER_ZBDONGLE_E,
20
+ EMBER_ZBDONGLE_E_CP,
21
+ EMBER_ZBDONGLE_E_WIN,
22
+ ZBOSS_NORDIC,
23
+ ZBT_1_PNPID,
24
+ ZBT_2,
25
+ ZIGATE_PLUSV2,
26
+ ZSTACK_CC2538,
27
+ ZSTACK_SMLIGHT_SLZB_06P10,
28
+ ZSTACK_SMLIGHT_SLZB_07,
29
+ ZSTACK_ZBDONGLE_P,
30
+ ZWA_2_CONFLICT,
31
+ } from "../mockAdapters";
32
+
33
+ const mockPlatform = vi.fn(() => "linux");
34
+
35
+ vi.mock("node:os", () => ({
36
+ platform: vi.fn(() => mockPlatform()),
37
+ }));
38
+
39
+ const mockBonjourResult = vi.fn().mockImplementation((type) => ({
40
+ name: "Mock Adapter",
41
+ type: `${type}_mdns`,
42
+ port: "1122",
43
+ host: "mock_adapter.local",
44
+ addresses: ["192.168.1.123"],
45
+ txt: {
46
+ radio_type: `${type}`,
47
+ },
48
+ }));
49
+ const mockBonjourFind = vi.fn((_opts: BrowserConfig | null, onup?: (service: Service) => void) => {
50
+ if (onup) {
51
+ onup(mockBonjourResult("zstack"));
52
+ onup(mockBonjourResult("ezsp")); // expected as `ember` Adapter
53
+ onup(mockBonjourResult("znp")); // expected as `zstack` Adapter
54
+ }
55
+
56
+ return {start: vi.fn(), stop: vi.fn()};
57
+ });
58
+ const mockBonjourFindOne = vi.fn((opts: BrowserConfig | null, _timeout: number, callback?: (service: Service) => void) => {
59
+ if (callback) {
60
+ callback(mockBonjourResult(opts?.type));
61
+ }
62
+ });
63
+ const mockBonjourDestroy = vi.fn();
64
+
65
+ vi.mock("bonjour-service", () => ({
66
+ Bonjour: vi.fn(() => ({
67
+ find: mockBonjourFind,
68
+ findOne: mockBonjourFindOne,
69
+ destroy: mockBonjourDestroy,
70
+ })),
71
+ }));
72
+
73
+ describe("Adapter", () => {
74
+ beforeAll(() => {
75
+ vi.useFakeTimers();
76
+ });
77
+
78
+ afterAll(() => {
79
+ vi.useRealTimers();
80
+ });
81
+
82
+ beforeEach(() => {
83
+ mockPlatform.mockClear();
84
+ mockBonjourResult.mockClear();
85
+ mockBonjourFind.mockClear();
86
+ mockBonjourFindOne.mockClear();
87
+ mockBonjourDestroy.mockClear();
88
+ });
89
+
90
+ it.each([
91
+ ["deconz", DeconzAdapter],
92
+ ["ember", EmberAdapter],
93
+ ["ezsp", EZSPAdapter],
94
+ ["zstack", ZStackAdapter],
95
+ ["zboss", ZBOSSAdapter],
96
+ ["zigate", ZiGateAdapter],
97
+ ["zoh", ZoHAdapter],
98
+ ])("Calls adapter contructor for %s", async (name, cls) => {
99
+ const adapter = await Adapter.create(
100
+ {
101
+ panID: 0x1a62,
102
+ channelList: [11],
103
+ extendedPanID: [0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd],
104
+ networkKey: [1, 3, 5, 7, 9, 11, 13, 15, 0, 2, 4, 6, 8, 10, 12, 13],
105
+ },
106
+ {path: "/dev/ttyUSB0", adapter: name as TsType.Adapter},
107
+ "test.db.backup",
108
+ {disableLED: false},
109
+ );
110
+
111
+ expect(adapter).toBeInstanceOf(cls);
112
+ });
113
+
114
+ it("finds all devices", async () => {
115
+ vi.spyOn(SerialPort, "list").mockResolvedValueOnce([
116
+ Object.assign({pnpId: "deconz conbee ii", serialNumber: "", locationId: ""}, DECONZ_CONBEE_II),
117
+ Object.assign({pnpId: "zbdongle-e", serialNumber: "", locationId: ""}, EMBER_ZBDONGLE_E),
118
+ Object.assign({pnpId: "cc2538", serialNumber: "", locationId: ""}, ZSTACK_CC2538),
119
+ Object.assign({pnpId: "nordic", serialNumber: "", locationId: ""}, ZBOSS_NORDIC),
120
+ Object.assign({pnpId: "zigate-plus-v2", serialNumber: "", locationId: "", manufacturer: ""}, ZIGATE_PLUSV2),
121
+ Object.assign({pnpId: "zbt-2", serialNumber: "", locationId: ""}, ZBT_2),
122
+ ]);
123
+
124
+ const p = findAllDevices();
125
+
126
+ await vi.advanceTimersByTimeAsync(2500);
127
+
128
+ await expect(p).resolves.toStrictEqual([
129
+ {
130
+ name: "zigate-plus-v2 ()",
131
+ path: ZIGATE_PLUSV2.path,
132
+ adapter: "zigate",
133
+ },
134
+ {
135
+ name: "zbdongle-e (ITEAD)",
136
+ path: EMBER_ZBDONGLE_E.path,
137
+ adapter: "ember",
138
+ rtscts: false,
139
+ },
140
+ {
141
+ name: "zbt-2 (Nabu Casa)",
142
+ path: ZBT_2.path,
143
+ baudRate: 460800,
144
+ rtscts: true,
145
+ adapter: "ember",
146
+ },
147
+ {
148
+ name: "cc2538 (Texas Instruments)",
149
+ path: ZSTACK_CC2538.path,
150
+ adapter: "zstack",
151
+ },
152
+ {
153
+ name: "nordic (ZEPHYR)",
154
+ path: ZBOSS_NORDIC.path,
155
+ adapter: "zboss",
156
+ },
157
+ {
158
+ name: "deconz conbee ii (dresden elektronik ingenieurtechnik GmbH)",
159
+ path: DECONZ_CONBEE_II.path,
160
+ adapter: "deconz",
161
+ },
162
+ {
163
+ name: "Mock Adapter (tcp://192.168.1.123:1122)",
164
+ path: "tcp://192.168.1.123:1122",
165
+ adapter: "zstack",
166
+ },
167
+ {
168
+ name: "Mock Adapter (tcp://192.168.1.123:1122)",
169
+ path: "tcp://192.168.1.123:1122",
170
+ adapter: "ember",
171
+ },
172
+ {
173
+ name: "Mock Adapter (tcp://192.168.1.123:1122)",
174
+ path: "tcp://192.168.1.123:1122",
175
+ adapter: "zstack",
176
+ },
177
+ ]);
178
+ expect(mockBonjourDestroy).toHaveBeenCalledTimes(1);
179
+ });
180
+
181
+ it("finds all devices with quirks", async () => {
182
+ // on Windows
183
+ mockPlatform.mockReturnValueOnce("win32");
184
+ vi.spyOn(SerialPort, "list").mockResolvedValueOnce([
185
+ Object.assign({pnpId: "zbdongle-e", serialNumber: "", locationId: "", friendlyName: "silicon labs cp210x"}, EMBER_ZBDONGLE_E_CP),
186
+ ]);
187
+ // `name` in `txt`, no `addresses`
188
+ mockBonjourResult.mockImplementationOnce((type) => ({
189
+ type: `${type}_mdns`,
190
+ port: "1122",
191
+ host: "mock_adapter.local",
192
+ txt: {
193
+ name: "Mock Adapter",
194
+ radio_type: `${type}`,
195
+ },
196
+ }));
197
+ // no name
198
+ mockBonjourResult.mockImplementationOnce((type) => ({
199
+ type: `${type}_mdns`,
200
+ port: "1122",
201
+ host: "mock_adapter.local",
202
+ addresses: ["192.168.1.123"],
203
+ txt: {
204
+ radio_type: `${type}`,
205
+ },
206
+ }));
207
+
208
+ const p = findAllDevices();
209
+
210
+ await vi.advanceTimersByTimeAsync(2500);
211
+ await expect(p).resolves.toStrictEqual([
212
+ {
213
+ name: "silicon labs cp210x (ITEAD)",
214
+ path: EMBER_ZBDONGLE_E_CP.path,
215
+ },
216
+ {
217
+ name: "Mock Adapter (tcp://mock_adapter.local:1122)",
218
+ path: "tcp://mock_adapter.local:1122",
219
+ adapter: "zstack",
220
+ },
221
+ {
222
+ name: "Unknown (tcp://192.168.1.123:1122)",
223
+ path: "tcp://192.168.1.123:1122",
224
+ adapter: "ember",
225
+ },
226
+ {
227
+ name: "Mock Adapter (tcp://192.168.1.123:1122)",
228
+ path: "tcp://192.168.1.123:1122",
229
+ adapter: "zstack",
230
+ },
231
+ ]);
232
+ expect(mockBonjourDestroy).toHaveBeenCalledTimes(1);
233
+ });
234
+
235
+ describe("mDNS discovery", () => {
236
+ it.each([
237
+ ["deconz", DeconzAdapter],
238
+ ["ember", EmberAdapter],
239
+ ["ezsp", EmberAdapter], // `ezsp` radio_type uses `ember` Adapter
240
+ ["zstack", ZStackAdapter],
241
+ ["zboss", ZBOSSAdapter],
242
+ ["zigate", ZiGateAdapter],
243
+ ])("for %s", async (name, adapterCls) => {
244
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: `mdns://${name}`}, "test.db.backup", {disableLED: false});
245
+
246
+ expect(adapter).toBeInstanceOf(adapterCls);
247
+ // @ts-expect-error protected
248
+ expect(adapter.serialPortOptions).toStrictEqual({
249
+ path: "tcp://192.168.1.123:1122",
250
+ adapter: name === "ezsp" ? "ember" : name,
251
+ });
252
+ });
253
+
254
+ it("for zstack as znp", async () => {
255
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: "mdns://znp"}, "test.db.backup", {disableLED: false});
256
+
257
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
258
+ // @ts-expect-error protected
259
+ expect(adapter.serialPortOptions).toStrictEqual({
260
+ path: "tcp://192.168.1.123:1122",
261
+ adapter: "zstack",
262
+ });
263
+ });
264
+
265
+ it("falls back to host if no addresses", async () => {
266
+ mockBonjourResult.mockReturnValueOnce({
267
+ name: "Mock Adapter",
268
+ type: "my_adapter_mdns",
269
+ port: "1122",
270
+ host: "mock_adapter.local",
271
+ txt: {
272
+ radio_type: "zstack",
273
+ },
274
+ });
275
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: "mdns://zstack"}, "test.db.backup", {disableLED: false});
276
+
277
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
278
+ // @ts-expect-error protected
279
+ expect(adapter.serialPortOptions).toStrictEqual({
280
+ path: "tcp://mock_adapter.local:1122",
281
+ adapter: "zstack",
282
+ });
283
+ });
284
+
285
+ it("times out", async () => {
286
+ mockBonjourResult.mockReturnValueOnce(null);
287
+ const fakeAdapterName = "mdns_test_device";
288
+
289
+ await expect(
290
+ Adapter.create({panID: 0, channelList: []}, {path: `mdns://${fakeAdapterName}`}, "test.db", {disableLED: false}),
291
+ ).rejects.toThrow(`Coordinator [${fakeAdapterName}] not found after timeout of 2000ms!`);
292
+ });
293
+
294
+ it("given invalid path", async () => {
295
+ await expect(Adapter.create({panID: 0, channelList: []}, {path: "mdns://"}, "test.db", {disableLED: false})).rejects.toThrow(
296
+ "No mdns device specified. You must specify the coordinator mdns service type after mdns://, e.g. mdns://my-adapter",
297
+ );
298
+ });
299
+
300
+ it("returns invalid format", async () => {
301
+ mockBonjourResult.mockReturnValueOnce({
302
+ name: "Mock Adapter",
303
+ type: "my_adapter_mdns",
304
+ port: "1122",
305
+ host: "my_adapter.local",
306
+ addresses: ["192.168.1.123"],
307
+ txt: {
308
+ radio_type: undefined,
309
+ },
310
+ });
311
+
312
+ await expect(Adapter.create({panID: 0, channelList: []}, {path: "mdns://my_adapter"}, "test.db", {disableLED: false})).rejects.toThrow(
313
+ "Coordinator returned wrong Zeroconf format! The following values are expected:\n" +
314
+ "txt.radio_type, got: undefined\n" +
315
+ "port, got: 1122",
316
+ );
317
+ });
318
+ });
319
+
320
+ describe("TCP discovery", () => {
321
+ it("returns config with tcp path", async () => {
322
+ const adapter = await Adapter.create(
323
+ {panID: 0x1a62, channelList: [11]},
324
+ {path: "tcp://192.168.1.321:3456", adapter: "zstack"},
325
+ "test.db.backup",
326
+ {disableLED: false},
327
+ );
328
+
329
+ // @ts-expect-error protected
330
+ expect(adapter.serialPortOptions).toStrictEqual({
331
+ path: "tcp://192.168.1.321:3456",
332
+ adapter: "zstack",
333
+ });
334
+ });
335
+
336
+ it("returns config with socket path", async () => {
337
+ const adapter = await Adapter.create(
338
+ {panID: 0x1a62, channelList: [11]},
339
+ {path: "socket://192.168.1.321:3456", adapter: "zstack"},
340
+ "test.db.backup",
341
+ {disableLED: false},
342
+ );
343
+
344
+ // @ts-expect-error protected
345
+ expect(adapter.serialPortOptions).toStrictEqual({
346
+ path: "tcp://192.168.1.321:3456",
347
+ adapter: "zstack",
348
+ });
349
+ });
350
+
351
+ it("returns config with hostname path", async () => {
352
+ const adapter = await Adapter.create(
353
+ {panID: 0x1a62, channelList: [11]},
354
+ {path: "tcp://my-super-host:3456", adapter: "zstack"},
355
+ "test.db.backup",
356
+ {disableLED: false},
357
+ );
358
+
359
+ // @ts-expect-error protected
360
+ expect(adapter.serialPortOptions).toStrictEqual({
361
+ path: "tcp://my-super-host:3456",
362
+ adapter: "zstack",
363
+ });
364
+ });
365
+
366
+ it.each(["tcp://192168.1.321", "tcp://192168.1.321:INVALID"])("invalid path", async (path) => {
367
+ await expect(
368
+ Adapter.create({panID: 0x1a62, channelList: [11]}, {path, adapter: "zstack"}, "test.db.backup", {
369
+ disableLED: false,
370
+ }),
371
+ ).rejects.toThrow("Invalid TCP path, expected format: tcp://<host>:<port>");
372
+ });
373
+
374
+ it("invalid adapter", async () => {
375
+ await expect(
376
+ Adapter.create({panID: 0x1a62, channelList: [11]}, {path: "tcp://192.168.1.321:3456"}, "test.db.backup", {
377
+ disableLED: false,
378
+ }),
379
+ ).rejects.toThrow(`Cannot discover TCP adapters at this time. Specify valid 'adapter' and 'port' in your configuration.`);
380
+ });
381
+
382
+ it("handles IPv4", async () => {
383
+ const adapter = await Adapter.create(
384
+ {panID: 0x1a62, channelList: [11]},
385
+ {path: "tcp://192.168.12.34:6638", adapter: "zstack"},
386
+ "test.db.backup",
387
+ {disableLED: false},
388
+ );
389
+
390
+ // @ts-expect-error protected
391
+ const adapterOptions = adapter.serialPortOptions;
392
+
393
+ expect(adapterOptions).toStrictEqual({
394
+ path: "tcp://192.168.12.34:6638",
395
+ adapter: "zstack",
396
+ });
397
+
398
+ const tcpPath = parseTcpPath(adapterOptions.path!);
399
+
400
+ expect(tcpPath).toStrictEqual({
401
+ host: "192.168.12.34",
402
+ port: 6638,
403
+ });
404
+ });
405
+
406
+ it("handles IPv6", async () => {
407
+ const adapter = await Adapter.create(
408
+ {panID: 0x1a62, channelList: [11]},
409
+ {path: "tcp://[fd73:5e46:b9f0:0:80b5:4eff:dead:beef]:6638", adapter: "zstack"},
410
+ "test.db.backup",
411
+ {disableLED: false},
412
+ );
413
+
414
+ // @ts-expect-error protected
415
+ const adapterOptions = adapter.serialPortOptions;
416
+
417
+ expect(adapterOptions).toStrictEqual({
418
+ path: "tcp://[fd73:5e46:b9f0:0:80b5:4eff:dead:beef]:6638",
419
+ adapter: "zstack",
420
+ });
421
+
422
+ const tcpPath = parseTcpPath(adapterOptions.path!);
423
+
424
+ expect(tcpPath).toStrictEqual({
425
+ host: "fd73:5e46:b9f0:0:80b5:4eff:dead:beef",
426
+ port: 6638,
427
+ });
428
+ });
429
+
430
+ it("handles domain name", async () => {
431
+ const adapter = await Adapter.create(
432
+ {panID: 0x1a62, channelList: [11]},
433
+ {path: "tcp://myadapter.local:6638", adapter: "zstack"},
434
+ "test.db.backup",
435
+ {disableLED: false},
436
+ );
437
+
438
+ // @ts-expect-error protected
439
+ const adapterOptions = adapter.serialPortOptions;
440
+
441
+ expect(adapterOptions).toStrictEqual({
442
+ path: "tcp://myadapter.local:6638",
443
+ adapter: "zstack",
444
+ });
445
+
446
+ const tcpPath = parseTcpPath(adapterOptions.path!);
447
+
448
+ expect(tcpPath).toStrictEqual({
449
+ host: "myadapter.local",
450
+ port: 6638,
451
+ });
452
+ });
453
+
454
+ it("handles invalid IPv6", async () => {
455
+ await expect(
456
+ Adapter.create(
457
+ {panID: 0x1a62, channelList: [11]},
458
+ {path: "tcp://fd73:5e46:b9f0:0:80b5:4eff:dead:beef:6638", adapter: "zstack"},
459
+ "test.db.backup",
460
+ {disableLED: false},
461
+ ),
462
+ ).rejects.toThrow("Invalid TCP path, expected format: tcp://<host>:<port>");
463
+ });
464
+ });
465
+
466
+ describe("USB discovery", () => {
467
+ let listSpy: MockInstance;
468
+
469
+ beforeAll(() => {
470
+ listSpy = vi.spyOn(SerialPort, "list");
471
+ listSpy.mockReturnValue([DECONZ_CONBEE_II, EMBER_ZBDONGLE_E, ZSTACK_CC2538, ZBOSS_NORDIC, ZIGATE_PLUSV2]);
472
+ });
473
+
474
+ describe("without config", () => {
475
+ it("detects each adapter", async () => {
476
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II]);
477
+
478
+ let adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {baudRate: 57600}, "test.db.backup", {disableLED: false});
479
+
480
+ expect(adapter).toBeInstanceOf(DeconzAdapter);
481
+ // @ts-expect-error protected
482
+ expect(adapter.serialPortOptions).toStrictEqual({
483
+ path: DECONZ_CONBEE_II.path,
484
+ adapter: "deconz",
485
+ baudRate: 57600,
486
+ });
487
+
488
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E]);
489
+
490
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {baudRate: 115200}, "test.db.backup", {disableLED: false});
491
+
492
+ expect(adapter).toBeInstanceOf(EmberAdapter);
493
+ // @ts-expect-error protected
494
+ expect(adapter.serialPortOptions).toStrictEqual({
495
+ path: EMBER_ZBDONGLE_E.path,
496
+ adapter: "ember",
497
+ baudRate: 115200,
498
+ rtscts: false,
499
+ });
500
+
501
+ listSpy.mockReturnValueOnce([ZSTACK_CC2538]);
502
+
503
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
504
+
505
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
506
+ // @ts-expect-error protected
507
+ expect(adapter.serialPortOptions).toStrictEqual({
508
+ path: ZSTACK_CC2538.path,
509
+ adapter: "zstack",
510
+ });
511
+
512
+ listSpy.mockReturnValueOnce([ZBOSS_NORDIC]);
513
+
514
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
515
+
516
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
517
+ // @ts-expect-error protected
518
+ expect(adapter.serialPortOptions).toStrictEqual({
519
+ path: ZBOSS_NORDIC.path,
520
+ adapter: "zboss",
521
+ });
522
+
523
+ listSpy.mockReturnValueOnce([ZIGATE_PLUSV2]);
524
+
525
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
526
+
527
+ expect(adapter).toBeInstanceOf(ZiGateAdapter);
528
+ // @ts-expect-error protected
529
+ expect(adapter.serialPortOptions).toStrictEqual({
530
+ path: ZIGATE_PLUSV2.path,
531
+ adapter: "zigate",
532
+ });
533
+ });
534
+
535
+ it("detects on Windows with manufacturer present", async () => {
536
+ mockPlatform.mockReturnValueOnce("win32");
537
+ listSpy.mockReturnValueOnce([
538
+ {
539
+ // Windows sample - Sonoff Dongle-E
540
+ path: "COM3",
541
+ manufacturer: "ITEAD",
542
+ serialNumber: "54DD002111",
543
+ pnpId: "USB\\VID_1A86&PID_55D4\\54DD002111",
544
+ locationId: "Port_#0005.Hub_#0001",
545
+ friendlyName: "USB-Enhanced-SERIAL CH9102 (COM3)",
546
+ vendorId: "1A86",
547
+ productId: "55D4",
548
+ },
549
+ ]);
550
+
551
+ let adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
552
+
553
+ expect(adapter).toBeInstanceOf(EmberAdapter);
554
+ // @ts-expect-error protected
555
+ expect(adapter.serialPortOptions).toStrictEqual({
556
+ path: "COM3",
557
+ adapter: "ember",
558
+ rtscts: false,
559
+ });
560
+
561
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E_WIN]);
562
+
563
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "ember", path: "COM6"}, "test.db.backup", {
564
+ disableLED: false,
565
+ });
566
+
567
+ expect(adapter).toBeInstanceOf(EmberAdapter);
568
+ // @ts-expect-error protected
569
+ expect(adapter.serialPortOptions).toStrictEqual({
570
+ path: EMBER_ZBDONGLE_E_WIN.path,
571
+ adapter: "ember",
572
+ });
573
+
574
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E_WIN]);
575
+
576
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "ezsp", path: "COM6"}, "test.db.backup", {
577
+ disableLED: false,
578
+ });
579
+
580
+ expect(adapter).toBeInstanceOf(EZSPAdapter);
581
+ // @ts-expect-error protected
582
+ expect(adapter.serialPortOptions).toStrictEqual({
583
+ path: EMBER_ZBDONGLE_E_WIN.path,
584
+ adapter: "ezsp",
585
+ });
586
+ });
587
+
588
+ it("detects on Windows without manufacturer present", async () => {
589
+ // Note: this is the least-accurate possible match
590
+ mockPlatform.mockReturnValueOnce("win32");
591
+ listSpy.mockReturnValueOnce([
592
+ {
593
+ // Windows sample - Sonoff Dongle-E
594
+ path: "COM3",
595
+ manufacturer: "wch.cn",
596
+ serialNumber: "54DD002111",
597
+ pnpId: "USB\\VID_1A86&PID_55D4\\54DD002111",
598
+ locationId: "Port_#0005.Hub_#0001",
599
+ friendlyName: "USB-Enhanced-SERIAL CH9102 (COM3)",
600
+ vendorId: "1A86",
601
+ productId: "55D4",
602
+ },
603
+ ]);
604
+
605
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
606
+
607
+ expect(adapter).toBeInstanceOf(EmberAdapter);
608
+ // @ts-expect-error protected
609
+ expect(adapter.serialPortOptions).toStrictEqual({
610
+ path: "COM3",
611
+ adapter: "ember",
612
+ rtscts: false,
613
+ });
614
+ });
615
+
616
+ it("uses default serialPortOptions of adapter", async () => {
617
+ listSpy.mockReturnValueOnce([ZBT_2]);
618
+
619
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
620
+
621
+ expect(adapter).toBeInstanceOf(EmberAdapter);
622
+ // @ts-expect-error protected
623
+ expect(adapter.serialPortOptions).toStrictEqual({
624
+ adapter: "ember",
625
+ baudRate: 460800,
626
+ path: "/dev/serial/by-id/usb-Nabu_Casa_ZBT-2_10B41DE58D6C-if00",
627
+ rtscts: true,
628
+ });
629
+ });
630
+
631
+ it("uses provided options instead of default serialPortOptions of adapter", async () => {
632
+ listSpy.mockReturnValueOnce([ZBT_2]);
633
+
634
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {rtscts: false, baudRate: 1}, "test.db.backup", {
635
+ disableLED: false,
636
+ });
637
+
638
+ expect(adapter).toBeInstanceOf(EmberAdapter);
639
+ // @ts-expect-error protected
640
+ expect(adapter.serialPortOptions).toStrictEqual({
641
+ adapter: "ember",
642
+ baudRate: 1,
643
+ path: "/dev/serial/by-id/usb-Nabu_Casa_ZBT-2_10B41DE58D6C-if00",
644
+ rtscts: false,
645
+ });
646
+ });
647
+
648
+ it("detects with pnpId instead of path", async () => {
649
+ listSpy.mockReturnValueOnce([{...ZBOSS_NORDIC, path: "/dev/ttyUSB0", pnpId: "usb-ZEPHYR_Zigbee_NCP_54ACCFAFA6DADC49-if00"}]);
650
+
651
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
652
+
653
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
654
+ // @ts-expect-error protected
655
+ expect(adapter.serialPortOptions).toStrictEqual({
656
+ path: "/dev/ttyUSB0",
657
+ adapter: "zboss",
658
+ });
659
+ });
660
+
661
+ it("detects with conflict vendor+product IDs", async () => {
662
+ listSpy.mockReturnValueOnce([{...EMBER_SKYCONNECT, manufacturer: undefined}]);
663
+
664
+ let adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
665
+
666
+ expect(adapter).toBeInstanceOf(EmberAdapter);
667
+ // @ts-expect-error protected
668
+ expect(adapter.serialPortOptions).toStrictEqual({
669
+ path: EMBER_SKYCONNECT.path,
670
+ adapter: "ember",
671
+ rtscts: true,
672
+ });
673
+
674
+ listSpy.mockReturnValueOnce([{...ZSTACK_ZBDONGLE_P, path: "/dev/ttyACM0"}]);
675
+
676
+ await expect(Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false})).rejects.toThrow(
677
+ `USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.`,
678
+ );
679
+
680
+ listSpy.mockReturnValueOnce([
681
+ {...ZSTACK_ZBDONGLE_P, path: "/dev/ttyACM0", pnpId: ZSTACK_ZBDONGLE_P.path.replace("/dev/serial/by-id/", "")},
682
+ ]);
683
+
684
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
685
+
686
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
687
+ // @ts-expect-error protected
688
+ expect(adapter.serialPortOptions).toStrictEqual({
689
+ path: "/dev/ttyACM0",
690
+ adapter: "zstack",
691
+ });
692
+
693
+ listSpy.mockReturnValueOnce([ZSTACK_ZBDONGLE_P]);
694
+
695
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
696
+
697
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
698
+ // @ts-expect-error protected
699
+ expect(adapter.serialPortOptions).toStrictEqual({
700
+ path: ZSTACK_ZBDONGLE_P.path,
701
+ adapter: "zstack",
702
+ });
703
+
704
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E_CP]);
705
+
706
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
707
+
708
+ expect(adapter).toBeInstanceOf(EmberAdapter);
709
+ // @ts-expect-error protected
710
+ expect(adapter.serialPortOptions).toStrictEqual({
711
+ path: EMBER_ZBDONGLE_E_CP.path,
712
+ adapter: "ember",
713
+ rtscts: false,
714
+ });
715
+
716
+ listSpy.mockReturnValueOnce([ZSTACK_SMLIGHT_SLZB_06P10]);
717
+
718
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
719
+
720
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
721
+ // @ts-expect-error protected
722
+ expect(adapter.serialPortOptions).toStrictEqual({
723
+ path: ZSTACK_SMLIGHT_SLZB_06P10.path,
724
+ adapter: "zstack",
725
+ });
726
+
727
+ listSpy.mockReturnValueOnce([ZSTACK_SMLIGHT_SLZB_07]);
728
+
729
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
730
+
731
+ expect(adapter).toBeInstanceOf(EmberAdapter);
732
+ // @ts-expect-error protected
733
+ expect(adapter.serialPortOptions).toStrictEqual({
734
+ path: ZSTACK_SMLIGHT_SLZB_07.path,
735
+ adapter: "ember",
736
+ rtscts: true,
737
+ });
738
+ });
739
+
740
+ it("returns first from list with multiple adapters - nothing to match against", async () => {
741
+ // NOTE: list is currently sorted
742
+ // const sortedPaths = [DECONZ_CONBEE_II.path, ZSTACK_CC2538.path, EMBER_ZBDONGLE_E.path].sort();
743
+ // console.log(sortedPaths[0]);
744
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II, ZSTACK_CC2538, EMBER_ZBDONGLE_E]);
745
+
746
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
747
+
748
+ expect(adapter).toBeInstanceOf(EmberAdapter);
749
+ // @ts-expect-error protected
750
+ expect(adapter.serialPortOptions).toStrictEqual({
751
+ path: EMBER_ZBDONGLE_E.path,
752
+ adapter: "ember",
753
+ rtscts: false,
754
+ });
755
+ });
756
+
757
+ it("throws on failure to get SerialPort.list", async () => {
758
+ listSpy.mockRejectedValueOnce(new Error("spawn udevadm ENOENT"));
759
+
760
+ await expect(Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false})).rejects.toThrow(
761
+ `USB adapter discovery error (spawn udevadm ENOENT). Specify valid 'adapter' and 'port' in your configuration.`,
762
+ );
763
+ });
764
+
765
+ it("throws on failure to detect with conflict vendor+product IDs", async () => {
766
+ listSpy.mockReturnValueOnce([{...EMBER_SKYCONNECT, path: "/dev/ttyACM0", manufacturer: undefined}]);
767
+
768
+ await expect(Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false})).rejects.toThrow(
769
+ `USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.`,
770
+ );
771
+ });
772
+
773
+ it("detects SkyConnect ZBT-1 when ZWA-2 present", async () => {
774
+ listSpy.mockReturnValueOnce([ZWA_2_CONFLICT, ZBT_1_PNPID]);
775
+
776
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {baudRate: 115200}, "test.db.backup", {disableLED: false});
777
+
778
+ expect(adapter).toBeInstanceOf(EmberAdapter);
779
+ // @ts-expect-error protected
780
+ expect(adapter.serialPortOptions).toStrictEqual({
781
+ path: ZBT_1_PNPID.path,
782
+ adapter: "ember",
783
+ baudRate: 115200,
784
+ rtscts: true,
785
+ });
786
+ });
787
+
788
+ it("detects SkyConnect ZBT-2 when ZWA-2 present", async () => {
789
+ listSpy.mockReturnValueOnce([ZWA_2_CONFLICT, ZBT_2]);
790
+
791
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false});
792
+
793
+ expect(adapter).toBeInstanceOf(EmberAdapter);
794
+ // @ts-expect-error protected
795
+ expect(adapter.serialPortOptions).toStrictEqual({
796
+ path: ZBT_2.path,
797
+ adapter: "ember",
798
+ baudRate: 460800,
799
+ rtscts: true,
800
+ });
801
+ });
802
+ });
803
+
804
+ describe("with adapter+path config", () => {
805
+ it("detects each adapter", async () => {
806
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II]);
807
+
808
+ let adapter = await Adapter.create(
809
+ {panID: 0x1a62, channelList: [11]},
810
+ {adapter: "deconz", path: DECONZ_CONBEE_II.path},
811
+ "test.db.backup",
812
+ {disableLED: false},
813
+ );
814
+
815
+ expect(adapter).toBeInstanceOf(DeconzAdapter);
816
+ // @ts-expect-error protected
817
+ expect(adapter.serialPortOptions).toStrictEqual({
818
+ path: DECONZ_CONBEE_II.path,
819
+ adapter: "deconz",
820
+ });
821
+
822
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E]);
823
+
824
+ adapter = await Adapter.create(
825
+ {panID: 0x1a62, channelList: [11]},
826
+ {adapter: "ember", path: EMBER_ZBDONGLE_E.path},
827
+ "test.db.backup",
828
+ {disableLED: false},
829
+ );
830
+
831
+ expect(adapter).toBeInstanceOf(EmberAdapter);
832
+ // @ts-expect-error protected
833
+ expect(adapter.serialPortOptions).toStrictEqual({
834
+ path: EMBER_ZBDONGLE_E.path,
835
+ adapter: "ember",
836
+ rtscts: false,
837
+ });
838
+
839
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E]);
840
+
841
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "ezsp", path: EMBER_ZBDONGLE_E.path}, "test.db.backup", {
842
+ disableLED: false,
843
+ });
844
+
845
+ expect(adapter).toBeInstanceOf(EZSPAdapter);
846
+ // @ts-expect-error protected
847
+ expect(adapter.serialPortOptions).toStrictEqual({
848
+ path: EMBER_ZBDONGLE_E.path,
849
+ adapter: "ezsp",
850
+ rtscts: false,
851
+ });
852
+
853
+ listSpy.mockReturnValueOnce([ZSTACK_CC2538]);
854
+
855
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zstack", path: ZSTACK_CC2538.path}, "test.db.backup", {
856
+ disableLED: false,
857
+ });
858
+
859
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
860
+ // @ts-expect-error protected
861
+ expect(adapter.serialPortOptions).toStrictEqual({
862
+ path: ZSTACK_CC2538.path,
863
+ adapter: "zstack",
864
+ });
865
+
866
+ listSpy.mockReturnValueOnce([ZBOSS_NORDIC]);
867
+
868
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zboss", path: ZBOSS_NORDIC.path}, "test.db.backup", {
869
+ disableLED: false,
870
+ });
871
+
872
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
873
+ // @ts-expect-error protected
874
+ expect(adapter.serialPortOptions).toStrictEqual({
875
+ path: ZBOSS_NORDIC.path,
876
+ adapter: "zboss",
877
+ });
878
+
879
+ listSpy.mockReturnValueOnce([ZIGATE_PLUSV2]);
880
+
881
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zigate", path: ZIGATE_PLUSV2.path}, "test.db.backup", {
882
+ disableLED: false,
883
+ });
884
+
885
+ expect(adapter).toBeInstanceOf(ZiGateAdapter);
886
+ // @ts-expect-error protected
887
+ expect(adapter.serialPortOptions).toStrictEqual({
888
+ path: ZIGATE_PLUSV2.path,
889
+ adapter: "zigate",
890
+ });
891
+ });
892
+
893
+ it("detects with multiple adapters connected", async () => {
894
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II, ZSTACK_CC2538, EMBER_ZBDONGLE_E]);
895
+
896
+ const adapter = await Adapter.create(
897
+ {panID: 0x1a62, channelList: [11]},
898
+ {adapter: "zstack", path: ZSTACK_CC2538.path},
899
+ "test.db.backup",
900
+ {disableLED: false},
901
+ );
902
+
903
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
904
+ // @ts-expect-error protected
905
+ expect(adapter.serialPortOptions).toStrictEqual({
906
+ path: ZSTACK_CC2538.path,
907
+ adapter: "zstack",
908
+ });
909
+ });
910
+
911
+ it("detects with pnpId instead of path", async () => {
912
+ listSpy.mockReturnValueOnce([{...ZBOSS_NORDIC, path: "/dev/ttyUSB0", pnpId: "usb-ZEPHYR_Zigbee_NCP_54ACCFAFA6DADC49-if00"}]);
913
+
914
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zboss", path: "/dev/ttyUSB0"}, "test.db.backup", {
915
+ disableLED: false,
916
+ });
917
+
918
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
919
+ // @ts-expect-error protected
920
+ expect(adapter.serialPortOptions).toStrictEqual({
921
+ path: "/dev/ttyUSB0",
922
+ adapter: "zboss",
923
+ });
924
+ });
925
+
926
+ it("uses default serialPortOptions of adapter", async () => {
927
+ listSpy.mockReturnValueOnce([{...ZBT_2, path: "/dev/ttyUSB0"}]);
928
+
929
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "ember", path: "/dev/ttyUSB0"}, "test.db.backup", {
930
+ disableLED: false,
931
+ });
932
+
933
+ expect(adapter).toBeInstanceOf(EmberAdapter);
934
+ // @ts-expect-error protected
935
+ expect(adapter.serialPortOptions).toStrictEqual({
936
+ adapter: "ember",
937
+ baudRate: 460800,
938
+ path: "/dev/ttyUSB0",
939
+ rtscts: true,
940
+ });
941
+ });
942
+
943
+ it("detects with conflict vendor+product IDs", async () => {
944
+ listSpy.mockReturnValueOnce([{...EMBER_SKYCONNECT, manufacturer: undefined}]);
945
+
946
+ let adapter = await Adapter.create(
947
+ {panID: 0x1a62, channelList: [11]},
948
+ {adapter: "ember", path: EMBER_SKYCONNECT.path},
949
+ "test.db.backup",
950
+ {disableLED: false},
951
+ );
952
+
953
+ expect(adapter).toBeInstanceOf(EmberAdapter);
954
+ // @ts-expect-error protected
955
+ expect(adapter.serialPortOptions).toStrictEqual({
956
+ path: EMBER_SKYCONNECT.path,
957
+ adapter: "ember",
958
+ rtscts: true,
959
+ });
960
+
961
+ listSpy.mockReturnValueOnce([{...ZSTACK_ZBDONGLE_P, path: "/dev/ttyACM0"}]);
962
+
963
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zstack", path: "/dev/ttyACM0"}, "test.db.backup", {
964
+ disableLED: false,
965
+ });
966
+
967
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
968
+ // @ts-expect-error protected
969
+ expect(adapter.serialPortOptions).toStrictEqual({
970
+ path: "/dev/ttyACM0",
971
+ adapter: "zstack",
972
+ });
973
+ });
974
+
975
+ it("returns instance anyway on failure to match", async () => {
976
+ listSpy.mockReturnValueOnce([]);
977
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zstack", path: "dev/ttyUSB0"}, "test.db.backup", {
978
+ disableLED: false,
979
+ });
980
+
981
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
982
+ // @ts-expect-error protected
983
+ expect(adapter.serialPortOptions).toStrictEqual({
984
+ path: "dev/ttyUSB0",
985
+ adapter: "zstack",
986
+ });
987
+ });
988
+
989
+ it("returns instance anyway on failure to match with different path", async () => {
990
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II]);
991
+
992
+ const adapter = await Adapter.create(
993
+ {panID: 0x1a62, channelList: [11]},
994
+ {adapter: "deconz", path: "/dev/ttyUSB0"},
995
+ "test.db.backup",
996
+ {
997
+ disableLED: false,
998
+ },
999
+ );
1000
+
1001
+ expect(adapter).toBeInstanceOf(DeconzAdapter);
1002
+ // @ts-expect-error protected
1003
+ expect(adapter.serialPortOptions).toStrictEqual({
1004
+ path: "/dev/ttyUSB0",
1005
+ adapter: "deconz",
1006
+ });
1007
+ });
1008
+
1009
+ it("returns instance anyway on failure to get SerialPort.list", async () => {
1010
+ listSpy.mockRejectedValueOnce(new Error("spawn udevadm ENOENT"));
1011
+
1012
+ const adapter = await Adapter.create(
1013
+ {panID: 0x1a62, channelList: [11]},
1014
+ {adapter: "zstack", path: ZSTACK_CC2538.path},
1015
+ "test.db.backup",
1016
+ {disableLED: false},
1017
+ );
1018
+
1019
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
1020
+ // @ts-expect-error protected
1021
+ expect(adapter.serialPortOptions).toStrictEqual({
1022
+ path: ZSTACK_CC2538.path,
1023
+ adapter: "zstack",
1024
+ });
1025
+ });
1026
+
1027
+ it("throws on failure to match invalid adapter", async () => {
1028
+ listSpy.mockReturnValueOnce([]);
1029
+
1030
+ await expect(
1031
+ Adapter.create(
1032
+ {panID: 0x1a62, channelList: [11]},
1033
+ // @ts-expect-error invalid on purpose
1034
+ {adapter: "invalid", path: "dev/ttyUSB0"},
1035
+ "test.db.backup",
1036
+ {disableLED: false},
1037
+ ),
1038
+ ).rejects.toThrow(`Adapter 'invalid' does not exists, possible options: zstack, ember, deconz, zigate, zboss, zoh, ezsp`);
1039
+ });
1040
+ });
1041
+
1042
+ describe("with adapter only config", () => {
1043
+ it("detects each adapter", async () => {
1044
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II]);
1045
+
1046
+ let adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "deconz"}, "test.db.backup", {disableLED: false});
1047
+
1048
+ expect(adapter).toBeInstanceOf(DeconzAdapter);
1049
+ // @ts-expect-error protected
1050
+ expect(adapter.serialPortOptions).toStrictEqual({
1051
+ path: DECONZ_CONBEE_II.path,
1052
+ adapter: "deconz",
1053
+ });
1054
+
1055
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E]);
1056
+
1057
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "ember"}, "test.db.backup", {disableLED: false});
1058
+
1059
+ expect(adapter).toBeInstanceOf(EmberAdapter);
1060
+ // @ts-expect-error protected
1061
+ expect(adapter.serialPortOptions).toStrictEqual({
1062
+ path: EMBER_ZBDONGLE_E.path,
1063
+ adapter: "ember",
1064
+ rtscts: false,
1065
+ });
1066
+
1067
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E]);
1068
+
1069
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "ezsp"}, "test.db.backup", {disableLED: false});
1070
+
1071
+ expect(adapter).toBeInstanceOf(EZSPAdapter);
1072
+ // @ts-expect-error protected
1073
+ expect(adapter.serialPortOptions).toStrictEqual({
1074
+ path: EMBER_ZBDONGLE_E.path,
1075
+ adapter: "ezsp",
1076
+ rtscts: false,
1077
+ });
1078
+
1079
+ listSpy.mockReturnValueOnce([ZSTACK_CC2538]);
1080
+
1081
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zstack"}, "test.db.backup", {disableLED: false});
1082
+
1083
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
1084
+ // @ts-expect-error protected
1085
+ expect(adapter.serialPortOptions).toStrictEqual({
1086
+ path: ZSTACK_CC2538.path,
1087
+ adapter: "zstack",
1088
+ });
1089
+
1090
+ listSpy.mockReturnValueOnce([ZBOSS_NORDIC]);
1091
+
1092
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zboss"}, "test.db.backup", {disableLED: false});
1093
+
1094
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
1095
+ // @ts-expect-error protected
1096
+ expect(adapter.serialPortOptions).toStrictEqual({
1097
+ path: ZBOSS_NORDIC.path,
1098
+ adapter: "zboss",
1099
+ });
1100
+
1101
+ listSpy.mockReturnValueOnce([ZIGATE_PLUSV2]);
1102
+
1103
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zigate"}, "test.db.backup", {disableLED: false});
1104
+
1105
+ expect(adapter).toBeInstanceOf(ZiGateAdapter);
1106
+ // @ts-expect-error protected
1107
+ expect(adapter.serialPortOptions).toStrictEqual({
1108
+ path: ZIGATE_PLUSV2.path,
1109
+ adapter: "zigate",
1110
+ });
1111
+ });
1112
+
1113
+ it("detects with multiple adapters connected", async () => {
1114
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II, ZSTACK_CC2538, EMBER_ZBDONGLE_E]);
1115
+
1116
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zstack"}, "test.db.backup", {disableLED: false});
1117
+
1118
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
1119
+ // @ts-expect-error protected
1120
+ expect(adapter.serialPortOptions).toStrictEqual({
1121
+ path: ZSTACK_CC2538.path,
1122
+ adapter: "zstack",
1123
+ });
1124
+ });
1125
+
1126
+ it("detects with pnpId instead of path", async () => {
1127
+ listSpy.mockReturnValueOnce([{...ZBOSS_NORDIC, path: "/dev/ttyUSB0", pnpId: "usb-ZEPHYR_Zigbee_NCP_54ACCFAFA6DADC49-if00"}]);
1128
+
1129
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zboss"}, "test.db.backup", {
1130
+ disableLED: false,
1131
+ });
1132
+
1133
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
1134
+ // @ts-expect-error protected
1135
+ expect(adapter.serialPortOptions).toStrictEqual({
1136
+ path: "/dev/ttyUSB0",
1137
+ adapter: "zboss",
1138
+ });
1139
+ });
1140
+
1141
+ it("throws on failure to detect with conflict vendor+product IDs", async () => {
1142
+ listSpy.mockReturnValueOnce([{...EMBER_SKYCONNECT, path: "/dev/ttyACM0", manufacturer: undefined}]);
1143
+
1144
+ await expect(
1145
+ Adapter.create({panID: 0x1a62, channelList: [11]}, {adapter: "zstack"}, "test.db.backup", {disableLED: false}),
1146
+ ).rejects.toThrow(
1147
+ `USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.`,
1148
+ );
1149
+ });
1150
+ });
1151
+
1152
+ describe("with path only config", () => {
1153
+ it("detects each adapter", async () => {
1154
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II]);
1155
+
1156
+ let adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: DECONZ_CONBEE_II.path}, "test.db.backup", {
1157
+ disableLED: false,
1158
+ });
1159
+
1160
+ expect(adapter).toBeInstanceOf(DeconzAdapter);
1161
+ // @ts-expect-error protected
1162
+ expect(adapter.serialPortOptions).toStrictEqual({
1163
+ path: DECONZ_CONBEE_II.path,
1164
+ adapter: "deconz",
1165
+ });
1166
+
1167
+ listSpy.mockReturnValueOnce([EMBER_ZBDONGLE_E]);
1168
+
1169
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: EMBER_ZBDONGLE_E.path}, "test.db.backup", {
1170
+ disableLED: false,
1171
+ });
1172
+
1173
+ expect(adapter).toBeInstanceOf(EmberAdapter);
1174
+ // @ts-expect-error protected
1175
+ expect(adapter.serialPortOptions).toStrictEqual({
1176
+ path: EMBER_ZBDONGLE_E.path,
1177
+ adapter: "ember",
1178
+ rtscts: false,
1179
+ });
1180
+
1181
+ listSpy.mockReturnValueOnce([ZSTACK_CC2538]);
1182
+
1183
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: ZSTACK_CC2538.path}, "test.db.backup", {
1184
+ disableLED: false,
1185
+ });
1186
+
1187
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
1188
+ // @ts-expect-error protected
1189
+ expect(adapter.serialPortOptions).toStrictEqual({
1190
+ path: ZSTACK_CC2538.path,
1191
+ adapter: "zstack",
1192
+ });
1193
+
1194
+ listSpy.mockReturnValueOnce([ZBOSS_NORDIC]);
1195
+
1196
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: ZBOSS_NORDIC.path}, "test.db.backup", {
1197
+ disableLED: false,
1198
+ });
1199
+
1200
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
1201
+ // @ts-expect-error protected
1202
+ expect(adapter.serialPortOptions).toStrictEqual({
1203
+ path: ZBOSS_NORDIC.path,
1204
+ adapter: "zboss",
1205
+ });
1206
+
1207
+ listSpy.mockReturnValueOnce([ZIGATE_PLUSV2]);
1208
+
1209
+ adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: ZIGATE_PLUSV2.path}, "test.db.backup", {
1210
+ disableLED: false,
1211
+ });
1212
+
1213
+ expect(adapter).toBeInstanceOf(ZiGateAdapter);
1214
+ // @ts-expect-error protected
1215
+ expect(adapter.serialPortOptions).toStrictEqual({
1216
+ path: ZIGATE_PLUSV2.path,
1217
+ adapter: "zigate",
1218
+ });
1219
+ });
1220
+
1221
+ it("detects with multiple adapters connected", async () => {
1222
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II, ZSTACK_CC2538, EMBER_ZBDONGLE_E]);
1223
+
1224
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: ZSTACK_CC2538.path}, "test.db.backup", {
1225
+ disableLED: false,
1226
+ });
1227
+
1228
+ expect(adapter).toBeInstanceOf(ZStackAdapter);
1229
+ // @ts-expect-error protected
1230
+ expect(adapter.serialPortOptions).toStrictEqual({
1231
+ path: ZSTACK_CC2538.path,
1232
+ adapter: "zstack",
1233
+ });
1234
+ });
1235
+
1236
+ it("detects with pnpId instead of path", async () => {
1237
+ listSpy.mockReturnValueOnce([{...ZBOSS_NORDIC, path: "/dev/ttyUSB0", pnpId: "usb-ZEPHYR_Zigbee_NCP_54ACCFAFA6DADC49-if00"}]);
1238
+
1239
+ const adapter = await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: "/dev/ttyUSB0"}, "test.db.backup", {
1240
+ disableLED: false,
1241
+ });
1242
+
1243
+ expect(adapter).toBeInstanceOf(ZBOSSAdapter);
1244
+ // @ts-expect-error protected
1245
+ expect(adapter.serialPortOptions).toStrictEqual({
1246
+ path: "/dev/ttyUSB0",
1247
+ adapter: "zboss",
1248
+ });
1249
+ });
1250
+
1251
+ it("throws on failure to match with different path", async () => {
1252
+ listSpy.mockReturnValueOnce([DECONZ_CONBEE_II]);
1253
+
1254
+ await expect(
1255
+ Adapter.create({panID: 0x1a62, channelList: [11]}, {path: "/dev/ttyUSB0"}, "test.db.backup", {disableLED: false}),
1256
+ ).rejects.toThrow(
1257
+ `USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.`,
1258
+ );
1259
+ });
1260
+ });
1261
+
1262
+ it("throws on failure to match when port info too limited", async () => {
1263
+ listSpy.mockReturnValueOnce([{...DECONZ_CONBEE_II, vendorId: undefined}]);
1264
+
1265
+ await expect(Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false})).rejects.toThrow(
1266
+ `USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.`,
1267
+ );
1268
+
1269
+ listSpy.mockReturnValueOnce([{...DECONZ_CONBEE_II, productId: undefined}]);
1270
+
1271
+ await expect(Adapter.create({panID: 0x1a62, channelList: [11]}, {}, "test.db.backup", {disableLED: false})).rejects.toThrow(
1272
+ `USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.`,
1273
+ );
1274
+ });
1275
+ });
1276
+ });