isy-nodejs 1.0.2-alpha.4 → 1.0.3-alpha.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 (271) hide show
  1. package/dist/esm/CodeGeneration/{NodeFactory.js → CodeFactory.js} +18 -7
  2. package/dist/esm/CodeGeneration/CodeFactory.js.map +1 -0
  3. package/dist/esm/CodeGeneration/EnumFactory.js +1 -1
  4. package/dist/esm/CodeGeneration/EnumFactory.js.map +1 -1
  5. package/dist/esm/CodeGeneration/NodeClassFactory.js +156 -146
  6. package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
  7. package/dist/esm/Converters.js +16 -6
  8. package/dist/esm/Converters.js.map +1 -1
  9. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +4 -2
  10. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -1
  11. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +4 -2
  12. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -1
  13. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +5 -3
  14. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -1
  15. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +4 -2
  16. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -1
  17. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +4 -2
  18. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -1
  19. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +7 -5
  20. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -1
  21. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +8 -6
  22. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -1
  23. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +9 -7
  24. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -1
  25. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +8 -6
  26. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -1
  27. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +4 -2
  28. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -1
  29. package/dist/esm/Devices/Insteon/Generated/DoorLock.js +3 -1
  30. package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -1
  31. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +3 -1
  32. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -1
  33. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +4 -2
  34. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -1
  35. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +3 -1
  36. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -1
  37. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +5 -3
  38. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -1
  39. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +5 -3
  40. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -1
  41. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +12 -10
  42. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -1
  43. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +10 -8
  44. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -1
  45. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +3 -1
  46. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -1
  47. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +4 -2
  48. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -1
  49. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +4 -2
  50. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -1
  51. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +9 -7
  52. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -1
  53. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +7 -5
  54. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -1
  55. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +4 -2
  56. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -1
  57. package/dist/esm/Devices/Insteon/Generated/Pir2844.js +6 -4
  58. package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -1
  59. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +5 -3
  60. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -1
  61. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +6 -4
  62. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -1
  63. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +6 -4
  64. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -1
  65. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +7 -5
  66. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -1
  67. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +8 -6
  68. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -1
  69. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +6 -4
  70. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -1
  71. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +6 -4
  72. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -1
  73. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +3 -1
  74. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -1
  75. package/dist/esm/Devices/Insteon/Generated/Siren.js +5 -3
  76. package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -1
  77. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +3 -1
  78. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -1
  79. package/dist/esm/Devices/Insteon/Generated/TempLinc.js +8 -6
  80. package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -1
  81. package/dist/esm/Devices/Insteon/Generated/Thermostat.js +8 -6
  82. package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -1
  83. package/dist/esm/Devices/Insteon/Generated/X10.js +3 -1
  84. package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -1
  85. package/dist/esm/Devices/Lutron/Generated/LoadShed.js +4 -2
  86. package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -1
  87. package/dist/esm/Devices/UDI/Generated/Channel.js +3 -1
  88. package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -1
  89. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +3 -1
  90. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -1
  91. package/dist/esm/Devices/UDI/Generated/Main.js +3 -1
  92. package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -1
  93. package/dist/esm/Devices/UDI/Generated/PulseCounter.js +3 -1
  94. package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -1
  95. package/dist/esm/Devices/UDI/Generated/Relay.js +3 -1
  96. package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -1
  97. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +3 -1
  98. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -1
  99. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +8 -2
  100. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -1
  101. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +4 -2
  102. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -1
  103. package/dist/esm/ISY.js +59 -34
  104. package/dist/esm/ISY.js.map +1 -1
  105. package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js +1 -1
  106. package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
  107. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
  108. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
  109. package/dist/esm/Matter/Bridge/Server.js +6 -6
  110. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  111. package/dist/esm/Matter/Mappings/Insteon.js +37 -13
  112. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  113. package/dist/esm/{Model/ClusterMap.js → Matter/Mappings/MappingRegistry.js} +12 -7
  114. package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -0
  115. package/dist/esm/Model/ClassDefinition.js +7 -5
  116. package/dist/esm/Model/ClassDefinition.js.map +1 -1
  117. package/dist/esm/types/CodeGeneration/{NodeFactory.d.ts → CodeFactory.d.ts} +1 -1
  118. package/dist/esm/types/CodeGeneration/{NodeFactory.d.ts.map → CodeFactory.d.ts.map} +1 -1
  119. package/dist/esm/types/CodeGeneration/EnumFactory.d.ts +1 -1
  120. package/dist/esm/types/CodeGeneration/EnumFactory.d.ts.map +1 -1
  121. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +19 -3
  122. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  123. package/dist/esm/types/Converters.d.ts +12 -6
  124. package/dist/esm/types/Converters.d.ts.map +1 -1
  125. package/dist/esm/types/Devices/EndpointFor.d.ts +1 -1
  126. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -1
  127. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -1
  128. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -1
  129. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -1
  130. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -1
  131. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -1
  132. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -1
  133. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -1
  134. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -1
  135. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -1
  136. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -1
  137. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -1
  138. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -1
  139. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -1
  140. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -1
  141. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -1
  142. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -1
  143. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -1
  144. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -1
  145. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -1
  146. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -1
  147. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -1
  148. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +6 -6
  149. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -1
  150. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +3 -3
  151. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -1
  152. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -1
  153. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -1
  154. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -1
  155. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +3 -3
  156. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -1
  157. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +3 -3
  158. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -1
  159. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +6 -6
  160. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -1
  161. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -1
  162. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -1
  163. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -1
  164. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -1
  165. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -1
  166. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -1
  167. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -1
  168. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -1
  169. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +2 -2
  170. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -1
  171. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -1
  172. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -1
  173. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -1
  174. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -1
  175. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -1
  176. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -1
  177. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +16 -9
  178. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -1
  179. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +15 -15
  180. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -1
  181. package/dist/esm/types/ISY.d.ts +6 -2
  182. package/dist/esm/types/ISY.d.ts.map +1 -1
  183. package/dist/esm/types/ISYNode.d.ts +1 -1
  184. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  185. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +1 -1
  186. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
  187. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +1 -1
  188. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
  189. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
  190. package/dist/esm/types/Matter/Bridge/Server.d.ts +0 -1
  191. package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
  192. package/dist/esm/types/Matter/Mappings/Insteon.d.ts +3 -1
  193. package/dist/esm/types/Matter/Mappings/Insteon.d.ts.map +1 -1
  194. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +144 -0
  195. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -0
  196. package/dist/esm/types/Model/ClassDefinition.d.ts +9 -623
  197. package/dist/esm/types/Model/ClassDefinition.d.ts.map +1 -1
  198. package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
  199. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  200. package/package.json +4 -2
  201. package/src/CodeGeneration/{NodeFactory.ts → CodeFactory.ts} +18 -2
  202. package/src/CodeGeneration/EnumFactory.ts +5 -4
  203. package/src/CodeGeneration/NodeClassFactory.ts +266 -241
  204. package/src/Converters.ts +16 -10
  205. package/src/Devices/Brultech/Generated/Channel.ts +3 -1
  206. package/src/Devices/Brultech/Generated/Main.ts +3 -1
  207. package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +4 -2
  208. package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +4 -2
  209. package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +5 -3
  210. package/src/Devices/Insteon/Generated/BinaryAlarm.ts +4 -2
  211. package/src/Devices/Insteon/Generated/BinaryControl.ts +4 -2
  212. package/src/Devices/Insteon/Generated/DimmerLamp.ts +7 -5
  213. package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +8 -6
  214. package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +9 -7
  215. package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +8 -6
  216. package/src/Devices/Insteon/Generated/DimmerSwitch.ts +4 -2
  217. package/src/Devices/Insteon/Generated/DoorLock.ts +3 -1
  218. package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +3 -1
  219. package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +4 -2
  220. package/src/Devices/Insteon/Generated/EzrainInput.ts +3 -1
  221. package/src/Devices/Insteon/Generated/EzrainOutput.ts +12 -10
  222. package/src/Devices/Insteon/Generated/FanLincMotor.ts +5 -3
  223. package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +12 -10
  224. package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +10 -8
  225. package/src/Devices/Insteon/Generated/ImeterSolo.ts +3 -1
  226. package/src/Devices/Insteon/Generated/IrLincTx.ts +4 -2
  227. package/src/Devices/Insteon/Generated/KeypadButton.ts +4 -2
  228. package/src/Devices/Insteon/Generated/KeypadDimmer.ts +9 -7
  229. package/src/Devices/Insteon/Generated/KeypadRelay.ts +18 -16
  230. package/src/Devices/Insteon/Generated/OnOffControl.ts +7 -5
  231. package/src/Devices/Insteon/Generated/Pir2844.ts +6 -4
  232. package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +5 -3
  233. package/src/Devices/Insteon/Generated/Pir2844c.ts +6 -4
  234. package/src/Devices/Insteon/Generated/RelayLamp.ts +9 -7
  235. package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +10 -8
  236. package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +12 -10
  237. package/src/Devices/Insteon/Generated/RelaySwitch.ts +6 -4
  238. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +6 -4
  239. package/src/Devices/Insteon/Generated/RemoteLinc2.ts +3 -1
  240. package/src/Devices/Insteon/Generated/Siren.ts +5 -3
  241. package/src/Devices/Insteon/Generated/SirenAlert.ts +3 -1
  242. package/src/Devices/Insteon/Generated/TempLinc.ts +8 -6
  243. package/src/Devices/Insteon/Generated/Thermostat.ts +8 -6
  244. package/src/Devices/Insteon/Generated/X10.ts +3 -1
  245. package/src/Devices/Lutron/Generated/LoadShed.ts +4 -2
  246. package/src/Devices/NCD/Generated/Relay.ts +4 -2
  247. package/src/Devices/Poly/Generated/MatterBridge.ts +3 -1
  248. package/src/Devices/Scene/Generated/Scene.ts +10 -8
  249. package/src/Devices/UDI/Generated/Channel.ts +3 -1
  250. package/src/Devices/UDI/Generated/Em3MainChannel.ts +3 -1
  251. package/src/Devices/UDI/Generated/Main.ts +3 -1
  252. package/src/Devices/UDI/Generated/PulseCounter.ts +3 -1
  253. package/src/Devices/UDI/Generated/Relay.ts +3 -1
  254. package/src/Devices/UDI/Generated/TemperatureSensor.ts +3 -1
  255. package/src/Devices/ZWave/Generated/ColorSwitch.ts +19 -7
  256. package/src/Devices/ZWave/Generated/DimmerSwitch.ts +13 -11
  257. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +4 -2
  258. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +11 -9
  259. package/src/ISY.ts +58 -25
  260. package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +1 -1
  261. package/src/Matter/Behaviors/ISYClusterBehavior.ts +2 -1
  262. package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +2 -1
  263. package/src/Matter/Bridge/Server.ts +10 -6
  264. package/src/Matter/Mappings/Insteon.ts +41 -26
  265. package/src/{Model/ClusterMap.ts → Matter/Mappings/MappingRegistry.ts} +26 -14
  266. package/src/Model/ClassDefinition.ts +16 -10
  267. package/src/Utils.ts +1 -1
  268. package/dist/esm/CodeGeneration/NodeFactory.js.map +0 -1
  269. package/dist/esm/Model/ClusterMap.js.map +0 -1
  270. package/dist/esm/types/Model/ClusterMap.d.ts +0 -101
  271. package/dist/esm/types/Model/ClusterMap.d.ts.map +0 -1
