zwave-js 14.3.9 → 15.0.0-beta.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 (244) hide show
  1. package/build/cjs/Driver.d.ts +1 -0
  2. package/build/cjs/Driver.js +4 -1
  3. package/build/cjs/Driver.js.map +2 -2
  4. package/build/cjs/Testing.d.ts +2 -0
  5. package/build/cjs/Testing.js +6 -0
  6. package/build/cjs/Testing.js.map +2 -2
  7. package/build/cjs/Utils.d.ts +1 -3
  8. package/build/cjs/Utils.js +0 -8
  9. package/build/cjs/Utils.js.map +2 -2
  10. package/build/cjs/index_browser.d.ts +10 -0
  11. package/build/cjs/index_browser.js +38 -0
  12. package/build/cjs/index_browser.js.map +7 -0
  13. package/build/cjs/lib/_version.d.ts +1 -1
  14. package/build/cjs/lib/_version.js +1 -1
  15. package/build/cjs/lib/_version.js.map +1 -1
  16. package/build/cjs/lib/controller/Controller.d.ts +5 -1
  17. package/build/cjs/lib/controller/Controller.js +142 -92
  18. package/build/cjs/lib/controller/Controller.js.map +3 -3
  19. package/build/cjs/lib/controller/FirmwareUpdateService.js +33 -32
  20. package/build/cjs/lib/controller/FirmwareUpdateService.js.map +3 -3
  21. package/build/cjs/lib/controller/MockControllerBehaviors.js +1 -1
  22. package/build/cjs/lib/controller/MockControllerBehaviors.js.map +2 -2
  23. package/build/cjs/lib/controller/ProxyInclusionMachine.d.ts +42 -0
  24. package/build/cjs/lib/controller/ProxyInclusionMachine.js +118 -0
  25. package/build/cjs/lib/controller/ProxyInclusionMachine.js.map +7 -0
  26. package/build/cjs/lib/driver/Bootloader.d.ts +6 -3
  27. package/build/cjs/lib/driver/Bootloader.js +16 -5
  28. package/build/cjs/lib/driver/Bootloader.js.map +2 -2
  29. package/build/cjs/lib/driver/Driver.d.ts +57 -19
  30. package/build/cjs/lib/driver/Driver.js +607 -346
  31. package/build/cjs/lib/driver/Driver.js.map +3 -3
  32. package/build/cjs/lib/driver/DriverMock.d.ts +9 -6
  33. package/build/cjs/lib/driver/DriverMock.js +16 -26
  34. package/build/cjs/lib/driver/DriverMock.js.map +3 -3
  35. package/build/cjs/lib/driver/DriverMode.d.ts +8 -0
  36. package/build/cjs/lib/driver/DriverMode.js +35 -0
  37. package/build/cjs/lib/driver/DriverMode.js.map +7 -0
  38. package/build/cjs/lib/driver/EndDeviceCLI.d.ts +11 -0
  39. package/build/cjs/lib/driver/EndDeviceCLI.js +73 -0
  40. package/build/cjs/lib/driver/EndDeviceCLI.js.map +7 -0
  41. package/build/cjs/lib/driver/Host.d.ts +10 -0
  42. package/build/cjs/lib/driver/Host.js +17 -0
  43. package/build/cjs/lib/driver/Host.js.map +7 -0
  44. package/build/cjs/lib/driver/MessageGenerators.d.ts +1 -1
  45. package/build/cjs/lib/driver/MessageGenerators.js +1 -1
  46. package/build/cjs/lib/driver/MessageGenerators.js.map +2 -2
  47. package/build/cjs/lib/driver/NetworkCache.d.ts +3 -3
  48. package/build/cjs/lib/driver/NetworkCache.js +11 -5
  49. package/build/cjs/lib/driver/NetworkCache.js.map +2 -2
  50. package/build/cjs/lib/driver/SerialAPICommandMachine.d.ts +52 -62
  51. package/build/cjs/lib/driver/SerialAPICommandMachine.js +125 -261
  52. package/build/cjs/lib/driver/SerialAPICommandMachine.js.map +2 -2
  53. package/build/cjs/lib/driver/StateMachineShared.d.ts +2 -13
  54. package/build/cjs/lib/driver/StateMachineShared.js +0 -69
  55. package/build/cjs/lib/driver/StateMachineShared.js.map +2 -2
  56. package/build/cjs/lib/driver/TransportServiceMachine.d.ts +18 -28
  57. package/build/cjs/lib/driver/TransportServiceMachine.js +77 -105
  58. package/build/cjs/lib/driver/TransportServiceMachine.js.map +2 -2
  59. package/build/cjs/lib/driver/UpdateConfig.d.ts +2 -2
  60. package/build/cjs/lib/driver/UpdateConfig.js +26 -75
  61. package/build/cjs/lib/driver/UpdateConfig.js.map +3 -3
  62. package/build/cjs/lib/driver/UserAgent.js +1 -1
  63. package/build/cjs/lib/driver/UserAgent.js.map +2 -2
  64. package/build/cjs/lib/driver/ZWaveOptions.d.ts +47 -19
  65. package/build/cjs/lib/driver/ZWaveOptions.js.map +2 -2
  66. package/build/cjs/lib/log/Driver.d.ts +2 -2
  67. package/build/cjs/lib/log/Driver.js +1 -1
  68. package/build/cjs/lib/log/Driver.js.map +2 -2
  69. package/build/cjs/lib/log/Zniffer.d.ts +2 -2
  70. package/build/cjs/lib/log/Zniffer.js.map +2 -2
  71. package/build/cjs/lib/node/Endpoint.js +1 -2
  72. package/build/cjs/lib/node/Endpoint.js.map +2 -2
  73. package/build/cjs/lib/node/Node.js +20 -19
  74. package/build/cjs/lib/node/Node.js.map +2 -2
  75. package/build/cjs/lib/node/NodeReadyMachine.d.ts +12 -20
  76. package/build/cjs/lib/node/NodeReadyMachine.js +39 -48
  77. package/build/cjs/lib/node/NodeReadyMachine.js.map +2 -2
  78. package/build/cjs/lib/node/NodeStatusMachine.d.ts +8 -22
  79. package/build/cjs/lib/node/NodeStatusMachine.js +71 -65
  80. package/build/cjs/lib/node/NodeStatusMachine.js.map +2 -2
  81. package/build/cjs/lib/node/mixins/10_Events.d.ts +2 -2
  82. package/build/cjs/lib/node/mixins/10_Events.js.map +2 -2
  83. package/build/cjs/lib/node/mixins/20_Status.d.ts +8 -5
  84. package/build/cjs/lib/node/mixins/20_Status.js +31 -20
  85. package/build/cjs/lib/node/mixins/20_Status.js.map +2 -2
  86. package/build/cjs/lib/node/mixins/60_ScheduledPoll.d.ts +6 -5
  87. package/build/cjs/lib/node/mixins/60_ScheduledPoll.js +3 -4
  88. package/build/cjs/lib/node/mixins/60_ScheduledPoll.js.map +2 -2
  89. package/build/cjs/lib/node/mixins/70_FirmwareUpdate.d.ts +3 -1
  90. package/build/cjs/lib/node/mixins/70_FirmwareUpdate.js +31 -3
  91. package/build/cjs/lib/node/mixins/70_FirmwareUpdate.js.map +2 -2
  92. package/build/cjs/lib/node/mockCCBehaviors/SoundSwitch.js +4 -3
  93. package/build/cjs/lib/node/mockCCBehaviors/SoundSwitch.js.map +2 -2
  94. package/build/cjs/lib/node/utils.d.ts +2 -2
  95. package/build/cjs/lib/node/utils.js.map +2 -2
  96. package/build/cjs/lib/telemetry/deviceConfig.js.map +1 -1
  97. package/build/cjs/lib/telemetry/statistics.js +2 -2
  98. package/build/cjs/lib/telemetry/statistics.js.map +2 -2
  99. package/build/cjs/lib/zniffer/Zniffer.d.ts +9 -2
  100. package/build/cjs/lib/zniffer/Zniffer.js +54 -21
  101. package/build/cjs/lib/zniffer/Zniffer.js.map +3 -3
  102. package/build/cjs/mockServer.js +31 -19
  103. package/build/cjs/mockServer.js.map +2 -2
  104. package/build/esm/Driver.d.ts +1 -0
  105. package/build/esm/Driver.d.ts.map +1 -1
  106. package/build/esm/Driver.js +1 -0
  107. package/build/esm/Driver.js.map +1 -1
  108. package/build/esm/Testing.d.ts +2 -0
  109. package/build/esm/Testing.d.ts.map +1 -1
  110. package/build/esm/Testing.js +2 -0
  111. package/build/esm/Testing.js.map +1 -1
  112. package/build/esm/Utils.d.ts +1 -3
  113. package/build/esm/Utils.d.ts.map +1 -1
  114. package/build/esm/Utils.js +1 -3
  115. package/build/esm/Utils.js.map +1 -1
  116. package/build/esm/index_browser.d.ts +10 -0
  117. package/build/esm/index_browser.d.ts.map +1 -0
  118. package/build/esm/index_browser.js +14 -0
  119. package/build/esm/index_browser.js.map +1 -0
  120. package/build/esm/lib/_version.d.ts +1 -1
  121. package/build/esm/lib/_version.d.ts.map +1 -1
  122. package/build/esm/lib/_version.js +1 -1
  123. package/build/esm/lib/_version.js.map +1 -1
  124. package/build/esm/lib/controller/Controller.d.ts +5 -1
  125. package/build/esm/lib/controller/Controller.d.ts.map +1 -1
  126. package/build/esm/lib/controller/Controller.js +168 -132
  127. package/build/esm/lib/controller/Controller.js.map +1 -1
  128. package/build/esm/lib/controller/FirmwareUpdateService.d.ts.map +1 -1
  129. package/build/esm/lib/controller/FirmwareUpdateService.js +34 -35
  130. package/build/esm/lib/controller/FirmwareUpdateService.js.map +1 -1
  131. package/build/esm/lib/controller/MockControllerBehaviors.js +1 -1
  132. package/build/esm/lib/controller/MockControllerBehaviors.js.map +1 -1
  133. package/build/esm/lib/controller/ProxyInclusionMachine.d.ts +42 -0
  134. package/build/esm/lib/controller/ProxyInclusionMachine.d.ts.map +1 -0
  135. package/build/esm/lib/controller/ProxyInclusionMachine.js +92 -0
  136. package/build/esm/lib/controller/ProxyInclusionMachine.js.map +1 -0
  137. package/build/esm/lib/driver/Bootloader.d.ts +6 -3
  138. package/build/esm/lib/driver/Bootloader.d.ts.map +1 -1
  139. package/build/esm/lib/driver/Bootloader.js +16 -5
  140. package/build/esm/lib/driver/Bootloader.js.map +1 -1
  141. package/build/esm/lib/driver/Driver.d.ts +57 -19
  142. package/build/esm/lib/driver/Driver.d.ts.map +1 -1
  143. package/build/esm/lib/driver/Driver.js +748 -415
  144. package/build/esm/lib/driver/Driver.js.map +1 -1
  145. package/build/esm/lib/driver/DriverMock.d.ts +9 -6
  146. package/build/esm/lib/driver/DriverMock.d.ts.map +1 -1
  147. package/build/esm/lib/driver/DriverMock.js +26 -27
  148. package/build/esm/lib/driver/DriverMock.js.map +1 -1
  149. package/build/esm/lib/driver/DriverMode.d.ts +8 -0
  150. package/build/esm/lib/driver/DriverMode.d.ts.map +1 -0
  151. package/build/esm/lib/driver/DriverMode.js +9 -0
  152. package/build/esm/lib/driver/DriverMode.js.map +1 -0
  153. package/build/esm/lib/driver/EndDeviceCLI.d.ts +11 -0
  154. package/build/esm/lib/driver/EndDeviceCLI.d.ts.map +1 -0
  155. package/build/esm/lib/driver/EndDeviceCLI.js +49 -0
  156. package/build/esm/lib/driver/EndDeviceCLI.js.map +1 -0
  157. package/build/esm/lib/driver/Host.d.ts +10 -0
  158. package/build/esm/lib/driver/Host.d.ts.map +1 -0
  159. package/build/esm/lib/driver/Host.js +3 -0
  160. package/build/esm/lib/driver/Host.js.map +1 -0
  161. package/build/esm/lib/driver/MessageGenerators.d.ts +1 -1
  162. package/build/esm/lib/driver/MessageGenerators.d.ts.map +1 -1
  163. package/build/esm/lib/driver/MessageGenerators.js +1 -1
  164. package/build/esm/lib/driver/MessageGenerators.js.map +1 -1
  165. package/build/esm/lib/driver/NetworkCache.d.ts +3 -3
  166. package/build/esm/lib/driver/NetworkCache.d.ts.map +1 -1
  167. package/build/esm/lib/driver/NetworkCache.js +12 -4
  168. package/build/esm/lib/driver/NetworkCache.js.map +1 -1
  169. package/build/esm/lib/driver/SerialAPICommandMachine.d.ts +52 -62
  170. package/build/esm/lib/driver/SerialAPICommandMachine.d.ts.map +1 -1
  171. package/build/esm/lib/driver/SerialAPICommandMachine.js +136 -280
  172. package/build/esm/lib/driver/SerialAPICommandMachine.js.map +1 -1
  173. package/build/esm/lib/driver/StateMachineShared.d.ts +2 -13
  174. package/build/esm/lib/driver/StateMachineShared.d.ts.map +1 -1
  175. package/build/esm/lib/driver/StateMachineShared.js +5 -67
  176. package/build/esm/lib/driver/StateMachineShared.js.map +1 -1
  177. package/build/esm/lib/driver/TransportServiceMachine.d.ts +18 -28
  178. package/build/esm/lib/driver/TransportServiceMachine.d.ts.map +1 -1
  179. package/build/esm/lib/driver/TransportServiceMachine.js +83 -108
  180. package/build/esm/lib/driver/TransportServiceMachine.js.map +1 -1
  181. package/build/esm/lib/driver/UpdateConfig.d.ts +2 -2
  182. package/build/esm/lib/driver/UpdateConfig.d.ts.map +1 -1
  183. package/build/esm/lib/driver/UpdateConfig.js +29 -88
  184. package/build/esm/lib/driver/UpdateConfig.js.map +1 -1
  185. package/build/esm/lib/driver/UserAgent.d.ts.map +1 -1
  186. package/build/esm/lib/driver/UserAgent.js +2 -1
  187. package/build/esm/lib/driver/UserAgent.js.map +1 -1
  188. package/build/esm/lib/driver/ZWaveOptions.d.ts +47 -19
  189. package/build/esm/lib/driver/ZWaveOptions.d.ts.map +1 -1
  190. package/build/esm/lib/driver/ZWaveOptions.js.map +1 -1
  191. package/build/esm/lib/log/Driver.d.ts +2 -2
  192. package/build/esm/lib/log/Driver.d.ts.map +1 -1
  193. package/build/esm/lib/log/Driver.js +1 -1
  194. package/build/esm/lib/log/Driver.js.map +1 -1
  195. package/build/esm/lib/log/Zniffer.d.ts +2 -2
  196. package/build/esm/lib/log/Zniffer.d.ts.map +1 -1
  197. package/build/esm/lib/log/Zniffer.js.map +1 -1
  198. package/build/esm/lib/node/Endpoint.d.ts.map +1 -1
  199. package/build/esm/lib/node/Endpoint.js +2 -3
  200. package/build/esm/lib/node/Endpoint.js.map +1 -1
  201. package/build/esm/lib/node/Node.d.ts.map +1 -1
  202. package/build/esm/lib/node/Node.js +27 -23
  203. package/build/esm/lib/node/Node.js.map +1 -1
  204. package/build/esm/lib/node/NodeReadyMachine.d.ts +12 -20
  205. package/build/esm/lib/node/NodeReadyMachine.d.ts.map +1 -1
  206. package/build/esm/lib/node/NodeReadyMachine.js +38 -47
  207. package/build/esm/lib/node/NodeReadyMachine.js.map +1 -1
  208. package/build/esm/lib/node/NodeStatusMachine.d.ts +8 -22
  209. package/build/esm/lib/node/NodeStatusMachine.d.ts.map +1 -1
  210. package/build/esm/lib/node/NodeStatusMachine.js +66 -61
  211. package/build/esm/lib/node/NodeStatusMachine.js.map +1 -1
  212. package/build/esm/lib/node/mixins/10_Events.d.ts +2 -2
  213. package/build/esm/lib/node/mixins/10_Events.d.ts.map +1 -1
  214. package/build/esm/lib/node/mixins/10_Events.js.map +1 -1
  215. package/build/esm/lib/node/mixins/20_Status.d.ts +8 -5
  216. package/build/esm/lib/node/mixins/20_Status.d.ts.map +1 -1
  217. package/build/esm/lib/node/mixins/20_Status.js +35 -24
  218. package/build/esm/lib/node/mixins/20_Status.js.map +1 -1
  219. package/build/esm/lib/node/mixins/60_ScheduledPoll.d.ts +6 -5
  220. package/build/esm/lib/node/mixins/60_ScheduledPoll.d.ts.map +1 -1
  221. package/build/esm/lib/node/mixins/60_ScheduledPoll.js +5 -6
  222. package/build/esm/lib/node/mixins/60_ScheduledPoll.js.map +1 -1
  223. package/build/esm/lib/node/mixins/70_FirmwareUpdate.d.ts +3 -1
  224. package/build/esm/lib/node/mixins/70_FirmwareUpdate.d.ts.map +1 -1
  225. package/build/esm/lib/node/mixins/70_FirmwareUpdate.js +49 -7
  226. package/build/esm/lib/node/mixins/70_FirmwareUpdate.js.map +1 -1
  227. package/build/esm/lib/node/mockCCBehaviors/SoundSwitch.d.ts.map +1 -1
  228. package/build/esm/lib/node/mockCCBehaviors/SoundSwitch.js +4 -3
  229. package/build/esm/lib/node/mockCCBehaviors/SoundSwitch.js.map +1 -1
  230. package/build/esm/lib/node/utils.d.ts +2 -2
  231. package/build/esm/lib/node/utils.d.ts.map +1 -1
  232. package/build/esm/lib/node/utils.js.map +1 -1
  233. package/build/esm/lib/telemetry/deviceConfig.js +2 -2
  234. package/build/esm/lib/telemetry/deviceConfig.js.map +1 -1
  235. package/build/esm/lib/telemetry/statistics.js +2 -2
  236. package/build/esm/lib/telemetry/statistics.js.map +1 -1
  237. package/build/esm/lib/zniffer/Zniffer.d.ts +9 -2
  238. package/build/esm/lib/zniffer/Zniffer.d.ts.map +1 -1
  239. package/build/esm/lib/zniffer/Zniffer.js +68 -32
  240. package/build/esm/lib/zniffer/Zniffer.js.map +1 -1
  241. package/build/esm/mockServer.d.ts.map +1 -1
  242. package/build/esm/mockServer.js +35 -20
  243. package/build/esm/mockServer.js.map +1 -1
  244. package/package.json +24 -27
