isy-nodejs 1.0.2-alpha.3 → 1.0.2-alpha.4

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 (417) hide show
  1. package/dist/esm/CodeGeneration/NodeClassFactory.js +76 -33
  2. package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
  3. package/dist/esm/CodeGeneration/NodeFactory.js +245 -0
  4. package/dist/esm/CodeGeneration/NodeFactory.js.map +1 -0
  5. package/dist/esm/Converters.js +15 -1
  6. package/dist/esm/Converters.js.map +1 -1
  7. package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
  8. package/dist/esm/Definitions/Global/Events.js.map +1 -1
  9. package/dist/esm/Devices/ISYDevice.js +0 -33
  10. package/dist/esm/Devices/ISYDevice.js.map +1 -1
  11. package/dist/esm/Devices/ISYDeviceNode.js +2 -2
  12. package/dist/esm/Devices/ISYDeviceNode.js.map +1 -1
  13. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js +49 -0
  14. package/dist/esm/Devices/Insteon/Generated/AlertModuleArmed.js.map +1 -0
  15. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js +54 -0
  16. package/dist/esm/Devices/Insteon/Generated/AlertModuleSiren.js.map +1 -0
  17. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js +54 -0
  18. package/dist/esm/Devices/Insteon/Generated/BallastRelayLampSwitch.js.map +1 -0
  19. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js +46 -0
  20. package/dist/esm/Devices/Insteon/Generated/BinaryAlarm.js.map +1 -0
  21. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js +46 -0
  22. package/dist/esm/Devices/Insteon/Generated/BinaryControl.js.map +1 -0
  23. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js +75 -0
  24. package/dist/esm/Devices/Insteon/Generated/DimmerLamp.js.map +1 -0
  25. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js +78 -0
  26. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitch.js.map +1 -0
  27. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js +80 -0
  28. package/dist/esm/Devices/Insteon/Generated/DimmerLampSwitchLed.js.map +1 -0
  29. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js +74 -0
  30. package/dist/esm/Devices/Insteon/Generated/DimmerMotorSwitch.js.map +1 -0
  31. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js +40 -0
  32. package/dist/esm/Devices/Insteon/Generated/DimmerSwitch.js.map +1 -0
  33. package/dist/esm/Devices/Insteon/Generated/DoorLock.js +45 -0
  34. package/dist/esm/Devices/Insteon/Generated/DoorLock.js.map +1 -0
  35. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js +42 -0
  36. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Input.js.map +1 -0
  37. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js +47 -0
  38. package/dist/esm/Devices/Insteon/Generated/Ezio2x4Output.js.map +1 -0
  39. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js +42 -0
  40. package/dist/esm/Devices/Insteon/Generated/EzrainInput.js.map +1 -0
  41. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js +49 -0
  42. package/dist/esm/Devices/Insteon/Generated/EzrainOutput.js.map +1 -0
  43. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js +53 -0
  44. package/dist/esm/Devices/Insteon/Generated/FanLincMotor.js.map +1 -0
  45. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js +93 -0
  46. package/dist/esm/Devices/Insteon/Generated/I3KeypadFlags.js.map +1 -0
  47. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js +81 -0
  48. package/dist/esm/Devices/Insteon/Generated/I3PaddleFlags.js.map +1 -0
  49. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js +49 -0
  50. package/dist/esm/Devices/Insteon/Generated/ImeterSolo.js.map +1 -0
  51. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js +39 -0
  52. package/dist/esm/Devices/Insteon/Generated/IrLincTx.js.map +1 -0
  53. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js +46 -0
  54. package/dist/esm/Devices/Insteon/Generated/KeypadButton.js.map +1 -0
  55. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js +78 -0
  56. package/dist/esm/Devices/Insteon/Generated/KeypadDimmer.js.map +1 -0
  57. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js +56 -0
  58. package/dist/esm/Devices/Insteon/Generated/KeypadRelay.js.map +1 -0
  59. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js +39 -0
  60. package/dist/esm/Devices/Insteon/Generated/OnOffControl.js.map +1 -0
  61. package/dist/esm/Devices/Insteon/Generated/Pir2844.js +64 -0
  62. package/dist/esm/Devices/Insteon/Generated/Pir2844.js.map +1 -0
  63. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js +50 -0
  64. package/dist/esm/Devices/Insteon/Generated/Pir2844OnOff.js.map +1 -0
  65. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js +64 -0
  66. package/dist/esm/Devices/Insteon/Generated/Pir2844c.js.map +1 -0
  67. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js +54 -0
  68. package/dist/esm/Devices/Insteon/Generated/RelayLamp.js.map +1 -0
  69. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +56 -0
  70. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +1 -0
  71. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js +58 -0
  72. package/dist/esm/Devices/Insteon/Generated/RelayLampSwitchLed.js.map +1 -0
  73. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js +42 -0
  74. package/dist/esm/Devices/Insteon/Generated/RelaySwitch.js.map +1 -0
  75. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js +44 -0
  76. package/dist/esm/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.js.map +1 -0
  77. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js +42 -0
  78. package/dist/esm/Devices/Insteon/Generated/RemoteLinc2.js.map +1 -0
  79. package/dist/esm/Devices/Insteon/Generated/Siren.js +66 -0
  80. package/dist/esm/Devices/Insteon/Generated/Siren.js.map +1 -0
  81. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js +35 -0
  82. package/dist/esm/Devices/Insteon/Generated/SirenAlert.js.map +1 -0
  83. package/dist/esm/Devices/Insteon/Generated/TempLinc.js +83 -0
  84. package/dist/esm/Devices/Insteon/Generated/TempLinc.js.map +1 -0
  85. package/dist/esm/Devices/Insteon/Generated/Thermostat.js +83 -0
  86. package/dist/esm/Devices/Insteon/Generated/Thermostat.js.map +1 -0
  87. package/dist/esm/Devices/Insteon/Generated/X10.js +49 -0
  88. package/dist/esm/Devices/Insteon/Generated/X10.js.map +1 -0
  89. package/dist/esm/Devices/Insteon/Generated/index.js +39 -0
  90. package/dist/esm/Devices/Insteon/Generated/index.js.map +1 -0
  91. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +3 -4
  92. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +1 -1
  93. package/dist/esm/Devices/Insteon/InsteonFanDevice.js +2 -2
  94. package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
  95. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
  96. package/dist/esm/Devices/Insteon/KeypadButton.js +11 -11
  97. package/dist/esm/Devices/Insteon/KeypadButton.js.map +1 -1
  98. package/dist/esm/Devices/Insteon/index.js +16 -29
  99. package/dist/esm/Devices/Insteon/index.js.map +1 -1
  100. package/dist/esm/Devices/Lutron/Generated/LoadShed.js +45 -0
  101. package/dist/esm/Devices/Lutron/Generated/LoadShed.js.map +1 -0
  102. package/dist/esm/Devices/NodeFactory.js +45 -8
  103. package/dist/esm/Devices/NodeFactory.js.map +1 -1
  104. package/dist/esm/Devices/Scene/index.js +2 -2
  105. package/dist/esm/Devices/Scene/index.js.map +1 -1
  106. package/dist/esm/Devices/UDI/Generated/Channel.js +42 -0
  107. package/dist/esm/Devices/UDI/Generated/Channel.js.map +1 -0
  108. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js +54 -0
  109. package/dist/esm/Devices/UDI/Generated/Em3MainChannel.js.map +1 -0
  110. package/dist/esm/Devices/UDI/Generated/Main.js +45 -0
  111. package/dist/esm/Devices/UDI/Generated/Main.js.map +1 -0
  112. package/dist/esm/Devices/UDI/Generated/PulseCounter.js +46 -0
  113. package/dist/esm/Devices/UDI/Generated/PulseCounter.js.map +1 -0
  114. package/dist/esm/Devices/UDI/Generated/Relay.js +45 -0
  115. package/dist/esm/Devices/UDI/Generated/Relay.js.map +1 -0
  116. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js +38 -0
  117. package/dist/esm/Devices/UDI/Generated/TemperatureSensor.js.map +1 -0
  118. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js +57 -0
  119. package/dist/esm/Devices/ZWave/Generated/ColorSwitch.js.map +1 -0
  120. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js +65 -0
  121. package/dist/esm/Devices/ZWave/Generated/DimmerSwitch.js.map +1 -0
  122. package/dist/esm/Devices/ZWave/Generated/index.js +3 -0
  123. package/dist/esm/Devices/ZWave/Generated/index.js.map +1 -0
  124. package/dist/esm/Devices/ZWave/index.js +1 -0
  125. package/dist/esm/Devices/ZWave/index.js.map +1 -1
  126. package/dist/esm/Devices/index.js +9 -3
  127. package/dist/esm/Devices/index.js.map +1 -1
  128. package/dist/esm/ISY.js +13 -8
  129. package/dist/esm/ISY.js.map +1 -1
  130. package/dist/esm/ISYDevice.js +7 -1
  131. package/dist/esm/ISYDevice.js.map +1 -1
  132. package/dist/esm/ISYNode.js +13 -4
  133. package/dist/esm/ISYNode.js.map +1 -1
  134. package/dist/esm/ISYScene.js +13 -12
  135. package/dist/esm/ISYScene.js.map +1 -1
  136. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js +13 -0
  137. package/dist/esm/Matter/Behaviors/BehaviorRegistry.js.map +1 -0
  138. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js +3 -0
  139. package/dist/esm/Matter/Behaviors/Insteon/ISYOnOffBehavior.js.map +1 -1
  140. package/dist/esm/Matter/Bridge/Server.js +65 -56
  141. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  142. package/dist/esm/Matter/Mappings/Insteon.js +28 -10
  143. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  144. package/dist/esm/Model/ClassDefinition.js +22 -3
  145. package/dist/esm/Model/ClassDefinition.js.map +1 -1
  146. package/dist/esm/Model/ClusterMap.js +45 -19
  147. package/dist/esm/Model/ClusterMap.js.map +1 -1
  148. package/dist/esm/Model/NodeInfo.js +1 -1
  149. package/dist/esm/Model/NodeInfo.js.map +1 -1
  150. package/dist/esm/Utils.js.map +1 -1
  151. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +6 -3
  152. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  153. package/dist/esm/types/CodeGeneration/NodeFactory.d.ts +75 -0
  154. package/dist/esm/types/CodeGeneration/NodeFactory.d.ts.map +1 -0
  155. package/dist/esm/types/Converters.d.ts +9 -3
  156. package/dist/esm/types/Converters.d.ts.map +1 -1
  157. package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
  158. package/dist/esm/types/Definitions/Global/Events.d.ts +2 -2
  159. package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
  160. package/dist/esm/types/Devices/DeviceMap.d.ts +1 -1
  161. package/dist/esm/types/Devices/DeviceMap.d.ts.map +1 -1
  162. package/dist/esm/types/Devices/EndpointFor.d.ts +7 -5
  163. package/dist/esm/types/Devices/EndpointFor.d.ts.map +1 -1
  164. package/dist/esm/types/Devices/ISYDevice.d.ts.map +1 -1
  165. package/dist/esm/types/Devices/ISYDeviceNode.d.ts +5 -13
  166. package/dist/esm/types/Devices/ISYDeviceNode.d.ts.map +1 -1
  167. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts +76 -0
  168. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleArmed.d.ts.map +1 -0
  169. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts +88 -0
  170. package/dist/esm/types/Devices/Insteon/Generated/AlertModuleSiren.d.ts.map +1 -0
  171. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts +88 -0
  172. package/dist/esm/types/Devices/Insteon/Generated/BallastRelayLampSwitch.d.ts.map +1 -0
  173. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts +64 -0
  174. package/dist/esm/types/Devices/Insteon/Generated/BinaryAlarm.d.ts.map +1 -0
  175. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts +64 -0
  176. package/dist/esm/types/Devices/Insteon/Generated/BinaryControl.d.ts.map +1 -0
  177. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts +144 -0
  178. package/dist/esm/types/Devices/Insteon/Generated/DimmerLamp.d.ts.map +1 -0
  179. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts +150 -0
  180. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitch.d.ts.map +1 -0
  181. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts +156 -0
  182. package/dist/esm/types/Devices/Insteon/Generated/DimmerLampSwitchLed.d.ts.map +1 -0
  183. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts +138 -0
  184. package/dist/esm/types/Devices/Insteon/Generated/DimmerMotorSwitch.d.ts.map +1 -0
  185. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts +51 -0
  186. package/dist/esm/types/Devices/Insteon/Generated/DimmerSwitch.d.ts.map +1 -0
  187. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts +64 -0
  188. package/dist/esm/types/Devices/Insteon/Generated/DoorLock.d.ts.map +1 -0
  189. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts +52 -0
  190. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Input.d.ts.map +1 -0
  191. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts +70 -0
  192. package/dist/esm/types/Devices/Insteon/Generated/Ezio2x4Output.d.ts.map +1 -0
  193. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts +52 -0
  194. package/dist/esm/types/Devices/Insteon/Generated/EzrainInput.d.ts.map +1 -0
  195. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts +76 -0
  196. package/dist/esm/types/Devices/Insteon/Generated/EzrainOutput.d.ts.map +1 -0
  197. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts +88 -0
  198. package/dist/esm/types/Devices/Insteon/Generated/FanLincMotor.d.ts.map +1 -0
  199. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts +168 -0
  200. package/dist/esm/types/Devices/Insteon/Generated/I3KeypadFlags.d.ts.map +1 -0
  201. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts +142 -0
  202. package/dist/esm/types/Devices/Insteon/Generated/I3PaddleFlags.d.ts.map +1 -0
  203. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts +71 -0
  204. package/dist/esm/types/Devices/Insteon/Generated/ImeterSolo.d.ts.map +1 -0
  205. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts +51 -0
  206. package/dist/esm/types/Devices/Insteon/Generated/IrLincTx.d.ts.map +1 -0
  207. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts +64 -0
  208. package/dist/esm/types/Devices/Insteon/Generated/KeypadButton.d.ts.map +1 -0
  209. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts +150 -0
  210. package/dist/esm/types/Devices/Insteon/Generated/KeypadDimmer.d.ts.map +1 -0
  211. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts +94 -0
  212. package/dist/esm/types/Devices/Insteon/Generated/KeypadRelay.d.ts.map +1 -0
  213. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts +44 -0
  214. package/dist/esm/types/Devices/Insteon/Generated/OnOffControl.d.ts.map +1 -0
  215. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts +98 -0
  216. package/dist/esm/types/Devices/Insteon/Generated/Pir2844.d.ts.map +1 -0
  217. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts +76 -0
  218. package/dist/esm/types/Devices/Insteon/Generated/Pir2844OnOff.d.ts.map +1 -0
  219. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts +98 -0
  220. package/dist/esm/types/Devices/Insteon/Generated/Pir2844c.d.ts.map +1 -0
  221. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts +88 -0
  222. package/dist/esm/types/Devices/Insteon/Generated/RelayLamp.d.ts.map +1 -0
  223. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +94 -0
  224. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +1 -0
  225. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts +100 -0
  226. package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitchLed.d.ts.map +1 -0
  227. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts +57 -0
  228. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitch.d.ts.map +1 -0
  229. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts +63 -0
  230. package/dist/esm/types/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.d.ts.map +1 -0
  231. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts +52 -0
  232. package/dist/esm/types/Devices/Insteon/Generated/RemoteLinc2.d.ts.map +1 -0
  233. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts +109 -0
  234. package/dist/esm/types/Devices/Insteon/Generated/Siren.d.ts.map +1 -0
  235. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts +37 -0
  236. package/dist/esm/types/Devices/Insteon/Generated/SirenAlert.d.ts.map +1 -0
  237. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts +148 -0
  238. package/dist/esm/types/Devices/Insteon/Generated/TempLinc.d.ts.map +1 -0
  239. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts +148 -0
  240. package/dist/esm/types/Devices/Insteon/Generated/Thermostat.d.ts.map +1 -0
  241. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts +76 -0
  242. package/dist/esm/types/Devices/Insteon/Generated/X10.d.ts.map +1 -0
  243. package/dist/esm/types/Devices/Insteon/Generated/index.d.ts +39 -0
  244. package/dist/esm/types/Devices/Insteon/Generated/index.d.ts.map +1 -0
  245. package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts +4 -10
  246. package/dist/esm/types/Devices/Insteon/InsteonBaseDevice.d.ts.map +1 -1
  247. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +22 -28
  248. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
  249. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts +3 -3
  250. package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
  251. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts +1 -1
  252. package/dist/esm/types/Devices/Insteon/InsteonLeakSensorDevice.d.ts.map +1 -1
  253. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
  254. package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts +19 -19
  255. package/dist/esm/types/Devices/Insteon/KeypadButton.d.ts.map +1 -1
  256. package/dist/esm/types/Devices/Insteon/index.d.ts +6 -42
  257. package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
  258. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts +64 -0
  259. package/dist/esm/types/Devices/Lutron/Generated/LoadShed.d.ts.map +1 -0
  260. package/dist/esm/types/Devices/NodeFactory.d.ts +18 -7
  261. package/dist/esm/types/Devices/NodeFactory.d.ts.map +1 -1
  262. package/dist/esm/types/Devices/Scene/index.d.ts +2 -1
  263. package/dist/esm/types/Devices/Scene/index.d.ts.map +1 -1
  264. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts +51 -0
  265. package/dist/esm/types/Devices/UDI/Generated/Channel.d.ts.map +1 -0
  266. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts +72 -0
  267. package/dist/esm/types/Devices/UDI/Generated/Em3MainChannel.d.ts.map +1 -0
  268. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts +59 -0
  269. package/dist/esm/types/Devices/UDI/Generated/Main.d.ts.map +1 -0
  270. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts +58 -0
  271. package/dist/esm/types/Devices/UDI/Generated/PulseCounter.d.ts.map +1 -0
  272. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts +64 -0
  273. package/dist/esm/types/Devices/UDI/Generated/Relay.d.ts.map +1 -0
  274. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts +44 -0
  275. package/dist/esm/types/Devices/UDI/Generated/TemperatureSensor.d.ts.map +1 -0
  276. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts +90 -0
  277. package/dist/esm/types/Devices/ZWave/Generated/ColorSwitch.d.ts.map +1 -0
  278. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts +124 -0
  279. package/dist/esm/types/Devices/ZWave/Generated/DimmerSwitch.d.ts.map +1 -0
  280. package/dist/esm/types/Devices/ZWave/Generated/index.d.ts +3 -0
  281. package/dist/esm/types/Devices/ZWave/Generated/index.d.ts.map +1 -0
  282. package/dist/esm/types/Devices/ZWave/index.d.ts.map +1 -1
  283. package/dist/esm/types/Devices/index.d.ts +7 -21
  284. package/dist/esm/types/Devices/index.d.ts.map +1 -1
  285. package/dist/esm/types/ISY.d.ts.map +1 -1
  286. package/dist/esm/types/ISYDevice.d.ts +19 -28
  287. package/dist/esm/types/ISYDevice.d.ts.map +1 -1
  288. package/dist/esm/types/ISYNode.d.ts +25 -8
  289. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  290. package/dist/esm/types/ISYScene.d.ts +5 -6
  291. package/dist/esm/types/ISYScene.d.ts.map +1 -1
  292. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts +11 -0
  293. package/dist/esm/types/Matter/Behaviors/BehaviorRegistry.d.ts.map +1 -0
  294. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +1 -4
  295. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
  296. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts +5 -4
  297. package/dist/esm/types/Matter/Behaviors/Insteon/ISYOnOffBehavior.d.ts.map +1 -1
  298. package/dist/esm/types/Matter/Bridge/Server.d.ts +1 -1
  299. package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -1
  300. package/dist/esm/types/Model/ClassDefinition.d.ts +6 -2
  301. package/dist/esm/types/Model/ClassDefinition.d.ts.map +1 -1
  302. package/dist/esm/types/Model/ClusterMap.d.ts +12 -21
  303. package/dist/esm/types/Model/ClusterMap.d.ts.map +1 -1
  304. package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
  305. package/dist/esm/types/Utils.d.ts +18 -0
  306. package/dist/esm/types/Utils.d.ts.map +1 -1
  307. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  308. package/package.json +2 -2
  309. package/src/CodeGeneration/NodeClassFactory.ts +144 -39
  310. package/src/CodeGeneration/NodeFactory.ts +341 -0
  311. package/src/Converters.ts +23 -3
  312. package/src/Definitions/Global/Drivers.ts +1 -0
  313. package/src/Definitions/Global/Events.ts +3 -3
  314. package/src/Devices/Brultech/Generated/Channel.ts +8 -6
  315. package/src/Devices/Brultech/Generated/Main.ts +9 -9
  316. package/src/Devices/DeviceMap.ts +1 -1
  317. package/src/Devices/ISYDevice.ts +8 -57
  318. package/src/Devices/ISYDeviceNode.ts +143 -166
  319. package/src/Devices/Insteon/Generated/AlertModuleArmed.ts +13 -21
  320. package/src/Devices/Insteon/Generated/AlertModuleSiren.ts +18 -29
  321. package/src/Devices/Insteon/Generated/BallastRelayLampSwitch.ts +18 -29
  322. package/src/Devices/Insteon/Generated/BinaryAlarm.ts +14 -17
  323. package/src/Devices/Insteon/Generated/BinaryControl.ts +14 -17
  324. package/src/Devices/Insteon/Generated/DimmerLamp.ts +25 -51
  325. package/src/Devices/Insteon/Generated/DimmerLampSwitch.ts +36 -64
  326. package/src/Devices/Insteon/Generated/DimmerLampSwitchLed.ts +31 -60
  327. package/src/Devices/Insteon/Generated/DimmerMotorSwitch.ts +24 -47
  328. package/src/Devices/Insteon/Generated/DimmerSwitch.ts +13 -14
  329. package/src/Devices/Insteon/Generated/DoorLock.ts +11 -15
  330. package/src/Devices/Insteon/Generated/Ezio2x4Input.ts +12 -11
  331. package/src/Devices/Insteon/Generated/Ezio2x4Output.ts +12 -18
  332. package/src/Devices/Insteon/Generated/EzrainInput.ts +12 -11
  333. package/src/Devices/Insteon/Generated/EzrainOutput.ts +20 -28
  334. package/src/Devices/Insteon/Generated/FanLincMotor.ts +15 -27
  335. package/src/Devices/Insteon/Generated/I3KeypadFlags.ts +19 -39
  336. package/src/Devices/Insteon/Generated/I3PaddleFlags.ts +17 -33
  337. package/src/Devices/Insteon/Generated/ImeterSolo.ts +11 -15
  338. package/src/Devices/Insteon/Generated/IrLincTx.ts +10 -12
  339. package/src/Devices/Insteon/Generated/{KeypadButtonAdv.ts → KeypadButton.ts} +23 -26
  340. package/src/Devices/Insteon/Generated/KeypadDimmer.ts +30 -57
  341. package/src/Devices/Insteon/Generated/KeypadRelay.ts +30 -43
  342. package/src/Devices/Insteon/Generated/OnOffControl.ts +15 -12
  343. package/src/Devices/Insteon/Generated/Pir2844.ts +15 -20
  344. package/src/Devices/Insteon/Generated/Pir2844OnOff.ts +16 -23
  345. package/src/Devices/Insteon/Generated/Pir2844c.ts +15 -20
  346. package/src/Devices/Insteon/Generated/RelayLamp.ts +29 -41
  347. package/src/Devices/Insteon/Generated/RelayLampSwitch.ts +29 -42
  348. package/src/Devices/Insteon/Generated/RelayLampSwitchLed.ts +24 -39
  349. package/src/Devices/Insteon/Generated/RelaySwitch.ts +14 -17
  350. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQuery.ts +15 -20
  351. package/src/Devices/Insteon/Generated/RemoteLinc2.ts +12 -11
  352. package/src/Devices/Insteon/Generated/Siren.ts +18 -29
  353. package/src/Devices/Insteon/Generated/SirenAlert.ts +11 -8
  354. package/src/Devices/Insteon/Generated/TempLinc.ts +18 -36
  355. package/src/Devices/Insteon/Generated/Thermostat.ts +18 -36
  356. package/src/Devices/Insteon/Generated/X10.ts +13 -21
  357. package/src/Devices/Insteon/Generated/index.ts +38 -0
  358. package/src/Devices/Insteon/InsteonBaseDevice.ts +5 -4
  359. package/src/Devices/Insteon/InsteonFanDevice.ts +3 -4
  360. package/src/Devices/Insteon/InsteonRelayDevice.ts +1 -0
  361. package/src/Devices/Insteon/KeypadButton.ts +31 -31
  362. package/src/Devices/Insteon/index.ts +18 -26
  363. package/src/Devices/Lutron/Generated/LoadShed.ts +11 -15
  364. package/src/Devices/NCD/Generated/Relay.ts +12 -18
  365. package/src/Devices/NodeFactory.ts +67 -13
  366. package/src/Devices/Poly/Generated/MatterBridge.ts +84 -0
  367. package/src/Devices/Scene/Generated/Scene.ts +33 -65
  368. package/src/Devices/Scene/index.ts +2 -1
  369. package/src/Devices/UDI/Generated/Channel.ts +8 -6
  370. package/src/Devices/UDI/Generated/Em3MainChannel.ts +8 -6
  371. package/src/Devices/UDI/Generated/Main.ts +9 -9
  372. package/src/Devices/UDI/Generated/PulseCounter.ts +8 -6
  373. package/src/Devices/UDI/Generated/Relay.ts +11 -15
  374. package/src/Devices/UDI/Generated/TemperatureSensor.ts +8 -6
  375. package/src/Devices/ZWave/Generated/ColorSwitch.ts +16 -24
  376. package/src/Devices/ZWave/Generated/DimmerSwitch.ts +25 -49
  377. package/src/Devices/ZWave/Generated/index.ts +2 -0
  378. package/src/Devices/ZWave/index.ts +5 -1
  379. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +12 -18
  380. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +17 -33
  381. package/src/Devices/index.ts +17 -12
  382. package/src/ISY.ts +8 -2
  383. package/src/ISYDevice.ts +68 -57
  384. package/src/ISYNode.ts +32 -8
  385. package/src/ISYScene.ts +31 -28
  386. package/src/Matter/Behaviors/BehaviorRegistry.ts +26 -0
  387. package/src/Matter/Behaviors/Insteon/ISYOnOffBehavior.ts +6 -0
  388. package/src/Matter/Bridge/Server.ts +39 -15
  389. package/src/Matter/Mappings/Insteon.ts +39 -14
  390. package/src/Model/ClassDefinition.ts +34 -4
  391. package/src/Model/ClusterMap.ts +73 -57
  392. package/src/Model/NodeInfo.ts +1 -1
  393. package/src/Utils.ts +38 -0
  394. package/tsconfig.json +7 -1
  395. package/src/Devices/Insteon/Generated/AlertModuleSirenAdv.ts +0 -123
  396. package/src/Devices/Insteon/Generated/BallastRelayLampSwitchAdv.ts +0 -123
  397. package/src/Devices/Insteon/Generated/BinaryAlarmAdv.ts +0 -91
  398. package/src/Devices/Insteon/Generated/BinaryControlAdv.ts +0 -91
  399. package/src/Devices/Insteon/Generated/DimmerLampSwitchAdv.ts +0 -207
  400. package/src/Devices/Insteon/Generated/DimmerLampSwitchLedAdv.ts +0 -215
  401. package/src/Devices/Insteon/Generated/DimmerMotorSwitchAdv.ts +0 -191
  402. package/src/Devices/Insteon/Generated/DimmerSwitchOnlyAdv.ts +0 -73
  403. package/src/Devices/Insteon/Generated/Ezio2x4InputAdv.ts +0 -75
  404. package/src/Devices/Insteon/Generated/EzrainInputAdv.ts +0 -75
  405. package/src/Devices/Insteon/Generated/KeypadDimmerAdv.ts +0 -207
  406. package/src/Devices/Insteon/Generated/KeypadRelayAdv.ts +0 -131
  407. package/src/Devices/Insteon/Generated/OnOffControlAdv.ts +0 -65
  408. package/src/Devices/Insteon/Generated/Pir2844Adv.ts +0 -139
  409. package/src/Devices/Insteon/Generated/Pir2844OnOffAdv.ts +0 -107
  410. package/src/Devices/Insteon/Generated/Pir2844cAdv.ts +0 -139
  411. package/src/Devices/Insteon/Generated/RelayLampOnlyAdv.ts +0 -123
  412. package/src/Devices/Insteon/Generated/RelayLampSwitchAdv.ts +0 -131
  413. package/src/Devices/Insteon/Generated/RelayLampSwitchLedAdv.ts +0 -139
  414. package/src/Devices/Insteon/Generated/RelaySwitchOnlyAdv.ts +0 -81
  415. package/src/Devices/Insteon/Generated/RelaySwitchOnlyPlusQueryAdv.ts +0 -89
  416. package/src/Devices/Insteon/Generated/RemoteLinc2Adv.ts +0 -75
  417. package/src/Devices/Insteon/Generated/SirenArm.ts +0 -55