@@ -6,7 +6,7 @@ import { UnitOfMeasure } from '../Definitions/Global/UOM.js';
6
6
  import { Family } from '../Definitions/index.js';
7
7
  import { CommandDefinition, DataTypeDefinition, DriverDefinition, NodeClassDefinition, ParameterDefinition } from '../Model/ClassDefinition.js';
8
8
  import { EnumDefinitionMap } from '../Model/EnumDefinition.js';
9
- import { CodeFactory } from './NodeFactory.js';
9
+ import { CodeFactory } from './CodeFactory.js';
10
10
 
11
11
  // #region Type aliases (1)
12
12
 
@@ -35,7 +35,8 @@ export class NodeClassFactory extends CodeFactory {
35
35
  useTrailingCommas: false,
36
36
  indentationText: IndentationText.Tab,
37
37
  newLineKind: ts.NewLineKind.CarriageReturnLineFeed,
38
- insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true
38
+ insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true,
39
+
39
40
  }
40
41
  });
41
42
 
@@ -69,7 +70,7 @@ export class NodeClassFactory extends CodeFactory {
69
70
  });
70
71
  }
71
72
 
72
- N;
73
+
73
74
 
74
75
  public createNodeClass<T extends Family>(nodeClassDef: NodeClassDefinition<T>) {
75
76
  let path = `${NodeClassFactory.basePath}/${Family[nodeClassDef.family]}/Generated/${nodeClassDef.name}.ts`;
@@ -95,7 +96,7 @@ export class NodeClassFactory extends CodeFactory {
95
96
  factory.createStringLiteral('../../../Model/NodeInfo.js'),
96
97
  undefined
97
98
  ),
98
- this.createImportDeclaration('../../../ISY.js', ['ISY']),
99
+ NodeClassFactory.instance.createImportDeclaration('../../../ISY.js', ['ISY']),
99
100
  factory.createImportDeclaration(
100
101
  undefined,
101
102
  factory.createImportClause(true, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('ISYNode'))])),
