@fastybird/smart-panel-backend 1.1.0-alpha.40 → 1.1.0-alpha.42

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 (180) hide show
  1. package/dist/app.module.js +1 -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/modules/auth/auth.module.js +4 -0
  10. package/dist/modules/auth/auth.module.js.map +1 -1
  11. package/dist/modules/auth/guards/auth.guard.js +8 -13
  12. package/dist/modules/auth/guards/auth.guard.js.map +1 -1
  13. package/dist/modules/auth/services/token-metadata.service.d.ts +42 -0
  14. package/dist/modules/auth/services/token-metadata.service.js +202 -0
  15. package/dist/modules/auth/services/token-metadata.service.js.map +1 -0
  16. package/dist/modules/auth/services/token-usage.service.d.ts +22 -0
  17. package/dist/modules/auth/services/token-usage.service.js +93 -0
  18. package/dist/modules/auth/services/token-usage.service.js.map +1 -0
  19. package/dist/modules/auth/services/tokens.service.d.ts +8 -2
  20. package/dist/modules/auth/services/tokens.service.js +16 -10
  21. package/dist/modules/auth/services/tokens.service.js.map +1 -1
  22. package/dist/modules/devices/devices.module.js +7 -0
  23. package/dist/modules/devices/devices.module.js.map +1 -1
  24. package/dist/modules/devices/dto/property-command.dto.js +2 -8
  25. package/dist/modules/devices/dto/property-command.dto.js.map +1 -1
  26. package/dist/modules/devices/services/device-command-graph.service.d.ts +18 -0
  27. package/dist/modules/devices/services/device-command-graph.service.js +92 -0
  28. package/dist/modules/devices/services/device-command-graph.service.js.map +1 -0
  29. package/dist/modules/devices/services/devices.service.js +2 -17
  30. package/dist/modules/devices/services/devices.service.js.map +1 -1
  31. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +5 -3
  32. package/dist/modules/devices/services/property-command-dispatch.service.js +15 -12
  33. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -1
  34. package/dist/modules/devices/services/property-command.service.d.ts +7 -5
  35. package/dist/modules/devices/services/property-command.service.js +41 -20
  36. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  37. package/dist/modules/devices/services/property-metadata.service.d.ts +9 -2
  38. package/dist/modules/devices/services/property-metadata.service.js +67 -17
  39. package/dist/modules/devices/services/property-metadata.service.js.map +1 -1
  40. package/dist/modules/devices/utils/device-graph-query.utils.d.ts +3 -0
  41. package/dist/modules/devices/utils/device-graph-query.utils.js +23 -0
  42. package/dist/modules/devices/utils/device-graph-query.utils.js.map +1 -0
  43. package/dist/modules/devices/validators/property-command-target-constraint.validator.d.ts +9 -0
  44. package/dist/modules/devices/validators/property-command-target-constraint.validator.js +58 -0
  45. package/dist/modules/devices/validators/property-command-target-constraint.validator.js.map +1 -0
  46. package/dist/modules/remote-access/controllers/remote-access.controller.js +9 -5
  47. package/dist/modules/remote-access/controllers/remote-access.controller.js.map +1 -1
  48. package/dist/modules/remote-access/models/provider.model.d.ts +3 -0
  49. package/dist/modules/remote-access/models/provider.model.js +23 -0
  50. package/dist/modules/remote-access/models/provider.model.js.map +1 -1
  51. package/dist/modules/remote-access/models/status.model.d.ts +2 -0
  52. package/dist/modules/remote-access/models/status.model.js +18 -1
  53. package/dist/modules/remote-access/models/status.model.js.map +1 -1
  54. package/dist/modules/remote-access/models/urls.model.d.ts +2 -0
  55. package/dist/modules/remote-access/models/urls.model.js +17 -0
  56. package/dist/modules/remote-access/models/urls.model.js.map +1 -1
  57. package/dist/modules/remote-access/platforms/remote-access-provider.platform.d.ts +18 -1
  58. package/dist/modules/remote-access/remote-access.constants.d.ts +2 -1
  59. package/dist/modules/remote-access/remote-access.constants.js +2 -1
  60. package/dist/modules/remote-access/remote-access.constants.js.map +1 -1
  61. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.d.ts +1 -0
  62. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js +4 -1
  63. package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js.map +1 -1
  64. package/dist/modules/remote-access/services/remote-access-status.service.d.ts +40 -8
  65. package/dist/modules/remote-access/services/remote-access-status.service.js +314 -65
  66. package/dist/modules/remote-access/services/remote-access-status.service.js.map +1 -1
  67. package/dist/modules/remote-access/services/remote-access-url.service.d.ts +2 -2
  68. package/dist/modules/remote-access/services/remote-access-url.service.js +4 -2
  69. package/dist/modules/remote-access/services/remote-access-url.service.js.map +1 -1
  70. package/dist/modules/spaces/services/module-reset.service.d.ts +5 -1
  71. package/dist/modules/spaces/services/module-reset.service.js +10 -2
  72. package/dist/modules/spaces/services/module-reset.service.js.map +1 -1
  73. package/dist/modules/spaces/services/space-activity.service.d.ts +14 -0
  74. package/dist/modules/spaces/services/space-activity.service.js +56 -0
  75. package/dist/modules/spaces/services/space-activity.service.js.map +1 -0
  76. package/dist/modules/spaces/spaces.module.js +5 -0
  77. package/dist/modules/spaces/spaces.module.js.map +1 -1
  78. package/dist/modules/spaces/subscribers/space-activity.subscriber.d.ts +17 -0
  79. package/dist/modules/spaces/subscribers/space-activity.subscriber.js +89 -0
  80. package/dist/modules/spaces/subscribers/space-activity.subscriber.js.map +1 -0
  81. package/dist/modules/websocket/gateway/websocket.gateway.js +1 -0
  82. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  83. package/dist/modules/websocket/services/ws-auth.service.js +12 -28
  84. package/dist/modules/websocket/services/ws-auth.service.js.map +1 -1
  85. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.d.ts +3 -8
  86. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js +6 -36
  87. package/dist/plugins/devices-virtual/platforms/virtual-device.platform.js.map +1 -1
  88. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +5 -3
  89. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +20 -8
  90. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -1
  91. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +3 -5
  92. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +11 -10
  93. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -1
  94. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +2 -0
  95. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +17 -0
  96. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -1
  97. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +20 -2
  98. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +105 -48
  99. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -1
  100. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +13 -1
  101. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +8 -2
  102. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -1
  103. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +1 -1
  104. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +12 -24
  105. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -1
  106. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +1 -1
  107. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +5 -2
  108. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -1
  109. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +10 -5
  110. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +105 -15
  111. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  112. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +5 -4
  113. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +19 -9
  114. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  115. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +16 -0
  116. package/dist/plugins/remote-access-tailscale/models/status.model.js +100 -1
  117. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  118. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +2 -0
  119. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +3 -1
  120. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  121. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +17 -1
  122. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +33 -1
  123. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -1
  124. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  125. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +1 -0
  126. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  127. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +2 -0
  128. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js.map +1 -1
  129. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +8 -4
  130. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +58 -14
  131. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  132. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +8 -3
  133. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +175 -151
  134. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  135. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +51 -7
  136. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +481 -101
  137. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  138. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.d.ts +33 -0
  139. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js +167 -0
  140. package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js.map +1 -0
  141. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.d.ts +13 -1
  142. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js +8 -2
  143. package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js.map +1 -1
  144. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +1 -1
  145. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +7 -6
  146. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  147. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +1 -3
  148. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +9 -11
  149. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  150. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.d.ts +5 -0
  151. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js +36 -0
  152. package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js.map +1 -0
  153. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.d.ts +6 -7
  154. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js +19 -44
  155. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js.map +1 -1
  156. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.d.ts +4 -4
  157. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js +9 -22
  158. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js.map +1 -1
  159. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.d.ts +4 -4
  160. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js +9 -22
  161. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js.map +1 -1
  162. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.d.ts +4 -4
  163. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js +9 -22
  164. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js.map +1 -1
  165. package/dist/plugins/spaces-home-control/services/space-climate-state.service.d.ts +3 -5
  166. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js +9 -12
  167. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js.map +1 -1
  168. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.d.ts +3 -5
  169. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js +7 -10
  170. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js.map +1 -1
  171. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.d.ts +3 -5
  172. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js +7 -10
  173. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js.map +1 -1
  174. package/dist/plugins/spaces-home-control/services/space-state-read.service.d.ts +47 -0
  175. package/dist/plugins/spaces-home-control/services/space-state-read.service.js +262 -0
  176. package/dist/plugins/spaces-home-control/services/space-state-read.service.js.map +1 -0
  177. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js +4 -0
  178. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js.map +1 -1
  179. package/dist/tsconfig.build.tsbuildinfo +1 -1
  180. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-node-managed.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-node-managed.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailscale-node-managed.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-node-managed.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type ChildProcess } from 'node:child_process';
