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

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 (134) hide show
  1. package/dist/app.module.js +7 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/modules/devices/controllers/channels.properties.controller.js +16 -4
  4. package/dist/modules/devices/controllers/channels.properties.controller.js.map +1 -1
  5. package/dist/modules/devices/controllers/devices.channels.properties.controller.js +16 -4
  6. package/dist/modules/devices/controllers/devices.channels.properties.controller.js.map +1 -1
  7. package/dist/modules/devices/devices.module.js +9 -0
  8. package/dist/modules/devices/devices.module.js.map +1 -1
  9. package/dist/modules/devices/services/channels.properties.service.d.ts +23 -3
  10. package/dist/modules/devices/services/channels.properties.service.js +271 -26
  11. package/dist/modules/devices/services/channels.properties.service.js.map +1 -1
  12. package/dist/modules/devices/services/channels.service.js +42 -38
  13. package/dist/modules/devices/services/channels.service.js.map +1 -1
  14. package/dist/modules/devices/services/device-structure-lock.service.d.ts +10 -2
  15. package/dist/modules/devices/services/device-structure-lock.service.js +86 -7
  16. package/dist/modules/devices/services/device-structure-lock.service.js.map +1 -1
  17. package/dist/modules/devices/services/devices.service.js +37 -33
  18. package/dist/modules/devices/services/devices.service.js.map +1 -1
  19. package/dist/modules/devices/services/module-reset.service.d.ts +3 -1
  20. package/dist/modules/devices/services/module-reset.service.js +21 -16
  21. package/dist/modules/devices/services/module-reset.service.js.map +1 -1
  22. package/dist/modules/devices/services/property-command-dispatch.service.d.ts +43 -0
  23. package/dist/modules/devices/services/property-command-dispatch.service.js +218 -0
  24. package/dist/modules/devices/services/property-command-dispatch.service.js.map +1 -0
  25. package/dist/modules/devices/services/property-command-window.service.d.ts +70 -0
  26. package/dist/modules/devices/services/property-command-window.service.js +200 -0
  27. package/dist/modules/devices/services/property-command-window.service.js.map +1 -0
  28. package/dist/modules/devices/services/property-command.service.d.ts +18 -3
  29. package/dist/modules/devices/services/property-command.service.js +44 -10
  30. package/dist/modules/devices/services/property-command.service.js.map +1 -1
  31. package/dist/modules/devices/services/property-state-coordinator.service.d.ts +4 -0
  32. package/dist/modules/devices/services/property-state-coordinator.service.js +35 -0
  33. package/dist/modules/devices/services/property-state-coordinator.service.js.map +1 -0
  34. package/dist/modules/devices/services/property-value.service.d.ts +1 -0
  35. package/dist/modules/devices/services/property-value.service.js +4 -0
  36. package/dist/modules/devices/services/property-value.service.js.map +1 -1
  37. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +2 -3
  38. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  39. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js +6 -1
  40. package/dist/plugins/devices-homekit/listeners/homekit-event.listener.js.map +1 -1
  41. package/dist/plugins/devices-homekit/mappers/base.mapper.js +27 -4
  42. package/dist/plugins/devices-homekit/mappers/base.mapper.js.map +1 -1
  43. package/dist/plugins/devices-homekit/mappers/homekit-mapper.interface.d.ts +8 -0
  44. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.d.ts +7 -0
  45. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js +84 -73
  46. package/dist/plugins/devices-homekit/mappers/thermostat-coordinator.js.map +1 -1
  47. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +11 -0
  48. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +121 -15
  49. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  50. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +5 -1
  51. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +49 -8
  52. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  53. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +9 -1
  54. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +59 -24
  55. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  56. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +1 -3
  57. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -1
  58. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +17 -0
  59. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +147 -0
  60. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -0
  61. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +15 -0
  62. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +98 -0
  63. package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -0
  64. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.d.ts +9 -0
  65. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js +94 -0
  66. package/dist/plugins/remote-access-cloudflare-tunnel/dto/update-config.dto.js.map +1 -0
  67. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.d.ts +9 -0
  68. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js +92 -0
  69. package/dist/plugins/remote-access-cloudflare-tunnel/models/config.model.js.map +1 -0
  70. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.d.ts +7 -0
  71. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js +48 -0
  72. package/dist/plugins/remote-access-cloudflare-tunnel/models/install.model.js.map +1 -0
  73. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +42 -0
  74. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +352 -0
  75. package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -0
  76. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.d.ts +24 -0
  77. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js +27 -0
  78. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.constants.js.map +1 -0
  79. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.d.ts +8 -0
  80. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js +19 -0
  81. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.exceptions.js.map +1 -0
  82. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.d.ts +4 -0
  83. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js +20 -0
  84. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.openapi.js.map +1 -0
  85. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.d.ts +21 -0
  86. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js +135 -0
  87. package/dist/plugins/remote-access-cloudflare-tunnel/remote-access-cloudflare-tunnel.plugin.js.map +1 -0
  88. package/dist/plugins/remote-access-cloudflare-tunnel/scripts/cloudflared-setup.sh +185 -0
  89. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +82 -0
  90. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +507 -0
  91. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -0
  92. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +10 -0
  93. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +37 -0
  94. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -0
  95. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.d.ts +38 -0
  96. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js +147 -0
  97. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.js.map +1 -0
  98. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +15 -0
  99. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +67 -0
  100. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -0
  101. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +8 -0
  102. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +46 -0
  103. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -0
  104. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.d.ts +27 -0
  105. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js +139 -0
  106. package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.js.map +1 -0
  107. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +2 -0
  108. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +3 -1
  109. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  110. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +4 -0
  111. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  112. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +4 -1
  113. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +59 -5
  114. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  115. package/dist/plugins/scenes-local/platforms/local-scene.platform.d.ts +3 -1
  116. package/dist/plugins/scenes-local/platforms/local-scene.platform.js +12 -7
  117. package/dist/plugins/scenes-local/platforms/local-scene.platform.js.map +1 -1
  118. package/dist/plugins/spaces-home-control/services/climate-intent.service.d.ts +3 -1
  119. package/dist/plugins/spaces-home-control/services/climate-intent.service.js +6 -3
  120. package/dist/plugins/spaces-home-control/services/climate-intent.service.js.map +1 -1
  121. package/dist/plugins/spaces-home-control/services/covers-intent.service.d.ts +3 -1
  122. package/dist/plugins/spaces-home-control/services/covers-intent.service.js +6 -3
  123. package/dist/plugins/spaces-home-control/services/covers-intent.service.js.map +1 -1
  124. package/dist/plugins/spaces-home-control/services/lighting-intent.service.d.ts +3 -1
  125. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js +7 -4
  126. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js.map +1 -1
  127. package/dist/plugins/spaces-home-control/services/space-media-activity.service.d.ts +3 -1
  128. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js +11 -5
  129. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js.map +1 -1
  130. package/dist/plugins/spaces-home-control/services/space-undo-history.service.d.ts +3 -1
  131. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js +8 -5
  132. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js.map +1 -1
  133. package/dist/tsconfig.build.tsbuildinfo +1 -1
  134. package/package.json +2 -2
