@fastybird/smart-panel-backend 1.1.0-alpha.2 → 1.1.0-alpha.21

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 (403) hide show
  1. package/dist/app.module.js +8 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/common/filters/conflict-exception.filter.d.ts +6 -0
  4. package/dist/common/filters/conflict-exception.filter.js +59 -0
  5. package/dist/common/filters/conflict-exception.filter.js.map +1 -0
  6. package/dist/common/filters/global-error.filter.js +1 -4
  7. package/dist/common/filters/global-error.filter.js.map +1 -1
  8. package/dist/common/filters/global-filters.d.ts +3 -0
  9. package/dist/common/filters/global-filters.js +22 -0
  10. package/dist/common/filters/global-filters.js.map +1 -0
  11. package/dist/common/filters/unprocessable-entity-exception.filter.d.ts +1 -0
  12. package/dist/common/filters/unprocessable-entity-exception.filter.js +15 -3
  13. package/dist/common/filters/unprocessable-entity-exception.filter.js.map +1 -1
  14. package/dist/common/utils/transform.utils.js +3 -0
  15. package/dist/common/utils/transform.utils.js.map +1 -1
  16. package/dist/dataSource.js +1 -0
  17. package/dist/dataSource.js.map +1 -1
  18. package/dist/main.js +2 -7
  19. package/dist/main.js.map +1 -1
  20. package/dist/migrations/1000000000026-AddHardwareInputCategories.d.ts +7 -0
  21. package/dist/migrations/1000000000026-AddHardwareInputCategories.js +364 -0
  22. package/dist/migrations/1000000000026-AddHardwareInputCategories.js.map +1 -0
  23. package/dist/modules/devices/controllers/channels.controller.d.ts +5 -1
  24. package/dist/modules/devices/controllers/channels.controller.js +34 -2
  25. package/dist/modules/devices/controllers/channels.controller.js.map +1 -1
  26. package/dist/modules/devices/controllers/channels.properties.controller.js +21 -4
  27. package/dist/modules/devices/controllers/channels.properties.controller.js.map +1 -1
  28. package/dist/modules/devices/controllers/devices.channels.controller.d.ts +5 -1
  29. package/dist/modules/devices/controllers/devices.channels.controller.js +38 -2
  30. package/dist/modules/devices/controllers/devices.channels.controller.js.map +1 -1
  31. package/dist/modules/devices/controllers/devices.channels.properties.controller.js +21 -4
  32. package/dist/modules/devices/controllers/devices.channels.properties.controller.js.map +1 -1
  33. package/dist/modules/devices/devices.constants.d.ts +6 -0
  34. package/dist/modules/devices/devices.constants.js +6 -0
  35. package/dist/modules/devices/devices.constants.js.map +1 -1
  36. package/dist/modules/devices/devices.module.js +18 -0
  37. package/dist/modules/devices/devices.module.js.map +1 -1
  38. package/dist/modules/devices/devices.openapi.d.ts +3 -1
  39. package/dist/modules/devices/devices.openapi.js +7 -0
  40. package/dist/modules/devices/devices.openapi.js.map +1 -1
  41. package/dist/modules/devices/dto/channel-input-occurrence.dto.d.ts +10 -0
  42. package/dist/modules/devices/dto/channel-input-occurrence.dto.js +99 -0
  43. package/dist/modules/devices/dto/channel-input-occurrence.dto.js.map +1 -0
  44. package/dist/modules/devices/models/channel-input-capabilities.model.d.ts +20 -0
  45. package/dist/modules/devices/models/channel-input-capabilities.model.js +111 -0
  46. package/dist/modules/devices/models/channel-input-capabilities.model.js.map +1 -0
  47. package/dist/modules/devices/models/channel-input-occurrence.model.d.ts +22 -0
  48. package/dist/modules/devices/models/channel-input-occurrence.model.js +154 -0
  49. package/dist/modules/devices/models/channel-input-occurrence.model.js.map +1 -0
  50. package/dist/modules/devices/services/channel-input-deduplication.service.d.ts +17 -0
  51. package/dist/modules/devices/services/channel-input-deduplication.service.js +88 -0
  52. package/dist/modules/devices/services/channel-input-deduplication.service.js.map +1 -0
  53. package/dist/modules/devices/services/channel-input-occurrences.service.d.ts +21 -0
  54. package/dist/modules/devices/services/channel-input-occurrences.service.js +163 -0
  55. package/dist/modules/devices/services/channel-input-occurrences.service.js.map +1 -0
  56. package/dist/modules/devices/services/channels.properties.service.d.ts +27 -3
  57. package/dist/modules/devices/services/channels.properties.service.js +304 -28
  58. package/dist/modules/devices/services/channels.properties.service.js.map +1 -1
  59. package/dist/modules/devices/services/channels.service.js +42 -38
  60. package/dist/modules/devices/services/channels.service.js.map +1 -1
  61. package/dist/modules/devices/services/command-latency-trace-collector.service.d.ts +101 -0
  62. package/dist/modules/devices/services/command-latency-trace-collector.service.js +451 -0
  63. package/dist/modules/devices/services/command-latency-trace-collector.service.js.map +1 -0
  64. package/dist/modules/devices/services/device-structure-lock.service.d.ts +10 -2
  65. package/dist/modules/devices/services/device-structure-lock.service.js +86 -7
  66. package/dist/modules/devices/services/device-structure-lock.service.js.map +1 -1
  67. package/dist/modules/devices/services/devices.service.js +37 -33
  68. package/dist/modules/devices/services/devices.service.js.map +1 -1
  69. package/dist/modules/devices/services/module-reset.service.d.ts +3 -1
  70. package/dist/modules/devices/services/module-reset.service.js +21 -16
  71. package/dist/modules/devices/services/module-reset.service.js.map +1 -1
  72. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +45 -0
  73. package/dist/modules/devices/services/property-command-dispatch.service.js +227 -0
  74. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -0
  75. package/dist/modules/devices/services/property-command-window.service.d.ts +71 -0
  76. package/dist/modules/devices/services/property-command-window.service.js +204 -0
  77. package/dist/modules/devices/services/property-command-window.service.js.map +1 -0
  78. package/dist/modules/devices/services/property-command.service.d.ts +20 -3
  79. package/dist/modules/devices/services/property-command.service.js +56 -10
  80. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  81. package/dist/modules/devices/services/property-state-coordinator.service.d.ts +4 -0
  82. package/dist/modules/devices/services/property-state-coordinator.service.js +35 -0
  83. package/dist/modules/devices/services/property-state-coordinator.service.js.map +1 -0
  84. package/dist/modules/devices/services/property-value.service.d.ts +1 -0
  85. package/dist/modules/devices/services/property-value.service.js +4 -0
  86. package/dist/modules/devices/services/property-value.service.js.map +1 -1
  87. package/dist/modules/devices/utils/schema.utils.js +1 -1
  88. package/dist/modules/devices/utils/schema.utils.js.map +1 -1
  89. package/dist/modules/platform/services/platform.service.d.ts +13 -4
  90. package/dist/modules/platform/services/platform.service.js +57 -35
  91. package/dist/modules/platform/services/platform.service.js.map +1 -1
  92. package/dist/modules/remote-access/dto/update-config.dto.js +5 -0
  93. package/dist/modules/remote-access/dto/update-config.dto.js.map +1 -1
  94. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js +5 -2
  95. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js.map +1 -1
  96. package/dist/modules/system/scripts/update-worker.sh +983 -61
  97. package/dist/modules/system/services/privileged-worker.service.d.ts +10 -0
  98. package/dist/modules/system/services/privileged-worker.service.js +137 -11
  99. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  100. package/dist/modules/system/services/update-executor.service.d.ts +20 -2
  101. package/dist/modules/system/services/update-executor.service.js +257 -25
  102. package/dist/modules/system/services/update-executor.service.js.map +1 -1
  103. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +4 -1
  104. package/dist/modules/websocket/gateway/websocket.gateway.js +28 -5
  105. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  106. package/dist/modules/websocket/services/command-acknowledgement-trace.service.d.ts +143 -0
  107. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js +523 -0
  108. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js.map +1 -0
  109. package/dist/modules/websocket/websocket.module.js +9 -1
  110. package/dist/modules/websocket/websocket.module.js.map +1 -1
  111. package/dist/plugins/devices-home-assistant/devices-home-assistant.openapi.d.ts +2 -2
  112. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.d.ts +6 -1
  113. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js +16 -1
  114. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js.map +1 -1
  115. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.d.ts +1 -0
  116. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js +11 -0
  117. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js.map +1 -1
  118. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.d.ts +19 -0
  119. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js +51 -0
  120. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js.map +1 -0
  121. package/dist/plugins/devices-home-assistant/mappings/definitions/entity-mappings.yaml +56 -7
  122. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.d.ts +1 -0
  123. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js +11 -0
  124. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js.map +1 -1
  125. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js +17 -0
  126. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js.map +1 -1
  127. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.d.ts +27 -0
  128. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js +271 -0
  129. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js.map +1 -0
  130. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.d.ts +2 -2
  131. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js +33 -14
  132. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js.map +1 -1
  133. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js +24 -4
  134. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js.map +1 -1
  135. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.d.ts +4 -1
  136. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +84 -5
  137. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  138. package/dist/plugins/devices-home-assistant/services/wizard.service.js +1 -0
  139. package/dist/plugins/devices-home-assistant/services/wizard.service.js.map +1 -1
  140. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.d.ts +2 -0
  141. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js +50 -0
  142. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js.map +1 -0
  143. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.d.ts +2 -0
  144. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +28 -1
  145. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  146. package/dist/plugins/devices-homekit/mappers/base.mapper.js +27 -4
  147. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  148. package/dist/plugins/devices-homekit/mappers/button.mapper.d.ts +15 -0
  149. package/dist/plugins/devices-homekit/mappers/button.mapper.js +143 -0
  150. package/dist/plugins/devices-homekit/mappers/button.mapper.js.map +1 -0
  151. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +16 -0
  152. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.d.ts +7 -0
  153. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +84 -73
  154. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  155. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.d.ts +5 -1
  156. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js +42 -0
  157. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js.map +1 -1
  158. package/dist/plugins/devices-homey/mappings/definitions/channels.yaml +50 -0
  159. package/dist/plugins/devices-homey/mappings/definitions/devices.yaml +18 -0
  160. package/dist/plugins/devices-homey/mappings/definitions/properties.yaml +55 -0
  161. package/dist/plugins/devices-homey/mappings/device-support.js +10 -0
  162. package/dist/plugins/devices-homey/mappings/device-support.js.map +1 -1
  163. package/dist/plugins/devices-homey/mappings/mapping-loader.service.d.ts +1 -0
  164. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js +66 -8
  165. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js.map +1 -1
  166. package/dist/plugins/devices-homey/models/inventory.model.d.ts +2 -1
  167. package/dist/plugins/devices-homey/models/inventory.model.js +1 -0
  168. package/dist/plugins/devices-homey/models/inventory.model.js.map +1 -1
  169. package/dist/plugins/devices-homey/models/mapping-preview.model.d.ts +1 -0
  170. package/dist/plugins/devices-homey/models/mapping-preview.model.js +1 -0
  171. package/dist/plugins/devices-homey/models/mapping-preview.model.js.map +1 -1
  172. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js +7 -0
  173. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js.map +1 -1
  174. package/dist/plugins/devices-homey/services/homey-synchronizer.service.d.ts +3 -1
  175. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js +37 -6
  176. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js.map +1 -1
  177. package/dist/plugins/devices-reterminal/services/reterminal-button.service.d.ts +7 -3
  178. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js +63 -17
  179. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js.map +1 -1
  180. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +38 -3
  181. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +840 -134
  182. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  183. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +15 -1
  184. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +117 -10
  185. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  186. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +11 -13
  187. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  188. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js +2 -0
  189. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js.map +1 -1
  190. package/dist/plugins/devices-shelly-ng/mappings/definitions/inputs.yaml +80 -0
  191. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +11 -1
  192. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  193. package/dist/plugins/devices-shelly-ng/mappings/mapping.types.d.ts +6 -3
  194. package/dist/plugins/devices-shelly-ng/mappings/schema/mapping-schema.json +5 -0
  195. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +130 -7
  196. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  197. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.d.ts +48 -0
  198. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js +457 -0
  199. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js.map +1 -0
  200. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +12 -2
  201. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +86 -28
  202. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  203. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js +3 -0
  204. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js.map +1 -1
  205. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +1 -1
  206. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +18 -13
  207. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  208. package/dist/plugins/devices-shelly-ng/utils/transform.utils.d.ts +2 -0
  209. package/dist/plugins/devices-shelly-ng/utils/transform.utils.js +14 -1
  210. package/dist/plugins/devices-shelly-ng/utils/transform.utils.js.map +1 -1
  211. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.d.ts +2 -0
  212. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js +66 -4
  213. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js.map +1 -1
  214. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js +2 -0
  215. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js.map +1 -1
  216. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js +7 -0
  217. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js.map +1 -1
  218. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.d.ts +3 -1
  219. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js +20 -2
  220. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js.map +1 -1
  221. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.d.ts +16 -0
  222. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js +107 -0
  223. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js.map +1 -0
  224. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.d.ts +7 -1
  225. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js +98 -3
  226. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js.map +1 -1
  227. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.d.ts +17 -0
  228. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js +205 -0
  229. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js.map +1 -0
  230. package/dist/plugins/devices-third-party/devices-third-party.openapi.d.ts +1 -1
  231. package/dist/plugins/devices-third-party/devices-third-party.plugin.js +2 -1
  232. package/dist/plugins/devices-third-party/devices-third-party.plugin.js.map +1 -1
  233. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.d.ts +5 -0
  234. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js +50 -0
  235. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js.map +1 -0
  236. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.d.ts +8 -0
  237. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js +81 -0
  238. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js.map +1 -0
  239. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js +19 -4
  240. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js.map +1 -1
  241. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.d.ts +2 -0
  242. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js +57 -0
  243. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js.map +1 -1
  244. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.d.ts +3 -0
  245. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js +41 -5
  246. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js.map +1 -1
  247. package/dist/plugins/devices-zigbee2mqtt/interfaces/zigbee2mqtt.interface.d.ts +7 -1
  248. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js +16 -15
  249. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js.map +1 -1
  250. package/dist/plugins/devices-zigbee2mqtt/mappings/definitions/remotes.yaml +505 -74
  251. package/dist/plugins/devices-zigbee2mqtt/mappings/schema/mapping-schema.json +3 -3
  252. package/dist/plugins/devices-zigbee2mqtt/mappings/transformers/transformer.types.d.ts +1 -1
  253. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +8 -2
  254. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js +6 -5
  255. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -1
  256. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js +18 -11
  257. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js.map +1 -1
  258. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.d.ts +9 -3
  259. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js +166 -3
  260. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js.map +1 -1
  261. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +5 -2
  262. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  263. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +1 -0
  264. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +44 -4
  265. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  266. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +17 -0
  267. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +147 -0
  268. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -0
  269. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +15 -0
  270. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +98 -0
  271. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -0
  272. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.d.ts +9 -0
  273. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js +94 -0
  274. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js.map +1 -0
  275. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.d.ts +9 -0
  276. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js +92 -0
  277. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js.map +1 -0
  278. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.d.ts +7 -0
  279. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js +48 -0
  280. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js.map +1 -0
  281. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +42 -0
  282. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +352 -0
  283. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -0
  284. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.d.ts +24 -0
  285. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js +27 -0
  286. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js.map +1 -0
  287. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.d.ts +8 -0
  288. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js +19 -0
  289. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js.map +1 -0
  290. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.d.ts +4 -0
  291. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js +20 -0
  292. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js.map +1 -0
  293. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.d.ts +21 -0
  294. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js +135 -0
  295. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js.map +1 -0
  296. package/dist/plugins/remote-access-cloudflare-tunnel/scripts/cloudflared-setup.sh +185 -0
  297. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +82 -0
  298. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +507 -0
  299. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -0
  300. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +10 -0
  301. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +37 -0
  302. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -0
  303. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.d.ts +38 -0
  304. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js +147 -0
  305. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js.map +1 -0
  306. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +15 -0
  307. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +67 -0
  308. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -0
  309. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +8 -0
  310. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +46 -0
  311. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -0
  312. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.d.ts +27 -0
  313. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js +139 -0
  314. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js.map +1 -0
  315. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +1 -0
  316. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +26 -10
  317. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  318. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -1
  319. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +28 -3
  320. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  321. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +19 -0
  322. package/dist/plugins/remote-access-tailscale/models/status.model.js +158 -1
  323. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  324. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +3 -0
  325. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +4 -1
  326. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  327. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +13 -0
  328. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +27 -0
  329. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -0
  330. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  331. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +2 -0
  332. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  333. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +1 -1
  334. package/dist/plugins/remote-access-tailscale/scripts/tailscale-setup.sh +61 -0
  335. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +9 -0
  336. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +12 -0
  337. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  338. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +1 -0
  339. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +27 -2
  340. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  341. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +31 -1
  342. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +316 -30
  343. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  344. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +8 -3
  345. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +39 -12
  346. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  347. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +14 -5
  348. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +51 -16
  349. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  350. package/dist/plugins/scenes-local/platforms/local-scene.platform.d.ts +3 -1
  351. package/dist/plugins/scenes-local/platforms/local-scene.platform.js +12 -7
  352. package/dist/plugins/scenes-local/platforms/local-scene.platform.js.map +1 -1
  353. package/dist/plugins/simulator/controllers/simulator.controller.d.ts +8 -2
  354. package/dist/plugins/simulator/controllers/simulator.controller.js +102 -2
  355. package/dist/plugins/simulator/controllers/simulator.controller.js.map +1 -1
  356. package/dist/plugins/simulator/dto/simulate-occurrence.dto.d.ts +12 -0
  357. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js +122 -0
  358. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js.map +1 -0
  359. package/dist/plugins/simulator/models/simulator-response.model.d.ts +12 -0
  360. package/dist/plugins/simulator/models/simulator-response.model.js +84 -1
  361. package/dist/plugins/simulator/models/simulator-response.model.js.map +1 -1
  362. package/dist/plugins/simulator/scenarios/definitions/small-apartment.yaml +78 -0
  363. package/dist/plugins/simulator/services/scenario-executor.service.js +3 -1
  364. package/dist/plugins/simulator/services/scenario-executor.service.js.map +1 -1
  365. package/dist/plugins/simulator/services/simulation.service.js +10 -1
  366. package/dist/plugins/simulator/services/simulation.service.js.map +1 -1
  367. package/dist/plugins/simulator/simulator.openapi.d.ts +3 -2
  368. package/dist/plugins/simulator/simulator.openapi.js +5 -0
  369. package/dist/plugins/simulator/simulator.openapi.js.map +1 -1
  370. package/dist/plugins/simulator/simulators/device-simulator.interface.d.ts +2 -0
  371. package/dist/plugins/simulator/simulators/device-simulator.interface.js +83 -0
  372. package/dist/plugins/simulator/simulators/device-simulator.interface.js.map +1 -1
  373. package/dist/plugins/simulator/simulators/index.d.ts +1 -0
  374. package/dist/plugins/simulator/simulators/index.js +1 -0
  375. package/dist/plugins/simulator/simulators/index.js.map +1 -1
  376. package/dist/plugins/simulator/simulators/input-controller.simulator.d.ts +10 -0
  377. package/dist/plugins/simulator/simulators/input-controller.simulator.js +57 -0
  378. package/dist/plugins/simulator/simulators/input-controller.simulator.js.map +1 -0
  379. package/dist/plugins/simulator/simulators/lighting.simulator.js +1 -0
  380. package/dist/plugins/simulator/simulators/lighting.simulator.js.map +1 -1
  381. package/dist/plugins/spaces-home-control/services/climate-intent.service.d.ts +3 -1
  382. package/dist/plugins/spaces-home-control/services/climate-intent.service.js +6 -3
  383. package/dist/plugins/spaces-home-control/services/climate-intent.service.js.map +1 -1
  384. package/dist/plugins/spaces-home-control/services/covers-intent.service.d.ts +3 -1
  385. package/dist/plugins/spaces-home-control/services/covers-intent.service.js +6 -3
  386. package/dist/plugins/spaces-home-control/services/covers-intent.service.js.map +1 -1
  387. package/dist/plugins/spaces-home-control/services/lighting-intent.service.d.ts +3 -1
  388. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js +7 -4
  389. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js.map +1 -1
  390. package/dist/plugins/spaces-home-control/services/space-media-activity.service.d.ts +3 -1
  391. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js +11 -5
  392. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js.map +1 -1
  393. package/dist/plugins/spaces-home-control/services/space-undo-history.service.d.ts +3 -1
  394. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js +8 -5
  395. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js.map +1 -1
  396. package/dist/spec/channels.d.ts +51 -1
  397. package/dist/spec/channels.js +64 -1
  398. package/dist/spec/channels.js.map +1 -1
  399. package/dist/spec/devices.d.ts +155 -2
  400. package/dist/spec/devices.js +161 -2
  401. package/dist/spec/devices.js.map +1 -1
  402. package/dist/tsconfig.build.tsbuildinfo +1 -1
  403. package/package.json +2 -2
