@fastybird/smart-panel-backend 1.1.0-alpha.41 → 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.
- package/dist/app.module.js +1 -1
- package/dist/app.module.js.map +1 -1
- package/dist/common/utils/cancellable-exec.utils.d.ts +5 -0
- package/dist/common/utils/cancellable-exec.utils.js +34 -0
- package/dist/common/utils/cancellable-exec.utils.js.map +1 -0
- package/dist/common/utils/remote-access-observation.utils.d.ts +11 -0
- package/dist/common/utils/remote-access-observation.utils.js +89 -0
- package/dist/common/utils/remote-access-observation.utils.js.map +1 -0
- package/dist/modules/remote-access/controllers/remote-access.controller.js +9 -5
- package/dist/modules/remote-access/controllers/remote-access.controller.js.map +1 -1
- package/dist/modules/remote-access/models/provider.model.d.ts +3 -0
- package/dist/modules/remote-access/models/provider.model.js +23 -0
- package/dist/modules/remote-access/models/provider.model.js.map +1 -1
- package/dist/modules/remote-access/models/status.model.d.ts +2 -0
- package/dist/modules/remote-access/models/status.model.js +18 -1
- package/dist/modules/remote-access/models/status.model.js.map +1 -1
- package/dist/modules/remote-access/models/urls.model.d.ts +2 -0
- package/dist/modules/remote-access/models/urls.model.js +17 -0
- package/dist/modules/remote-access/models/urls.model.js.map +1 -1
- package/dist/modules/remote-access/platforms/remote-access-provider.platform.d.ts +18 -1
- package/dist/modules/remote-access/remote-access.constants.d.ts +2 -1
- package/dist/modules/remote-access/remote-access.constants.js +2 -1
- package/dist/modules/remote-access/remote-access.constants.js.map +1 -1
- package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.d.ts +1 -0
- package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js +4 -1
- package/dist/modules/remote-access/services/remote-access-proxy-contribution.service.js.map +1 -1
- package/dist/modules/remote-access/services/remote-access-status.service.d.ts +40 -8
- package/dist/modules/remote-access/services/remote-access-status.service.js +314 -65
- package/dist/modules/remote-access/services/remote-access-status.service.js.map +1 -1
- package/dist/modules/remote-access/services/remote-access-url.service.d.ts +2 -2
- package/dist/modules/remote-access/services/remote-access-url.service.js +4 -2
- package/dist/modules/remote-access/services/remote-access-url.service.js.map +1 -1
- package/dist/modules/websocket/gateway/websocket.gateway.js +1 -0
- package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.d.ts +5 -3
- package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js +20 -8
- package/dist/plugins/remote-access-cloudflare-tunnel/controllers/setup.controller.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.d.ts +3 -5
- package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js +11 -10
- package/dist/plugins/remote-access-cloudflare-tunnel/controllers/status.controller.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.d.ts +2 -0
- package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js +17 -0
- package/dist/plugins/remote-access-cloudflare-tunnel/models/status.model.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.d.ts +20 -2
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js +105 -48
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-managed.service.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.d.ts +13 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js +8 -2
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflare-tunnel-provider.service.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.d.ts +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js +12 -24
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-cli.service.js.map +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.d.ts +1 -1
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js +5 -2
- package/dist/plugins/remote-access-cloudflare-tunnel/services/cloudflared-metrics.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +10 -5
- package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +105 -15
- package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +5 -4
- package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +19 -9
- package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +16 -0
- package/dist/plugins/remote-access-tailscale/models/status.model.js +100 -1
- package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +2 -0
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +3 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +17 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +33 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +1 -0
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +2 -0
- package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +8 -4
- package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +58 -14
- package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +8 -3
- package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +175 -151
- package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +51 -7
- package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +481 -101
- package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.d.ts +33 -0
- package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js +167 -0
- package/dist/plugins/remote-access-tailscale/services/tailscale-operation-coordinator.service.js.map +1 -0
- package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.d.ts +13 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js +8 -2
- package/dist/plugins/remote-access-tailscale/services/tailscale-provider.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +7 -6
- package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +1 -3
- package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +9 -11
- package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
- package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.d.ts +5 -0
- package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js +36 -0
- package/dist/plugins/remote-access-tailscale/utils/tailscale-control.utils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -5,13 +5,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
8
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
15
|
exports.TailscaleCliService = exports.TailscaleCliError = void 0;
|
|
10
16
|
exports.redactTailscaleArgs = redactTailscaleArgs;
|
|
11
17
|
const node_child_process_1 = require("node:child_process");
|
|
12
18
|
const common_1 = require("@nestjs/common");
|
|
13
19
|
const logger_1 = require("../../../common/logger");
|
|
20
|
+
const cancellable_exec_utils_1 = require("../../../common/utils/cancellable-exec.utils");
|
|
14
21
|
const remote_access_tailscale_constants_1 = require("../remote-access-tailscale.constants");
|
|
22
|
+
const tailscale_operation_coordinator_service_1 = require("./tailscale-operation-coordinator.service");
|
|
15
23
|
class TailscaleCliError extends Error {
|
|
16
24
|
constructor(kind, message, cause) {
|
|
17
25
|
super(message);
|
|
@@ -51,11 +59,12 @@ const PERMISSION_DENIED_PATTERN = /access denied|permission denied|must be root,
|
|
|
51
59
|
const DAEMON_DOWN_PATTERN = /connection refused|failed to connect to local|couldn't connect|no such file or directory.*sock/i;
|
|
52
60
|
const NEEDS_LOGIN_PATTERN = /not logged in|needs to log in|logged out/i;
|
|
53
61
|
let TailscaleCliService = class TailscaleCliService {
|
|
54
|
-
constructor() {
|
|
62
|
+
constructor(operations) {
|
|
63
|
+
this.operations = operations;
|
|
55
64
|
this.logger = (0, logger_1.createExtensionLogger)(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'TailscaleCliService');
|
|
56
65
|
}
|
|
57
|
-
async getVersion() {
|
|
58
|
-
const { stdout, stderr, exitCode } = await this.
|
|
66
|
+
async getVersion(signal) {
|
|
67
|
+
const { stdout, stderr, exitCode } = await this.execRead(['version', '--json'], signal);
|
|
59
68
|
if (exitCode !== 0) {
|
|
60
69
|
throw this.classify(stdout, stderr, `tailscale version --json exited with code ${exitCode}`);
|
|
61
70
|
}
|
|
@@ -72,8 +81,8 @@ let TailscaleCliService = class TailscaleCliService {
|
|
|
72
81
|
}
|
|
73
82
|
return { version, raw: parsed };
|
|
74
83
|
}
|
|
75
|
-
async getStatus() {
|
|
76
|
-
const { stdout, stderr, exitCode } = await this.
|
|
84
|
+
async getStatus(signal) {
|
|
85
|
+
const { stdout, stderr, exitCode } = await this.execRead(['status', '--json'], signal);
|
|
77
86
|
let parsed;
|
|
78
87
|
try {
|
|
79
88
|
parsed = JSON.parse(stdout);
|
|
@@ -86,8 +95,8 @@ let TailscaleCliService = class TailscaleCliService {
|
|
|
86
95
|
}
|
|
87
96
|
return parsed;
|
|
88
97
|
}
|
|
89
|
-
async getPrefs() {
|
|
90
|
-
const { stdout, stderr, exitCode } = await this.
|
|
98
|
+
async getPrefs(signal) {
|
|
99
|
+
const { stdout, stderr, exitCode } = await this.execRead(['debug', 'prefs'], signal);
|
|
91
100
|
if (exitCode !== 0) {
|
|
92
101
|
throw this.classify(stdout, stderr, `tailscale debug prefs exited with code ${exitCode}`);
|
|
93
102
|
}
|
|
@@ -134,10 +143,11 @@ let TailscaleCliService = class TailscaleCliService {
|
|
|
134
143
|
async serveOff() {
|
|
135
144
|
await this.runManagementCommand(['serve', '--https=443', '--set-path=/', 'off']);
|
|
136
145
|
}
|
|
137
|
-
async serveStatus() {
|
|
138
|
-
return this.execServeConfig(['serve', 'status', '--json']);
|
|
146
|
+
async serveStatus(signal) {
|
|
147
|
+
return this.execServeConfig(['serve', 'status', '--json'], signal);
|
|
139
148
|
}
|
|
140
149
|
spawnUp(args) {
|
|
150
|
+
this.operations?.assertCurrent();
|
|
141
151
|
const argv = ['up', ...args];
|
|
142
152
|
this.logger.debug(`Spawning: ${remote_access_tailscale_constants_1.TAILSCALE_BINARY} ${redactTailscaleArgs(argv).join(' ')}`);
|
|
143
153
|
return (0, node_child_process_1.spawn)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, argv);
|
|
@@ -148,8 +158,8 @@ let TailscaleCliService = class TailscaleCliService {
|
|
|
148
158
|
throw this.classify(stdout, stderr, `tailscale ${args[0] ?? ''} exited with code ${exitCode}`);
|
|
149
159
|
}
|
|
150
160
|
}
|
|
151
|
-
async execServeConfig(args) {
|
|
152
|
-
const { stdout, stderr, exitCode } = await this.
|
|
161
|
+
async execServeConfig(args, signal) {
|
|
162
|
+
const { stdout, stderr, exitCode } = await this.execRead(args, signal);
|
|
153
163
|
if (exitCode !== 0) {
|
|
154
164
|
throw this.classify(stdout, stderr, `tailscale ${args.join(' ')} exited with code ${exitCode}`);
|
|
155
165
|
}
|
|
@@ -175,14 +185,38 @@ let TailscaleCliService = class TailscaleCliService {
|
|
|
175
185
|
else if (NEEDS_LOGIN_PATTERN.test(text)) {
|
|
176
186
|
kind = 'needs-login';
|
|
177
187
|
}
|
|
178
|
-
const detail = stderr.trim() || stdout.trim()
|
|
188
|
+
const detail = (stderr.trim() || stdout.trim())
|
|
189
|
+
.replace(/https?:\/\/\S+/gi, '[redacted URL]')
|
|
190
|
+
.replace(/tskey-[\w-]+/gi, '[redacted key]');
|
|
179
191
|
return new TailscaleCliError(kind, detail ? `${context}: ${detail}` : context, cause);
|
|
180
192
|
}
|
|
193
|
+
async execRead(args, signal) {
|
|
194
|
+
if (!signal && this.operations?.getToken()) {
|
|
195
|
+
return this.exec(args);
|
|
196
|
+
}
|
|
197
|
+
try {
|
|
198
|
+
return await (0, cancellable_exec_utils_1.cancellableExecFile)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, args, signal, remote_access_tailscale_constants_1.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS, remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES);
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
signal?.throwIfAborted();
|
|
202
|
+
const nodeError = error;
|
|
203
|
+
if (nodeError.code === 'ENOENT') {
|
|
204
|
+
throw new TailscaleCliError('not-installed', 'The tailscale CLI is not installed or not on PATH.', error);
|
|
205
|
+
}
|
|
206
|
+
if (nodeError.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') {
|
|
207
|
+
throw new TailscaleCliError('unknown', `tailscale ${args[0] ?? ''} produced more than ${remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES} bytes of output.`, error);
|
|
208
|
+
}
|
|
209
|
+
throw new TailscaleCliError(nodeError.killed ? 'timeout' : 'unknown', 'The Tailscale status read failed.', error);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
181
212
|
exec(args, timeoutMs = remote_access_tailscale_constants_1.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS) {
|
|
213
|
+
this.operations?.assertCurrent();
|
|
182
214
|
const argv = [...args];
|
|
183
215
|
this.logger.debug(`Running: ${remote_access_tailscale_constants_1.TAILSCALE_BINARY} ${redactTailscaleArgs(argv).join(' ')}`);
|
|
184
216
|
return new Promise((resolve, reject) => {
|
|
185
|
-
|
|
217
|
+
let hardDeadline;
|
|
218
|
+
const child = (0, node_child_process_1.execFile)(remote_access_tailscale_constants_1.TAILSCALE_BINARY, argv, { timeout: timeoutMs, maxBuffer: remote_access_tailscale_constants_1.TAILSCALE_CLI_MAX_BUFFER_BYTES }, (error, stdout, stderr) => {
|
|
219
|
+
clearTimeout(hardDeadline);
|
|
186
220
|
const out = stdout ?? '';
|
|
187
221
|
const err = stderr ?? '';
|
|
188
222
|
if (error) {
|
|
@@ -208,11 +242,21 @@ let TailscaleCliService = class TailscaleCliService {
|
|
|
208
242
|
}
|
|
209
243
|
resolve({ stdout: out, stderr: err, exitCode: 0 });
|
|
210
244
|
});
|
|
245
|
+
if (this.operations?.getToken()) {
|
|
246
|
+
void this.operations.trackChild(child);
|
|
247
|
+
hardDeadline = setTimeout(() => {
|
|
248
|
+
void this.operations
|
|
249
|
+
.terminateChild(child)
|
|
250
|
+
.then(() => reject(new TailscaleCliError('timeout', `tailscale ${argv[0] ?? ''} did not complete within ${timeoutMs}ms.`)), reject);
|
|
251
|
+
}, timeoutMs);
|
|
252
|
+
}
|
|
211
253
|
});
|
|
212
254
|
}
|
|
213
255
|
};
|
|
214
256
|
exports.TailscaleCliService = TailscaleCliService;
|
|
215
257
|
exports.TailscaleCliService = TailscaleCliService = __decorate([
|
|
216
|
-
(0, common_1.Injectable)()
|
|
258
|
+
(0, common_1.Injectable)(),
|
|
259
|
+
__param(0, (0, common_1.Optional)()),
|
|
260
|
+
__metadata("design:paramtypes", [tailscale_operation_coordinator_service_1.TailscaleOperationCoordinatorService])
|
|
217
261
|
], TailscaleCliService);
|
|
218
262
|
//# sourceMappingURL=tailscale-cli.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailscale-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-cli.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tailscale-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-cli.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { OnModuleInit } from '@nestjs/common';
|
|
1
|
+
import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { ConfigService as NestConfigService } from '@nestjs/config';
|
|
3
3
|
import { RemoteAccessProviderState } from '../../../modules/remote-access/platforms/remote-access-provider.platform';
|
|
4
|
+
import { TailscaleOperationInProgressException } from '../remote-access-tailscale.exceptions';
|
|
4
5
|
import { TailscaleCliService } from './tailscale-cli.service';
|
|
5
6
|
import { TailscaleNodeManagedService } from './tailscale-node-managed.service';
|
|
6
7
|
export interface TailscaleLoginResult {
|
|
@@ -12,18 +13,21 @@ export declare function extractJsonObjects(buffer: string): {
|
|
|
12
13
|
objects: string[];
|
|
13
14
|
rest: string;
|
|
14
15
|
};
|
|
15
|
-
export declare class TailscaleLoginInProgressException extends
|
|
16
|
+
export declare class TailscaleLoginInProgressException extends TailscaleOperationInProgressException {
|
|
16
17
|
constructor(message: string);
|
|
17
18
|
}
|
|
18
|
-
export declare class TailscaleLoginService implements OnModuleInit {
|
|
19
|
+
export declare class TailscaleLoginService implements OnModuleInit, OnModuleDestroy {
|
|
19
20
|
private readonly cli;
|
|
20
21
|
private readonly nodeManagedService;
|
|
21
22
|
private readonly nestConfigService;
|
|
22
23
|
private readonly logger;
|
|
23
24
|
private pending;
|
|
25
|
+
private interactiveRequest;
|
|
24
26
|
private keyedLoginInFlight;
|
|
25
27
|
constructor(cli: TailscaleCliService, nodeManagedService: TailscaleNodeManagedService, nestConfigService: NestConfigService);
|
|
26
28
|
onModuleInit(): Promise<void>;
|
|
29
|
+
private get operations();
|
|
30
|
+
onModuleDestroy(): Promise<void>;
|
|
27
31
|
login(authKey?: string): Promise<TailscaleLoginResult>;
|
|
28
32
|
logout(): Promise<TailscaleLoginResult>;
|
|
29
33
|
resetPreferences(): Promise<TailscaleLoginResult>;
|
|
@@ -33,6 +37,7 @@ export declare class TailscaleLoginService implements OnModuleInit {
|
|
|
33
37
|
qr?: string;
|
|
34
38
|
} | null;
|
|
35
39
|
stopPendingLogin(): void;
|
|
40
|
+
private prepareLogin;
|
|
36
41
|
private loginWithAuthKey;
|
|
37
42
|
private loginInteractively;
|
|
38
43
|
private currentStatus;
|