@@ -0,0 +1,147 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CloudflareTunnelSetupService = exports.CloudflareTunnelSetupUnavailableException = void 0;
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ const common_1 = require("@nestjs/common");
16
+ const config_1 = require("@nestjs/config");
17
+ const event_emitter_1 = require("@nestjs/event-emitter");
18
+ const logger_1 = require("../../../common/logger");
19
+ const config_utils_1 = require("../../../common/utils/config.utils");
20
+ const config_service_1 = require("../../../modules/config/services/config.service");
21
+ const managed_service_manager_service_1 = require("../../../modules/extensions/services/managed-service-manager.service");
22
+ const platform_service_1 = require("../../../modules/platform/services/platform.service");
23
+ const remote_access_constants_1 = require("../../../modules/remote-access/remote-access.constants");
24
+ const privileged_worker_service_1 = require("../../../modules/system/services/privileged-worker.service");
25
+ const remote_access_cloudflare_tunnel_constants_1 = require("../remote-access-cloudflare-tunnel.constants");
26
+ const remote_access_cloudflare_tunnel_exceptions_1 = require("../remote-access-cloudflare-tunnel.exceptions");
27
+ Object.defineProperty(exports, "CloudflareTunnelSetupUnavailableException", { enumerable: true, get: function () { return remote_access_cloudflare_tunnel_exceptions_1.CloudflareTunnelSetupUnavailableException; } });
28
+ const cloudflare_tunnel_managed_service_1 = require("./cloudflare-tunnel-managed.service");
29
+ let CloudflareTunnelSetupService = class CloudflareTunnelSetupService {
30
+ constructor(privilegedWorker, nestConfigService, tunnelManagedService, eventEmitter, platformService, configService, managedServiceManager) {
31
+ this.privilegedWorker = privilegedWorker;
32
+ this.nestConfigService = nestConfigService;
33
+ this.tunnelManagedService = tunnelManagedService;
34
+ this.eventEmitter = eventEmitter;
35
+ this.platformService = platformService;
36
+ this.configService = configService;
37
+ this.managedServiceManager = managedServiceManager;
38
+ this.logger = (0, logger_1.createExtensionLogger)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'CloudflareTunnelSetupService');
39
+ this.lastJob = null;
40
+ }
41
+ async install() {
42
+ const privilegedWorkerSupport = await this.platformService.getPrivilegedWorkerSupport();
43
+ if (!privilegedWorkerSupport.supported) {
44
+ if (!this.platformService.isPlatformCapableOfPrivilegedWorkers()) {
45
+ throw new remote_access_cloudflare_tunnel_exceptions_1.CloudflareTunnelSetupUnavailableException(`Cloudflare Tunnel setup requires a platform with privileged-worker support; the '${this.platformService.getPlatformType()}' platform does not have it.`, 'platform-unsupported');
46
+ }
47
+ const reason = privilegedWorkerSupport.reason ?? 'Privileged jobs are currently unavailable on this installation.';
48
+ throw new remote_access_cloudflare_tunnel_exceptions_1.CloudflareTunnelSetupUnavailableException(`${reason} Re-run \`sudo smart-panel-service install\`, or add the sudoers grant from the installation guide.`, 'privileged-worker-unavailable');
49
+ }
50
+ const dataDir = (0, config_utils_1.getEnvValue)(this.nestConfigService, 'FB_DATA_DIR', '/var/lib/smart-panel');
51
+ const remoteAccessDir = (0, path_1.join)(dataDir, remote_access_cloudflare_tunnel_constants_1.CLOUDFLARE_TUNNEL_DATA_SUBDIR);
52
+ this.ensureDir(remoteAccessDir);
53
+ const statusFile = (0, path_1.join)(remoteAccessDir, remote_access_cloudflare_tunnel_constants_1.CLOUDFLARE_TUNNEL_SETUP_STATUS_FILENAME);
54
+ const script = (0, path_1.join)(__dirname, '..', 'scripts', 'cloudflared-setup.sh');
55
+ if (!(0, fs_1.existsSync)(script)) {
56
+ throw new Error(`Cloudflare Tunnel setup script not found at ${script}`);
57
+ }
58
+ const { id } = await this.privilegedWorker.run({
59
+ unit: remote_access_cloudflare_tunnel_constants_1.CLOUDFLARE_TUNNEL_SETUP_WORKER_UNIT,
60
+ script,
61
+ args: [],
62
+ env: {
63
+ STATUS_FILE: statusFile,
64
+ HOME: process.env.HOME ?? '/root',
65
+ PATH: process.env.PATH ?? '/usr/local/bin:/usr/bin:/bin',
66
+ },
67
+ statusFile,
68
+ });
69
+ this.logger.log(`Cloudflare Tunnel setup job spawned (job: ${id})`);
70
+ const initialStatus = this.privilegedWorker.getStatus(id) ?? {
71
+ id,
72
+ state: 'running',
73
+ updatedAt: new Date().toISOString(),
74
+ };
75
+ this.lastJob = { id, status: initialStatus };
76
+ this.watchJob(id);
77
+ return { id };
78
+ }
79
+ getLastJob() {
80
+ return this.lastJob;
81
+ }
82
+ watchJob(id) {
83
+ const unsubscribe = this.privilegedWorker.onStatus(id, (status) => {
84
+ this.lastJob = { id, status };
85
+ const event = {
86
+ type: remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME,
87
+ job: id,
88
+ step: status.step,
89
+ state: status.state,
90
+ message: status.message,
91
+ };
92
+ this.eventEmitter.emit(remote_access_constants_1.EventType.SETUP_PROGRESS, event);
93
+ if (status.state === 'running') {
94
+ return;
95
+ }
96
+ if (status.state === 'complete') {
97
+ this.logger.log(`Cloudflare Tunnel setup job completed (job: ${id})`);
98
+ void this.onSetupComplete();
99
+ }
100
+ else {
101
+ this.logger.error(`Cloudflare Tunnel setup job did not complete (job: ${id}, state: ${status.state})`, {
102
+ step: status.step,
103
+ message: status.message,
104
+ });
105
+ }
106
+ unsubscribe();
107
+ });
108
+ }
109
+ async onSetupComplete() {
110
+ try {
111
+ await this.tunnelManagedService.refreshRequirements();
112
+ }
113
+ catch (error) {
114
+ this.logger.warn('Failed to refresh Cloudflare Tunnel requirements after setup', {
115
+ message: error instanceof Error ? error.message : String(error),
116
+ });
117
+ }
118
+ try {
119
+ const pluginConfig = this.configService.getPluginConfig(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME);
120
+ if (pluginConfig.enabled) {
121
+ await this.managedServiceManager.restartService('plugin', remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'tunnel');
122
+ }
123
+ }
124
+ catch (error) {
125
+ this.logger.warn('Failed to restart the Cloudflare Tunnel service after setup', {
126
+ message: error instanceof Error ? error.message : String(error),
127
+ });
128
+ }
129
+ }
130
+ ensureDir(dir) {
131
+ if (!(0, fs_1.existsSync)(dir)) {
132
+ (0, fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
133
+ }
134
+ }
135
+ };
136
+ exports.CloudflareTunnelSetupService = CloudflareTunnelSetupService;
137
+ exports.CloudflareTunnelSetupService = CloudflareTunnelSetupService = __decorate([
138
+ (0, common_1.Injectable)(),
139
+ __metadata("design:paramtypes", [privileged_worker_service_1.PrivilegedWorkerService,
140
+ config_1.ConfigService,
141
+ cloudflare_tunnel_managed_service_1.CloudflareTunnelManagedService,
142
+ event_emitter_1.EventEmitter2,
143
+ platform_service_1.PlatformService,
144
+ config_service_1.ConfigService,
145
+ managed_service_manager_service_1.ManagedServiceManagerService])
146
+ ], CloudflareTunnelSetupService);
147
+ //# sourceMappingURL=cloudflare-tunnel-setup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-tunnel-setup.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-setup.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export type CloudflaredCliErrorKind = 'not-installed' | 'unknown';
2
+ export declare class CloudflaredCliError extends Error {
3
+ readonly kind: CloudflaredCliErrorKind;
4
+ readonly cause?: unknown;
5
+ constructor(kind: CloudflaredCliErrorKind, message: string, cause?: unknown);
6
+ }
7
+ export interface CloudflaredVersionInfo {
8
+ version: string;
9
+ raw: string;
10
+ }
11
+ export declare class CloudflaredCliService {
12
+ private readonly logger;
13
+ getVersion(): Promise<CloudflaredVersionInfo>;
14
+ private exec;
15
+ }
@@ -0,0 +1,67 @@
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.CloudflaredCliService = exports.CloudflaredCliError = void 0;
10
+ const node_child_process_1 = require("node:child_process");
11
+ const common_1 = require("@nestjs/common");
12
+ const logger_1 = require("../../../common/logger");
13
+ const remote_access_cloudflare_tunnel_constants_1 = require("../remote-access-cloudflare-tunnel.constants");
14
+ class CloudflaredCliError extends Error {
15
+ constructor(kind, message, cause) {
16
+ super(message);
17
+ this.kind = kind;
18
+ this.cause = cause;
19
+ this.name = 'CloudflaredCliError';
20
+ }
21
+ }
22
+ exports.CloudflaredCliError = CloudflaredCliError;
23
+ const VERSION_PATTERN = /(\d+\.\d+\.\d+)/;
24
+ let CloudflaredCliService = class CloudflaredCliService {
25
+ constructor() {
26
+ this.logger = (0, logger_1.createExtensionLogger)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'CloudflaredCliService');
27
+ }
28
+ async getVersion() {
29
+ const { stdout, stderr, exitCode } = await this.exec(['--version']);
30
+ if (exitCode !== 0) {
31
+ const detail = stderr.trim() || stdout.trim();
32
+ throw new CloudflaredCliError('unknown', `cloudflared --version exited with code ${exitCode}${detail ? `: ${detail}` : ''}`);
33
+ }
34
+ const match = VERSION_PATTERN.exec(stdout);
35
+ if (!match) {
36
+ throw new CloudflaredCliError('unknown', '`cloudflared --version` did not include a recognizable version number.');
37
+ }
38
+ return { version: match[1], raw: stdout.trim() };
39
+ }
40
+ exec(args) {
41
+ const argv = [...args];
42
+ this.logger.debug(`Running: ${remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_BINARY} ${argv.join(' ')}`);
43
+ return new Promise((resolve, reject) => {
44
+ (0, node_child_process_1.execFile)(remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_BINARY, argv, { timeout: remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_CLI_DEFAULT_TIMEOUT_MS }, (error, stdout, stderr) => {
45
+ const out = stdout ?? '';
46
+ const err = stderr ?? '';
47
+ if (error) {
48
+ const nodeError = error;
49
+ if (nodeError.code === 'ENOENT') {
50
+ this.logger.warn(`cloudflared binary not found: ${remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_BINARY} ${argv.join(' ')}`);
51
+ reject(new CloudflaredCliError('not-installed', 'The cloudflared CLI is not installed or not on PATH.', error));
52
+ return;
53
+ }
54
+ const exitCode = typeof nodeError.code === 'number' ? nodeError.code : -1;
55
+ resolve({ stdout: out, stderr: err, exitCode });
56
+ return;
57
+ }
58
+ resolve({ stdout: out, stderr: err, exitCode: 0 });
59
+ });
60
+ });
61
+ }
62
+ };
63
+ exports.CloudflaredCliService = CloudflaredCliService;
64
+ exports.CloudflaredCliService = CloudflaredCliService = __decorate([
65
+ (0, common_1.Injectable)()
66
+ ], CloudflaredCliService);
67
+ //# sourceMappingURL=cloudflared-cli.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface CloudflaredReadyInfo {
2
+ readyConnections: number;
3
+ connectorId: string;
4
+ }
5
+ export declare class CloudflaredMetricsService {
6
+ private readonly logger;
7
+ fetchReady(address: string): Promise<CloudflaredReadyInfo | null>;
8
+ }
@@ -0,0 +1,46 @@
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.CloudflaredMetricsService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const logger_1 = require("../../../common/logger");
12
+ const remote_access_cloudflare_tunnel_constants_1 = require("../remote-access-cloudflare-tunnel.constants");
13
+ let CloudflaredMetricsService = class CloudflaredMetricsService {
14
+ constructor() {
15
+ this.logger = (0, logger_1.createExtensionLogger)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'CloudflaredMetricsService');
16
+ }
17
+ async fetchReady(address) {
18
+ try {
19
+ const response = await fetch(`http://${address}/ready`, {
20
+ signal: AbortSignal.timeout(remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_METRICS_TIMEOUT_MS),
21
+ });
22
+ if (!response.ok) {
23
+ return null;
24
+ }
25
+ const data = (await response.json());
26
+ const readyConnections = typeof data.readyConnections === 'number' ? data.readyConnections : 0;
27
+ const connectorId = typeof data.connectorId === 'string'
28
+ ? data.connectorId
29
+ : typeof data.connectorID === 'string'
30
+ ? data.connectorID
31
+ : '';
32
+ return { readyConnections, connectorId };
33
+ }
34
+ catch (error) {
35
+ this.logger.debug('Failed to fetch the cloudflared /ready endpoint', {
36
+ message: error instanceof Error ? error.message : String(error),
37
+ });
38
+ return null;
39
+ }
40
+ }
41
+ };
42
+ exports.CloudflaredMetricsService = CloudflaredMetricsService;
43
+ exports.CloudflaredMetricsService = CloudflaredMetricsService = __decorate([
44
+ (0, common_1.Injectable)()
45
+ ], CloudflaredMetricsService);
46
+ //# sourceMappingURL=cloudflared-metrics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-metrics.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,mDAA+D;AAC/D,4GAGsD;AAe/C,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAA/B;QACW,WAAM,GAAG,IAAA,8BAAqB,EAC9C,uFAA2C,EAC3C,2BAA2B,CAC3B,CAAC;IA+BH,CAAC;IA7BA,KAAK,CAAC,UAAU,CAAC,OAAe;QAC/B,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,OAAO,QAAQ,EAAE;gBACvD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,0EAA8B,CAAC;aAC3D,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;YAEhE,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,MAAM,WAAW,GAChB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;gBACnC,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;oBACrC,CAAC,CAAC,IAAI,CAAC,WAAW;oBAClB,CAAC,CAAC,EAAE,CAAC;YAER,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;gBACpE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;CACD,CAAA;AAnCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;GACA,yBAAyB,CAmCrC"}
@@ -0,0 +1,27 @@
1
+ export interface CloudflaredProcessOptions {
2
+ token: string;
3
+ protocol: string;
4
+ metricsAddress: string;
5
+ }
6
+ export interface CloudflaredExitInfo {
7
+ code: number | null;
8
+ signal: NodeJS.Signals | null;
9
+ }
10
+ export declare class CloudflaredProcessService {
11
+ private readonly logger;
12
+ private child;
13
+ private startedAt;
14
+ private currentToken;
15
+ private stderrRing;
16
+ private stderrCarry;
17
+ private lastExit;
18
+ isRunning(): boolean;
19
+ getStartedAt(): number | null;
20
+ getLastExit(): CloudflaredExitInfo | null;
21
+ getLastStderrLine(): string | null;
22
+ getStderrLines(): readonly string[];
23
+ start(options: CloudflaredProcessOptions): void;
24
+ stop(graceMs?: number): Promise<void>;
25
+ private appendStderr;
26
+ private redact;
27
+ }
@@ -0,0 +1,139 @@
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.CloudflaredProcessService = void 0;
10
+ const node_child_process_1 = require("node:child_process");
11
+ const common_1 = require("@nestjs/common");
12
+ const logger_1 = require("../../../common/logger");
13
+ const remote_access_cloudflare_tunnel_constants_1 = require("../remote-access-cloudflare-tunnel.constants");
14
+ let CloudflaredProcessService = class CloudflaredProcessService {
15
+ constructor() {
16
+ this.logger = (0, logger_1.createExtensionLogger)(remote_access_cloudflare_tunnel_constants_1.REMOTE_ACCESS_CLOUDFLARE_TUNNEL_PLUGIN_NAME, 'CloudflaredProcessService');
17
+ this.child = null;
18
+ this.startedAt = null;
19
+ this.currentToken = '';
20
+ this.stderrRing = [];
21
+ this.stderrCarry = '';
22
+ this.lastExit = null;
23
+ }
24
+ isRunning() {
25
+ return this.child !== null;
26
+ }
27
+ getStartedAt() {
28
+ return this.startedAt;
29
+ }
30
+ getLastExit() {
31
+ return this.lastExit;
32
+ }
33
+ getLastStderrLine() {
34
+ for (let i = this.stderrRing.length - 1; i >= 0; i--) {
35
+ if (this.stderrRing[i].length > 0) {
36
+ return this.stderrRing[i];
37
+ }
38
+ }
39
+ return null;
40
+ }
41
+ getStderrLines() {
42
+ return this.stderrRing;
43
+ }
44
+ start(options) {
45
+ if (this.child) {
46
+ return;
47
+ }
48
+ this.currentToken = options.token;
49
+ this.stderrRing = [];
50
+ this.stderrCarry = '';
51
+ this.lastExit = null;
52
+ const args = [
53
+ 'tunnel',
54
+ '--no-autoupdate',
55
+ '--metrics',
56
+ options.metricsAddress,
57
+ '--protocol',
58
+ options.protocol,
59
+ 'run',
60
+ ];
61
+ this.logger.log(`Spawning: ${remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_BINARY} ${args.join(' ')}`);
62
+ const child = (0, node_child_process_1.spawn)(remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_BINARY, args, {
63
+ env: {
64
+ TUNNEL_TOKEN: options.token,
65
+ HOME: process.env.HOME ?? '',
66
+ PATH: process.env.PATH ?? '',
67
+ },
68
+ stdio: ['ignore', 'pipe', 'pipe'],
69
+ });
70
+ this.child = child;
71
+ this.startedAt = Date.now();
72
+ child.stderr?.on('data', (chunk) => {
73
+ this.appendStderr(chunk.toString('utf8'));
74
+ });
75
+ child.once('exit', (code, signal) => {
76
+ this.lastExit = { code, signal };
77
+ this.child = null;
78
+ this.startedAt = null;
79
+ });
80
+ child.once('error', (error) => {
81
+ this.appendStderr(`${error.message}\n`);
82
+ this.lastExit = { code: null, signal: null };
83
+ this.child = null;
84
+ this.startedAt = null;
85
+ this.logger.warn(`cloudflared failed to spawn: ${error.message}`);
86
+ });
87
+ }
88
+ async stop(graceMs = remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_STOP_GRACE_MS) {
89
+ const child = this.child;
90
+ if (!child) {
91
+ return;
92
+ }
93
+ await new Promise((resolve) => {
94
+ const timer = setTimeout(() => {
95
+ try {
96
+ child.kill('SIGKILL');
97
+ }
98
+ catch {
99
+ }
100
+ }, graceMs);
101
+ timer.unref?.();
102
+ child.once('exit', () => {
103
+ clearTimeout(timer);
104
+ resolve();
105
+ });
106
+ try {
107
+ child.kill('SIGTERM');
108
+ }
109
+ catch {
110
+ clearTimeout(timer);
111
+ resolve();
112
+ }
113
+ });
114
+ this.child = null;
115
+ this.startedAt = null;
116
+ }
117
+ appendStderr(text) {
118
+ this.stderrCarry += text;
119
+ const lines = this.stderrCarry.split('\n');
120
+ this.stderrCarry = lines.pop() ?? '';
121
+ for (const rawLine of lines) {
122
+ this.stderrRing.push(this.redact(rawLine));
123
+ if (this.stderrRing.length > remote_access_cloudflare_tunnel_constants_1.CLOUDFLARED_STDERR_RING_SIZE) {
124
+ this.stderrRing.shift();
125
+ }
126
+ }
127
+ }
128
+ redact(line) {
129
+ if (!this.currentToken) {
130
+ return line;
131
+ }
132
+ return line.split(this.currentToken).join('***redacted***');
133
+ }
134
+ };
135
+ exports.CloudflaredProcessService = CloudflaredProcessService;
136
+ exports.CloudflaredProcessService = CloudflaredProcessService = __decorate([
137
+ (0, common_1.Injectable)()
138
+ ], CloudflaredProcessService);
139
+ //# sourceMappingURL=cloudflared-process.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflared-process.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-cloudflare-tunnel/services/cloudflared-process.service.ts"],"names":[],"mappings":"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"}
@@ -18,3 +18,5 @@ export declare const TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = 120000;
18
18
  export declare const TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS: number;