@@ -203,16 +204,16 @@ export class NodeClassFactory extends CodeFactory {
203
204
  undefined,
204
205
  factory.createStringLiteral(nodeClassDef.id)
205
206
  ),
206
- this.createPropertyDeclaration(
207
+ NodeClassFactory.instance.createPropertyDeclaration(
207
208
  'implements',
208
209
  factory.createArrayLiteralExpression(
209
210
  nodeClassDef.implementedBy ?
210
- [this.createStringLiteral(nodeClassDef.id)].concat(
211
+ [NodeClassFactory.instance.createStringLiteral(nodeClassDef.id)].concat(
211
212
  !nodeClassDef.implements || nodeClassDef.implements.length == 0 ? [] : nodeClassDef.implements?.map((p) => factory.createStringLiteral(p))
212
213
  )
213
- : [this.createStringLiteral(nodeClassDef.id)]
214
+ : [NodeClassFactory.instance.createStringLiteral(nodeClassDef.id)]
214
215
  ),
215
- this.createModifiers(ts.ModifierFlags.Static | ts.ModifierFlags.Override)
216
+ NodeClassFactory.instance.createModifiers(ts.ModifierFlags.Static | ts.ModifierFlags.Override)
216
217
  ),
217
218
  factory.createPropertyDeclaration(
218
219
  [factory.createToken(ts.SyntaxKind.DeclareKeyword), factory.createToken(ts.SyntaxKind.ReadonlyKeyword)],
@@ -220,11 +221,11 @@ export class NodeClassFactory extends CodeFactory {
220
221
  undefined,
221
222
  nodeClassDef.equivalents ?
222
223
  NodeClassFactory.instance.createUnionTypeNode(
223
- ...[this.createLiteralTypeNode(nodeClassDef.id)].concat(
224
+ ...[NodeClassFactory.instance.createLiteralTypeNode(nodeClassDef.id)].concat(
224
225
  !nodeClassDef.equivalents || nodeClassDef.equivalents.length == 0 ? [] : nodeClassDef.equivalents?.map((p) => factory.createLiteralTypeNode(factory.createStringLiteral(p)))
225
226
  )
226
227
  )
227
- : this.createLiteralTypeNode(nodeClassDef.id),
228
+ : NodeClassFactory.instance.createLiteralTypeNode(nodeClassDef.id),
228
229
  undefined
229
230
  ),
230
231
  factory.createConstructorDeclaration(
@@ -250,13 +251,13 @@ export class NodeClassFactory extends CodeFactory {
250
251
  factory.createBlock(
251
252
  [
252
253
  factory.createExpressionStatement(factory.createCallExpression(factory.createSuper(), undefined, [factory.createIdentifier('isy'), factory.createIdentifier('nodeInfo')])),
253
- ...Object.values(nodeClassDef.drivers).map(createDriverInitializationStatement)
254
+ ...Object.values(nodeClassDef.drivers).map(p => NodeClassFactory.instance.createDriverInitializationStatement(p))
254
255
  ],
255
256
  true
256
257
  )
257
258
  ),
258
- ...Object.values(nodeClassDef.commands).map(createCommandMethodDeclaration),
259
- ...Object.values(nodeClassDef.drivers).map(createDriverGetDeclaration)
259
+ ...Object.values(nodeClassDef.commands).map(p => NodeClassFactory.instance.createCommandMethodDeclaration(p)),
260
+ ...Object.values(nodeClassDef.drivers).map(p => NodeClassFactory.instance.createDriverGetDeclaration(p))
260
261
  ]
261
262
  ),
262
263
  factory.createExpressionStatement(
@@ -286,7 +287,7 @@ export class NodeClassFactory extends CodeFactory {
286
287
  [
287
288
  factory.createHeritageClause(ts.SyntaxKind.ExtendsKeyword, [
288
289
  factory.createExpressionWithTypeArguments(factory.createIdentifier('Omit'), [
289
- this.createTypeReferenceNode('InstanceType', this.factory.createTypeQueryNode(factory.createIdentifier(`${nodeClassDef.name}Node`))),
290
+ NodeClassFactory.instance.createTypeReferenceNode('InstanceType', NodeClassFactory.instance.factory.createTypeQueryNode(factory.createIdentifier(`${nodeClassDef.name}Node`))),
290
291
  factory.createTypeOperatorNode(
291
292
  ts.SyntaxKind.KeyOfKeyword,
292
293
  factory.createTypeReferenceNode(factory.createIdentifier('ISYDeviceNode'), [
@@ -305,12 +306,12 @@ export class NodeClassFactory extends CodeFactory {
305
306
  factory.createIdentifier('nodeDefId'),
306
307
  undefined,
307
308
  nodeClassDef.equivalents ?
308
- this.createUnionTypeNode(
309
- ...[this.createLiteralTypeNode(nodeClassDef.id)].concat(
309
+ NodeClassFactory.instance.createUnionTypeNode(
310
+ ...[NodeClassFactory.instance.createLiteralTypeNode(nodeClassDef.id)].concat(
310
311
  !nodeClassDef.equivalents || nodeClassDef.equivalents.length == 0 ? [] : nodeClassDef.equivalents?.map((p) => factory.createLiteralTypeNode(factory.createStringLiteral(p)))
311
312
  )
312
313
  )
313
- : this.createLiteralTypeNode(nodeClassDef.id)
314
+ : NodeClassFactory.instance.createLiteralTypeNode(nodeClassDef.id)
314
315
  )
315
316
  ]
316
317
  ),
@@ -336,16 +337,16 @@ export class NodeClassFactory extends CodeFactory {
336
337
  )
337
338
  ],
338
339
  factory.createTypePredicateNode(undefined, factory.createIdentifier('node'), factory.createTypeReferenceNode(factory.createIdentifier(`${nodeClassDef.name}Node`), undefined)),
339
- this.createBlock(
340
- this.createReturnStatement(
340
+ NodeClassFactory.instance.createBlock(true,
341
+ NodeClassFactory.instance.createReturnStatement(
341
342
  factory.createCallExpression(
342
343
  factory.createPropertyAccessExpression(
343
344
  factory.createArrayLiteralExpression(
344
345
  nodeClassDef.equivalents ?
345
- [this.createStringLiteral(nodeClassDef.id)].concat(
346
+ [NodeClassFactory.instance.createStringLiteral(nodeClassDef.id)].concat(
346
347
  !nodeClassDef.equivalents || nodeClassDef.equivalents.length == 0 ? [] : nodeClassDef.equivalents?.map((p) => factory.createStringLiteral(p))
347
348
  )
348
- : [this.createStringLiteral(nodeClassDef.id)]
349
+ : [NodeClassFactory.instance.createStringLiteral(nodeClassDef.id)]
349
350
  ),
350
351
  'includes'
351
352
  ),
@@ -366,17 +367,18 @@ export class NodeClassFactory extends CodeFactory {
366
367
  undefined,
367
368
  factory.createIdentifier('node'),
368
369
  undefined,
369
- factory.createTypeReferenceNode(factory.createIdentifier('ISYNode'), [
370
- factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
371
- factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
372
- factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
373
- factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)
374
- ]),
370
+ NodeClassFactory.instance.createTypeReferenceNode(
371
+ 'ISYNode',
372
+ NodeClassFactory.instance.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
373
+ NodeClassFactory.instance.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
374
+ NodeClassFactory.instance.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
375
+ NodeClassFactory.instance.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)
376
+ ),
375
377
  undefined
376
378
  )
377
379
  ],
378
380
  factory.createTypePredicateNode(undefined, factory.createIdentifier('node'), factory.createTypeReferenceNode(factory.createIdentifier(`${nodeClassDef.name}Node`), undefined)),
379
- this.createBlock(
381
+ NodeClassFactory.instance.createBlock(
380
382
  true,
381
383
 
382
384
  factory.createReturnStatement(
@@ -384,10 +386,10 @@ export class NodeClassFactory extends CodeFactory {
384
386
  factory.createPropertyAccessExpression(
385
387
  factory.createArrayLiteralExpression(
386
388
  nodeClassDef.implementedBy ?
387
- [this.createStringLiteral(nodeClassDef.id)].concat(
389
+ [NodeClassFactory.instance.createStringLiteral(nodeClassDef.id)].concat(
388
390
  !nodeClassDef.implementedBy || nodeClassDef.implementedBy.length == 0 ? [] : nodeClassDef.implementedBy?.map((p) => factory.createStringLiteral(p))
389
391
  )
390
- : [this.createStringLiteral(nodeClassDef.id)]
392
+ : [NodeClassFactory.instance.createStringLiteral(nodeClassDef.id)]
391
393
  ),
392
394
  'includes'
393
395
  ),
@@ -441,13 +443,13 @@ export class NodeClassFactory extends CodeFactory {
441
443
  [factory.createToken(ts.SyntaxKind.ExportKeyword)],
442
444
  factory.createIdentifier('Commands'),
443
445
  undefined,
444
- factory.createTypeLiteralNode([...Object.values(nodeClassDef.commands).map(createCommandSignature)])
446
+ factory.createTypeLiteralNode([...Object.values(nodeClassDef.commands).map(NodeClassFactory.instance.createCommandSignature)])
445
447
  ),
446
448
  factory.createTypeAliasDeclaration(
447
449
  [factory.createToken(ts.SyntaxKind.ExportKeyword)],
448
450
  factory.createIdentifier('Drivers'),
449
451
  undefined,
450
- factory.createTypeLiteralNode([...Object.values(nodeClassDef.drivers).map(createDriverSignature)])
452
+ factory.createTypeLiteralNode([...Object.values(nodeClassDef.drivers).map(NodeClassFactory.instance.createDriverSignature)])
451
453
  )
452
454
  ]),
453
455
  ts.NodeFlags.Namespace
@@ -494,163 +496,237 @@ export class NodeClassFactory extends CodeFactory {
494
496
  let modules = [];
495
497
  for (const family of NodeClassDefinition.Map.keys()) {
496
498
  var t = this.generateClassesForFamily(family);
497
- modules.push(buildClassIndex(family, t));
499
+ modules.push(NodeClassFactory.buildClassIndex(family, t));
498
500
  }
499
501
  return modules;
500
502
  }
501
503
 
502
504
  public static generateClassesForFamily<T extends Family>(family: T): GeneratedNodeClass<T>[] {
503
- return this.buildNodeClasses<T>(NodeClassDefinition.Map.get(family) as { [x: string]: NodeClassDefinition<T> });
505
+ return NodeClassFactory.buildNodeClasses<T>(NodeClassDefinition.Map.get(family) as { [x: string]: NodeClassDefinition<T> });
504
506
  }
505
507
 
506
- // #endregion Public Static Methods (4)
507
- }
508
+ // #region Functions (12)
508
509
 
509
- // #endregion Classes (1)
510
+ static buildClassIndex<T extends Family>(family: T, classes: GeneratedNodeClass<T>[]) {
511
+ return {
512
+ family,
513
+ path: `/${Family[family]}/Generated/index.ts`,
514
+ statements: [...classes.map((p) => factory.createExportDeclaration(undefined, false, undefined, factory.createStringLiteral(`./${p.name}.js`), undefined))]
515
+ };
516
+ }
510
517
 
511
- // #region Functions (12)
518
+ createCommandArguments(def: CommandDefinition)
519
+ {
520
+ let c = [
521
+ factory.createStringLiteral(def.id)];
522
+ let n = [];
523
+ let r = [];
512
524
 
513
- function buildClassIndex<T extends Family>(family: T, classes: GeneratedNodeClass<T>[]) {
514
- return {
515
- family,
516
- path: `/${Family[family]}/Generated/index.ts`,
517
- statements: [...classes.map((p) => factory.createExportDeclaration(undefined, false, undefined, factory.createStringLiteral(`./${p.name}.js`), undefined))]
518
- };
519
- }
525
+ if(def.parameters)
526
+ {
527
+ for(let p in def.parameters)
528
+ {
529
+ let p2 = def.parameters[p];
530
+ if(!p2?.id || p2.id == 'value')
531
+ {
532
+ n.push(factory.createIdentifier(p2.name ?? 'value'))
533
+ }
534
+ else
535
+ {
536
+ r.push(p2);
537
+ }
538
+ }
539
+ }
540
+ let fnl = [...c,...n,
520
541
 
521
- function createCommandMethodDeclaration(def: CommandDefinition) {
522
- return factory.createMethodDeclaration(
523
- [factory.createToken(ts.SyntaxKind.AsyncKeyword)],
524
- undefined,
525
- factory.createIdentifier(def.name),
526
- undefined,
527
- undefined,
528
-
529
- def.parameters ? Object.values(def.parameters).map(createParameterDeclarationSignature) : undefined,
530
- undefined,
531
- NodeClassFactory.instance.createBlock(
532
-
533
- factory.createReturnStatement(
534
- factory.createCallExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('sendCommand')), undefined, [
535
- factory.createStringLiteral(def.id),
536
- ...(def.parameters ?
537
- [
538
- factory.createObjectLiteralExpression(
539
- [...Object.values(def.parameters).map((p) => factory.createPropertyAssignment(factory.createIdentifier(p.id ?? 'value'), factory.createIdentifier(p.name ?? 'value')))],
540
- false
541
- )
542
- ]
543
- : [])
544
- ])
545
- )
546
542
 
547
- )
548
- );
549
- }
543
+ ...(r.length > 0 ? [factory.createObjectLiteralExpression(
544
+ r.map((q) => factory.createPropertyAssignment(factory.createIdentifier(q.id ?? 'value'), factory.createIdentifier(q.name ?? 'value'))),
545
+ false
546
+ )] : [])
550
547
 
551
- function createCommandParameterType(def: DataTypeDefinition, parent: ParameterDefinition): ts.TypeNode {
552
- if (def.enum) {
553
- {
554
- if (EnumDefinitionMap.has(parent.classDef.family)) {
555
- var enumDef = EnumDefinitionMap.get(parent.classDef.family)[def.indexId];
556
548
 
557
- // ?? EnumDefinitionMap[Family.Global]?[def.indexId]
558
- if (enumDef) {
559
- return factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier(Family[parent.classDef.family]), factory.createIdentifier(enumDef.name)), undefined);
549
+ ];
550
+ return fnl.length > 0 ? fnl : undefined;
551
+ }
552
+
553
+ createCommandMethodDeclaration(def: CommandDefinition) {
554
+ return factory.createMethodDeclaration(
555
+ [factory.createToken(ts.SyntaxKind.AsyncKeyword)],
556
+ undefined,
557
+ factory.createIdentifier(def.name),
558
+ undefined,
559
+ undefined,
560
+
561
+ def.parameters ? Object.values(def.parameters).map(NodeClassFactory.instance.createParameterDeclarationSignature.bind(this)) : undefined,
562
+ undefined,
563
+ factory.createBlock(
564
+ [factory.createReturnStatement(
565
+ factory.createCallExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('sendCommand')), undefined,NodeClassFactory.instance.createCommandArguments(def))
566
+ )]
567
+ )
568
+ );
569
+ }
570
+
571
+ createCommandParameterType(def: DataTypeDefinition, parent: ParameterDefinition): ts.TypeNode {
572
+ if (def.enum) {
573
+ {
574
+ if (EnumDefinitionMap.has(parent.classDef.family)) {
575
+ var enumDef = EnumDefinitionMap.get(parent.classDef.family)[def.indexId];
576
+
577
+ // ?? EnumDefinitionMap[Family.Global]?[def.indexId]
578
+ if (enumDef) {
579
+ return factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier(Family[parent.classDef.family]), factory.createIdentifier(enumDef.name)), undefined);
580
+ }
560
581
  }
561
- }
562
582
 
563
- if (def.values) {
564
- return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
565
- }
583
+ if (def.values) {
584
+ return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
585
+ }
566
586
 
567
- // return NodeClassFactory.instance.createUnionTypeNode(...
568
- // Object.values(def.values).map((p) => factory.createTypeReferenceNode(
569
- // factory.createQualifiedName(
570
- // factory.createIdentifier("UnitOfMeasure"),
571
- // factory.createIdentifier(UnitOfMeasure)
572
- // ),
573
- // undefined
574
- // )))
587
+ // return NodeClassFactory.instance.createUnionTypeNode(...
588
+ // Object.values(def.values).map((p) => factory.createTypeReferenceNode(
589
+ // factory.createQualifiedName(
590
+ // factory.createIdentifier("UnitOfMeasure"),
591
+ // factory.createIdentifier(UnitOfMeasure)
592
+ // ),
593
+ // undefined
594
+ // )))
595
+ }
575
596
  }
597
+ return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
576
598
  }
577
- return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
578
- }
579
599
 
580
- function createCommandSignature(def: CommandDefinition) {
581
- return factory.createPropertySignature(
582
- undefined,
583
- factory.createIdentifier(def.id),
584
- undefined,
585
- factory.createIntersectionTypeNode([
586
- factory.createParenthesizedType(
587
- factory.createFunctionTypeNode(
588
- undefined,
589
- def.parameters ? Object.values(def.parameters).map(createParameterSignature) : [],
600
+ createCommandSignature(def: CommandDefinition) {
601
+ const that = this;
602
+ return factory.createPropertySignature(
603
+ undefined,
604
+ factory.createIdentifier(def.id),
605
+ undefined,
606
+ factory.createIntersectionTypeNode([
607
+ factory.createParenthesizedType(
608
+ factory.createFunctionTypeNode(
609
+ undefined,
610
+ def.parameters ? Object.values(def.parameters).map(p => NodeClassFactory.instance.createParameterSignature(p)) : [],
590
611
 
591
- factory.createTypeReferenceNode(factory.createIdentifier('Promise'), [factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword)])
592
- )
593
- ),
594
- factory.createTypeLiteralNode([
595
- factory.createPropertySignature(undefined, factory.createIdentifier('label'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.label))),
596
- factory.createPropertySignature(undefined, factory.createIdentifier('name'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.name)))
612
+ factory.createTypeReferenceNode(factory.createIdentifier('Promise'), [factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword)])
613
+ )
614
+ ),
615
+ factory.createTypeLiteralNode([
616
+ factory.createPropertySignature(undefined, factory.createIdentifier('label'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.label))),
617
+ factory.createPropertySignature(undefined, factory.createIdentifier('name'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.name)))
618
+ ])
597
619
  ])
598
- ])
599
- );
600
- }
620
+ );
621
+ }
601
622
 
602
- function createDriverGetDeclaration(def: DriverDefinition) {
603
- return factory.createGetAccessorDeclaration(
604
- [factory.createToken(ts.SyntaxKind.PublicKeyword)],
605
- factory.createIdentifier(def.name),
606
- [],
607
- NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createDriverPropertyReturnType(p, def))),
608
- factory.createBlock(
609
- [
610
- factory.createReturnStatement(
611
- factory.createPropertyAccessChain(
612
- factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('drivers')), factory.createIdentifier(def.id)),
613
- factory.createToken(ts.SyntaxKind.QuestionDotToken),
614
- factory.createIdentifier('value')
623
+ createDriverGetDeclaration(def: DriverDefinition) {
624
+ return factory.createGetAccessorDeclaration(
625
+ [factory.createToken(ts.SyntaxKind.PublicKeyword)],
626
+ factory.createIdentifier(def.name),
627
+ [],
628
+ NodeClassFactory.instance.createUnionTypeNode(...def.dataType?.map((p) => NodeClassFactory.instance.createDriverPropertyReturnType(p, def))),
629
+ factory.createBlock(
630
+ [
631
+ factory.createReturnStatement(
632
+ factory.createPropertyAccessChain(
633
+ factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('drivers')), factory.createIdentifier(def.id)),
634
+ factory.createToken(ts.SyntaxKind.QuestionDotToken),
635
+ factory.createIdentifier('value')
636
+ )
615
637
  )
616
- )
617
- ],
618
- true
619
- )
620
- );
621
- }
638
+ ],
639
+ true
640
+ )
641
+ );
642
+ }
643
+
644
+ createDriverInitializationStatement(def: DriverDefinition): ts.Statement {
645
+ return factory.createExpressionStatement(
646
+ factory.createBinaryExpression(
647
+ factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('drivers')), factory.createIdentifier(def.id)),
648
+ factory.createToken(ts.SyntaxKind.EqualsToken),
649
+ factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Driver'), factory.createIdentifier('create')), undefined, [
650
+ factory.createStringLiteral(def.id),
651
+ factory.createThis(),
652
+ factory.createAsExpression(
653
+ factory.createPropertyAccessExpression(factory.createIdentifier('nodeInfo'), factory.createIdentifier('property')),
654
+ factory.createTypeReferenceNode(factory.createIdentifier('DriverState'), undefined)
655
+ ),
656
+ factory.createObjectLiteralExpression(
657
+ [
658
+ factory.createPropertyAssignment(
659
+ factory.createIdentifier('uom'),
660
+ factory.createPropertyAccessExpression(factory.createIdentifier('UnitOfMeasure'), factory.createIdentifier(UnitOfMeasure[def.dataType[0]?.uom] ?? 'Unknown'))
661
+ ),
662
+ factory.createPropertyAssignment(factory.createIdentifier('label'), factory.createStringLiteral(def.label)),
663
+ factory.createPropertyAssignment(factory.createIdentifier('name'), factory.createStringLiteral(def.name))
664
+ ],
665
+ false
666
+ )
667
+ ])
668
+ )
669
+ );
670
+ }
622
671
 