2
+ export type TailscaleOperation = 'connect' | 'disconnect' | 'reconnect' | 'login' | 'logout' | 'preferences' | 'config' | 'serve' | 'reset' | 'shutdown';
3
+ export interface TailscaleOperationToken {
4
+ generation: number;
5
+ signal: AbortSignal;
6
+ }
7
+ export declare class TailscaleOperationCoordinatorService {
8
+ private generation;
9
+ private observationRevision;
10
+ private settledHandler;
11
+ private active;
12
+ private readonly context;
13
+ private readonly children;
14
+ private readonly terminations;
15
+ getGeneration(): number;
16
+ getObservationRevision(): number;
17
+ isObservationCurrent(revision: number): boolean;
18
+ onSettled(handler: (operation: TailscaleOperation) => void): void;
19
+ getOperation(): TailscaleOperation | null;
20
+ hasPendingChildren(): boolean;
21
+ withoutOperation<T>(work: () => T): T;
22
+ isCurrent(generation: number): boolean;
23
+ assertCurrent(token?: TailscaleOperationToken | undefined): void;
24
+ getToken(): TailscaleOperationToken | undefined;
25
+ run<T>(name: TailscaleOperation, work: (token: TailscaleOperationToken) => Promise<T>, invalidateObservations?: boolean): Promise<T>;
26
+ interrupt<T>(name: TailscaleOperation, work: (token: TailscaleOperationToken) => Promise<T>): Promise<T>;
27
+ private execute;
28
+ trackChild(child: ChildProcess): Promise<void>;
29
+ terminateChild(child: ChildProcess): Promise<void>;
30
+ private reapChild;
31
+ reapPendingChildren(): Promise<void>;
32
+ private waitClosed;
33
+ }
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TailscaleOperationCoordinatorService = void 0;
10
+ const node_async_hooks_1 = require("node:async_hooks");
11
+ const common_1 = require("@nestjs/common");
12
+ const remote_access_tailscale_constants_1 = require("../remote-access-tailscale.constants");
13
+ const remote_access_tailscale_exceptions_1 = require("../remote-access-tailscale.exceptions");
14
+ let TailscaleOperationCoordinatorService = class TailscaleOperationCoordinatorService {
15
+ constructor() {
16
+ this.generation = 0;
17
+ this.observationRevision = 0;
18
+ this.settledHandler = null;
19
+ this.active = null;
20
+ this.context = new node_async_hooks_1.AsyncLocalStorage();
21
+ this.children = new Map();
22
+ this.terminations = new Map();
23
+ }
24
+ getGeneration() {
25
+ return this.generation;
26
+ }
27
+ getObservationRevision() {
28
+ return this.observationRevision;
29
+ }
30
+ isObservationCurrent(revision) {
31
+ return revision === this.observationRevision;
32
+ }
33
+ onSettled(handler) {
34
+ this.settledHandler = handler;
35
+ }
36
+ getOperation() {
37
+ return this.active?.name ?? null;
38
+ }
39
+ hasPendingChildren() {
40
+ return this.children.size > 0;
41
+ }
42
+ withoutOperation(work) {
43
+ return this.context.exit(work);
44
+ }
45
+ isCurrent(generation) {
46
+ return generation === this.generation;
47
+ }
48
+ assertCurrent(token = this.context.getStore()) {
49
+ if (token && (token.signal.aborted || !this.isCurrent(token.generation) || this.active?.token !== token)) {
50
+ throw new remote_access_tailscale_exceptions_1.TailscaleOperationCancelledException();
51
+ }
52
+ }
53
+ getToken() {
54
+ return this.context.getStore();
55
+ }
56
+ run(name, work, invalidateObservations = true) {
57
+ const nested = this.context.getStore();
58
+ if (nested) {
59
+ this.assertCurrent(nested);
60
+ return work(nested);
61
+ }
62
+ if (this.active || this.children.size > 0) {
63
+ return Promise.reject(new remote_access_tailscale_exceptions_1.TailscaleOperationInProgressException());
64
+ }
65
+ return this.execute(name, work, invalidateObservations);
66
+ }
67
+ interrupt(name, work) {
68
+ this.generation++;
69
+ this.active?.abort.abort();
70
+ return this.execute(name, async (token) => {
71
+ await this.reapPendingChildren();
72
+ this.assertCurrent(token);
73
+ return work(token);
74
+ });
75
+ }
76
+ async execute(name, work, invalidateObservations = true) {
77
+ if (invalidateObservations) {
78
+ this.observationRevision++;
79
+ }
80
+ const abort = new AbortController();
81
+ const owner = { name, abort, token: { generation: this.generation, signal: abort.signal } };
82
+ this.active = owner;
83
+ let onAbort;
84
+ const cancelled = new Promise((_, reject) => {
85
+ onAbort = () => reject(new remote_access_tailscale_exceptions_1.TailscaleOperationCancelledException());
86
+ abort.signal.addEventListener('abort', onAbort, { once: true });
87
+ });
88
+ try {
89
+ return await Promise.race([this.context.run(owner.token, () => work(owner.token)), cancelled]);
90
+ }
91
+ finally {
92
+ abort.signal.removeEventListener('abort', onAbort);
93
+ if (invalidateObservations) {
94
+ this.observationRevision++;
95
+ }
96
+ if (this.active === owner) {
97
+ this.active = null;
98
+ if (invalidateObservations) {
99
+ this.withoutOperation(() => this.settledHandler?.(name));
100
+ }
101
+ }
102
+ }
103
+ }
104
+ trackChild(child) {
105
+ this.assertCurrent();
106
+ const existing = this.children.get(child);
107
+ if (existing !== undefined) {
108
+ return existing;
109
+ }
110
+ const closed = new Promise((resolve) => {
111
+ child.once('close', () => {
112
+ this.children.delete(child);
113
+ resolve();
114
+ });
115
+ });
116
+ this.children.set(child, closed);
117
+ return closed;
118
+ }
119
+ terminateChild(child) {
120
+ const existing = this.terminations.get(child);
121
+ if (existing !== undefined) {
122
+ return existing;
123
+ }
124
+ const termination = this.reapChild(child).finally(() => this.terminations.delete(child));
125
+ this.terminations.set(child, termination);
126
+ return termination;
127
+ }
128
+ async reapChild(child) {
129
+ const closed = this.children.get(child);
130
+ if (closed === undefined) {
131
+ return;
132
+ }
133
+ child.kill('SIGTERM');
134
+ if (await this.waitClosed(closed, remote_access_tailscale_constants_1.TAILSCALE_CHILD_TERM_GRACE_MS)) {
135
+ return;
136
+ }
137
+ child.kill('SIGKILL');
138
+ if (!(await this.waitClosed(closed, remote_access_tailscale_constants_1.TAILSCALE_CHILD_KILL_GRACE_MS))) {
139
+ throw new remote_access_tailscale_exceptions_1.TailscaleChildTerminationException();
140
+ }
141
+ }
142
+ async reapPendingChildren() {
143
+ const results = await Promise.allSettled([...this.children.keys()].map((child) => this.terminateChild(child)));
144
+ if (results.some((result) => result.status === 'rejected')) {
145
+ throw new remote_access_tailscale_exceptions_1.TailscaleChildTerminationException();
146
+ }
147
+ }
148
+ async waitClosed(closed, timeoutMs) {
149
+ let timer;
150
+ try {
151
+ return await Promise.race([
152
+ closed.then(() => true),
153
+ new Promise((resolve) => {
154
+ timer = setTimeout(() => resolve(false), timeoutMs);
155
+ }),
156
+ ]);
157
+ }
158
+ finally {
159
+ clearTimeout(timer);
160
+ }
161
+ }
162
+ };
163
+ exports.TailscaleOperationCoordinatorService = TailscaleOperationCoordinatorService;
164
+ exports.TailscaleOperationCoordinatorService = TailscaleOperationCoordinatorService = __decorate([
165
+ (0, common_1.Injectable)()
166
+ ], TailscaleOperationCoordinatorService);
167
+ //# sourceMappingURL=tailscale-operation-coordinator.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailscale-operation-coordinator.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,17 @@ export declare class TailscaleProviderService implements IRemoteAccessProvider {
6
6
  readonly kind: RemoteAccessProviderKind;
