@fastybird/smart-panel-backend 1.1.0-alpha.6 → 1.1.0-alpha.60

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 (494) hide show
  1. package/dist/app.module.js +2 -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 +5 -0
  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 +5 -0
  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 +18 -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 +10 -1
  63. package/dist/modules/devices/services/channels.properties.service.js +108 -44
  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 +10 -0
  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/devices.service.d.ts +2 -0
  75. package/dist/modules/devices/services/devices.service.js +41 -31
  76. package/dist/modules/devices/services/devices.service.js.map +1 -1
  77. package/dist/modules/devices/services/platform.registry.service.d.ts +2 -2
  78. package/dist/modules/devices/services/platform.registry.service.js.map +1 -1
  79. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +7 -3
  80. package/dist/modules/devices/services/property-command-dispatch.service.js +38 -25
  81. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -1
  82. package/dist/modules/devices/services/property-command-window.service.d.ts +2 -1
  83. package/dist/modules/devices/services/property-command-window.service.js +6 -0
  84. package/dist/modules/devices/services/property-command-window.service.js.map +1 -1
  85. package/dist/modules/devices/services/property-command.service.d.ts +9 -5
  86. package/dist/modules/devices/services/property-command.service.js +54 -21
  87. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  88. package/dist/modules/devices/services/property-metadata.service.d.ts +38 -0
  89. package/dist/modules/devices/services/property-metadata.service.js +210 -0
  90. package/dist/modules/devices/services/property-metadata.service.js.map +1 -0
  91. package/dist/modules/devices/services/property-value-lock.service.d.ts +4 -1
  92. package/dist/modules/devices/services/property-value-lock.service.js +16 -2
  93. package/dist/modules/devices/services/property-value-lock.service.js.map +1 -1
  94. package/dist/modules/devices/services/property-value.service.d.ts +2 -0
  95. package/dist/modules/devices/services/property-value.service.js +25 -5
  96. package/dist/modules/devices/services/property-value.service.js.map +1 -1
  97. package/dist/modules/devices/utils/device-graph-query.utils.d.ts +3 -0
  98. package/dist/modules/devices/utils/device-graph-query.utils.js +23 -0
  99. package/dist/modules/devices/utils/device-graph-query.utils.js.map +1 -0
  100. package/dist/modules/devices/utils/schema.utils.js +1 -1
  101. package/dist/modules/devices/utils/schema.utils.js.map +1 -1
  102. package/dist/modules/devices/validators/channel-exists-constraint.validator.d.ts +1 -3
  103. package/dist/modules/devices/validators/channel-exists-constraint.validator.js +3 -14
  104. package/dist/modules/devices/validators/channel-exists-constraint.validator.js.map +1 -1
  105. package/dist/modules/devices/validators/channel-property-exists-constraint.validator.d.ts +1 -3
  106. package/dist/modules/devices/validators/channel-property-exists-constraint.validator.js +3 -14
  107. package/dist/modules/devices/validators/channel-property-exists-constraint.validator.js.map +1 -1
  108. package/dist/modules/devices/validators/device-exists-constraint.validator.js +1 -2
  109. package/dist/modules/devices/validators/device-exists-constraint.validator.js.map +1 -1
  110. package/dist/modules/devices/validators/property-command-target-constraint.validator.d.ts +9 -0
  111. package/dist/modules/devices/validators/property-command-target-constraint.validator.js +58 -0
  112. package/dist/modules/devices/validators/property-command-target-constraint.validator.js.map +1 -0
  113. package/dist/modules/mdns/services/mdns.service.js +3 -1
  114. package/dist/modules/mdns/services/mdns.service.js.map +1 -1
  115. package/dist/modules/platform/platforms/abstract.platform.d.ts +2 -1
  116. package/dist/modules/platform/platforms/abstract.platform.js +2 -1
  117. package/dist/modules/platform/platforms/abstract.platform.js.map +1 -1
  118. package/dist/modules/platform/platforms/raspberry.platform.js +5 -10
  119. package/dist/modules/platform/platforms/raspberry.platform.js.map +1 -1
  120. package/dist/modules/platform/utils/linux-network-interface.utils.d.ts +3 -0
  121. package/dist/modules/platform/utils/linux-network-interface.utils.js +48 -0
  122. package/dist/modules/platform/utils/linux-network-interface.utils.js.map +1 -0
  123. package/dist/modules/remote-access/controllers/remote-access.controller.js +11 -6
  124. package/dist/modules/remote-access/controllers/remote-access.controller.js.map +1 -1
  125. package/dist/modules/remote-access/models/provider.model.d.ts +3 -0
  126. package/dist/modules/remote-access/models/provider.model.js +23 -0
  127. package/dist/modules/remote-access/models/provider.model.js.map +1 -1
  128. package/dist/modules/remote-access/models/status.model.d.ts +2 -0
  129. package/dist/modules/remote-access/models/status.model.js +18 -1
  130. package/dist/modules/remote-access/models/status.model.js.map +1 -1
  131. package/dist/modules/remote-access/models/urls.model.d.ts +2 -0
  132. package/dist/modules/remote-access/models/urls.model.js +17 -0
  133. package/dist/modules/remote-access/models/urls.model.js.map +1 -1
  134. package/dist/modules/remote-access/platforms/remote-access-provider.platform.d.ts +18 -1
  135. package/dist/modules/remote-access/remote-access.constants.d.ts +2 -1
  136. package/dist/modules/remote-access/remote-access.constants.js +2 -1
  137. package/dist/modules/remote-access/remote-access.constants.js.map +1 -1
  138. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.d.ts +1 -0
  139. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js +4 -1
  140. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js.map +1 -1
  141. package/dist/modules/remote-access/services/remote-access-status.service.d.ts +40 -8
  142. package/dist/modules/remote-access/services/remote-access-status.service.js +314 -65
  143. package/dist/modules/remote-access/services/remote-access-status.service.js.map +1 -1
  144. package/dist/modules/remote-access/services/remote-access-url.service.d.ts +2 -2
  145. package/dist/modules/remote-access/services/remote-access-url.service.js +4 -2
  146. package/dist/modules/remote-access/services/remote-access-url.service.js.map +1 -1
  147. package/dist/modules/spaces/services/module-reset.service.d.ts +5 -1
  148. package/dist/modules/spaces/services/module-reset.service.js +10 -2
  149. package/dist/modules/spaces/services/module-reset.service.js.map +1 -1
  150. package/dist/modules/spaces/services/space-activity.service.d.ts +14 -0
  151. package/dist/modules/spaces/services/space-activity.service.js +56 -0
  152. package/dist/modules/spaces/services/space-activity.service.js.map +1 -0
  153. package/dist/modules/spaces/spaces.module.js +5 -0
  154. package/dist/modules/spaces/spaces.module.js.map +1 -1
  155. package/dist/modules/spaces/subscribers/space-activity.subscriber.d.ts +17 -0
  156. package/dist/modules/spaces/subscribers/space-activity.subscriber.js +89 -0
  157. package/dist/modules/spaces/subscribers/space-activity.subscriber.js.map +1 -0
  158. package/dist/modules/storage/services/storage-write-buffer.d.ts +17 -0
  159. package/dist/modules/storage/services/storage-write-buffer.js +67 -0
  160. package/dist/modules/storage/services/storage-write-buffer.js.map +1 -0
  161. package/dist/modules/storage/services/storage.service.d.ts +9 -2
  162. package/dist/modules/storage/services/storage.service.js +54 -1
  163. package/dist/modules/storage/services/storage.service.js.map +1 -1
  164. package/dist/modules/system/scripts/update-worker.sh +1168 -61
  165. package/dist/modules/system/services/privileged-worker.service.d.ts +10 -0
  166. package/dist/modules/system/services/privileged-worker.service.js +241 -32
  167. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  168. package/dist/modules/system/services/system.service.d.ts +2 -0
  169. package/dist/modules/system/services/system.service.js +22 -1
  170. package/dist/modules/system/services/system.service.js.map +1 -1
  171. package/dist/modules/system/services/update-executor.service.d.ts +20 -2
  172. package/dist/modules/system/services/update-executor.service.js +272 -26
  173. package/dist/modules/system/services/update-executor.service.js.map +1 -1
  174. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +4 -1
  175. package/dist/modules/websocket/gateway/websocket.gateway.js +29 -5
  176. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  177. package/dist/modules/websocket/services/command-acknowledgement-trace.service.d.ts +143 -0
  178. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js +523 -0
  179. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js.map +1 -0
  180. package/dist/modules/websocket/services/ws-auth.service.js +12 -35
  181. package/dist/modules/websocket/services/ws-auth.service.js.map +1 -1
  182. package/dist/modules/websocket/websocket.module.js +9 -1
  183. package/dist/modules/websocket/websocket.module.js.map +1 -1
  184. package/dist/plugins/devices-home-assistant/devices-home-assistant.openapi.d.ts +2 -2
  185. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.d.ts +6 -1
  186. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js +16 -1
  187. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js.map +1 -1
  188. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.d.ts +1 -0
  189. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js +11 -0
  190. package/dist/plugins/devices-home-assistant/dto/mapping-preview.dto.js.map +1 -1
  191. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.d.ts +19 -0
  192. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js +51 -0
  193. package/dist/plugins/devices-home-assistant/mappers/button.entity.mapper.service.js.map +1 -0
  194. package/dist/plugins/devices-home-assistant/mappings/definitions/entity-mappings.yaml +56 -7
  195. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.d.ts +1 -0
  196. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js +11 -0
  197. package/dist/plugins/devices-home-assistant/models/mapping-preview.model.js.map +1 -1
  198. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js +17 -0
  199. package/dist/plugins/devices-home-assistant/services/device-adoption.service.js.map +1 -1
  200. package/dist/plugins/devices-home-assistant/services/ha-mdns-discoverer.service.js +3 -1
  201. package/dist/plugins/devices-home-assistant/services/ha-mdns-discoverer.service.js.map +1 -1
  202. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.d.ts +27 -0
  203. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js +271 -0
  204. package/dist/plugins/devices-home-assistant/services/home-assistant-raw-event.service.js.map +1 -0
  205. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.d.ts +2 -2
  206. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js +33 -14
  207. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js.map +1 -1
  208. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js +24 -4
  209. package/dist/plugins/devices-home-assistant/services/mapping-preview.service.js.map +1 -1
  210. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.d.ts +4 -1
  211. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +82 -2
  212. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  213. package/dist/plugins/devices-home-assistant/services/wizard.service.js +1 -0
  214. package/dist/plugins/devices-home-assistant/services/wizard.service.js.map +1 -1
  215. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.d.ts +2 -0
  216. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js +50 -0
  217. package/dist/plugins/devices-home-assistant/utils/ha-event.utils.js.map +1 -0
  218. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.d.ts +4 -1
  219. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +34 -4
  220. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  221. package/dist/plugins/devices-homekit/mappers/base.mapper.js +3 -2
  222. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  223. package/dist/plugins/devices-homekit/mappers/button.mapper.d.ts +15 -0
  224. package/dist/plugins/devices-homekit/mappers/button.mapper.js +143 -0
  225. package/dist/plugins/devices-homekit/mappers/button.mapper.js.map +1 -0
  226. package/dist/plugins/devices-homekit/mappers/characteristic-write.d.ts +2 -0
  227. package/dist/plugins/devices-homekit/mappers/characteristic-write.js +17 -0
  228. package/dist/plugins/devices-homekit/mappers/characteristic-write.js.map +1 -0
  229. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +9 -1
  230. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +13 -12
  231. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  232. package/dist/plugins/devices-homekit/services/homekit-bridge.service.js +2 -0
  233. package/dist/plugins/devices-homekit/services/homekit-bridge.service.js.map +1 -1
  234. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.d.ts +5 -1
  235. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js +42 -0
  236. package/dist/plugins/devices-homekit/services/homekit-mapper-registry.service.js.map +1 -1
  237. package/dist/plugins/devices-homekit/utils/ciao-receive-guard.d.ts +1 -0
  238. package/dist/plugins/devices-homekit/utils/ciao-receive-guard.js +36 -0
  239. package/dist/plugins/devices-homekit/utils/ciao-receive-guard.js.map +1 -0
  240. package/dist/plugins/devices-homey/mappings/definitions/channels.yaml +50 -0
  241. package/dist/plugins/devices-homey/mappings/definitions/devices.yaml +18 -0
  242. package/dist/plugins/devices-homey/mappings/definitions/properties.yaml +55 -0
  243. package/dist/plugins/devices-homey/mappings/device-support.js +10 -0
  244. package/dist/plugins/devices-homey/mappings/device-support.js.map +1 -1
  245. package/dist/plugins/devices-homey/mappings/mapping-loader.service.d.ts +1 -0
  246. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js +66 -8
  247. package/dist/plugins/devices-homey/mappings/mapping-loader.service.js.map +1 -1
  248. package/dist/plugins/devices-homey/models/inventory.model.d.ts +2 -1
  249. package/dist/plugins/devices-homey/models/inventory.model.js +1 -0
  250. package/dist/plugins/devices-homey/models/inventory.model.js.map +1 -1
  251. package/dist/plugins/devices-homey/models/mapping-preview.model.d.ts +1 -0
  252. package/dist/plugins/devices-homey/models/mapping-preview.model.js +1 -0
  253. package/dist/plugins/devices-homey/models/mapping-preview.model.js.map +1 -1
  254. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js +7 -0
  255. package/dist/plugins/devices-homey/services/homey-mapping-preview.service.js.map +1 -1
  256. package/dist/plugins/devices-homey/services/homey-synchronizer.service.d.ts +3 -1
  257. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js +37 -6
  258. package/dist/plugins/devices-homey/services/homey-synchronizer.service.js.map +1 -1
  259. package/dist/plugins/devices-reterminal/services/reterminal-button.service.d.ts +7 -3
  260. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js +63 -17
  261. package/dist/plugins/devices-reterminal/services/reterminal-button.service.js.map +1 -1
  262. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +25 -3
  263. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +607 -48
  264. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  265. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +6 -0
  266. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +51 -2
  267. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  268. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +3 -2
  269. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  270. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js +2 -0
  271. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js.map +1 -1
  272. package/dist/plugins/devices-shelly-ng/mappings/definitions/inputs.yaml +80 -0
  273. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +7 -1
  274. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  275. package/dist/plugins/devices-shelly-ng/mappings/mapping.types.d.ts +6 -3
  276. package/dist/plugins/devices-shelly-ng/mappings/schema/mapping-schema.json +5 -0
  277. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +153 -8
  278. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  279. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.d.ts +51 -0
  280. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js +549 -0
  281. package/dist/plugins/devices-shelly-ng/services/poll-placement-diagnostics.service.js.map +1 -0
  282. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +6 -1
  283. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +84 -14
  284. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  285. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js +3 -0
  286. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js.map +1 -1
  287. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +1 -0
  288. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +13 -1
  289. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  290. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.d.ts +2 -0
  291. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js +66 -4
  292. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.constants.js.map +1 -1
  293. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js +2 -0
  294. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js.map +1 -1
  295. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js +7 -0
  296. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js.map +1 -1
  297. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.d.ts +3 -1
  298. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js +20 -2
  299. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js.map +1 -1
  300. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.d.ts +16 -0
  301. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js +107 -0
  302. package/dist/plugins/devices-shelly-v1/services/shelly-v1-input-tracker.service.js.map +1 -0
  303. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.d.ts +7 -1
  304. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js +98 -3
  305. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js.map +1 -1
  306. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.d.ts +17 -0
  307. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js +205 -0
  308. package/dist/plugins/devices-third-party/controllers/third-party-inputs.controller.js.map +1 -0
  309. package/dist/plugins/devices-third-party/devices-third-party.openapi.d.ts +1 -1
  310. package/dist/plugins/devices-third-party/devices-third-party.plugin.js +2 -1
  311. package/dist/plugins/devices-third-party/devices-third-party.plugin.js.map +1 -1
  312. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.d.ts +5 -0
  313. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js +50 -0
  314. package/dist/plugins/devices-third-party/dto/report-input-occurrence-response.dto.js.map +1 -0
  315. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.d.ts +8 -0
  316. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js +81 -0
  317. package/dist/plugins/devices-third-party/dto/report-input-occurrence.dto.js.map +1 -0
  318. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js +19 -4
  319. package/dist/plugins/devices-third-party/platforms/third-party-device.platform.js.map +1 -1
  320. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.d.ts +2 -0
  321. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js +57 -0
  322. package/dist/plugins/devices-virtual/listeners/virtual-projection.listener.js.map +1 -1
  323. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.d.ts +3 -8
  324. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js +6 -31
  325. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js.map +1 -1
  326. package/dist/plugins/devices-wled/services/wled-mdns-discoverer.service.js +3 -1
  327. package/dist/plugins/devices-wled/services/wled-mdns-discoverer.service.js.map +1 -1
  328. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.d.ts +3 -0
  329. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js +41 -5
  330. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.constants.js.map +1 -1
  331. package/dist/plugins/devices-zigbee2mqtt/interfaces/zigbee2mqtt.interface.d.ts +7 -1
  332. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js +16 -15
  333. package/dist/plugins/devices-zigbee2mqtt/mappings/config-driven.converter.js.map +1 -1
  334. package/dist/plugins/devices-zigbee2mqtt/mappings/definitions/remotes.yaml +505 -74
  335. package/dist/plugins/devices-zigbee2mqtt/mappings/schema/mapping-schema.json +3 -3
  336. package/dist/plugins/devices-zigbee2mqtt/mappings/transformers/transformer.types.d.ts +1 -1
  337. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +8 -2
  338. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js +6 -5
  339. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -1
  340. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js +18 -11
  341. package/dist/plugins/devices-zigbee2mqtt/services/device-adoption.service.js.map +1 -1
  342. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.d.ts +9 -3
  343. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js +166 -3
  344. package/dist/plugins/devices-zigbee2mqtt/services/device-mapper.service.js.map +1 -1
  345. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +5 -2
  346. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  347. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +1 -0
  348. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +44 -4
  349. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  350. package/dist/plugins/influx-v1/services/influx-v1-managed.service.js +2 -2
  351. package/dist/plugins/influx-v1/services/influx-v1-managed.service.js.map +1 -1
  352. package/dist/plugins/influx-v2/services/influx-v2-managed.service.js +2 -2
  353. package/dist/plugins/influx-v2/services/influx-v2-managed.service.js.map +1 -1
  354. package/dist/plugins/memory-storage/services/memory-storage-managed.service.js +2 -2
  355. package/dist/plugins/memory-storage/services/memory-storage-managed.service.js.map +1 -1
  356. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +6 -4
  357. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +28 -16
  358. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -1
  359. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +4 -6
  360. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +18 -17
  361. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -1
  362. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +2 -0
  363. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +17 -0
  364. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -1
  365. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.d.ts +1 -0
  366. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js +2 -1
  367. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js.map +1 -1
  368. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js +1 -1
  369. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js.map +1 -1
  370. package/dist/plugins/remote-access-cloudflare-tunnel/scripts/cloudflared-setup.sh +1 -1
  371. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +21 -2
  372. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +132 -56
  373. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -1
  374. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +13 -1
  375. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +8 -2
  376. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -1
  377. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js +1 -0
  378. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js.map +1 -1
  379. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +1 -1
  380. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +12 -24
  381. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -1
  382. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +1 -1
  383. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +5 -2
  384. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -1
  385. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.d.ts +4 -3
  386. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js +109 -49
  387. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js.map +1 -1
  388. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +11 -6
  389. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +115 -25
  390. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  391. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -5
  392. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +26 -16
  393. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  394. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +16 -0
  395. package/dist/plugins/remote-access-tailscale/models/status.model.js +100 -1
  396. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  397. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +3 -0
  398. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +4 -1
  399. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  400. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +17 -1
  401. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +33 -1
  402. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -1
  403. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  404. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +1 -0
  405. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  406. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +3 -1
  407. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js.map +1 -1
  408. package/dist/plugins/remote-access-tailscale/scripts/tailscale-setup.sh +37 -4
  409. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +9 -4
  410. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +63 -15
  411. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  412. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +8 -3
  413. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +175 -151
  414. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  415. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +55 -7
  416. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +551 -109
  417. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  418. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.d.ts +33 -0
  419. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js +167 -0
  420. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js.map +1 -0
  421. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.d.ts +13 -1
  422. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js +8 -2
  423. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js.map +1 -1
  424. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +1 -1
  425. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +7 -6
  426. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  427. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +1 -3
  428. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +11 -11
  429. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  430. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.d.ts +5 -0
  431. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js +36 -0
  432. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js.map +1 -0
  433. package/dist/plugins/simulator/controllers/simulator.controller.d.ts +8 -2
  434. package/dist/plugins/simulator/controllers/simulator.controller.js +102 -2
  435. package/dist/plugins/simulator/controllers/simulator.controller.js.map +1 -1
  436. package/dist/plugins/simulator/dto/simulate-occurrence.dto.d.ts +12 -0
  437. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js +122 -0
  438. package/dist/plugins/simulator/dto/simulate-occurrence.dto.js.map +1 -0
  439. package/dist/plugins/simulator/models/simulator-response.model.d.ts +12 -0
  440. package/dist/plugins/simulator/models/simulator-response.model.js +84 -1
  441. package/dist/plugins/simulator/models/simulator-response.model.js.map +1 -1
  442. package/dist/plugins/simulator/scenarios/definitions/small-apartment.yaml +78 -0
  443. package/dist/plugins/simulator/services/scenario-executor.service.js +3 -1
  444. package/dist/plugins/simulator/services/scenario-executor.service.js.map +1 -1
  445. package/dist/plugins/simulator/services/simulation.service.js +10 -1
  446. package/dist/plugins/simulator/services/simulation.service.js.map +1 -1
  447. package/dist/plugins/simulator/simulator.openapi.d.ts +3 -2
  448. package/dist/plugins/simulator/simulator.openapi.js +5 -0
  449. package/dist/plugins/simulator/simulator.openapi.js.map +1 -1
  450. package/dist/plugins/simulator/simulators/device-simulator.interface.d.ts +2 -0
  451. package/dist/plugins/simulator/simulators/device-simulator.interface.js +83 -0
  452. package/dist/plugins/simulator/simulators/device-simulator.interface.js.map +1 -1
  453. package/dist/plugins/simulator/simulators/index.d.ts +1 -0
  454. package/dist/plugins/simulator/simulators/index.js +1 -0
  455. package/dist/plugins/simulator/simulators/index.js.map +1 -1
  456. package/dist/plugins/simulator/simulators/input-controller.simulator.d.ts +10 -0
  457. package/dist/plugins/simulator/simulators/input-controller.simulator.js +57 -0
  458. package/dist/plugins/simulator/simulators/input-controller.simulator.js.map +1 -0
  459. package/dist/plugins/simulator/simulators/lighting.simulator.js +1 -0
  460. package/dist/plugins/simulator/simulators/lighting.simulator.js.map +1 -1
  461. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.d.ts +6 -7
  462. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js +19 -44
  463. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js.map +1 -1
  464. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.d.ts +4 -4
  465. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js +9 -22
  466. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js.map +1 -1
  467. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.d.ts +4 -4
  468. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js +9 -22
  469. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js.map +1 -1
  470. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.d.ts +4 -4
  471. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js +9 -22
  472. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js.map +1 -1
  473. package/dist/plugins/spaces-home-control/services/space-climate-state.service.d.ts +3 -5
  474. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js +9 -12
  475. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js.map +1 -1
  476. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.d.ts +3 -5
  477. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js +7 -10
  478. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js.map +1 -1
  479. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.d.ts +3 -5
  480. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js +7 -10
  481. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js.map +1 -1
  482. package/dist/plugins/spaces-home-control/services/space-state-read.service.d.ts +47 -0
  483. package/dist/plugins/spaces-home-control/services/space-state-read.service.js +262 -0
  484. package/dist/plugins/spaces-home-control/services/space-state-read.service.js.map +1 -0
  485. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js +4 -0
  486. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js.map +1 -1
  487. package/dist/spec/channels.d.ts +51 -1
  488. package/dist/spec/channels.js +64 -1
  489. package/dist/spec/channels.js.map +1 -1
  490. package/dist/spec/devices.d.ts +155 -2
  491. package/dist/spec/devices.js +161 -2
  492. package/dist/spec/devices.js.map +1 -1
  493. package/dist/tsconfig.build.tsbuildinfo +1 -1
  494. package/package.json +4 -4