623
- function createDriverInitializationStatement(def: DriverDefinition): ts.Statement {
624
- return factory.createExpressionStatement(
625
- factory.createBinaryExpression(
626
- factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('drivers')), factory.createIdentifier(def.id)),
627
- factory.createToken(ts.SyntaxKind.EqualsToken),
628
- factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Driver'), factory.createIdentifier('create')), undefined, [
629
- factory.createStringLiteral(def.id),
630
- factory.createThis(),
631
- factory.createAsExpression(
632
- factory.createPropertyAccessExpression(factory.createIdentifier('nodeInfo'), factory.createIdentifier('property')),
633
- factory.createTypeReferenceNode(factory.createIdentifier('DriverState'), undefined)
672
+ createDriverPropertyReturnType(def: DataTypeDefinition, parent: DriverDefinition): ts.TypeNode {
673
+ if (def.enum) {
674
+ {
675
+ if (EnumDefinitionMap.has(parent.classDef.family)) {
676
+ var enumDef = EnumDefinitionMap.get(parent.classDef.family)[def.indexId];
677
+
678
+ // ?? EnumDefinitionMap[Family.Global]?[def.indexId]
679
+ if (enumDef) {
680
+ return factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier(Family[parent.classDef.family]), factory.createIdentifier(enumDef.name)), undefined);
681
+ }
682
+ }
683
+ if (def.values) {
684
+ return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
685
+ }
686
+
687
+ // return NodeClassFactory.instance.createUnionTypeNode(...
688
+ // Object.values(def.values).map((p) => factory.createTypeReferenceNode(
689
+ // factory.createQualifiedName(
690
+ // factory.createIdentifier("UnitOfMeasure"),
691
+ // factory.createIdentifier(UnitOfMeasure)
692
+ // ),
693
+ // undefined
694
+ // )))
695
+ }
696
+ }
697
+ return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
698
+ }
699
+
700
+ createDriverSignature(def: DriverDefinition) {
701
+ return factory.createPropertySignature(
702
+ undefined,
703
+ factory.createIdentifier(def.id),
704
+ undefined,
705
+ factory.createTypeLiteralNode([
706
+ factory.createPropertySignature(
707
+ undefined,
708
+ factory.createIdentifier('uom'),
709
+ undefined,
710
+ def.dataType ?
711
+ NodeClassFactory.instance.createUnionTypeNode(...def.dataType?.map((p) => NodeClassFactory.instance.createTypeNodeForUOM(p.uom)))
712
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)
634
713
  ),
635
- factory.createObjectLiteralExpression(
636
- [
637
- factory.createPropertyAssignment(
638
- factory.createIdentifier('uom'),
639
- factory.createPropertyAccessExpression(factory.createIdentifier('UnitOfMeasure'), factory.createIdentifier(UnitOfMeasure[parseInt(Object.keys(def.dataType)[0])] ?? 'Unknown'))
640
- ),
641
- factory.createPropertyAssignment(factory.createIdentifier('label'), factory.createStringLiteral(def.label)),
642
- factory.createPropertyAssignment(factory.createIdentifier('name'), factory.createStringLiteral(def.name))
643
- ],
644
- false
645
- )
714
+ factory.createPropertySignature(
715
+ undefined,
716
+ factory.createIdentifier('value'),
717
+ undefined,
718
+ def.dataType ?
719
+ NodeClassFactory.instance.createUnionTypeNode(...def.dataType.map((p) => NodeClassFactory.instance.createDriverSignatureReturnType(p, def)))
720
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)
721
+ ),
722
+ factory.createPropertySignature(undefined, factory.createIdentifier('label'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.label))),
723
+ factory.createPropertySignature(undefined, factory.createIdentifier('name'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.name)))
646
724
  ])
