@fastybird/smart-panel-backend 1.1.0-alpha.5 → 1.1.0-alpha.50

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 (538) hide show
  1. package/dist/app.module.js +9 -1
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/common/utils/cancellable-exec.utils.d.ts +5 -0
  4. package/dist/common/utils/cancellable-exec.utils.js +34 -0
  5. package/dist/common/utils/cancellable-exec.utils.js.map +1 -0
  6. package/dist/common/utils/remote-access-observation.utils.d.ts +11 -0
  7. package/dist/common/utils/remote-access-observation.utils.js +89 -0
  8. package/dist/common/utils/remote-access-observation.utils.js.map +1 -0
  9. package/dist/dataSource.js +1 -0
  10. package/dist/dataSource.js.map +1 -1
  11. package/dist/migrations/1000000000026-AddHardwareInputCategories.d.ts +7 -0
  12. package/dist/migrations/1000000000026-AddHardwareInputCategories.js +364 -0
  13. package/dist/migrations/1000000000026-AddHardwareInputCategories.js.map +1 -0
  14. package/dist/modules/auth/auth.module.js +4 -0
  15. package/dist/modules/auth/auth.module.js.map +1 -1
  16. package/dist/modules/auth/guards/auth.guard.js +8 -21
  17. package/dist/modules/auth/guards/auth.guard.js.map +1 -1
  18. package/dist/modules/auth/services/token-metadata.service.d.ts +42 -0
  19. package/dist/modules/auth/services/token-metadata.service.js +202 -0
  20. package/dist/modules/auth/services/token-metadata.service.js.map +1 -0
  21. package/dist/modules/auth/services/token-usage.service.d.ts +22 -0
  22. package/dist/modules/auth/services/token-usage.service.js +93 -0
  23. package/dist/modules/auth/services/token-usage.service.js.map +1 -0
  24. package/dist/modules/auth/services/tokens.service.d.ts +10 -3
  25. package/dist/modules/auth/services/tokens.service.js +26 -10
  26. package/dist/modules/auth/services/tokens.service.js.map +1 -1
  27. package/dist/modules/devices/controllers/channels.controller.d.ts +5 -1
  28. package/dist/modules/devices/controllers/channels.controller.js +34 -2
  29. package/dist/modules/devices/controllers/channels.controller.js.map +1 -1
  30. package/dist/modules/devices/controllers/channels.properties.controller.js +21 -4
  31. package/dist/modules/devices/controllers/channels.properties.controller.js.map +1 -1
  32. package/dist/modules/devices/controllers/devices.channels.controller.d.ts +5 -1
  33. package/dist/modules/devices/controllers/devices.channels.controller.js +38 -2
  34. package/dist/modules/devices/controllers/devices.channels.controller.js.map +1 -1
  35. package/dist/modules/devices/controllers/devices.channels.properties.controller.js +21 -4
  36. package/dist/modules/devices/controllers/devices.channels.properties.controller.js.map +1 -1
  37. package/dist/modules/devices/devices.constants.d.ts +6 -0
  38. package/dist/modules/devices/devices.constants.js +6 -0
  39. package/dist/modules/devices/devices.constants.js.map +1 -1
  40. package/dist/modules/devices/devices.module.js +27 -0
  41. package/dist/modules/devices/devices.module.js.map +1 -1
  42. package/dist/modules/devices/devices.openapi.d.ts +3 -1
  43. package/dist/modules/devices/devices.openapi.js +7 -0
  44. package/dist/modules/devices/devices.openapi.js.map +1 -1
  45. package/dist/modules/devices/dto/channel-input-occurrence.dto.d.ts +10 -0
  46. package/dist/modules/devices/dto/channel-input-occurrence.dto.js +99 -0
  47. package/dist/modules/devices/dto/channel-input-occurrence.dto.js.map +1 -0
  48. package/dist/modules/devices/dto/property-command.dto.js +2 -8
  49. package/dist/modules/devices/dto/property-command.dto.js.map +1 -1
  50. package/dist/modules/devices/models/channel-input-capabilities.model.d.ts +20 -0
  51. package/dist/modules/devices/models/channel-input-capabilities.model.js +111 -0
  52. package/dist/modules/devices/models/channel-input-capabilities.model.js.map +1 -0
  53. package/dist/modules/devices/models/channel-input-occurrence.model.d.ts +22 -0
  54. package/dist/modules/devices/models/channel-input-occurrence.model.js +154 -0
  55. package/dist/modules/devices/models/channel-input-occurrence.model.js.map +1 -0
  56. package/dist/modules/devices/services/channel-input-deduplication.service.d.ts +17 -0
  57. package/dist/modules/devices/services/channel-input-deduplication.service.js +88 -0
  58. package/dist/modules/devices/services/channel-input-deduplication.service.js.map +1 -0
  59. package/dist/modules/devices/services/channel-input-occurrences.service.d.ts +21 -0
  60. package/dist/modules/devices/services/channel-input-occurrences.service.js +163 -0
  61. package/dist/modules/devices/services/channel-input-occurrences.service.js.map +1 -0
  62. package/dist/modules/devices/services/channels.properties.service.d.ts +32 -3
  63. package/dist/modules/devices/services/channels.properties.service.js +360 -51
  64. package/dist/modules/devices/services/channels.properties.service.js.map +1 -1
  65. package/dist/modules/devices/services/channels.service.d.ts +1 -0
  66. package/dist/modules/devices/services/channels.service.js +52 -38
  67. package/dist/modules/devices/services/channels.service.js.map +1 -1
  68. package/dist/modules/devices/services/command-latency-trace-collector.service.d.ts +101 -0
  69. package/dist/modules/devices/services/command-latency-trace-collector.service.js +451 -0
  70. package/dist/modules/devices/services/command-latency-trace-collector.service.js.map +1 -0
  71. package/dist/modules/devices/services/device-command-graph.service.d.ts +18 -0
  72. package/dist/modules/devices/services/device-command-graph.service.js +92 -0
  73. package/dist/modules/devices/services/device-command-graph.service.js.map +1 -0
  74. package/dist/modules/devices/services/device-structure-lock.service.d.ts +10 -2
  75. package/dist/modules/devices/services/device-structure-lock.service.js +86 -7
  76. package/dist/modules/devices/services/device-structure-lock.service.js.map +1 -1
  77. package/dist/modules/devices/services/devices.service.d.ts +2 -0
  78. package/dist/modules/devices/services/devices.service.js +78 -64
  79. package/dist/modules/devices/services/devices.service.js.map +1 -1
  80. package/dist/modules/devices/services/module-reset.service.d.ts +3 -1
  81. package/dist/modules/devices/services/module-reset.service.js +21 -16
  82. package/dist/modules/devices/services/module-reset.service.js.map +1 -1
  83. package/dist/modules/devices/services/platform.registry.service.d.ts +2 -2
  84. package/dist/modules/devices/services/platform.registry.service.js.map +1 -1
  85. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +47 -0
  86. package/dist/modules/devices/services/property-command-dispatch.service.js +231 -0
  87. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -0
  88. package/dist/modules/devices/services/property-command-window.service.d.ts +71 -0
  89. package/dist/modules/devices/services/property-command-window.service.js +206 -0
  90. package/dist/modules/devices/services/property-command-window.service.js.map +1 -0
  91. package/dist/modules/devices/services/property-command.service.d.ts +26 -7
  92. package/dist/modules/devices/services/property-command.service.js +95 -28
  93. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  94. package/dist/modules/devices/services/property-metadata.service.d.ts +38 -0
  95. package/dist/modules/devices/services/property-metadata.service.js +210 -0
  96. package/dist/modules/devices/services/property-metadata.service.js.map +1 -0
  97. package/dist/modules/devices/services/property-state-coordinator.service.d.ts +4 -0
  98. package/dist/modules/devices/services/property-state-coordinator.service.js +35 -0
  99. package/dist/modules/devices/services/property-state-coordinator.service.js.map +1 -0
  100. package/dist/modules/devices/services/property-value-lock.service.d.ts +4 -1
  101. package/dist/modules/devices/services/property-value-lock.service.js +16 -2
  102. package/dist/modules/devices/services/property-value-lock.service.js.map +1 -1
  103. package/dist/modules/devices/services/property-value.service.d.ts +3 -0
  104. package/dist/modules/devices/services/property-value.service.js +29 -5
  105. package/dist/modules/devices/services/property-value.service.js.map +1 -1
  106. package/dist/modules/devices/utils/device-graph-query.utils.d.ts +3 -0
  107. package/dist/modules/devices/utils/device-graph-query.utils.js +23 -0
  108. package/dist/modules/devices/utils/device-graph-query.utils.js.map +1 -0
  109. package/dist/modules/devices/utils/schema.utils.js +1 -1
  110. package/dist/modules/devices/utils/schema.utils.js.map +1 -1
  111. package/dist/modules/devices/validators/channel-exists-constraint.validator.d.ts +1 -3
  112. package/dist/modules/devices/validators/channel-exists-constraint.validator.js +3 -14
  113. package/dist/modules/devices/validators/channel-exists-constraint.validator.js.map +1 -1
  114. package/dist/modules/devices/validators/channel-property-exists-constraint.validator.d.ts +1 -3
  115. package/dist/modules/devices/validators/channel-property-exists-constraint.validator.js +3 -14
  116. package/dist/modules/devices/validators/channel-property-exists-constraint.validator.js.map +1 -1
  117. package/dist/modules/devices/validators/device-exists-constraint.validator.js +1 -2
  118. package/dist/modules/devices/validators/device-exists-constraint.validator.js.map +1 -1
  119. package/dist/modules/devices/validators/property-command-target-constraint.validator.d.ts +9 -0
  120. package/dist/modules/devices/validators/property-command-target-constraint.validator.js +58 -0
  121. package/dist/modules/devices/validators/property-command-target-constraint.validator.js.map +1 -0
  122. package/dist/modules/mdns/services/mdns.service.js +3 -1
  123. package/dist/modules/mdns/services/mdns.service.js.map +1 -1
  124. package/dist/modules/platform/platforms/abstract.platform.d.ts +2 -1
  125. package/dist/modules/platform/platforms/abstract.platform.js +2 -1
  126. package/dist/modules/platform/platforms/abstract.platform.js.map +1 -1
  127. package/dist/modules/platform/platforms/raspberry.platform.js +5 -10
  128. package/dist/modules/platform/platforms/raspberry.platform.js.map +1 -1
  129. package/dist/modules/platform/utils/linux-network-interface.utils.d.ts +3 -0
  130. package/dist/modules/platform/utils/linux-network-interface.utils.js +48 -0
  131. package/dist/modules/platform/utils/linux-network-interface.utils.js.map +1 -0
  132. package/dist/modules/remote-access/controllers/remote-access.controller.js +11 -6
  133. package/dist/modules/remote-access/controllers/remote-access.controller.js.map +1 -1
  134. package/dist/modules/remote-access/models/provider.model.d.ts +3 -0
  135. package/dist/modules/remote-access/models/provider.model.js +23 -0
  136. package/dist/modules/remote-access/models/provider.model.js.map +1 -1
  137. package/dist/modules/remote-access/models/status.model.d.ts +2 -0
  138. package/dist/modules/remote-access/models/status.model.js +18 -1
  139. package/dist/modules/remote-access/models/status.model.js.map +1 -1
  140. package/dist/modules/remote-access/models/urls.model.d.ts +2 -0
  141. package/dist/modules/remote-access/models/urls.model.js +17 -0
  142. package/dist/modules/remote-access/models/urls.model.js.map +1 -1
  143. package/dist/modules/remote-access/platforms/remote-access-provider.platform.d.ts +18 -1
  144. package/dist/modules/remote-access/remote-access.constants.d.ts +2 -1
  145. package/dist/modules/remote-access/remote-access.constants.js +2 -1
  146. package/dist/modules/remote-access/remote-access.constants.js.map +1 -1
  147. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.d.ts +1 -0
  148. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js +4 -1
  149. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js.map +1 -1
  150. package/dist/modules/remote-access/services/remote-access-status.service.d.ts +40 -8
  151. package/dist/modules/remote-access/services/remote-access-status.service.js +314 -65
  152. package/dist/modules/remote-access/services/remote-access-status.service.js.map +1 -1
  153. package/dist/modules/remote-access/services/remote-access-url.service.d.ts +2 -2
  154. package/dist/modules/remote-access/services/remote-access-url.service.js +4 -2
  155. package/dist/modules/remote-access/services/remote-access-url.service.js.map +1 -1
  156. package/dist/modules/spaces/services/module-reset.service.d.ts +5 -1
  157. package/dist/modules/spaces/services/module-reset.service.js +10 -2
  158. package/dist/modules/spaces/services/module-reset.service.js.map +1 -1
  159. package/dist/modules/spaces/services/space-activity.service.d.ts +14 -0
  160. package/dist/modules/spaces/services/space-activity.service.js +56 -0
  161. package/dist/modules/spaces/services/space-activity.service.js.map +1 -0
  162. package/dist/modules/spaces/spaces.module.js +5 -0
  163. package/dist/modules/spaces/spaces.module.js.map +1 -1
  164. package/dist/modules/spaces/subscribers/space-activity.subscriber.d.ts +17 -0
  165. package/dist/modules/spaces/subscribers/space-activity.subscriber.js +89 -0
  166. package/dist/modules/spaces/subscribers/space-activity.subscriber.js.map +1 -0
  167. package/dist/modules/storage/services/storage-write-buffer.d.ts +17 -0
  168. package/dist/modules/storage/services/storage-write-buffer.js +67 -0
  169. package/dist/modules/storage/services/storage-write-buffer.js.map +1 -0
  170. package/dist/modules/storage/services/storage.service.d.ts +9 -2
  171. package/dist/modules/storage/services/storage.service.js +54 -1
  172. package/dist/modules/storage/services/storage.service.js.map +1 -1
  173. package/dist/modules/system/scripts/update-worker.sh +1168 -61
  174. package/dist/modules/system/services/privileged-worker.service.d.ts +3 -0
  175. package/dist/modules/system/services/privileged-worker.service.js +62 -27
  176. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  177. package/dist/modules/system/services/system.service.d.ts +2 -0
  178. package/dist/modules/system/services/system.service.js +22 -1
  179. package/dist/modules/system/services/system.service.js.map +1 -1
  180. package/dist/modules/system/services/update-executor.service.d.ts +20 -2
  181. package/dist/modules/system/services/update-executor.service.js +272 -26
  182. package/dist/modules/system/services/update-executor.service.js.map +1 -1
  183. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +4 -1
  184. package/dist/modules/websocket/gateway/websocket.gateway.js +29 -5
  185. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  186. package/dist/modules/websocket/services/command-acknowledgement-trace.service.d.ts +143 -0
  187. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js +523 -0
  188. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js.map +1 -0
  189. package/dist/modules/websocket/services/ws-auth.service.js +12 -35
  190. package/dist/modules/websocket/services/ws-auth.service.js.map +1 -1
  191. package/dist/modules/websocket/websocket.module.js +9 -1
  192. package/dist/modules/websocket/websocket.module.js.map +1 -1
  193. package/dist/plugins/devices-home-assistant/devices-home-assistant.openapi.d.ts +2 -2
  194. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.d.ts +6 -1
  195. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js +16 -1
  196. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js.map +1 -1
  197. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.d.ts +1 -0
  198. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js +11 -0
  199. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js.map +1 -1
  200. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.d.ts +19 -0
  201. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js +51 -0
  202. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js.map +1 -0
  203. package/dist/plugins/devices-home-assistant/mappings/definitions/entity-mappings.yaml +56 -7
  204. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.d.ts +1 -0
  205. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js +11 -0
  206. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js.map +1 -1
  207. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js +17 -0
  208. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js.map +1 -1
  209. package/dist/plugins/devices-home-assistant/services/ha-mdns-discoverer.service.js +3 -1
  210. package/dist/plugins/devices-home-assistant/services/ha-mdns-discoverer.service.js.map +1 -1
  211. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.d.ts +27 -0
  212. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js +271 -0
  213. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js.map +1 -0
  214. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.d.ts +2 -2
  215. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js +33 -14
  216. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js.map +1 -1
  217. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js +24 -4
  218. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js.map +1 -1
  219. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.d.ts +4 -1
  220. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +84 -5
  221. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  222. package/dist/plugins/devices-home-assistant/services/wizard.service.js +1 -0
  223. package/dist/plugins/devices-home-assistant/services/wizard.service.js.map +1 -1
  224. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.d.ts +2 -0
  225. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js +50 -0
  226. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js.map +1 -0
  227. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.d.ts +4 -1
  228. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +39 -4
  229. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  230. package/dist/plugins/devices-homekit/mappers/base.mapper.js +30 -6
  231. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  232. package/dist/plugins/devices-homekit/mappers/button.mapper.d.ts +15 -0
  233. package/dist/plugins/devices-homekit/mappers/button.mapper.js +143 -0
  234. package/dist/plugins/devices-homekit/mappers/button.mapper.js.map +1 -0
  235. package/dist/plugins/devices-homekit/mappers/characteristic-write.d.ts +2 -0
  236. package/dist/plugins/devices-homekit/mappers/characteristic-write.js +17 -0
  237. package/dist/plugins/devices-homekit/mappers/characteristic-write.js.map +1 -0
  238. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +17 -1
  239. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.d.ts +7 -0
  240. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +96 -84
  241. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  242. package/dist/plugins/devices-homekit/services/homekit-bridge.service.js +2 -0
  243. package/dist/plugins/devices-homekit/services/homekit-bridge.service.js.map +1 -1
  244. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.d.ts +5 -1
  245. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js +42 -0
  246. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js.map +1 -1
  247. package/dist/plugins/devices-homekit/utils/ciao-receive-guard.d.ts +1 -0
  248. package/dist/plugins/devices-homekit/utils/ciao-receive-guard.js +36 -0
  249. package/dist/plugins/devices-homekit/utils/ciao-receive-guard.js.map +1 -0
  250. package/dist/plugins/devices-homey/mappings/definitions/channels.yaml +50 -0
  251. package/dist/plugins/devices-homey/mappings/definitions/devices.yaml +18 -0
  252. package/dist/plugins/devices-homey/mappings/definitions/properties.yaml +55 -0
  253. package/dist/plugins/devices-homey/mappings/device-support.js +10 -0
  254. package/dist/plugins/devices-homey/mappings/device-support.js.map +1 -1
  255. package/dist/plugins/devices-homey/mappings/mapping-loader.service.d.ts +1 -0
  256. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js +66 -8
  257. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js.map +1 -1
  258. package/dist/plugins/devices-homey/models/inventory.model.d.ts +2 -1
  259. package/dist/plugins/devices-homey/models/inventory.model.js +1 -0
  260. package/dist/plugins/devices-homey/models/inventory.model.js.map +1 -1
  261. package/dist/plugins/devices-homey/models/mapping-preview.model.d.ts +1 -0
  262. package/dist/plugins/devices-homey/models/mapping-preview.model.js +1 -0
  263. package/dist/plugins/devices-homey/models/mapping-preview.model.js.map +1 -1
  264. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js +7 -0
  265. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js.map +1 -1
  266. package/dist/plugins/devices-homey/services/homey-synchronizer.service.d.ts +3 -1
  267. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js +37 -6
  268. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js.map +1 -1
  269. package/dist/plugins/devices-reterminal/services/reterminal-button.service.d.ts +7 -3
  270. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js +63 -17
  271. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js.map +1 -1
  272. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +36 -3
  273. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +707 -42
  274. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  275. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +11 -1
  276. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +100 -10
  277. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  278. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +3 -2
  279. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  280. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js +2 -0
  281. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js.map +1 -1
  282. package/dist/plugins/devices-shelly-ng/mappings/definitions/inputs.yaml +80 -0
  283. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +7 -1
  284. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  285. package/dist/plugins/devices-shelly-ng/mappings/mapping.types.d.ts +6 -3
  286. package/dist/plugins/devices-shelly-ng/mappings/schema/mapping-schema.json +5 -0
  287. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +153 -8
  288. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  289. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.d.ts +51 -0
  290. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js +549 -0
  291. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js.map +1 -0
  292. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +15 -2
  293. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +140 -35
  294. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  295. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js +3 -0
  296. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js.map +1 -1
  297. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +1 -0
  298. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +14 -4
  299. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  300. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.d.ts +2 -0
  301. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js +66 -4
  302. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js.map +1 -1
  303. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js +2 -0
  304. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js.map +1 -1
  305. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js +7 -0
  306. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js.map +1 -1
  307. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.d.ts +3 -1
  308. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js +20 -2
  309. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js.map +1 -1
  310. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.d.ts +16 -0
  311. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js +107 -0
  312. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js.map +1 -0
  313. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.d.ts +7 -1
  314. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js +98 -3
  315. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js.map +1 -1
  316. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.d.ts +17 -0
  317. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js +205 -0
  318. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js.map +1 -0
  319. package/dist/plugins/devices-third-party/devices-third-party.openapi.d.ts +1 -1
  320. package/dist/plugins/devices-third-party/devices-third-party.plugin.js +2 -1
  321. package/dist/plugins/devices-third-party/devices-third-party.plugin.js.map +1 -1
  322. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.d.ts +5 -0
  323. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js +50 -0
  324. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js.map +1 -0
  325. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.d.ts +8 -0
  326. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js +81 -0
  327. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js.map +1 -0
  328. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js +19 -4
  329. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js.map +1 -1
  330. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.d.ts +2 -0
  331. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js +57 -0
  332. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js.map +1 -1
  333. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.d.ts +3 -8
  334. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js +6 -31
  335. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js.map +1 -1
  336. package/dist/plugins/devices-wled/services/wled-mdns-discoverer.service.js +3 -1
  337. package/dist/plugins/devices-wled/services/wled-mdns-discoverer.service.js.map +1 -1
  338. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.d.ts +3 -0
  339. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js +41 -5
  340. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js.map +1 -1
  341. package/dist/plugins/devices-zigbee2mqtt/interfaces/zigbee2mqtt.interface.d.ts +7 -1
  342. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js +16 -15
  343. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js.map +1 -1
  344. package/dist/plugins/devices-zigbee2mqtt/mappings/definitions/remotes.yaml +505 -74
  345. package/dist/plugins/devices-zigbee2mqtt/mappings/schema/mapping-schema.json +3 -3
  346. package/dist/plugins/devices-zigbee2mqtt/mappings/transformers/transformer.types.d.ts +1 -1
  347. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +8 -2
  348. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js +6 -5
  349. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -1
  350. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js +18 -11
  351. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js.map +1 -1
  352. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.d.ts +9 -3
  353. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js +166 -3
  354. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js.map +1 -1
  355. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +5 -2
  356. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  357. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +1 -0
  358. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +44 -4
  359. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  360. package/dist/plugins/influx-v1/services/influx-v1-managed.service.js +2 -2
  361. package/dist/plugins/influx-v1/services/influx-v1-managed.service.js.map +1 -1
  362. package/dist/plugins/influx-v2/services/influx-v2-managed.service.js +2 -2
  363. package/dist/plugins/influx-v2/services/influx-v2-managed.service.js.map +1 -1
  364. package/dist/plugins/memory-storage/services/memory-storage-managed.service.js +2 -2
  365. package/dist/plugins/memory-storage/services/memory-storage-managed.service.js.map +1 -1
  366. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +19 -0
  367. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +159 -0
  368. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -0
  369. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +13 -0
  370. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +99 -0
  371. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -0
  372. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.d.ts +9 -0
  373. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js +94 -0
  374. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js.map +1 -0
  375. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.d.ts +9 -0
  376. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js +92 -0
  377. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js.map +1 -0
  378. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.d.ts +7 -0
  379. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js +48 -0
  380. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js.map +1 -0
  381. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +44 -0
  382. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +369 -0
  383. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -0
  384. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.d.ts +24 -0
  385. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js +27 -0
  386. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js.map +1 -0
  387. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.d.ts +8 -0
  388. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js +19 -0
  389. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js.map +1 -0
  390. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.d.ts +4 -0
  391. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js +20 -0
  392. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js.map +1 -0
  393. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.d.ts +21 -0
  394. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js +135 -0
  395. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js.map +1 -0
  396. package/dist/plugins/remote-access-cloudflare-tunnel/scripts/cloudflared-setup.sh +185 -0
  397. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +100 -0
  398. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +564 -0
  399. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -0
  400. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +22 -0
  401. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +43 -0
  402. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -0
  403. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.d.ts +38 -0
  404. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js +147 -0
  405. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js.map +1 -0
  406. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +15 -0
  407. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +55 -0
  408. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -0
  409. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +8 -0
  410. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +49 -0
  411. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -0
  412. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.d.ts +27 -0
  413. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js +139 -0
  414. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js.map +1 -0
  415. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +11 -6
  416. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +115 -25
  417. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  418. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -5
  419. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +26 -16
  420. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  421. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +16 -0
  422. package/dist/plugins/remote-access-tailscale/models/status.model.js +100 -1
  423. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  424. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +3 -0
  425. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +4 -1
  426. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  427. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +17 -1
  428. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +33 -1
  429. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -1
  430. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  431. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +1 -0
  432. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  433. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +3 -1
  434. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js.map +1 -1
  435. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +8 -4
  436. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +58 -14
  437. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  438. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +8 -3
  439. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +175 -151
  440. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  441. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +54 -7
  442. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +528 -109
  443. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  444. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.d.ts +33 -0
  445. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js +167 -0
  446. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js.map +1 -0
  447. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.d.ts +13 -1
  448. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js +8 -2
  449. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js.map +1 -1
  450. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +1 -1
  451. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +7 -6
  452. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  453. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +1 -3
  454. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +9 -11
  455. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  456. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.d.ts +5 -0
  457. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js +36 -0
  458. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js.map +1 -0
  459. package/dist/plugins/scenes-local/platforms/local-scene.platform.d.ts +3 -1
  460. package/dist/plugins/scenes-local/platforms/local-scene.platform.js +12 -7
  461. package/dist/plugins/scenes-local/platforms/local-scene.platform.js.map +1 -1
  462. package/dist/plugins/simulator/controllers/simulator.controller.d.ts +8 -2
  463. package/dist/plugins/simulator/controllers/simulator.controller.js +102 -2
  464. package/dist/plugins/simulator/controllers/simulator.controller.js.map +1 -1
  465. package/dist/plugins/simulator/dto/simulate-occurrence.dto.d.ts +12 -0
  466. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js +122 -0
  467. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js.map +1 -0
  468. package/dist/plugins/simulator/models/simulator-response.model.d.ts +12 -0
  469. package/dist/plugins/simulator/models/simulator-response.model.js +84 -1
  470. package/dist/plugins/simulator/models/simulator-response.model.js.map +1 -1
  471. package/dist/plugins/simulator/scenarios/definitions/small-apartment.yaml +78 -0
  472. package/dist/plugins/simulator/services/scenario-executor.service.js +3 -1
  473. package/dist/plugins/simulator/services/scenario-executor.service.js.map +1 -1
  474. package/dist/plugins/simulator/services/simulation.service.js +10 -1
  475. package/dist/plugins/simulator/services/simulation.service.js.map +1 -1
  476. package/dist/plugins/simulator/simulator.openapi.d.ts +3 -2
  477. package/dist/plugins/simulator/simulator.openapi.js +5 -0
  478. package/dist/plugins/simulator/simulator.openapi.js.map +1 -1
  479. package/dist/plugins/simulator/simulators/device-simulator.interface.d.ts +2 -0
  480. package/dist/plugins/simulator/simulators/device-simulator.interface.js +83 -0
  481. package/dist/plugins/simulator/simulators/device-simulator.interface.js.map +1 -1
  482. package/dist/plugins/simulator/simulators/index.d.ts +1 -0
  483. package/dist/plugins/simulator/simulators/index.js +1 -0
  484. package/dist/plugins/simulator/simulators/index.js.map +1 -1
  485. package/dist/plugins/simulator/simulators/input-controller.simulator.d.ts +10 -0
  486. package/dist/plugins/simulator/simulators/input-controller.simulator.js +57 -0
  487. package/dist/plugins/simulator/simulators/input-controller.simulator.js.map +1 -0
  488. package/dist/plugins/simulator/simulators/lighting.simulator.js +1 -0
  489. package/dist/plugins/simulator/simulators/lighting.simulator.js.map +1 -1
  490. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.d.ts +6 -7
  491. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js +19 -44
  492. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js.map +1 -1
  493. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.d.ts +4 -4
  494. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js +9 -22
  495. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js.map +1 -1
  496. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.d.ts +4 -4
  497. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js +9 -22
  498. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js.map +1 -1
  499. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.d.ts +4 -4
  500. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js +9 -22
  501. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js.map +1 -1
  502. package/dist/plugins/spaces-home-control/services/climate-intent.service.d.ts +3 -1
  503. package/dist/plugins/spaces-home-control/services/climate-intent.service.js +6 -3
  504. package/dist/plugins/spaces-home-control/services/climate-intent.service.js.map +1 -1
  505. package/dist/plugins/spaces-home-control/services/covers-intent.service.d.ts +3 -1
  506. package/dist/plugins/spaces-home-control/services/covers-intent.service.js +6 -3
  507. package/dist/plugins/spaces-home-control/services/covers-intent.service.js.map +1 -1
  508. package/dist/plugins/spaces-home-control/services/lighting-intent.service.d.ts +3 -1
  509. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js +7 -4
  510. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js.map +1 -1
  511. package/dist/plugins/spaces-home-control/services/space-climate-state.service.d.ts +3 -5
  512. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js +9 -12
  513. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js.map +1 -1
  514. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.d.ts +3 -5
  515. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js +7 -10
  516. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js.map +1 -1
  517. package/dist/plugins/spaces-home-control/services/space-media-activity.service.d.ts +3 -1
  518. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js +11 -5
  519. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js.map +1 -1
  520. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.d.ts +3 -5
  521. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js +7 -10
  522. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js.map +1 -1
  523. package/dist/plugins/spaces-home-control/services/space-state-read.service.d.ts +47 -0
  524. package/dist/plugins/spaces-home-control/services/space-state-read.service.js +262 -0
  525. package/dist/plugins/spaces-home-control/services/space-state-read.service.js.map +1 -0
  526. package/dist/plugins/spaces-home-control/services/space-undo-history.service.d.ts +3 -1
  527. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js +8 -5
  528. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js.map +1 -1
  529. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js +4 -0
  530. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js.map +1 -1
  531. package/dist/spec/channels.d.ts +51 -1
  532. package/dist/spec/channels.js +64 -1
  533. package/dist/spec/channels.js.map +1 -1
  534. package/dist/spec/devices.d.ts +155 -2
  535. package/dist/spec/devices.js +161 -2
  536. package/dist/spec/devices.js.map +1 -1
  537. package/dist/tsconfig.build.tsbuildinfo +1 -1
  538. package/package.json +4 -4