@@ -7,6 +7,7 @@ export declare const TAILSCALE_BINARY = "tailscale";
7
7
  export declare const TAILSCALE_CLI_DEFAULT_TIMEOUT_MS = 15000;
8
8
  export declare const TAILSCALE_CLI_MAX_BUFFER_BYTES: number;
9
9
  export declare const TAILSCALE_SYSTEMCTL_PROBE_TIMEOUT_MS = 2000;
10
+ export declare const TAILSCALE_STOP_STATUS_TIMEOUT_MS = 2000;
10
11
  export declare const TAILSCALE_DEFAULT_LOGIN_SERVER = "https://controlplane.tailscale.com";
11
12
  export declare const TAILSCALE_POLL_INTERVAL_TRANSITIONING_MS = 5000;
12
13
  export declare const TAILSCALE_POLL_INTERVAL_STABLE_MS = 30000;
@@ -20,3 +21,5 @@ export declare const TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = 30000;
20
21
  export declare const TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS: number;
21
22
  export declare const TAILSCALE_RECONNECT_BASE_DELAY_MS = 30000;
22
23
  export declare const TAILSCALE_RECONNECT_MAX_DELAY_MS: number;
24
+ export declare const TAILSCALE_CHILD_TERM_GRACE_MS = 500;
25
+ export declare const TAILSCALE_CHILD_KILL_GRACE_MS = 500;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TAILSCALE_RECONNECT_MAX_DELAY_MS = exports.TAILSCALE_RECONNECT_BASE_DELAY_MS = exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = exports.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS = exports.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = exports.TAILSCALE_DATA_SUBDIR = exports.TAILSCALE_SETUP_STATUS_FILENAME = exports.TAILSCALE_SETUP_WORKER_UNIT = exports.REMOTE_ACCESS_TAILSCALE_ALLOW_DEV_ENV = exports.TAILSCALE_POLL_INTERVAL_STABLE_MS = exports.TAILSCALE_POLL_INTERVAL_TRANSITIONING_MS = exports.TAILSCALE_DEFAULT_LOGIN_SERVER = exports.TAILSCALE_SYSTEMCTL_PROBE_TIMEOUT_MS = exports.TAILSCALE_CLI_MAX_BUFFER_BYTES = exports.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS = exports.TAILSCALE_BINARY = exports.TAILSCALE_MIN_VERSION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_DESCRIPTION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_PREFIX = void 0;
3
+ exports.TAILSCALE_CHILD_KILL_GRACE_MS = exports.TAILSCALE_CHILD_TERM_GRACE_MS = exports.TAILSCALE_RECONNECT_MAX_DELAY_MS = exports.TAILSCALE_RECONNECT_BASE_DELAY_MS = exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = exports.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS = exports.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = exports.TAILSCALE_DATA_SUBDIR = exports.TAILSCALE_SETUP_STATUS_FILENAME = exports.TAILSCALE_SETUP_WORKER_UNIT = exports.REMOTE_ACCESS_TAILSCALE_ALLOW_DEV_ENV = exports.TAILSCALE_POLL_INTERVAL_STABLE_MS = exports.TAILSCALE_POLL_INTERVAL_TRANSITIONING_MS = exports.TAILSCALE_DEFAULT_LOGIN_SERVER = exports.TAILSCALE_STOP_STATUS_TIMEOUT_MS = exports.TAILSCALE_SYSTEMCTL_PROBE_TIMEOUT_MS = exports.TAILSCALE_CLI_MAX_BUFFER_BYTES = exports.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS = exports.TAILSCALE_BINARY = exports.TAILSCALE_MIN_VERSION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_DESCRIPTION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_PREFIX = void 0;
4
4
  exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_PREFIX = 'remote-access-tailscale';