647
- )
648
- );
649
- }
725
+ );
726
+ }
650
727
 
651
- function createDriverPropertyReturnType(def: DataTypeDefinition, parent: DriverDefinition): ts.TypeNode {
652
- if (def.enum) {
653
- {
728
+ createDriverSignatureReturnType(def: DataTypeDefinition, parent: DriverDefinition): ts.TypeNode {
729
+ if (def.enum) {
654
730
  if (EnumDefinitionMap.has(parent.classDef.family)) {
655
731
  var enumDef = EnumDefinitionMap.get(parent.classDef.family)[def.indexId];
656
732
 
@@ -662,93 +738,42 @@ function createDriverPropertyReturnType(def: DataTypeDefinition, parent: DriverD
662
738
  if (def.values) {
663
739
  return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
664
740
  }
665
-
666
- // return NodeClassFactory.instance.createUnionTypeNode(...
667
- // Object.values(def.values).map((p) => factory.createTypeReferenceNode(
668
- // factory.createQualifiedName(
669
- // factory.createIdentifier("UnitOfMeasure"),
670
- // factory.createIdentifier(UnitOfMeasure)
671
- // ),
672
- // undefined
673
- // )))
674
741
  }
742
+ return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
675
743
  }
676
- return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
677
- }
678
-
679
- function createDriverSignature(def: DriverDefinition) {
680
- return factory.createPropertySignature(
681
- undefined,
682
- factory.createIdentifier(def.id),
683
- undefined,
684
- factory.createTypeLiteralNode([
685
- factory.createPropertySignature(
686
- undefined,
687
- factory.createIdentifier('uom'),
688
- undefined,
689
- def.dataType ?
690
- NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createTypeNodeForUOM(p.uom)))
691
- : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)
692
- ),
693
- factory.createPropertySignature(
694
- undefined,
695
- factory.createIdentifier('value'),
696
- undefined,
697
- def.dataType ?
698
- NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createDriverSignatureReturnType(p, def)))
699
- : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)
700
- ),
701
- factory.createPropertySignature(undefined, factory.createIdentifier('label'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.label))),
702
- factory.createPropertySignature(undefined, factory.createIdentifier('name'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.name)))
703
- ])
704
- );
705
- }
706
-
707
- function createDriverSignatureReturnType(def: DataTypeDefinition, parent: DriverDefinition): ts.TypeNode {
708
- if (def.enum) {
709
- if (EnumDefinitionMap.has(parent.classDef.family)) {
710
- var enumDef = EnumDefinitionMap.get(parent.classDef.family)[def.indexId];
711
744
 
712
- // ?? EnumDefinitionMap[Family.Global]?[def.indexId]
713
- if (enumDef) {
714
- return factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier(Family[parent.classDef.family]), factory.createIdentifier(enumDef.name)), undefined);
715
- }
716
- }
717
- if (def.values) {
718
- return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
719
- }
745
+ createParameterDeclarationSignature(def: ParameterDefinition) {
746
+ return factory.createParameterDeclaration(
747
+ undefined,
748
+ undefined,
749
+ factory.createIdentifier(def.name ?? 'value'),
750
+ def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined,
751
+ def.dataType ?
752
+ NodeClassFactory.instance.createUnionTypeNode(...def.dataType?.map((p) => NodeClassFactory.instance.createCommandParameterType(p, def)))
753
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),
754
+ undefined
755
+ );
720
756
  }
