@fastybird/smart-panel-backend 1.1.0-alpha.3 → 1.1.0-alpha.30

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 (412) 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/dataSource.js +1 -0
  15. package/dist/dataSource.js.map +1 -1
  16. package/dist/main.js +2 -7
  17. package/dist/main.js.map +1 -1
  18. package/dist/migrations/1000000000026-AddHardwareInputCategories.d.ts +7 -0
  19. package/dist/migrations/1000000000026-AddHardwareInputCategories.js +364 -0
  20. package/dist/migrations/1000000000026-AddHardwareInputCategories.js.map +1 -0
  21. package/dist/modules/devices/controllers/channels.controller.d.ts +5 -1
  22. package/dist/modules/devices/controllers/channels.controller.js +34 -2
  23. package/dist/modules/devices/controllers/channels.controller.js.map +1 -1
  24. package/dist/modules/devices/controllers/channels.properties.controller.js +21 -4
  25. package/dist/modules/devices/controllers/channels.properties.controller.js.map +1 -1
  26. package/dist/modules/devices/controllers/devices.channels.controller.d.ts +5 -1
  27. package/dist/modules/devices/controllers/devices.channels.controller.js +38 -2
  28. package/dist/modules/devices/controllers/devices.channels.controller.js.map +1 -1
  29. package/dist/modules/devices/controllers/devices.channels.properties.controller.js +21 -4
  30. package/dist/modules/devices/controllers/devices.channels.properties.controller.js.map +1 -1
  31. package/dist/modules/devices/devices.constants.d.ts +6 -0
  32. package/dist/modules/devices/devices.constants.js +6 -0
  33. package/dist/modules/devices/devices.constants.js.map +1 -1
  34. package/dist/modules/devices/devices.module.js +20 -0
  35. package/dist/modules/devices/devices.module.js.map +1 -1
  36. package/dist/modules/devices/devices.openapi.d.ts +3 -1
  37. package/dist/modules/devices/devices.openapi.js +7 -0
  38. package/dist/modules/devices/devices.openapi.js.map +1 -1
  39. package/dist/modules/devices/dto/channel-input-occurrence.dto.d.ts +10 -0
  40. package/dist/modules/devices/dto/channel-input-occurrence.dto.js +99 -0
  41. package/dist/modules/devices/dto/channel-input-occurrence.dto.js.map +1 -0
  42. package/dist/modules/devices/models/channel-input-capabilities.model.d.ts +20 -0
  43. package/dist/modules/devices/models/channel-input-capabilities.model.js +111 -0
  44. package/dist/modules/devices/models/channel-input-capabilities.model.js.map +1 -0
  45. package/dist/modules/devices/models/channel-input-occurrence.model.d.ts +22 -0
  46. package/dist/modules/devices/models/channel-input-occurrence.model.js +154 -0
  47. package/dist/modules/devices/models/channel-input-occurrence.model.js.map +1 -0
  48. package/dist/modules/devices/services/channel-input-deduplication.service.d.ts +17 -0
  49. package/dist/modules/devices/services/channel-input-deduplication.service.js +88 -0
  50. package/dist/modules/devices/services/channel-input-deduplication.service.js.map +1 -0
  51. package/dist/modules/devices/services/channel-input-occurrences.service.d.ts +21 -0
  52. package/dist/modules/devices/services/channel-input-occurrences.service.js +163 -0
  53. package/dist/modules/devices/services/channel-input-occurrences.service.js.map +1 -0
  54. package/dist/modules/devices/services/channels.properties.service.d.ts +31 -3
  55. package/dist/modules/devices/services/channels.properties.service.js +346 -51
  56. package/dist/modules/devices/services/channels.properties.service.js.map +1 -1
  57. package/dist/modules/devices/services/channels.service.js +42 -38
  58. package/dist/modules/devices/services/channels.service.js.map +1 -1
  59. package/dist/modules/devices/services/command-latency-trace-collector.service.d.ts +101 -0
  60. package/dist/modules/devices/services/command-latency-trace-collector.service.js +451 -0
  61. package/dist/modules/devices/services/command-latency-trace-collector.service.js.map +1 -0
  62. package/dist/modules/devices/services/device-structure-lock.service.d.ts +10 -2
  63. package/dist/modules/devices/services/device-structure-lock.service.js +86 -7
  64. package/dist/modules/devices/services/device-structure-lock.service.js.map +1 -1
  65. package/dist/modules/devices/services/devices.service.js +37 -33
  66. package/dist/modules/devices/services/devices.service.js.map +1 -1
  67. package/dist/modules/devices/services/module-reset.service.d.ts +3 -1
  68. package/dist/modules/devices/services/module-reset.service.js +21 -16
  69. package/dist/modules/devices/services/module-reset.service.js.map +1 -1
  70. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +45 -0
  71. package/dist/modules/devices/services/property-command-dispatch.service.js +227 -0
  72. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -0
  73. package/dist/modules/devices/services/property-command-window.service.d.ts +71 -0
  74. package/dist/modules/devices/services/property-command-window.service.js +206 -0
  75. package/dist/modules/devices/services/property-command-window.service.js.map +1 -0
  76. package/dist/modules/devices/services/property-command.service.d.ts +20 -3
  77. package/dist/modules/devices/services/property-command.service.js +56 -10
  78. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  79. package/dist/modules/devices/services/property-metadata.service.d.ts +31 -0
  80. package/dist/modules/devices/services/property-metadata.service.js +160 -0
  81. package/dist/modules/devices/services/property-metadata.service.js.map +1 -0
  82. package/dist/modules/devices/services/property-state-coordinator.service.d.ts +4 -0
  83. package/dist/modules/devices/services/property-state-coordinator.service.js +35 -0
  84. package/dist/modules/devices/services/property-state-coordinator.service.js.map +1 -0
  85. package/dist/modules/devices/services/property-value-lock.service.d.ts +3 -1
  86. package/dist/modules/devices/services/property-value-lock.service.js +13 -2
  87. package/dist/modules/devices/services/property-value-lock.service.js.map +1 -1
  88. package/dist/modules/devices/services/property-value.service.d.ts +1 -0
  89. package/dist/modules/devices/services/property-value.service.js +4 -0
  90. package/dist/modules/devices/services/property-value.service.js.map +1 -1
  91. package/dist/modules/devices/utils/schema.utils.js +1 -1
  92. package/dist/modules/devices/utils/schema.utils.js.map +1 -1
  93. package/dist/modules/platform/platforms/raspberry.platform.js +5 -10
  94. package/dist/modules/platform/platforms/raspberry.platform.js.map +1 -1
  95. package/dist/modules/platform/services/platform.service.d.ts +13 -4
  96. package/dist/modules/platform/services/platform.service.js +57 -35
  97. package/dist/modules/platform/services/platform.service.js.map +1 -1
  98. package/dist/modules/remote-access/dto/update-config.dto.js +5 -0
  99. package/dist/modules/remote-access/dto/update-config.dto.js.map +1 -1
  100. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js +5 -2
  101. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js.map +1 -1
  102. package/dist/modules/system/scripts/update-worker.sh +1168 -61
  103. package/dist/modules/system/services/privileged-worker.service.d.ts +13 -0
  104. package/dist/modules/system/services/privileged-worker.service.js +192 -31
  105. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  106. package/dist/modules/system/services/system.service.d.ts +2 -0
  107. package/dist/modules/system/services/system.service.js +22 -1
  108. package/dist/modules/system/services/system.service.js.map +1 -1
  109. package/dist/modules/system/services/update-executor.service.d.ts +20 -2
  110. package/dist/modules/system/services/update-executor.service.js +272 -26
  111. package/dist/modules/system/services/update-executor.service.js.map +1 -1
  112. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +4 -1
  113. package/dist/modules/websocket/gateway/websocket.gateway.js +28 -5
  114. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  115. package/dist/modules/websocket/services/command-acknowledgement-trace.service.d.ts +143 -0
  116. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js +523 -0
  117. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js.map +1 -0
  118. package/dist/modules/websocket/websocket.module.js +9 -1
  119. package/dist/modules/websocket/websocket.module.js.map +1 -1
  120. package/dist/plugins/devices-home-assistant/devices-home-assistant.openapi.d.ts +2 -2
  121. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.d.ts +6 -1
  122. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js +16 -1
  123. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js.map +1 -1
  124. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.d.ts +1 -0
  125. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js +11 -0
  126. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js.map +1 -1
  127. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.d.ts +19 -0
  128. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js +51 -0
  129. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js.map +1 -0
  130. package/dist/plugins/devices-home-assistant/mappings/definitions/entity-mappings.yaml +56 -7
  131. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.d.ts +1 -0
  132. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js +11 -0
  133. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js.map +1 -1
  134. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js +17 -0
  135. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js.map +1 -1
  136. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.d.ts +27 -0
  137. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js +271 -0
  138. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js.map +1 -0
  139. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.d.ts +2 -2
  140. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js +33 -14
  141. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js.map +1 -1
  142. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js +24 -4
  143. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js.map +1 -1
  144. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.d.ts +4 -1
  145. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +84 -5
  146. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  147. package/dist/plugins/devices-home-assistant/services/wizard.service.js +1 -0
  148. package/dist/plugins/devices-home-assistant/services/wizard.service.js.map +1 -1
  149. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.d.ts +2 -0
  150. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js +50 -0
  151. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js.map +1 -0
  152. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.d.ts +4 -1
  153. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +39 -4
  154. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  155. package/dist/plugins/devices-homekit/mappers/base.mapper.js +30 -6
  156. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  157. package/dist/plugins/devices-homekit/mappers/button.mapper.d.ts +15 -0
  158. package/dist/plugins/devices-homekit/mappers/button.mapper.js +143 -0
  159. package/dist/plugins/devices-homekit/mappers/button.mapper.js.map +1 -0
  160. package/dist/plugins/devices-homekit/mappers/characteristic-write.d.ts +2 -0
  161. package/dist/plugins/devices-homekit/mappers/characteristic-write.js +17 -0
  162. package/dist/plugins/devices-homekit/mappers/characteristic-write.js.map +1 -0
  163. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +17 -1
  164. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.d.ts +7 -0
  165. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +96 -84
  166. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  167. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.d.ts +5 -1
  168. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js +42 -0
  169. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js.map +1 -1
  170. package/dist/plugins/devices-homey/mappings/definitions/channels.yaml +50 -0
  171. package/dist/plugins/devices-homey/mappings/definitions/devices.yaml +18 -0
  172. package/dist/plugins/devices-homey/mappings/definitions/properties.yaml +55 -0
  173. package/dist/plugins/devices-homey/mappings/device-support.js +10 -0
  174. package/dist/plugins/devices-homey/mappings/device-support.js.map +1 -1
  175. package/dist/plugins/devices-homey/mappings/mapping-loader.service.d.ts +1 -0
  176. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js +66 -8
  177. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js.map +1 -1
  178. package/dist/plugins/devices-homey/models/inventory.model.d.ts +2 -1
  179. package/dist/plugins/devices-homey/models/inventory.model.js +1 -0
  180. package/dist/plugins/devices-homey/models/inventory.model.js.map +1 -1
  181. package/dist/plugins/devices-homey/models/mapping-preview.model.d.ts +1 -0
  182. package/dist/plugins/devices-homey/models/mapping-preview.model.js +1 -0
  183. package/dist/plugins/devices-homey/models/mapping-preview.model.js.map +1 -1
  184. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js +7 -0
  185. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js.map +1 -1
  186. package/dist/plugins/devices-homey/services/homey-synchronizer.service.d.ts +3 -1
  187. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js +37 -6
  188. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js.map +1 -1
  189. package/dist/plugins/devices-reterminal/services/reterminal-button.service.d.ts +7 -3
  190. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js +63 -17
  191. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js.map +1 -1
  192. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +36 -3
  193. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +707 -42
  194. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  195. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +11 -1
  196. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +100 -10
  197. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  198. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +9 -11
  199. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  200. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js +2 -0
  201. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js.map +1 -1
  202. package/dist/plugins/devices-shelly-ng/mappings/definitions/inputs.yaml +80 -0
  203. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +7 -1
  204. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  205. package/dist/plugins/devices-shelly-ng/mappings/mapping.types.d.ts +6 -3
  206. package/dist/plugins/devices-shelly-ng/mappings/schema/mapping-schema.json +5 -0
  207. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +153 -8
  208. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  209. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.d.ts +51 -0
  210. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js +549 -0
  211. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js.map +1 -0
  212. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +14 -2
  213. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +134 -35
  214. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  215. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js +3 -0
  216. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js.map +1 -1
  217. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +1 -0
  218. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +14 -4
  219. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  220. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.d.ts +2 -0
  221. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js +66 -4
  222. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js.map +1 -1
  223. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js +2 -0
  224. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js.map +1 -1
  225. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js +7 -0
  226. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js.map +1 -1
  227. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.d.ts +3 -1
  228. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js +20 -2
  229. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js.map +1 -1
  230. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.d.ts +16 -0
  231. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js +107 -0
  232. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js.map +1 -0
  233. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.d.ts +7 -1
  234. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js +98 -3
  235. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js.map +1 -1
  236. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.d.ts +17 -0
  237. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js +205 -0
  238. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js.map +1 -0
  239. package/dist/plugins/devices-third-party/devices-third-party.openapi.d.ts +1 -1
  240. package/dist/plugins/devices-third-party/devices-third-party.plugin.js +2 -1
  241. package/dist/plugins/devices-third-party/devices-third-party.plugin.js.map +1 -1
  242. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.d.ts +5 -0
  243. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js +50 -0
  244. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js.map +1 -0
  245. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.d.ts +8 -0
  246. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js +81 -0
  247. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js.map +1 -0
  248. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js +19 -4
  249. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js.map +1 -1
  250. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.d.ts +2 -0
  251. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js +57 -0
  252. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js.map +1 -1
  253. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.d.ts +3 -0
  254. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js +41 -5
  255. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js.map +1 -1
  256. package/dist/plugins/devices-zigbee2mqtt/interfaces/zigbee2mqtt.interface.d.ts +7 -1
  257. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js +16 -15
  258. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js.map +1 -1
  259. package/dist/plugins/devices-zigbee2mqtt/mappings/definitions/remotes.yaml +505 -74
  260. package/dist/plugins/devices-zigbee2mqtt/mappings/schema/mapping-schema.json +3 -3
  261. package/dist/plugins/devices-zigbee2mqtt/mappings/transformers/transformer.types.d.ts +1 -1
  262. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +8 -2
  263. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js +6 -5
  264. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -1
  265. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js +18 -11
  266. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js.map +1 -1
  267. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.d.ts +9 -3
  268. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js +166 -3
  269. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js.map +1 -1
  270. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +5 -2
  271. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  272. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +1 -0
  273. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +44 -4
  274. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  275. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +17 -0
  276. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +147 -0
  277. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -0
  278. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +15 -0
  279. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +98 -0
  280. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -0
  281. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.d.ts +9 -0
  282. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js +94 -0
  283. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js.map +1 -0
  284. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.d.ts +9 -0
  285. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js +92 -0
  286. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js.map +1 -0
  287. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.d.ts +7 -0
  288. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js +48 -0
  289. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js.map +1 -0
  290. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +42 -0
  291. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +352 -0
  292. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -0
  293. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.d.ts +24 -0
  294. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js +27 -0
  295. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js.map +1 -0
  296. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.d.ts +8 -0
  297. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js +19 -0
  298. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js.map +1 -0
  299. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.d.ts +4 -0
  300. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js +20 -0
  301. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js.map +1 -0
  302. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.d.ts +21 -0
  303. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js +135 -0
  304. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js.map +1 -0
  305. package/dist/plugins/remote-access-cloudflare-tunnel/scripts/cloudflared-setup.sh +185 -0
  306. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +82 -0
  307. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +507 -0
  308. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -0
  309. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +10 -0
  310. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +37 -0
  311. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -0
  312. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.d.ts +38 -0
  313. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js +147 -0
  314. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js.map +1 -0
  315. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +15 -0
  316. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +67 -0
  317. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -0
  318. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +8 -0
  319. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +46 -0
  320. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -0
  321. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.d.ts +27 -0
  322. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js +139 -0
  323. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js.map +1 -0
  324. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +1 -0
  325. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +26 -10
  326. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  327. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -1
  328. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +28 -3
  329. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  330. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +19 -0
  331. package/dist/plugins/remote-access-tailscale/models/status.model.js +158 -1
  332. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  333. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +3 -0
  334. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +4 -1
  335. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  336. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +13 -0
  337. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +27 -0
  338. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -0
  339. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  340. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +2 -0
  341. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  342. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +1 -1
  343. package/dist/plugins/remote-access-tailscale/scripts/tailscale-setup.sh +61 -0
  344. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +9 -0
  345. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +12 -0
  346. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  347. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +1 -0
  348. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +27 -2
  349. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  350. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +31 -1
  351. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +316 -30
  352. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  353. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +8 -3
  354. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +39 -12
  355. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  356. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +14 -5
  357. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +51 -16
  358. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  359. package/dist/plugins/scenes-local/platforms/local-scene.platform.d.ts +3 -1
  360. package/dist/plugins/scenes-local/platforms/local-scene.platform.js +12 -7
  361. package/dist/plugins/scenes-local/platforms/local-scene.platform.js.map +1 -1
  362. package/dist/plugins/simulator/controllers/simulator.controller.d.ts +8 -2
  363. package/dist/plugins/simulator/controllers/simulator.controller.js +102 -2
  364. package/dist/plugins/simulator/controllers/simulator.controller.js.map +1 -1
  365. package/dist/plugins/simulator/dto/simulate-occurrence.dto.d.ts +12 -0
  366. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js +122 -0
  367. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js.map +1 -0
  368. package/dist/plugins/simulator/models/simulator-response.model.d.ts +12 -0
  369. package/dist/plugins/simulator/models/simulator-response.model.js +84 -1
  370. package/dist/plugins/simulator/models/simulator-response.model.js.map +1 -1
  371. package/dist/plugins/simulator/scenarios/definitions/small-apartment.yaml +78 -0
  372. package/dist/plugins/simulator/services/scenario-executor.service.js +3 -1
  373. package/dist/plugins/simulator/services/scenario-executor.service.js.map +1 -1
  374. package/dist/plugins/simulator/services/simulation.service.js +10 -1
  375. package/dist/plugins/simulator/services/simulation.service.js.map +1 -1
  376. package/dist/plugins/simulator/simulator.openapi.d.ts +3 -2
  377. package/dist/plugins/simulator/simulator.openapi.js +5 -0
  378. package/dist/plugins/simulator/simulator.openapi.js.map +1 -1
  379. package/dist/plugins/simulator/simulators/device-simulator.interface.d.ts +2 -0
  380. package/dist/plugins/simulator/simulators/device-simulator.interface.js +83 -0
  381. package/dist/plugins/simulator/simulators/device-simulator.interface.js.map +1 -1
  382. package/dist/plugins/simulator/simulators/index.d.ts +1 -0
  383. package/dist/plugins/simulator/simulators/index.js +1 -0
  384. package/dist/plugins/simulator/simulators/index.js.map +1 -1
  385. package/dist/plugins/simulator/simulators/input-controller.simulator.d.ts +10 -0
  386. package/dist/plugins/simulator/simulators/input-controller.simulator.js +57 -0
  387. package/dist/plugins/simulator/simulators/input-controller.simulator.js.map +1 -0
  388. package/dist/plugins/simulator/simulators/lighting.simulator.js +1 -0
  389. package/dist/plugins/simulator/simulators/lighting.simulator.js.map +1 -1
  390. package/dist/plugins/spaces-home-control/services/climate-intent.service.d.ts +3 -1
  391. package/dist/plugins/spaces-home-control/services/climate-intent.service.js +6 -3
  392. package/dist/plugins/spaces-home-control/services/climate-intent.service.js.map +1 -1
  393. package/dist/plugins/spaces-home-control/services/covers-intent.service.d.ts +3 -1
  394. package/dist/plugins/spaces-home-control/services/covers-intent.service.js +6 -3
  395. package/dist/plugins/spaces-home-control/services/covers-intent.service.js.map +1 -1
  396. package/dist/plugins/spaces-home-control/services/lighting-intent.service.d.ts +3 -1
  397. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js +7 -4
  398. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js.map +1 -1
  399. package/dist/plugins/spaces-home-control/services/space-media-activity.service.d.ts +3 -1
  400. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js +11 -5
  401. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js.map +1 -1
  402. package/dist/plugins/spaces-home-control/services/space-undo-history.service.d.ts +3 -1
  403. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js +8 -5
  404. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js.map +1 -1
  405. package/dist/spec/channels.d.ts +51 -1
  406. package/dist/spec/channels.js +64 -1
  407. package/dist/spec/channels.js.map +1 -1
  408. package/dist/spec/devices.d.ts +155 -2
  409. package/dist/spec/devices.js +161 -2
  410. package/dist/spec/devices.js.map +1 -1
  411. package/dist/tsconfig.build.tsbuildinfo +1 -1
  412. package/package.json +3 -3
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddHardwareInputCategories1000000000026 = void 0;
4
+ class AddHardwareInputCategories1000000000026 {
5
+ constructor() {
6
+ this.name = 'AddHardwareInputCategories1000000000026';
7
+ this.transaction = false;
8
+ }
9
+ async up(queryRunner) {
10
+ await queryRunner.query('PRAGMA foreign_keys = OFF');
11
+ let transactionStarted = false;
12
+ try {
13
+ if (!queryRunner.isTransactionActive) {
14
+ await queryRunner.startTransaction();
15
+ transactionStarted = true;
16
+ }
17
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_devices" (
18
+ "id" varchar PRIMARY KEY NOT NULL,
19
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
20
+ "updatedAt" datetime,
21
+ "category" varchar CHECK( "category" IN ('generic','air_conditioner','air_dehumidifier','air_humidifier','air_purifier','av_receiver','alarm','camera','door','doorbell','fan','game_console','heating_unit','input_controller','lighting','lock','media','outlet','projector','pump','robot_vacuum','sensor','set_top_box','speaker','sprinkler','streaming_service','switcher','television','terminal','thermostat','valve','water_heater','window_covering') ) NOT NULL DEFAULT ('generic'),
22
+ "identifier" varchar,
23
+ "name" varchar NOT NULL,
24
+ "description" varchar,
25
+ "enabled" boolean NOT NULL DEFAULT (1),
26
+ "roomId" varchar,
27
+ "password" varchar,
28
+ "hostname" varchar,
29
+ "haDeviceId" varchar,
30
+ "canonicalMac" varchar,
31
+ "hasEthernet" boolean DEFAULT (0),
32
+ "autoSimulate" boolean DEFAULT (0),
33
+ "simulateInterval" integer DEFAULT (5000),
34
+ "behaviorMode" varchar DEFAULT ('default'),
35
+ "serviceAddress" varchar,
36
+ "variant" varchar,
37
+ "type" varchar NOT NULL,
38
+ "hidden" boolean NOT NULL DEFAULT (0),
39
+ "hiddenBy" varchar,
40
+ "mac" varchar,
41
+ CONSTRAINT "UQ_devices_identifier_type" UNIQUE ("identifier", "type"),
42
+ CONSTRAINT "UQ_e8561dbd95ee5d195842749f322" UNIQUE ("canonicalMac"),
43
+ CONSTRAINT "FK_9c2fa00cfe1d7964da6b8ad4976" FOREIGN KEY ("roomId") REFERENCES "spaces_module_spaces" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
44
+ )`);
45
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_devices" (
46
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
47
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
48
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
49
+ "variant", "type", "hidden", "hiddenBy", "mac"
50
+ ) SELECT "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
51
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
52
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
53
+ "variant", "type", "hidden", "hiddenBy", "mac" FROM "devices_module_devices"`);
54
+ await queryRunner.query(`DROP TABLE "devices_module_devices"`);
55
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_devices" RENAME TO "devices_module_devices"`);
56
+ await queryRunner.query(`CREATE INDEX "IDX_2e587b2a8bcb55f468bb6ec6fe" ON "devices_module_devices" ("identifier")`);
57
+ await queryRunner.query(`CREATE INDEX "IDX_b6aa1841ab84616391d34cd5cf" ON "devices_module_devices" ("enabled")`);
58
+ await queryRunner.query(`CREATE INDEX "IDX_9c2fa00cfe1d7964da6b8ad497" ON "devices_module_devices" ("roomId")`);
59
+ await queryRunner.query(`CREATE UNIQUE INDEX "IDX_36ec1c9bafc04373563cfb5f83" ON "devices_module_devices" ("haDeviceId")`);
60
+ await queryRunner.query(`CREATE INDEX "IDX_de1447169fa1df5ea8d41bf02a" ON "devices_module_devices" ("type")`);
61
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hidden" ON "devices_module_devices" ("hidden")`);
62
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hiddenBy" ON "devices_module_devices" ("hiddenBy")`);
63
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_devices_wled_mac_type" ON "devices_module_devices" ("mac", "type") WHERE "mac" IS NOT NULL AND "type" = 'devices-wled'`);
64
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_insert"
65
+ AFTER INSERT ON "devices_module_devices"
66
+ BEGIN
67
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
68
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
69
+ END`);
70
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_update"
71
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "roomId" ON "devices_module_devices"
72
+ BEGIN
73
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
74
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
75
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
76
+ END`);
77
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_delete"
78
+ AFTER DELETE ON "devices_module_devices"
79
+ BEGIN
80
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
81
+ END`);
82
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels" (
83
+ "id" varchar PRIMARY KEY NOT NULL,
84
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
85
+ "updatedAt" datetime,
86
+ "category" varchar CHECK( "category" IN ('generic','accelerometer','air_particulate','air_quality','alarm','analog_input','battery','binary_input','button','buzzer','camera','carbon_dioxide','carbon_monoxide','contact','cooler','dehumidifier','device_information','door','doorbell','electrical_energy','electrical_generation','electrical_power','fan','filter','flow','gas','heater','humidifier','humidity','illuminance','indicator','leak','light','lock','media_input','media_playback','microphone','motion','nitrogen_dioxide','occupancy','outlet','ozone','pressure','projector','robot_vacuum','smoke','speaker','sulphur_dioxide','switcher','television','temperature','thermostat','valve','volatile_organic_compounds','window_covering') ) NOT NULL DEFAULT ('generic'),
87
+ "identifier" varchar,
88
+ "name" varchar NOT NULL,
89
+ "description" varchar,
90
+ "parentId" varchar,
91
+ "type" varchar NOT NULL,
92
+ "deviceId" varchar,
93
+ CONSTRAINT "UQ_channels_identifier_type" UNIQUE ("identifier", "deviceId"),
94
+ CONSTRAINT "FK_e5e83bd86799131ff462ba199bd" FOREIGN KEY ("deviceId") REFERENCES "devices_module_devices" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
95
+ CONSTRAINT "FK_4ff87e5bef5426c24fe7f0ff6c2" FOREIGN KEY ("parentId") REFERENCES "devices_module_channels" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
96
+ )`);
97
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels" (
98
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
99
+ "parentId", "type", "deviceId"
100
+ ) SELECT "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
101
+ "parentId", "type", "deviceId" FROM "devices_module_channels"`);
102
+ await queryRunner.query(`DROP TABLE "devices_module_channels"`);
103
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels" RENAME TO "devices_module_channels"`);
104
+ await queryRunner.query(`CREATE INDEX "IDX_38441e91ae9be25547912ebc44" ON "devices_module_channels" ("identifier")`);
105
+ await queryRunner.query(`CREATE INDEX "IDX_4ff87e5bef5426c24fe7f0ff6c" ON "devices_module_channels" ("parentId")`);
106
+ await queryRunner.query(`CREATE INDEX "IDX_a654e0cabea37168a1a967ab5d" ON "devices_module_channels" ("type")`);
107
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels_properties" (
108
+ "id" varchar PRIMARY KEY NOT NULL,
109
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
110
+ "updatedAt" datetime,
111
+ "category" varchar CHECK( "category" IN ('generic','acceleration_x','acceleration_y','acceleration_z','active','alarm_state','album','angle','artist','artwork_url','aqi','average_power','balance','bass','brightness','change_needed','child_lock','color_blue','color_green','color_red','color_temperature','color_white','command','connection_type','consumption','current','concentration','defrost_active','detected','direction','distance','duration','event','fault','fault_description','firmware_revision','frequency','grid_export','grid_import','hardware_revision','hue','humidity','in_use','infrared','last_event','level','life_remaining','link_quality','locked','illuminance','manufacturer','media_type','mist_level','model','mode','mute','natural_breeze','obstruction','on','orientation','over_current','over_voltage','over_power','pan','peak_level','percentage','position','power','pressure','production','rate','remaining','repeat','reset','remote_key','saturation','siren','serial_number','shuffle','source','source_label','state','speed','status','swing','tampered','temperature','tilt','timer','treble','triggered','track','type','unit','value','voltage','volume','warm_mist','water_tank_empty','water_tank_full','water_tank_level','zoom') ) NOT NULL DEFAULT ('generic'),
112
+ "identifier" varchar,
113
+ "name" varchar,
114
+ "permissions" text NOT NULL DEFAULT ('ro'),
115
+ "dataType" varchar CHECK( "dataType" IN ('char','uchar','short','ushort','int','uint','float','bool','string','enum','unknown') ) NOT NULL DEFAULT ('unknown'),
116
+ "format" json,
117
+ "invalid" text,
118
+ "step" real,
119
+ "haEntityId" varchar,
120
+ "haAttribute" varchar,
121
+ "haTransformer" varchar,
122
+ "type" varchar NOT NULL,
123
+ "channelId" varchar,
124
+ "valueOrigin" varchar,
125
+ "sourcePropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
126
+ "energyClaimPropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
127
+ "homeyCapabilityId" varchar,
128
+ "homeyMappingName" varchar,
129
+ CONSTRAINT "UQ_channels_properties_identifier_type" UNIQUE ("identifier", "channelId"),
130
+ CONSTRAINT "FK_25ddb149b40ce110e482ccd2a3d" FOREIGN KEY ("channelId") REFERENCES "devices_module_channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
131
+ )`);
132
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels_properties" (
133
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "permissions",
134
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
135
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
136
+ "homeyCapabilityId", "homeyMappingName"
137
+ ) SELECT "id", "createdAt", "updatedAt", "category", "identifier", "name", "permissions",
138
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
139
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
140
+ "homeyCapabilityId", "homeyMappingName" FROM "devices_module_channels_properties"`);
141
+ await queryRunner.query(`DROP TABLE "devices_module_channels_properties"`);
142
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels_properties" RENAME TO "devices_module_channels_properties"`);
143
+ await queryRunner.query(`CREATE INDEX "IDX_869661aed3457e1949b0e7e335" ON "devices_module_channels_properties" ("identifier")`);
144
+ await queryRunner.query(`CREATE INDEX "IDX_98ffd1e6ff9c4463c3e7d9a9c7" ON "devices_module_channels_properties" ("type")`);
145
+ await queryRunner.query(`CREATE INDEX "IDX_channels_properties_sourcePropertyId" ON "devices_module_channels_properties" ("sourcePropertyId")`);
146
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_channels_properties_energyClaim" ON "devices_module_channels_properties" ("energyClaimPropertyId") WHERE "energyClaimPropertyId" IS NOT NULL`);
147
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_homey_capability_mapping_channel" ON "devices_module_channels_properties" ("homeyCapabilityId", "homeyMappingName", "channelId") WHERE "type" = 'devices-homey' AND "homeyCapabilityId" IS NOT NULL AND "homeyMappingName" IS NOT NULL`);
148
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_insert"
149
+ AFTER INSERT ON "devices_module_channels_properties"
150
+ BEGIN
151
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
152
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
153
+ END`);
154
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_update"
155
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "dataType", "permissions", "channelId" ON "devices_module_channels_properties"
156
+ BEGIN
157
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
158
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
159
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
160
+ END`);
161
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_delete"
162
+ AFTER DELETE ON "devices_module_channels_properties"
163
+ BEGIN
164
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
165
+ END`);
166
+ if (transactionStarted) {
167
+ await queryRunner.commitTransaction();
168
+ }
169
+ }
170
+ catch (error) {
171
+ if (transactionStarted) {
172
+ await queryRunner.rollbackTransaction();
173
+ }
174
+ throw error;
175
+ }
176
+ finally {
177
+ await queryRunner.query('PRAGMA foreign_keys = ON');
178
+ }
179
+ }
180
+ async down(queryRunner) {
181
+ await queryRunner.query('PRAGMA foreign_keys = OFF');
182
+ let transactionStarted = false;
183
+ try {
184
+ if (!queryRunner.isTransactionActive) {
185
+ await queryRunner.startTransaction();
186
+ transactionStarted = true;
187
+ }
188
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_devices" (
189
+ "id" varchar PRIMARY KEY NOT NULL,
190
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
191
+ "updatedAt" datetime,
192
+ "category" varchar CHECK( "category" IN ('generic','air_conditioner','air_dehumidifier','air_humidifier','air_purifier','av_receiver','alarm','camera','door','doorbell','fan','game_console','heating_unit','lighting','lock','media','outlet','projector','pump','robot_vacuum','sensor','set_top_box','speaker','sprinkler','streaming_service','switcher','television','terminal','thermostat','valve','water_heater','window_covering') ) NOT NULL DEFAULT ('generic'),
193
+ "identifier" varchar,
194
+ "name" varchar NOT NULL,
195
+ "description" varchar,
196
+ "enabled" boolean NOT NULL DEFAULT (1),
197
+ "roomId" varchar,
198
+ "password" varchar,
199
+ "hostname" varchar,
200
+ "haDeviceId" varchar,
201
+ "canonicalMac" varchar,
202
+ "hasEthernet" boolean DEFAULT (0),
203
+ "autoSimulate" boolean DEFAULT (0),
204
+ "simulateInterval" integer DEFAULT (5000),
205
+ "behaviorMode" varchar DEFAULT ('default'),
206
+ "serviceAddress" varchar,
207
+ "variant" varchar,
208
+ "type" varchar NOT NULL,
209
+ "hidden" boolean NOT NULL DEFAULT (0),
210
+ "hiddenBy" varchar,
211
+ "mac" varchar,
212
+ CONSTRAINT "UQ_devices_identifier_type" UNIQUE ("identifier", "type"),
213
+ CONSTRAINT "UQ_e8561dbd95ee5d195842749f322" UNIQUE ("canonicalMac"),
214
+ CONSTRAINT "FK_9c2fa00cfe1d7964da6b8ad4976" FOREIGN KEY ("roomId") REFERENCES "spaces_module_spaces" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
215
+ )`);
216
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_devices" (
217
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
218
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
219
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
220
+ "variant", "type", "hidden", "hiddenBy", "mac"
221
+ ) SELECT "id", "createdAt", "updatedAt",
222
+ CASE WHEN "category" = 'input_controller' THEN 'generic' ELSE "category" END AS "category",
223
+ "identifier", "name", "description",
224
+ "enabled", "roomId", "password", "hostname", "haDeviceId", "canonicalMac",
225
+ "hasEthernet", "autoSimulate", "simulateInterval", "behaviorMode", "serviceAddress",
226
+ "variant", "type", "hidden", "hiddenBy", "mac" FROM "devices_module_devices"`);
227
+ await queryRunner.query(`DROP TABLE "devices_module_devices"`);
228
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_devices" RENAME TO "devices_module_devices"`);
229
+ await queryRunner.query(`CREATE INDEX "IDX_2e587b2a8bcb55f468bb6ec6fe" ON "devices_module_devices" ("identifier")`);
230
+ await queryRunner.query(`CREATE INDEX "IDX_b6aa1841ab84616391d34cd5cf" ON "devices_module_devices" ("enabled")`);
231
+ await queryRunner.query(`CREATE INDEX "IDX_9c2fa00cfe1d7964da6b8ad497" ON "devices_module_devices" ("roomId")`);
232
+ await queryRunner.query(`CREATE UNIQUE INDEX "IDX_36ec1c9bafc04373563cfb5f83" ON "devices_module_devices" ("haDeviceId")`);
233
+ await queryRunner.query(`CREATE INDEX "IDX_de1447169fa1df5ea8d41bf02a" ON "devices_module_devices" ("type")`);
234
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hidden" ON "devices_module_devices" ("hidden")`);
235
+ await queryRunner.query(`CREATE INDEX "IDX_devices_hiddenBy" ON "devices_module_devices" ("hiddenBy")`);
236
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_devices_wled_mac_type" ON "devices_module_devices" ("mac", "type") WHERE "mac" IS NOT NULL AND "type" = 'devices-wled'`);
237
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_insert"
238
+ AFTER INSERT ON "devices_module_devices"
239
+ BEGIN
240
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
241
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
242
+ END`);
243
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_update"
244
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "roomId" ON "devices_module_devices"
245
+ BEGIN
246
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
247
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
248
+ VALUES ('device', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."roomId", ''));
249
+ END`);
250
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_devices_delete"
251
+ AFTER DELETE ON "devices_module_devices"
252
+ BEGIN
253
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'device' AND "entity_id" = OLD."id";
254
+ END`);
255
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels" (
256
+ "id" varchar PRIMARY KEY NOT NULL,
257
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
258
+ "updatedAt" datetime,
259
+ "category" varchar CHECK( "category" IN ('generic','accelerometer','air_particulate','air_quality','alarm','battery','button','buzzer','camera','carbon_dioxide','carbon_monoxide','contact','cooler','dehumidifier','device_information','door','doorbell','electrical_energy','electrical_generation','electrical_power','fan','filter','flow','gas','heater','humidifier','humidity','illuminance','indicator','leak','light','lock','media_input','media_playback','microphone','motion','nitrogen_dioxide','occupancy','outlet','ozone','pressure','projector','robot_vacuum','smoke','speaker','sulphur_dioxide','switcher','television','temperature','thermostat','valve','volatile_organic_compounds','window_covering') ) NOT NULL DEFAULT ('generic'),
260
+ "identifier" varchar,
261
+ "name" varchar NOT NULL,
262
+ "description" varchar,
263
+ "parentId" varchar,
264
+ "type" varchar NOT NULL,
265
+ "deviceId" varchar,
266
+ CONSTRAINT "UQ_channels_identifier_type" UNIQUE ("identifier", "deviceId"),
267
+ CONSTRAINT "FK_e5e83bd86799131ff462ba199bd" FOREIGN KEY ("deviceId") REFERENCES "devices_module_devices" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
268
+ CONSTRAINT "FK_4ff87e5bef5426c24fe7f0ff6c2" FOREIGN KEY ("parentId") REFERENCES "devices_module_channels" ("id") ON DELETE SET NULL ON UPDATE NO ACTION
269
+ )`);
270
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels" (
271
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "description",
272
+ "parentId", "type", "deviceId"
273
+ ) SELECT "id", "createdAt", "updatedAt",
274
+ CASE WHEN "category" IN ('binary_input', 'analog_input') THEN 'generic' ELSE "category" END AS "category",
275
+ "identifier", "name", "description",
276
+ "parentId", "type", "deviceId" FROM "devices_module_channels"`);
277
+ await queryRunner.query(`DROP TABLE "devices_module_channels"`);
278
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels" RENAME TO "devices_module_channels"`);
279
+ await queryRunner.query(`CREATE INDEX "IDX_38441e91ae9be25547912ebc44" ON "devices_module_channels" ("identifier")`);
280
+ await queryRunner.query(`CREATE INDEX "IDX_4ff87e5bef5426c24fe7f0ff6c" ON "devices_module_channels" ("parentId")`);
281
+ await queryRunner.query(`CREATE INDEX "IDX_a654e0cabea37168a1a967ab5d" ON "devices_module_channels" ("type")`);
282
+ await queryRunner.query(`CREATE TABLE "temporary_devices_module_channels_properties" (
283
+ "id" varchar PRIMARY KEY NOT NULL,
284
+ "createdAt" datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
285
+ "updatedAt" datetime,
286
+ "category" varchar CHECK( "category" IN ('generic','acceleration_x','acceleration_y','acceleration_z','active','alarm_state','album','angle','artist','artwork_url','aqi','average_power','balance','bass','brightness','change_needed','child_lock','color_blue','color_green','color_red','color_temperature','color_white','command','connection_type','consumption','current','concentration','defrost_active','detected','direction','distance','duration','event','fault','fault_description','firmware_revision','frequency','grid_export','grid_import','hardware_revision','hue','humidity','in_use','infrared','last_event','level','life_remaining','link_quality','locked','illuminance','manufacturer','media_type','mist_level','model','mode','mute','natural_breeze','obstruction','on','orientation','over_current','over_voltage','over_power','pan','peak_level','percentage','position','power','pressure','production','rate','remaining','repeat','reset','remote_key','saturation','siren','serial_number','shuffle','source','source_label','state','speed','status','swing','tampered','temperature','tilt','timer','treble','triggered','track','type','voltage','volume','warm_mist','water_tank_empty','water_tank_full','water_tank_level','zoom') ) NOT NULL DEFAULT ('generic'),
287
+ "identifier" varchar,
288
+ "name" varchar,
289
+ "permissions" text NOT NULL DEFAULT ('ro'),
290
+ "dataType" varchar CHECK( "dataType" IN ('char','uchar','short','ushort','int','uint','float','bool','string','enum','unknown') ) NOT NULL DEFAULT ('unknown'),
291
+ "format" json,
292
+ "invalid" text,
293
+ "step" real,
294
+ "haEntityId" varchar,
295
+ "haAttribute" varchar,
296
+ "haTransformer" varchar,
297
+ "type" varchar NOT NULL,
298
+ "channelId" varchar,
299
+ "valueOrigin" varchar,
300
+ "sourcePropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
301
+ "energyClaimPropertyId" varchar REFERENCES "devices_module_channels_properties" ("id") ON DELETE SET NULL,
302
+ "homeyCapabilityId" varchar,
303
+ "homeyMappingName" varchar,
304
+ CONSTRAINT "UQ_channels_properties_identifier_type" UNIQUE ("identifier", "channelId"),
305
+ CONSTRAINT "FK_25ddb149b40ce110e482ccd2a3d" FOREIGN KEY ("channelId") REFERENCES "devices_module_channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
306
+ )`);
307
+ await queryRunner.query(`INSERT INTO "temporary_devices_module_channels_properties" (
308
+ "id", "createdAt", "updatedAt", "category", "identifier", "name", "permissions",
309
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
310
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
311
+ "homeyCapabilityId", "homeyMappingName"
312
+ ) SELECT "id", "createdAt", "updatedAt",
313
+ CASE WHEN "category" IN ('unit', 'value') THEN 'generic' ELSE "category" END AS "category",
314
+ "identifier", "name", "permissions",
315
+ "dataType", "format", "invalid", "step", "haEntityId", "haAttribute", "haTransformer",
316
+ "type", "channelId", "valueOrigin", "sourcePropertyId", "energyClaimPropertyId",
317
+ "homeyCapabilityId", "homeyMappingName" FROM "devices_module_channels_properties"`);
318
+ await queryRunner.query(`DROP TABLE "devices_module_channels_properties"`);
319
+ await queryRunner.query(`ALTER TABLE "temporary_devices_module_channels_properties" RENAME TO "devices_module_channels_properties"`);
320
+ await queryRunner.query(`CREATE INDEX "IDX_869661aed3457e1949b0e7e335" ON "devices_module_channels_properties" ("identifier")`);
321
+ await queryRunner.query(`CREATE INDEX "IDX_98ffd1e6ff9c4463c3e7d9a9c7" ON "devices_module_channels_properties" ("type")`);
322
+ await queryRunner.query(`CREATE INDEX "IDX_channels_properties_sourcePropertyId" ON "devices_module_channels_properties" ("sourcePropertyId")`);
323
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_channels_properties_energyClaim" ON "devices_module_channels_properties" ("energyClaimPropertyId") WHERE "energyClaimPropertyId" IS NOT NULL`);
324
+ await queryRunner.query(`CREATE UNIQUE INDEX "UQ_homey_capability_mapping_channel" ON "devices_module_channels_properties" ("homeyCapabilityId", "homeyMappingName", "channelId") WHERE "type" = 'devices-homey' AND "homeyCapabilityId" IS NOT NULL AND "homeyMappingName" IS NOT NULL`);
325
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_insert"
326
+ AFTER INSERT ON "devices_module_channels_properties"
327
+ BEGIN
328
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
329
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
330
+ END`);
331
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_update"
332
+ AFTER UPDATE OF "id", "name", "identifier", "type", "category", "dataType", "permissions", "channelId" ON "devices_module_channels_properties"
333
+ BEGIN
334
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
335
+ INSERT INTO "home_context_entity_search_fts" ("entity_kind", "entity_id", "name", "identifier", "context")
336
+ VALUES ('property', NEW."id", COALESCE(NEW."name", ''), COALESCE(NEW."identifier", ''), COALESCE(NEW."type", '') || ' ' || COALESCE(NEW."category", '') || ' ' || COALESCE(NEW."dataType", '') || ' ' || COALESCE(NEW."permissions", '') || ' ' || COALESCE(NEW."channelId", ''));
337
+ END`);
338
+ await queryRunner.query(`CREATE TRIGGER "TRG_home_search_properties_delete"
339
+ AFTER DELETE ON "devices_module_channels_properties"
340
+ BEGIN
341
+ DELETE FROM "home_context_entity_search_fts" WHERE "entity_kind" = 'property' AND "entity_id" = OLD."id";
342
+ END`);
343
+ const hasSearchFts = await queryRunner.hasTable('home_context_entity_search_fts');
344
+ if (hasSearchFts) {
345
+ await queryRunner.query(`UPDATE "devices_module_devices" SET "category" = "category"`);
346
+ await queryRunner.query(`UPDATE "devices_module_channels_properties" SET "category" = "category"`);
347
+ }
348
+ if (transactionStarted) {
349
+ await queryRunner.commitTransaction();
350
+ }
351
+ }
352
+ catch (error) {
353
+ if (transactionStarted) {
354
+ await queryRunner.rollbackTransaction();
355
+ }
356
+ throw error;
357
+ }
358
+ finally {
359
+ await queryRunner.query('PRAGMA foreign_keys = ON');
360
+ }
361
+ }
362
+ }
363
+ exports.AddHardwareInputCategories1000000000026 = AddHardwareInputCategories1000000000026;
364
+ //# sourceMappingURL=1000000000026-AddHardwareInputCategories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1000000000026-AddHardwareInputCategories.js","sourceRoot":"","sources":["../../src/migrations/1000000000026-AddHardwareInputCategories.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  import { FastifyRequest as Request, FastifyReply as Response } from 'fastify';
2
+ import { ChannelInputCapabilitiesResponseModel } from '../models/channel-input-capabilities.model';
2
3
  import { ChannelResponseModel, ChannelsResponseModel } from '../models/devices-response.model';