@@ -5,6 +5,7 @@ export { FunctionType, Message, MessageType } from "@zwave-js/serial";
5
5
  export type { MessageOptions, ResponsePredicate, ResponseRole, } from "@zwave-js/serial";
6
6
  export { type CommandRequest, type ContainsCC, type ContainsSerializedCC, type MessageWithCC, containsCC, containsSerializedCC, isCommandRequest, isMessageWithCC, } from "@zwave-js/serial/serialapi";
7
7
  export { Driver, libName, libVersion } from "./lib/driver/Driver.js";
8
+ export * from "./lib/driver/DriverMode.js";
8
9
  export type { EditableZWaveOptions, PartialZWaveOptions, ZWaveOptions, } from "./lib/driver/ZWaveOptions.js";
9
10
  export type { DriverLogContext } from "./lib/log/Driver.js";
10
11
  //# sourceMappingURL=Driver.d.ts.map
@@ -15,6 +15,7 @@ var __copyProps = (to, from, except, desc) => {
15
15
  }
16
16
  return to;
17
17
  };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
20
  var Driver_exports = {};
20
21
  __export(Driver_exports, {
@@ -35,6 +36,7 @@ var import_core = require("@zwave-js/core");
35
36
  var import_serial = require("@zwave-js/serial");
36
37
  var import_serialapi = require("@zwave-js/serial/serialapi");
37
38
  var import_Driver = require("./lib/driver/Driver.js");
39
+ __reExport(Driver_exports, require("./lib/driver/DriverMode.js"), module.exports);
38
40
  // Annotate the CommonJS export names for ESM import in node:
39
41
  0 && (module.exports = {
40
42
  Driver,
@@ -47,6 +49,7 @@ var import_Driver = require("./lib/driver/Driver.js");
47
49
  isCommandRequest,
48
50
  isMessageWithCC,
49
51
  libName,
50
- libVersion
52
+ libVersion,
53
+ ...require("./lib/driver/DriverMode.js")
51
54
  });
52
55
  //# sourceMappingURL=Driver.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Driver.ts"],
4
- "sourcesContent": ["export { MessagePriority } from \"@zwave-js/core\";\nexport type { SendMessageOptions } from \"@zwave-js/core\";\nexport type { FileSystem } from \"@zwave-js/core\";\nexport { FunctionType, Message, MessageType } from \"@zwave-js/serial\";\nexport type {\n\tMessageOptions,\n\tResponsePredicate,\n\tResponseRole,\n} from \"@zwave-js/serial\";\nexport {\n\ttype CommandRequest,\n\ttype ContainsCC,\n\ttype ContainsSerializedCC,\n\ttype MessageWithCC,\n\tcontainsCC,\n\tcontainsSerializedCC,\n\tisCommandRequest,\n\tisMessageWithCC,\n} from \"@zwave-js/serial/serialapi\";\nexport { Driver, libName, libVersion } from \"./lib/driver/Driver.js\";\nexport type {\n\tEditableZWaveOptions,\n\tPartialZWaveOptions,\n\tZWaveOptions,\n} from \"./lib/driver/ZWaveOptions.js\";\nexport type { DriverLogContext } from \"./lib/log/Driver.js\";\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;AAAA,kBAAgC;AAGhC,oBAAmD;AAMnD,uBASO;AACP,oBAA4C;",
4
+ "sourcesContent": ["export { MessagePriority } from \"@zwave-js/core\";\nexport type { SendMessageOptions } from \"@zwave-js/core\";\nexport type { FileSystem } from \"@zwave-js/core\";\nexport { FunctionType, Message, MessageType } from \"@zwave-js/serial\";\nexport type {\n\tMessageOptions,\n\tResponsePredicate,\n\tResponseRole,\n} from \"@zwave-js/serial\";\nexport {\n\ttype CommandRequest,\n\ttype ContainsCC,\n\ttype ContainsSerializedCC,\n\ttype MessageWithCC,\n\tcontainsCC,\n\tcontainsSerializedCC,\n\tisCommandRequest,\n\tisMessageWithCC,\n} from \"@zwave-js/serial/serialapi\";\nexport { Driver, libName, libVersion } from \"./lib/driver/Driver.js\";\nexport * from \"./lib/driver/DriverMode.js\";\nexport type {\n\tEditableZWaveOptions,\n\tPartialZWaveOptions,\n\tZWaveOptions,\n} from \"./lib/driver/ZWaveOptions.js\";\nexport type { DriverLogContext } from \"./lib/log/Driver.js\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;AAAA,kBAAgC;AAGhC,oBAAmD;AAMnD,uBASO;AACP,oBAA4C;AAC5C,2BAAc,uCApBd;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,6 @@
1
+ export { createDefaultBehaviors as createDefaultMockControllerBehaviors } from "./lib/controller/MockControllerBehaviors.js";
1
2
  export { createAndStartDriverWithMockPort } from "./lib/driver/DriverMock.js";
3
+ export { createDefaultBehaviors as createDefaultMockNodeBehaviors } from "./lib/node/MockNodeBehaviors.js";
2
4
  export { MockServer, createMockNodeOptionsFromDump } from "./mockServer.js";
3
5
  export type { MockServerControllerOptions, MockServerNodeOptions, MockServerOptions, } from "./mockServer.js";
4
6
  //# sourceMappingURL=Testing.d.ts.map
@@ -20,15 +20,21 @@ var Testing_exports = {};
20
20
  __export(Testing_exports, {
21
21
  MockServer: () => import_mockServer.MockServer,
22
22
  createAndStartDriverWithMockPort: () => import_DriverMock.createAndStartDriverWithMockPort,
23
+ createDefaultMockControllerBehaviors: () => import_MockControllerBehaviors.createDefaultBehaviors,
24
+ createDefaultMockNodeBehaviors: () => import_MockNodeBehaviors.createDefaultBehaviors,
23
25
  createMockNodeOptionsFromDump: () => import_mockServer.createMockNodeOptionsFromDump
24
26
  });
25
27
  module.exports = __toCommonJS(Testing_exports);
28
+ var import_MockControllerBehaviors = require("./lib/controller/MockControllerBehaviors.js");
26
29
  var import_DriverMock = require("./lib/driver/DriverMock.js");
30
+ var import_MockNodeBehaviors = require("./lib/node/MockNodeBehaviors.js");
27
31
  var import_mockServer = require("./mockServer.js");
28
32
  // Annotate the CommonJS export names for ESM import in node:
29
33
  0 && (module.exports = {
30
34
  MockServer,
31
35
  createAndStartDriverWithMockPort,
36
+ createDefaultMockControllerBehaviors,
37
+ createDefaultMockNodeBehaviors,
32
38
  createMockNodeOptionsFromDump
33
39
  });
34
40
  //# sourceMappingURL=Testing.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Testing.ts"],
4
- "sourcesContent": ["export { createAndStartDriverWithMockPort } from \"./lib/driver/DriverMock.js\";\nexport { MockServer, createMockNodeOptionsFromDump } from \"./mockServer.js\";\nexport type {\n\tMockServerControllerOptions,\n\tMockServerNodeOptions,\n\tMockServerOptions,\n} from \"./mockServer.js\";\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAAA,wBAAiD;AACjD,wBAA0D;",
4
+ "sourcesContent": ["export { createDefaultBehaviors as createDefaultMockControllerBehaviors } from \"./lib/controller/MockControllerBehaviors.js\";\nexport { createAndStartDriverWithMockPort } from \"./lib/driver/DriverMock.js\";\nexport { createDefaultBehaviors as createDefaultMockNodeBehaviors } from \"./lib/node/MockNodeBehaviors.js\";\nexport { MockServer, createMockNodeOptionsFromDump } from \"./mockServer.js\";\nexport type {\n\tMockServerControllerOptions,\n\tMockServerNodeOptions,\n\tMockServerOptions,\n} from \"./mockServer.js\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;AAAA,qCAA+E;AAC/E,wBAAiD;AACjD,+BAAyE;AACzE,wBAA0D;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,6 @@
1
- export { ProtocolDataRate, ProtocolType, ProtocolVersion, Protocols, QRCodeVersion, RouteProtocolDataRate, extractFirmware, extractFirmwareAsync, guessFirmwareFileFormat, parseQRCodeString, rssiToString, tryUnzipFirmwareFile, } from "@zwave-js/core";
1
+ export { ProtocolDataRate, ProtocolType, ProtocolVersion, Protocols, QRCodeVersion, RouteProtocolDataRate, extractFirmware, guessFirmwareFileFormat, parseQRCodeString, rssiToString, tryUnzipFirmwareFile, } from "@zwave-js/core";
2
2
  export type { Firmware, FirmwareFileFormat, QRProvisioningInformation, protocolDataRateToString, } from "@zwave-js/core";
3
3
  export { buffer2hex, formatId, getEnumMemberName, num2hex, } from "@zwave-js/shared/safe";
4
- export { createDefaultBehaviors as createDefaultMockControllerBehaviors } from "./lib/controller/MockControllerBehaviors.js";
5
4
  export { driverPresets } from "./lib/driver/ZWaveOptions.js";
6
5
  export { formatLifelineHealthCheckRound, formatLifelineHealthCheckSummary, formatRouteHealthCheckRound, formatRouteHealthCheckSummary, healthCheckRatingToWord, } from "./lib/node/HealthCheck.js";
7
- export { createDefaultBehaviors as createDefaultMockNodeBehaviors } from "./lib/node/MockNodeBehaviors.js";
8
6
  //# sourceMappingURL=Utils.d.ts.map
@@ -25,11 +25,8 @@ __export(Utils_exports, {
25
25
  QRCodeVersion: () => import_core.QRCodeVersion,
26
26
  RouteProtocolDataRate: () => import_core.RouteProtocolDataRate,
27
27
  buffer2hex: () => import_safe.buffer2hex,
28
- createDefaultMockControllerBehaviors: () => import_MockControllerBehaviors.createDefaultBehaviors,
29
- createDefaultMockNodeBehaviors: () => import_MockNodeBehaviors.createDefaultBehaviors,
30
28
  driverPresets: () => import_ZWaveOptions.driverPresets,
31
29
  extractFirmware: () => import_core.extractFirmware,
32
- extractFirmwareAsync: () => import_core.extractFirmwareAsync,
33
30
  formatId: () => import_safe.formatId,
34
31
  formatLifelineHealthCheckRound: () => import_HealthCheck.formatLifelineHealthCheckRound,
35
32
  formatLifelineHealthCheckSummary: () => import_HealthCheck.formatLifelineHealthCheckSummary,
@@ -46,10 +43,8 @@ __export(Utils_exports, {
46
43
  module.exports = __toCommonJS(Utils_exports);
47
44
  var import_core = require("@zwave-js/core");
48
45
  var import_safe = require("@zwave-js/shared/safe");
49
- var import_MockControllerBehaviors = require("./lib/controller/MockControllerBehaviors.js");
50
46
  var import_ZWaveOptions = require("./lib/driver/ZWaveOptions.js");
51
47
  var import_HealthCheck = require("./lib/node/HealthCheck.js");
52
- var import_MockNodeBehaviors = require("./lib/node/MockNodeBehaviors.js");
53
48
  // Annotate the CommonJS export names for ESM import in node:
54
49
  0 && (module.exports = {
55
50
  ProtocolDataRate,
@@ -59,11 +54,8 @@ var import_MockNodeBehaviors = require("./lib/node/MockNodeBehaviors.js");
59
54
  QRCodeVersion,
60
55
  RouteProtocolDataRate,
61
56
  buffer2hex,
62
- createDefaultMockControllerBehaviors,
63
- createDefaultMockNodeBehaviors,
64
57
  driverPresets,
65
58
  extractFirmware,
66
- extractFirmwareAsync,
67
59
  formatId,
68
60
  formatLifelineHealthCheckRound,
69
61
  formatLifelineHealthCheckSummary,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Utils.ts"],
4
- "sourcesContent": ["export {\n\tProtocolDataRate,\n\tProtocolType,\n\tProtocolVersion,\n\tProtocols,\n\tQRCodeVersion,\n\tRouteProtocolDataRate,\n\textractFirmware,\n\textractFirmwareAsync,\n\tguessFirmwareFileFormat,\n\tparseQRCodeString,\n\trssiToString,\n\ttryUnzipFirmwareFile,\n} from \"@zwave-js/core\";\nexport type {\n\tFirmware,\n\tFirmwareFileFormat,\n\tQRProvisioningInformation,\n\tprotocolDataRateToString,\n} from \"@zwave-js/core\";\nexport {\n\tbuffer2hex,\n\tformatId,\n\tgetEnumMemberName,\n\tnum2hex,\n} from \"@zwave-js/shared/safe\";\nexport { createDefaultBehaviors as createDefaultMockControllerBehaviors } from \"./lib/controller/MockControllerBehaviors.js\";\nexport { driverPresets } from \"./lib/driver/ZWaveOptions.js\";\nexport {\n\tformatLifelineHealthCheckRound,\n\tformatLifelineHealthCheckSummary,\n\tformatRouteHealthCheckRound,\n\tformatRouteHealthCheckSummary,\n\thealthCheckRatingToWord,\n} from \"./lib/node/HealthCheck.js\";\nexport { createDefaultBehaviors as createDefaultMockNodeBehaviors } from \"./lib/node/MockNodeBehaviors.js\";\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAaO;AAOP,kBAKO;AACP,qCAA+E;AAC/E,0BAA8B;AAC9B,yBAMO;AACP,+BAAyE;",
4
+ "sourcesContent": ["export {\n\tProtocolDataRate,\n\tProtocolType,\n\tProtocolVersion,\n\tProtocols,\n\tQRCodeVersion,\n\tRouteProtocolDataRate,\n\textractFirmware,\n\tguessFirmwareFileFormat,\n\tparseQRCodeString,\n\trssiToString,\n\ttryUnzipFirmwareFile,\n} from \"@zwave-js/core\";\nexport type {\n\tFirmware,\n\tFirmwareFileFormat,\n\tQRProvisioningInformation,\n\tprotocolDataRateToString,\n} from \"@zwave-js/core\";\nexport {\n\tbuffer2hex,\n\tformatId,\n\tgetEnumMemberName,\n\tnum2hex,\n} from \"@zwave-js/shared/safe\";\nexport { driverPresets } from \"./lib/driver/ZWaveOptions.js\";\nexport {\n\tformatLifelineHealthCheckRound,\n\tformatLifelineHealthCheckSummary,\n\tformatRouteHealthCheckRound,\n\tformatRouteHealthCheckSummary,\n\thealthCheckRatingToWord,\n} from \"./lib/node/HealthCheck.js\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAYO;AAOP,kBAKO;AACP,0BAA8B;AAC9B,yBAMO;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,10 @@
1
+ import "reflect-metadata";
2
+ export * from "@zwave-js/cc";
3
+ export * from "./Controller.js";
4
+ export * from "./Driver.js";
5
+ export * from "./Error.js";
6
+ export * from "./Node.js";
7
+ export * from "./Utils.js";
8
+ export * from "./Values.js";
9
+ export * from "./Zniffer.js";
10
+ //# sourceMappingURL=index_browser.d.ts.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var index_browser_exports = {};
17
+ module.exports = __toCommonJS(index_browser_exports);
18
+ var import_reflect_metadata = require("reflect-metadata");
19
+ __reExport(index_browser_exports, require("@zwave-js/cc"), module.exports);
20
+ __reExport(index_browser_exports, require("./Controller.js"), module.exports);
21
+ __reExport(index_browser_exports, require("./Driver.js"), module.exports);
22
+ __reExport(index_browser_exports, require("./Error.js"), module.exports);
23
+ __reExport(index_browser_exports, require("./Node.js"), module.exports);
24
+ __reExport(index_browser_exports, require("./Utils.js"), module.exports);
25
+ __reExport(index_browser_exports, require("./Values.js"), module.exports);
26
+ __reExport(index_browser_exports, require("./Zniffer.js"), module.exports);
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ ...require("@zwave-js/cc"),
30
+ ...require("./Controller.js"),
31
+ ...require("./Driver.js"),
32
+ ...require("./Error.js"),
33
+ ...require("./Node.js"),
34
+ ...require("./Utils.js"),
35
+ ...require("./Values.js"),
36
+ ...require("./Zniffer.js")
37
+ });
38
+ //# sourceMappingURL=index_browser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index_browser.ts"],
4
+ "sourcesContent": ["// organize-imports-ignore\n\n/* @forbiddenImports sinon */\n\n// This module is the main entry point. Requiring reflect-metadata here avoids forgetting it\nimport \"reflect-metadata\";\n\n// Export some frequently-used things and types - this also loads all CC files including metadata\nexport * from \"@zwave-js/cc\";\nexport * from \"./Controller.js\";\nexport * from \"./Driver.js\";\nexport * from \"./Error.js\";\nexport * from \"./Node.js\";\nexport * from \"./Utils.js\";\nexport * from \"./Values.js\";\nexport * from \"./Zniffer.js\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;AAAA;;AAKA,8BAAO;AAGP,kCAAc,yBARd;AASA,kCAAc,4BATd;AAUA,kCAAc,wBAVd;AAWA,kCAAc,uBAXd;AAYA,kCAAc,sBAZd;AAaA,kCAAc,uBAbd;AAcA,kCAAc,wBAdd;AAeA,kCAAc,yBAfd;",
6
+ "names": []
7
+ }
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "14.3.9";
1
+ export declare const PACKAGE_VERSION = "15.0.0-beta.0";
2
2
  export declare const PACKAGE_NAME = "zwave-js";
3
3
  //# sourceMappingURL=_version.d.ts.map
@@ -22,7 +22,7 @@ __export(version_exports, {
22
22
  PACKAGE_VERSION: () => PACKAGE_VERSION
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- const PACKAGE_VERSION = "14.3.9";
25
+ const PACKAGE_VERSION = "15.0.0-beta.0";
26
26
  const PACKAGE_NAME = "zwave-js";
27
27
  // Annotate the CommonJS export names for ESM import in node:
28
28
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lib/_version.ts"],
4
- "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"14.3.9\";\nexport const PACKAGE_NAME = \"zwave-js\";\n"],
4
+ "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.0.0-beta.0\";\nexport const PACKAGE_NAME = \"zwave-js\";\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;AACO,MAAM,kBAAkB;AACxB,MAAM,eAAe;",
6
6
  "names": []
7
7
  }
@@ -62,7 +62,7 @@ export declare class ZWaveController extends TypedEventTarget<ControllerEventCal
62
62
  /**
63
63
  * The device specific key (DSK) of the controller in binary format.
64
64
  */
65
- get dsk(): Uint8Array;
65
+ getDSK(): Promise<Uint8Array>;
66
66
  /** @deprecated Use {@link role} instead */
67
67
  get isPrimary(): MaybeNotKnown<boolean>;
68
68
  private _isPrimary;
@@ -275,6 +275,9 @@ export declare class ZWaveController extends TypedEventTarget<ControllerEventCal
275
275
  * and false if the inclusion was not active.
276
276
  */
277
277
  stopExclusion(): Promise<boolean>;
278
+ private _proxyInclusionMachine;
279
+ private _proxyInclusionInitiateTimeout;
280
+ private updateProxyInclusionMachine;
278
281
  /**
279
282
  * Handles bootstrapping the security keys for a node that was included by an inclusion controller
280
283
  */
@@ -860,6 +863,7 @@ export declare class ZWaveController extends TypedEventTarget<ControllerEventCal
860
863
  private expectSecurityBootstrapS0;
861
864
  private expectSecurityBootstrapS2;
862
865
  private afterJoiningNetwork;
866
+ destroy(): void;
863
867
  }
864
868
  export {};
865
869
  //# sourceMappingURL=Controller.d.ts.map
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
7
  var __export = (target, all) => {
@@ -18,14 +16,6 @@ var __copyProps = (to, from, except, desc) => {
18
16
  }
19
17
  return to;
20
18
  };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
20
  var Controller_exports = {};
31
21
  __export(Controller_exports, {
@@ -85,7 +75,7 @@ var import_async = require("alcalzone-shared/async");
85
75
  var import_deferred_promise = require("alcalzone-shared/deferred-promise");
86
76
  var import_math = require("alcalzone-shared/math");
87
77
  var import_typeguards = require("alcalzone-shared/typeguards");
88
- var import_node_crypto = __toESM(require("node:crypto"), 1);
78
+ var import_DriverMode = require("../driver/DriverMode.js");
89
79
  var import_NetworkCache = require("../driver/NetworkCache.js");
90
80
  var import_Task = require("../driver/Task.js");
91
81
  var import_DeviceClass = require("../node/DeviceClass.js");
@@ -98,6 +88,7 @@ var import_FirmwareUpdateService = require("./FirmwareUpdateService.js");
98
88
  var import_Inclusion = require("./Inclusion.js");
99
89
  var import_NVMIO = require("./NVMIO.js");
100
90
  var import_NodeInformationFrame = require("./NodeInformationFrame.js");
91
+ var import_ProxyInclusionMachine = require("./ProxyInclusionMachine.js");
101
92
  var import_ZWaveSDKVersions = require("./ZWaveSDKVersions.js");
102
93
  var import_Types2 = require("./_Types.js");
103
94
  var import_utils = require("./utils.js");
@@ -210,10 +201,9 @@ let ZWaveController = (() => {
210
201
  /**
211
202
  * The device specific key (DSK) of the controller in binary format.
212
203
  */
213
- get dsk() {
204
+ async getDSK() {
214
205
  if (this._dsk == void 0) {
215
- const keyPair = this.driver.getLearnModeAuthenticatedKeyPair();
216
- const publicKey = (0, import_core.extractRawECDHPublicKeySync)(keyPair.publicKey);
206
+ const { publicKey } = await this.driver.getLearnModeAuthenticatedKeyPair();
217
207
  this._dsk = publicKey.subarray(0, 16);
218
208
  }
219
209
  return this._dsk;
@@ -1406,6 +1396,104 @@ let ZWaveController = (() => {
1406
1396
  throw e;
1407
1397
  }
1408
1398
  }
1399
+ _proxyInclusionMachine;
1400
+ _proxyInclusionInitiateTimeout;
1401
+ async updateProxyInclusionMachine(input) {
1402
+ this._proxyInclusionMachine ??= (0, import_ProxyInclusionMachine.createProxyInclusionMachine)();
1403
+ const newState = this._proxyInclusionMachine.next(input)?.newState;
1404
+ if (!newState)
1405
+ return;
1406
+ this._proxyInclusionMachine.transition(newState);
1407
+ switch (newState.value) {
1408
+ case "hasNIF": {
1409
+ this.setInclusionState(import_Inclusion.InclusionState.Busy);
1410
+ this.driver.controllerLog.logNode(newState.nodeInfo.nodeId, "Waiting for initiate command to bootstrap node...");
1411
+ if (this._proxyInclusionInitiateTimeout) {
1412
+ clearTimeout(this._proxyInclusionInitiateTimeout);
1413
+ }
1414
+ this._proxyInclusionInitiateTimeout = setTimeout(() => {
1415
+ void this.updateProxyInclusionMachine({
1416
+ value: "INITIATE_TIMEOUT"
1417
+ }).catch(import_shared.noop);
1418
+ }, 1e4).unref();
1419
+ return;
1420
+ }
1421
+ case "hasInitiate": {
1422
+ this.setInclusionState(import_Inclusion.InclusionState.Busy);
1423
+ if (this._proxyInclusionInitiateTimeout) {
1424
+ clearTimeout(this._proxyInclusionInitiateTimeout);
1425
+ }
1426
+ this._proxyInclusionInitiateTimeout = setTimeout(() => {
1427
+ void this.updateProxyInclusionMachine({
1428
+ value: "NIF_TIMEOUT"
1429
+ }).catch(import_shared.noop);
1430
+ }, 1e4).unref();
1431
+ return;
1432
+ }
1433
+ case "bootstrapping": {
1434
+ if (this._proxyInclusionInitiateTimeout) {
1435
+ clearTimeout(this._proxyInclusionInitiateTimeout);
1436
+ this._proxyInclusionInitiateTimeout = void 0;
1437
+ }
1438
+ const nodeId = newState.includedNodeId;
1439
+ let newNode = newState.newNode ?? new import_Node.ZWaveNode(nodeId, this.driver);
1440
+ this._nodes.set(nodeId, newNode);
1441
+ const inclCtrlr = this.nodes.getOrThrow(newState.inclusionControllerNodeId);
1442
+ this.driver.controllerLog.logNode(nodeId, `Initiate command received from node ${inclCtrlr.id}`);
1443
+ newNode.hasSUCReturnRoute = true;
1444
+ const nodeInfo = await newNode.requestNodeInfo().catch(() => void 0);
1445
+ if (nodeInfo) {
1446
+ if (newState.newNode) {
1447
+ newNode.updateNodeInfo(nodeInfo);
1448
+ } else {
1449
+ const deviceClass = new import_DeviceClass.DeviceClass(nodeInfo.basicDeviceClass, nodeInfo.genericDeviceClass, nodeInfo.specificDeviceClass);
1450
+ newNode = new import_Node.ZWaveNode(
1451
+ nodeId,
1452
+ this.driver,
1453
+ deviceClass,
1454
+ nodeInfo.supportedCCs,
1455
+ void 0,
1456
+ // Create an empty value DB and specify that it contains no values
1457
+ // to avoid indexing the existing values
1458
+ this.createValueDBForNode(nodeId, /* @__PURE__ */ new Set())
1459
+ );
1460
+ this._nodes.set(nodeId, newNode);
1461
+ }
1462
+ }
1463
+ newNode.markAsAlive();
1464
+ const bootstrapFailure = await this.proxyBootstrap(newNode, inclCtrlr);
1465
+ const result = bootstrapFailure != void 0 ? {
1466
+ lowSecurity: true,
1467
+ lowSecurityReason: bootstrapFailure
1468
+ } : { lowSecurity: false };
1469
+ this.setInclusionState(import_Inclusion.InclusionState.Idle);
1470
+ this.emit("node added", newNode, result);
1471
+ this._proxyInclusionMachine = void 0;
1472
+ if (inclCtrlr && newState.step != void 0) {
1473
+ const step = newState.step;
1474
+ newNode.once("ready", () => {
1475
+ this.driver.controllerLog.logNode(inclCtrlr.nodeId, `Notifying inclusion controller of finished inclusion`);
1476
+ const api = inclCtrlr.createAPI(import_core.CommandClasses["Inclusion Controller"], false);
1477
+ void api.completeStep(step, import_cc.InclusionControllerStatus.OK).catch(import_shared.noop);
1478
+ });
1479
+ }
1480
+ return;
1481
+ }
1482
+ case "interview": {
1483
+ this._proxyInclusionMachine = void 0;
1484
+ if (this._proxyInclusionInitiateTimeout) {
1485
+ clearTimeout(this._proxyInclusionInitiateTimeout);
1486
+ this._proxyInclusionInitiateTimeout = void 0;
1487
+ }
1488
+ this.setInclusionState(import_Inclusion.InclusionState.Idle);
1489
+ this.emit("node added", newState.newNode, {
1490
+ lowSecurity: false
1491
+ });
1492
+ this._proxyInclusionMachine = void 0;
1493
+ return;
1494
+ }
1495
+ }
1496
+ }
1409
1497
  /** @internal */
1410
1498
  async handleApplicationUpdateRequest(msg) {
1411
1499
  const nodeId = msg.getNodeId();
@@ -1482,7 +1570,6 @@ let ZWaveController = (() => {
1482
1570
  this.driver.controllerLog.print(`Node ${nodeId2} was (supposedly) included by another controller, but it is already part of the network. Ignoring the message...`, "warn");
1483
1571
  return;
1484
1572
  }
1485
- this.setInclusionState(import_Inclusion.InclusionState.Busy);
1486
1573
  const deviceClass = new import_DeviceClass.DeviceClass(nodeInfo.basicDeviceClass, nodeInfo.genericDeviceClass, nodeInfo.specificDeviceClass);
1487
1574
  const newNode = new import_Node.ZWaveNode(
1488
1575
  nodeId2,
@@ -1506,68 +1593,30 @@ let ZWaveController = (() => {
1506
1593
  specific device class: ${newNode.deviceClass.specific.label}` : ""}
1507
1594
  supported CCs: ${nodeInfo.supportedCCs.map((cc) => `
1508
1595
  \xB7 ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`).join("")}`);
1509
- this.driver.controllerLog.logNode(nodeId2, "Waiting for initiate command to bootstrap node...");
1510
- process.nextTick(async () => {
1511
- const initiate = await this.driver.waitForCommand((cc) => cc instanceof import_cc.InclusionControllerCCInitiate && cc.isSinglecast() && cc.includedNodeId === nodeId2 && cc.step === import_cc.InclusionControllerStep.ProxyInclusion, 1e4).catch(() => void 0);
1512
- newNode.markAsAlive();
1513
- let inclCtrlr;
1514
- let bootstrapFailure;
1515
- if (initiate) {
1516
- inclCtrlr = this.nodes.getOrThrow(initiate.nodeId);
1517
- this.driver.controllerLog.logNode(nodeId2, `Initiate command received from node ${inclCtrlr.id}`);
1518
- newNode.hasSUCReturnRoute = true;
1519
- const requestedNodeInfo = await newNode.requestNodeInfo().catch(() => void 0);
1520
- if (requestedNodeInfo) {
1521
- newNode.updateNodeInfo(requestedNodeInfo);
1522
- }
1523
- bootstrapFailure = await this.proxyBootstrap(newNode, inclCtrlr);
1524
- } else {
1525
- this.driver.controllerLog.logNode(nodeId2, "no initiate command received, bootstrapping node...");
1526
- if (newNode.protocol == import_core.Protocols.ZWave) {
1527
- newNode.hasSUCReturnRoute = await this.assignSUCReturnRoutes(newNode.id);
1528
- }
1529
- if (newNode.supportsCC(import_core.CommandClasses["Security 2"])) {
1530
- bootstrapFailure = await this.secureBootstrapS2(newNode);
1531
- if (bootstrapFailure == void 0) {
1532
- const actualSecurityClass = newNode.getHighestSecurityClass();
1533
- if (actualSecurityClass == void 0 || actualSecurityClass < import_core.SecurityClass.S2_Unauthenticated) {
1534
- bootstrapFailure = import_Inclusion.SecurityBootstrapFailure.Unknown;
1535
- }
1536
- }
1537
- } else if (newNode.supportsCC(import_core.CommandClasses.Security) && (deviceClass.specific ?? deviceClass.generic).requiresSecurity) {
1538
- bootstrapFailure = await this.secureBootstrapS0(newNode);
1539
- if (bootstrapFailure == void 0) {
1540
- const actualSecurityClass = newNode.getHighestSecurityClass();
1541
- if (actualSecurityClass == void 0 || actualSecurityClass < import_core.SecurityClass.S0_Legacy) {
1542
- bootstrapFailure = import_Inclusion.SecurityBootstrapFailure.Unknown;
1543
- }
1544
- }
1545
- } else {
1546
- for (const secClass of import_core.securityClassOrder) {
1547
- newNode.securityClasses.set(secClass, false);
1548
- }
1549
- }
1550
- }
1551
- const result = bootstrapFailure != void 0 ? {
1552
- lowSecurity: true,
1553
- lowSecurityReason: bootstrapFailure
1554
- } : { lowSecurity: false };
1555
- this.setInclusionState(import_Inclusion.InclusionState.Idle);
1556
- this.emit("node added", newNode, result);
1557
- if (inclCtrlr && initiate) {
1558
- const inclCtrlrId = inclCtrlr.id;
1559
- const step = initiate.step;
1560
- newNode.once("ready", () => {
1561
- this.driver.controllerLog.logNode(nodeId2, `Notifying node ${inclCtrlrId} of finished inclusion`);
1562
- const api = inclCtrlr.createAPI(import_core.CommandClasses["Inclusion Controller"], false);
1563
- void api.completeStep(step, import_cc.InclusionControllerStatus.OK).catch(import_shared.noop);
1564
- });
1565
- }
1596
+ await this.updateProxyInclusionMachine({
1597
+ value: "NIF",
1598
+ nodeInfo,
1599
+ newNode
1566
1600
  });
1567
1601
  } else if (msg instanceof import_serialapi.ApplicationUpdateRequestSUCIdChanged) {
1568
1602
  this._sucNodeId = msg.sucNodeID;
1569
1603
  }
1570
1604
  }
1605
+ /**
1606
+ * @internal
1607
+ * Handles proxy inclusion requests from an inclusion controller
1608
+ */
1609
+ handleInclusionControllerCCInitiateProxyInclusion(initiate) {
1610
+ if (initiate.step !== import_cc.InclusionControllerStep.ProxyInclusion) {
1611
+ throw new import_core.ZWaveError("Expected an inclusion controller proxy inclusion request, but got a different step", import_core.ZWaveErrorCodes.Argument_Invalid);
1612
+ }
1613
+ void this.updateProxyInclusionMachine({
1614
+ value: "INITIATE",
1615
+ step: initiate.step,
1616
+ inclusionControllerNodeId: initiate.nodeId,
1617
+ includedNodeId: initiate.includedNodeId
1618
+ }).catch(import_shared.noop);
1619
+ }
1571
1620
  /**
1572
1621
  * @internal
1573
1622
  * Handles replace requests from an inclusion controller
@@ -1911,9 +1960,8 @@ let ZWaveController = (() => {
1911
1960
  }
1912
1961
  const nodePublicKey = import_shared.Bytes.from(pubKeyResponse.publicKey);
1913
1962
  const timerStartTAI2 = Date.now();
1914
- const keyPair = (0, import_core.generateECDHKeyPairSync)();
1915
- const publicKey = (0, import_core.extractRawECDHPublicKeySync)(keyPair.publicKey);
1916
- await api.sendPublicKey(publicKey);
1963
+ const keyPair = await (0, import_core.generateECDHKeyPair)();
1964
+ await api.sendPublicKey(keyPair.publicKey);
1917
1965
  if (grantedKeys.includes(import_core.SecurityClass.S2_AccessControl) || grantedKeys.includes(import_core.SecurityClass.S2_Authenticated)) {
1918
1966
  const dsk = (0, import_core.dskToString)(nodePublicKey.subarray(0, 16)).slice(5);
1919
1967
  const tai2RemainingMs2 = import_cc.inclusionTimeouts.TAI2 - (Date.now() - timerStartTAI2);
@@ -1935,11 +1983,11 @@ let ZWaveController = (() => {
1935
1983
  }
1936
1984
  nodePublicKey.writeUInt16BE(parseInt(pinResult, 10), 0);
1937
1985
  }
1938
- const sharedSecret = import_node_crypto.default.diffieHellman({
1939
- publicKey: (0, import_core.importRawECDHPublicKeySync)(nodePublicKey),
1986
+ const sharedSecret = await (0, import_core.deriveSharedECDHSecret)({
1987
+ publicKey: nodePublicKey,
1940
1988
  privateKey: keyPair.privateKey
1941
1989
  });
1942
- const tempKeys = await (0, import_core.deriveTempKeysAsync)(await (0, import_core.computePRKAsync)(sharedSecret, publicKey, nodePublicKey));
1990
+ const tempKeys = await (0, import_core.deriveTempKeys)(await (0, import_core.computePRK)(sharedSecret, keyPair.publicKey, nodePublicKey));
1943
1991
  securityManager.deleteNonce(node.id);
1944
1992
  securityManager.tempKeys.set(node.id, {
1945
1993
  keyCCM: tempKeys.tempKeyCCM,
@@ -2703,9 +2751,9 @@ let ZWaveController = (() => {
2703
2751
  }
2704
2752
  let associatedNodes = [];
2705
2753
  try {
2706
- associatedNodes = (0, import_arrays.distinct)((0, import_shared.flatMap)([
2754
+ associatedNodes = (0, import_arrays.distinct)([
2707
2755
  ...self.getAssociations({ nodeId: node.id }).values()
2708
- ], (assocs) => assocs.map((a) => a.nodeId))).filter((id) => id !== self._ownNodeId).filter((id) => id !== node.id).sort();
2756
+ ].flatMap((assocs) => assocs.map((a) => a.nodeId))).filter((id) => id !== self._ownNodeId).filter((id) => id !== node.id).sort();
2709
2757
  } catch {
2710
2758
  }
2711
2759
  if (associatedNodes.length > 0) {
@@ -4684,7 +4732,7 @@ let ZWaveController = (() => {
4684
4732
  this.driver.controllerLog.print(message, "error");
4685
4733
  throw new import_core.ZWaveError(message, import_core.ZWaveErrorCodes.OTW_Update_Busy);
4686
4734
  }
4687
- if (this.driver.isInBootloader() || this.sdkVersionGte("7.0")) {
4735
+ if (this.driver.mode === import_DriverMode.DriverMode.Bootloader || this.sdkVersionGte("7.0")) {
4688
4736
  return this.firmwareUpdateOTW700(data);
4689
4737
  } else if (this.sdkVersionGte("6.50.0") && this.supportedFunctionTypes?.includes(import_serial.FunctionType.FirmwareUpdateNVM)) {
4690
4738
  const wasUpdated = await this.firmwareUpdateOTW500(data);
@@ -4758,9 +4806,7 @@ let ZWaveController = (() => {
4758
4806
  this._firmwareUpdateInProgress = true;
4759
4807
  let destroy = false;
4760
4808
  try {
4761
- if (!this.driver.isInBootloader()) {
4762
- await this.driver.enterBootloader();
4763
- }
4809
+ await this.driver.enterBootloader();
4764
4810
  this.driver.controllerLog.print("Beginning firmware upload");
4765
4811
  await this.driver.bootloader.beginUpload();
4766
4812
  try {
@@ -5180,12 +5226,11 @@ let ZWaveController = (() => {
5180
5226
  }
5181
5227
  const highestGranted = (0, import_core.getHighestSecurityClass)(matchingKeys);
5182
5228
  const requiresAuthentication = highestGranted === import_core.SecurityClass.S2_AccessControl || highestGranted === import_core.SecurityClass.S2_Authenticated;
5183
- const keyPair = requiresAuthentication ? this.driver.getLearnModeAuthenticatedKeyPair() : (0, import_core.generateECDHKeyPairSync)();
5184
- const publicKey = (0, import_core.extractRawECDHPublicKeySync)(keyPair.publicKey);
5185
- const transmittedPublicKey = import_shared.Bytes.from(publicKey);
5229
+ const keyPair = requiresAuthentication ? await this.driver.getLearnModeAuthenticatedKeyPair() : await (0, import_core.generateECDHKeyPair)();
5230
+ const transmittedPublicKey = import_shared.Bytes.from(keyPair.publicKey);
5186
5231
  if (requiresAuthentication) {
5187
5232
  transmittedPublicKey.writeUInt16BE(0, 0);
5188
- const dsk = (0, import_core.dskToString)(publicKey.subarray(0, 16));
5233
+ const dsk = (0, import_core.dskToString)(keyPair.publicKey.subarray(0, 16));
5189
5234
  try {
5190
5235
  userCallbacks?.showDSK(dsk);
5191
5236
  } catch {
@@ -5199,11 +5244,11 @@ let ZWaveController = (() => {
5199
5244
  return abortCanceled();
5200
5245
  }
5201
5246
  const includingNodePubKey = pubKeyReport.publicKey;
5202
- const sharedSecret = import_node_crypto.default.diffieHellman({
5203
- publicKey: (0, import_core.importRawECDHPublicKeySync)(includingNodePubKey),
5247
+ const sharedSecret = await (0, import_core.deriveSharedECDHSecret)({
5248
+ publicKey: includingNodePubKey,
5204
5249
  privateKey: keyPair.privateKey
5205
5250
  });
5206
- const tempKeys = await (0, import_core.deriveTempKeysAsync)(await (0, import_core.computePRKAsync)(sharedSecret, includingNodePubKey, publicKey));
5251
+ const tempKeys = await (0, import_core.deriveTempKeys)(await (0, import_core.computePRK)(sharedSecret, includingNodePubKey, keyPair.publicKey));
5207
5252
  securityManager.deleteNonce(bootstrappingNode.id);
5208
5253
  securityManager.tempKeys.set(bootstrappingNode.id, {
5209
5254
  keyCCM: tempKeys.tempKeyCCM,
@@ -5311,7 +5356,7 @@ let ZWaveController = (() => {
5311
5356
  return import_Inclusion.SecurityBootstrapFailure.ParameterMismatch;
5312
5357
  }
5313
5358
  receivedKeys.set(securityClass, keyReport.networkKey);
5314
- await securityManager.setKeyAsync(securityClass, keyReport.networkKey);
5359
+ await securityManager.setKey(securityClass, keyReport.networkKey);
5315
5360
  if (securityClass === import_core.SecurityClass.S0_Legacy) {
5316
5361
  this.driver["_securityManager"] = new import_core.SecurityManager({
5317
5362
  ownNodeId: this._ownNodeId,
@@ -5487,6 +5532,11 @@ let ZWaveController = (() => {
5487
5532
  }
5488
5533
  this.emit("network joined");
5489
5534
  }
5535
+ destroy() {
5536
+ this._nodes.forEach((node) => node.destroy());
5537
+ this._nodes.clear();
5538
+ this.removeAllListeners();
5539
+ }
5490
5540
  };
5491
5541
  return ZWaveController2 = _classThis;
5492
5542
  })();