@@ -1,12 +1,13 @@
1
1
  import { IndentationText, Project, QuoteKind, ts } from 'ts-morph';
2
2
  import { factory } from 'typescript';
3
3
  import { UnitOfMeasure } from '../Definitions/Global/UOM.js';
4
+ import { Family } from '../Definitions/index.js';
4
5
  import { NodeClassDefinition } from '../Model/ClassDefinition.js';
5
6
  import { EnumDefinitionMap } from '../Model/EnumDefinition.js';
6
- import { Family } from '../Definitions/index.js';
7
+ import { CodeFactory } from './NodeFactory.js';
7
8
  // #endregion Type aliases (1)
8
9
  // #region Classes (1)
9
- export class NodeClassFactory {
10
+ export class NodeClassFactory extends CodeFactory {
10
11
  // #region Properties (2)
11
12
  static _basePath;
12
13
  static project = new Project({
@@ -20,6 +21,7 @@ export class NodeClassFactory {
20
21
  insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true
21
22
  }
22
23
  });
24
+ static instance = new NodeClassFactory(ts.factory);
23
25
  // #endregion Properties (2)
24
26
  // #region Public Static Getters And Setters (2)
25
27
  static get basePath() {
@@ -31,9 +33,19 @@ export class NodeClassFactory {
31
33
  // #endregion Public Static Getters And Setters (2)
32
34
  // #region Public Static Methods (4)
33
35
  static buildNodeClasses(map) {
34
- return Object.values(map).map((p) => this.createNodeClass(p));
36
+ return Object.values(map)
37
+ .filter((p) => !p.equivalentTo)
38
+ .map((p) => {
39
+ try {
40
+ return NodeClassFactory.instance.createNodeClass(p);
41
+ }
42
+ catch (e) {
43
+ console.error(e);
44
+ }
45
+ });
35
46
  }
36
- static createNodeClass(nodeClassDef) {
47
+ N;
48
+ createNodeClass(nodeClassDef) {
37
49
  let path = `${NodeClassFactory.basePath}/${Family[nodeClassDef.family]}/Generated/${nodeClassDef.name}.ts`;
38
50
  let sf = ts.createSourceFile(path, '', ts.ScriptTarget.ES2023, true, ts.ScriptKind.TS);
39
51
  //@ts-expect-error
@@ -41,7 +53,7 @@ export class NodeClassFactory {
41
53
  factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('UnitOfMeasure'))])), factory.createStringLiteral('../../../Definitions/Global/UOM.js'), undefined),
42
54
  factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('Family'))])), factory.createStringLiteral('../../../Definitions/Global/Families.js'), undefined),
