@fastybird/smart-panel-backend 1.1.0-alpha.1 → 1.1.0-alpha.10

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 (209) hide show
  1. package/dist/app.module.js +7 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/common/filters/conflict-exception.filter.d.ts +6 -0
  4. package/dist/common/filters/conflict-exception.filter.js +59 -0
  5. package/dist/common/filters/conflict-exception.filter.js.map +1 -0
  6. package/dist/common/filters/global-error.filter.js +1 -4
  7. package/dist/common/filters/global-error.filter.js.map +1 -1
  8. package/dist/common/filters/global-filters.d.ts +3 -0
  9. package/dist/common/filters/global-filters.js +22 -0
  10. package/dist/common/filters/global-filters.js.map +1 -0
  11. package/dist/common/filters/unprocessable-entity-exception.filter.d.ts +1 -0
  12. package/dist/common/filters/unprocessable-entity-exception.filter.js +15 -3
  13. package/dist/common/filters/unprocessable-entity-exception.filter.js.map +1 -1
  14. package/dist/common/utils/transform.utils.js +3 -0
  15. package/dist/common/utils/transform.utils.js.map +1 -1
  16. package/dist/main.js +2 -7
  17. package/dist/main.js.map +1 -1
  18. package/dist/modules/devices/controllers/channels.properties.controller.js +16 -4
  19. package/dist/modules/devices/controllers/channels.properties.controller.js.map +1 -1
  20. package/dist/modules/devices/controllers/devices.channels.properties.controller.js +16 -4
  21. package/dist/modules/devices/controllers/devices.channels.properties.controller.js.map +1 -1
  22. package/dist/modules/devices/devices.module.js +12 -0
  23. package/dist/modules/devices/devices.module.js.map +1 -1
  24. package/dist/modules/devices/services/channels.properties.service.d.ts +27 -3
  25. package/dist/modules/devices/services/channels.properties.service.js +304 -28
  26. package/dist/modules/devices/services/channels.properties.service.js.map +1 -1
  27. package/dist/modules/devices/services/channels.service.js +42 -38
  28. package/dist/modules/devices/services/channels.service.js.map +1 -1
  29. package/dist/modules/devices/services/command-latency-trace-collector.service.d.ts +101 -0
  30. package/dist/modules/devices/services/command-latency-trace-collector.service.js +451 -0
  31. package/dist/modules/devices/services/command-latency-trace-collector.service.js.map +1 -0
  32. package/dist/modules/devices/services/device-structure-lock.service.d.ts +10 -2
  33. package/dist/modules/devices/services/device-structure-lock.service.js +86 -7
  34. package/dist/modules/devices/services/device-structure-lock.service.js.map +1 -1
  35. package/dist/modules/devices/services/devices.service.js +37 -33
  36. package/dist/modules/devices/services/devices.service.js.map +1 -1
  37. package/dist/modules/devices/services/module-reset.service.d.ts +3 -1
  38. package/dist/modules/devices/services/module-reset.service.js +21 -16
  39. package/dist/modules/devices/services/module-reset.service.js.map +1 -1
  40. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +45 -0
  41. package/dist/modules/devices/services/property-command-dispatch.service.js +227 -0
  42. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -0
  43. package/dist/modules/devices/services/property-command-window.service.d.ts +71 -0
  44. package/dist/modules/devices/services/property-command-window.service.js +204 -0
  45. package/dist/modules/devices/services/property-command-window.service.js.map +1 -0
  46. package/dist/modules/devices/services/property-command.service.d.ts +20 -3
  47. package/dist/modules/devices/services/property-command.service.js +56 -10
  48. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  49. package/dist/modules/devices/services/property-state-coordinator.service.d.ts +4 -0
  50. package/dist/modules/devices/services/property-state-coordinator.service.js +35 -0
  51. package/dist/modules/devices/services/property-state-coordinator.service.js.map +1 -0
  52. package/dist/modules/devices/services/property-value.service.d.ts +1 -0
  53. package/dist/modules/devices/services/property-value.service.js +4 -0
  54. package/dist/modules/devices/services/property-value.service.js.map +1 -1
  55. package/dist/modules/platform/services/platform.service.d.ts +13 -4
  56. package/dist/modules/platform/services/platform.service.js +57 -35
  57. package/dist/modules/platform/services/platform.service.js.map +1 -1
  58. package/dist/modules/remote-access/dto/update-config.dto.js +5 -0
  59. package/dist/modules/remote-access/dto/update-config.dto.js.map +1 -1
  60. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js +5 -2
  61. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js.map +1 -1
  62. package/dist/modules/system/services/privileged-worker.service.d.ts +10 -0
  63. package/dist/modules/system/services/privileged-worker.service.js +137 -11
  64. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  65. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +4 -1
  66. package/dist/modules/websocket/gateway/websocket.gateway.js +28 -5
  67. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  68. package/dist/modules/websocket/services/command-acknowledgement-trace.service.d.ts +143 -0
  69. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js +523 -0
  70. package/dist/modules/websocket/services/command-acknowledgement-trace.service.js.map +1 -0
  71. package/dist/modules/websocket/websocket.module.js +9 -1
  72. package/dist/modules/websocket/websocket.module.js.map +1 -1
  73. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js +2 -1
  74. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js.map +1 -1
  75. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +2 -3
  76. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  77. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +6 -1
  78. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  79. package/dist/plugins/devices-homekit/mappers/base.mapper.js +27 -4
  80. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  81. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +8 -0
  82. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.d.ts +7 -0
  83. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +84 -73
  84. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  85. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +18 -1
  86. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +338 -119
  87. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  88. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +13 -1
  89. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +109 -10
  90. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  91. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +8 -11
  92. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  93. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js +4 -0
  94. package/dist/plugins/devices-shelly-ng/mappings/mapping-loader.service.js.map +1 -1
  95. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js +5 -0
  96. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  97. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +9 -1
  98. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +59 -24
  99. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  100. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +0 -1
  101. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +5 -12
  102. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  103. package/dist/plugins/devices-shelly-ng/utils/transform.utils.d.ts +2 -0
  104. package/dist/plugins/devices-shelly-ng/utils/transform.utils.js +14 -1
  105. package/dist/plugins/devices-shelly-ng/utils/transform.utils.js.map +1 -1
  106. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +17 -0
  107. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +147 -0
  108. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -0
  109. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +15 -0
  110. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +98 -0
  111. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -0
  112. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.d.ts +9 -0
  113. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js +94 -0
  114. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js.map +1 -0
  115. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.d.ts +9 -0
  116. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js +92 -0
  117. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js.map +1 -0
  118. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.d.ts +7 -0
  119. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js +48 -0
  120. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js.map +1 -0
  121. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +42 -0
  122. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +352 -0
  123. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -0
  124. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.d.ts +24 -0
  125. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js +27 -0
  126. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js.map +1 -0
  127. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.d.ts +8 -0
  128. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js +19 -0
  129. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js.map +1 -0
  130. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.d.ts +4 -0
  131. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js +20 -0
  132. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js.map +1 -0
  133. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.d.ts +21 -0
  134. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js +135 -0
  135. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js.map +1 -0
  136. package/dist/plugins/remote-access-cloudflare-tunnel/scripts/cloudflared-setup.sh +185 -0
  137. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +82 -0
  138. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +507 -0
  139. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -0
  140. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +10 -0
  141. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +37 -0
  142. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -0
  143. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.d.ts +38 -0
  144. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js +147 -0
  145. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js.map +1 -0
  146. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +15 -0
  147. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +67 -0
  148. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -0
  149. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +8 -0
  150. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +46 -0
  151. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -0
  152. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.d.ts +27 -0
  153. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js +139 -0
  154. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js.map +1 -0
  155. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +1 -0
  156. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +26 -10
  157. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  158. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -1
  159. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +28 -3
  160. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  161. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +19 -0
  162. package/dist/plugins/remote-access-tailscale/models/status.model.js +158 -1
  163. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  164. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +2 -0
  165. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +3 -1
  166. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  167. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +13 -0
  168. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +27 -0
  169. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -0
  170. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  171. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +2 -0
  172. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  173. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +1 -1
  174. package/dist/plugins/remote-access-tailscale/scripts/tailscale-setup.sh +61 -0
  175. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +9 -0
  176. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +12 -0
  177. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  178. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +1 -0
  179. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +27 -2
  180. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  181. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +30 -1
  182. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +300 -30
  183. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  184. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +8 -3
  185. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +39 -12
  186. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  187. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +14 -5
  188. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +51 -16
  189. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  190. package/dist/plugins/scenes-local/platforms/local-scene.platform.d.ts +3 -1
  191. package/dist/plugins/scenes-local/platforms/local-scene.platform.js +12 -7
  192. package/dist/plugins/scenes-local/platforms/local-scene.platform.js.map +1 -1
  193. package/dist/plugins/spaces-home-control/services/climate-intent.service.d.ts +3 -1
  194. package/dist/plugins/spaces-home-control/services/climate-intent.service.js +6 -3
  195. package/dist/plugins/spaces-home-control/services/climate-intent.service.js.map +1 -1
  196. package/dist/plugins/spaces-home-control/services/covers-intent.service.d.ts +3 -1
  197. package/dist/plugins/spaces-home-control/services/covers-intent.service.js +6 -3
  198. package/dist/plugins/spaces-home-control/services/covers-intent.service.js.map +1 -1
  199. package/dist/plugins/spaces-home-control/services/lighting-intent.service.d.ts +3 -1
  200. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js +7 -4
  201. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js.map +1 -1
  202. package/dist/plugins/spaces-home-control/services/space-media-activity.service.d.ts +3 -1
  203. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js +11 -5
  204. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js.map +1 -1
  205. package/dist/plugins/spaces-home-control/services/space-undo-history.service.d.ts +3 -1
  206. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js +8 -5
  207. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js.map +1 -1
  208. package/dist/tsconfig.build.tsbuildinfo +1 -1
  209. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  import { Device, Ethernet, WiFi } from 'shellies-ds9';