5
5
  exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME = 'remote-access-tailscale-plugin';
6
6
  exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_NAME = 'Remote access Tailscale plugin';
@@ -10,6 +10,7 @@ exports.TAILSCALE_BINARY = 'tailscale';
10
10
  exports.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS = 15_000;
11
11
  exports.TAILSCALE_CLI_MAX_BUFFER_BYTES = 16 * 1024 * 1024;
12
12
  exports.TAILSCALE_SYSTEMCTL_PROBE_TIMEOUT_MS = 2_000;
13
+ exports.TAILSCALE_STOP_STATUS_TIMEOUT_MS = 2_000;
13
14
  exports.TAILSCALE_DEFAULT_LOGIN_SERVER = 'https://controlplane.tailscale.com';
14
15
  exports.TAILSCALE_POLL_INTERVAL_TRANSITIONING_MS = 5_000;
15
16
  exports.TAILSCALE_POLL_INTERVAL_STABLE_MS = 30_000;
@@ -23,4 +24,6 @@ exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = 30_000;
23
24
  exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = 14 * 24 * 60 * 60 * 1000;
24
25
  exports.TAILSCALE_RECONNECT_BASE_DELAY_MS = 30_000;
25
26
  exports.TAILSCALE_RECONNECT_MAX_DELAY_MS = 5 * 60 * 1000;