43
55
  factory.createImportDeclaration(undefined, factory.createImportClause(true, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('NodeInfo'))])), factory.createStringLiteral('../../../Model/NodeInfo.js'), undefined),
44
- factory.createImportDeclaration(undefined, factory.createImportClause(true, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('ISY'))])), factory.createStringLiteral('../../../ISY.js'), undefined),
56
+ this.createImportDeclaration('../../../ISY.js', ['ISY']),
45
57
  factory.createImportDeclaration(undefined, factory.createImportClause(true, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('ISYNode'))])), factory.createStringLiteral('../../../ISYNode.js'), undefined),
46
58
  factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('Base'))])), factory.createStringLiteral('../index.js'), undefined),
47
59
  factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('ISYDeviceNode'))])), factory.createStringLiteral('../../ISYDeviceNode.js'), undefined),
@@ -49,7 +61,7 @@ export class NodeClassFactory {
49
61
  factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier(Family[nodeClassDef.family]))])), factory.createStringLiteral('../../../Definitions/index.js'), undefined),
50
62
  factory.createImportDeclaration(undefined, factory.createImportClause(true, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('DriverState'))])), factory.createStringLiteral('../../../Model/DriverState.js'), undefined),
51
63
  factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([factory.createImportSpecifier(false, undefined, factory.createIdentifier('NodeFactory'))])), factory.createStringLiteral('../../NodeFactory.js'), undefined),
