@edgible-team/cli 1.2.4 → 1.2.8
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/commands/agent/agent-handlers.d.ts +45 -0
- package/dist/commands/agent/agent-handlers.d.ts.map +1 -0
- package/dist/commands/agent/agent-handlers.js +1159 -0
- package/dist/commands/agent/install.d.ts +11 -0
- package/dist/commands/agent/install.d.ts.map +1 -0
- package/dist/commands/agent/install.js +399 -0
- package/dist/commands/agent/logs.d.ts +12 -0
- package/dist/commands/agent/logs.d.ts.map +1 -0
- package/dist/commands/agent/logs.js +77 -0
- package/dist/commands/agent/restart.d.ts +4 -0
- package/dist/commands/agent/restart.d.ts.map +1 -0
- package/dist/commands/agent/restart.js +33 -0
- package/dist/commands/agent/set-log-level.d.ts +8 -0
- package/dist/commands/agent/set-log-level.d.ts.map +1 -0
- package/dist/commands/agent/set-log-level.js +133 -0
- package/dist/commands/agent/setup.d.ts +9 -0
- package/dist/commands/agent/setup.d.ts.map +1 -0
- package/dist/commands/agent/setup.js +149 -0
- package/dist/commands/agent/start.d.ts +12 -0
- package/dist/commands/agent/start.d.ts.map +1 -0
- package/dist/commands/agent/start.js +308 -0
- package/dist/commands/agent/status.d.ts +7 -0
- package/dist/commands/agent/status.d.ts.map +1 -0
- package/dist/commands/agent/status.js +68 -0
- package/dist/commands/agent/stop.d.ts +4 -0
- package/dist/commands/agent/stop.d.ts.map +1 -0
- package/dist/commands/agent/stop.js +33 -0
- package/dist/commands/agent/uninstall.d.ts +7 -0
- package/dist/commands/agent/uninstall.d.ts.map +1 -0
- package/dist/commands/agent/uninstall.js +168 -0
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +24 -1190
- package/dist/commands/ai/helpers.d.ts +139 -0
- package/dist/commands/ai/helpers.d.ts.map +1 -0
- package/dist/commands/ai/helpers.js +1470 -0
- package/dist/commands/ai/serve.d.ts +6 -0
- package/dist/commands/ai/serve.d.ts.map +1 -0
- package/dist/commands/ai/serve.js +124 -0
- package/dist/commands/ai/setup.d.ts +14 -0
- package/dist/commands/ai/setup.d.ts.map +1 -0
- package/dist/commands/ai/setup.js +86 -0
- package/dist/commands/ai/status.d.ts +2 -0
- package/dist/commands/ai/status.d.ts.map +1 -0
- package/dist/commands/ai/status.js +160 -0
- package/dist/commands/ai/stop.d.ts +2 -0
- package/dist/commands/ai/stop.d.ts.map +1 -0
- package/dist/commands/ai/stop.js +21 -0
- package/dist/commands/ai/teardown.d.ts +5 -0
- package/dist/commands/ai/teardown.d.ts.map +1 -0
- package/dist/commands/ai/teardown.js +78 -0
- package/dist/commands/ai/test.d.ts +4 -0
- package/dist/commands/ai/test.d.ts.map +1 -0
- package/dist/commands/ai/test.js +65 -0
- package/dist/commands/ai.d.ts.map +1 -1
- package/dist/commands/ai.js +16 -1938
- package/dist/commands/application/api-keys/create.d.ts +6 -0
- package/dist/commands/application/api-keys/create.d.ts.map +1 -0
- package/dist/commands/application/api-keys/create.js +68 -0
- package/dist/commands/application/api-keys/delete.d.ts +6 -0
- package/dist/commands/application/api-keys/delete.d.ts.map +1 -0
- package/dist/commands/application/api-keys/delete.js +79 -0
- package/dist/commands/application/api-keys/list.d.ts +5 -0
- package/dist/commands/application/api-keys/list.d.ts.map +1 -0
- package/dist/commands/application/api-keys/list.js +65 -0
- package/dist/commands/application/api-keys.d.ts +3 -0
- package/dist/commands/application/api-keys.d.ts.map +1 -0
- package/dist/commands/application/api-keys.js +227 -0
- package/dist/commands/application/create-compose.d.ts +3 -0
- package/dist/commands/application/create-compose.d.ts.map +1 -0
- package/dist/commands/application/create-compose.js +381 -0
- package/dist/commands/application/create-docker-compose.d.ts +10 -0
- package/dist/commands/application/create-docker-compose.d.ts.map +1 -0
- package/dist/commands/application/create-docker-compose.js +334 -0
- package/dist/commands/application/create-existing.d.ts +14 -0
- package/dist/commands/application/create-existing.d.ts.map +1 -0
- package/dist/commands/application/create-existing.js +359 -0
- package/dist/commands/application/create-interactive.d.ts +3 -0
- package/dist/commands/application/create-interactive.d.ts.map +1 -0
- package/dist/commands/application/create-interactive.js +326 -0
- package/dist/commands/application/create-managed-process.d.ts +15 -0
- package/dist/commands/application/create-managed-process.d.ts.map +1 -0
- package/dist/commands/application/create-managed-process.js +371 -0
- package/dist/commands/application/create-stubs.d.ts +4 -0
- package/dist/commands/application/create-stubs.d.ts.map +1 -0
- package/dist/commands/application/create-stubs.js +19 -0
- package/dist/commands/application/create-workload.d.ts +5 -0
- package/dist/commands/application/create-workload.d.ts.map +1 -0
- package/dist/commands/application/create-workload.js +48 -0
- package/dist/commands/application/delete.d.ts +6 -0
- package/dist/commands/application/delete.d.ts.map +1 -0
- package/dist/commands/application/delete.js +76 -0
- package/dist/commands/application/get.d.ts +5 -0
- package/dist/commands/application/get.d.ts.map +1 -0
- package/dist/commands/application/get.js +35 -0
- package/dist/commands/application/list.d.ts +4 -0
- package/dist/commands/application/list.d.ts.map +1 -0
- package/dist/commands/application/list.js +41 -0
- package/dist/commands/application/short-codes/create.d.ts +7 -0
- package/dist/commands/application/short-codes/create.d.ts.map +1 -0
- package/dist/commands/application/short-codes/create.js +69 -0
- package/dist/commands/application/short-codes/delete.d.ts +6 -0
- package/dist/commands/application/short-codes/delete.d.ts.map +1 -0
- package/dist/commands/application/short-codes/delete.js +79 -0
- package/dist/commands/application/short-codes/list.d.ts +5 -0
- package/dist/commands/application/short-codes/list.d.ts.map +1 -0
- package/dist/commands/application/short-codes/list.js +63 -0
- package/dist/commands/application/short-codes/toggle.d.ts +5 -0
- package/dist/commands/application/short-codes/toggle.d.ts.map +1 -0
- package/dist/commands/application/short-codes/toggle.js +71 -0
- package/dist/commands/application/short-codes.d.ts +3 -0
- package/dist/commands/application/short-codes.d.ts.map +1 -0
- package/dist/commands/application/short-codes.js +226 -0
- package/dist/commands/application/toggle.d.ts +2 -0
- package/dist/commands/application/toggle.d.ts.map +1 -0
- package/dist/commands/application/toggle.js +78 -0
- package/dist/commands/application/update.d.ts +4 -0
- package/dist/commands/application/update.d.ts.map +1 -0
- package/dist/commands/application/update.js +11 -0
- package/dist/commands/application.d.ts.map +1 -1
- package/dist/commands/application.js +32 -1630
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +31 -49
- package/dist/commands/base/BaseCommand.d.ts +3 -3
- package/dist/commands/base/BaseCommand.d.ts.map +1 -1
- package/dist/commands/base/BaseCommand.js +3 -3
- package/dist/commands/base/command-wrapper.d.ts +0 -4
- package/dist/commands/base/command-wrapper.d.ts.map +1 -1
- package/dist/commands/base/command-wrapper.js +13 -14
- package/dist/commands/base/middleware.d.ts +3 -3
- package/dist/commands/base/middleware.d.ts.map +1 -1
- package/dist/commands/base/middleware.js +4 -4
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +15 -32
- package/dist/commands/connectivity.d.ts.map +1 -1
- package/dist/commands/connectivity.js +6 -11
- package/dist/commands/debug.d.ts.map +1 -1
- package/dist/commands/debug.js +187 -46
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +4 -17
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +37 -77
- package/dist/commands/managedGateway/create.d.ts +6 -0
- package/dist/commands/managedGateway/create.d.ts.map +1 -0
- package/dist/commands/managedGateway/create.js +50 -0
- package/dist/commands/managedGateway/delete.d.ts +5 -0
- package/dist/commands/managedGateway/delete.d.ts.map +1 -0
- package/dist/commands/managedGateway/delete.js +57 -0
- package/dist/commands/managedGateway/get.d.ts +4 -0
- package/dist/commands/managedGateway/get.d.ts.map +1 -0
- package/dist/commands/managedGateway/get.js +71 -0
- package/dist/commands/managedGateway/haproxy-stats.d.ts +6 -0
- package/dist/commands/managedGateway/haproxy-stats.d.ts.map +1 -0
- package/dist/commands/managedGateway/haproxy-stats.js +131 -0
- package/dist/commands/managedGateway/list.d.ts +4 -0
- package/dist/commands/managedGateway/list.d.ts.map +1 -0
- package/dist/commands/managedGateway/list.js +50 -0
- package/dist/commands/managedGateway/logs.d.ts +10 -0
- package/dist/commands/managedGateway/logs.d.ts.map +1 -0
- package/dist/commands/managedGateway/logs.js +100 -0
- package/dist/commands/managedGateway/reboot.d.ts +5 -0
- package/dist/commands/managedGateway/reboot.d.ts.map +1 -0
- package/dist/commands/managedGateway/reboot.js +95 -0
- package/dist/commands/managedGateway/resync.d.ts +10 -0
- package/dist/commands/managedGateway/resync.d.ts.map +1 -0
- package/dist/commands/managedGateway/resync.js +69 -0
- package/dist/commands/managedGateway/ssh.d.ts +4 -0
- package/dist/commands/managedGateway/ssh.d.ts.map +1 -0
- package/dist/commands/managedGateway/ssh.js +130 -0
- package/dist/commands/managedGateway/wipe-logs.d.ts +4 -0
- package/dist/commands/managedGateway/wipe-logs.d.ts.map +1 -0
- package/dist/commands/managedGateway/wipe-logs.js +67 -0
- package/dist/commands/managedGateway/wireguard.d.ts +4 -0
- package/dist/commands/managedGateway/wireguard.d.ts.map +1 -0
- package/dist/commands/managedGateway/wireguard.js +68 -0
- package/dist/commands/managedGateway.d.ts.map +1 -1
- package/dist/commands/managedGateway.js +61 -117
- package/dist/commands/utils/config-validator.d.ts +5 -5
- package/dist/commands/utils/config-validator.d.ts.map +1 -1
- package/dist/commands/utils/config-validator.js +8 -8
- package/dist/commands/utils/output-formatter.js +1 -1
- package/dist/config/app-config.d.ts +1 -1
- package/dist/config/app-config.js +2 -2
- package/dist/index.js +0 -3
- package/dist/services/LocalAgentManager.d.ts.map +1 -1
- package/dist/services/LocalAgentManager.js +4 -2
- package/dist/services/agentDeployment/AgentDeploymentService.d.ts +35 -0
- package/dist/services/agentDeployment/AgentDeploymentService.d.ts.map +1 -0
- package/dist/services/agentDeployment/AgentDeploymentService.js +35 -0
- package/dist/services/application/ApplicationService.d.ts +5 -4
- package/dist/services/application/ApplicationService.d.ts.map +1 -1
- package/dist/services/application/ApplicationService.js +22 -35
- package/dist/services/auth/AuthService.d.ts +5 -5
- package/dist/services/auth/AuthService.d.ts.map +1 -1
- package/dist/services/auth/AuthService.js +11 -58
- package/dist/services/daemon/DaemonManagerFactory.d.ts +2 -0
- package/dist/services/daemon/DaemonManagerFactory.d.ts.map +1 -1
- package/dist/services/daemon/DaemonManagerFactory.js +14 -6
- package/dist/services/diagnostics/DiagnosticsService.d.ts +89 -0
- package/dist/services/diagnostics/DiagnosticsService.d.ts.map +1 -0
- package/dist/services/diagnostics/DiagnosticsService.js +37 -0
- package/dist/services/edgible.d.ts +6 -4
- package/dist/services/edgible.d.ts.map +1 -1
- package/dist/services/edgible.js +36 -86
- package/dist/services/gateway/GatewayService.d.ts +5 -6
- package/dist/services/gateway/GatewayService.d.ts.map +1 -1
- package/dist/services/gateway/GatewayService.js +22 -36
- package/dist/services/instances.d.ts +34 -0
- package/dist/services/instances.d.ts.map +1 -0
- package/dist/services/instances.js +64 -0
- package/dist/services/managedGateway/ManagedGatewayService.d.ts +75 -0
- package/dist/services/managedGateway/ManagedGatewayService.d.ts.map +1 -0
- package/dist/services/managedGateway/ManagedGatewayService.js +44 -0
- package/dist/services/token/TokenManager.d.ts +56 -0
- package/dist/services/token/TokenManager.d.ts.map +1 -0
- package/dist/services/token/TokenManager.js +85 -0
- package/dist/types/validation/schemas.d.ts +22 -22
- package/dist/utils/PlatformDetector.d.ts +2 -0
- package/dist/utils/PlatformDetector.d.ts.map +1 -1
- package/dist/utils/PlatformDetector.js +5 -34
- package/dist/validation/schemas.d.ts +6 -6
- package/package.json +1 -1
|
@@ -9,28 +9,14 @@ const client_1 = require("../../client");
|
|
|
9
9
|
const aws_1 = require("../aws");
|
|
10
10
|
const PathResolver_1 = require("../../utils/PathResolver");
|
|
11
11
|
class GatewayServiceImpl {
|
|
12
|
-
constructor(baseUrl,
|
|
12
|
+
constructor(baseUrl, configManager, authService, tokenManager, logger) {
|
|
13
13
|
this.baseUrl = baseUrl;
|
|
14
|
-
this.
|
|
15
|
-
this.gatewayRepository = gatewayRepository;
|
|
14
|
+
this.configManager = configManager;
|
|
16
15
|
this.authService = authService;
|
|
16
|
+
this.tokenManager = tokenManager;
|
|
17
17
|
this.logger = logger;
|
|
18
18
|
this.apiClient = (0, client_1.createApiClient)(baseUrl);
|
|
19
|
-
this.
|
|
20
|
-
}
|
|
21
|
-
restoreTokensFromApiClient() {
|
|
22
|
-
const accessToken = this.authService.getAccessToken();
|
|
23
|
-
const idToken = this.authService.getIdToken();
|
|
24
|
-
const refreshToken = this.authService.getRefreshToken();
|
|
25
|
-
if (accessToken) {
|
|
26
|
-
this.apiClient.setAccessToken(accessToken);
|
|
27
|
-
}
|
|
28
|
-
if (idToken) {
|
|
29
|
-
this.apiClient.setIdToken(idToken);
|
|
30
|
-
}
|
|
31
|
-
if (refreshToken) {
|
|
32
|
-
this.apiClient.setRefreshToken(refreshToken);
|
|
33
|
-
}
|
|
19
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
34
20
|
}
|
|
35
21
|
generateAgentUserData(deviceId) {
|
|
36
22
|
const systemAgentPath = PathResolver_1.PathResolver.getSystemDataPath() + '/agent';
|
|
@@ -113,11 +99,11 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
113
99
|
async createGateway(config) {
|
|
114
100
|
try {
|
|
115
101
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
116
|
-
await this.authService.
|
|
117
|
-
this.
|
|
102
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
103
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
118
104
|
this.logger.info('Creating gateway');
|
|
119
105
|
// Get organization ID
|
|
120
|
-
const userConfig = this.
|
|
106
|
+
const userConfig = this.configManager.getConfig();
|
|
121
107
|
if (!userConfig.organizationId) {
|
|
122
108
|
throw new Error('No organization ID found. Please login first.');
|
|
123
109
|
}
|
|
@@ -171,7 +157,7 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
171
157
|
};
|
|
172
158
|
const response = await this.apiClient.createDevice(deviceRequest);
|
|
173
159
|
// Store gateway info in repository
|
|
174
|
-
this.
|
|
160
|
+
this.configManager.addGateway(response.device.id, {
|
|
175
161
|
name: config.name,
|
|
176
162
|
deviceId: response.device.id,
|
|
177
163
|
ec2InstanceId: ec2Instance.instanceId,
|
|
@@ -183,10 +169,10 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
183
169
|
});
|
|
184
170
|
// Store AWS profile and region
|
|
185
171
|
if (config.awsProfile) {
|
|
186
|
-
this.
|
|
172
|
+
this.configManager.setAWSProfile(config.awsProfile);
|
|
187
173
|
}
|
|
188
174
|
if (config.region) {
|
|
189
|
-
this.
|
|
175
|
+
this.configManager.setAWSRegion(config.region);
|
|
190
176
|
}
|
|
191
177
|
this.logger.info('Gateway created successfully');
|
|
192
178
|
return {
|
|
@@ -221,9 +207,9 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
221
207
|
async listGateways() {
|
|
222
208
|
try {
|
|
223
209
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
224
|
-
await this.authService.
|
|
225
|
-
this.
|
|
226
|
-
const userConfig = this.
|
|
210
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
211
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
212
|
+
const userConfig = this.configManager.getConfig();
|
|
227
213
|
if (!userConfig.organizationId) {
|
|
228
214
|
throw new Error('No organization ID found. Please login first.');
|
|
229
215
|
}
|
|
@@ -238,7 +224,7 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
238
224
|
// Enrich with local gateway info
|
|
239
225
|
const gateways = gatewayDevices.map((device) => {
|
|
240
226
|
const d = device;
|
|
241
|
-
const localInfo = this.
|
|
227
|
+
const localInfo = this.configManager.getGateway(d.id);
|
|
242
228
|
return {
|
|
243
229
|
device: {
|
|
244
230
|
id: d.id,
|
|
@@ -272,9 +258,9 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
272
258
|
async deleteGateway(gatewayId, force = false) {
|
|
273
259
|
try {
|
|
274
260
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
275
|
-
await this.authService.
|
|
276
|
-
this.
|
|
277
|
-
const gatewayInfo = this.
|
|
261
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
262
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
263
|
+
const gatewayInfo = this.configManager.getGateway(gatewayId);
|
|
278
264
|
if (!gatewayInfo) {
|
|
279
265
|
throw new Error('Gateway not found in local configuration');
|
|
280
266
|
}
|
|
@@ -286,7 +272,7 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
286
272
|
}
|
|
287
273
|
}
|
|
288
274
|
// Terminate EC2 instance
|
|
289
|
-
const awsService = new aws_1.AWSService(this.
|
|
275
|
+
const awsService = new aws_1.AWSService(this.configManager.getAWSProfile(), gatewayInfo.region);
|
|
290
276
|
await awsService.terminateInstance(gatewayInfo.ec2InstanceId);
|
|
291
277
|
this.logger.info(`EC2 instance terminated: ${gatewayInfo.ec2InstanceId}`);
|
|
292
278
|
// Delete key pair
|
|
@@ -295,7 +281,7 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
295
281
|
// Delete gateway device via API
|
|
296
282
|
await this.apiClient.deleteDevice(gatewayId);
|
|
297
283
|
// Remove from local repository
|
|
298
|
-
this.
|
|
284
|
+
this.configManager.removeGateway(gatewayId);
|
|
299
285
|
this.logger.info('Gateway deleted successfully');
|
|
300
286
|
return {
|
|
301
287
|
success: true,
|
|
@@ -310,9 +296,9 @@ echo "Edgible Agent setup complete for device: ${deviceId}"
|
|
|
310
296
|
async getGatewayApplications(gatewayId) {
|
|
311
297
|
try {
|
|
312
298
|
// Attempt auto re-login if tokens are missing but credentials are available
|
|
313
|
-
await this.authService.
|
|
314
|
-
this.
|
|
315
|
-
const userConfig = this.
|
|
299
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
300
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
301
|
+
const userConfig = this.configManager.getConfig();
|
|
316
302
|
if (!userConfig.organizationId) {
|
|
317
303
|
throw new Error('No organization ID found. Please login first.');
|
|
318
304
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Instances
|
|
3
|
+
* Singleton service instances for the CLI application
|
|
4
|
+
*
|
|
5
|
+
* This replaces the DI container with simple module-level singletons.
|
|
6
|
+
* Services are instantiated once and shared across the application.
|
|
7
|
+
*/
|
|
8
|
+
import { ConfigManager } from '../state/config';
|
|
9
|
+
import { EdgibleService } from './edgible';
|
|
10
|
+
import { LocalAgentManager } from './LocalAgentManager';
|
|
11
|
+
import { ConnectivityTester } from './ConnectivityTester';
|
|
12
|
+
import { WorkloadDetector } from '../detection/WorkloadDetector';
|
|
13
|
+
import type { Logger } from '../utils/logger';
|
|
14
|
+
import type { TokenManager } from './token/TokenManager';
|
|
15
|
+
import type { AuthService } from './auth/AuthService';
|
|
16
|
+
import type { ApplicationService } from './application/ApplicationService';
|
|
17
|
+
import type { GatewayService } from './gateway/GatewayService';
|
|
18
|
+
import type { ManagedGatewayService } from './managedGateway/ManagedGatewayService';
|
|
19
|
+
import type { DiagnosticsService } from './diagnostics/DiagnosticsService';
|
|
20
|
+
import type { AgentDeploymentService } from './agentDeployment/AgentDeploymentService';
|
|
21
|
+
export declare const logger: Logger;
|
|
22
|
+
export declare const configManager: ConfigManager;
|
|
23
|
+
export declare const tokenManager: TokenManager;
|
|
24
|
+
export declare const authService: AuthService;
|
|
25
|
+
export declare const applicationService: ApplicationService;
|
|
26
|
+
export declare const gatewayService: GatewayService;
|
|
27
|
+
export declare const edgibleService: EdgibleService;
|
|
28
|
+
export declare const localAgentManager: LocalAgentManager;
|
|
29
|
+
export declare const managedGatewayService: ManagedGatewayService;
|
|
30
|
+
export declare const diagnosticsService: DiagnosticsService;
|
|
31
|
+
export declare const agentDeploymentService: AgentDeploymentService;
|
|
32
|
+
export declare function createConnectivityTester(): ConnectivityTester;
|
|
33
|
+
export declare function createWorkloadDetector(): WorkloadDetector;
|
|
34
|
+
//# sourceMappingURL=instances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/services/instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAMvF,eAAO,MAAM,MAAM,EAAE,MAInB,CAAC;AAGH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAGjD,eAAO,MAAM,YAAY,EAAE,YAA0D,CAAC;AAGtF,eAAO,MAAM,WAAW,EAAE,WAKzB,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,kBAMhC,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,cAM5B,CAAC;AAGF,eAAO,MAAM,cAAc,gBAK1B,CAAC;AAGF,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;AAGzD,eAAO,MAAM,qBAAqB,EAAE,qBAAqE,CAAC;AAG1G,eAAO,MAAM,kBAAkB,EAAE,kBAA+D,CAAC;AAGjG,eAAO,MAAM,sBAAsB,EAAE,sBAAuE,CAAC;AAG7G,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAGD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Service Instances
|
|
4
|
+
* Singleton service instances for the CLI application
|
|
5
|
+
*
|
|
6
|
+
* This replaces the DI container with simple module-level singletons.
|
|
7
|
+
* Services are instantiated once and shared across the application.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.agentDeploymentService = exports.diagnosticsService = exports.managedGatewayService = exports.localAgentManager = exports.edgibleService = exports.gatewayService = exports.applicationService = exports.authService = exports.tokenManager = exports.configManager = exports.logger = void 0;
|
|
11
|
+
exports.createConnectivityTester = createConnectivityTester;
|
|
12
|
+
exports.createWorkloadDetector = createWorkloadDetector;
|
|
13
|
+
const console_logger_1 = require("../utils/console-logger");
|
|
14
|
+
const config_1 = require("../state/config");
|
|
15
|
+
const TokenManager_1 = require("./token/TokenManager");
|
|
16
|
+
const AuthService_1 = require("./auth/AuthService");
|
|
17
|
+
const ApplicationService_1 = require("./application/ApplicationService");
|
|
18
|
+
const GatewayService_1 = require("./gateway/GatewayService");
|
|
19
|
+
const edgible_1 = require("./edgible");
|
|
20
|
+
const LocalAgentManager_1 = require("./LocalAgentManager");
|
|
21
|
+
const ConnectivityTester_1 = require("./ConnectivityTester");
|
|
22
|
+
const WorkloadDetector_1 = require("../detection/WorkloadDetector");
|
|
23
|
+
const ManagedGatewayService_1 = require("./managedGateway/ManagedGatewayService");
|
|
24
|
+
const DiagnosticsService_1 = require("./diagnostics/DiagnosticsService");
|
|
25
|
+
const AgentDeploymentService_1 = require("./agentDeployment/AgentDeploymentService");
|
|
26
|
+
const app_config_1 = require("../config/app-config");
|
|
27
|
+
const logger_1 = require("../utils/logger");
|
|
28
|
+
// Get application configuration
|
|
29
|
+
const appConfig = (0, app_config_1.getConfig)();
|
|
30
|
+
// Create logger instance
|
|
31
|
+
exports.logger = new console_logger_1.ConsoleLogger({
|
|
32
|
+
level: (0, logger_1.parseLogLevel)(appConfig.logLevel),
|
|
33
|
+
colorEnabled: appConfig.colorEnabled,
|
|
34
|
+
plain: appConfig.plain,
|
|
35
|
+
});
|
|
36
|
+
// Create configuration manager
|
|
37
|
+
exports.configManager = new config_1.ConfigManager();
|
|
38
|
+
// Create token manager (Phase 3 - centralized token management)
|
|
39
|
+
exports.tokenManager = new TokenManager_1.TokenManagerImpl(exports.configManager, exports.logger);
|
|
40
|
+
// Create authentication service
|
|
41
|
+
exports.authService = new AuthService_1.AuthServiceImpl(appConfig.apiBaseUrl, exports.configManager, exports.tokenManager, exports.logger);
|
|
42
|
+
// Create application service
|
|
43
|
+
exports.applicationService = new ApplicationService_1.ApplicationServiceImpl(appConfig.apiBaseUrl, exports.configManager, exports.authService, exports.tokenManager, exports.logger);
|
|
44
|
+
// Create gateway service
|
|
45
|
+
exports.gatewayService = new GatewayService_1.GatewayServiceImpl(appConfig.apiBaseUrl, exports.configManager, exports.authService, exports.tokenManager, exports.logger);
|
|
46
|
+
// Create Edgible service (legacy - being refactored in phases)
|
|
47
|
+
exports.edgibleService = new edgible_1.EdgibleService(appConfig.apiBaseUrl, exports.configManager, exports.tokenManager, exports.logger);
|
|
48
|
+
// Create local agent manager
|
|
49
|
+
exports.localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
50
|
+
// Create managed gateway service
|
|
51
|
+
exports.managedGatewayService = new ManagedGatewayService_1.ManagedGatewayServiceImpl(exports.edgibleService);
|
|
52
|
+
// Create diagnostics service
|
|
53
|
+
exports.diagnosticsService = new DiagnosticsService_1.DiagnosticsServiceImpl(exports.edgibleService);
|
|
54
|
+
// Create agent deployment service
|
|
55
|
+
exports.agentDeploymentService = new AgentDeploymentService_1.AgentDeploymentServiceImpl(exports.edgibleService);
|
|
56
|
+
// Create connectivity tester (transient - create new instances as needed)
|
|
57
|
+
function createConnectivityTester() {
|
|
58
|
+
return new ConnectivityTester_1.ConnectivityTester();
|
|
59
|
+
}
|
|
60
|
+
// Create workload detector (transient - create new instances as needed)
|
|
61
|
+
function createWorkloadDetector() {
|
|
62
|
+
return new WorkloadDetector_1.WorkloadDetector();
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=instances.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Managed Gateway Service
|
|
3
|
+
*
|
|
4
|
+
* Handles operations for Edgible-managed gateways (admin/debug feature).
|
|
5
|
+
* This is a focused service extracted from the EdgibleService god object.
|
|
6
|
+
*/
|
|
7
|
+
import { EdgibleService } from '../edgible';
|
|
8
|
+
export interface ManagedGatewayService {
|
|
9
|
+
/**
|
|
10
|
+
* Create a new managed gateway
|
|
11
|
+
*/
|
|
12
|
+
createManagedGateway(config: {
|
|
13
|
+
region?: string;
|
|
14
|
+
instanceType?: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
}): Promise<any>;
|
|
17
|
+
/**
|
|
18
|
+
* List all managed gateways
|
|
19
|
+
*/
|
|
20
|
+
listManagedGateways(): Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* Get details of a specific managed gateway
|
|
23
|
+
*/
|
|
24
|
+
getManagedGateway(gatewayId: string): Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Delete a managed gateway
|
|
27
|
+
*/
|
|
28
|
+
deleteManagedGateway(gatewayId: string, force?: boolean): Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Resync agent on a managed gateway
|
|
31
|
+
*/
|
|
32
|
+
resyncManagedGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean, reboot?: boolean, wipeLogs?: boolean, debug?: boolean): Promise<any>;
|
|
33
|
+
/**
|
|
34
|
+
* Get logs from a managed gateway
|
|
35
|
+
*/
|
|
36
|
+
getManagedGatewayLogs(gatewayId: string, options: {
|
|
37
|
+
lines?: number;
|
|
38
|
+
follow?: boolean;
|
|
39
|
+
level?: 'error' | 'debug' | 'info' | 'warn' | 'all';
|
|
40
|
+
module?: string;
|
|
41
|
+
comprehensive?: boolean;
|
|
42
|
+
}): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Get SSH key for a managed gateway
|
|
45
|
+
*/
|
|
46
|
+
getManagedGatewaySSHKey(gatewayId: string): Promise<any>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Implementation of ManagedGatewayService
|
|
50
|
+
*
|
|
51
|
+
* Currently delegates to EdgibleService for backward compatibility.
|
|
52
|
+
* In Phase 3, we'll extract the actual implementation.
|
|
53
|
+
*/
|
|
54
|
+
export declare class ManagedGatewayServiceImpl implements ManagedGatewayService {
|
|
55
|
+
private edgibleService;
|
|
56
|
+
constructor(edgibleService: EdgibleService);
|
|
57
|
+
createManagedGateway(config: {
|
|
58
|
+
region?: string;
|
|
59
|
+
instanceType?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
}): Promise<any>;
|
|
62
|
+
listManagedGateways(): Promise<any>;
|
|
63
|
+
getManagedGateway(gatewayId: string): Promise<any>;
|
|
64
|
+
deleteManagedGateway(gatewayId: string, force?: boolean): Promise<any>;
|
|
65
|
+
resyncManagedGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean, reboot?: boolean, wipeLogs?: boolean, debug?: boolean): Promise<any>;
|
|
66
|
+
getManagedGatewayLogs(gatewayId: string, options: {
|
|
67
|
+
lines?: number;
|
|
68
|
+
follow?: boolean;
|
|
69
|
+
level?: 'error' | 'debug' | 'info' | 'warn' | 'all';
|
|
70
|
+
module?: string;
|
|
71
|
+
comprehensive?: boolean;
|
|
72
|
+
}): Promise<any>;
|
|
73
|
+
getManagedGatewaySSHKey(gatewayId: string): Promise<any>;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=ManagedGatewayService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManagedGatewayService.d.ts","sourceRoot":"","sources":["../../../src/services/managedGateway/ManagedGatewayService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEnD;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvE;;OAEG;IACH,yBAAyB,CACvB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,OAAO,EAC1B,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GACA,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhB;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1D;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,YAAW,qBAAqB;IACzD,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE5C,oBAAoB,CAAC,MAAM,EAAE;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,GAAG,CAAC;IAIV,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIlD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7E,yBAAyB,CAC7B,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,OAAO,EAC1B,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,CAAC;IAWT,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GACA,OAAO,CAAC,GAAG,CAAC;IAIT,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAI/D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Managed Gateway Service
|
|
4
|
+
*
|
|
5
|
+
* Handles operations for Edgible-managed gateways (admin/debug feature).
|
|
6
|
+
* This is a focused service extracted from the EdgibleService god object.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ManagedGatewayServiceImpl = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Implementation of ManagedGatewayService
|
|
12
|
+
*
|
|
13
|
+
* Currently delegates to EdgibleService for backward compatibility.
|
|
14
|
+
* In Phase 3, we'll extract the actual implementation.
|
|
15
|
+
*/
|
|
16
|
+
class ManagedGatewayServiceImpl {
|
|
17
|
+
constructor(edgibleService) {
|
|
18
|
+
this.edgibleService = edgibleService;
|
|
19
|
+
}
|
|
20
|
+
async createManagedGateway(config) {
|
|
21
|
+
return this.edgibleService.createManagedGateway(config);
|
|
22
|
+
}
|
|
23
|
+
async listManagedGateways() {
|
|
24
|
+
return this.edgibleService.listManagedGateways();
|
|
25
|
+
}
|
|
26
|
+
async getManagedGateway(gatewayId) {
|
|
27
|
+
return this.edgibleService.getManagedGateway(gatewayId);
|
|
28
|
+
}
|
|
29
|
+
async deleteManagedGateway(gatewayId, force = false) {
|
|
30
|
+
return this.edgibleService.deleteManagedGateway(gatewayId, force);
|
|
31
|
+
}
|
|
32
|
+
async resyncManagedGatewayAgent(gatewayId, agentVersion, installFromLocal, reboot, wipeLogs, debug) {
|
|
33
|
+
return this.edgibleService.resyncManagedGatewayAgent(gatewayId, agentVersion, installFromLocal, reboot, wipeLogs, debug);
|
|
34
|
+
}
|
|
35
|
+
async getManagedGatewayLogs(gatewayId, options) {
|
|
36
|
+
return this.edgibleService.getManagedGatewayLogs(gatewayId, options);
|
|
37
|
+
}
|
|
38
|
+
async getManagedGatewaySSHKey(gatewayId) {
|
|
39
|
+
// Access the apiClient via type assertion (temporary)
|
|
40
|
+
return this.edgibleService.apiClient.getManagedGatewaySSHKey({ gatewayId });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.ManagedGatewayServiceImpl = ManagedGatewayServiceImpl;
|
|
44
|
+
//# sourceMappingURL=ManagedGatewayService.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Manager Service
|
|
3
|
+
*
|
|
4
|
+
* Centralized token management for the CLI application.
|
|
5
|
+
* Handles token restoration, refresh, and automatic re-login.
|
|
6
|
+
*
|
|
7
|
+
* This service eliminates the duplicate attemptAutoRelogin() implementations
|
|
8
|
+
* that were scattered across AuthService, ApplicationService, GatewayService,
|
|
9
|
+
* and EdgibleService (79 total occurrences).
|
|
10
|
+
*/
|
|
11
|
+
import { ApiClient } from '../../client';
|
|
12
|
+
import { ConfigManager } from '../../state/config';
|
|
13
|
+
import { Logger } from '../../utils/logger';
|
|
14
|
+
export interface TokenManager {
|
|
15
|
+
/**
|
|
16
|
+
* Restore tokens from config to ApiClient
|
|
17
|
+
*/
|
|
18
|
+
restoreTokensFromConfig(apiClient: ApiClient): void;
|
|
19
|
+
/**
|
|
20
|
+
* Save tokens from ApiClient to config
|
|
21
|
+
*/
|
|
22
|
+
saveTokensToConfig(apiClient: ApiClient): void;
|
|
23
|
+
/**
|
|
24
|
+
* Ensure valid authentication token exists
|
|
25
|
+
* Attempts automatic re-login if no tokens but device credentials exist
|
|
26
|
+
*
|
|
27
|
+
* @param apiClient - The API client to check/update tokens for
|
|
28
|
+
* @param loginDevice - Function to perform device login (to avoid circular dependency)
|
|
29
|
+
* @returns true if re-login was successful, false otherwise
|
|
30
|
+
*/
|
|
31
|
+
ensureValidToken(apiClient: ApiClient, loginDevice?: (deviceId: string, password: string) => Promise<any>): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Get current access token
|
|
34
|
+
*/
|
|
35
|
+
getAccessToken(): string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Get current ID token
|
|
38
|
+
*/
|
|
39
|
+
getIdToken(): string | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Get current refresh token
|
|
42
|
+
*/
|
|
43
|
+
getRefreshToken(): string | undefined;
|
|
44
|
+
}
|
|
45
|
+
export declare class TokenManagerImpl implements TokenManager {
|
|
46
|
+
private configManager;
|
|
47
|
+
private logger;
|
|
48
|
+
constructor(configManager: ConfigManager, logger: Logger);
|
|
49
|
+
restoreTokensFromConfig(apiClient: ApiClient): void;
|
|
50
|
+
saveTokensToConfig(apiClient: ApiClient): void;
|
|
51
|
+
ensureValidToken(apiClient: ApiClient, loginDevice?: (deviceId: string, password: string) => Promise<any>): Promise<boolean>;
|
|
52
|
+
getAccessToken(): string | undefined;
|
|
53
|
+
getIdToken(): string | undefined;
|
|
54
|
+
getRefreshToken(): string | undefined;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=TokenManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../../src/services/token/TokenManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAE/C;;;;;;;OAOG;IACH,gBAAgB,CACd,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GACjE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IAErC;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IAEjC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,qBAAa,gBAAiB,YAAW,YAAY;IAEjD,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;gBADN,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAGxB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAoBnD,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAkBxC,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GACjE,OAAO,CAAC,OAAO,CAAC;IA8BnB,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,eAAe,IAAI,MAAM,GAAG,SAAS;CAGtC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Token Manager Service
|
|
4
|
+
*
|
|
5
|
+
* Centralized token management for the CLI application.
|
|
6
|
+
* Handles token restoration, refresh, and automatic re-login.
|
|
7
|
+
*
|
|
8
|
+
* This service eliminates the duplicate attemptAutoRelogin() implementations
|
|
9
|
+
* that were scattered across AuthService, ApplicationService, GatewayService,
|
|
10
|
+
* and EdgibleService (79 total occurrences).
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TokenManagerImpl = void 0;
|
|
14
|
+
class TokenManagerImpl {
|
|
15
|
+
constructor(configManager, logger) {
|
|
16
|
+
this.configManager = configManager;
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
}
|
|
19
|
+
restoreTokensFromConfig(apiClient) {
|
|
20
|
+
const config = this.configManager.getConfig();
|
|
21
|
+
if (config.accessToken) {
|
|
22
|
+
apiClient.setAccessToken(config.accessToken);
|
|
23
|
+
}
|
|
24
|
+
if (config.idToken) {
|
|
25
|
+
apiClient.setIdToken(config.idToken);
|
|
26
|
+
}
|
|
27
|
+
if (config.refreshToken) {
|
|
28
|
+
apiClient.setRefreshToken(config.refreshToken);
|
|
29
|
+
}
|
|
30
|
+
this.logger.debug('Tokens restored from config', {
|
|
31
|
+
hasAccessToken: !!config.accessToken,
|
|
32
|
+
hasIdToken: !!config.idToken,
|
|
33
|
+
hasRefreshToken: !!config.refreshToken,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
saveTokensToConfig(apiClient) {
|
|
37
|
+
const accessToken = apiClient.getAccessToken();
|
|
38
|
+
const idToken = apiClient.getIdToken();
|
|
39
|
+
const refreshToken = apiClient.getRefreshToken();
|
|
40
|
+
this.logger.debug('Saving tokens to config', {
|
|
41
|
+
hasAccessToken: !!accessToken,
|
|
42
|
+
hasIdToken: !!idToken,
|
|
43
|
+
hasRefreshToken: !!refreshToken,
|
|
44
|
+
});
|
|
45
|
+
this.configManager.updateConfig({
|
|
46
|
+
accessToken,
|
|
47
|
+
idToken,
|
|
48
|
+
refreshToken,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
async ensureValidToken(apiClient, loginDevice) {
|
|
52
|
+
const config = this.configManager.getConfig();
|
|
53
|
+
const hasTokens = !!(config.idToken || config.accessToken);
|
|
54
|
+
// If we have tokens, we're good
|
|
55
|
+
if (hasTokens) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
// If no tokens but we have device credentials, attempt automatic re-login
|
|
59
|
+
if (config.deviceId && config.devicePassword && loginDevice) {
|
|
60
|
+
this.logger.debug('No tokens available, attempting automatic device re-login');
|
|
61
|
+
try {
|
|
62
|
+
await loginDevice(config.deviceId, config.devicePassword);
|
|
63
|
+
this.logger.debug('Automatic re-login successful');
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
this.logger.warn('Automatic re-login failed', error instanceof Error ? error.message : String(error));
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// No tokens and can't auto-relogin
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
getAccessToken() {
|
|
75
|
+
return this.configManager.getConfig().accessToken;
|
|
76
|
+
}
|
|
77
|
+
getIdToken() {
|
|
78
|
+
return this.configManager.getConfig().idToken;
|
|
79
|
+
}
|
|
80
|
+
getRefreshToken() {
|
|
81
|
+
return this.configManager.getConfig().refreshToken;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.TokenManagerImpl = TokenManagerImpl;
|
|
85
|
+
//# sourceMappingURL=TokenManager.js.map
|