@alwaysai/device-agent 0.0.12 → 0.0.14

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 (227) hide show
  1. package/lib/application-control/backup.d.ts.map +1 -1
  2. package/lib/application-control/backup.js +11 -5
  3. package/lib/application-control/backup.js.map +1 -1
  4. package/lib/application-control/config.d.ts +12 -4
  5. package/lib/application-control/config.d.ts.map +1 -1
  6. package/lib/application-control/config.js +59 -16
  7. package/lib/application-control/config.js.map +1 -1
  8. package/lib/application-control/environment-variables.d.ts.map +1 -1
  9. package/lib/application-control/environment-variables.js.map +1 -1
  10. package/lib/application-control/index.d.ts +5 -5
  11. package/lib/application-control/index.d.ts.map +1 -1
  12. package/lib/application-control/index.js +4 -6
  13. package/lib/application-control/index.js.map +1 -1
  14. package/lib/application-control/install.d.ts +1 -1
  15. package/lib/application-control/install.d.ts.map +1 -1
  16. package/lib/application-control/install.js +58 -57
  17. package/lib/application-control/install.js.map +1 -1
  18. package/lib/application-control/models.d.ts +7 -5
  19. package/lib/application-control/models.d.ts.map +1 -1
  20. package/lib/application-control/models.js +78 -57
  21. package/lib/application-control/models.js.map +1 -1
  22. package/lib/application-control/status.d.ts +0 -6
  23. package/lib/application-control/status.d.ts.map +1 -1
  24. package/lib/application-control/status.js +21 -33
  25. package/lib/application-control/status.js.map +1 -1
  26. package/lib/application-control/utils.d.ts +3 -2
  27. package/lib/application-control/utils.d.ts.map +1 -1
  28. package/lib/application-control/utils.js +54 -34
  29. package/lib/application-control/utils.js.map +1 -1
  30. package/lib/cloud-connection/app-install-status.d.ts +16 -0
  31. package/lib/cloud-connection/app-install-status.d.ts.map +1 -0
  32. package/lib/cloud-connection/app-install-status.js +53 -0
  33. package/lib/cloud-connection/app-install-status.js.map +1 -0
  34. package/lib/cloud-connection/bootstrap-provision.d.ts +2 -0
  35. package/lib/cloud-connection/bootstrap-provision.d.ts.map +1 -0
  36. package/lib/cloud-connection/bootstrap-provision.js +34 -0
  37. package/lib/cloud-connection/bootstrap-provision.js.map +1 -0
  38. package/lib/cloud-connection/cmd-status.d.ts +16 -0
  39. package/lib/cloud-connection/cmd-status.d.ts.map +1 -0
  40. package/lib/cloud-connection/cmd-status.js +49 -0
  41. package/lib/cloud-connection/cmd-status.js.map +1 -0
  42. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +21 -34
  43. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  44. package/lib/cloud-connection/device-agent-cloud-connection.js +211 -387
  45. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  46. package/lib/cloud-connection/device-agent.d.ts.map +1 -1
  47. package/lib/cloud-connection/device-agent.js +22 -26
  48. package/lib/cloud-connection/device-agent.js.map +1 -1
  49. package/lib/cloud-connection/live-updates-handler.d.ts +34 -0
  50. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -0
  51. package/lib/cloud-connection/live-updates-handler.js +167 -0
  52. package/lib/cloud-connection/live-updates-handler.js.map +1 -0
  53. package/lib/cloud-connection/messages.d.ts +14 -0
  54. package/lib/cloud-connection/messages.d.ts.map +1 -0
  55. package/lib/cloud-connection/messages.js +38 -0
  56. package/lib/cloud-connection/messages.js.map +1 -0
  57. package/lib/cloud-connection/passthrough-handler.d.ts +11 -0
  58. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -0
  59. package/lib/cloud-connection/passthrough-handler.js +59 -0
  60. package/lib/cloud-connection/passthrough-handler.js.map +1 -0
  61. package/lib/cloud-connection/publisher.d.ts +15 -0
  62. package/lib/cloud-connection/publisher.d.ts.map +1 -0
  63. package/lib/cloud-connection/publisher.js +58 -0
  64. package/lib/cloud-connection/publisher.js.map +1 -0
  65. package/lib/cloud-connection/shadow-handler.d.ts +33 -0
  66. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -0
  67. package/lib/cloud-connection/shadow-handler.js +108 -0
  68. package/lib/cloud-connection/shadow-handler.js.map +1 -0
  69. package/lib/cloud-connection/shadow-handler.test.d.ts +2 -0
  70. package/lib/cloud-connection/shadow-handler.test.d.ts.map +1 -0
  71. package/lib/cloud-connection/shadow-handler.test.js +321 -0
  72. package/lib/cloud-connection/shadow-handler.test.js.map +1 -0
  73. package/lib/cloud-connection/shadow.d.ts +16 -0
  74. package/lib/cloud-connection/shadow.d.ts.map +1 -0
  75. package/lib/cloud-connection/shadow.js +36 -0
  76. package/lib/cloud-connection/shadow.js.map +1 -0
  77. package/lib/device-control/device-control.d.ts.map +1 -1
  78. package/lib/device-control/device-control.js +1 -0
  79. package/lib/device-control/device-control.js.map +1 -1
  80. package/lib/docker/docker-cmd.js +1 -1
  81. package/lib/docker/docker-compose-cmd.d.ts.map +1 -1
  82. package/lib/docker/docker-compose-cmd.js +1 -1
  83. package/lib/docker/docker-compose-cmd.js.map +1 -1
  84. package/lib/endpoints.js +10 -10
  85. package/lib/endpoints.js.map +1 -1
  86. package/lib/environment.d.ts +1 -0
  87. package/lib/environment.d.ts.map +1 -1
  88. package/lib/environment.js +2 -1
  89. package/lib/environment.js.map +1 -1
  90. package/lib/infrastructure/agent-config.d.ts +15 -58
  91. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  92. package/lib/infrastructure/agent-config.js +22 -15
  93. package/lib/infrastructure/agent-config.js.map +1 -1
  94. package/lib/infrastructure/agent-config.test.js +25 -23
  95. package/lib/infrastructure/agent-config.test.js.map +1 -1
  96. package/lib/infrastructure/system-id.d.ts +2 -0
  97. package/lib/infrastructure/system-id.d.ts.map +1 -0
  98. package/lib/infrastructure/system-id.js +21 -0
  99. package/lib/infrastructure/system-id.js.map +1 -0
  100. package/lib/infrastructure/tokens-and-device-cfg.d.ts +4 -0
  101. package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -0
  102. package/lib/infrastructure/tokens-and-device-cfg.js +27 -0
  103. package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -0
  104. package/lib/infrastructure/urls.d.ts.map +1 -1
  105. package/lib/infrastructure/urls.js +3 -3
  106. package/lib/infrastructure/urls.js.map +1 -1
  107. package/lib/local-connection/rabbitmq-connection.d.ts +4 -0
  108. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -0
  109. package/lib/local-connection/rabbitmq-connection.js +58 -0
  110. package/lib/local-connection/rabbitmq-connection.js.map +1 -0
  111. package/lib/root.d.ts.map +1 -1
  112. package/lib/root.js +2 -7
  113. package/lib/root.js.map +1 -1
  114. package/lib/subcommands/app/app.d.ts +2 -1
  115. package/lib/subcommands/app/app.d.ts.map +1 -1
  116. package/lib/subcommands/app/app.js +112 -77
  117. package/lib/subcommands/app/app.js.map +1 -1
  118. package/lib/subcommands/app/index.js +2 -2
  119. package/lib/subcommands/device/clean.d.ts +2 -0
  120. package/lib/subcommands/device/clean.d.ts.map +1 -0
  121. package/lib/subcommands/device/clean.js +29 -0
  122. package/lib/subcommands/device/clean.js.map +1 -0
  123. package/lib/subcommands/device/device.d.ts +1 -1
  124. package/lib/subcommands/device/device.d.ts.map +1 -1
  125. package/lib/subcommands/device/device.js +44 -33
  126. package/lib/subcommands/device/device.js.map +1 -1
  127. package/lib/subcommands/device/index.d.ts.map +1 -1
  128. package/lib/subcommands/device/index.js +2 -1
  129. package/lib/subcommands/device/index.js.map +1 -1
  130. package/lib/subcommands/get-model-package.js +5 -5
  131. package/lib/subcommands/index.d.ts +0 -1
  132. package/lib/subcommands/index.d.ts.map +1 -1
  133. package/lib/subcommands/index.js +1 -1
  134. package/lib/subcommands/login.d.ts +0 -1
  135. package/lib/subcommands/login.d.ts.map +1 -1
  136. package/lib/subcommands/login.js +6 -14
  137. package/lib/subcommands/login.js.map +1 -1
  138. package/lib/util/clean-certs.d.ts +2 -0
  139. package/lib/util/clean-certs.d.ts.map +1 -0
  140. package/lib/util/clean-certs.js +16 -0
  141. package/lib/util/clean-certs.js.map +1 -0
  142. package/lib/util/directories.d.ts +16 -15
  143. package/lib/util/directories.d.ts.map +1 -1
  144. package/lib/util/directories.js +45 -26
  145. package/lib/util/directories.js.map +1 -1
  146. package/lib/util/fetch-with-timeout.d.ts +4 -0
  147. package/lib/util/fetch-with-timeout.d.ts.map +1 -0
  148. package/lib/util/fetch-with-timeout.js +15 -0
  149. package/lib/util/fetch-with-timeout.js.map +1 -0
  150. package/lib/util/get-device-id.d.ts +1 -1
  151. package/lib/util/get-device-id.d.ts.map +1 -1
  152. package/lib/util/get-device-id.js +14 -19
  153. package/lib/util/get-device-id.js.map +1 -1
  154. package/lib/util/http-client.d.ts +1 -1
  155. package/lib/util/http-client.d.ts.map +1 -1
  156. package/lib/util/http-client.js +10 -8
  157. package/lib/util/http-client.js.map +1 -1
  158. package/lib/util/logger.d.ts.map +1 -1
  159. package/lib/util/logger.js +4 -5
  160. package/lib/util/logger.js.map +1 -1
  161. package/lib/util/require-logged-in-and-paid-plan.d.ts +2 -0
  162. package/lib/util/require-logged-in-and-paid-plan.d.ts.map +1 -0
  163. package/lib/util/require-logged-in-and-paid-plan.js +18 -0
  164. package/lib/util/require-logged-in-and-paid-plan.js.map +1 -0
  165. package/lib/util/run-in-dir.d.ts.map +1 -1
  166. package/lib/util/run-in-dir.js +1 -0
  167. package/lib/util/run-in-dir.js.map +1 -1
  168. package/lib/util/timer.d.ts +2 -0
  169. package/lib/util/timer.d.ts.map +1 -0
  170. package/lib/util/timer.js +6 -0
  171. package/lib/util/timer.js.map +1 -0
  172. package/package.json +32 -35
  173. package/readme.md +100 -89
  174. package/src/application-control/backup.ts +11 -6
  175. package/src/application-control/config.ts +75 -13
  176. package/src/application-control/environment-variables.ts +3 -3
  177. package/src/application-control/index.ts +18 -11
  178. package/src/application-control/install.ts +82 -78
  179. package/src/application-control/models.ts +104 -72
  180. package/src/application-control/status.ts +29 -40
  181. package/src/application-control/utils.ts +66 -38
  182. package/src/cloud-connection/app-install-status.ts +62 -0
  183. package/src/cloud-connection/bootstrap-provision.ts +40 -0
  184. package/src/cloud-connection/cmd-status.ts +52 -0
  185. package/src/cloud-connection/device-agent-cloud-connection.ts +302 -526
  186. package/src/cloud-connection/device-agent.ts +31 -38
  187. package/src/cloud-connection/live-updates-handler.ts +226 -0
  188. package/src/cloud-connection/messages.ts +39 -0
  189. package/src/cloud-connection/passthrough-handler.ts +67 -0
  190. package/src/cloud-connection/publisher.ts +86 -0
  191. package/src/cloud-connection/shadow-handler.test.ts +361 -0
  192. package/src/cloud-connection/shadow-handler.ts +175 -0
  193. package/src/cloud-connection/shadow.ts +50 -0
  194. package/src/device-control/device-control.ts +1 -0
  195. package/src/docker/docker-cmd.ts +1 -1
  196. package/src/docker/docker-compose-cmd.ts +5 -2
  197. package/src/endpoints.ts +9 -9
  198. package/src/environment.ts +11 -3
  199. package/src/infrastructure/agent-config.test.ts +33 -29
  200. package/src/infrastructure/agent-config.ts +57 -22
  201. package/src/infrastructure/system-id.ts +18 -0
  202. package/src/infrastructure/tokens-and-device-cfg.ts +34 -0
  203. package/src/infrastructure/urls.ts +4 -2
  204. package/src/local-connection/rabbitmq-connection.ts +53 -0
  205. package/src/root.ts +2 -8
  206. package/src/subcommands/app/app.ts +119 -83
  207. package/src/subcommands/app/index.ts +3 -3
  208. package/src/subcommands/device/clean.ts +26 -0
  209. package/src/subcommands/device/device.ts +67 -54
  210. package/src/subcommands/device/index.ts +2 -1
  211. package/src/subcommands/get-model-package.ts +5 -5
  212. package/src/subcommands/index.ts +1 -1
  213. package/src/subcommands/login.ts +6 -14
  214. package/src/util/clean-certs.ts +12 -0
  215. package/src/util/directories.ts +68 -52
  216. package/src/util/fetch-with-timeout.ts +18 -0
  217. package/src/util/get-device-id.ts +16 -18
  218. package/src/util/http-client.ts +18 -13
  219. package/src/util/logger.ts +6 -6
  220. package/src/util/require-logged-in-and-paid-plan.ts +16 -0
  221. package/src/util/run-in-dir.ts +2 -1
  222. package/src/util/timer.ts +1 -0
  223. package/lib/infrastructure/certificates-and-tokens.d.ts +0 -6
  224. package/lib/infrastructure/certificates-and-tokens.d.ts.map +0 -1
  225. package/lib/infrastructure/certificates-and-tokens.js +0 -43
  226. package/lib/infrastructure/certificates-and-tokens.js.map +0 -1
  227. package/src/infrastructure/certificates-and-tokens.ts +0 -53