52
- factory.createVariableStatement([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createVariableDeclarationList([factory.createVariableDeclaration(factory.createIdentifier('nodeDefId'), undefined, undefined, factory.createStringLiteral(nodeClassDef.id))], ts.NodeFlags.Const)),
64
+ factory.createVariableStatement(undefined, factory.createVariableDeclarationList([factory.createVariableDeclaration(factory.createIdentifier('nodeDefId'), undefined, undefined, factory.createStringLiteral(nodeClassDef.id))], ts.NodeFlags.Const)),
53
65
  factory.createTypeAliasDeclaration(undefined, factory.createIdentifier('Commands'), undefined, factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier(nodeClassDef.name), factory.createIdentifier('Commands')), undefined)),
54
66
  factory.createTypeAliasDeclaration(undefined, factory.createIdentifier('Drivers'), undefined, factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier(nodeClassDef.name), factory.createIdentifier('Drivers')), undefined)),
55
67
  factory.createClassDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier(`${nodeClassDef.name}Node`), undefined, [
@@ -74,7 +86,12 @@ export class NodeClassFactory {
74
86
  // factory.createObjectLiteralExpression([], false)
75
87
  // ),
76
88
  factory.createPropertyDeclaration([factory.createToken(ts.SyntaxKind.StaticKeyword), factory.createToken(ts.SyntaxKind.OverrideKeyword)], factory.createIdentifier('nodeDefId'), undefined, undefined, factory.createStringLiteral(nodeClassDef.id)),
77
- factory.createPropertyDeclaration([factory.createToken(ts.SyntaxKind.DeclareKeyword), factory.createToken(ts.SyntaxKind.ReadonlyKeyword)], factory.createIdentifier('nodeDefId'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(nodeClassDef.id)), undefined),
89
+ this.createPropertyDeclaration('implements', factory.createArrayLiteralExpression(nodeClassDef.implementedBy ?
90
+ [this.createStringLiteral(nodeClassDef.id)].concat(!nodeClassDef.implements || nodeClassDef.implements.length == 0 ? [] : nodeClassDef.implements?.map((p) => factory.createStringLiteral(p)))
91
+ : [this.createStringLiteral(nodeClassDef.id)]), this.createModifiers(ts.ModifierFlags.Static | ts.ModifierFlags.Override)),
92
+ factory.createPropertyDeclaration([factory.createToken(ts.SyntaxKind.DeclareKeyword), factory.createToken(ts.SyntaxKind.ReadonlyKeyword)], factory.createIdentifier('nodeDefId'), undefined, nodeClassDef.equivalents ?
93
+ NodeClassFactory.instance.createUnionTypeNode(...[this.createLiteralTypeNode(nodeClassDef.id)].concat(!nodeClassDef.equivalents || nodeClassDef.equivalents.length == 0 ? [] : nodeClassDef.equivalents?.map((p) => factory.createLiteralTypeNode(factory.createStringLiteral(p)))))
94
+ : this.createLiteralTypeNode(nodeClassDef.id), undefined),
78
95
  factory.createConstructorDeclaration(undefined, [
79
96
  factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('isy'), undefined, factory.createTypeReferenceNode(factory.createIdentifier('ISY'), undefined), undefined),
80
97
  factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('nodeInfo'), undefined, factory.createTypeReferenceNode(factory.createIdentifier('NodeInfo'), undefined), undefined)
@@ -88,11 +105,17 @@ export class NodeClassFactory {
88
105
  factory.createExpressionStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('NodeFactory'), factory.createIdentifier('register')), undefined, [
89
106
  factory.createIdentifier(`${nodeClassDef.name}Node`)
90
107
  ])),
