@edgible-team/cli 1.2.6 → 1.2.9

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 (228) hide show
  1. package/dist/commands/agent/agent-handlers.d.ts +10 -10
  2. package/dist/commands/agent/agent-handlers.d.ts.map +1 -1
  3. package/dist/commands/agent/agent-handlers.js +29 -29
  4. package/dist/commands/agent/install.d.ts +11 -0
  5. package/dist/commands/agent/install.d.ts.map +1 -0
  6. package/dist/commands/agent/install.js +399 -0
  7. package/dist/commands/agent/logs.d.ts +12 -0
  8. package/dist/commands/agent/logs.d.ts.map +1 -0
  9. package/dist/commands/agent/logs.js +77 -0
  10. package/dist/commands/agent/restart.d.ts +4 -0
  11. package/dist/commands/agent/restart.d.ts.map +1 -0
  12. package/dist/commands/agent/restart.js +33 -0
  13. package/dist/commands/agent/set-log-level.d.ts +8 -0
  14. package/dist/commands/agent/set-log-level.d.ts.map +1 -0
  15. package/dist/commands/agent/set-log-level.js +133 -0
  16. package/dist/commands/agent/setup.d.ts +9 -0
  17. package/dist/commands/agent/setup.d.ts.map +1 -0
  18. package/dist/commands/agent/setup.js +149 -0
  19. package/dist/commands/agent/start.d.ts +12 -0
  20. package/dist/commands/agent/start.d.ts.map +1 -0
  21. package/dist/commands/agent/start.js +308 -0
  22. package/dist/commands/agent/status.d.ts +7 -0
  23. package/dist/commands/agent/status.d.ts.map +1 -0
  24. package/dist/commands/agent/status.js +68 -0
  25. package/dist/commands/agent/stop.d.ts +4 -0
  26. package/dist/commands/agent/stop.d.ts.map +1 -0
  27. package/dist/commands/agent/stop.js +33 -0
  28. package/dist/commands/agent/uninstall.d.ts +7 -0
  29. package/dist/commands/agent/uninstall.d.ts.map +1 -0
  30. package/dist/commands/agent/uninstall.js +168 -0
  31. package/dist/commands/agent.d.ts.map +1 -1
  32. package/dist/commands/agent.js +21 -63
  33. package/dist/commands/ai/helpers.d.ts +139 -0
  34. package/dist/commands/ai/helpers.d.ts.map +1 -0
  35. package/dist/commands/ai/helpers.js +1470 -0
  36. package/dist/commands/ai/serve.d.ts +6 -0
  37. package/dist/commands/ai/serve.d.ts.map +1 -0
  38. package/dist/commands/ai/serve.js +124 -0
  39. package/dist/commands/ai/setup.d.ts +14 -0
  40. package/dist/commands/ai/setup.d.ts.map +1 -0
  41. package/dist/commands/ai/setup.js +86 -0
  42. package/dist/commands/ai/status.d.ts +2 -0
  43. package/dist/commands/ai/status.d.ts.map +1 -0
  44. package/dist/commands/ai/status.js +160 -0
  45. package/dist/commands/ai/stop.d.ts +2 -0
  46. package/dist/commands/ai/stop.d.ts.map +1 -0
  47. package/dist/commands/ai/stop.js +21 -0
  48. package/dist/commands/ai/teardown.d.ts +5 -0
  49. package/dist/commands/ai/teardown.d.ts.map +1 -0
  50. package/dist/commands/ai/teardown.js +79 -0
  51. package/dist/commands/ai/test.d.ts +4 -0
  52. package/dist/commands/ai/test.d.ts.map +1 -0
  53. package/dist/commands/ai/test.js +65 -0
  54. package/dist/commands/ai.d.ts.map +1 -1
  55. package/dist/commands/ai.js +16 -1940
  56. package/dist/commands/application/api-keys/create.d.ts +6 -0
  57. package/dist/commands/application/api-keys/create.d.ts.map +1 -0
  58. package/dist/commands/application/api-keys/create.js +53 -0
  59. package/dist/commands/application/api-keys/delete.d.ts +6 -0
  60. package/dist/commands/application/api-keys/delete.d.ts.map +1 -0
  61. package/dist/commands/application/api-keys/delete.js +64 -0
  62. package/dist/commands/application/api-keys/list.d.ts +5 -0
  63. package/dist/commands/application/api-keys/list.d.ts.map +1 -0
  64. package/dist/commands/application/api-keys/list.js +49 -0
  65. package/dist/commands/application/api-keys.d.ts +3 -0
  66. package/dist/commands/application/api-keys.d.ts.map +1 -0
  67. package/dist/commands/application/api-keys.js +227 -0
  68. package/dist/commands/application/create-compose.d.ts +3 -0
  69. package/dist/commands/application/create-compose.d.ts.map +1 -0
  70. package/dist/commands/application/create-compose.js +381 -0
  71. package/dist/commands/application/create-docker-compose.d.ts +10 -0
  72. package/dist/commands/application/create-docker-compose.d.ts.map +1 -0
  73. package/dist/commands/application/create-docker-compose.js +334 -0
  74. package/dist/commands/application/create-existing.d.ts +14 -0
  75. package/dist/commands/application/create-existing.d.ts.map +1 -0
  76. package/dist/commands/application/create-existing.js +359 -0
  77. package/dist/commands/application/create-interactive.d.ts +3 -0
  78. package/dist/commands/application/create-interactive.d.ts.map +1 -0
  79. package/dist/commands/application/create-interactive.js +326 -0
  80. package/dist/commands/application/create-managed-process.d.ts +15 -0
  81. package/dist/commands/application/create-managed-process.d.ts.map +1 -0
  82. package/dist/commands/application/create-managed-process.js +371 -0
  83. package/dist/commands/application/create-stubs.d.ts +4 -0
  84. package/dist/commands/application/create-stubs.d.ts.map +1 -0
  85. package/dist/commands/application/create-stubs.js +19 -0
  86. package/dist/commands/application/create-workload.d.ts +5 -0
  87. package/dist/commands/application/create-workload.d.ts.map +1 -0
  88. package/dist/commands/application/create-workload.js +48 -0
  89. package/dist/commands/application/delete.d.ts +6 -0
  90. package/dist/commands/application/delete.d.ts.map +1 -0
  91. package/dist/commands/application/delete.js +60 -0
  92. package/dist/commands/application/get.d.ts +5 -0
  93. package/dist/commands/application/get.d.ts.map +1 -0
  94. package/dist/commands/application/get.js +40 -0
  95. package/dist/commands/application/list.d.ts +4 -0
  96. package/dist/commands/application/list.d.ts.map +1 -0
  97. package/dist/commands/application/list.js +41 -0
  98. package/dist/commands/application/short-codes/create.d.ts +7 -0
  99. package/dist/commands/application/short-codes/create.d.ts.map +1 -0
  100. package/dist/commands/application/short-codes/create.js +54 -0
  101. package/dist/commands/application/short-codes/delete.d.ts +6 -0
  102. package/dist/commands/application/short-codes/delete.d.ts.map +1 -0
  103. package/dist/commands/application/short-codes/delete.js +64 -0
  104. package/dist/commands/application/short-codes/list.d.ts +5 -0
  105. package/dist/commands/application/short-codes/list.d.ts.map +1 -0
  106. package/dist/commands/application/short-codes/list.js +47 -0
  107. package/dist/commands/application/short-codes/toggle.d.ts +5 -0
  108. package/dist/commands/application/short-codes/toggle.d.ts.map +1 -0
  109. package/dist/commands/application/short-codes/toggle.js +56 -0
  110. package/dist/commands/application/short-codes.d.ts +3 -0
  111. package/dist/commands/application/short-codes.d.ts.map +1 -0
  112. package/dist/commands/application/short-codes.js +226 -0
  113. package/dist/commands/application/toggle.d.ts +2 -0
  114. package/dist/commands/application/toggle.d.ts.map +1 -0
  115. package/dist/commands/application/toggle.js +78 -0
  116. package/dist/commands/application/update.d.ts +4 -0
  117. package/dist/commands/application/update.d.ts.map +1 -0
  118. package/dist/commands/application/update.js +11 -0
  119. package/dist/commands/application.d.ts.map +1 -1
  120. package/dist/commands/application.js +32 -1630
  121. package/dist/commands/auth.d.ts.map +1 -1
  122. package/dist/commands/auth.js +31 -49
  123. package/dist/commands/base/command-wrapper.d.ts +0 -8
  124. package/dist/commands/base/command-wrapper.d.ts.map +1 -1
  125. package/dist/commands/base/command-wrapper.js +13 -30
  126. package/dist/commands/config.d.ts.map +1 -1
  127. package/dist/commands/config.js +15 -32
  128. package/dist/commands/connectivity.d.ts.map +1 -1
  129. package/dist/commands/connectivity.js +6 -11
  130. package/dist/commands/debug.d.ts.map +1 -1
  131. package/dist/commands/debug.js +187 -46
  132. package/dist/commands/discover.d.ts.map +1 -1
  133. package/dist/commands/discover.js +4 -17
  134. package/dist/commands/gateway.d.ts.map +1 -1
  135. package/dist/commands/gateway.js +37 -77
  136. package/dist/commands/managedGateway/create.d.ts +6 -0
  137. package/dist/commands/managedGateway/create.d.ts.map +1 -0
  138. package/dist/commands/managedGateway/create.js +50 -0
  139. package/dist/commands/managedGateway/delete.d.ts +5 -0
  140. package/dist/commands/managedGateway/delete.d.ts.map +1 -0
  141. package/dist/commands/managedGateway/delete.js +57 -0
  142. package/dist/commands/managedGateway/get.d.ts +4 -0
  143. package/dist/commands/managedGateway/get.d.ts.map +1 -0
  144. package/dist/commands/managedGateway/get.js +71 -0
  145. package/dist/commands/managedGateway/haproxy-stats.d.ts +6 -0
  146. package/dist/commands/managedGateway/haproxy-stats.d.ts.map +1 -0
  147. package/dist/commands/managedGateway/haproxy-stats.js +131 -0
  148. package/dist/commands/managedGateway/list.d.ts +4 -0
  149. package/dist/commands/managedGateway/list.d.ts.map +1 -0
  150. package/dist/commands/managedGateway/list.js +50 -0
  151. package/dist/commands/managedGateway/logs.d.ts +10 -0
  152. package/dist/commands/managedGateway/logs.d.ts.map +1 -0
  153. package/dist/commands/managedGateway/logs.js +100 -0
  154. package/dist/commands/managedGateway/reboot.d.ts +5 -0
  155. package/dist/commands/managedGateway/reboot.d.ts.map +1 -0
  156. package/dist/commands/managedGateway/reboot.js +95 -0
  157. package/dist/commands/managedGateway/resync.d.ts +10 -0
  158. package/dist/commands/managedGateway/resync.d.ts.map +1 -0
  159. package/dist/commands/managedGateway/resync.js +69 -0
  160. package/dist/commands/managedGateway/ssh.d.ts +4 -0
  161. package/dist/commands/managedGateway/ssh.d.ts.map +1 -0
  162. package/dist/commands/managedGateway/ssh.js +130 -0
  163. package/dist/commands/managedGateway/wipe-logs.d.ts +4 -0
  164. package/dist/commands/managedGateway/wipe-logs.d.ts.map +1 -0
  165. package/dist/commands/managedGateway/wipe-logs.js +67 -0
  166. package/dist/commands/managedGateway/wireguard.d.ts +4 -0
  167. package/dist/commands/managedGateway/wireguard.d.ts.map +1 -0
  168. package/dist/commands/managedGateway/wireguard.js +68 -0
  169. package/dist/commands/managedGateway.d.ts.map +1 -1
  170. package/dist/commands/managedGateway.js +61 -117
  171. package/dist/commands/utils/application-prompt.d.ts +23 -0
  172. package/dist/commands/utils/application-prompt.d.ts.map +1 -0
  173. package/dist/commands/utils/application-prompt.js +79 -0
  174. package/dist/commands/utils/config-validator.d.ts +5 -5
  175. package/dist/commands/utils/config-validator.d.ts.map +1 -1
  176. package/dist/commands/utils/config-validator.js +8 -8
  177. package/dist/commands/utils/output-formatter.d.ts +1 -0
  178. package/dist/commands/utils/output-formatter.d.ts.map +1 -1
  179. package/dist/commands/utils/output-formatter.js +1 -1
  180. package/dist/index.js +0 -3
  181. package/dist/services/agentDeployment/AgentDeploymentService.d.ts +35 -0
  182. package/dist/services/agentDeployment/AgentDeploymentService.d.ts.map +1 -0
  183. package/dist/services/agentDeployment/AgentDeploymentService.js +35 -0
  184. package/dist/services/application/ApplicationService.d.ts +5 -4
  185. package/dist/services/application/ApplicationService.d.ts.map +1 -1
  186. package/dist/services/application/ApplicationService.js +22 -35
  187. package/dist/services/auth/AuthService.d.ts +5 -5
  188. package/dist/services/auth/AuthService.d.ts.map +1 -1
  189. package/dist/services/auth/AuthService.js +11 -59
  190. package/dist/services/diagnostics/DiagnosticsService.d.ts +89 -0
  191. package/dist/services/diagnostics/DiagnosticsService.d.ts.map +1 -0
  192. package/dist/services/diagnostics/DiagnosticsService.js +37 -0
  193. package/dist/services/edgible.d.ts +6 -4
  194. package/dist/services/edgible.d.ts.map +1 -1
  195. package/dist/services/edgible.js +36 -86
  196. package/dist/services/gateway/GatewayService.d.ts +5 -6
  197. package/dist/services/gateway/GatewayService.d.ts.map +1 -1
  198. package/dist/services/gateway/GatewayService.js +22 -36
  199. package/dist/services/instances.d.ts +34 -0
  200. package/dist/services/instances.d.ts.map +1 -0
  201. package/dist/services/instances.js +64 -0
  202. package/dist/services/managedGateway/ManagedGatewayService.d.ts +75 -0
  203. package/dist/services/managedGateway/ManagedGatewayService.d.ts.map +1 -0
  204. package/dist/services/managedGateway/ManagedGatewayService.js +44 -0
  205. package/dist/services/token/TokenManager.d.ts +56 -0
  206. package/dist/services/token/TokenManager.d.ts.map +1 -0
  207. package/dist/services/token/TokenManager.js +85 -0
  208. package/dist/types/validation/schemas.d.ts +22 -22
  209. package/dist/validation/schemas.d.ts +6 -6
  210. package/dist/validation/validator.d.ts +0 -4
  211. package/dist/validation/validator.d.ts.map +1 -1
  212. package/dist/validation/validator.js +0 -9
  213. package/package.json +1 -1
  214. package/dist/commands/base/BaseCommand.d.ts +0 -53
  215. package/dist/commands/base/BaseCommand.d.ts.map +0 -1
  216. package/dist/commands/base/BaseCommand.js +0 -93
  217. package/dist/commands/base/CommandHandler.d.ts +0 -28
  218. package/dist/commands/base/CommandHandler.d.ts.map +0 -1
  219. package/dist/commands/base/CommandHandler.js +0 -7
  220. package/dist/commands/base/middleware.d.ts +0 -34
  221. package/dist/commands/base/middleware.d.ts.map +0 -1
  222. package/dist/commands/base/middleware.js +0 -77
  223. package/dist/utils/PathMigration.d.ts +0 -45
  224. package/dist/utils/PathMigration.d.ts.map +0 -1
  225. package/dist/utils/PathMigration.js +0 -219
  226. package/dist/utils/progress.d.ts +0 -74
  227. package/dist/utils/progress.d.ts.map +0 -1
  228. package/dist/utils/progress.js +0 -167
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * Shared application selection utilities
4
+ * Eliminates duplication across commands
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.promptApplicationSelection = promptApplicationSelection;
11
+ exports.getApplicationId = getApplicationId;
12
+ exports.validateApplicationExists = validateApplicationExists;
13
+ const inquirer_1 = __importDefault(require("inquirer"));
14
+ const chalk_1 = __importDefault(require("chalk"));
15
+ /**
16
+ * Prompt user to select an application from available applications
17
+ */
18
+ async function promptApplicationSelection(applicationService, options = {}) {
19
+ const { allowNone = false, message = 'Select application:', required = true } = options;
20
+ try {
21
+ const applications = await applicationService.getApplications();
22
+ if (applications.length === 0) {
23
+ if (allowNone) {
24
+ return null;
25
+ }
26
+ console.log(chalk_1.default.yellow('⚠ No applications configured'));
27
+ console.log(chalk_1.default.gray('Use "edgible application create" to create an application'));
28
+ if (required) {
29
+ throw new Error('No applications available');
30
+ }
31
+ return null;
32
+ }
33
+ const applicationChoices = applications.map((app) => ({
34
+ name: `${app.name} (${app.id})${app.description ? ` - ${app.description}` : ''}`,
35
+ value: app.id,
36
+ }));
37
+ if (allowNone) {
38
+ applicationChoices.push({
39
+ name: 'None',
40
+ value: '',
41
+ });
42
+ }
43
+ const answer = await inquirer_1.default.prompt([
44
+ {
45
+ type: 'list',
46
+ name: 'applicationId',
47
+ message,
48
+ choices: applicationChoices,
49
+ },
50
+ ]);
51
+ return answer.applicationId === '' ? null : answer.applicationId;
52
+ }
53
+ catch (error) {
54
+ console.error(chalk_1.default.red('Error listing applications:'), error instanceof Error ? error.message : 'Unknown error');
55
+ throw error;
56
+ }
57
+ }
58
+ /**
59
+ * Get application ID, or prompt if not provided
60
+ */
61
+ async function getApplicationId(applicationService, providedId, options = {}) {
62
+ if (providedId) {
63
+ return providedId;
64
+ }
65
+ return await promptApplicationSelection(applicationService, options);
66
+ }
67
+ /**
68
+ * Validate application exists
69
+ */
70
+ async function validateApplicationExists(applicationService, applicationId) {
71
+ try {
72
+ await applicationService.getApplication(applicationId);
73
+ return true;
74
+ }
75
+ catch {
76
+ return false;
77
+ }
78
+ }
79
+ //# sourceMappingURL=application-prompt.js.map
@@ -2,7 +2,7 @@
2
2
  * Configuration validation utilities