@@ -0,0 +1,33 @@
1
+ import { AppConfig } from '@alwaysai/app-configuration-schemas';
2
+ import { Publisher } from './publisher';
3
+ import { AppConfigModels } from './shadow';
4
+ export interface ShadowTopics {
5
+ projects: {
6
+ update: string;
7
+ get: string;
8
+ updateDelta: string;
9
+ getAccepted: string;
10
+ delete: string;
11
+ };
12
+ }
13
+ export declare type AppConfigUpdate = {
14
+ projectId: string;
15
+ newAppCfg: AppConfig;
16
+ updatedModels?: AppConfigModels;
17
+ };
18
+ export declare class ShadowHandler {
19
+ private clientId;
20
+ private publisher;
21
+ readonly shadowPrefix: string;
22
+ readonly shadowTopics: ShadowTopics;
23
+ constructor(clientId: string, publisher: Publisher);
24
+ private handleNamedShadowUpdate;
25
+ handleShadowTopic({ topic, payload }: {
26
+ topic: string;
27
+ payload: any;
28
+ }): Promise<AppConfigUpdate[]>;
29
+ publishAppState(projectId: string): Promise<void>;
30
+ getShadowUpdates(): void;
31
+ deleteProjectShadow(projectId: string): void;
32
+ }
33
+ //# sourceMappingURL=shadow-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,oBAAY,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAY;IAC7B,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,YAAY,EAAE,YAAY,CAAC;gBAE/B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;YAepC,uBAAuB;IA8CxB,iBAAiB,CAAC,EAC7B,KAAK,EACL,OAAO,EACR,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,GAAG,CAAC;KACd,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqCjB,eAAe,CAAC,SAAS,EAAE,MAAM;IAgBvC,gBAAgB;IAShB,mBAAmB,CAAC,SAAS,EAAE,MAAM;CAc7C"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShadowHandler = void 0;
4
+ const app_configuration_schemas_1 = require("@alwaysai/app-configuration-schemas");
5
+ const application_control_1 = require("../application-control");
6
+ const logger_1 = require("../util/logger");
7
+ const shadow_1 = require("./shadow");
8
+ class ShadowHandler {
9
+ constructor(clientId, publisher) {
10
+ this.clientId = clientId;
11
+ this.publisher = publisher;
12
+ this.shadowPrefix = `$aws/things/${this.clientId}/shadow/name/`;
13
+ this.shadowTopics = {
14
+ projects: {
15
+ update: `${this.shadowPrefix}projects/update`,
16
+ get: `${this.shadowPrefix}projects/get`,
17
+ updateDelta: `${this.shadowPrefix}projects/update/delta`,
18
+ getAccepted: `${this.shadowPrefix}projects/get/accepted`,
19
+ delete: `${this.shadowPrefix}projects/delete`
20
+ }
21
+ };
22
+ }
23
+ async handleNamedShadowUpdate({ delta }) {
24
+ const appConfigUpdates = [];
25
+ const deltaKeys = Object.keys(delta);
26
+ for (const projectId of deltaKeys) {
27
+ const projectShadow = delta[projectId];
28
+ if (projectShadow.appConfig) {
29
+ const newAppCfg = JSON.parse(projectShadow.appConfig);
30
+ if (!(0, app_configuration_schemas_1.validateAppConfig)(newAppCfg)) {
31
+ // FIXME: Raise an exception to be handled at higher layer
32
+ logger_1.logger.error(`Received invalid app config for ${projectId}!\n${JSON.stringify(app_configuration_schemas_1.validateAppConfig.errors, null, 2)}`);
33
+ continue;
34
+ }
35
+ const { updatedModels } = await (0, shadow_1.getAppCfgModelsDiff)({
36
+ newAppCfg,
37
+ projectId
38
+ });
39
+ if (updatedModels && Object.keys(updatedModels).length) {
40
+ appConfigUpdates.push({ projectId, newAppCfg, updatedModels });
41
+ }
42
+ else {
43
+ appConfigUpdates.push({ projectId, newAppCfg });
44
+ }
45
+ }
46
+ else {
47
+ logger_1.logger.warn(`Ignoring shadow update for ${projectId} due to no app config`);
48
+ }
49
+ }
50
+ return appConfigUpdates;
51
+ }
52
+ // Public interface
53
+ async handleShadowTopic({ topic, payload }) {
54
+ // TODO: make use a function like the other topic getters
55
+ const shadowName = topic.split('/')[5];
56
+ switch (topic) {
57
+ case this.shadowTopics.projects.updateDelta:
58
+ if (payload.clientToken === this.clientId) {
59
+ logger_1.logger.debug(`Ignoring message sent from self: ${JSON.stringify({ topic, payload }, null, 2)}`);
60
+ break;
61
+ }
62
+ return await this.handleNamedShadowUpdate({ delta: payload });
63
+ case this.shadowTopics.projects.getAccepted:
64
+ if (payload['delta']) {
65
+ return await this.handleNamedShadowUpdate({
66
+ delta: payload['delta']
67
+ });
68
+ }
69
+ else {
70
+ logger_1.logger.info(`No delta updates in named shadow '${shadowName}'`);
71
+ }
72
+ break;
73
+ default:
74
+ logger_1.logger.info(`Ignoring shadow message: ${JSON.stringify({ topic, payload }, null, 2)}`);
75
+ }
76
+ return [];
77
+ }
78
+ async publishAppState(projectId) {
79
+ const appCfg = await (0, application_control_1.readAppCfgFile)({ projectId });
80
+ const packet = {
81
+ state: {
82
+ reported: {
83
+ [projectId]: { appConfig: JSON.stringify(appCfg) }
84
+ }
85
+ },
86
+ clientToken: this.clientId
87
+ };
88
+ this.publisher.publish(this.shadowTopics.projects.update, JSON.stringify(packet));
89
+ }
90
+ getShadowUpdates() {
91
+ this.publisher.publish(this.shadowTopics.projects.get, JSON.stringify({
92
+ clientToken: this.clientId
93
+ }));
94
+ }
95
+ deleteProjectShadow(projectId) {
96
+ const packet = {
97
+ state: {
98
+ reported: {
99
+ [projectId]: null
100
+ }
101
+ },
102
+ clientToken: this.clientId
103
+ };
104
+ this.publisher.publish(this.shadowTopics.projects.update, JSON.stringify(packet));
105
+ }
106
+ }
107
+ exports.ShadowHandler = ShadowHandler;
108
+ //# sourceMappingURL=shadow-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":";;;AAAA,mFAG6C;AAC7C,gEAAwD;AACxD,2CAAwC;AAExC,qCAAgE;AAkBhE,MAAa,aAAa;IAMxB,YAAY,QAAgB,EAAE,SAAoB;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,eAAe,IAAI,CAAC,QAAQ,eAAe,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG;YAClB,QAAQ,EAAE;gBACR,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,iBAAiB;gBAC7C,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,cAAc;gBACvC,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,uBAAuB;gBACxD,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,uBAAuB;gBACxD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,iBAAiB;aAC9C;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,EACpC,KAAK,EAGN;QACC,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAE/C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE;YACjC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;YAEvC,IAAI,aAAa,CAAC,SAAS,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAA,6CAAiB,EAAC,SAAS,CAAC,EAAE;oBACjC,0DAA0D;oBAC1D,eAAM,CAAC,KAAK,CACV,mCAAmC,SAAS,MAAM,IAAI,CAAC,SAAS,CAC9D,6CAAiB,CAAC,MAAM,EACxB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;oBACF,SAAS;iBACV;gBACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,4BAAmB,EAAC;oBAClD,SAAS;oBACT,SAAS;iBACV,CAAC,CAAC;gBAEH,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;oBACtD,gBAAgB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;iBAChE;qBAAM;oBACL,gBAAgB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;iBACjD;aACF;iBAAM;gBACL,eAAM,CAAC,IAAI,CACT,8BAA8B,SAAS,uBAAuB,CAC/D,CAAC;aACH;SACF;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,mBAAmB;IAEZ,KAAK,CAAC,iBAAiB,CAAC,EAC7B,KAAK,EACL,OAAO,EAIR;QACC,yDAAyD;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;gBACzC,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE;oBACzC,eAAM,CAAC,KAAK,CACV,oCAAoC,IAAI,CAAC,SAAS,CAChD,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;oBACF,MAAM;iBACP;gBACD,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,KAAK,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;gBACzC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBACpB,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC;wBACxC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,eAAM,CAAC,IAAI,CAAC,qCAAqC,UAAU,GAAG,CAAC,CAAC;iBACjE;gBACD,MAAM;YACR;gBACE,eAAM,CAAC,IAAI,CACT,4BAA4B,IAAI,CAAC,SAAS,CACxC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;SACL;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAiB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAc,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG;YACb,KAAK,EAAE;gBACL,QAAQ,EAAE;oBACR,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;iBACnD;aACF;YACD,WAAW,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IACJ,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAC9B,IAAI,CAAC,SAAS,CAAC;YACb,WAAW,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,mBAAmB,CAAC,SAAiB;QAC1C,MAAM,MAAM,GAAG;YACb,KAAK,EAAE;gBACL,QAAQ,EAAE;oBACR,CAAC,SAAS,CAAC,EAAE,IAAI;iBAClB;aACF;YACD,WAAW,EAAE,IAAI,CAAC,QAAQ;SAC3B,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IACJ,CAAC;CACF;AArJD,sCAqJC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shadow-handler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-handler.test.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const application_control_1 = require("../application-control");
4
+ const publisher_1 = require("./publisher");
5
+ const shadow_handler_1 = require("./shadow-handler");
6
+ jest.mock('../application-control');
7
+ jest.mock('./publisher');
8
+ const mockClient = jest.fn();
9
+ const clientId = 'test-client';
10
+ const projectId1 = 'test-project';
11
+ const projectId2 = 'test-project-2';
12
+ describe('Test Shadow Handler', () => {
13
+ let publisher;
14
+ let shadowHandler;
15
+ beforeEach(() => {
16
+ publisher = new publisher_1.Publisher(mockClient, clientId);
17
+ shadowHandler = new shadow_handler_1.ShadowHandler(clientId, publisher);
18
+ });
19
+ test.skip('reject buffer payload', async () => {
20
+ //FIXME: Invalid input is silently ignored, need input validation
21
+ expect(() => {
22
+ shadowHandler.handleShadowTopic({
23
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
24
+ payload: Buffer.from('test-payload')
25
+ });
26
+ }).toThrow(Error);
27
+ });
28
+ test('ignore message from self', async () => {
29
+ const ogAppCfg1 = {
30
+ scripts: {
31
+ start: 'python app.py'
32
+ },
33
+ models: {
34
+ 'alwaysai/mobilenet_ssd': 2
35
+ }
36
+ };
37
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(ogAppCfg1);
38
+ const appCfg1 = {
39
+ scripts: {
40
+ start: 'python app.py'
41
+ },
42
+ models: {
43
+ 'alwaysai/yolo_v3': 4
44
+ }
45
+ };
46
+ const payload = {
47
+ [projectId1]: {
48
+ appConfig: JSON.stringify(appCfg1)
49
+ },
50
+ clientToken: clientId
51
+ };
52
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
53
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
54
+ payload
55
+ });
56
+ expect(appCfgUpdates.length).toBe(0);
57
+ });
58
+ test('handle shadow get response with updated models', async () => {
59
+ const ogAppCfg1 = {
60
+ scripts: {
61
+ start: 'python app.py'
62
+ },
63
+ models: {
64
+ 'alwaysai/mobilenet_ssd': 3
65
+ }
66
+ };
67
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(ogAppCfg1);
68
+ const appCfg1 = {
69
+ scripts: {
70
+ start: 'python app.py'
71
+ },
72
+ models: {
73
+ 'alwaysai/yolo_v3': 4
74
+ }
75
+ };
76
+ const payload = {
77
+ delta: {
78
+ [projectId1]: {
79
+ appConfig: JSON.stringify(appCfg1)
80
+ }
81
+ }
82
+ };
83
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
84
+ topic: shadowHandler.shadowTopics.projects.getAccepted,
85
+ payload
86
+ });
87
+ expect(appCfgUpdates.length).toBe(1);
88
+ expect(appCfgUpdates[0]).toEqual({
89
+ projectId: projectId1,
90
+ newAppCfg: appCfg1,
91
+ updatedModels: {
92
+ 'alwaysai/yolo_v3': 4
93
+ }
94
+ });
95
+ });
96
+ test('handle shadow delta without app config', async () => {
97
+ const ogAppCfg1 = {
98
+ scripts: {
99
+ start: 'python app.py'
100
+ },
101
+ models: {
102
+ 'alwaysai/mobilenet_ssd': 2
103
+ }
104
+ };
105
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(ogAppCfg1);
106
+ const payload = {
107
+ [projectId1]: {}
108
+ };
109
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
110
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
111
+ payload
112
+ });
113
+ expect(appCfgUpdates.length).toBe(0);
114
+ });
115
+ test('handle shadow delta with updated models', async () => {
116
+ const ogAppCfg1 = {
117
+ scripts: {
118
+ start: 'python app.py'
119
+ },
120
+ models: {
121
+ 'alwaysai/mobilenet_ssd': 2
122
+ }
123
+ };
124
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(ogAppCfg1);
125
+ const appCfg1 = {
126
+ scripts: {
127
+ start: 'python app.py'
128
+ },
129
+ models: {
130
+ 'alwaysai/mobilenet_ssd': 3,
131
+ 'alwaysai/yolo_v4': 5
132
+ }
133
+ };
134
+ const payload = {
135
+ [projectId1]: {
136
+ appConfig: JSON.stringify(appCfg1)
137
+ }
138
+ };
139
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
140
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
141
+ payload
142
+ });
143
+ expect(appCfgUpdates.length).toBe(1);
144
+ expect(appCfgUpdates[0]).toEqual({
145
+ projectId: projectId1,
146
+ newAppCfg: appCfg1,
147
+ updatedModels: {
148
+ 'alwaysai/mobilenet_ssd': 3,
149
+ 'alwaysai/yolo_v4': 5
150
+ }
151
+ });
152
+ });
153
+ test('handle shadow delta with updated models for two apps', async () => {
154
+ const ogAppCfg1 = {
155
+ scripts: {
156
+ start: 'python app.py'
157
+ },
158
+ models: {
159
+ 'alwaysai/mobilenet_ssd': 2
160
+ }
161
+ };
162
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValueOnce(ogAppCfg1);
163
+ const ogAppCfg2 = {
164
+ scripts: {
165
+ start: 'python app.py'
166
+ },
167
+ models: {
168
+ 'alwaysai/yolo_v4': 5
169
+ }
170
+ };
171
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValueOnce(ogAppCfg2);
172
+ const appCfg1 = {
173
+ scripts: {
174
+ start: 'python app.py'
175
+ },
176
+ models: {
177
+ 'alwaysai/mobilenet_ssd': 3,
178
+ 'alwaysai/yolo_v4': 5
179
+ }
180
+ };
181
+ const appCfg2 = {
182
+ scripts: {
183
+ start: 'python app.py'
184
+ },
185
+ models: {
186
+ 'alwaysai/yolo_v4': 5,
187
+ 'alwaysai/human_pose': 7
188
+ }
189
+ };
190
+ const payload = {
191
+ [projectId1]: {
192
+ appConfig: JSON.stringify(appCfg1)
193
+ },
194
+ [projectId2]: {
195
+ appConfig: JSON.stringify(appCfg2)
196
+ }
197
+ };
198
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
199
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
200
+ payload
201
+ });
202
+ expect(appCfgUpdates.length).toBe(2);
203
+ expect(appCfgUpdates[0]).toEqual({
204
+ projectId: projectId1,
205
+ newAppCfg: appCfg1,
206
+ updatedModels: {
207
+ 'alwaysai/mobilenet_ssd': 3,
208
+ 'alwaysai/yolo_v4': 5
209
+ }
210
+ });
211
+ expect(appCfgUpdates[1]).toEqual({
212
+ projectId: projectId2,
213
+ newAppCfg: appCfg2,
214
+ updatedModels: {
215
+ 'alwaysai/human_pose': 7
216
+ }
217
+ });
218
+ });
219
+ test('handle shadow delta with updated analytics', async () => {
220
+ const ogAppCfg1 = {
221
+ scripts: {
222
+ start: 'python app.py'
223
+ },
224
+ models: {}
225
+ };
226
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(ogAppCfg1);
227
+ const appCfg1 = {
228
+ scripts: {
229
+ start: 'python app.py'
230
+ },
231
+ models: {},
232
+ analytics: {
233
+ enable_cloud_publish: true
234
+ }
235
+ };
236
+ const payload = {
237
+ [projectId1]: {
238
+ appConfig: JSON.stringify(appCfg1)
239
+ }
240
+ };
241
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
242
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
243
+ payload
244
+ });
245
+ expect(appCfgUpdates.length).toBe(1);
246
+ expect(appCfgUpdates[0]).toEqual({
247
+ projectId: projectId1,
248
+ newAppCfg: appCfg1
249
+ });
250
+ });
251
+ test('handle shadow delta with invalid app config', async () => {
252
+ const ogAppCfg1 = {
253
+ scripts: {
254
+ start: 'python app.py'
255
+ },
256
+ models: {
257
+ 'alwaysai/mobilenet_ssd': 2
258
+ }
259
+ };
260
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(ogAppCfg1);
261
+ const appCfg1 = {
262
+ scripts: {
263
+ start: 'python app.py'
264
+ },
265
+ models: {
266
+ 'alwaysai/mobilenet_ssd': '3',
267
+ 'alwaysai/yolo_v4': '5'
268
+ }
269
+ };
270
+ const payload = {
271
+ [projectId1]: {
272
+ appConfig: JSON.stringify(appCfg1)
273
+ }
274
+ };
275
+ const appCfgUpdates = await shadowHandler.handleShadowTopic({
276
+ topic: shadowHandler.shadowTopics.projects.updateDelta,
277
+ payload
278
+ });
279
+ expect(appCfgUpdates.length).toBe(0);
280
+ });
281
+ test.skip('publish app state', async () => {
282
+ // FIXME: For some reason publisher is not being called...
283
+ const testAppCfg = {
284
+ scripts: {
285
+ start: ''
286
+ },
287
+ models: {}
288
+ };
289
+ jest.mocked(application_control_1.readAppCfgFile).mockResolvedValue(testAppCfg);
290
+ shadowHandler.publishAppState(projectId1);
291
+ expect(jest.mocked(application_control_1.readAppCfgFile)).toBeCalledWith({ projectId1 });
292
+ const packet = {
293
+ state: {
294
+ reported: {
295
+ [projectId1]: { appConfig: JSON.stringify(testAppCfg) }
296
+ }
297
+ },
298
+ clientToken: clientId
299
+ };
300
+ expect(jest.mocked(publisher.publish)).toBeCalledWith(shadowHandler.shadowTopics.projects.update, JSON.stringify(packet));
301
+ });
302
+ test('get shadow updates', async () => {
303
+ shadowHandler.getShadowUpdates();
304
+ expect(jest.mocked(publisher.publish)).toBeCalledWith(shadowHandler.shadowTopics.projects.get, JSON.stringify({
305
+ clientToken: clientId
306
+ }));
307
+ });
308
+ test('delete project shadow', async () => {
309
+ shadowHandler.deleteProjectShadow(projectId1);
310
+ const packet = {
311
+ state: {
312
+ reported: {
313
+ [projectId1]: null
314
+ }
315
+ },
316
+ clientToken: clientId
317
+ };
318
+ expect(jest.mocked(publisher.publish)).toBeCalledWith(shadowHandler.shadowTopics.projects.update, JSON.stringify(packet));
319
+ });
320
+ });
321
+ //# sourceMappingURL=shadow-handler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-handler.test.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AppConfig } from '@alwaysai/app-configuration-schemas';
2
+ export declare type AppConfigModels = {
3
+ [modelId: string]: number;
4
+ };
5
+ export declare type AppConfigScripts = {
6
+ start: string;
7
+ };
8
+ export declare const getAppCfgModelsDiff: ({ newAppCfg, projectId }: {
9
+ newAppCfg: AppConfig;
10
+ projectId: string;
11
+ }) => Promise<{
12
+ scripts: AppConfigScripts;
13
+ updatedModels: AppConfigModels;
14
+ untouchedModels: AppConfigModels;
15
+ }>;
16
+ //# sourceMappingURL=shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/shadow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,oBAAY,eAAe,GAAG;IAC5B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,mBAAmB;eAInB,SAAS;eACT,MAAM;;;;;EAgClB,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAppCfgModelsDiff = void 0;
4
+ const logger_1 = require("../util/logger");
5
+ const application_control_1 = require("../application-control");
6
+ const getAppCfgModelsDiff = async ({ newAppCfg, projectId }) => {
7
+ const updatedModels = {};
8
+ const untouchedModels = {};
9
+ const newScripts = { start: '' };
10
+ try {
11
+ const shadowScripts = newAppCfg.scripts;
12
+ const shadowModels = newAppCfg.models;
13
+ const localAppCfg = await (0, application_control_1.readAppCfgFile)({ projectId });
14
+ const localModels = localAppCfg.models;
15
+ Object.keys(shadowModels).forEach((modelId) => {
16
+ const localVersion = localModels[modelId];
17
+ const shadowVersion = shadowModels[modelId];
18
+ if (!localVersion || localVersion !== shadowVersion) {
19
+ updatedModels[modelId] = shadowVersion;
20
+ }
21
+ else {
22
+ untouchedModels[modelId] = localVersion;
23
+ }
24
+ });
25
+ shadowScripts &&
26
+ Object.keys(shadowScripts).forEach((scriptName) => {
27
+ newScripts[scriptName] = shadowScripts[scriptName];
28
+ });
29
+ }
30
+ catch (e) {
31
+ logger_1.logger.error('Error parsing app config update: ', e);
32
+ }
33
+ return { scripts: newScripts, updatedModels, untouchedModels };
34
+ };
35
+ exports.getAppCfgModelsDiff = getAppCfgModelsDiff;
36
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,gEAAwD;AAWjD,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,SAAS,EACT,SAAS,EAIV,EAAE,EAAE;IACH,MAAM,aAAa,GAAoB,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAoB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEnD,IAAI;QACF,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;QACxC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;QAEtC,MAAM,WAAW,GAAG,MAAM,IAAA,oCAAc,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;YACpD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,aAAa,EAAE;gBACnD,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC;aACxC;iBAAM;gBACL,eAAe,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;aACzC;QACH,CAAC,CAAC,CAAC;QAEH,aAAa;YACX,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;gBACxD,UAAU,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;KACN;IAAC,OAAO,CAAC,EAAE;QACV,eAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AACjE,CAAC,CAAC;AArCW,QAAA,mBAAmB,uBAqC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAGnD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD"}
1
+ {"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAGnD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAGlD"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMemUtil = exports.getDiskUtil = exports.getCpuUtil = void 0;
4
+ // eslint-disable-next-line
4
5
  const osu = require('node-os-utils');
5
6
  async function getCpuUtil() {
6
7
  const cpuUsage = await osu.cpu.usage();
@@ -1 +1 @@
1
- {"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":";;;AAAA,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,KAAK,UAAU,UAAU;IAC9B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAHD,gCAGC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAC9C,CAAC;AAHD,kCAGC;AAEM,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAC3C,CAAC;AAHD,gCAGC"}
1
+ {"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,KAAK,UAAU,UAAU;IAC9B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAHD,gCAGC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAC9C,CAAC;AAHD,kCAGC;AAEM,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAC3C,CAAC;AAHD,gCAGC"}
@@ -8,7 +8,7 @@ async function runDockerLogin(props) {
8
8
  const server = '994534263224.dkr.ecr.us-west-2.amazonaws.com';
9
9
  const output = await spawner.run({
10
10
  exe: 'docker',
11
- args: ['login', '--username', 'AWS', '--password', token, server],
11
+ args: ['login', '--username', 'AWS', '--password', token, server]
12
12
  });
13
13
  return output;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"docker-compose-cmd.d.ts","sourceRoot":"","sources":["../../src/docker/docker-compose-cmd.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,mBAS/E"}
1
+ {"version":3,"file":"docker-compose-cmd.d.ts","sourceRoot":"","sources":["../../src/docker/docker-compose-cmd.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,mBASA"}
@@ -8,7 +8,7 @@ async function runDockerComposeCmd(props) {
8
8
  const output = await spawner.run({
9
9
  exe: 'docker-compose',
10
10
  args,
11
- cwd: dir,
11
+ cwd: dir
12
12
  });
13
13
  return output;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"docker-compose-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-compose-cmd.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,mBAAmB,CAAC,KAAsC;IAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,gBAAgB;QACrB,IAAI;QACJ,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AATD,kDASC"}
1
+ {"version":3,"file":"docker-compose-cmd.js","sourceRoot":"","sources":["../../src/docker/docker-compose-cmd.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAEvC,KAAK,UAAU,mBAAmB,CAAC,KAGzC;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,gBAAS,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,gBAAgB;QACrB,IAAI;QACJ,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,kDAYC"}
package/lib/endpoints.js CHANGED
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serviceEndpointBuilder = exports.getSecondLevelDomain = void 0;
4
- const infrastructure_1 = require("alwaysai/lib/infrastructure");
4
+ const system_id_1 = require("./infrastructure/system-id");
5
5
  const getSecondLevelDomain = () => {
6
- let domain = "";
7
- switch ((0, infrastructure_1.getSystemId)()) {
8
- case "development":
9
- domain = "a6i0.net";
6
+ let domain = '';
7
+ switch ((0, system_id_1.getSystemId)()) {
8
+ case 'development':
9
+ domain = 'a6i0.net';
10
10
  break;
11
- case "qa":
12
- domain = "a6i1.net";
11
+ case 'qa':
12
+ domain = 'a6i1.net';
13
13
  break;
14
- case "production":
15
- domain = "alwaysai.co";
14
+ case 'production':
15
+ domain = 'alwaysai.co';
16
16
  break;
17
17
  default:
18
- domain = "alwaysai.co";
18
+ domain = 'alwaysai.co';
19
19
  break;
20
20
  }
21
21
  return domain;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":";;;AAAA,gEAA0D;AAEnD,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,QAAQ,IAAA,4BAAW,GAAE,EAAE;QACrB,KAAK,aAAa;YAChB,MAAM,GAAG,UAAU,CAAC;YACpB,MAAM;QACR,KAAK,IAAI;YACP,MAAM,GAAG,UAAU,CAAC;YACpB,MAAM;QACR,KAAK,YAAY;YACf,MAAM,GAAG,aAAa,CAAC;YACvB,MAAM;QACR;YACE,MAAM,GAAG,aAAa,CAAC;YACvB,MAAM;KACT;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B;AAEK,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,IAAY,EAAE,EAAE;IACtE,OAAO,WAAW,OAAO,IAAI,IAAA,4BAAoB,GAAE,IAAI,IAAI,EAAE,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":";;;AAAA,0DAAyD;AAElD,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,QAAQ,IAAA,uBAAW,GAAE,EAAE;QACrB,KAAK,aAAa;YAChB,MAAM,GAAG,UAAU,CAAC;YACpB,MAAM;QACR,KAAK,IAAI;YACP,MAAM,GAAG,UAAU,CAAC;YACpB,MAAM;QACR,KAAK,YAAY;YACf,MAAM,GAAG,aAAa,CAAC;YACvB,MAAM;QACR;YACE,MAAM,GAAG,aAAa,CAAC;YACvB,MAAM;KACT;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B;AAEK,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,IAAY,EAAE,EAAE;IACtE,OAAO,WAAW,OAAO,IAAI,IAAA,4BAAoB,GAAE,IAAI,IAAI,EAAE,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC"}