108
+ ...(nodeClassDef.equivalents ?
109
+ nodeClassDef.equivalents?.map((p) => factory.createExpressionStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('NodeFactory'), factory.createIdentifier('register')), undefined, [
110
+ factory.createIdentifier(`${nodeClassDef.name}Node`),
111
+ factory.createStringLiteral(p)
112
+ ])))
113
+ : []),
91
114
  factory.createModuleDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier(nodeClassDef.name), factory.createModuleBlock([
92
115
  factory.createInterfaceDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier('Interface'), undefined, [
93
116
  factory.createHeritageClause(ts.SyntaxKind.ExtendsKeyword, [
94
117
  factory.createExpressionWithTypeArguments(factory.createIdentifier('Omit'), [
95
- factory.createTypeReferenceNode(factory.createIdentifier('InstanceType'), [factory.createTypeQueryNode(factory.createIdentifier(`${nodeClassDef.name}Node`), undefined)]),
118
+ this.createTypeReferenceNode('InstanceType', this.factory.createTypeQueryNode(factory.createIdentifier(`${nodeClassDef.name}Node`))),
96
119
  factory.createTypeOperatorNode(ts.SyntaxKind.KeyOfKeyword, factory.createTypeReferenceNode(factory.createIdentifier('ISYDeviceNode'), [
97
120
  factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
98
121
  factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
@@ -101,7 +124,11 @@ export class NodeClassFactory {
101
124
  ]))
102
125
  ])
103
126
  ])
104
- ], [factory.createPropertySignature(undefined, factory.createIdentifier('nodeDefId'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(nodeClassDef.id)))]),
127
+ ], [
128
+ factory.createPropertySignature(undefined, factory.createIdentifier('nodeDefId'), undefined, nodeClassDef.equivalents ?
129
+ this.createUnionTypeNode(...[this.createLiteralTypeNode(nodeClassDef.id)].concat(!nodeClassDef.equivalents || nodeClassDef.equivalents.length == 0 ? [] : nodeClassDef.equivalents?.map((p) => factory.createLiteralTypeNode(factory.createStringLiteral(p)))))
130
+ : this.createLiteralTypeNode(nodeClassDef.id))
131
+ ]),
105
132
  factory.createFunctionDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], undefined, factory.createIdentifier('is'), undefined, [
106
133
  factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('node'), undefined, factory.createTypeReferenceNode(factory.createIdentifier('ISYNode'), [
107
134
  factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
@@ -109,9 +136,19 @@ export class NodeClassFactory {
109
136
  factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
110
137
  factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)
111
138
  ]), undefined)
112
- ], factory.createTypePredicateNode(undefined, factory.createIdentifier('node'), factory.createTypeReferenceNode(factory.createIdentifier(`${nodeClassDef.name}Node`), undefined)), factory.createBlock([
113
- factory.createReturnStatement(factory.createBinaryExpression(factory.createPropertyAccessExpression(factory.createIdentifier('node'), factory.createIdentifier('nodeDefId')), factory.createToken(ts.SyntaxKind.EqualsEqualsEqualsToken), factory.createIdentifier('nodeDefId')))
114
- ], true)),
139
+ ], factory.createTypePredicateNode(undefined, factory.createIdentifier('node'), factory.createTypeReferenceNode(factory.createIdentifier(`${nodeClassDef.name}Node`), undefined)), this.createBlock(this.createReturnStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createArrayLiteralExpression(nodeClassDef.equivalents ?
140
+ [this.createStringLiteral(nodeClassDef.id)].concat(!nodeClassDef.equivalents || nodeClassDef.equivalents.length == 0 ? [] : nodeClassDef.equivalents?.map((p) => factory.createStringLiteral(p)))
141
+ : [this.createStringLiteral(nodeClassDef.id)]), 'includes'), undefined, [factory.createPropertyAccessExpression(factory.createIdentifier('node'), factory.createIdentifier('nodeDefId'))])))),
142
+ factory.createFunctionDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], undefined, factory.createIdentifier('isImplementedBy'), undefined, [
143
+ factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('node'), undefined, factory.createTypeReferenceNode(factory.createIdentifier('ISYNode'), [
144
+ factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
145
+ factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
146
+ factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
147
+ factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword)
148
+ ]), undefined)
149
+ ], factory.createTypePredicateNode(undefined, factory.createIdentifier('node'), factory.createTypeReferenceNode(factory.createIdentifier(`${nodeClassDef.name}Node`), undefined)), this.createBlock(true, factory.createReturnStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createArrayLiteralExpression(nodeClassDef.implementedBy ?
150
+ [this.createStringLiteral(nodeClassDef.id)].concat(!nodeClassDef.implementedBy || nodeClassDef.implementedBy.length == 0 ? [] : nodeClassDef.implementedBy?.map((p) => factory.createStringLiteral(p)))
151
+ : [this.createStringLiteral(nodeClassDef.id)]), 'includes'), undefined, [factory.createPropertyAccessExpression(factory.createIdentifier('node'), factory.createIdentifier('nodeDefId'))])))),
115
152
  factory.createFunctionDeclaration([factory.createToken(ts.SyntaxKind.ExportKeyword)], undefined, factory.createIdentifier('create'), undefined, [
116
153
  factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('isy'), undefined, factory.createTypeReferenceNode(factory.createIdentifier('ISY'), undefined), undefined),
117
154
  factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('nodeInfo'), undefined, factory.createTypeReferenceNode(factory.createIdentifier('NodeInfo'), undefined), undefined)
@@ -180,16 +217,14 @@ function buildClassIndex(family, classes) {
180
217
  };
181
218
  }
182
219
  function createCommandMethodDeclaration(def) {
183
- return factory.createMethodDeclaration([factory.createToken(ts.SyntaxKind.AsyncKeyword)], undefined, factory.createIdentifier(def.name), undefined, undefined, def.parameters ? Object.values(def.parameters).map(createParameterDeclarationSignature) : undefined, undefined, factory.createBlock([
184
- factory.createReturnStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('sendCommand')), undefined, [
185
- factory.createStringLiteral(def.id),
186
- ...(def.parameters ?
187
- [
188
- factory.createObjectLiteralExpression([...Object.values(def.parameters).map((p) => factory.createPropertyAssignment(factory.createIdentifier(p.id ?? 'value'), factory.createIdentifier(p.name ?? 'value')))], false)
189
- ]
190
- : [])
191
- ]))
192
- ], true));
220
+ return factory.createMethodDeclaration([factory.createToken(ts.SyntaxKind.AsyncKeyword)], undefined, factory.createIdentifier(def.name), undefined, undefined, def.parameters ? Object.values(def.parameters).map(createParameterDeclarationSignature) : undefined, undefined, NodeClassFactory.instance.createBlock(factory.createReturnStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('sendCommand')), undefined, [
221
+ factory.createStringLiteral(def.id),
222
+ ...(def.parameters ?
223
+ [
224
+ factory.createObjectLiteralExpression([...Object.values(def.parameters).map((p) => factory.createPropertyAssignment(factory.createIdentifier(p.id ?? 'value'), factory.createIdentifier(p.name ?? 'value')))], false)
225
+ ]
226
+ : [])
227
+ ]))));
193
228
  }
194
229
  function createCommandParameterType(def, parent) {
195
230
  if (def.enum) {
@@ -202,9 +237,9 @@ function createCommandParameterType(def, parent) {
202
237
  }
203
238
  }
204
239
  if (def.values) {
205
- return factory.createUnionTypeNode(Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
240
+ return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
206
241
  }
207
- // return factory.createUnionTypeNode(
242
+ // return NodeClassFactory.instance.createUnionTypeNode(...
208
243
  // Object.values(def.values).map((p) => factory.createTypeReferenceNode(
209
244
  // factory.createQualifiedName(
210
245
  // factory.createIdentifier("UnitOfMeasure"),
@@ -226,7 +261,7 @@ function createCommandSignature(def) {
226
261
  ]));
227
262
  }
228
263
  function createDriverGetDeclaration(def) {
229
- return factory.createGetAccessorDeclaration([factory.createToken(ts.SyntaxKind.PublicKeyword)], factory.createIdentifier(def.name), [], factory.createUnionTypeNode(Object.values(def.dataType).map((p) => createDriverPropertyReturnType(p, def))), factory.createBlock([
264
+ return factory.createGetAccessorDeclaration([factory.createToken(ts.SyntaxKind.PublicKeyword)], factory.createIdentifier(def.name), [], NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createDriverPropertyReturnType(p, def))), factory.createBlock([
230
265
  factory.createReturnStatement(factory.createPropertyAccessChain(factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createThis(), factory.createIdentifier('drivers')), factory.createIdentifier(def.id)), factory.createToken(ts.SyntaxKind.QuestionDotToken), factory.createIdentifier('value')))
231
266
  ], true));
232
267
  }
@@ -253,9 +288,9 @@ function createDriverPropertyReturnType(def, parent) {
253
288
  }
254
289
  }
255
290
  if (def.values) {
256
- return factory.createUnionTypeNode(Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
291
+ return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
257
292
  }
258
- // return factory.createUnionTypeNode(
293
+ // return NodeClassFactory.instance.createUnionTypeNode(...
259
294
  // Object.values(def.values).map((p) => factory.createTypeReferenceNode(
260
295
  // factory.createQualifiedName(
261
296
  // factory.createIdentifier("UnitOfMeasure"),
@@ -269,8 +304,12 @@ function createDriverPropertyReturnType(def, parent) {
269
304
  }
270
305
  function createDriverSignature(def) {
271
306
  return factory.createPropertySignature(undefined, factory.createIdentifier(def.id), undefined, factory.createTypeLiteralNode([
272
- factory.createPropertySignature(undefined, factory.createIdentifier('uom'), undefined, def.dataType ? factory.createUnionTypeNode(Object.values(def.dataType).map((p) => createTypeNodeForUOM(p.uom))) : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)),
273
- factory.createPropertySignature(undefined, factory.createIdentifier('value'), undefined, def.dataType ? factory.createUnionTypeNode(Object.values(def.dataType).map((p) => createDriverSignatureReturnType(p, def))) : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)),
307
+ factory.createPropertySignature(undefined, factory.createIdentifier('uom'), undefined, def.dataType ?
308
+ NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createTypeNodeForUOM(p.uom)))
309
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)),
310
+ factory.createPropertySignature(undefined, factory.createIdentifier('value'), undefined, def.dataType ?
311
+ NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createDriverSignatureReturnType(p, def)))
312
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)),
274
313
  factory.createPropertySignature(undefined, factory.createIdentifier('label'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.label))),