4
+ import { ChannelInputOccurrencesService } from '../services/channel-input-occurrences.service';
3
5
  import { ChannelsTypeMapperService } from '../services/channels-type-mapper.service';
4
6
  import { ChannelsService } from '../services/channels.service';
5
7
  export declare class ChannelsController {
6
8
  private readonly channelsService;
7
9
  private readonly channelsMapperService;
10
+ private readonly channelInputOccurrencesService;
8
11
  private readonly logger;
9
- constructor(channelsService: ChannelsService, channelsMapperService: ChannelsTypeMapperService);
12
+ constructor(channelsService: ChannelsService, channelsMapperService: ChannelsTypeMapperService, channelInputOccurrencesService: ChannelInputOccurrencesService);
10
13
  findAll(): Promise<ChannelsResponseModel>;
11
14
  findOne(id: string): Promise<ChannelResponseModel>;
15
+ getInputCapabilities(id: string): Promise<ChannelInputCapabilitiesResponseModel>;
12
16
  create(createDto: {
13
17
  data: object;
14
18
  }, res: Response, req: Request): Promise<ChannelResponseModel>;
@@ -25,13 +25,16 @@ const devices_constants_1 = require("../devices.constants");
25
25
  const devices_exceptions_1 = require("../devices.exceptions");
26
26
  const create_channel_dto_1 = require("../dto/create-channel.dto");
27
27
  const update_channel_dto_1 = require("../dto/update-channel.dto");
28
+ const channel_input_capabilities_model_1 = require("../models/channel-input-capabilities.model");
28
29
  const devices_response_model_1 = require("../models/devices-response.model");
30
+ const channel_input_occurrences_service_1 = require("../services/channel-input-occurrences.service");
29
31
  const channels_type_mapper_service_1 = require("../services/channels-type-mapper.service");
30
32
  const channels_service_1 = require("../services/channels.service");
31
33
  let ChannelsController = class ChannelsController {
32
- constructor(channelsService, channelsMapperService) {
34
+ constructor(channelsService, channelsMapperService, channelInputOccurrencesService) {
33
35
  this.channelsService = channelsService;
34
36
  this.channelsMapperService = channelsMapperService;
37
+ this.channelInputOccurrencesService = channelInputOccurrencesService;
35
38
  this.logger = (0, extension_logger_service_1.createExtensionLogger)(devices_constants_1.DEVICES_MODULE_NAME, 'ChannelsController');
36
39
  }
37
40
  async findAll() {
@@ -50,6 +53,16 @@ let ChannelsController = class ChannelsController {
50
53
  response.data = channel;
51
54
  return response;
52
55
  }
56
+ async getInputCapabilities(id) {
57
+ this.logger.debug(`Fetching input capabilities for channel id=${id}`);
58
+ const capabilities = await this.channelInputOccurrencesService.getInputCapabilities(id);
59
+ if (!capabilities) {
60
+ throw new common_1.NotFoundException(`Channel with ID ${id} was not found.`);
61
+ }
62
+ const response = new channel_input_capabilities_model_1.ChannelInputCapabilitiesResponseModel();
63
+ response.data = capabilities;
64
+ return response;
65
+ }
53
66
  async create(createDto, res, req) {
54
67
  this.logger.debug('Incoming request to create a new channel');
55
68
  const type = 'type' in createDto.data && typeof createDto.data.type === 'string' ? createDto.data.type : undefined;
@@ -192,6 +205,24 @@ __decorate([
192
205
  __metadata("design:paramtypes", [String]),
193
206
  __metadata("design:returntype", Promise)
194
207
  ], ChannelsController.prototype, "findOne", null);
208
+ __decorate([
209
+ (0, swagger_1.ApiOperation)({
210
+ tags: [devices_constants_1.DEVICES_MODULE_API_TAG_NAME],
211
+ summary: 'Retrieve input capabilities of a specific channel',
212
+ description: 'Fetches input capabilities and supported event interactions for a channel.',
213
+ operationId: 'get-devices-module-channel-input-capabilities',
214
+ }),
215
+ (0, swagger_1.ApiParam)({ name: 'id', type: 'string', format: 'uuid', description: 'Channel ID' }),
216
+ (0, api_documentation_decorator_1.ApiSuccessResponse)(channel_input_capabilities_model_1.ChannelInputCapabilitiesResponseModel, 'Input capabilities of the channel successfully retrieved.'),
217
+ (0, api_documentation_decorator_1.ApiBadRequestResponse)('Invalid UUID format'),
218
+ (0, api_documentation_decorator_1.ApiNotFoundResponse)('Channel not found'),
219
+ (0, api_documentation_decorator_1.ApiInternalServerErrorResponse)('Internal server error'),
220
+ (0, common_1.Get)(':id/input-capabilities'),
221
+ __param(0, (0, common_1.Param)('id', new common_1.ParseUUIDPipe({ version: '4' }))),
222
+ __metadata("design:type", Function),
223
+ __metadata("design:paramtypes", [String]),
224
+ __metadata("design:returntype", Promise)
225
+ ], ChannelsController.prototype, "getInputCapabilities", null);
195
226
  __decorate([
196
227
  (0, swagger_1.ApiOperation)({
197
228
  tags: [devices_constants_1.DEVICES_MODULE_API_TAG_NAME],
@@ -256,6 +287,7 @@ exports.ChannelsController = ChannelsController = __decorate([
256
287
  (0, swagger_1.ApiTags)(devices_constants_1.DEVICES_MODULE_API_TAG_NAME),
257
288
  (0, common_1.Controller)('channels'),
258
289
  __metadata("design:paramtypes", [channels_service_1.ChannelsService,
259
- channels_type_mapper_service_1.ChannelsTypeMapperService])
290
+ channels_type_mapper_service_1.ChannelsTypeMapperService,
291
+ channel_input_occurrences_service_1.ChannelInputOccurrencesService])
260
292
  ], ChannelsController);
261
293
  //# sourceMappingURL=channels.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.controller.js","sourceRoot":"","sources":["../../../../src/modules/devices/controllers/channels.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.controller.js","sourceRoot":"","sources":["../../../../src/modules/devices/controllers/channels.controller.ts"],"names":[],"mappings":"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"}
@@ -166,19 +166,33 @@ let ChannelsPropertiesController = class ChannelsPropertiesController {
166
166
  }
167
167
  const commandValue = dtoInstance.value;
168
168
  const effectivePropertyUpdate = { ...dtoInstance };
169
+ let commandReceipt = null;
170
+ if (typeof commandValue !== 'undefined' && commandValue !== null) {
171
+ if (!property.permissions.some((permission) => [devices_constants_1.PermissionType.READ_WRITE, devices_constants_1.PermissionType.WRITE_ONLY].includes(permission))) {
172
+ throw new common_1.BadRequestException([JSON.stringify({ field: 'value', reason: 'Property is not writable.' })]);
173
+ }
174
+ }
169
175
  if (typeof commandValue !== 'undefined' &&
170
176
  commandValue !== null &&
171
177
  (await this.propertyCommandService.usesAuthoritativePropertyReadback(channel.device, property, effectivePropertyUpdate))) {
172
178
  dtoInstance.value = undefined;
173
179
  }
180
+ else if (typeof commandValue !== 'undefined' && commandValue !== null) {
181
+ commandReceipt = await this.propertyCommandService.prepareApiPropertyCommand(channel.device, channel, property, commandValue);
182
+ if (!commandReceipt?.optimisticEligible || commandReceipt.baseline === null) {
183
+ dtoInstance.value = undefined;
184
+ }
185
+ }
174
186
  try {
175
- const updatedProperty = await this.channelsPropertiesService.update(property.id, dtoInstance);
187
+ const updateOptions = commandReceipt?.optimisticEligible && commandReceipt.baseline !== null
188
+ ? { commandOrigin: { handle: commandReceipt.handle, baseline: commandReceipt.baseline } }
189
+ : undefined;
190
+ const updatedProperty = await this.channelsPropertiesService.update(property.id, dtoInstance, updateOptions);
176
191
  this.logger.debug(`Successfully updated property id=${updatedProperty.id} for channelId=${channel.id}`);
177
192
  if (typeof commandValue !== 'undefined' && commandValue !== null) {
178
193
  const deviceId = typeof channel.device === 'string' ? channel.device : channel.device.id;
179
- this.propertyCommandService
180
- .processApiPropertyCommand(deviceId, channel.id, updatedProperty.id, commandValue)
181
- .catch((err) => {
194
+ const command = this.propertyCommandService.processApiPropertyCommand(deviceId, channel.id, updatedProperty.id, commandValue, commandReceipt ?? undefined);
195
+ command.catch((err) => {
182
196
  this.logger.error(`Failed to send device command for property id=${updatedProperty.id}: ${err.message}`);
183
197
  });
184
198
  }
@@ -187,6 +201,9 @@ let ChannelsPropertiesController = class ChannelsPropertiesController {
187
201
  return response;
188
202
  }
189
203
  catch (error) {
204
+ if (commandReceipt !== null) {
205
+ this.propertyCommandService.failApiPropertyCommandReceipt(commandReceipt);
206
+ }
190
207
  if (error instanceof devices_exceptions_1.DevicesException) {
191
208
  throw new common_1.UnprocessableEntityException('Channel property could not be updated. Please try again later');
192
209
  }