7
7
  readonly capabilities: RemoteAccessProviderCapabilities;
8
8
  constructor(nodeManagedService: TailscaleNodeManagedService);
9
- getStatus(): Promise<RemoteAccessProviderStatus>;
9
+ awaitObservationIdle(): Promise<void>;
10
+ getSnapshot(options?: {
11
+ signal?: AbortSignal;
12
+ fresh?: boolean;
13
+ }): Promise<{
14
+ status: RemoteAccessProviderStatus;
15
+ metadata: import("./tailscale-node-managed.service").TailscaleObservationMetadata;
16
+ }>;
17
+ getStatus(options?: {
18
+ signal?: AbortSignal;
19
+ fresh?: boolean;
20
+ }): Promise<RemoteAccessProviderStatus>;
10
21
  }
22
+ export type { TailscaleObservationMetadata } from './tailscale-node-managed.service';
@@ -25,8 +25,14 @@ let TailscaleProviderService = class TailscaleProviderService {
25
25
  ssh: true,
26
26
  };
27
27
  }
28
- getStatus() {
29
- return this.nodeManagedService.computeStatus();
28
+ awaitObservationIdle() {
29
+ return this.nodeManagedService.awaitObservationIdle();
30
+ }
31
+ getSnapshot(options) {
32
+ return this.nodeManagedService.getStatusSnapshot(options);
33
+ }
34
+ getStatus(options) {
35
+ return this.nodeManagedService.computeStatus('status-read', options);
30
36
  }
31
37
  };