2
2
  import { ChannelsPropertiesService } from '../../../modules/devices/services/channels.properties.service';
3
3
  import { ChannelsService } from '../../../modules/devices/services/channels.service';
4
+ import { CommandLatencyTraceCollectorService } from '../../../modules/devices/services/command-latency-trace-collector.service';
4
5
  import { DeviceConnectivityService } from '../../../modules/devices/services/device-connectivity.service';
5
6
  import { DevicesService } from '../../../modules/devices/services/devices.service';
6
7
  import { ShellyNgChannelEntity, ShellyNgChannelPropertyEntity, ShellyNgDeviceEntity } from '../entities/devices-shelly-ng.entity';
@@ -25,6 +26,7 @@ export declare class DelegatesManagerService {
25
26
  private readonly deviceAddressService;
26
27
  private readonly propertyMappingStorage;
27
28
  private readonly transformerRegistry;
29
+ private readonly commandLatencyTraceCollector;
28
30
  private readonly logger;
29
31
  private readonly delegates;
30
32
  private readonly delegateValueHandlers;
@@ -33,6 +35,10 @@ export declare class DelegatesManagerService {
33
35
  private readonly setChannelsHandlers;
34
36
  private readonly setPropertiesHandlers;
35
37
  private readonly pendingWrites;
38
+ private readonly pendingPollWrites;
39
+ private readonly activePollWrites;
40
+ private readonly delegatePollGenerations;
41
+ private currentValueUpdateContext;
36
42
  private readonly propertiesMap;
37
43
  private readonly delegateDeviceIds;
38
44
  private readonly delegateToIdentifier;
@@ -44,7 +50,7 @@ export declare class DelegatesManagerService {
44
50
  private readonly connectedDelegatesPerDevice;
45
51
  private static readonly DISCONNECT_GRACE_MS;
46
52
  private readonly disconnectTimers;
47
- constructor(devicesService: DevicesService, channelsService: ChannelsService, channelsPropertiesService: ChannelsPropertiesService, deviceConnectivityService: DeviceConnectivityService, deviceManagerService: DeviceManagerService, deviceAddressService: DeviceAddressService, propertyMappingStorage: PropertyMappingStorageService, transformerRegistry: TransformerRegistry);
53
+ constructor(devicesService: DevicesService, channelsService: ChannelsService, channelsPropertiesService: ChannelsPropertiesService, deviceConnectivityService: DeviceConnectivityService, deviceManagerService: DeviceManagerService, deviceAddressService: DeviceAddressService, propertyMappingStorage: PropertyMappingStorageService, transformerRegistry: TransformerRegistry, commandLatencyTraceCollector?: CommandLatencyTraceCollectorService);
48
54
  get(id: Device['id']): ShellyDeviceDelegate | undefined;
49
55
  insert(shelly: Device & MaybeNet, force?: boolean): Promise<ShellyDeviceDelegate>;
50
56
  private performInsert;
@@ -58,15 +64,26 @@ export declare class DelegatesManagerService {
58
64
  private applyTransformer;
59
65
  private handleChange;
60
66
  private setDefaultPropertyValue;
67
+ private wireElectricalChannels;
68
+ private wireMeterProperty;
61
69
  private determineCategory;
62
70
  private handleNumericChange;
63
71
  private scheduleWrite;
72
+ private schedulePollWrite;
73
+ private flushPollWrites;
74
+ private cancelScheduledWrite;
75
+ private cancelPollWrite;
76
+ private cancelPollWritesForDelegate;
77
+ private clearPollWrites;
64
78
  private writeValueToProperty;
65
79
  private resolvePropertyHandler;
66
80
  private resolveChannelHandler;
67
81
  detach(): void;
68
82
  destroy(): void;
69
83
  checkHealth(pingTimeoutMs?: number): Promise<void>;
84
+ getConnectedDelegateIds(): string[];
85
+ invalidateStatusPolls(): void;
86
+ pollDevice(deviceId: string, timeoutMs?: number): Promise<void>;
70
87
  pollAllDevices(timeoutMs?: number): Promise<void>;
71
88
  private withCanonicalMacLock;
72
89
  private withDeviceLock;