27
+ exports.TAILSCALE_CHILD_TERM_GRACE_MS = 500;
28
+ exports.TAILSCALE_CHILD_KILL_GRACE_MS = 500;
26
29
  //# sourceMappingURL=remote-access-tailscale.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-access-tailscale.constants.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qCAAqC,GAAG,yBAAyB,CAAC;AAElE,QAAA,mCAAmC,GAAG,gCAAgC,CAAC;AAEvE,QAAA,2CAA2C,GAAG,gCAAgC,CAAC;AAE/E,QAAA,kDAAkD,GAC9D,mHAAmH,CAAC;AASxG,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AAGjC,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAG/B,QAAA,gCAAgC,GAAG,MAAM,CAAC;AAS1C,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAGlD,QAAA,oCAAoC,GAAG,KAAK,CAAC;AAE7C,QAAA,8BAA8B,GAAG,oCAAoC,CAAC;AAGtE,QAAA,wCAAwC,GAAG,KAAK,CAAC;AAGjD,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAQ3C,QAAA,qCAAqC,GAAG,4BAA4B,CAAC;AAGrE,QAAA,2BAA2B,GAAG,2BAA2B,CAAC;AAG1D,QAAA,+BAA+B,GAAG,6BAA6B,CAAC;AAOhE,QAAA,qBAAqB,GAAG,eAAe,CAAC;AAGxC,QAAA,mCAAmC,GAAG,OAAO,CAAC;AAG9C,QAAA,sCAAsC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAYxD,QAAA,sCAAsC,GAAG,MAAM,CAAC;AAGhD,QAAA,uCAAuC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAUnE,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAG3C,QAAA,gCAAgC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"remote-access-tailscale.constants.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qCAAqC,GAAG,yBAAyB,CAAC;AAElE,QAAA,mCAAmC,GAAG,gCAAgC,CAAC;AAEvE,QAAA,2CAA2C,GAAG,gCAAgC,CAAC;AAE/E,QAAA,kDAAkD,GAC9D,mHAAmH,CAAC;AASxG,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AAGjC,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAG/B,QAAA,gCAAgC,GAAG,MAAM,CAAC;AAS1C,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAGlD,QAAA,oCAAoC,GAAG,KAAK,CAAC;AAQ7C,QAAA,gCAAgC,GAAG,KAAK,CAAC;AAEzC,QAAA,8BAA8B,GAAG,oCAAoC,CAAC;AAGtE,QAAA,wCAAwC,GAAG,KAAK,CAAC;AAGjD,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAQ3C,QAAA,qCAAqC,GAAG,4BAA4B,CAAC;AAGrE,QAAA,2BAA2B,GAAG,2BAA2B,CAAC;AAG1D,QAAA,+BAA+B,GAAG,6BAA6B,CAAC;AAOhE,QAAA,qBAAqB,GAAG,eAAe,CAAC;AAGxC,QAAA,mCAAmC,GAAG,OAAO,CAAC;AAG9C,QAAA,sCAAsC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAYxD,QAAA,sCAAsC,GAAG,MAAM,CAAC;AAGhD,QAAA,uCAAuC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAUnE,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAG3C,QAAA,gCAAgC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD,QAAA,6BAA6B,GAAG,GAAG,CAAC;AACpC,QAAA,6BAA6B,GAAG,GAAG,CAAC"}