@@ -109,8 +109,11 @@ let Z2mMqttClientAdapterService = class Z2mMqttClientAdapterService extends base
109
109
  this.client.on('offline', () => {
110
110
  this.logger.warn('MQTT client is offline');
111
111
  });
112
- this.client.on('message', (topic, payload) => {
113
- this.handleMessage(topic, payload.toString());
112
+ this.client.on('message', (topic, payload, packet) => {
113
+ const isRetained = packet?.retain === true;
114
+ const isDup = packet?.dup === true;
115
+ const packetId = packet?.messageId;
116
+ this.handleMessage(topic, payload.toString(), false, isRetained, { isDup, packetId });
114
117
  });
115
118
  }
116
119
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-client-adapter.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-client-adapter.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export declare class Zigbee2mqttService extends BaseManagedExtensionService {
29
29
  private pendingDevices;
30
30
  private isSyncing;
31
31
  private transformersRestored;
32
+ private pendingActionStates;
32
33
  private activeAdapter;
33
34
  private readonly deviceJoinedSubscribers;
34
35
  private readonly pendingJoinedIeeeAddresses;
@@ -41,6 +41,7 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
41
41
  this.pendingDevices = null;
42
42
  this.isSyncing = false;
43
43
  this.transformersRestored = false;
44
+ this.pendingActionStates = [];
44
45
  this.deviceJoinedSubscribers = new Set();
45
46
  this.pendingJoinedIeeeAddresses = new Set();
46
47
  this.activeAdapter = this.mqttAdapter;
@@ -226,6 +227,7 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
226
227
  async doStop() {
227
228
  this.state = 'stopping';
228
229
  this.transformersRestored = false;
230
+ this.pendingActionStates = [];
229
231
  this.logger.log('Stopping Zigbee2MQTT plugin service');
230
232
  try {
231
233
  await this.activeAdapter.disconnect();
@@ -250,7 +252,7 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
250
252
  onBridgeOnline: () => this.handleBridgeOnline(),
251
253
  onBridgeOffline: () => this.handleBridgeOffline(),
252
254
  onDevicesReceived: (devices) => this.handleDevicesReceived(devices),
253
- onDeviceStateChanged: (friendlyName, state) => this.handleDeviceStateChanged(friendlyName, state),
255
+ onDeviceStateChanged: (friendlyName, state, metadata) => this.handleDeviceStateChanged(friendlyName, state, metadata),
254
256
  onDeviceAvailabilityChanged: (friendlyName, available) => this.handleDeviceAvailabilityChanged(friendlyName, available),
255
257
  onDeviceJoined: (ieeeAddress, friendlyName) => this.handleDeviceJoined(ieeeAddress, friendlyName),
256
258
  onDeviceLeft: (ieeeAddress, friendlyName) => this.handleDeviceLeft(ieeeAddress, friendlyName),
@@ -309,6 +311,7 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
309
311
  this.pendingDevices = null;
310
312
  this.isSyncing = false;
311
313
  this.transformersRestored = false;
314
+ this.pendingActionStates = [];
312
315
  this.pendingJoinedIeeeAddresses.clear();
313
316
  try {
314
317
  const devices = await this.devicesService.findAll(devices_zigbee2mqtt_constants_1.DEVICES_ZIGBEE2MQTT_TYPE);
@@ -335,6 +338,26 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
335
338
  const registeredDevices = this.activeAdapter.getRegisteredDevices();
336
339
  await this.deviceMapper.restoreTransformersForExistingDevices(registeredDevices);
337
340
  this.transformersRestored = true;
341
+ if (this.pendingActionStates.length > 0) {
342
+ const now = Date.now();
343
+ const pending = this.pendingActionStates.filter((item) => now - item.queuedAt <= devices_zigbee2mqtt_constants_1.MAX_PENDING_ACTION_AGE_MS);
344
+ this.pendingActionStates = [];
345
+ for (const item of pending) {
346
+ try {
347
+ if (item.metadata !== undefined) {
348
+ await this.deviceMapper.updateDeviceState(item.friendlyName, item.state, item.metadata);
349
+ }
350
+ else {
351
+ await this.deviceMapper.updateDeviceState(item.friendlyName, item.state);
352
+ }
353
+ }
354
+ catch (error) {
355
+ this.logger.error(`Failed to replay pending action state for ${item.friendlyName}`, {
356
+ message: error instanceof Error ? error.message : String(error),
357
+ });
358
+ }
359
+ }
360
+ }
338
361
  if (this.pendingJoinedIeeeAddresses.size > 0) {
339
362
  const registryByIeee = new Map(registeredDevices.map((d) => [d.ieeeAddress, d]));
340
363
  for (const ieeeAddress of [...this.pendingJoinedIeeeAddresses]) {
@@ -350,7 +373,7 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
350
373
  const cachedState = this.activeAdapter.getCachedState(device.identifier);
351
374
  if (Object.keys(cachedState).length > 0) {
352
375
  try {
353
- await this.deviceMapper.updateDeviceState(device.identifier, cachedState);
376
+ await this.deviceMapper.updateDeviceState(device.identifier, cachedState, { isCached: true });
354
377
  }
355
378
  catch (error) {
356
379
  this.logger.debug(`Failed to process cached state for ${device.identifier}: ${error}`);
@@ -384,14 +407,31 @@ let Zigbee2mqttService = class Zigbee2mqttService extends base_managed_extension
384
407
  this.isSyncing = false;
385
408
  }
386
409
  }
387
- async handleDeviceStateChanged(friendlyName, state) {
410
+ async handleDeviceStateChanged(friendlyName, state, metadata) {
388
411
  if (!this.transformersRestored) {
412
+ const hasAction = Object.keys(state).some((key) => key === 'action' || key === 'click' || key.startsWith('action_'));
413
+ if (hasAction && !metadata?.isRetained && !metadata?.isCached) {
414
+ if (this.pendingActionStates.length >= devices_zigbee2mqtt_constants_1.MAX_PENDING_ACTION_STATES) {
415
+ this.pendingActionStates.shift();
416
+ }
417
+ this.pendingActionStates.push({
418
+ friendlyName,
419
+ state,
420
+ metadata,
421
+ queuedAt: Date.now(),
422
+ });
423
+ }
389
424
  this.logger.debug(`Skipping state update for ${friendlyName} - transformers not yet restored`);
390
425
  return;
391
426
  }
392
427
  this.logger.debug(`Device state changed: ${friendlyName}, state keys: ${Object.keys(state).join(', ')}`);
393
428
  try {
394
- await this.deviceMapper.updateDeviceState(friendlyName, state);
429
+ if (metadata !== undefined) {
430
+ await this.deviceMapper.updateDeviceState(friendlyName, state, metadata);
431
+ }
432
+ else {
433
+ await this.deviceMapper.updateDeviceState(friendlyName, state);
434
+ }
395
435
  }
396
436
  catch (error) {
397
437
  this.logger.error(`Failed to update device state: ${friendlyName}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"zigbee2mqtt.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zigbee2mqtt.service.js","sourceRoot":"","sources":["../../../../src/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,mDAAuF;AACvF,oFAAgF;AAChF,kFAA6E;AAC7E,+GAA0G;AAC1G,uFAAmF;AACnF,wHAAkH;AAKlH,0HAAoH;AACpH,oFAK0C;AAY1C,mEAAiE;AACjE,+EAA4E;AAC5E,2EAAwE;AASjE,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,4DAA2B;IA0ClE,YACkB,aAA4B,EAC5B,WAAwC,EACxC,SAAoC,EACpC,YAAoC,EACpC,cAA8B,EAC9B,yBAAoD,EACpD,qBAAmD;QAEpE,KAAK,EAAE,CAAC;QARS,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAA6B;QACxC,cAAS,GAAT,SAAS,CAA2B;QACpC,iBAAY,GAAZ,YAAY,CAAwB;QACpC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,0BAAqB,GAArB,qBAAqB,CAA8B;QAhDpD,WAAM,GAA2B,IAAA,8BAAqB,EACtE,+DAA+B,EAC/B,oBAAoB,CACpB,CAAC;QAEO,UAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,+DAA+B,EAAW,CAAC;QAC3E,cAAS,GAAG,WAAW,CAAC;QAEzB,iBAAY,GAAkC,IAAI,CAAC;QACnD,sBAAiB,GAAG,KAAK,CAAC;QAC1B,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAAuB,IAAI,CAAC;QAC1C,cAAS,GAAG,KAAK,CAAC;QAClB,yBAAoB,GAAG,KAAK,CAAC;QAC7B,wBAAmB,GAKtB,EAAE,CAAC;QAOS,4BAAuB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAa3E,+BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;QAc/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAMD,gBAAgB;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,KAAK;QACV,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC9B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,KAAK,SAAS;oBACb,OAAO;gBACR,KAAK,UAAU;oBACd,OAAO;gBACR,KAAK,UAAU;oBACd,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAEhC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrB,OAAO;gBACR,KAAK,SAAS,CAAC;gBACf,KAAK,OAAO;oBAEX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrB,OAAO;YACT,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,IAAI;QACT,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC9B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,KAAK,SAAS;oBACb,OAAO;gBACR,KAAK,UAAU;oBACd,OAAO;gBACR,KAAK,UAAU;oBACd,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE,CAAC;wBACnC,OAAO;oBACR,CAAC;gBAEF,KAAK,SAAS;oBACb,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO;gBACR,KAAK,OAAO;oBACX,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO;YACT,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAKD,eAAe;QAEd,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAyB,+DAA+B,CAAC,CAAC;YAG9G,IAAI,SAAS,CAAC,cAAc,KAAK,SAAS,CAAC,cAAc,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBAC7D,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,SAAS,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;gBAEzC,MAAM,WAAW,GAChB,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI;oBAC3C,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI;oBAC3C,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ;oBACnD,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ;oBACnD,SAAS,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,SAAS;oBACrD,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAGrD,MAAM,UAAU,GACf,SAAS,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,GAAG,CAAC,OAAO;oBAC/C,SAAS,CAAC,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,GAAG,CAAC,kBAAkB;oBACrE,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE;oBACrC,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI;oBACzC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAEzC,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;oBACzD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,CAAC;YACF,CAAC;iBAAM,CAAC;gBAEP,MAAM,SAAS,GACd,SAAS,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC,IAAI;oBACvC,SAAS,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC,IAAI;oBACvC,SAAS,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC,SAAS;oBACjD,SAAS,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC,MAAM;oBAC3C,SAAS,CAAC,EAAE,CAAC,cAAc,KAAK,SAAS,CAAC,EAAE,CAAC,cAAc;oBAC3D,SAAS,CAAC,EAAE,CAAC,iBAAiB,KAAK,SAAS,CAAC,EAAE,CAAC,iBAAiB,CAAC;gBAEnE,IAAI,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;oBAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,CAAC;YACF,CAAC;YAGD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QAGD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAKD,KAAK,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAElH,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAKD,cAAc;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAKD,oBAAoB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;IAClD,CAAC;IAMD,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IASD,KAAK,CAAC,aAAa,CAAC,OAAe;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAWD,uBAAuB,CAAC,EAAyC;QAChE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC;IACH,CAAC;IAOO,kBAAkB,CAAC,MAA2B;QACrD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACJ,EAAE,CAAC,MAAM,CAAC,CAAC;YACZ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;oBAClD,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBACnD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAOD,cAAc,CAAC,YAAoB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAKO,KAAK,CAAC,UAAU;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAA0B,wDAAwB,CAAC,CAAC;QAErG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;gBAClE,KAAK,EAAE,mCAAe,CAAC,OAAO;aAC9B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAKO,KAAK,CAAC,OAAO;QACpB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEvD,IAAI,CAAC;YAEJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;YAC3C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAGxF,IAAI,IAAI,CAAC,aAAa,KAAK,eAAe,EAAE,CAAC;gBAC5C,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC;YAGD,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBAC7D,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACP,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE;gBAC/D,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED,SAAS;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IACtF,CAAC;IAKO,KAAK,CAAC,MAAM;QACnB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEvD,IAAI,CAAC;YAEJ,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;YAGtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAA0B,wDAAwB,CAAC,CAAC;YACrG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;oBAClE,KAAK,EAAE,mCAAe,CAAC,OAAO;iBAC9B,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;gBAC9D,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACxB,CAAC;IACF,CAAC;IAKO,iBAAiB,CAAC,OAA6B;QACtD,OAAO,CAAC,YAAY,CAAC;YACpB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/C,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACjD,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YACnE,oBAAoB,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CACvD,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC;YAC7D,2BAA2B,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CACxD,IAAI,CAAC,+BAA+B,CAAC,YAAY,EAAE,SAAS,CAAC;YAC9D,cAAc,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC;YACjG,YAAY,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC;SAC7F,CAAC,CAAC;IACJ,CAAC;IAKO,eAAe;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO;YACN,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;YACtB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;YACtB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS;YAC3C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS;YAC3C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;YAChC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS;YAC3C,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;YACtC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;YAChC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;YAC1C,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB;YAChD,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;gBACtB,CAAC,CAAC;oBACA,OAAO,EAAE,IAAI;oBACb,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB;oBACjD,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS;oBAC9B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS;oBAClC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS;iBAChC;gBACF,CAAC,CAAC,SAAS;SACZ,CAAC;IACH,CAAC;IAKO,aAAa;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO;YACN,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI;YACpB,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI;YACpB,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS;YAC9B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM;YACxB,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc;YACxC,iBAAiB,EAAE,MAAM,CAAC,EAAE,CAAC,iBAAiB;SAC9C,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,kBAAkB;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAIzB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAEhD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACF,CAAC;IAKO,KAAK,CAAC,mBAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;QAGxC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAA0B,wDAAwB,CAAC,CAAC;YACrG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;oBAClE,KAAK,EAAE,mCAAe,CAAC,OAAO;iBAC9B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE;gBACrE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAKO,KAAK,CAAC,qBAAqB,CAAC,OAAoB;QACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAElE,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QAInD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC/D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,OAAO;QACR,CAAC;QAGD,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QACpE,MAAM,IAAI,CAAC,YAAY,CAAC,qCAAqC,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAGjC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,yDAAyB,CAAC,CAAC;YAC5G,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACJ,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACjC,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzF,CAAC;yBAAM,CAAC;wBACP,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1E,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,YAAY,EAAE,EAAE;wBACnF,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC/D,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAUD,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,KAAK,MAAM,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBAChE,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACpD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACrC,CAAC;YAGF,CAAC;QACF,CAAC;QAGD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAA0B,wDAAwB,CAAC,CAAC;QAC7G,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;gBACxF,CAAC;YACF,CAAC;QACF,CAAC;QAGD,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1C,OAAO;QACR,CAAC;QAGD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACR,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;IAKO,KAAK,CAAC,WAAW,CAAC,OAAoB,EAAE,iBAA0B;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC;YACJ,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;gBACjE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,CAAC,aAAa,EAAE,EAAE;wBACpE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC/D,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAED,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAChC,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,CAAC;IACF,CAAC;IAKO,KAAK,CAAC,wBAAwB,CACrC,YAAoB,EACpB,KAA8B,EAC9B,QAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACxC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CACzE,CAAC;YACF,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBAC/D,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,yDAAyB,EAAE,CAAC;oBAClE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBAClC,CAAC;gBACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAC7B,YAAY;oBACZ,KAAK;oBACL,QAAQ;oBACR,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;iBACpB,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,YAAY,kCAAkC,CAAC,CAAC;YAC/F,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,YAAY,iBAAiB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzG,IAAI,CAAC;YACJ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,YAAY,EAAE,EAAE;gBACnE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAKO,KAAK,CAAC,+BAA+B,CAAC,YAAoB,EAAE,SAAkB;QACrF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,YAAY,OAAO,SAAS,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,YAAY,EAAE,EAAE;gBAC1E,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAYO,kBAAkB,CAAC,WAAmB,EAAE,YAAoB;QACnE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,YAAY,KAAK,WAAW,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAAC,YAAoB,EAAE,YAAoB;QACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;QAEhD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,YAAY,EAAE,EAAE;gBAClE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAKD,IAAY,MAAM;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAyB,+DAA+B,CAAC,CAAC;QACjH,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAKO,KAAK,CAAC,SAAS,CAAC,GAAG,MAAsB;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;YAC1D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,QAAQ,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnG,CAAC;IACF,CAAC;CACD,CAAA;AAlsBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCA4CqB,8BAAa;QACf,yDAA2B;QAC7B,qDAAyB;QACtB,8CAAsB;QACpB,gCAAc;QACH,uDAAyB;QAC7B,8DAA4B;GAjDzD,kBAAkB,CAksB9B"}
@@ -0,0 +1,17 @@
1
+ import { ConfigService } from '../../../modules/config/services/config.service';
2
+ import { RemoteAccessCloudflareTunnelPluginInstallResponseModel } from '../models/install.model';
3
+ import { RemoteAccessCloudflareTunnelPluginStatusResponseModel } from '../models/status.model';
4
+ import { CloudflareTunnelManagedService } from '../services/cloudflare-tunnel-managed.service';
5
+ import { CloudflareTunnelProviderService } from '../services/cloudflare-tunnel-provider.service';
6
+ import { CloudflareTunnelSetupService } from '../services/cloudflare-tunnel-setup.service';
7
+ export declare class SetupController {
8
+ private readonly setupService;
9
+ private readonly providerService;
10
+ private readonly tunnelManagedService;
11
+ private readonly configService;
12
+ private readonly logger;
13
+ constructor(setupService: CloudflareTunnelSetupService, providerService: CloudflareTunnelProviderService, tunnelManagedService: CloudflareTunnelManagedService, configService: ConfigService);
14
+ install(): Promise<RemoteAccessCloudflareTunnelPluginInstallResponseModel>;
15
+ reset(): Promise<RemoteAccessCloudflareTunnelPluginStatusResponseModel>;
16
+ private buildStatusResponse;
17
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SetupController = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const logger_1 = require("../../../common/logger");
16
+ const transform_utils_1 = require("../../../common/utils/transform.utils");
17
+ const config_service_1 = require("../../../modules/config/services/config.service");
18
+ const provider_model_1 = require("../../../modules/remote-access/models/provider.model");
19
+ const api_documentation_decorator_1 = require("../../../modules/swagger/decorators/api-documentation.decorator");
20
+ const system_exceptions_1 = require("../../../modules/system/system.exceptions");
21
+ const roles_guard_1 = require("../../../modules/users/guards/roles.guard");
22
+ const users_constants_1 = require("../../../modules/users/users.constants");
23
+ const update_config_dto_1 = require("../dto/update-config.dto");
24
+ const install_model_1 = require("../models/install.model");
25
+ const status_model_1 = require("../models/status.model");
26
+ const remote_access_cloudflare_tunnel_constants_1 = require("../remote-access-cloudflare-tunnel.constants");
27
+ const cloudflare_tunnel_managed_service_1 = require("../services/cloudflare-tunnel-managed.service");
28
+ const cloudflare_tunnel_provider_service_1 = require("../services/cloudflare-tunnel-provider.service");
29
+ const cloudflare_tunnel_setup_service_1 = require("../services/cloudflare-tunnel-setup.service");
30
+ let SetupController = class SetupController {
31
+ constructor(setupService, providerService, tunnelManagedService, configService) {
32
+ this.setupService = setupService;
33
+ this.providerService = providerService;
34
+ this.tunnelManagedService = tunnelManagedService;
35
+ this.configService = configService;
36
+ this.logger = (0, logger_1.createExtensionLogger)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'SetupController');
37
+ }
38
+ async install() {
39
+ this.logger.debug('Cloudflare Tunnel install requested');
40
+ try {
41
+ const { id } = await this.setupService.install();
42
+ const data = new install_model_1.RemoteAccessCloudflareTunnelPluginInstallModel();
43
+ data.job = id;
44
+ const response = new install_model_1.RemoteAccessCloudflareTunnelPluginInstallResponseModel();
45
+ response.data = data;
46
+ return response;
47
+ }
48
+ catch (error) {
49
+ if (error instanceof system_exceptions_1.PrivilegedWorkerUnavailableException) {
50
+ throw new common_1.ConflictException(error.message);
51
+ }
52
+ if (error instanceof cloudflare_tunnel_setup_service_1.CloudflareTunnelSetupUnavailableException) {
53
+ throw new common_1.UnprocessableEntityException({ code: error.code, message: error.message });
54
+ }
55
+ const err = error;
56
+ this.logger.error(`Failed to start Cloudflare Tunnel setup: ${err.message}`);
57
+ throw new common_1.InternalServerErrorException('Failed to start Cloudflare Tunnel setup');
58
+ }
59
+ }
60
+ async reset() {
61
+ this.logger.debug('Cloudflare Tunnel reset requested');
62
+ try {
63
+ await this.tunnelManagedService.stop();
64
+ }
65
+ catch (error) {
66
+ this.logger.warn('Failed to stop the Cloudflare Tunnel process while resetting', {
67
+ message: error instanceof Error ? error.message : String(error),
68
+ });
69
+ }
70
+ try {
71
+ const plain = {
72
+ type: remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME,
73
+ tunnel_token: null,
74
+ public_hostname: null,
75
+ };
76
+ const dto = (0, transform_utils_1.toInstance)(update_config_dto_1.UpdateRemoteAccessCloudflareTunnelPluginConfigDto, plain, {
77
+ excludeExtraneousValues: false,
78
+ });
79
+ await this.configService.updatePluginConfig(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, dto, plain);
80
+ }
81
+ catch (error) {
82
+ const err = error;
83
+ this.logger.error(`Failed to clear the Cloudflare Tunnel configuration during reset: ${err.message}`);
84
+ throw new common_1.InternalServerErrorException('Failed to reset the Cloudflare Tunnel configuration');
85
+ }
86
+ return this.buildStatusResponse();
87
+ }
88
+ async buildStatusResponse() {
89
+ const [status, requirements] = await Promise.all([
90
+ this.providerService.getStatus(),
91
+ this.tunnelManagedService.refreshRequirements(),
92
+ ]);
93
+ const data = new status_model_1.RemoteAccessCloudflareTunnelPluginStatusModel();
94
+ data.type = status.type;
95
+ data.state = status.state;
96
+ data.endpoints = (0, transform_utils_1.toInstance)(provider_model_1.RemoteAccessEndpointModel, status.endpoints);
97
+ data.message = status.message ?? null;
98
+ data.details = status.details;
99
+ data.proxyAddresses = status.proxyAddresses;
100
+ data.advisories = (0, transform_utils_1.toInstance)(provider_model_1.RemoteAccessAdvisoryModel, status.advisories);
101
+ data.updatedAt = status.updatedAt;
102
+ data.requirements = (0, transform_utils_1.toInstance)(status_model_1.RemoteAccessCloudflareTunnelPluginRequirementModel, requirements);
103
+ data.setup = null;
104
+ const response = new status_model_1.RemoteAccessCloudflareTunnelPluginStatusResponseModel();
105
+ response.data = data;
106
+ return response;
107
+ }
108
+ };
109
+ exports.SetupController = SetupController;
110
+ __decorate([
111
+ (0, swagger_1.ApiOperation)({
112
+ tags: [remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_API_TAG_NAME],
113
+ summary: 'Install cloudflared',
114
+ description: 'Starts the privileged setup job: installs the cloudflared package if missing. Progress is streamed as RemoteAccessModule.Setup.Progress events.',
115
+ operationId: 'create-remote-access-cloudflare-tunnel-plugin-install',
116
+ }),
117
+ (0, api_documentation_decorator_1.ApiAcceptedSuccessResponse)(install_model_1.RemoteAccessCloudflareTunnelPluginInstallResponseModel, 'Cloudflare Tunnel setup job started'),
118
+ (0, common_1.Post)('install'),
119
+ (0, common_1.HttpCode)(common_1.HttpStatus.ACCEPTED),
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", []),
122
+ __metadata("design:returntype", Promise)
123
+ ], SetupController.prototype, "install", null);
124
+ __decorate([
125
+ (0, swagger_1.ApiOperation)({
126
+ tags: [remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_API_TAG_NAME],
127
+ summary: 'Reset the Cloudflare Tunnel',
128
+ description: 'Stops the tunnel service and clears the stored tunnel token and public hostname, returning the resulting status.',
129
+ operationId: 'create-remote-access-cloudflare-tunnel-plugin-reset',
130
+ }),
131
+ (0, api_documentation_decorator_1.ApiSuccessResponse)(status_model_1.RemoteAccessCloudflareTunnelPluginStatusResponseModel, 'Cloudflare Tunnel status after reset'),
132
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
133
+ (0, common_1.Post)('reset'),
134
+ __metadata("design:type", Function),
135
+ __metadata("design:paramtypes", []),
136
+ __metadata("design:returntype", Promise)
137
+ ], SetupController.prototype, "reset", null);
138
+ exports.SetupController = SetupController = __decorate([
139
+ (0, swagger_1.ApiTags)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_API_TAG_NAME),
140
+ (0, common_1.Controller)(),
141
+ (0, roles_guard_1.Roles)(users_constants_1.UserRole.OWNER),
142
+ __metadata("design:paramtypes", [cloudflare_tunnel_setup_service_1.CloudflareTunnelSetupService,
143
+ cloudflare_tunnel_provider_service_1.CloudflareTunnelProviderService,
144
+ cloudflare_tunnel_managed_service_1.CloudflareTunnelManagedService,
145
+ config_service_1.ConfigService])
146
+ ], SetupController);
147
+ //# sourceMappingURL=setup.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.controller.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { PlatformService } from '../../../modules/platform/services/platform.service';
2
+ import { RemoteAccessCloudflareTunnelPluginStatusResponseModel } from '../models/status.model';
3
+ import { CloudflareTunnelManagedService } from '../services/cloudflare-tunnel-managed.service';
4
+ import { CloudflareTunnelProviderService } from '../services/cloudflare-tunnel-provider.service';
5
+ import { CloudflareTunnelSetupService } from '../services/cloudflare-tunnel-setup.service';
6
+ export declare class StatusController {
7
+ private readonly providerService;
8
+ private readonly tunnelManagedService;
9
+ private readonly setupService;
10
+ private readonly platformService;
11
+ private readonly logger;
12
+ constructor(providerService: CloudflareTunnelProviderService, tunnelManagedService: CloudflareTunnelManagedService, setupService: CloudflareTunnelSetupService, platformService: PlatformService);
13
+ getStatus(): Promise<RemoteAccessCloudflareTunnelPluginStatusResponseModel>;
14
+ private buildSetupJobModel;
15
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StatusController = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const logger_1 = require("../../../common/logger");
16
+ const transform_utils_1 = require("../../../common/utils/transform.utils");
17
+ const platform_service_1 = require("../../../modules/platform/services/platform.service");
18
+ const provider_model_1 = require("../../../modules/remote-access/models/provider.model");
19
+ const api_documentation_decorator_1 = require("../../../modules/swagger/decorators/api-documentation.decorator");
20
+ const roles_guard_1 = require("../../../modules/users/guards/roles.guard");
21
+ const users_constants_1 = require("../../../modules/users/users.constants");
22
+ const status_model_1 = require("../models/status.model");
23
+ const remote_access_cloudflare_tunnel_constants_1 = require("../remote-access-cloudflare-tunnel.constants");
24
+ const cloudflare_tunnel_managed_service_1 = require("../services/cloudflare-tunnel-managed.service");
25
+ const cloudflare_tunnel_provider_service_1 = require("../services/cloudflare-tunnel-provider.service");
26
+ const cloudflare_tunnel_setup_service_1 = require("../services/cloudflare-tunnel-setup.service");
27
+ let StatusController = class StatusController {
28
+ constructor(providerService, tunnelManagedService, setupService, platformService) {
29
+ this.providerService = providerService;
30
+ this.tunnelManagedService = tunnelManagedService;
31
+ this.setupService = setupService;
32
+ this.platformService = platformService;
33
+ this.logger = (0, logger_1.createExtensionLogger)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'StatusController');
34
+ }
35
+ async getStatus() {
36
+ this.logger.debug('Fetching Cloudflare Tunnel status');
37
+ const [status, requirements, privilegedWorkerSupport] = await Promise.all([
38
+ this.providerService.getStatus(),
39
+ this.tunnelManagedService.refreshRequirements(),
40
+ this.platformService.getPrivilegedWorkerSupport(),
41
+ ]);
42
+ const data = new status_model_1.RemoteAccessCloudflareTunnelPluginStatusModel();
43
+ data.type = status.type;
44
+ data.state = status.state;
45
+ data.endpoints = (0, transform_utils_1.toInstance)(provider_model_1.RemoteAccessEndpointModel, status.endpoints);
46
+ data.message = status.message ?? null;
47
+ data.details = status.details;
48
+ data.proxyAddresses = status.proxyAddresses;
49
+ data.advisories = (0, transform_utils_1.toInstance)(provider_model_1.RemoteAccessAdvisoryModel, status.advisories);
50
+ data.updatedAt = status.updatedAt;
51
+ data.requirements = (0, transform_utils_1.toInstance)(status_model_1.RemoteAccessCloudflareTunnelPluginRequirementModel, requirements);
52
+ data.setup = this.buildSetupJobModel();
53
+ const privilegedSetup = new status_model_1.RemoteAccessCloudflareTunnelPluginPrivilegedSetupModel();
54
+ privilegedSetup.available = privilegedWorkerSupport.supported;
55
+ privilegedSetup.reason = privilegedWorkerSupport.reason;
56
+ data.privilegedSetup = privilegedSetup;
57
+ const response = new status_model_1.RemoteAccessCloudflareTunnelPluginStatusResponseModel();
58
+ response.data = data;
59
+ return response;
60
+ }
61
+ buildSetupJobModel() {
62
+ const lastJob = this.setupService.getLastJob();
63
+ if (!lastJob) {
64
+ return null;
65
+ }
66
+ const model = new status_model_1.RemoteAccessCloudflareTunnelPluginSetupJobModel();
67
+ model.jobId = lastJob.id;
68
+ model.state = lastJob.status.state;
69
+ model.step = lastJob.status.step ?? null;
70
+ model.message = lastJob.status.message ?? null;
71
+ model.updatedAt = lastJob.status.updatedAt;
72
+ return model;
73
+ }
74
+ };
75
+ exports.StatusController = StatusController;
76
+ __decorate([
77
+ (0, swagger_1.ApiOperation)({
78
+ tags: [remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_API_TAG_NAME],
79
+ summary: 'Get Cloudflare Tunnel status',
80
+ description: 'Retrieve the full Cloudflare Tunnel status: connection state, published endpoints, provider-specific details and the setup requirements checklist.',
81
+ operationId: 'get-remote-access-cloudflare-tunnel-plugin-status',
82
+ }),
83
+ (0, api_documentation_decorator_1.ApiSuccessResponse)(status_model_1.RemoteAccessCloudflareTunnelPluginStatusResponseModel, 'Cloudflare Tunnel status retrieved successfully'),
84
+ (0, common_1.Get)('status'),
85
+ __metadata("design:type", Function),
86
+ __metadata("design:paramtypes", []),
87
+ __metadata("design:returntype", Promise)
88
+ ], StatusController.prototype, "getStatus", null);
89
+ exports.StatusController = StatusController = __decorate([
90
+ (0, swagger_1.ApiTags)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_API_TAG_NAME),
91
+ (0, common_1.Controller)(),
92
+ (0, roles_guard_1.Roles)(users_constants_1.UserRole.ADMIN, users_constants_1.UserRole.OWNER),
93
+ __metadata("design:paramtypes", [cloudflare_tunnel_provider_service_1.CloudflareTunnelProviderService,
94
+ cloudflare_tunnel_managed_service_1.CloudflareTunnelManagedService,
95
+ cloudflare_tunnel_setup_service_1.CloudflareTunnelSetupService,
96
+ platform_service_1.PlatformService])
97
+ ], StatusController);
98
+ //# sourceMappingURL=status.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.controller.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { UpdatePluginConfigDto } from '../../../modules/config/dto/config.dto';
2
+ import { CloudflareTunnelProtocol } from '../remote-access-cloudflare-tunnel.constants';
3
+ export declare class UpdateRemoteAccessCloudflareTunnelPluginConfigDto extends UpdatePluginConfigDto {
4
+ type: string;
5
+ enabled?: boolean;
6
+ publicHostname?: string | null;
7
+ protocol?: CloudflareTunnelProtocol;
8
+ tunnelToken?: string | null;
9
+ }