32
38
  exports.TailscaleProviderService = TailscaleProviderService;
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-provider.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAQ5C,4FAA2F;AAE3F,qFAA+E;AAWxE,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAUpC,YAA6B,kBAA+C;QAA/C,uBAAkB,GAAlB,kBAAkB,CAA6B;QATnE,SAAI,GAAG,uEAAmC,CAAC;QAC3C,SAAI,GAA6B,MAAM,CAAC;QACxC,iBAAY,GAAqC;YACzD,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;YACrB,GAAG,EAAE,IAAI;SACT,CAAC;IAE6E,CAAC;IAEhF,SAAS;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC;CACD,CAAA;AAfY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAWqC,4DAA2B;GAVhE,wBAAwB,CAepC"}
1
+ {"version":3,"file":"tailscale-provider.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAQ5C,4FAA2F;AAE3F,qFAA+E;AAWxE,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAUpC,YAA6B,kBAA+C;QAA/C,uBAAkB,GAAlB,kBAAkB,CAA6B;QATnE,SAAI,GAAG,uEAAmC,CAAC;QAC3C,SAAI,GAA6B,MAAM,CAAC;QACxC,iBAAY,GAAqC;YACzD,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;YACrB,GAAG,EAAE,IAAI;SACT,CAAC;IAE6E,CAAC;IAEhF,oBAAoB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,OAAmD;QAC9D,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,OAAmD;QAC5D,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CACD,CAAA;AAvBY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAWqC,4DAA2B;GAVhE,wBAAwB,CAuBpC"}
@@ -11,7 +11,7 @@ export declare class TailscaleServeService {
11
11
  private readonly cli;
12
12
  private readonly logger;
13
13
  constructor(cli: TailscaleCliService);
14
- read(config: RemoteAccessTailscalePluginConfigModel, port: number, status: TailscaleStatus): Promise<TailscaleServeResult>;
14
+ read(config: RemoteAccessTailscalePluginConfigModel, port: number, status: TailscaleStatus, signal?: AbortSignal): Promise<TailscaleServeResult>;
15
15
  converge(config: RemoteAccessTailscalePluginConfigModel, port: number, status: TailscaleStatus): Promise<TailscaleServeResult>;
16
16
  private readCaps;
17
17
  private buildResult;
@@ -19,10 +19,10 @@ let TailscaleServeService = class TailscaleServeService {
19
19
  this.cli = cli;
20
20
  this.logger = (0, logger_1.createExtensionLogger)(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'TailscaleServeService');
21
21
  }
22
- async read(config, port, status) {
22
+ async read(config, port, status, signal) {
23
23
  const { hasHttpsCap, hasFunnelCap, dnsName } = this.readCaps(status);
24
24
  const { serveActive, funnelActive } = dnsName
25
- ? await this.readHandlerState(`${dnsName}:443`, `http://127.0.0.1:${port}`)
25
+ ? await this.readHandlerState(`${dnsName}:443`, `http://127.0.0.1:${port}`, signal)
26
26
  : { serveActive: false, funnelActive: false };
27
27
  return this.buildResult(config, hasHttpsCap, hasFunnelCap, dnsName, serveActive, funnelActive, false);
28
28
  }
@@ -90,8 +90,8 @@ let TailscaleServeService = class TailscaleServeService {
90
90
  }
91
91
  return funnelActive ? 'public' : 'private';
92
92
  }
93
- async readHandlerState(hostPort, targetUrl) {
94
- const serveStatus = await this.readServeStatus();
93
+ async readHandlerState(hostPort, targetUrl, signal) {
94
+ const serveStatus = await this.readServeStatus(signal);
95
95
  return {
96
96
  serveActive: this.isServeActive(serveStatus, hostPort, targetUrl),
97
97
  funnelActive: this.isFunnelActive(serveStatus, hostPort),
@@ -130,11 +130,12 @@ let TailscaleServeService = class TailscaleServeService {
130
130
  permissionDenied,
131
131
  };
132
132
  }
133
- async readServeStatus() {
133
+ async readServeStatus(signal) {
134
134
  try {
135
- return await this.cli.serveStatus();
135
+ return await this.cli.serveStatus(signal);
136
136
  }
137
137
  catch (error) {
138
+ signal?.throwIfAborted();
138
139
  this.logger.warn('Failed to read the Tailscale Serve status', {
139
140
  message: error instanceof Error ? error.message : String(error),
140
141
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-serve.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-serve.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailscale-serve.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-serve.service.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { ConfigService as NestConfigService } from '@nestjs/config';
2
2
  import { EventEmitter2 } from '@nestjs/event-emitter';
3
3
  import { ConfigService } from '../../../modules/config/services/config.service';
4
- import { ManagedServiceManagerService } from '../../../modules/extensions/services/managed-service-manager.service';
5
4
  import { PlatformService } from '../../../modules/platform/services/platform.service';
6
5
  import { PrivilegedJobStatus, PrivilegedWorkerService } from '../../../modules/system/services/privileged-worker.service';
7
6
  import { TailscaleSetupUnavailableException } from '../remote-access-tailscale.exceptions';
@@ -21,10 +20,9 @@ export declare class TailscaleSetupService {
21
20
  private readonly eventEmitter;
22
21
  private readonly platformService;
23
22
  private readonly configService;
24
- private readonly managedServiceManager;
25
23
  private readonly logger;
26
24
  private lastJob;
27
- constructor(privilegedWorker: PrivilegedWorkerService, nestConfigService: NestConfigService, nodeManagedService: TailscaleNodeManagedService, eventEmitter: EventEmitter2, platformService: PlatformService, configService: ConfigService, managedServiceManager: ManagedServiceManagerService);
25
+ constructor(privilegedWorker: PrivilegedWorkerService, nestConfigService: NestConfigService, nodeManagedService: TailscaleNodeManagedService, eventEmitter: EventEmitter2, platformService: PlatformService, configService: ConfigService);
28
26
  install(): Promise<{
29
27
  id: string;
30
28
  }>;
@@ -22,7 +22,6 @@ const event_emitter_1 = require("@nestjs/event-emitter");
22
22
  const logger_1 = require("../../../common/logger");
23
23
  const config_utils_1 = require("../../../common/utils/config.utils");
24
24
  const config_service_1 = require("../../../modules/config/services/config.service");
25
- const managed_service_manager_service_1 = require("../../../modules/extensions/services/managed-service-manager.service");
26
25
  const platform_service_1 = require("../../../modules/platform/services/platform.service");
27
26
  const remote_access_constants_1 = require("../../../modules/remote-access/remote-access.constants");
28
27
  const privileged_worker_service_1 = require("../../../modules/system/services/privileged-worker.service");
@@ -31,18 +30,18 @@ const remote_access_tailscale_exceptions_1 = require("../remote-access-tailscale
31
30
  Object.defineProperty(exports, "TailscaleSetupUnavailableException", { enumerable: true, get: function () { return remote_access_tailscale_exceptions_1.TailscaleSetupUnavailableException; } });
32
31
  const tailscale_node_managed_service_1 = require("./tailscale-node-managed.service");
33
32
  let TailscaleSetupService = class TailscaleSetupService {
34
- constructor(privilegedWorker, nestConfigService, nodeManagedService, eventEmitter, platformService, configService, managedServiceManager) {
33
+ constructor(privilegedWorker, nestConfigService, nodeManagedService, eventEmitter, platformService, configService) {
35
34
  this.privilegedWorker = privilegedWorker;
36
35
  this.nestConfigService = nestConfigService;
37
36
  this.nodeManagedService = nodeManagedService;
38
37
  this.eventEmitter = eventEmitter;
39
38
  this.platformService = platformService;
40
39
  this.configService = configService;
41
- this.managedServiceManager = managedServiceManager;
42
40
  this.logger = (0, logger_1.createExtensionLogger)(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'TailscaleSetupService');
43
41
  this.lastJob = null;
44
42
  }
45
43
  async install() {
44
+ const generation = this.nodeManagedService.getOperationCoordinator().getGeneration();
46
45
  const allowDev = (0, config_utils_1.getEnvValue)(this.nestConfigService, remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_ALLOW_DEV_ENV, false);
47
46
  if (allowDev) {
48
47
  throw new remote_access_tailscale_exceptions_1.TailscaleSetupUnavailableException(`Tailscale setup is unavailable while ${remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_ALLOW_DEV_ENV} is set. Prepare tailscale manually on the development platform: install it, run tailscaled, and grant the current user as operator.`, 'platform-unsupported');
@@ -83,13 +82,13 @@ let TailscaleSetupService = class TailscaleSetupService {
83
82
  updatedAt: new Date().toISOString(),
84
83
  };
85
84
  this.lastJob = { id, status: initialStatus };
86
- this.watchJob(id);
85
+ this.watchJob(id, generation);
87
86
  return { id };
88
87
  }
89
88
  getLastJob() {
90
89
  return this.lastJob;
91
90
  }
92
- watchJob(id) {
91
+ watchJob(id, generation) {
93
92
  const unsubscribe = this.privilegedWorker.onStatus(id, (status) => {
94
93
  this.lastJob = { id, status };
95
94
  const event = {
@@ -105,7 +104,7 @@ let TailscaleSetupService = class TailscaleSetupService {
105
104
  }
106
105
  if (status.state === 'complete') {
107
106
  this.logger.log(`Tailscale setup job completed (job: ${id})`);
108
- void this.onSetupComplete();
107
+ void this.onSetupComplete(generation);
109
108
  }
110
109
  else {
111
110
  this.logger.error(`Tailscale setup job did not complete (job: ${id}, state: ${status.state})`, {
@@ -116,7 +115,7 @@ let TailscaleSetupService = class TailscaleSetupService {
116
115
  unsubscribe();
117
116
  });
118
117
  }
119
- async onSetupComplete() {
118
+ async onSetupComplete(generation) {
120
119
  try {
121
120
  await this.refreshNodeRequirements();
122
121
  }
@@ -128,11 +127,11 @@ let TailscaleSetupService = class TailscaleSetupService {
128
127
  try {
129
128
  const pluginConfig = this.configService.getPluginConfig(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME);
130
129
  if (pluginConfig.enabled) {
131
- await this.managedServiceManager.restartService('plugin', remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'node');
130
+ await this.nodeManagedService.reconcileSetup(generation);
132
131
  }
133
132
  }
134
133
  catch (error) {
135
- this.logger.warn('Failed to restart the Tailscale node service after setup', {
134
+ this.logger.warn('Failed to reconcile the Tailscale node service after setup', {
136
135
  message: error instanceof Error ? error.message : String(error),
137
136
  });
138
137
  }
@@ -159,7 +158,6 @@ exports.TailscaleSetupService = TailscaleSetupService = __decorate([
159
158
  tailscale_node_managed_service_1.TailscaleNodeManagedService,
160
159
  event_emitter_1.EventEmitter2,
161
160
  platform_service_1.PlatformService,
162
- config_service_1.ConfigService,
163
- managed_service_manager_service_1.ManagedServiceManagerService])
161
+ config_service_1.ConfigService])
164
162
  ], TailscaleSetupService);
165
163
  //# sourceMappingURL=tailscale-setup.service.js.map