275
314
  factory.createPropertySignature(undefined, factory.createIdentifier('name'), undefined, factory.createLiteralTypeNode(factory.createStringLiteral(def.name)))
276
315
  ]));
@@ -285,19 +324,23 @@ function createDriverSignatureReturnType(def, parent) {
285
324
  }
286
325
  }
287
326
  if (def.values) {
288
- return factory.createUnionTypeNode(Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
327
+ return NodeClassFactory.instance.createUnionTypeNode(...Object.keys(def.values).map((p) => factory.createLiteralTypeNode(factory.createNumericLiteral(p))));
289
328
  }
290
329
  }
291
330
  return factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
292
331
  }
293
332
  function createParameterDeclarationSignature(def) {
294
- return factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier(def.name ?? 'value'), def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, def.dataType ? factory.createUnionTypeNode(Object.values(def.dataType).map((p) => createCommandParameterType(p, def))) : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), undefined);
333
+ return factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier(def.name ?? 'value'), def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, def.dataType ?
334
+ NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createCommandParameterType(p, def)))
335
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), undefined);
295
336
  }
296
337
  function createParameterSignature(def) {
297
- return factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier(def.id ?? 'value'), def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, def.dataType ? factory.createUnionTypeNode(Object.values(def.dataType).map((p) => createCommandParameterType(p, def))) : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), undefined);
338
+ return factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier(def.id ?? 'value'), def.optional ? factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, def.dataType ?
339
+ NodeClassFactory.instance.createUnionTypeNode(...Object.values(def.dataType).map((p) => createCommandParameterType(p, def)))
340
+ : factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), undefined);
298
341
  }
299
342
  function createTypeNodeForUOM(uom) {
300
- return factory.createTypeReferenceNode(factory.createQualifiedName(factory.createIdentifier('UnitOfMeasure'), factory.createIdentifier(UnitOfMeasure[uom] ?? 'Unknown')));
343
+ return NodeClassFactory.instance.createTypeReferenceNode(UnitOfMeasure[uom] ?? 'Unknown', 'UnitOfMeasure');
301
344
  }
302
345
  // #endregion Functions (12)
303
346
  //# sourceMappingURL=NodeClassFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClassFactory.js","sourceRoot":"","sources":["../../../src/CodeGeneration/NodeClassFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,eAAe,EAAE,OAAO,EAAE,SAAS,EAAc,EAAE,EAAa,MAAM,UAAU,CAAC;AAC7G,OAAO,EAAE,OAAO,EAA+B,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAA2D,mBAAmB,EAAuB,MAAM,6BAA6B,CAAC;AAChJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAalD,8BAA8B;AAE9B,sBAAsB;AAEtB,MAAM,OAAO,gBAAgB;IAC5B,yBAAyB;IAElB,MAAM,CAAC,SAAS,CAAS;IACzB,MAAM,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;QACnC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE;QACjF,oBAAoB,EAAE;YACrB,+BAA+B,EAAE,IAAI;YACrC,SAAS,EAAE,SAAS,CAAC,MAAM;YAC3B,iBAAiB,EAAE,KAAK;YACxB,eAAe,EAAE,eAAe,CAAC,GAAG;YACpC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,sBAAsB;YAClD,qDAAqD,EAAE,IAAI;SAC3D;KACD,CAAC,CAAC;IAEH,4BAA4B;IAE5B,gDAAgD;IAEzC,MAAM,KAAK,QAAQ;QACzB,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,KAAK,QAAQ,CAAC,KAAa;QACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,mDAAmD;IAEnD,oCAAoC;IAE7B,MAAM,CAAC,gBAAgB,CAAmB,GAA4C;QAC5F,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,eAAe,CAAmB,YAAoC;QACnF,IAAI,IAAI,GAAG,GAAG,gBAAgB,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,YAAY,CAAC,IAAI,KAAK,CAAC;QAC3G,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvF,kBAAkB;QAElB,EAAE,CAAC,UAAU,GAAG;YACf,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EACtK,OAAO,CAAC,mBAAmB,CAAC,oCAAoC,CAAC,EACjE,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/J,OAAO,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,EACtE,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAChK,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,EACzD,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3J,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAC9C,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/J,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAClD,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7J,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAC1C,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EACtK,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,EACrD,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/J,OAAO,CAAC,mBAAmB,CAAC,wCAAwC,CAAC,EACrE,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClL,OAAO,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,EAC5D,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EACnK,OAAO,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,EAC5D,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EACpK,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,EACnD,SAAS,CACT;YACD,OAAO,CAAC,uBAAuB,CAC9B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,6BAA6B,CACpC,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAC9I,EAAE,CAAC,SAAS,CAAC,KAAK,CAClB,CACD;YACD,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAC1J;YAED,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CACzJ;YAED,OAAO,CAAC,sBAAsB,CAC7B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,CAAC,EACpD,SAAS,EACT;gBACC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE;oBAC1D,OAAO,CAAC,iCAAiC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;wBAC3E,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;wBAC/E,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;qBAChF,CAAC;iBACF,CAAC;gBACF,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE;oBAC7D,OAAO,CAAC,iCAAiC,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC;iBAChL,CAAC;aACF,EACD;gBACC,OAAO,CAAC,yBAAyB,CAChC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAC1J,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,6BAA6B,CACpC;oBACC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChK;iBACD,EACD,IAAI,CACJ,CACD;gBACD,qCAAqC;gBACrC,wDAAwD;gBACxD,yCAAyC;gBACzC,eAAe;gBACf,qFAAqF;gBACrF,qDAAqD;gBACrD,KAAK;gBACL,OAAO,CAAC,yBAAyB,CAChC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACtG,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EACrC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,CAC5C;gBACD,OAAO,CAAC,yBAAyB,CAChC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACvG,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EACrC,SAAS,EACT,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAC3E,SAAS,CACT;gBACD,OAAO,CAAC,4BAA4B,CACnC,SAAS,EACT;oBACC,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC/B,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAC3E,SAAS,CACT;oBACD,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAChF,SAAS,CACT;iBACD,EACD,OAAO,CAAC,WAAW,CAClB;oBACC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC1K,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC;iBAC/E,EACD,IAAI,CACJ,CACD;gBACD,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,8BAA8B,CAAC;gBAC3E,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;aACtE,CACD;YACD,OAAO,CAAC,yBAAyB,CAChC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE;gBAC9J,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,CAAC;aACpD,CAAC,CACF;YACD,OAAO,CAAC,uBAAuB,CAC9B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,EAC3C,OAAO,CAAC,iBAAiB,CAAC;gBACzB,OAAO,CAAC,0BAA0B,CACjC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EACrC,SAAS,EACT;oBACC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE;wBAC1D,OAAO,CAAC,iCAAiC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;4BAC3E,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;4BACzK,OAAO,CAAC,sBAAsB,CAC7B,EAAE,CAAC,UAAU,CAAC,YAAY,EAC1B,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE;gCAC1E,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gCACvD,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gCACvD,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gCACvD,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;6BACvD,CAAC,CACF;yBACD,CAAC;qBACF,CAAC;iBACF,EACD,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3K;gBACD,OAAO,CAAC,yBAAyB,CAChC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC9B,SAAS,EACT;oBACC,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAChC,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;wBACpE,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBACvD,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBACvD,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBACvD,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;qBACvD,CAAC,EACF,SAAS,CACT;iBACD,EACD,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,EAC9K,OAAO,CAAC,WAAW,CAClB;oBACC,OAAO,CAAC,qBAAqB,CAC5B,OAAO,CAAC,sBAAsB,CAC7B,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAC/G,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAC1D,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACrC,CACD;iBACD,EACD,IAAI,CACJ,CACD;gBACD,OAAO,CAAC,yBAAyB,CAChC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAClC,SAAS,EACT;oBACC,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC/B,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAC3E,SAAS,CACT;oBACD,OAAO,CAAC,0BAA0B,CACjC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,SAAS,EACT,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAChF,SAAS,CACT;iBACD,EACD,SAAS,EACT,OAAO,CAAC,WAAW,CAClB;oBACC,OAAO,CAAC,qBAAqB,CAC5B,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CACrK;iBACD,EACD,IAAI,CACJ,CACD;gBACD,OAAO,CAAC,uBAAuB,CAC9B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,6BAA6B,CACpC,CAAC,OAAO,CAAC,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EACjJ,EAAE,CAAC,SAAS,CAAC,KAAK,CAClB,CACD;gBACD,OAAO,CAAC,0BAA0B,CACjC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,SAAS,EACT,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CACpG;gBACD,OAAO,CAAC,0BAA0B,CACjC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,SAAS,EACT,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAClG;aACD,CAAC,EACF,EAAE,CAAC,SAAS,CAAC,SAAS,CACtB;SACD,CAAC;QACF,gCAAgC;QAChC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,gBAAgB;QAEhB,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,CAAC,CAAC,UAAU,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,qDAAqD,EAAE,IAAI;YAC3D,8BAA8B,EAAE,IAAI;YACpC,wCAAwC,EAAE,IAAI;YAC9C,wCAAwC,EAAE,IAAI;YAC9C,2BAA2B,EAAE,IAAI;YACjC,gBAAgB,EAAE,IAAI;YACtB,sBAAsB,EAAE,IAAI;YAC5B,wBAAwB,EAAE,IAAI;YAC9B,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC;YACnC,IAAI,WAAW,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChC,IAAI,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBAC1C,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;QACF,CAAC;QACD,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,wEAAwE,CAAC,CAAC;QAC1F,OAAO;YACN,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,IAAI;YACJ,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,UAAU,EAAE,CAAC;SACb,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,wBAAwB,CAAmB,MAAS;QACjE,OAAO,IAAI,CAAC,gBAAgB,CAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAA4C,CAAC,CAAC;IACjH,CAAC;;AAKF,yBAAyB;AAEzB,yBAAyB;AAEzB,SAAS,eAAe,CAAmB,MAAS,EAAE,OAAgC;IACrF,OAAO;QACN,MAAM;QACN,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB;QAC7C,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;KAC3J,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,GAAsB;IAC7D,OAAO,OAAO,CAAC,uBAAuB,CACrC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EACjD,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAClC,SAAS,EACT,SAAS,EAET,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,SAAS,EACnG,SAAS,EACT,OAAO,CAAC,WAAW,CAClB;QACC,OAAO,CAAC,qBAAqB,CAC5B,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE;YAC9I,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnB;oBACC,OAAO,CAAC,6BAA6B,CACpC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EACvK,KAAK,CACL;iBACD;gBACF,CAAC,CAAC,EAAE,CAAC;SACL,CAAC,CACF;KACD,EACD,IAAI,CACJ,CACD,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAuB,EAAE,MAA2B;IACvF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;YACA,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEzE,oDAAoD;gBACpD,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClL,CAAC;YACF,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxI,CAAC;YAED,wCAAwC;YACxC,4EAA4E;YAC5E,iCAAiC;YACjC,iDAAiD;YACjD,8CAA8C;YAC9C,OAAO;YACP,cAAc;YACd,MAAM;QACP,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAsB;IACrD,OAAO,OAAO,CAAC,uBAAuB,CACrC,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAChC,SAAS,EACT,OAAO,CAAC,0BAA0B,CAAC;QAClC,OAAO,CAAC,uBAAuB,CAC9B,OAAO,CAAC,sBAAsB,CAC7B,SAAS,EACT,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,EAEjF,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CACnI,CACD;QACD,OAAO,CAAC,qBAAqB,CAAC;YAC7B,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/J,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7J,CAAC;KACF,CAAC,CACF,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAqB;IACxD,OAAO,OAAO,CAAC,4BAA4B,CAC1C,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAClD,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAClC,EAAE,EACF,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAC3G,OAAO,CAAC,WAAW,CAClB;QACC,OAAO,CAAC,qBAAqB,CAC5B,OAAO,CAAC,yBAAyB,CAChC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3K,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACnD,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACjC,CACD;KACD,EACD,IAAI,CACJ,CACD,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAAC,GAAqB;IACjE,OAAO,OAAO,CAAC,yBAAyB,CACvC,OAAO,CAAC,sBAAsB,CAC7B,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3K,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAC9C,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE;QACvJ,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,UAAU,EAAE;QACpB,OAAO,CAAC,kBAAkB,CACzB,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAClH,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CACnF;QACD,OAAO,CAAC,6BAA6B,CACpC;YACC,OAAO,CAAC,wBAAwB,CAC/B,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC/B,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAC/K;YACD,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3G,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACzG,EACD,KAAK,CACL;KACD,CAAC,CACF,CACD,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,GAAuB,EAAE,MAAwB;IACxF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;YACA,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEzE,oDAAoD;gBACpD,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClL,CAAC;YACF,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxI,CAAC;YAED,wCAAwC;YACxC,4EAA4E;YAC5E,iCAAiC;YACjC,iDAAiD;YACjD,8CAA8C;YAC9C,OAAO;YACP,cAAc;YACd,MAAM;QACP,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAqB;IACnD,OAAO,OAAO,CAAC,uBAAuB,CACrC,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAChC,SAAS,EACT,OAAO,CAAC,qBAAqB,CAAC;QAC7B,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAC/B,SAAS,EACT,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAC5K;QACD,OAAO,CAAC,uBAAuB,CAC9B,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EACjC,SAAS,EACT,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CACxL;QACD,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/J,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7J,CAAC,CACF,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,GAAuB,EAAE,MAAwB;IACzF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEzE,oDAAoD;YACpD,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAClL,CAAC;QACF,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxI,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,mCAAmC,CAAC,GAAwB;IACpE,OAAO,OAAO,CAAC,0BAA0B,CACxC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,EAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EACnL,SAAS,CACT,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAwB;IACzD,OAAO,OAAO,CAAC,0BAA0B,CACxC,SAAS,EACT,SAAS,EACT,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,EAC3C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EACnL,SAAS,CACT,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACxC,OAAO,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3K,CAAC;AAED,4BAA4B"}