@@ -1,4 +1,20 @@
1
- import { TailscaleRequirement } from './services/tailscale-node-managed.service';
1
+ import type { TailscaleRequirement } from './services/tailscale-node-managed.service';
2
+ export declare class TailscaleOperationCancelledException extends Error {
3
+ readonly code = "operation-cancelled";
4
+ constructor();
5
+ }
6
+ export declare class TailscaleOperationInProgressException extends Error {
7
+ readonly code = "operation-in-progress";
8
+ constructor();
9
+ }
10
+ export declare class TailscalePluginDisabledException extends Error {
11
+ readonly code = "plugin-disabled";
12
+ constructor();
13
+ }
14
+ export declare class TailscaleChildTerminationException extends Error {
15
+ readonly code = "child-termination-failed";
16
+ constructor();
17
+ }
2
18
  export declare class TailscaleRequirementUnsatisfiedException extends Error {
3
19
  readonly requirement: TailscaleRequirement;
4
20
  constructor(requirement: TailscaleRequirement);
@@ -1,6 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TailscaleNodeStopFailedException = exports.TailscaleSetupUnavailableException = exports.TailscaleRequirementUnsatisfiedException = void 0;
3
+ exports.TailscaleNodeStopFailedException = exports.TailscaleSetupUnavailableException = exports.TailscaleRequirementUnsatisfiedException = exports.TailscaleChildTerminationException = exports.TailscalePluginDisabledException = exports.TailscaleOperationInProgressException = exports.TailscaleOperationCancelledException = void 0;
4
+ class TailscaleOperationCancelledException extends Error {
5
+ constructor() {
6
+ super('The Tailscale operation was cancelled by a newer lifecycle action.');
7
+ this.code = 'operation-cancelled';
8
+ this.name = 'TailscaleOperationCancelledException';
9
+ }
10
+ }
11
+ exports.TailscaleOperationCancelledException = TailscaleOperationCancelledException;
12
+ class TailscaleOperationInProgressException extends Error {
13
+ constructor() {
14
+ super('Another Tailscale operation is in progress. Wait for it to finish or disconnect to cancel it.');
15
+ this.code = 'operation-in-progress';
16
+ this.name = 'TailscaleOperationInProgressException';
17
+ }
18
+ }
19
+ exports.TailscaleOperationInProgressException = TailscaleOperationInProgressException;
20
+ class TailscalePluginDisabledException extends Error {
21
+ constructor() {
22
+ super('Enable the Tailscale plugin before connecting or signing in.');
23
+ this.code = 'plugin-disabled';
24
+ this.name = 'TailscalePluginDisabledException';
25
+ }
26
+ }
27
+ exports.TailscalePluginDisabledException = TailscalePluginDisabledException;
28
+ class TailscaleChildTerminationException extends Error {
29
+ constructor() {
30
+ super('A Tailscale command did not exit after cancellation. Disconnect again before retrying.');
31
+ this.code = 'child-termination-failed';
32
+ this.name = 'TailscaleChildTerminationException';
33
+ }
34
+ }
35
+ exports.TailscaleChildTerminationException = TailscaleChildTerminationException;
4
36
  class TailscaleRequirementUnsatisfiedException extends Error {
5
37
  constructor(requirement) {
6
38
  super(requirement.message);
@@ -1 +1 @@
1
- {"version":3,"file":"remote-access-tailscale.exceptions.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.ts"],"names":[],"mappings":";;;AAWA,MAAa,wCAAyC,SAAQ,KAAK;IAClE,YAAqB,WAAiC;QACrD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QADP,gBAAW,GAAX,WAAW,CAAsB;QAErD,IAAI,CAAC,IAAI,GAAG,0CAA0C,CAAC;IACxD,CAAC;CACD;AALD,4FAKC;AA4BD,MAAa,kCAAmC,SAAQ,KAAK;IAC5D,YACC,OAAe,EACC,OAAsC,sBAAsB;QAE5E,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAwD;QAG5E,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IAClD,CAAC;CACD;AARD,gFAQC;AAYD,MAAa,gCAAiC,SAAQ,KAAK;IAC1D,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IAChD,CAAC;CACD;AALD,4EAKC"}
1
+ {"version":3,"file":"remote-access-tailscale.exceptions.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.ts"],"names":[],"mappings":";;;AAEA,MAAa,oCAAqC,SAAQ,KAAK;IAE9D;QACC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAFpE,SAAI,GAAG,qBAAqB,CAAC;QAGrC,IAAI,CAAC,IAAI,GAAG,sCAAsC,CAAC;IACpD,CAAC;CACD;AAND,oFAMC;AAED,MAAa,qCAAsC,SAAQ,KAAK;IAE/D;QACC,KAAK,CAAC,+FAA+F,CAAC,CAAC;QAF/F,SAAI,GAAG,uBAAuB,CAAC;QAGvC,IAAI,CAAC,IAAI,GAAG,uCAAuC,CAAC;IACrD,CAAC;CACD;AAND,sFAMC;AAED,MAAa,gCAAiC,SAAQ,KAAK;IAE1D;QACC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAF9D,SAAI,GAAG,iBAAiB,CAAC;QAGjC,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IAChD,CAAC;CACD;AAND,4EAMC;AAED,MAAa,kCAAmC,SAAQ,KAAK;IAE5D;QACC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAFxF,SAAI,GAAG,0BAA0B,CAAC;QAG1C,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IAClD,CAAC;CACD;AAND,gFAMC;AAWD,MAAa,wCAAyC,SAAQ,KAAK;IAClE,YAAqB,WAAiC;QACrD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QADP,gBAAW,GAAX,WAAW,CAAsB;QAErD,IAAI,CAAC,IAAI,GAAG,0CAA0C,CAAC;IACxD,CAAC;CACD;AALD,4FAKC;AA4BD,MAAa,kCAAmC,SAAQ,KAAK;IAC5D,YACC,OAAe,EACC,OAAsC,sBAAsB;QAE5E,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAwD;QAG5E,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IAClD,CAAC;CACD;AARD,gFAQC;AAYD,MAAa,gCAAiC,SAAQ,KAAK;IAC1D,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IAChD,CAAC;CACD;AALD,4EAKC"}
@@ -2,5 +2,5 @@ import { RemoteAccessTailscalePluginLoginDto } from './dto/login.dto';
2
2
  import { UpdateRemoteAccessTailscalePluginConfigDto } from './dto/update-config.dto';
3
3
  import { RemoteAccessTailscalePluginConfigModel } from './models/config.model';
4
4
  import { RemoteAccessTailscalePluginInstallModel, RemoteAccessTailscalePluginInstallResponseModel, RemoteAccessTailscalePluginLoginModel, RemoteAccessTailscalePluginLoginResponseModel } from './models/login.model';
5
- import { RemoteAccessTailscalePluginPrivilegedSetupModel, RemoteAccessTailscalePluginRequirementModel, RemoteAccessTailscalePluginSetupJobModel } from './models/status.model';
6
- export declare const REMOTE_ACCESS_TAILSCALE_PLUGIN_SWAGGER_EXTRA_MODELS: (typeof RemoteAccessTailscalePluginLoginDto | typeof RemoteAccessTailscalePluginLoginModel | typeof RemoteAccessTailscalePluginLoginResponseModel | typeof RemoteAccessTailscalePluginInstallModel | typeof RemoteAccessTailscalePluginInstallResponseModel | typeof RemoteAccessTailscalePluginConfigModel | typeof RemoteAccessTailscalePluginRequirementModel | typeof RemoteAccessTailscalePluginSetupJobModel | typeof RemoteAccessTailscalePluginPrivilegedSetupModel | typeof UpdateRemoteAccessTailscalePluginConfigDto)[];
5
+ import { RemoteAccessTailscalePluginControlModel, RemoteAccessTailscalePluginPrivilegedSetupModel, RemoteAccessTailscalePluginRequirementModel, RemoteAccessTailscalePluginSetupJobModel } from './models/status.model';
6
+ export declare const REMOTE_ACCESS_TAILSCALE_PLUGIN_SWAGGER_EXTRA_MODELS: (typeof RemoteAccessTailscalePluginLoginDto | typeof RemoteAccessTailscalePluginLoginModel | typeof RemoteAccessTailscalePluginLoginResponseModel | typeof RemoteAccessTailscalePluginInstallModel | typeof RemoteAccessTailscalePluginInstallResponseModel | typeof RemoteAccessTailscalePluginConfigModel | typeof RemoteAccessTailscalePluginControlModel | typeof RemoteAccessTailscalePluginRequirementModel | typeof RemoteAccessTailscalePluginSetupJobModel | typeof RemoteAccessTailscalePluginPrivilegedSetupModel | typeof UpdateRemoteAccessTailscalePluginConfigDto)[];
@@ -14,6 +14,7 @@ exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_SWAGGER_EXTRA_MODELS = [
14
14
  login_model_1.RemoteAccessTailscalePluginInstallResponseModel,
15
15
  login_model_1.RemoteAccessTailscalePluginLoginResponseModel,
16
16
  status_model_1.RemoteAccessTailscalePluginStatusModel,
17
+ status_model_1.RemoteAccessTailscalePluginControlModel,
17
18
  status_model_1.RemoteAccessTailscalePluginRequirementModel,
18
19
  login_model_1.RemoteAccessTailscalePluginInstallModel,
19
20
  login_model_1.RemoteAccessTailscalePluginLoginModel,
@@ -1 +1 @@
1
- {"version":3,"file":"remote-access-tailscale.openapi.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.openapi.ts"],"names":[],"mappings":";;;AAQA,+CAAsE;AACtE,+DAAqF;AACrF,wDAA+E;AAC/E,sDAK8B;AAC9B,wDAM+B;AAElB,QAAA,mDAAmD,GAAG;IAElE,qDAAsC;IACtC,8DAA0C;IAE1C,+CAAmC;IAEnC,6DAA8C;IAC9C,6DAA+C;IAC/C,2DAA6C;IAE7C,qDAAsC;IACtC,0DAA2C;IAC3C,qDAAuC;IACvC,mDAAqC;IACrC,uDAAwC;IACxC,8DAA+C;CAC/C,CAAC"}
1
+ {"version":3,"file":"remote-access-tailscale.openapi.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.openapi.ts"],"names":[],"mappings":";;;AAQA,+CAAsE;AACtE,+DAAqF;AACrF,wDAA+E;AAC/E,sDAK8B;AAC9B,wDAO+B;AAElB,QAAA,mDAAmD,GAAG;IAElE,qDAAsC;IACtC,8DAA0C;IAE1C,+CAAmC;IAEnC,6DAA8C;IAC9C,6DAA+C;IAC/C,2DAA6C;IAE7C,qDAAsC;IACtC,sDAAuC;IACvC,0DAA2C;IAC3C,qDAAuC;IACvC,mDAAqC;IACrC,uDAAwC;IACxC,8DAA+C;CAC/C,CAAC"}
@@ -30,6 +30,7 @@ const remote_access_tailscale_openapi_1 = require("./remote-access-tailscale.ope
30
30
  const tailscale_cli_service_1 = require("./services/tailscale-cli.service");
31
31
  const tailscale_login_service_1 = require("./services/tailscale-login.service");
32
32
  const tailscale_node_managed_service_1 = require("./services/tailscale-node-managed.service");
33
+ const tailscale_operation_coordinator_service_1 = require("./services/tailscale-operation-coordinator.service");
33
34
  const tailscale_provider_service_1 = require("./services/tailscale-provider.service");
34
35
  const tailscale_serve_service_1 = require("./services/tailscale-serve.service");
35
36
  const tailscale_setup_service_1 = require("./services/tailscale-setup.service");
@@ -109,8 +110,9 @@ exports.RemoteAccessTailscalePlugin = RemoteAccessTailscalePlugin = __decorate([
109
110
  }),
110
111
  (0, common_1.Module)({
111
112
  imports: [remote_access_module_1.RemoteAccessModule, platform_module_1.PlatformModule, config_1.ConfigModule],
112
- controllers: [status_controller_1.StatusController, setup_controller_1.SetupController],
113
+ controllers: [status_controller_1.TailscaleStatusController, setup_controller_1.TailscaleSetupController],
113
114
  providers: [
115
+ tailscale_operation_coordinator_service_1.TailscaleOperationCoordinatorService,
114
116
  tailscale_cli_service_1.TailscaleCliService,
115
117
  tailscale_status_mapper_service_1.TailscaleStatusMapperService,
116
118
  tailscale_serve_service_1.TailscaleServeService,
@@ -1 +1 @@
1
- {"version":3,"file":"remote-access-tailscale.plugin.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-access-tailscale.plugin.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.plugin.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  #!/bin/bash
2
2
  # Privileged Tailscale setup job, run by PrivilegedWorkerService as
3
- # `sudo -n systemd-run --scope --unit=smart-panel-remote-access bash
3
+ # `sudo -n systemd-run --collect --service-type=exec --unit=smart-panel-remote-access bash
4
4
  # tailscale-setup.sh` (see TailscaleSetupService.install()). Idempotent:
5
5
  # re-running is harmless once every step has already succeeded.
6
+ # A separate service avoids inheriting the backend's read-only filesystem sandbox.
6
7
  #
7
8
  # Steps: (1) install the `tailscale` package from the signed vendor apt
8
9
  # repository if missing — never a downloaded script piped into a shell;
@@ -90,6 +91,18 @@ if [ "$PRINT_PLAN" -eq 1 ]; then
90
91
  exit 0
91
92
  fi
92
93
 
94
+ # History is opt-in: manual invocations retain the legacy status shape. Validate
95
+ # the generated UUID before embedding it in JSON; print-plan exits above without
96
+ # validating or writing anything. History belongs to this process, never a prior file.
97
+ JOB_ID="${PRIVILEGED_WORKER_JOB_ID:-}"
98
+ if [ -n "$JOB_ID" ] && [[ ! "$JOB_ID" =~ ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ ]]; then
99
+ echo "Invalid PRIVILEGED_WORKER_JOB_ID" >&2
100
+ exit 1
101
+ fi
102
+ STATUS_HISTORY=""
103
+ STATUS_HISTORY_COUNT=0
104
+ LAST_STATUS_STATE=""
105
+
93
106
  # Writes the canonical `{ state, step, message }` status PrivilegedWorkerService
94
107
  # expects, via a temp file + rename so a concurrent read never sees a
95
108
  # half-written file. printf %s (never direct interpolation into the format
@@ -101,6 +114,7 @@ write_status() {
101
114
  local message="${3:-}"
102
115
  local tmp_file="${STATUS_FILE}.tmp"
103
116
  local safe_message=""
117
+ local entry=""
104
118
 
105
119
  if [ -n "$message" ]; then
106
120
  # Strip control characters first (defensive: every message here is a
@@ -113,10 +127,29 @@ write_status() {
113
127
 
114
128
  mkdir -p "$(dirname "$STATUS_FILE")"
115
129
 
116
- printf '{\n\t"state": "%s",\n\t"step": "%s",\n\t"message": "%s"\n}\n' \
117
- "$state" "$step" "$safe_message" >"$tmp_file"
130
+ if [ -n "$JOB_ID" ]; then
131
+ # The script has four success entries (or a final failure). Keep the same
132
+ # 32-entry bound as the worker rather than permitting unbounded growth.
133
+ if [ "$STATUS_HISTORY_COUNT" -ge 32 ]; then
134
+ echo "Status history exceeds 32 entries" >&2
135
+ return 1
136
+ fi
137
+
138
+ printf -v entry '{"state":"%s","step":"%s","message":"%s"}' "$state" "$step" "$safe_message"
139
+ if [ -n "$STATUS_HISTORY" ]; then
140
+ STATUS_HISTORY+=","
141
+ fi
142
+ STATUS_HISTORY+="$entry"
143
+ STATUS_HISTORY_COUNT=$((STATUS_HISTORY_COUNT + 1))
144
+ printf '{"jobId":"%s","state":"%s","step":"%s","message":"%s","history":[%s]}\n' \
145
+ "$JOB_ID" "$state" "$step" "$safe_message" "$STATUS_HISTORY" >"$tmp_file"
146
+ else
147
+ printf '{\n\t"state": "%s",\n\t"step": "%s",\n\t"message": "%s"\n}\n' \
148
+ "$state" "$step" "$safe_message" >"$tmp_file"
149
+ fi
118
150
 
119
151
  mv "$tmp_file" "$STATUS_FILE"
152
+ LAST_STATUS_STATE="$state"
120
153
  }
121
154
 
122
155
  # Only fires on an exit this script did not already report itself (a crash,
@@ -126,7 +159,7 @@ cleanup() {
126
159
  local exit_code=$?
127
160
 
128
161
  if [ "$exit_code" -ne 0 ]; then
129
- if [ -f "$STATUS_FILE" ] && grep -q '"state": "failed"' "$STATUS_FILE" 2>/dev/null; then
162
+ if [ "$LAST_STATUS_STATE" = "failed" ]; then
130
163
  return
131
164
  fi
132
165
 
@@ -1,4 +1,5 @@
1
1
  import { type ChildProcessWithoutNullStreams } from 'node:child_process';
2
+ import { TailscaleOperationCoordinatorService } from './tailscale-operation-coordinator.service';
2
3
  export type TailscaleCliErrorKind = 'not-installed' | 'permission-denied' | 'daemon-down' | 'needs-login' | 'settings-conflict' | 'timeout' | 'unknown';
3
4
  export declare class TailscaleCliError extends Error {
4
5
  readonly kind: TailscaleCliErrorKind;
@@ -40,6 +41,7 @@ export interface TailscaleVersionInfo {
40
41
  export interface TailscalePrefs {
41
42
  OperatorUser?: string;
42
43
  ControlURL?: string;
44
+ AdvertiseTags?: string[] | null;
43
45
  Hostname?: string;
44
46
  LoggedOut?: boolean;
45
47
  WantRunning?: boolean;
@@ -63,10 +65,12 @@ export interface TailscaleServeStatus {
63
65
  }
64
66
  export declare function redactTailscaleArgs(args: readonly string[]): string[];
65
67
  export declare class TailscaleCliService {
68
+ private readonly operations?;
66
69
  private readonly logger;
67
- getVersion(): Promise<TailscaleVersionInfo>;
68
- getStatus(): Promise<TailscaleStatus>;
69
- getPrefs(): Promise<TailscalePrefs>;
70
+ constructor(operations?: TailscaleOperationCoordinatorService);
71
+ getVersion(signal?: AbortSignal): Promise<TailscaleVersionInfo>;
72
+ getStatus(signal?: AbortSignal): Promise<TailscaleStatus>;
73
+ getPrefs(signal?: AbortSignal): Promise<TailscalePrefs>;
70
74
  up(args: readonly string[]): Promise<void>;
71
75
  set(args: readonly string[]): Promise<void>;
72
76
  down(): Promise<void>;
@@ -75,10 +79,11 @@ export declare class TailscaleCliService {
75
79
  serve(backendPort: number): Promise<void>;
76
80
  funnelOn(backendPort: number): Promise<void>;
77
81
  serveOff(): Promise<void>;
78
- serveStatus(): Promise<TailscaleServeStatus>;
82
+ serveStatus(signal?: AbortSignal): Promise<TailscaleServeStatus>;
79
83
  spawnUp(args: readonly string[]): ChildProcessWithoutNullStreams;
80
84
  private runManagementCommand;
81
85
  private execServeConfig;
82
86
  private classify;
87
+ private execRead;
83
88
  private exec;
84
89
  }
@@ -5,13 +5,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.TailscaleCliService = exports.TailscaleCliError = void 0;
10
16
  exports.redactTailscaleArgs = redactTailscaleArgs;
11
17
  const node_child_process_1 = require("node:child_process");
12
18
  const common_1 = require("@nestjs/common");
13
19
  const logger_1 = require("../../../common/logger");
20
+ const cancellable_exec_utils_1 = require("../../../common/utils/cancellable-exec.utils");
14
21
  const remote_access_tailscale_constants_1 = require("../remote-access-tailscale.constants");
22
+ const tailscale_operation_coordinator_service_1 = require("./tailscale-operation-coordinator.service");
15
23
  class TailscaleCliError extends Error {
16
24
  constructor(kind, message, cause) {
17
25
  super(message);
@@ -51,11 +59,12 @@ const PERMISSION_DENIED_PATTERN = /access denied|permission denied|must be root,
51
59
  const DAEMON_DOWN_PATTERN = /connection refused|failed to connect to local|couldn't connect|no such file or directory.*sock/i;
52
60
  const NEEDS_LOGIN_PATTERN = /not logged in|needs to log in|logged out/i;
53
61
  let TailscaleCliService = class TailscaleCliService {
54
- constructor() {
62
+ constructor(operations) {
63
+ this.operations = operations;
55
64
  this.logger = (0, logger_1.createExtensionLogger)(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'TailscaleCliService');
56
65
  }
57
- async getVersion() {
58
- const { stdout, stderr, exitCode } = await this.exec(['version', '--json']);
66
+ async getVersion(signal) {
67
+ const { stdout, stderr, exitCode } = await this.execRead(['version', '--json'], signal);
59
68
  if (exitCode !== 0) {
60
69
  throw this.classify(stdout, stderr, `tailscale version --json exited with code ${exitCode}`);
61
70
  }
@@ -72,8 +81,8 @@ let TailscaleCliService = class TailscaleCliService {
72
81
  }
73
82
  return { version, raw: parsed };
74
83
  }
75
- async getStatus() {
76
- const { stdout, stderr, exitCode } = await this.exec(['status', '--json']);
84
+ async getStatus(signal) {
85
+ const { stdout, stderr, exitCode } = await this.execRead(['status', '--json'], signal);
77
86
  let parsed;
78
87
  try {
79
88
  parsed = JSON.parse(stdout);
@@ -86,13 +95,17 @@ let TailscaleCliService = class TailscaleCliService {
86
95
  }
87
96
  return parsed;
88
97
  }
89
- async getPrefs() {
90
- const { stdout, stderr, exitCode } = await this.exec(['debug', 'prefs']);
98
+ async getPrefs(signal) {
99
+ const { stdout, stderr, exitCode } = await this.execRead(['debug', 'prefs'], signal);
91
100
  if (exitCode !== 0) {
92
101
  throw this.classify(stdout, stderr, `tailscale debug prefs exited with code ${exitCode}`);
93
102
  }
94
103
  try {
95
- return JSON.parse(stdout);
104
+ const parsed = JSON.parse(stdout);
105
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
106
+ throw new Error('Expected a preferences object.');
107
+ }
108
+ return parsed;
96
109
  }
97
110
  catch (error) {
98
111
  throw new TailscaleCliError('unknown', 'Failed to parse `tailscale debug prefs` output.', error);
@@ -134,10 +147,11 @@ let TailscaleCliService = class TailscaleCliService {
134
147
  async serveOff() {
135
148
  await this.runManagementCommand(['serve', '--https=443', '--set-path=/', 'off']);
136
149
  }
137
- async serveStatus() {
138
- return this.execServeConfig(['serve', 'status', '--json']);
150
+ async serveStatus(signal) {
151
+ return this.execServeConfig(['serve', 'status', '--json'], signal);
139
152
  }
140
153
  spawnUp(args) {
154
+ this.operations?.assertCurrent();
141
155
  const argv = ['up', ...args];
142
156
  this.logger.debug(`Spawning: ${remote_access_tailscale_constants_1.TAILSCALE_BINARY} ${redactTailscaleArgs(argv).join(' ')}`);
143
157
  return (0, node_child_process_1.spawn)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, argv);
@@ -148,8 +162,8 @@ let TailscaleCliService = class TailscaleCliService {
148
162
  throw this.classify(stdout, stderr, `tailscale ${args[0] ?? ''} exited with code ${exitCode}`);
149
163
  }
150
164
  }
151
- async execServeConfig(args) {
152
- const { stdout, stderr, exitCode } = await this.exec(args);
165
+ async execServeConfig(args, signal) {
166
+ const { stdout, stderr, exitCode } = await this.execRead(args, signal);
153
167
  if (exitCode !== 0) {
154
168
  throw this.classify(stdout, stderr, `tailscale ${args.join(' ')} exited with code ${exitCode}`);
155
169
  }
@@ -175,14 +189,38 @@ let TailscaleCliService = class TailscaleCliService {
175
189
  else if (NEEDS_LOGIN_PATTERN.test(text)) {
176
190
  kind = 'needs-login';
177
191
  }
178
- const detail = stderr.trim() || stdout.trim();
192
+ const detail = (stderr.trim() || stdout.trim())
193
+ .replace(/https?:\/\/\S+/gi, '[redacted URL]')
194
+ .replace(/tskey-[\w-]+/gi, '[redacted key]');
179
195
  return new TailscaleCliError(kind, detail ? `${context}: ${detail}` : context, cause);
180
196
  }
197
+ async execRead(args, signal) {
198
+ if (!signal && this.operations?.getToken()) {
199
+ return this.exec(args);
200
+ }
201
+ try {
202
+ return await (0, cancellable_exec_utils_1.cancellableExecFile)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, args, signal, remote_access_tailscale_constants_1.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS, remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES);
203
+ }
204
+ catch (error) {
205
+ signal?.throwIfAborted();
206
+ const nodeError = error;
207
+ if (nodeError.code === 'ENOENT') {
208
+ throw new TailscaleCliError('not-installed', 'The tailscale CLI is not installed or not on PATH.', error);
209
+ }
210
+ if (nodeError.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') {
211
+ throw new TailscaleCliError('unknown', `tailscale ${args[0] ?? ''} produced more than ${remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES} bytes of output.`, error);
212
+ }
213
+ throw new TailscaleCliError(nodeError.killed ? 'timeout' : 'unknown', 'The Tailscale status read failed.', error);
214
+ }
215
+ }
181
216
  exec(args, timeoutMs = remote_access_tailscale_constants_1.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS) {
217
+ this.operations?.assertCurrent();
182
218
  const argv = [...args];
183
219
  this.logger.debug(`Running: ${remote_access_tailscale_constants_1.TAILSCALE_BINARY} ${redactTailscaleArgs(argv).join(' ')}`);
184
220
  return new Promise((resolve, reject) => {
185
- (0, node_child_process_1.execFile)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, argv, { timeout: timeoutMs, maxBuffer: remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES }, (error, stdout, stderr) => {
221
+ let hardDeadline;
222
+ const child = (0, node_child_process_1.execFile)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, argv, { timeout: timeoutMs, maxBuffer: remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES }, (error, stdout, stderr) => {
223
+ clearTimeout(hardDeadline);
186
224
  const out = stdout ?? '';
187
225
  const err = stderr ?? '';
188
226
  if (error) {
@@ -208,11 +246,21 @@ let TailscaleCliService = class TailscaleCliService {
208
246
  }
209
247
  resolve({ stdout: out, stderr: err, exitCode: 0 });
210
248
  });
249
+ if (this.operations?.getToken()) {
250
+ void this.operations.trackChild(child);
251
+ hardDeadline = setTimeout(() => {
252
+ void this.operations
253
+ .terminateChild(child)
254
+ .then(() => reject(new TailscaleCliError('timeout', `tailscale ${argv[0] ?? ''} did not complete within ${timeoutMs}ms.`)), reject);
255
+ }, timeoutMs);
256
+ }
211
257
  });
212
258
  }
213
259
  };
214
260
  exports.TailscaleCliService = TailscaleCliService;
215
261
  exports.TailscaleCliService = TailscaleCliService = __decorate([
216
- (0, common_1.Injectable)()
262
+ (0, common_1.Injectable)(),
263
+ __param(0, (0, common_1.Optional)()),
264
+ __metadata("design:paramtypes", [tailscale_operation_coordinator_service_1.TailscaleOperationCoordinatorService])
217
265
  ], TailscaleCliService);
218
266
  //# sourceMappingURL=tailscale-cli.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-cli.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailscale-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-cli.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { OnModuleInit } from '@nestjs/common';
1
+ import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
2
  import { ConfigService as NestConfigService } from '@nestjs/config';
3
3
  import { RemoteAccessProviderState } from '../../../modules/remote-access/platforms/remote-access-provider.platform';
4
+ import { TailscaleOperationInProgressException } from '../remote-access-tailscale.exceptions';
4
5
  import { TailscaleCliService } from './tailscale-cli.service';
5
6
  import { TailscaleNodeManagedService } from './tailscale-node-managed.service';
6
7
  export interface TailscaleLoginResult {
@@ -12,18 +13,21 @@ export declare function extractJsonObjects(buffer: string): {
12
13
  objects: string[];
13
14
  rest: string;
14
15
  };
15
- export declare class TailscaleLoginInProgressException extends Error {
16
+ export declare class TailscaleLoginInProgressException extends TailscaleOperationInProgressException {
16
17
  constructor(message: string);
17
18
  }
18
- export declare class TailscaleLoginService implements OnModuleInit {
19
+ export declare class TailscaleLoginService implements OnModuleInit, OnModuleDestroy {
19
20
  private readonly cli;
20
21
  private readonly nodeManagedService;
21
22
  private readonly nestConfigService;
22
23
  private readonly logger;
23
24
  private pending;
25
+ private interactiveRequest;
24
26
  private keyedLoginInFlight;
25
27
  constructor(cli: TailscaleCliService, nodeManagedService: TailscaleNodeManagedService, nestConfigService: NestConfigService);
26
28
  onModuleInit(): Promise<void>;
29
+ private get operations();
30
+ onModuleDestroy(): Promise<void>;
27
31
  login(authKey?: string): Promise<TailscaleLoginResult>;
28
32
  logout(): Promise<TailscaleLoginResult>;
29
33
  resetPreferences(): Promise<TailscaleLoginResult>;
@@ -33,6 +37,7 @@ export declare class TailscaleLoginService implements OnModuleInit {
33
37
  qr?: string;
34
38
  } | null;
35
39
  stopPendingLogin(): void;
40
+ private prepareLogin;
36
41
  private loginWithAuthKey;
37
42
  private loginInteractively;
38
43
  private currentStatus;