721
- return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
722
- }
723
757
 
724
- function createParameterDeclarationSignature(def: ParameterDefinition) {
725
- return factory.createParameterDeclaration(
726
- undefined,
727
- undefined,
728
- factory.createIdentifier(def.name ?? 'value'),
729
- def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined,
730
- def.dataType ?
731
- NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createCommandParameterType(p, def)))
732
- : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),
733
- undefined
734
- );
735
- }
758
+ createParameterSignature(def: ParameterDefinition) {
759
+ return factory.createParameterDeclaration(
760
+ undefined,
761
+ undefined,
762
+ factory.createIdentifier(def.id ?? 'value'),
763
+ def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined,
764
+ def.dataType ?
765
+ NodeClassFactory.instance.createUnionTypeNode(...def.dataType?.map((p) => NodeClassFactory.instance.createCommandParameterType(p, def)))
766
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),
767
+ undefined
768
+ );
769
+ }
736
770
 
737
- function createParameterSignature(def: ParameterDefinition) {
738
- return factory.createParameterDeclaration(
739
- undefined,
740
- undefined,
741
- factory.createIdentifier(def.id ?? 'value'),
742
- def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined,
743
- def.dataType ?
744
- NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createCommandParameterType(p, def)))
745
- : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),
746
- undefined
747
- );
748
- }
771
+ createTypeNodeForUOM(uom: number): ts.TypeNode {
772
+ return NodeClassFactory.instance.createTypeReferenceNode(UnitOfMeasure[uom] ?? 'Unknown', 'UnitOfMeasure');
773
+ }
749
774
 
750
- function createTypeNodeForUOM(uom: number): ts.TypeNode {
751
- return NodeClassFactory.instance.createTypeReferenceNode(UnitOfMeasure[uom] ?? 'Unknown', 'UnitOfMeasure');
775
+ // #endregion Public Static Methods (4)
752
776
  }
753
777
 
778
+ // #endregion Classes (1)
754
779
  // #endregion Functions (12)