@@ -64,9 +64,10 @@ function extractJsonObjects(buffer) {
64
64
  }
65
65
  return { objects, rest: buffer.slice(consumedTo) };
66
66
  }
67
- class TailscaleLoginInProgressException extends Error {
67
+ class TailscaleLoginInProgressException extends remote_access_tailscale_exceptions_1.TailscaleOperationInProgressException {
68
68
  constructor(message) {
69
- super(message);
69
+ super();
70
+ this.message = message;
70
71
  this.name = 'TailscaleLoginInProgressException';
71
72
  }
72
73
  }
@@ -79,47 +80,75 @@ let TailscaleLoginService = class TailscaleLoginService {
79
80
  this.nestConfigService = nestConfigService;
80
81
  this.logger = (0, logger_1.createExtensionLogger)(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'TailscaleLoginService');
81
82
  this.pending = null;
83
+ this.interactiveRequest = null;
82
84
  this.keyedLoginInFlight = false;
83
85
  }
84
86
  async onModuleInit() {
85
87
  await this.cleanupStaleAuthKeyFiles();
86
88
  }
89
+ get operations() {
90
+ return this.nodeManagedService.getOperationCoordinator();
91
+ }
92
+ async onModuleDestroy() {
93
+ await this.nodeManagedService.stop();
94
+ }
87
95
  async login(authKey) {
88
- if (authKey) {
89
- if (this.keyedLoginInFlight) {
90
- throw new TailscaleLoginInProgressException('A Tailscale sign-in with an auth key is already in progress. Wait for it to finish before retrying.');
91
- }
92
- this.stopPendingLogin();
93
- return this.loginWithAuthKey(authKey);
96
+ if (!this.nodeManagedService.getControlState().enabled) {
97
+ throw new remote_access_tailscale_exceptions_1.TailscalePluginDisabledException();
94
98
  }
95
99
  if (this.keyedLoginInFlight) {
96
- throw new TailscaleLoginInProgressException('A Tailscale sign-in with an auth key is currently in progress. Wait for it to finish before starting an interactive sign-in.');
100
+ throw new TailscaleLoginInProgressException('A Tailscale auth-key sign-in is already in progress.');
101
+ }
102
+ if (!authKey && this.interactiveRequest !== null) {
103
+ return this.interactiveRequest;
104
+ }
105
+ if (authKey) {
106
+ this.keyedLoginInFlight = true;
107
+ try {
108
+ return await (this.interactiveRequest !== null
109
+ ? this.operations.interrupt('login', (token) => this.loginWithAuthKey(authKey, token))
110
+ : this.operations.run('login', (token) => this.loginWithAuthKey(authKey, token)));
111
+ }
112
+ finally {
113
+ this.keyedLoginInFlight = false;
114
+ }
97
115
  }
98
116
  return this.loginInteractively();
99
117
  }
100
118
  async logout() {
101
- await this.assertActionable();
102
- this.stopPendingLogin();
103
- try {
104
- await this.cli.logout();
105
- }
106
- catch (error) {
107
- if (error instanceof tailscale_cli_service_1.TailscaleCliError && error.kind === 'needs-login') {
108
- this.logger.debug('tailscale logout had nothing to sign out of', { kind: error.kind });
119
+ return this.operations.interrupt('logout', async (token) => {
120
+ await this.assertActionable();
121
+ this.operations.assertCurrent(token);
122
+ try {
123
+ await this.cli.logout();
109
124
  }
110
- else {
111
- throw error;
125
+ catch (error) {
126
+ if (!(error instanceof tailscale_cli_service_1.TailscaleCliError && error.kind === 'needs-login')) {
127
+ throw error;
128
+ }
112
129
  }
113
- }
114
- return this.currentStatus();
130
+ this.operations.assertCurrent(token);
131
+ this.nodeManagedService.clearAuthentication();
132
+ return this.currentStatus();
133
+ });
115
134
  }
116
135
  async resetPreferences() {
117
- await this.assertActionable();
118
- await this.cli.up(['--reset', ...this.buildManagedFlags()]);
119
- return this.currentStatus();
136
+ if (!this.nodeManagedService.getControlState().enabled) {
137
+ throw new remote_access_tailscale_exceptions_1.TailscalePluginDisabledException();
138
+ }
139
+ return this.operations.interrupt('preferences', async (token) => {
140
+ await this.assertActionable();
141
+ this.operations.assertCurrent(token);
142
+ await this.nodeManagedService.ensureSupervisorStartedForLogin();
143
+ this.operations.assertCurrent(token);
144
+ await this.cli.up(['--reset', ...this.buildManagedFlags()]);
145
+ this.operations.assertCurrent(token);
146
+ return this.currentStatus();
147
+ });
120
148
  }
121
149
  async assertActionable() {
122
150
  const requirements = await this.nodeManagedService.refreshRequirements('status-read');
151
+ this.operations.assertCurrent();
123
152
  for (const code of ACTIONABLE_REQUIREMENT_CODES) {
124
153
  const requirement = requirements.find((candidate) => candidate.code === code);
125
154
  if (requirement && !requirement.satisfied) {
@@ -128,146 +157,142 @@ let TailscaleLoginService = class TailscaleLoginService {
128
157
  }
129
158
  }
130
159
  getPendingInteractiveAuth() {
131
- if (!this.pending?.authUrl) {
132
- return null;
133
- }
134
- return { authUrl: this.pending.authUrl, qr: this.pending.qr };
160
+ return this.pending?.authUrl ? { authUrl: this.pending.authUrl, qr: this.pending.qr } : null;
135
161
  }
136
162
  stopPendingLogin() {
137
- if (!this.pending) {
138
- return;
139
- }
140
- const { child, timeoutHandle } = this.pending;
141
- clearTimeout(timeoutHandle);
142
- this.pending = null;
143
- child.kill('SIGTERM');
163
+ this.pending?.cancel();
164
+ }
165
+ async prepareLogin(token) {
166
+ await this.assertActionable();
167
+ this.operations.assertCurrent(token);
168
+ await this.nodeManagedService.ensureSupervisorStartedForLogin();
169
+ this.operations.assertCurrent(token);
144
170
  }
145
- async loginWithAuthKey(authKey) {
146
- this.keyedLoginInFlight = true;
171
+ async loginWithAuthKey(authKey, token) {
172
+ await this.prepareLogin(token);
173
+ const keyFilePath = await this.writeAuthKeyFile(authKey);
147
174
  try {
148
- await this.assertActionable();
149
- const keyFilePath = await this.writeAuthKeyFile(authKey);
175
+ this.operations.assertCurrent(token);
150
176
  try {
151
- await this.runUpToCompletion([`--auth-key=file:${keyFilePath}`, '--timeout=120s', ...this.buildManagedFlags()], remote_access_tailscale_constants_1.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS);
152
- }
153
- catch (error) {
154
- this.logger.warn('Tailscale auth-key sign-in did not complete successfully', {
155
- message: error instanceof Error ? error.message : String(error),
156
- });
177
+ await this.runUpToCompletion([`--auth-key=file:${keyFilePath}`, '--timeout=120s', ...this.buildManagedFlags()], remote_access_tailscale_constants_1.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS, token);
157
178
  }
158
- finally {
159
- await (0, promises_1.rm)(keyFilePath, { force: true }).catch(() => undefined);
179
+ catch {
180
+ this.operations.assertCurrent(token);
181
+ this.logger.warn('Tailscale auth-key sign-in did not complete successfully');
160
182
  }
183
+ this.operations.assertCurrent(token);
161
184
  return await this.currentStatus();
162
185
  }
163
186
  finally {
164
- this.keyedLoginInFlight = false;
187
+ await (0, promises_1.rm)(keyFilePath, { force: true }).catch(() => undefined);
165
188
  }
166
189
  }
167
- async loginInteractively() {
168
- if (this.pending) {
169
- return { state: 'pending-auth', authUrl: this.pending.authUrl, qr: this.pending.qr };
170
- }
171
- await this.assertActionable();
172
- if (this.pending) {
173
- return { state: 'pending-auth', authUrl: this.pending.authUrl, qr: this.pending.qr };
174
- }
175
- if (this.keyedLoginInFlight) {
176
- throw new TailscaleLoginInProgressException('A Tailscale sign-in with an auth key is currently in progress. Wait for it to finish before starting an interactive sign-in.');
177
- }
178
- const child = this.cli.spawnUp(['--json', '--timeout=10m', ...this.buildManagedFlags()]);
179
- child.stderr.resume();
180
- return new Promise((resolve, reject) => {
181
- let settled = false;
190
+ loginInteractively() {
191
+ let resolveResult;
192
+ let rejectResult;
193
+ const result = new Promise((resolve, reject) => {
194
+ resolveResult = resolve;
195
+ rejectResult = reject;
196
+ });
197
+ this.interactiveRequest = result;
198
+ void this.operations
199
+ .run('login', async (token) => {
200
+ await this.prepareLogin(token);
201
+ const child = this.cli.spawnUp(['--json', '--timeout=10m', ...this.buildManagedFlags()]);
202
+ const closed = this.operations.trackChild(child);
203
+ child.stderr.resume();
204
+ let buffer = '';
182
205
  let firstBlockSeen = false;
183
- const settleResolve = (result) => {
184
- if (settled) {
185
- return;
206
+ let cancelled = false;
207
+ const clear = () => {
208
+ clearTimeout(timer);
209
+ clearTimeout(firstTimer);
210
+ token.signal.removeEventListener('abort', cancel);
211
+ if (this.pending?.child === child) {
212
+ this.pending = null;
186
213
  }
187
- settled = true;
188
- clearTimeout(firstBlockTimeoutHandle);
189
- resolve(result);
190
- };
191
- const settleReject = (error) => {
192
- if (settled) {
193
- return;
214
+ if (this.interactiveRequest === result) {
215
+ this.interactiveRequest = null;
194
216
  }
195
- settled = true;
196
- clearTimeout(firstBlockTimeoutHandle);
197
- reject(error);
198
217
  };
199
- const fallbackToCurrentStatus = () => {
200
- this.currentStatus().then(settleResolve).catch(settleReject);
218
+ const cancel = () => {
219
+ cancelled = true;
220
+ clear();
221
+ rejectResult(new remote_access_tailscale_exceptions_1.TailscaleOperationCancelledException());
222
+ void this.operations.terminateChild(child).catch(() => undefined);
201
223
  };
202
- const timeoutHandle = setTimeout(() => {
203
- this.logger.warn('Tailscale interactive sign-in timed out after 10 minutes without completing');
204
- this.stopPendingLogin();
205
- settleReject(new Error('Tailscale sign-in timed out after 10 minutes.'));
224
+ token.signal.addEventListener('abort', cancel, { once: true });
225
+ this.pending = { child, result, cancel };
226
+ const timer = setTimeout(() => {
227
+ cancel();
206
228
  }, remote_access_tailscale_constants_1.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS);
207
- timeoutHandle.unref?.();
208
- const firstBlockTimeoutHandle = setTimeout(() => {
209
- this.logger.debug('Tailscale interactive sign-in has not printed its first status block yet; resolving pending-auth without a URL, leaving the sign-in running');
210
- settleResolve({ state: 'pending-auth' });
229
+ timer.unref?.();
230
+ const firstTimer = setTimeout(() => {
231
+ resolveResult({ state: 'pending-auth' });
211
232
  }, remote_access_tailscale_constants_1.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS);
212
- firstBlockTimeoutHandle.unref?.();
213
- this.pending = { child, buffer: '', timeoutHandle };
233
+ firstTimer.unref?.();
214
234
  child.stdout.on('data', (chunk) => {
215
- if (this.pending?.child !== child) {
235
+ if (this.pending?.child !== child || token.signal.aborted) {
216
236
  return;
217
237
  }
218
- this.pending.buffer += chunk.toString('utf8');
219
- const { objects, rest } = extractJsonObjects(this.pending.buffer);
220
- this.pending.buffer = rest;
238
+ buffer += chunk.toString('utf8');
239
+ const { objects, rest } = extractJsonObjects(buffer);
240
+ buffer = rest;
221
241
  for (const raw of objects) {
222
- let parsed;
242
+ let block;
223
243
  try {
224
- parsed = JSON.parse(raw);
244
+ block = JSON.parse(raw);
225
245
  }
226
246
  catch {
227
247
  continue;
228
248
  }
229
- if (!firstBlockSeen) {
249
+ if (!firstBlockSeen && block.AuthURL) {
230
250
  firstBlockSeen = true;
231
- clearTimeout(firstBlockTimeoutHandle);
232
- if (parsed.AuthURL) {
233
- if (this.pending) {
234
- this.pending.authUrl = parsed.AuthURL;
235
- this.pending.qr = parsed.QR;
236
- }
237
- settleResolve({ state: 'pending-auth', authUrl: parsed.AuthURL, qr: parsed.QR });
238
- }
239
- else if (parsed.Error) {
240
- this.stopPendingLogin();
241
- settleReject(new Error(parsed.Error));
242
- }
243
- else {
244
- this.stopPendingLogin();
245
- fallbackToCurrentStatus();
251
+ clearTimeout(firstTimer);
252
+ if (this.pending?.child === child) {
253
+ this.pending.authUrl = block.AuthURL;
254
+ this.pending.qr = block.QR;
246
255
  }
256
+ resolveResult({ state: 'pending-auth', authUrl: block.AuthURL, qr: block.QR });
247
257
  }
248
258
  else {
249
- this.stopPendingLogin();
259
+ clear();
260
+ if (block.Error) {
261
+ cancelled = true;
262
+ rejectResult(new Error(block.Error.replace(/https?:\/\/\S+/gi, '[redacted URL]')));
263
+ }
264
+ void this.operations.terminateChild(child).catch(rejectResult);
250
265
  }
251
266
  }
252
267
  });
253
- child.once('error', (error) => {
254
- if (this.pending?.child === child) {
255
- this.stopPendingLogin();
256
- }
257
- settleReject(error instanceof Error ? error : new Error(String(error)));
268
+ child.once('error', () => {
269
+ cancelled = true;
270
+ clear();
271
+ rejectResult(new Error('The Tailscale sign-in command failed to start.'));
258
272
  });
259
- child.once('close', () => {
260
- if (this.pending?.child === child) {
261
- this.stopPendingLogin();
262
- }
263
- if (!settled) {
264
- fallbackToCurrentStatus();
273
+ try {
274
+ await closed;
275
+ this.operations.assertCurrent(token);
276
+ if (!cancelled) {
277
+ resolveResult(await this.currentStatus());
265
278
  }
266
- });
279
+ }
280
+ finally {
281
+ clear();
282
+ }
283
+ })
284
+ .catch(rejectResult)
285
+ .finally(() => {
286
+ if (this.interactiveRequest === result) {
287
+ this.interactiveRequest = null;
288
+ }
267
289
  });
290
+ return result;
268
291
  }
269
292
  async currentStatus() {
293
+ this.operations.assertCurrent();
270
294
  const status = await this.nodeManagedService.computeStatus();
295
+ this.operations.assertCurrent();
271
296
  return { state: status.state };
272
297
  }
273
298
  buildManagedFlags() {
@@ -320,43 +345,42 @@ let TailscaleLoginService = class TailscaleLoginService {
320
345
  }
321
346
  return filePath;
322
347
  }
323
- runUpToCompletion(args, timeoutMs) {
324
- return new Promise((resolve, reject) => {
325
- const child = this.cli.spawnUp(args);
326
- child.stdout.resume();
327
- child.stderr.resume();
328
- let settled = false;
329
- const timer = setTimeout(() => {
330
- if (settled) {
331
- return;
332
- }
333
- settled = true;
334
- child.kill('SIGTERM');
335
- reject(new Error(`tailscale up did not complete within ${timeoutMs}ms.`));
348
+ async runUpToCompletion(args, timeoutMs, token) {
349
+ this.operations.assertCurrent(token);
350
+ const child = this.cli.spawnUp(args);
351
+ const closed = this.operations.trackChild(child);
352
+ child.stdout.resume();
353
+ child.stderr.resume();
354
+ let timeout;
355
+ let onAbort;
356
+ const outcome = new Promise((resolve, reject) => {
357
+ onAbort = () => reject(new remote_access_tailscale_exceptions_1.TailscaleOperationCancelledException());
358
+ token.signal.addEventListener('abort', onAbort, { once: true });
359
+ timeout = setTimeout(() => {
360
+ void this.operations
361
+ .terminateChild(child)
362
+ .then(() => reject(new Error('Tailscale sign-in timed out.')), reject);
336
363
  }, timeoutMs);
337
- timer.unref?.();
338
- child.once('error', (error) => {
339
- if (settled) {
340
- return;
341
- }
342
- settled = true;
343
- clearTimeout(timer);
344
- reject(error instanceof Error ? error : new Error(String(error)));
345
- });
364
+ timeout.unref?.();
365
+ child.once('error', () => reject(new Error('The Tailscale sign-in command failed to start.')));
346
366
  child.once('close', (code) => {
347
- if (settled) {
348
- return;
349
- }
350
- settled = true;
351
- clearTimeout(timer);
352
367
  if (code === 0) {
353
368
  resolve();
354
369
  }
355
370
  else {
356
- reject(new Error(`tailscale up exited with code ${code ?? 'null'}.`));
371
+ reject(new Error('The Tailscale sign-in command failed.'));
357
372
  }
358
373
  });
359
374
  });
375
+ try {
376
+ await outcome;
377
+ }
378
+ finally {
379
+ clearTimeout(timeout);
380
+ token.signal.removeEventListener('abort', onAbort);
381
+ await this.operations.terminateChild(child);
382
+ await closed;
383
+ }
360
384
  }
361
385
  };
362
386
  exports.TailscaleLoginService = TailscaleLoginService;
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-login.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-login.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailscale-login.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-login.service.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,27 @@
1
+ import { OnModuleDestroy } from '@nestjs/common';
1
2
  import { ConfigService as NestConfigService } from '@nestjs/config';
2
3
  import { EventEmitter2 } from '@nestjs/event-emitter';
3
4
  import { ConfigService } from '../../../modules/config/services/config.service';
4
5
  import { BaseManagedExtensionService } from '../../../modules/extensions/services/base-managed-extension.service';
5
- import { ConfigChangeResult } from '../../../modules/extensions/services/managed-extension-service.interface';
6
+ import { ConfigChangeResult, ServiceState } from '../../../modules/extensions/services/managed-extension-service.interface';
6
7
  import { PlatformService } from '../../../modules/platform/services/platform.service';
7
8
  import { RemoteAccessProviderStatus } from '../../../modules/remote-access/platforms/remote-access-provider.platform';
8
9
  import { RemoteAccessTailscalePluginConfigModel } from '../models/config.model';
9
- import { TailscaleCliService } from './tailscale-cli.service';
10
+ import { TailscaleCliService, TailscaleStatus } from './tailscale-cli.service';
11
+ import { TailscaleOperation, TailscaleOperationCoordinatorService } from './tailscale-operation-coordinator.service';
10
12
  import { TailscaleServeService } from './tailscale-serve.service';
11
13
  import { TailscaleStatusMapperService } from './tailscale-status-mapper.service';
14
+ export type TailscaleAuthentication = 'unknown' | 'required' | 'authenticated';
15
+ export interface TailscaleControlState {
16
+ enabled: boolean;
17
+ serviceState: ServiceState;
18
+ authentication: TailscaleAuthentication;
19
+ operation: TailscaleOperation | null;
20
+ }
21
+ export interface TailscaleObservationMetadata {
22
+ requirements: TailscaleRequirement[];
23
+ control: TailscaleControlState;
24
+ }
12
25
  export type TailscaleRequirementCode = 'platform-supported' | 'binary-installed' | 'daemon-active' | 'operator-granted' | 'version-supported';
13
26
  export interface TailscaleRequirementRemedy {
14
27
  commands: string[];
@@ -22,7 +35,7 @@ export interface TailscaleRequirement {
22
35
  }
23
36
  export type TailscaleRequirementRefreshReason = 'start' | 'permission-denied' | 'setup-complete' | 'status-read' | 'periodic';
24
37
  export declare function compareTailscaleVersions(a: string, b: string): number;
25
- export declare class TailscaleNodeManagedService extends BaseManagedExtensionService {
38
+ export declare class TailscaleNodeManagedService extends BaseManagedExtensionService implements OnModuleDestroy {
26
39
  private readonly cli;
27
40
  private readonly mapper;
28
41
  private readonly configService;
@@ -30,6 +43,7 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
30
43
  private readonly platformService;
31
44
  private readonly eventEmitter;
32
45
  private readonly serveService;
46
+ private readonly operations;
33
47
  private readonly logger;
34
48
  readonly owner: {
35
49
  readonly kind: "plugin";
@@ -37,29 +51,48 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
37
51
  };
38
52
  readonly serviceId = "node";
39
53
  readonly activationPolicy: "owner-enabled";
54
+ private readonly observations;
55
+ private readonly requirementObservations;
56
+ private authentication;
57
+ private identity;
58
+ private connectPromise;
59
+ private stopPromise;
40
60
  private pollTimer;
41
61
  private lastStatus;
42
62
  private lastError;
43
63
  private pluginConfig;
64
+ private pendingAdvertiseTags;
44
65
  private requirementsCache;
45
- private requirementsRefreshedAt;
46
66
  private lastServeConvergeDenied;
47
67
  private reconnectAttempts;
48
68
  private nextReconnectAttemptAt;
49
- constructor(cli: TailscaleCliService, mapper: TailscaleStatusMapperService, configService: ConfigService, nestConfigService: NestConfigService, platformService: PlatformService, eventEmitter: EventEmitter2, serveService: TailscaleServeService);
69
+ constructor(cli: TailscaleCliService, mapper: TailscaleStatusMapperService, configService: ConfigService, nestConfigService: NestConfigService, platformService: PlatformService, eventEmitter: EventEmitter2, serveService: TailscaleServeService, operations?: TailscaleOperationCoordinatorService);
70
+ getOperationCoordinator(): TailscaleOperationCoordinatorService;
71
+ getControlState(): TailscaleControlState;
72
+ private isPluginEnabled;
73
+ clearAuthentication(): void;
74
+ observeAuthentication(status: TailscaleStatus): void;
75
+ onModuleDestroy(): Promise<void>;
76
+ ensureSupervisorStartedForLogin(): Promise<void>;
77
+ private assertRequirements;
78
+ connect(): Promise<void>;
50
79
  start(): Promise<void>;
80
+ private startNode;
51
81
  stop(): Promise<void>;
52
82
  private isStopFailureTolerated;
83
+ private getStatusOrNullWithin;
53
84
  private emitStatus;
54
85
  onConfigChanged(): Promise<ConfigChangeResult>;
86
+ private applyConfigChange;
55
87
  isHealthy(): Promise<boolean>;
56
88
  factoryReset(): Promise<{
57
89
  success: boolean;
58
90
  reason?: string;
59
91
  }>;
60
92
  evaluateRequirements(): Promise<TailscaleRequirement[]>;
93
+ reconcileSetup(generation: number): Promise<void>;
61
94
  getRequirements(): TailscaleRequirement[];
62
- refreshRequirements(reason: TailscaleRequirementRefreshReason): Promise<TailscaleRequirement[]>;
95
+ refreshRequirements(reason: TailscaleRequirementRefreshReason, signal?: AbortSignal): Promise<TailscaleRequirement[]>;
63
96
  private requirementsSatisfied;
64
97
  private evaluateRequirementsLive;
65
98
  private unevaluatedRequirement;
@@ -68,8 +101,21 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
68
101
  private buildRemedy;
69
102
  private buildInstallRemedy;
70
103
  private runSetupScriptPrintPlan;
71
- computeStatus(requirementsReason?: TailscaleRequirementRefreshReason): Promise<RemoteAccessProviderStatus>;
104
+ computeStatus(_requirementsReason?: TailscaleRequirementRefreshReason, options?: {
105
+ signal?: AbortSignal;
106
+ fresh?: boolean;
107
+ }): Promise<RemoteAccessProviderStatus>;
108
+ awaitObservationIdle(): Promise<void>;
109
+ getStatusSnapshot(options?: {
110
+ signal?: AbortSignal;
111
+ fresh?: boolean;
112
+ }): Promise<{
113
+ status: RemoteAccessProviderStatus;
114
+ metadata: TailscaleObservationMetadata;
115
+ }>;
72
116
  private computeStatusWithRawStatus;
117
+ private supersededObservation;
118
+ private collectStatusWithRawStatus;
73
119
  private convergeServe;
74
120
  private evaluatePlatformSupported;
75
121
  private evaluateBinaryAndVersion;
@@ -85,6 +131,7 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
85
131
  private pollTick;
86
132
  private attemptReconnect;
87
133
  private hasStatusChanged;
134
+ private applyNodePreferences;
88
135
  buildPreferenceFlags(config: RemoteAccessTailscalePluginConfigModel): string[];
89
136
  buildUpFlags(config: RemoteAccessTailscalePluginConfigModel): string[];
90
137
  private buildStatus;