19
19
  export declare const TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = 30000;
20
20
  export declare const TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS: number;
21
+ export declare const TAILSCALE_RECONNECT_BASE_DELAY_MS = 30000;
22
+ export declare const TAILSCALE_RECONNECT_MAX_DELAY_MS: number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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_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;
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';
@@ -21,4 +21,6 @@ exports.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = 120_000;
21
21
  exports.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS = 10 * 60 * 1000;
22
22
  exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = 30_000;
23
23
  exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = 14 * 24 * 60 * 60 * 1000;
24
+ exports.TAILSCALE_RECONNECT_BASE_DELAY_MS = 30_000;
25
+ exports.TAILSCALE_RECONNECT_MAX_DELAY_MS = 5 * 60 * 1000;
24
26
  //# 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"}
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"}
@@ -236,6 +236,10 @@ let TailscaleLoginService = class TailscaleLoginService {
236
236
  }
237
237
  settleResolve({ state: 'pending-auth', authUrl: parsed.AuthURL, qr: parsed.QR });
238
238
  }
239
+ else if (parsed.Error) {
240
+ this.stopPendingLogin();
241
+ settleReject(new Error(parsed.Error));
242
+ }
239
243
  else {
240
244
  this.stopPendingLogin();
241
245
  fallbackToCurrentStatus();
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-login.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-login.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailscale-login.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-login.service.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,8 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
44
44
  private requirementsCache;
45
45
  private requirementsRefreshedAt;
46
46
  private lastServeConvergeDenied;
47
+ private reconnectAttempts;
48
+ private nextReconnectAttemptAt;
47
49
  constructor(cli: TailscaleCliService, mapper: TailscaleStatusMapperService, configService: ConfigService, nestConfigService: NestConfigService, platformService: PlatformService, eventEmitter: EventEmitter2, serveService: TailscaleServeService);
48
50
  start(): Promise<void>;
49
51
  stop(): Promise<void>;
@@ -66,7 +68,7 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
66
68
  private buildRemedy;
67
69
  private buildInstallRemedy;
68
70
  private runSetupScriptPrintPlan;
69
- computeStatus(): Promise<RemoteAccessProviderStatus>;
71
+ computeStatus(requirementsReason?: TailscaleRequirementRefreshReason): Promise<RemoteAccessProviderStatus>;
70
72
  private computeStatusWithRawStatus;
71
73
  private convergeServe;
72
74
  private evaluatePlatformSupported;
@@ -81,6 +83,7 @@ export declare class TailscaleNodeManagedService extends BaseManagedExtensionSer
81
83
  private schedulePoll;
82
84
  private clearPoll;
83
85
  private pollTick;
86
+ private attemptReconnect;
84
87
  private hasStatusChanged;
85
88
  buildPreferenceFlags(config: RemoteAccessTailscalePluginConfigModel): string[];
86
89
  buildUpFlags(config: RemoteAccessTailscalePluginConfigModel): string[];