1
+ {"version":3,"file":"NodeClassFactory.js","sourceRoot":"","sources":["../../../src/CodeGeneration/NodeClassFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,245 @@
1
+ import ts from 'typescript';
2
+ export const SyntaxKind = ts.SyntaxKind;
3
+ export class CodeFactory {
4
+ factory;
5
+ constructor(factory) {
6
+ this.factory = factory;
7
+ }
8
+ createIdentifier(name) {
9
+ return name ? ts.factory.createIdentifier(name) : undefined;
10
+ }
11
+ createImportClause(isTypeOnly, name, ...namedBindings) {
12
+ return ts.factory.createImportClause(isTypeOnly, this.createIdentifier(name), namedBindings.length ? namedBindings[0] : undefined);
13
+ }
14
+ createAssertClause(elements, multiLine) {
15
+ return ts.factory.createAssertClause(elements, multiLine);
16
+ }
17
+ createAssertEntry(name, value) {
18
+ return ts.factory.createAssertEntry(this.createIdentifier(name), value);
19
+ }
20
+ createImportTypeAssertionContainer(clause, multiLine) {
21
+ return ts.factory.createImportTypeAssertionContainer(clause, multiLine);
22
+ }
23
+ createImportAttributes(elements, multiLine) {
24
+ return ts.factory.createImportAttributes(elements, multiLine);
25
+ }
26
+ createImportAttribute(name, value) {
27
+ return ts.factory.createImportAttribute(this.createIdentifier(name), value);
28
+ }
29
+ createNamespaceImport(name) {
30
+ return ts.factory.createNamespaceImport(this.createIdentifier(name));
31
+ }
32
+ createNamespaceExport(name) {
33
+ return ts.factory.createNamespaceExport(this.createIdentifier(name));
34
+ }
35
+ createNamedImports(...elements) {
36
+ return ts.factory.createNamedImports(elements);
37
+ }
38
+ updateImportClause(node, isTypeOnly, name, ...namedBindings) {
39
+ return ts.factory.updateImportClause(node, isTypeOnly, this.createIdentifier(name), namedBindings.length ? namedBindings[0] : undefined);
40
+ }
41
+ updateAssertClause(node, elements, multiLine) {
42
+ return ts.factory.updateAssertClause(node, elements, multiLine);
43
+ }
44
+ updateAssertEntry(node, name, value) {
45
+ return ts.factory.updateAssertEntry(node, this.createIdentifier(name), value);
46
+ }
47
+ updateImportTypeAssertionContainer(node, clause, multiLine) {
48
+ return ts.factory.updateImportTypeAssertionContainer(node, clause, multiLine);
49
+ }
50
+ updateImportAttributes(node, elements, multiLine) {
51
+ return ts.factory.updateImportAttributes(node, elements, multiLine);
52
+ }
53
+ updateImportAttribute(node, name, value) {
54
+ return ts.factory.updateImportAttribute(node, this.createIdentifier(name), value);
55
+ }
56
+ updateNamespaceImport(node, name) {
57
+ return ts.factory.updateNamespaceImport(node, this.createIdentifier(name));
58
+ }
59
+ updateNamespaceExport(node, name) {
60
+ return ts.factory.updateNamespaceExport(node, this.createIdentifier(name));
61
+ }
62
+ updateNamedImports(node, ...elements) {
63
+ return ts.factory.updateNamedImports(node, elements);
64
+ }
65
+ // Additional methods to cover common usages in NodeClassFactory.ts
66
+ createImportDeclaration(moduleSpecifier, namedImports, isTypeOnly = false, importAttributes, ...modifierFlags) {
67
+ return ts.factory.createImportDeclaration(this.createModifiers(...modifierFlags), this.createImportClause(isTypeOnly, undefined, ts.factory.createNamedImports(namedImports.map((name) => ts.factory.createImportSpecifier(false, undefined, this.createIdentifier(name))))), ts.factory.createStringLiteral(moduleSpecifier), importAttributes);
68
+ }
69
+ createVariableStatement(name, initializer, isConst = true) {
70
+ return ts.factory.createVariableStatement([ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createVariableDeclarationList([ts.factory.createVariableDeclaration(this.createIdentifier(name), undefined, undefined, initializer)], isConst ? ts.NodeFlags.Const : ts.NodeFlags.None));
71
+ }
72
+ createTypeAliasDeclaration(name, type) {
73
+ return ts.factory.createTypeAliasDeclaration(undefined, this.createIdentifier(name), undefined, type);
74
+ }
75
+ createClassDeclaration(name, members, heritageClauses) {
76
+ return ts.factory.createClassDeclaration(this.createModifiers(ts.ModifierFlags.Export), this.createIdentifier(name), undefined, heritageClauses, members);
77
+ }
78
+ and(...flags) {
79
+ if (flags.length === 0) {
80
+ return 0;
81
+ }
82
+ return flags.reduce((acc, flag) => acc & flag, flags[0]);
83
+ }
84
+ or(...flags) {
85
+ if (flags.length === 0) {
86
+ return 0;
87
+ }
88
+ return flags.reduce((acc, flag) => acc | flag, flags[0]);
89
+ }
90
+ createModifiers(...flags) {
91
+ return ts.factory.createModifiersFromModifierFlags(this.or(...flags));
92
+ }
93
+ createMethodDeclaration(name, parameters, body, isAsync = false) {
94
+ return ts.factory.createMethodDeclaration(isAsync ? this.createModifiers(ts.ModifierFlags.Async) : undefined, undefined, this.createIdentifier(name), undefined, undefined, parameters, undefined, body);
95
+ }
96
+ createPropertyDeclaration(name, initializer, modifiers = []) {
97
+ return ts.factory.createPropertyDeclaration(modifiers, this.createIdentifier(name), undefined, undefined, initializer);
98
+ }
99
+ createConstructorDeclaration(parameters, body) {
100
+ return ts.factory.createConstructorDeclaration(undefined, parameters, body);
101
+ }
102
+ createFunctionDeclaration(name, parameters, body, returnType) {
103
+ return ts.factory.createFunctionDeclaration([this.createModifier(ts.SyntaxKind.ExportKeyword)], undefined, this.createIdentifier(name), undefined, parameters, returnType, body);
104
+ }
105
+ createModifier(ExportKeyword) {
106
+ return ts.factory.createModifier(ExportKeyword);
107
+ }
108
+ createModuleDeclaration(name, body, ...modifierFlags) {
109
+ return ts.factory.createModuleDeclaration(this.createModifiers(...modifierFlags), this.createIdentifier(name), body, ts.NodeFlags.Namespace);
110
+ }
111
+ createToken(kind) {
112
+ return ts.factory.createToken(kind);
113
+ }
114
+ createPropertySignature(name, type, optional = false, ...modifiers) {
115
+ return ts.factory.createPropertySignature(this.createModifiers(...modifiers), this.createIdentifier(name), optional ? this.createToken(ts.SyntaxKind.QuestionToken) : undefined, type);
116
+ }
117
+ createTypeReferenceNode(typeName, qualifier, ...typeArguments) {
118
+ if (typeof qualifier === 'string') {
119
+ return ts.factory.createTypeReferenceNode(ts.factory.createQualifiedName(this.createIdentifier(qualifier), this.createIdentifier(typeName)), typeArguments);
120
+ }
121
+ else {
122
+ return ts.factory.createTypeReferenceNode(this.createIdentifier(typeName), [qualifier, ...typeArguments]);
123
+ }
124
+ }
125
+ typesEqual(a, b) {
126
+ if (ts.isLiteralTypeNode(a) && ts.isLiteralTypeNode(b)) {
127
+ if (ts.isNumericLiteral(a.literal) && ts.isNumericLiteral(b.literal)) {
128
+ return a.literal.text === b.literal.text;
129
+ }
130
+ else if (ts.isStringLiteral(a.literal) && ts.isStringLiteral(b.literal)) {
131
+ return a.literal.text === b.literal.text;
132
+ }
133
+ else if (ts.isBigIntLiteral(a.literal) && ts.isBigIntLiteral(b.literal)) {
134
+ return a.literal.text === b.literal.text;
135
+ }
136
+ }
137
+ if (ts.isTypeReferenceNode(a) && ts.isTypeReferenceNode(b)) {
138
+ if (ts.isIdentifier(a.typeName) && ts.isIdentifier(b.typeName)) {
139
+ return a.typeName.text === b.typeName.text;
140
+ }
141
+ }
142
+ return false;
143
+ }
144
+ createUnionTypeNode(...types) {
145
+ let t = [types[0]];
146
+ for (let i = 1; i < types.length; i++) {
147
+ if (types[i].kind !== ts.SyntaxKind.NeverKeyword) {
148
+ if (types[i].kind === ts.SyntaxKind.UnionType) {
149
+ types.push(...types[i].types);
150
+ }
151
+ else if (!t.some((x) => this.typesEqual(x, types[i])))
152
+ t.push(types[i]);
153
+ }
154
+ }
155
+ return ts.factory.createUnionTypeNode(types);
156
+ }
157
+ createIntersectionTypeNode(types) {
158
+ return ts.factory.createIntersectionTypeNode(types);
159
+ }
160
+ createTypeLiteralNode(members) {
161
+ return ts.factory.createTypeLiteralNode(members);
162
+ }
163
+ createFunctionTypeNode(type, typeParameters, ...parameters) {
164
+ return ts.factory.createFunctionTypeNode(typeParameters, parameters, type);
165
+ }
166
+ createParameter(name, type, initializer, optional = false) {
167
+ return ts.factory.createParameterDeclaration(undefined, undefined, this.createIdentifier(name), optional ? this.createToken(ts.SyntaxKind.QuestionToken) : undefined, type, initializer);
168
+ }
169
+ createExpressionStatement(expression) {
170
+ return ts.factory.createExpressionStatement(expression);
171
+ }
172
+ createCallExpression(expression, typeArguments, argumentsArray) {
173
+ return ts.factory.createCallExpression(expression, typeArguments, argumentsArray);
174
+ }
175
+ createReturnStatement(expression) {
176
+ return ts.factory.createReturnStatement(expression);
177
+ }
178
+ createNewExpression(expression, typeArguments, argumentsArray) {
179
+ return ts.factory.createNewExpression(expression, typeArguments, argumentsArray);
180
+ }
181
+ createObjectLiteral(properties, multiLine) {
182
+ return ts.factory.createObjectLiteralExpression(properties, multiLine);
183
+ }
184
+ createPropertyAssignment(name, initializer) {
185
+ return ts.factory.createPropertyAssignment(this.createIdentifier(name), initializer);
186
+ }
187
+ createQualifiedName(left, right) {
188
+ return ts.factory.createQualifiedName(left, this.createIdentifier(right));
189
+ }
190
+ createLiteralTypeNode(literal) {
191
+ if (typeof literal === 'number') {
192
+ return ts.factory.createLiteralTypeNode(this.createNumericLiteral(literal));
193
+ }
194
+ return ts.factory.createLiteralTypeNode(this.createStringLiteral(literal));
195
+ }
196
+ createNumericLiteral(value) {
197
+ return ts.factory.createNumericLiteral(value.toString());
198
+ }
199
+ createStringLiteral(text) {
200
+ return ts.factory.createStringLiteral(text);
201
+ }
202
+ createKeywordTypeNode(kind) {
203
+ return ts.factory.createKeywordTypeNode(kind);
204
+ }
205
+ createTypePredicateNode(parameterName, type) {
206
+ return ts.factory.createTypePredicateNode(undefined, parameterName, type);
207
+ }
208
+ createBinaryExpression(left, operator, right) {
209
+ return ts.factory.createBinaryExpression(left, operator, right);
210
+ }
211
+ createPropertyAccessExpression(expression, name) {
212
+ return ts.factory.createPropertyAccessExpression(expression, this.createIdentifier(name));
213
+ }
214
+ createHeritageClause(token, types) {
215
+ return ts.factory.createHeritageClause(token, types);
216
+ }
217
+ createExpressionWithTypeArguments(expression, typeArguments) {
218
+ return ts.factory.createExpressionWithTypeArguments(expression, typeArguments);
219
+ }
220
+ createBlock(multiLine, ...statements) {
221
+ if (typeof multiLine === 'boolean') {
222
+ return ts.factory.createBlock(statements, multiLine);
223
+ }
224
+ return ts.factory.createBlock([multiLine, ...statements]);
225
+ }
226
+ createModuleBlock(statements) {
227
+ return ts.factory.createModuleBlock(statements);
228
+ }
229
+ createInterfaceDeclaration(name, members, heritageClauses) {
230
+ return ts.factory.createInterfaceDeclaration([ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], this.createIdentifier(name), undefined, heritageClauses, members);
231
+ }
232
+ createTypeOperatorNode(operator, type) {
233
+ return ts.factory.createTypeOperatorNode(operator, type);
234
+ }
235
+ createTypeQueryNode(exprName) {
236
+ return ts.factory.createTypeQueryNode(exprName);
237
+ }
238
+ createAsExpression(expression, type) {
239
+ return ts.factory.createAsExpression(expression, type);
240
+ }
241
+ createPropertyAccessChain(name, useQuestionDot = true, expression) {
242
+ return ts.factory.createPropertyAccessChain(expression, useQuestionDot ? this.createToken(ts.SyntaxKind.QuestionDotToken) : undefined, this.createIdentifier(name));
243
+ }
244
+ }
245
+ //# sourceMappingURL=NodeFactory.js.map