3
3
  * Centralizes config validation logic
4
4
  */
5
- import { ConfigRepository } from '../../repositories/config-repository';
5
+ import { ConfigManager } from '../../state/config';
6
6
  export interface ValidationOptions {
7
7
  requireAuth?: boolean;
8
8
  requireOrganization?: boolean;
@@ -13,17 +13,17 @@ export interface ValidationOptions {
13
13
  /**
14
14
  * Validate configuration based on requirements
15
15
  */
16
- export declare function validateConfig(configRepository: ConfigRepository, options?: ValidationOptions): void;
16
+ export declare function validateConfig(configManager: ConfigManager, options?: ValidationOptions): void;
17
17
  /**
18
18
  * Get organization ID or throw error
19
19
  */
20
- export declare function requireOrganizationId(configRepository: ConfigRepository): string;
20
+ export declare function requireOrganizationId(configManager: ConfigManager): string;
21
21
  /**
22
22
  * Get device ID or throw error
23
23
  */
24
- export declare function requireDeviceId(configRepository: ConfigRepository): string;
24
+ export declare function requireDeviceId(configManager: ConfigManager): string;
25
25
  /**
26
26
  * Get email or throw error
27
27
  */
28
- export declare function requireEmail(configRepository: ConfigRepository): string;
28
+ export declare function requireEmail(configManager: ConfigManager): string;
29
29
  //# sourceMappingURL=config-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/config-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CA2CN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,CAMhF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,CAM1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,CAMvE"}
1
+ {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/config-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CA2CN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAM1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAMjE"}
@@ -12,9 +12,9 @@ const errors_1 = require("../../utils/errors");
12
12
  /**
13
13
  * Validate configuration based on requirements
14
14
  */
15
- function validateConfig(configRepository, options = {}) {
15
+ function validateConfig(configManager, options = {}) {
16
16
  const { requireAuth = false, requireOrganization = false, requireDeviceId = false, requireEmail = false, requireAwsProfile = false, } = options;
17
- const config = configRepository.getConfig();
17
+ const config = configManager.getConfig();
18
18
  if (requireAuth) {
19
19
  const hasTokens = !!(config.accessToken || config.idToken);
20
20
  const hasDeviceCreds = !!(config.deviceId && config.devicePassword);
@@ -46,8 +46,8 @@ function validateConfig(configRepository, options = {}) {
46
46
  /**
47
47
  * Get organization ID or throw error
48
48
  */
49
- function requireOrganizationId(configRepository) {
50
- const config = configRepository.getConfig();
49
+ function requireOrganizationId(configManager) {
50
+ const config = configManager.getConfig();
51
51
  if (!config.organizationId) {
52
52
  throw new errors_1.ConfigError('No organization ID found. Please login first.');
53
53
  }
@@ -56,8 +56,8 @@ function requireOrganizationId(configRepository) {
56
56
  /**
57
57
  * Get device ID or throw error
58
58
  */
59
- function requireDeviceId(configRepository) {
60
- const config = configRepository.getConfig();
59
+ function requireDeviceId(configManager) {
60
+ const config = configManager.getConfig();
61
61
  if (!config.deviceId) {
62
62
  throw new errors_1.ConfigError('No device ID found. Please login first.');
63
63
  }
@@ -66,8 +66,8 @@ function requireDeviceId(configRepository) {
66
66
  /**
67
67
  * Get email or throw error
68
68
  */
69
- function requireEmail(configRepository) {
70
- const config = configRepository.getConfig();
69
+ function requireEmail(configManager) {
70
+ const config = configManager.getConfig();
71
71
  if (!config.email) {
72
72
  throw new errors_1.ConfigError('No email found in configuration.');
73
73
  }
@@ -19,6 +19,7 @@ export declare function formatApplication(app: {
19
19
  workloadId?: string;
20
20
  createdAt: string;
21
21
  description?: string;
22
+ url?: string;
22
23
  }): string;
23
24
  /**
24
25
  * Format gateway output
@@ -1 +1 @@
1
- {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/output-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAuBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC9C,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/output-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAuBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC9C,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -35,7 +35,7 @@ function formatApplication(app) {
35
35
  if (app.description) {
36
36
  output += chalk_1.default.gray(` Description: ${app.description}\n`);
37
37
  }
38
- output += chalk_1.default.cyan(` URL: ${app.protocol}://${app.servingIp}:${app.port}\n`);
38
+ output += chalk_1.default.cyan(` URL: ${app.url}\n`);
39
39
  return output;
40
40
  }
41
41
  /**
package/dist/index.js CHANGED
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
5
  const errors_1 = require("./utils/errors");
6
6
  const output_1 = require("./utils/output");
7
- const bindings_1 = require("./di/bindings");
8
7
  const application_1 = require("./commands/application");
9
8
  const gateway_1 = require("./commands/gateway");
10
9
  const auth_1 = require("./commands/auth");
@@ -15,8 +14,6 @@ const ai_1 = require("./commands/ai");
15
14
  const agent_1 = require("./commands/agent");
16
15
  const debug_1 = require("./commands/debug");
17
16
  const managedGateway_1 = require("./commands/managedGateway");
18
- // Initialize dependency injection container
19
- (0, bindings_1.initializeContainer)();
20
17
  const program = new commander_1.Command();
21
18
  // Set up the CLI
22
19
  program
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Agent Deployment Service
3
+ *
4
+ * Handles agent configuration generation and deployment logic.
5
+ * This is a focused service extracted from the EdgibleService god object.
6
+ */
7
+ import { EdgibleService } from '../edgible';
8
+ export interface AgentDeploymentService {
9
+ /**
10
+ * Generate agent user data for cloud-init
11
+ */
12
+ generateAgentUserData(deviceId: string): string;
13
+ /**
14
+ * Generate agent configuration code
15
+ */
16
+ generateAgentCode(deviceId: string): string;
17
+ /**
18
+ * Resync agent on a gateway
19
+ */
20
+ resyncGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean): Promise<any>;
21
+ }
22
+ /**
23
+ * Implementation of AgentDeploymentService
24
+ *
25
+ * Currently delegates to EdgibleService for backward compatibility.
26
+ * In Phase 3, we'll extract the actual implementation.
27
+ */
28
+ export declare class AgentDeploymentServiceImpl implements AgentDeploymentService {
29
+ private edgibleService;
30
+ constructor(edgibleService: EdgibleService);
31
+ generateAgentUserData(deviceId: string): string;
32
+ generateAgentCode(deviceId: string): string;
33
+ resyncGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean): Promise<any>;
34
+ }
35
+ //# sourceMappingURL=AgentDeploymentService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentDeploymentService.d.ts","sourceRoot":"","sources":["../../../src/services/agentDeployment/AgentDeploymentService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,sBAAsB;IAC3D,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAElD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAM/C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAMrC,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,GAAG,CAAC;CAGhB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Deployment Service
4
+ *
5
+ * Handles agent configuration generation and deployment logic.
6
+ * This is a focused service extracted from the EdgibleService god object.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AgentDeploymentServiceImpl = void 0;
10
+ /**
11
+ * Implementation of AgentDeploymentService
12
+ *
13
+ * Currently delegates to EdgibleService for backward compatibility.
14
+ * In Phase 3, we'll extract the actual implementation.
15
+ */
16
+ class AgentDeploymentServiceImpl {
17
+ constructor(edgibleService) {
18
+ this.edgibleService = edgibleService;
19
+ }
20
+ generateAgentUserData(deviceId) {
21
+ // Access the private method via type assertion (temporary hack)
22
+ // In Phase 3, we'll properly extract this
23
+ return this.edgibleService.generateAgentUserData(deviceId);
24
+ }
25
+ generateAgentCode(deviceId) {
26
+ // Access the private method via type assertion (temporary hack)
27
+ // In Phase 3, we'll properly extract this
28
+ return this.edgibleService.generateAgentCode(deviceId);
29
+ }
30
+ async resyncGatewayAgent(gatewayId, agentVersion, installFromLocal) {
31
+ return this.edgibleService.resyncGatewayAgent(gatewayId, agentVersion, installFromLocal);
32
+ }
33
+ }
34
+ exports.AgentDeploymentServiceImpl = AgentDeploymentServiceImpl;
35
+ //# sourceMappingURL=AgentDeploymentService.js.map
@@ -3,8 +3,9 @@
3
3
  * Handles application management operations
4
4
  */
5
5
  import { Application, Workload } from '../../detection/WorkloadDetector';
6
- import { ConfigRepository } from '../../repositories/config-repository';
6
+ import { ConfigManager } from '../../state/config';
7
7
  import { AuthService } from '../auth/AuthService';
8
+ import { TokenManager } from '../token/TokenManager';
8
9
  import { Logger } from '../../utils/logger';
9
10
  export interface ApplicationService {
10
11
  setupApplication(workload: Workload, port: number, protocol: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
@@ -36,13 +37,13 @@ export interface ApplicationService {
36
37
  }
37
38
  export declare class ApplicationServiceImpl implements ApplicationService {
38
39
  private apiClient;
39
- private configRepository;
40
+ private configManager;
40
41
  private authService;
42
+ private tokenManager;
41
43
  private logger;
42
44
  private baseUrl;
43
45
  private applications;
44
- constructor(baseUrl: string, configRepository: ConfigRepository, authService: AuthService, logger: Logger);
45
- private restoreTokensFromApiClient;
46
+ constructor(baseUrl: string, configManager: ConfigManager, authService: AuthService, tokenManager: TokenManager, logger: Logger);
46
47
  private generateServingIp;
47
48
  setupApplication(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
48
49
  getApplications(): Promise<Application[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CACd,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,iCAAiC,CAAC,MAAM,EAAE;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QACnG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;QAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpF,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnF,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAqB;gBAGvC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAWhB,OAAO,CAAC,iBAAiB;IAUnB,gBAAgB,CACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAc,EACnD,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IAmEjB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA8HzC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsChD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB/C,iCAAiC,CAAC,MAAM,EAAE;QAC9C,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QACnG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;QAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDpB;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAYxD;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYzF;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAY3D;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAY9G;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAYxF;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU5E"}
@@ -7,28 +7,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.ApplicationServiceImpl = void 0;
8
8
  const client_1 = require("../../client");
9
9
  class ApplicationServiceImpl {
10
- constructor(baseUrl, configRepository, authService, logger) {
10
+ constructor(baseUrl, configManager, authService, tokenManager, logger) {
11
11
  this.applications = [];
12
12
  this.baseUrl = baseUrl;
13
- this.configRepository = configRepository;
13
+ this.configManager = configManager;
14
14
  this.authService = authService;
15
+ this.tokenManager = tokenManager;
15
16
  this.logger = logger;
16
17
  this.apiClient = (0, client_1.createApiClient)(baseUrl);
17
- this.restoreTokensFromApiClient();
18
- }
19
- restoreTokensFromApiClient() {
20
- const accessToken = this.authService.getAccessToken();
21
- const idToken = this.authService.getIdToken();
22
- const refreshToken = this.authService.getRefreshToken();
23
- if (accessToken) {
24
- this.apiClient.setAccessToken(accessToken);
25
- }
26
- if (idToken) {
27
- this.apiClient.setIdToken(idToken);
28
- }
29
- if (refreshToken) {
30
- this.apiClient.setRefreshToken(refreshToken);
31
- }
18
+ this.tokenManager.restoreTokensFromConfig(this.apiClient);
32
19
  }
33
20
  generateServingIp() {
34
21
  // Generate a mock IP in the 10.x.x.x range
@@ -41,11 +28,11 @@ class ApplicationServiceImpl {
41
28
  async setupApplication(workload, port, protocol = 'http', description, gatewayId) {
42
29
  try {
43
30
  // Attempt auto re-login if tokens are missing but credentials are available
44
- await this.authService.attemptAutoRelogin();
45
- this.restoreTokensFromApiClient();
31
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
32
+ this.tokenManager.restoreTokensFromConfig(this.apiClient);
46
33
  this.logger.info(`Setting up application for workload: ${workload.name}`);
47
34
  // Get organization ID from config
48
- const config = this.configRepository.getConfig();
35
+ const config = this.configManager.getConfig();
49
36
  if (!config.organizationId) {
50
37
  throw new Error('No organization ID found. Please login first.');
51
38
  }
@@ -97,10 +84,10 @@ class ApplicationServiceImpl {
97
84
  async getApplications() {
98
85
  try {
99
86
  // Attempt auto re-login if tokens are missing but credentials are available
100
- await this.authService.attemptAutoRelogin();
101
- this.restoreTokensFromApiClient();
87
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
88
+ this.tokenManager.restoreTokensFromConfig(this.apiClient);
102
89
  this.logger.debug('Getting applications');
103
- const config = this.configRepository.getConfig();
90
+ const config = this.configManager.getConfig();
104
91
  let organizationId;
105
92
  // Check if we have an organization ID in the config (device login)
106
93
  if (config.organizationId) {
@@ -251,8 +238,8 @@ class ApplicationServiceImpl {
251
238
  async deleteApplication(id) {
252
239
  try {
253
240
  // Attempt auto re-login if tokens are missing but credentials are available
254
- await this.authService.attemptAutoRelogin();
255
- this.restoreTokensFromApiClient();
241
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
242
+ this.tokenManager.restoreTokensFromConfig(this.apiClient);
256
243
  this.logger.info(`Deleting application: ${id}`);
257
244
  await this.apiClient.deleteApplication(id);
258
245
  this.logger.info('Application deleted successfully', { applicationId: id });
@@ -266,9 +253,9 @@ class ApplicationServiceImpl {
266
253
  async createApplicationProgrammatically(params) {
267
254
  try {
268
255
  // Attempt auto re-login if tokens are missing but credentials are available
269
- await this.authService.attemptAutoRelogin();
270
- this.restoreTokensFromApiClient();
271
- const config = this.configRepository.getConfig();
256
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
257
+ this.tokenManager.restoreTokensFromConfig(this.apiClient);
258
+ const config = this.configManager.getConfig();
272
259
  if (!config.organizationId) {
273
260
  throw new Error('Not logged in. Please run "edgible login" first.');
274
261
  }
@@ -317,7 +304,7 @@ class ApplicationServiceImpl {
317
304
  */
318
305
  async listApiKeys(applicationId) {
319
306
  try {
320
- await this.authService.attemptAutoRelogin();
307
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
321
308
  const response = await this.apiClient.listApplicationApiKeys(applicationId);
322
309
  return response.keys || [];
323
310
  }
@@ -331,7 +318,7 @@ class ApplicationServiceImpl {
331
318
  */
332
319
  async createApiKey(applicationId, name, expiresAt) {
333
320
  try {
334
- await this.authService.attemptAutoRelogin();
321
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
335
322
  const response = await this.apiClient.createApplicationApiKey(applicationId, name, expiresAt);
336
323
  return response;
337
324
  }
@@ -345,7 +332,7 @@ class ApplicationServiceImpl {
345
332
  */
346
333
  async deleteApiKey(applicationId, keyId) {
347
334
  try {
348
- await this.authService.attemptAutoRelogin();
335
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
349
336
  await this.apiClient.deleteApplicationApiKey(applicationId, keyId);
350
337
  }
351
338
  catch (error) {
@@ -358,7 +345,7 @@ class ApplicationServiceImpl {
358
345
  */
359
346
  async listShortCodes(applicationId) {
360
347
  try {
361
- await this.authService.attemptAutoRelogin();
348
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
362
349
  const response = await this.apiClient.listApplicationShortCodes(applicationId);
363
350
  return response.codes || [];
364
351
  }
@@ -372,7 +359,7 @@ class ApplicationServiceImpl {
372
359
  */
373
360
  async createShortCode(applicationId, name, expiresAt, maxUses) {
374
361
  try {
375
- await this.authService.attemptAutoRelogin();
362
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
376
363
  const response = await this.apiClient.createApplicationShortCode(applicationId, name, expiresAt, maxUses);
377
364
  return response;
378
365
  }
@@ -386,7 +373,7 @@ class ApplicationServiceImpl {
386
373
  */
387
374
  async updateShortCode(applicationId, codeId, updates) {
388
375
  try {
389
- await this.authService.attemptAutoRelogin();
376
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
390
377
  const response = await this.apiClient.updateApplicationShortCode(applicationId, codeId, updates);
391
378
  return response;
392
379
  }
@@ -400,7 +387,7 @@ class ApplicationServiceImpl {
400
387
  */
401
388
  async deleteShortCode(applicationId, codeId) {
402
389
  try {
403
- await this.authService.attemptAutoRelogin();
390
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
404
391
  await this.apiClient.deleteApplicationShortCode(applicationId, codeId);
405
392
  }
406
393
  catch (error) {
@@ -4,7 +4,8 @@
4
4
  */
5
5
  import { LoginResponse } from '../../client';
6
6
  import { CreateDeviceWithOrphanedOrganizationResponse, GetUserOrganizationsResponse } from '../../types/ApiResponses';
7
- import { ConfigRepository } from '../../repositories/config-repository';
7
+ import { ConfigManager } from '../../state/config';
8
+ import { TokenManager } from '../token/TokenManager';
8
9
  import { Logger } from '../../utils/logger';
9
10
  export interface AuthService {
10
11
  loginUser(email: string, password: string): Promise<LoginResponse>;
@@ -21,13 +22,12 @@ export interface AuthService {
21
22
  }
22
23
  export declare class AuthServiceImpl implements AuthService {
23
24
  private apiClient;
24
- private configRepository;
25
+ private configManager;
26
+ private tokenManager;
25
27
  private logger;
26
28
  private baseUrl;
27
- constructor(baseUrl: string, configRepository: ConfigRepository, logger: Logger);
28
- private restoreTokensFromConfig;
29
+ constructor(baseUrl: string, configManager: ConfigManager, tokenManager: TokenManager, logger: Logger);
29
30
  attemptAutoRelogin(): Promise<boolean>;
30
- private saveTokensToConfig;
31
31
  loginUser(email: string, password: string): Promise<LoginResponse>;
32
32
  createDeviceWithOrganization(deviceName: string, password: string, userEmail?: string): Promise<CreateDeviceWithOrphanedOrganizationResponse>;
33
33
  checkAccount(email: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"AuthService.d.ts","sourceRoot":"","sources":["../../../src/services/auth/AuthService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA4C,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,4CAA4C,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAEtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,4BAA4B,CAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,4CAA4C,CAAC,CAAC;IACzD,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3E,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;IACtC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAGtB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM;IAShB,OAAO,CAAC,uBAAuB;IAsBzB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB5C,OAAO,CAAC,kBAAkB;IAkBpB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYlE,4BAA4B,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,4CAA4C,CAAC;IA0BlD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYvE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C7E,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1D,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,eAAe,IAAI,MAAM,GAAG,SAAS;IAI/B,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAQjF"}
1
+ {"version":3,"file":"AuthService.d.ts","sourceRoot":"","sources":["../../../src/services/auth/AuthService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA4C,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAE,4CAA4C,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAEtH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,4BAA4B,CAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,4CAA4C,CAAC,CAAC;IACzD,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3E,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,IAAI,MAAM,GAAG,SAAS,CAAC;IACtC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAGtB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAUV,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOtC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYlE,4BAA4B,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,4CAA4C,CAAC;IA0BlD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAYvE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C7E,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1D,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,eAAe,IAAI,MAAM,GAAG,SAAS;IAI/B,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAQjF"}
@@ -8,70 +8,22 @@ exports.AuthServiceImpl = void 0;
8
8
  const client_1 = require("../../client");
9
9
  const passwordValidation_1 = require("../../utils/passwordValidation");
10
10
  class AuthServiceImpl {
11
- constructor(baseUrl, configRepository, logger) {
11
+ constructor(baseUrl, configManager, tokenManager, logger) {
12
12
  this.baseUrl = baseUrl;
13
- this.configRepository = configRepository;
13
+ this.configManager = configManager;
14
+ this.tokenManager = tokenManager;
14
15
  this.logger = logger;
15
16
  this.apiClient = (0, client_1.createApiClient)(baseUrl);
16
- this.restoreTokensFromConfig();
17
- }
18
- restoreTokensFromConfig() {
19
- const config = this.configRepository.getConfig();
20
- if (config.accessToken) {
21
- this.apiClient.setAccessToken(config.accessToken);
22
- }
23
- if (config.idToken) {
24
- this.apiClient.setIdToken(config.idToken);
25
- }
26
- if (config.refreshToken) {
27
- this.apiClient.setRefreshToken(config.refreshToken);
28
- }
29
- //
30
- // this.logger.debug('Token restoration', {
31
- // hasAccessToken: !!config.accessToken,
32
- // hasIdToken: !!config.idToken,
33
- // hasRefreshToken: !!config.refreshToken,
34
- // organizationId: config.organizationId,
35
- // deviceId: config.deviceId,
36
- // });
17
+ this.tokenManager.restoreTokensFromConfig(this.apiClient);
37
18
  }
38
19
  async attemptAutoRelogin() {
39
- const config = this.configRepository.getConfig();
40
- // If no tokens but we have device credentials, attempt automatic re-login
41
- if (!config.idToken && !config.accessToken && config.deviceId && config.devicePassword) {
42
- this.logger.debug('No tokens available, attempting automatic device re-login');
43
- try {
44
- await this.loginDevice(config.deviceId, config.devicePassword);
45
- this.logger.debug('Automatic re-login successful');
46
- return true;
47
- }
48
- catch (error) {
49
- this.logger.warn('Automatic re-login failed', error instanceof Error ? error.message : String(error));
50
- return false;
51
- }
52
- }
53
- return false;
54
- }
55
- saveTokensToConfig() {
56
- const accessToken = this.apiClient.getAccessToken();
57
- const idToken = this.apiClient.getIdToken();
58
- const refreshToken = this.apiClient.getRefreshToken();
59
- this.logger.debug('Saving tokens', {
60
- hasAccessToken: !!accessToken,
61
- hasIdToken: !!idToken,
62
- hasRefreshToken: !!refreshToken,
63
- });
64
- this.configRepository.updateConfig({
65
- accessToken,
66
- idToken,
67
- refreshToken,
68
- });
20
+ return this.tokenManager.ensureValidToken(this.apiClient, this.loginDevice.bind(this));
69
21
  }
70
22
  async loginUser(email, password) {
71
23
  try {
72
24
  const loginRequest = { email, password };
73
25
  const response = await this.apiClient.login(loginRequest);
74
- this.saveTokensToConfig();
26
+ this.tokenManager.saveTokensToConfig(this.apiClient);
75
27
  return response;
76
28
  }
77
29
  catch (error) {
@@ -131,7 +83,7 @@ class AuthServiceImpl {
131
83
  try {
132
84
  const loginRequest = { email: deviceId, password };
133
85
  const response = await this.apiClient.login(loginRequest);
134
- this.saveTokensToConfig();
86
+ this.tokenManager.saveTokensToConfig(this.apiClient);
135
87
  return response;
136
88
  }
137
89
  catch (error) {
@@ -184,7 +136,7 @@ class AuthServiceImpl {
184
136
  async refreshToken(refreshToken) {
185
137
  try {
186
138
  const response = await this.apiClient.refreshToken({ refreshToken });
187
- this.saveTokensToConfig();
139
+ this.tokenManager.saveTokensToConfig(this.apiClient);
188
140
  return response;
189
141
  }
190
142
  catch (error) {
@@ -193,13 +145,13 @@ class AuthServiceImpl {
193
145
  }
194
146
  }
195
147
  getAccessToken() {
196
- return this.apiClient.getAccessToken();
148
+ return this.tokenManager.getAccessToken();
197
149
  }
198
150
  getIdToken() {
199
- return this.apiClient.getIdToken();
151
+ return this.tokenManager.getIdToken();
200
152
  }
201
153
  getRefreshToken() {
202
- return this.apiClient.getRefreshToken();
154
+ return this.tokenManager.getRefreshToken();
203
155
  }
204
156
  async getUserOrganizations(email) {
205
157
  try {