@alwaysai/device-agent 0.0.13 → 0.0.15

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 (151) hide show
  1. package/lib/application-control/backup.js +3 -3
  2. package/lib/application-control/backup.js.map +1 -1
  3. package/lib/application-control/index.d.ts +4 -4
  4. package/lib/application-control/index.d.ts.map +1 -1
  5. package/lib/application-control/index.js +1 -4
  6. package/lib/application-control/index.js.map +1 -1
  7. package/lib/application-control/install.d.ts +1 -1
  8. package/lib/application-control/install.d.ts.map +1 -1
  9. package/lib/application-control/install.js +41 -54
  10. package/lib/application-control/install.js.map +1 -1
  11. package/lib/application-control/models.d.ts +0 -4
  12. package/lib/application-control/models.d.ts.map +1 -1
  13. package/lib/application-control/models.js +13 -22
  14. package/lib/application-control/models.js.map +1 -1
  15. package/lib/application-control/status.d.ts +0 -6
  16. package/lib/application-control/status.d.ts.map +1 -1
  17. package/lib/application-control/status.js +3 -19
  18. package/lib/application-control/status.js.map +1 -1
  19. package/lib/application-control/utils.d.ts +3 -0
  20. package/lib/application-control/utils.d.ts.map +1 -1
  21. package/lib/application-control/utils.js +50 -21
  22. package/lib/application-control/utils.js.map +1 -1
  23. package/lib/cloud-connection/bootstrap-provision.d.ts +1 -1
  24. package/lib/cloud-connection/bootstrap-provision.d.ts.map +1 -1
  25. package/lib/cloud-connection/bootstrap-provision.js +9 -9
  26. package/lib/cloud-connection/bootstrap-provision.js.map +1 -1
  27. package/lib/cloud-connection/cmd-status.d.ts +8 -0
  28. package/lib/cloud-connection/cmd-status.d.ts.map +1 -0
  29. package/lib/cloud-connection/cmd-status.js +62 -0
  30. package/lib/cloud-connection/cmd-status.js.map +1 -0
  31. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +10 -2
  32. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  33. package/lib/cloud-connection/device-agent-cloud-connection.js +156 -66
  34. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  35. package/lib/cloud-connection/device-agent.d.ts.map +1 -1
  36. package/lib/cloud-connection/device-agent.js +4 -3
  37. package/lib/cloud-connection/device-agent.js.map +1 -1
  38. package/lib/cloud-connection/live-updates-handler.d.ts +10 -18
  39. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  40. package/lib/cloud-connection/live-updates-handler.js +50 -50
  41. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  42. package/lib/cloud-connection/messages.d.ts +3 -1
  43. package/lib/cloud-connection/messages.d.ts.map +1 -1
  44. package/lib/cloud-connection/messages.js +13 -1
  45. package/lib/cloud-connection/messages.js.map +1 -1
  46. package/lib/cloud-connection/passthrough-handler.d.ts +11 -0
  47. package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -0
  48. package/lib/cloud-connection/passthrough-handler.js +59 -0
  49. package/lib/cloud-connection/passthrough-handler.js.map +1 -0
  50. package/lib/cloud-connection/publisher.d.ts +1 -0
  51. package/lib/cloud-connection/publisher.d.ts.map +1 -1
  52. package/lib/cloud-connection/publisher.js +14 -0
  53. package/lib/cloud-connection/publisher.js.map +1 -1
  54. package/lib/cloud-connection/shadow-handler.d.ts +2 -3
  55. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  56. package/lib/cloud-connection/shadow-handler.js +18 -4
  57. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  58. package/lib/cloud-connection/shadow-handler.test.d.ts +2 -0
  59. package/lib/cloud-connection/shadow-handler.test.d.ts.map +1 -0
  60. package/lib/cloud-connection/shadow-handler.test.js +321 -0
  61. package/lib/cloud-connection/shadow-handler.test.js.map +1 -0
  62. package/lib/environment.d.ts +1 -0
  63. package/lib/environment.d.ts.map +1 -1
  64. package/lib/environment.js +3 -2
  65. package/lib/environment.js.map +1 -1
  66. package/lib/index.js +2 -2
  67. package/lib/index.js.map +1 -1
  68. package/lib/infrastructure/agent-config.d.ts +15 -48
  69. package/lib/infrastructure/agent-config.d.ts.map +1 -1
  70. package/lib/infrastructure/agent-config.js.map +1 -1
  71. package/lib/infrastructure/agent-config.test.js +0 -6
  72. package/lib/infrastructure/agent-config.test.js.map +1 -1
  73. package/lib/infrastructure/system-id.js +2 -2
  74. package/lib/infrastructure/system-id.js.map +1 -1
  75. package/lib/infrastructure/tokens-and-device-cfg.d.ts.map +1 -1
  76. package/lib/infrastructure/tokens-and-device-cfg.js +5 -9
  77. package/lib/infrastructure/tokens-and-device-cfg.js.map +1 -1
  78. package/lib/local-connection/rabbitmq-connection.d.ts +4 -0
  79. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -0
  80. package/lib/local-connection/rabbitmq-connection.js +58 -0
  81. package/lib/local-connection/rabbitmq-connection.js.map +1 -0
  82. package/lib/subcommands/app/app.d.ts +4 -3
  83. package/lib/subcommands/app/app.d.ts.map +1 -1
  84. package/lib/subcommands/app/app.js +78 -27
  85. package/lib/subcommands/app/app.js.map +1 -1
  86. package/lib/subcommands/app/index.js +2 -2
  87. package/lib/subcommands/device/clean.js +4 -4
  88. package/lib/subcommands/device/clean.js.map +1 -1
  89. package/lib/subcommands/device/device.d.ts +1 -1
  90. package/lib/subcommands/device/device.d.ts.map +1 -1
  91. package/lib/subcommands/device/device.js +9 -10
  92. package/lib/subcommands/device/device.js.map +1 -1
  93. package/lib/subcommands/index.d.ts +0 -1
  94. package/lib/subcommands/index.d.ts.map +1 -1
  95. package/lib/subcommands/login.d.ts +0 -1
  96. package/lib/subcommands/login.d.ts.map +1 -1
  97. package/lib/subcommands/login.js +1 -9
  98. package/lib/subcommands/login.js.map +1 -1
  99. package/lib/util/directories.d.ts +11 -12
  100. package/lib/util/directories.d.ts.map +1 -1
  101. package/lib/util/directories.js +24 -29
  102. package/lib/util/directories.js.map +1 -1
  103. package/lib/util/fetch-with-timeout.d.ts +4 -0
  104. package/lib/util/fetch-with-timeout.d.ts.map +1 -0
  105. package/lib/util/fetch-with-timeout.js +15 -0
  106. package/lib/util/fetch-with-timeout.js.map +1 -0
  107. package/lib/util/logger.js +1 -0
  108. package/lib/util/logger.js.map +1 -1
  109. package/lib/util/require-logged-in-and-paid-plan.d.ts +2 -0
  110. package/lib/util/require-logged-in-and-paid-plan.d.ts.map +1 -0
  111. package/lib/util/require-logged-in-and-paid-plan.js +18 -0
  112. package/lib/util/require-logged-in-and-paid-plan.js.map +1 -0
  113. package/package.json +20 -32
  114. package/readme.md +100 -89
  115. package/src/application-control/backup.ts +3 -3
  116. package/src/application-control/index.ts +0 -6
  117. package/src/application-control/install.ts +53 -73
  118. package/src/application-control/models.ts +7 -19
  119. package/src/application-control/status.ts +3 -19
  120. package/src/application-control/utils.ts +61 -22
  121. package/src/cloud-connection/bootstrap-provision.ts +13 -10
  122. package/src/cloud-connection/cmd-status.ts +71 -0
  123. package/src/cloud-connection/device-agent-cloud-connection.ts +211 -102
  124. package/src/cloud-connection/device-agent.ts +7 -4
  125. package/src/cloud-connection/live-updates-handler.ts +79 -86
  126. package/src/cloud-connection/messages.ts +22 -1
  127. package/src/cloud-connection/passthrough-handler.ts +67 -0
  128. package/src/cloud-connection/publisher.ts +21 -0
  129. package/src/cloud-connection/shadow-handler.test.ts +361 -0
  130. package/src/cloud-connection/shadow-handler.ts +28 -7
  131. package/src/environment.ts +4 -1
  132. package/src/index.ts +2 -2
  133. package/src/infrastructure/agent-config.test.ts +0 -7
  134. package/src/infrastructure/agent-config.ts +24 -2
  135. package/src/infrastructure/system-id.ts +1 -1
  136. package/src/infrastructure/tokens-and-device-cfg.ts +8 -13
  137. package/src/local-connection/rabbitmq-connection.ts +53 -0
  138. package/src/subcommands/app/app.ts +82 -31
  139. package/src/subcommands/app/index.ts +4 -4
  140. package/src/subcommands/device/clean.ts +4 -4
  141. package/src/subcommands/device/device.ts +13 -13
  142. package/src/subcommands/login.ts +1 -9
  143. package/src/util/directories.ts +31 -29
  144. package/src/util/fetch-with-timeout.ts +18 -0
  145. package/src/util/logger.ts +2 -0
  146. package/src/util/require-logged-in-and-paid-plan.ts +16 -0
  147. package/lib/cloud-connection/app-install-status.d.ts +0 -16
  148. package/lib/cloud-connection/app-install-status.d.ts.map +0 -1
  149. package/lib/cloud-connection/app-install-status.js +0 -53
  150. package/lib/cloud-connection/app-install-status.js.map +0 -1
  151. package/src/cloud-connection/app-install-status.ts +0 -62
@@ -15,9 +15,14 @@ const shadow_handler_1 = require("./shadow-handler");
15
15
  const publisher_1 = require("./publisher");
16
16
  const live_updates_handler_1 = require("./live-updates-handler");
17
17
  const bootstrap_provision_1 = require("./bootstrap-provision");
18
- const app_install_status_1 = require("./app-install-status");
18
+ const cmd_status_1 = require("./cmd-status");
19
+ const passthrough_handler_1 = require("./passthrough-handler");
20
+ const environment_1 = require("../environment");
21
+ const messages_1 = require("./messages");
19
22
  class DeviceAgentCloudConnection {
20
- // Public Methods
23
+ /*=================================================================
24
+ Public interface
25
+ =================================================================*/
21
26
  constructor() {
22
27
  this.device = awsIot.device;
23
28
  this.clientId = (0, get_device_id_1.getDeviceUuid)();
@@ -29,8 +34,8 @@ class DeviceAgentCloudConnection {
29
34
  // TODO
30
35
  };
31
36
  this.device = awsIot.device({
32
- keyPath: (0, directories_1.getPrivateKeyFilePath)(),
33
- certPath: (0, directories_1.getCertificateFilePath)(),
37
+ keyPath: directories_1.DEVICE_PRIVATE_KEY_FILE_PATH,
38
+ certPath: directories_1.DEVICE_CERTIFICATE_FILE_PATH,
34
39
  caPath: directories_1.AWS_ROOT_CERTIFICATE_FILE_PATH,
35
40
  clientId: this.clientId,
36
41
  host: this.host,
@@ -39,38 +44,55 @@ class DeviceAgentCloudConnection {
39
44
  });
40
45
  this.publisher = new publisher_1.Publisher(this.device, this.clientId);
41
46
  this.shadowHandler = new shadow_handler_1.ShadowHandler(this.clientId, this.publisher);
42
- this.appInstallStatusMgr = new app_install_status_1.AppInstallStatusManager();
43
- this.liveUpdatesHandler = new live_updates_handler_1.LiveUpdatesHandler(this.publisher, this.appInstallStatusMgr);
47
+ this.cmdStatusMgr = new cmd_status_1.CmdStatusManager();
48
+ this.liveUpdatesHandler = new live_updates_handler_1.LiveUpdatesHandler(this.publisher);
44
49
  this.subscribe(this.toDeviceTopic);
45
50
  this.subscribe(this.shadowHandler.shadowTopics.projects.getAccepted);
46
51
  this.subscribe(this.shadowHandler.shadowTopics.projects.updateDelta);
47
52
  }
48
- handleAppStateControl(payload) {
53
+ async handleAppStateControl(payload) {
49
54
  const { baseCommand, projectId } = payload;
50
55
  switch (baseCommand) {
51
56
  case device_agent_schemas_1.keyMirrors.appStateControl.start:
52
- (0, application_control_1.startApp)({ projectId });
57
+ await (0, application_control_1.startApp)({ projectId });
53
58
  break;
54
59
  case device_agent_schemas_1.keyMirrors.appStateControl.stop:
55
- (0, application_control_1.stopApp)({ projectId });
60
+ await (0, application_control_1.stopApp)({ projectId });
56
61
  break;
57
62
  case device_agent_schemas_1.keyMirrors.appStateControl.restart:
58
- (0, application_control_1.restartApp)({ projectId });
63
+ await (0, application_control_1.restartApp)({ projectId });
59
64
  break;
60
65
  }
61
66
  }
62
- handleAppVersionControl(payload) {
63
- const { projectId, appReleaseHash } = payload;
64
- const signedUrlsRequest = { projectId, appReleaseHash };
65
- this.publishCloudRequest({
66
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
67
- signedUrlsRequest
68
- });
67
+ async handleAppVersionControl(payload) {
68
+ switch (payload.baseCommand) {
69
+ case device_agent_schemas_1.keyMirrors.appVersionControl.install: {
70
+ const { projectId, appReleaseHash } = payload;
71
+ await this.cmdStatusMgr.start(projectId);
72
+ await this.liveUpdatesHandler.enableAppInstallStatus({
73
+ projectId,
74
+ appReleaseHash
75
+ });
76
+ const signedUrlsRequest = { projectId, appReleaseHash };
77
+ await this.publishCloudRequest({
78
+ messageType: device_agent_schemas_1.keyMirrors.agentMessageType.signed_urls_request,
79
+ signedUrlsRequest
80
+ });
81
+ break;
82
+ }
83
+ case device_agent_schemas_1.keyMirrors.appVersionControl.uninstall: {
84
+ const { projectId } = payload;
85
+ await this.atomicApplicationUninstall(projectId);
86
+ break;
87
+ }
88
+ default:
89
+ logger_1.logger.warn(`Ignore App Version Control packet: ${JSON.stringify(payload, null, 2)}`);
90
+ }
69
91
  }
70
- handleAgentCommand(message) {
92
+ async handleAgentCommand(message) {
71
93
  switch (message.messageType) {
72
94
  case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates:
73
- this.liveUpdatesHandler.update(message.liveUpdatesToggles);
95
+ await this.liveUpdatesHandler.handleToggles(message.liveUpdatesToggles);
74
96
  break;
75
97
  default:
76
98
  logger_1.logger.error(`Invalid agent action message type from message '${message}'`);
@@ -83,40 +105,82 @@ class DeviceAgentCloudConnection {
83
105
  logger_1.logger.info(`Subscribing to ${topic}`);
84
106
  this.device.subscribe(topic);
85
107
  }
108
+ async atomicApplicationUninstall(projectId) {
109
+ const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
110
+ projectId
111
+ });
112
+ await this.cmdStatusMgr.start(projectId);
113
+ await this.liveUpdatesHandler.enableAppInstallStatus({
114
+ projectId,
115
+ appReleaseHash
116
+ });
117
+ try {
118
+ await (0, application_control_1.uninstallApp)({ projectId });
119
+ this.shadowHandler.deleteProjectShadow(projectId);
120
+ await this.cmdStatusMgr.stop(projectId);
121
+ await this.liveUpdatesHandler.disableAppInstallStatus({
122
+ projectId
123
+ });
124
+ // Send final status message
125
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
126
+ }
127
+ catch (e) {
128
+ logger_1.logger.error(`Failed to uninstall ${projectId}: ${e}`);
129
+ const message = e.message;
130
+ await this.cmdStatusMgr.stop(projectId);
131
+ await this.liveUpdatesHandler.disableAppInstallStatus({
132
+ projectId
133
+ });
134
+ // Send final status message
135
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
136
+ }
137
+ }
86
138
  // eslint-disable-next-line
87
139
  async atomicApplicationUpdate(func, args, projectId, appReleaseHash) {
88
- this.appInstallStatusMgr.update(appReleaseHash, device_agent_schemas_1.keyMirrors.appInstallStatus.in_progress);
89
- this.liveUpdatesHandler.update({
90
- appInstallStatus: { toggle: true, appReleaseHash }
140
+ await this.cmdStatusMgr.start(projectId);
141
+ await this.liveUpdatesHandler.enableAppInstallStatus({
142
+ projectId,
143
+ appReleaseHash
91
144
  });
92
145
  // Install the app and models
93
146
  try {
94
147
  const out = await func(...args);
95
- this.appInstallStatusMgr.update(appReleaseHash, device_agent_schemas_1.keyMirrors.appInstallStatus.success);
96
- this.liveUpdatesHandler.update({
97
- appInstallStatus: { toggle: false, appReleaseHash }
148
+ await this.cmdStatusMgr.stop(projectId);
149
+ await this.liveUpdatesHandler.disableAppInstallStatus({
150
+ projectId
98
151
  });
152
+ // Send final status message
153
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.success, '', appReleaseHash));
99
154
  // update app config shadow for project
100
155
  await this.shadowHandler.publishAppState(projectId);
101
156
  return out;
102
157
  }
103
158
  catch (e) {
104
- logger_1.logger.error(e);
159
+ logger_1.logger.error(`Failed to install ${projectId}: ${e}`);
105
160
  const message = e.message;
106
161
  // uninstall the failed app to put system back in good state
162
+ // TODO: Replace this with rollback
107
163
  await (0, application_control_1.uninstallApp)({ projectId });
108
- this.appInstallStatusMgr.update(appReleaseHash, device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message);
109
- this.liveUpdatesHandler.update({
110
- appInstallStatus: { toggle: false, appReleaseHash }
164
+ this.shadowHandler.deleteProjectShadow(projectId);
165
+ await this.cmdStatusMgr.stop(projectId);
166
+ await this.liveUpdatesHandler.disableAppInstallStatus({
167
+ projectId
111
168
  });
112
- // delete shadow for project
113
- // FIXME: Why do we delete the shadow? Doesn't this delete it for all projects?
114
- this.shadowHandler.deleteProjectShadow();
169
+ // Send final status message
170
+ this.publisher.publishToClient(await (0, messages_1.getAppInstallStatusMessage)(device_agent_schemas_1.keyMirrors.appInstallStatus.failure, message, appReleaseHash));
115
171
  }
116
172
  }
117
- async handleAppConfigUpdates(appConfgUpdates) {
118
- for (const appConfigUpdate of appConfgUpdates) {
173
+ async handleAppConfigUpdates(appCfgUpdates) {
174
+ for (const appConfigUpdate of appCfgUpdates) {
119
175
  const { projectId, newAppCfg, updatedModels } = appConfigUpdate;
176
+ const appReleaseHash = await (0, agent_config_1.AgentConfigFile)().getAppVersion({
177
+ projectId
178
+ });
179
+ await this.cmdStatusMgr.start(projectId);
180
+ await this.liveUpdatesHandler.enableAppInstallStatus({
181
+ projectId,
182
+ appReleaseHash
183
+ });
120
184
  if (updatedModels && Object.keys(updatedModels).length) {
121
185
  // Publish request for model urls
122
186
  this.newAppCfgQueue.push(newAppCfg);
@@ -148,19 +212,33 @@ class DeviceAgentCloudConnection {
148
212
  getClientId() {
149
213
  return this.clientId;
150
214
  }
215
+ getToDeviceTopic() {
216
+ return this.toDeviceTopic;
217
+ }
218
+ getShadowTopics() {
219
+ return this.shadowHandler.shadowTopics;
220
+ }
221
+ isCmdInProgress(projectId) {
222
+ return this.cmdStatusMgr.isCmdInProgress(projectId);
223
+ }
151
224
  async handleClientMessage({ topic, message }) {
225
+ const valid = (0, device_agent_schemas_1.validateClientMessage)(message);
226
+ if (!valid) {
227
+ logger_1.logger.error(`Error validating message: ${JSON.stringify({ topic, message, errors: device_agent_schemas_1.validateClientMessage.errors }, null, 2)}`);
228
+ return;
229
+ }
152
230
  const payload = message.payload;
153
231
  switch (payload.messageType) {
154
232
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_state_control: {
155
- this.handleAppStateControl(payload.appStateControl);
233
+ await this.handleAppStateControl(payload.appStateControl);
156
234
  break;
157
235
  }
158
236
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_version_control: {
159
- this.handleAppVersionControl(payload.appVersionControl);
237
+ await this.handleAppVersionControl(payload.appVersionControl);
160
238
  break;
161
239
  }
162
240
  case device_agent_schemas_1.keyMirrors.clientMessageType.live_state_updates: {
163
- this.handleAgentCommand(payload);
241
+ await this.handleAgentCommand(payload);
164
242
  break;
165
243
  }
166
244
  case device_agent_schemas_1.keyMirrors.clientMessageType.app_install_cloud_response: {
@@ -179,7 +257,8 @@ class DeviceAgentCloudConnection {
179
257
  });
180
258
  const newAppCfg = this.newAppCfgQueue.shift();
181
259
  if (newAppCfg === undefined) {
182
- throw new Error('Unknown error while updating models via application config! No config present for model update.');
260
+ logger_1.logger.error('Unknown error while updating models via application config! No config present for model update.');
261
+ return;
183
262
  }
184
263
  await this.atomicApplicationUpdate(application_control_1.updateModelsWithPresignedUrls, [
185
264
  {
@@ -195,10 +274,31 @@ class DeviceAgentCloudConnection {
195
274
  logger_1.logger.error(`Invalid client message: '${JSON.stringify({ topic, message }, null, 2)}'`);
196
275
  }
197
276
  }
277
+ async handleMessage(topic, message) {
278
+ logger_1.logger.debug(`Received message: ${JSON.stringify({ topic, message }, null, 2)}`);
279
+ switch (topic) {
280
+ case this.shadowHandler.shadowTopics.projects.getAccepted:
281
+ case this.shadowHandler.shadowTopics.projects.updateDelta: {
282
+ const appConfigUpdates = await this.shadowHandler.handleShadowTopic({
283
+ topic,
284
+ payload: message.state
285
+ });
286
+ await this.handleAppConfigUpdates(appConfigUpdates);
287
+ break;
288
+ }
289
+ case this.toDeviceTopic:
290
+ await this.handleClientMessage({
291
+ topic,
292
+ message
293
+ });
294
+ break;
295
+ default:
296
+ logger_1.logger.error(`Unexpected topic, ignoring! ${topic}`);
297
+ }
298
+ }
198
299
  async setupHandlers() {
199
300
  this.device.on('connect', (connack) => {
200
301
  logger_1.logger.info('Device Agent has connected to the cloud');
201
- // Get shadow updates
202
302
  this.shadowHandler.getShadowUpdates();
203
303
  });
204
304
  this.device.on('disconnect', () => {
@@ -207,33 +307,14 @@ class DeviceAgentCloudConnection {
207
307
  this.device.on('reconnect', () => {
208
308
  logger_1.logger.info(`Device Agent attempting to re-connect ${new Date().toLocaleString()}`);
209
309
  });
310
+ this.device.on('error', function (error) {
311
+ const errorString = error.message.toString();
312
+ logger_1.logger.error(`${errorString}`);
313
+ });
210
314
  this.device.on('message', async (topic, payload) => {
211
315
  try {
212
316
  const jsonPacket = JSON.parse(payload);
213
- logger_1.logger.debug(`Received message: ${JSON.stringify({ topic, jsonPacket }, null, 2)}`);
214
- if (Object.prototype.hasOwnProperty.call(jsonPacket, 'state')) {
215
- if (jsonPacket.clientToken === this.getClientId()) {
216
- logger_1.logger.debug(`Ignoring message sent from self: ${JSON.stringify({ topic, jsonPacket }, null, 2)}`);
217
- return;
218
- }
219
- const appConfigUpdates = await this.shadowHandler.handleShadowTopic({
220
- topic,
221
- payload: jsonPacket.state
222
- });
223
- await this.handleAppConfigUpdates(appConfigUpdates);
224
- }
225
- else {
226
- const valid = (0, device_agent_schemas_1.validateClientMessage)(jsonPacket);
227
- if (!valid) {
228
- logger_1.logger.error(`Error validating message: ${JSON.stringify(device_agent_schemas_1.validateClientMessage.errors, null, 2)}`);
229
- }
230
- else {
231
- this.handleClientMessage({
232
- topic,
233
- message: jsonPacket
234
- });
235
- }
236
- }
317
+ await this.handleMessage(topic, jsonPacket);
237
318
  }
238
319
  catch (error) {
239
320
  logger_1.logger.error(`Error parsing message: ${error}`);
@@ -243,16 +324,25 @@ class DeviceAgentCloudConnection {
243
324
  logger_1.logger.warn(`Device Agent is offline ${new Date().toLocaleString()}`);
244
325
  });
245
326
  }
327
+ stop() {
328
+ this.device.end();
329
+ }
246
330
  }
247
331
  exports.DeviceAgentCloudConnection = DeviceAgentCloudConnection;
248
332
  async function runDeviceAgentCloudInterface() {
249
333
  // FIXME: Check for KeyPath as well
250
- if ((0, fs_1.existsSync)((0, directories_1.getCertificateFilePath)())) {
334
+ if ((0, fs_1.existsSync)(directories_1.DEVICE_CERTIFICATE_FILE_PATH)) {
251
335
  const deviceAgent = new DeviceAgentCloudConnection();
252
336
  await deviceAgent.setupHandlers();
337
+ if (environment_1.ALWAYSAI_ANALYTICS_PASSTHROUGH === true) {
338
+ const publisher = deviceAgent.publisher;
339
+ const passthroughHandler = new passthrough_handler_1.PassthroughHandler(publisher);
340
+ await passthroughHandler.setup();
341
+ await (0, passthrough_handler_1.runChannel)(passthroughHandler);
342
+ }
253
343
  }
254
- else if ((0, fs_1.existsSync)((0, directories_1.BOOTSTRAP_DEVICE_PRIVATE_KEY_FILE_PATH)())) {
255
- (0, bootstrap_provision_1.bootstrapProvision)();
344
+ else if ((0, fs_1.existsSync)((0, directories_1.BOOTSTRAP_PRIVATE_KEY_FILE_PATH)())) {
345
+ await (0, bootstrap_provision_1.bootstrapProvision)();
256
346
  }
257
347
  else if ((0, fs_1.existsSync)((0, directories_1.BOOTSTRAP_CERTIFICATES_DIR_PATH)())) {
258
348
  throw new Error("Device has not been created using 'aai-agent device init' or there has been an issue with device initialization");
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-agent-cloud-connection.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent-cloud-connection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent.ts"],"names":[],"mappings":"AAgBA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAYD,qBAAa,WAAW;gBACV,MAAM,EAAE,qBAAqB;IAIlC,UAAU,SAAgB;IAC1B,MAAM,MAAiB;IACvB,UAAU,wBAAwD;IAClE,QAAQ,SAAmB;IAE3B,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED,qBAAa,cAAe,SAAQ,WAAW;IAChC,oBAAoB;IAepB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;CAiDpE"}
1
+ {"version":3,"file":"device-agent.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/device-agent.ts"],"names":[],"mappings":"AAgBA,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAYD,qBAAa,WAAW;gBACV,MAAM,EAAE,qBAAqB;IAIlC,UAAU,SAAgB;IAC1B,MAAM,MAAiB;IACvB,UAAU,wBAAwD;IAClE,QAAQ,SAAmB;IAE3B,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGrD;AAED,qBAAa,cAAe,SAAQ,WAAW;IAChC,oBAAoB;IAepB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;CAoDpE"}
@@ -36,11 +36,12 @@ class BootstrapAgent extends DeviceAgent {
36
36
  async handleAwsCertificateTopics(topic, payload) {
37
37
  switch (topic) {
38
38
  case '$aws/certificates/create/json/accepted': {
39
+ logger_1.logger.debug(`Received Certs: ${JSON.stringify(JSON.parse(payload), null, 2)}`);
39
40
  const { certificateId, certificatePem, privateKey, certificateOwnershipToken } = JSON.parse(payload);
40
41
  const certSpawner = (0, util_1.JsSpawner)({ path: constants_1.LOCAL_CERT_AND_KEY_DIR });
41
- await certSpawner.writeFile((0, directories_1.DEVICE_CERTIFICATE_FILE_NAME)(), certificatePem);
42
- await certSpawner.writeFile((0, directories_1.DEVICE_PRIVATE_KEY_FILE_NAME)(), privateKey);
43
- await certSpawner.writeFile((0, directories_1.DEVICE_CLAIM_ID_FILE_NAME)(), certificateId);
42
+ await certSpawner.writeFile(directories_1.DEVICE_CERTIFICATE_FILE_NAME, certificatePem);
43
+ await certSpawner.writeFile(directories_1.DEVICE_PRIVATE_KEY_FILE_NAME, privateKey);
44
+ await certSpawner.writeFile(directories_1.DEVICE_ID_FILE_NAME, certificateId);
44
45
  await certSpawner.writeFile(directories_1.CERTIFICATE_OWNERSHIP_TOKEN_FILE_NAME, certificateOwnershipToken);
45
46
  const content = {
46
47
  certificateOwnershipToken,
@@ -1 +1 @@
1
- {"version":3,"file":"device-agent.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC7C,qDAK6B;AAC7B,yDAAsD;AACtD,sDAAgE;AAChE,4CAA8C;AAC9C,2CAAwC;AACxC,+CAA8D;AAC9D,2BAA2B;AAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAoBnC,MAAa,WAAW;IACtB,YAAY,MAA6B;QAIlC,eAAU,GAAG,YAAY,CAAC;QAC1B,WAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,eAAU,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAA,2BAAqB,EAAC,IAAA,gBAAS,GAAE,CAAC,CAAC;QAClE,aAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;QANhC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAOM,cAAc,CAAC,KAAa,EAAE,OAAe;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAbD,kCAaC;AAED,MAAa,cAAe,SAAQ,WAAW;IACtC,KAAK,CAAC,oBAAoB;QAC/B,MAAM,4BAA4B,GAChC,wCAAwC,CAAC;QAC3C,MAAM,2BAA2B,GAC/B,4EAA4E,CAAC;QAE/E,MAAM,MAAM,GAAG,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAChC,MAAM,EACN,UAAU,GAAQ,EAAE,OAAyC;YAC3D,eAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,KAAa,EAAE,OAAY;QACjE,QAAQ,KAAK,EAAE;YACb,KAAK,wCAAwC,CAAC,CAAC;gBAC7C,MAAM,EACJ,aAAa,EACb,cAAc,EACd,UAAU,EACV,yBAAyB,EAC1B,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAExB,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,EAAE,IAAI,EAAE,kCAAsB,EAAE,CAAC,CAAC;gBAEhE,MAAM,WAAW,CAAC,SAAS,CACzB,IAAA,0CAA4B,GAAE,EAC9B,cAAc,CACf,CAAC;gBAEF,MAAM,WAAW,CAAC,SAAS,CAAC,IAAA,0CAA4B,GAAE,EAAE,UAAU,CAAC,CAAC;gBAExE,MAAM,WAAW,CAAC,SAAS,CAAC,IAAA,uCAAyB,GAAE,EAAE,aAAa,CAAC,CAAC;gBAExE,MAAM,WAAW,CAAC,SAAS,CACzB,mDAAqC,EACrC,yBAAyB,CAC1B,CAAC;gBAEF,MAAM,OAAO,GAAsC;oBACjD,yBAAyB;oBACzB,UAAU,EAAE;wBACV,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE;wBACnC,UAAU,EAAE,IAAI,CAAC,QAAQ;wBACzB,aAAa;wBACb,UAAU,EAAE,IAAI,CAAC,UAAU;qBAC5B;iBACF,CAAC;gBAEF,IAAI,CAAC,cAAc,CACjB,mEAAmE,EACnE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;gBAEF,MAAM;aACP;YACD,KAAK,4EAA4E,CAAC,CAAC;gBACjF,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,EAAE,CAAC;aAChB;SACF;IACH,CAAC;CACF;AAjED,wCAiEC"}
1
+ {"version":3,"file":"device-agent.js","sourceRoot":"","sources":["../../src/cloud-connection/device-agent.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,26 @@
1
- import { DeviceAgentMessagePayload } from '@alwaysai/device-agent-schemas';
1
+ import { LiveUpdatesToggles } from '@alwaysai/device-agent-schemas';
2
2
  import { Publisher } from './publisher';
3
- import { AgentMessageTypeValue } from '@alwaysai/device-agent-schemas/lib/constants';
4
- import { AppInstallStatusManager } from './app-install-status';
5
3
  export declare class LiveUpdatesHandler {
6
4
  private publisher;
7
- private appInstallStatusMgr;
8
5
  private liveUpdatesTimeout;
9
6
  private liveUpdatesAlive;
10
7
  private liveUpdatesSleepIntervals;
11
8
  private appLogStreams;
12
9
  private appInstallStatuses;
13
- constructor(publisher: Publisher, appInstallStatusMgr: AppInstallStatusManager);
14
10
  private startAppLogStream;
15
- private getAppInstallStatusMessage;
16
- startPublishingLiveUpdates<T extends any[]>(messageType: AgentMessageTypeValue, getMessageData: (...args: T) => Promise<DeviceAgentMessagePayload>, args: T): Promise<void>;
17
11
  private continuePublishing;
18
12
  private getLiveUpdatesInterval;
19
13
  private setLiveUpdates;
20
14
  private restartLiveUpdatesTimeout;
21
- update({ deviceStats, appState, appLogs, appInstallStatus }: {
22
- deviceStats?: boolean;
23
- appState?: boolean;
24
- appLogs?: {
25
- projectId: string;
26
- toggle: boolean;
27
- };
28
- appInstallStatus?: {
29
- appReleaseHash: string;
30
- toggle: boolean;
31
- };
15
+ private startPublishingLiveUpdates;
16
+ constructor(publisher: Publisher);
17
+ enableAppInstallStatus(props: {
18
+ projectId: string;
19
+ appReleaseHash: string;
32
20
  }): Promise<void>;
21
+ disableAppInstallStatus(props: {
22
+ projectId: string;
23
+ }): Promise<void>;
24
+ handleToggles(toggles: LiveUpdatesToggles): Promise<void>;
33
25
  }
34
26
  //# sourceMappingURL=live-updates-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,EAG1B,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,mBAAmB,CAA0B;IAErD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAKtB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IACF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAAqB;gBAG7C,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,uBAAuB;YAMhC,iBAAiB;IAsC/B,OAAO,CAAC,0BAA0B,CAQhC;IAEW,0BAA0B,CAAC,CAAC,SAAS,GAAG,EAAE,EACrD,WAAW,EAAE,qBAAqB,EAClC,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,yBAAyB,CAAC,EAClE,IAAI,EAAE,CAAC;IAsBT,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;IAYpB,MAAM,CAAC,EAClB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,gBAAgB,EACjB,EAAE;QACD,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE;YACR,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;QACF,gBAAgB,CAAC,EAAE;YACjB,cAAc,EAAE,MAAM,CAAC;YACvB,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH;CAiDF"}
1
+ {"version":3,"file":"live-updates-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,gBAAgB,CAKtB;IACF,OAAO,CAAC,yBAAyB,CAK/B;IACF,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAAqB;YAEjC,iBAAiB;IAqC/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;YAYnB,0BAA0B;gBA8B5B,SAAS,EAAE,SAAS;IAInB,sBAAsB,CAAC,KAAK,EAAE;QACzC,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB;IAaY,uBAAuB,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IASpD,aAAa,CAAC,OAAO,EAAE,kBAAkB;CAoCvD"}
@@ -7,7 +7,10 @@ const logger_1 = require("../util/logger");
7
7
  const sleep_1 = require("../util/sleep");
8
8
  const messages_1 = require("./messages");
9
9
  class LiveUpdatesHandler {
10
- constructor(publisher, appInstallStatusMgr) {
10
+ /*=================================================================
11
+ Public interface
12
+ =================================================================*/
13
+ constructor(publisher) {
11
14
  this.liveUpdatesAlive = {
12
15
  [device_agent_schemas_1.keyMirrors.agentMessageType.device_stats]: false,
13
16
  [device_agent_schemas_1.keyMirrors.agentMessageType.app_state]: false,
@@ -22,17 +25,7 @@ class LiveUpdatesHandler {
22
25
  };
23
26
  this.appLogStreams = new Set();
24
27
  this.appInstallStatuses = new Set();
25
- // Use arrow function to allow `this` to be accessed
26
- this.getAppInstallStatusMessage = async (appReleaseHash) => {
27
- const appInstallStatus = this.appInstallStatusMgr.getStatusPacket(appReleaseHash);
28
- const appInstallStatusMessage = {
29
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status,
30
- appInstallStatus
31
- };
32
- return appInstallStatusMessage;
33
- };
34
28
  this.publisher = publisher;
35
- this.appInstallStatusMgr = appInstallStatusMgr;
36
29
  }
37
30
  async startAppLogStream(projectId) {
38
31
  logger_1.logger.info(`Starting log stream for ${projectId}`);
@@ -66,33 +59,16 @@ class LiveUpdatesHandler {
66
59
  logger_1.logger.info(`App logs finished piping for project ${projectId}`);
67
60
  });
68
61
  }
69
- async startPublishingLiveUpdates(messageType, getMessageData, args) {
70
- logger_1.logger.info(`Turned on live updates for ${messageType}`);
71
- // eslint-disable-next-line no-constant-condition
72
- while (true) {
73
- try {
74
- const message = await getMessageData(...args);
75
- this.publisher.publishToClient(message);
76
- }
77
- catch (e) {
78
- logger_1.logger.error(`Error publishing live updates for ${messageType}: ${e.message}`);
79
- break;
80
- }
81
- if (!this.continuePublishing(messageType, ...args)) {
82
- logger_1.logger.info(`Turned off live updates for ${messageType}`);
83
- break;
84
- }
85
- await (0, sleep_1.default)(this.getLiveUpdatesInterval(messageType));
86
- }
87
- }
88
- continuePublishing(flag, data) {
62
+ continuePublishing(flag, projectId) {
89
63
  switch (flag) {
90
64
  case device_agent_schemas_1.keyMirrors.agentMessageType.device_stats:
91
65
  case device_agent_schemas_1.keyMirrors.agentMessageType.app_state:
92
66
  return this.liveUpdatesAlive[flag];
93
67
  case device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status: {
94
- const appReleaseHash = data;
95
- return this.appInstallStatuses.has(appReleaseHash);
68
+ if (!projectId) {
69
+ throw new Error(`Project ID not provided to continuePublishing!`);
70
+ }
71
+ return this.appInstallStatuses.has(projectId);
96
72
  }
97
73
  default:
98
74
  logger_1.logger.error(`Unrecognized publishable flag ${flag}`);
@@ -126,41 +102,65 @@ class LiveUpdatesHandler {
126
102
  // TODO: Make constant, not hard coded
127
103
  }, 600000); // 10 min
128
104
  }
129
- async update({ deviceStats, appState, appLogs, appInstallStatus }) {
105
+ async startPublishingLiveUpdates(messageType, getMessageData, args, projectId) {
106
+ logger_1.logger.info(`Turned on live updates for ${messageType}`);
107
+ // eslint-disable-next-line no-constant-condition
108
+ while (true) {
109
+ try {
110
+ const message = await getMessageData(...args);
111
+ this.publisher.publishToClient(message);
112
+ }
113
+ catch (e) {
114
+ logger_1.logger.error(`Error publishing live updates for ${messageType}: ${e.message}`);
115
+ break;
116
+ }
117
+ if (!this.continuePublishing(messageType, projectId)) {
118
+ logger_1.logger.info(`Turned off live updates for ${messageType}`);
119
+ break;
120
+ }
121
+ await (0, sleep_1.default)(this.getLiveUpdatesInterval(messageType));
122
+ }
123
+ }
124
+ async enableAppInstallStatus(props) {
125
+ const { projectId, appReleaseHash } = props;
126
+ this.liveUpdatesAlive.app_install_status = true;
127
+ this.appInstallStatuses.add(projectId);
128
+ // Don't wait for this call to finish since it loops until disabled
129
+ void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status, messages_1.getAppInstallStatusMessage, [device_agent_schemas_1.keyMirrors.appInstallStatus.in_progress, '', appReleaseHash], projectId);
130
+ }
131
+ async disableAppInstallStatus(props) {
132
+ const { projectId } = props;
133
+ this.appInstallStatuses.delete(projectId);
134
+ if (this.appInstallStatuses.size === 0) {
135
+ this.liveUpdatesAlive.app_install_status = false;
136
+ }
137
+ }
138
+ async handleToggles(toggles) {
139
+ const { deviceStats, appState, appLogs } = toggles;
130
140
  this.restartLiveUpdatesTimeout();
131
141
  if (deviceStats !== undefined) {
132
142
  this.liveUpdatesAlive.device_stats = deviceStats;
133
143
  if (deviceStats) {
134
- this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.device_stats, messages_1.getDeviceStatsMessage, []);
144
+ // Don't wait for this call to finish since it loops until disabled
145
+ void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.device_stats, messages_1.getDeviceStatsMessage, []);
135
146
  }
136
147
  }
137
148
  if (appState !== undefined) {
138
149
  this.liveUpdatesAlive.app_state = appState;
139
150
  if (appState) {
140
- this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_state, messages_1.getAppStateMessage, []);
151
+ // Don't wait for this call to finish since it loops until disabled
152
+ void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_state, messages_1.getAppStateMessage, []);
141
153
  }
142
154
  }
143
155
  if (appLogs !== undefined) {
144
156
  if (appLogs.toggle) {
145
- this.startAppLogStream(appLogs.projectId);
157
+ // Don't wait for this call to finish since it loops until disabled
158
+ void this.startAppLogStream(appLogs.projectId);
146
159
  }
147
160
  else {
148
161
  this.appLogStreams.delete(appLogs.projectId);
149
162
  }
150
163
  }
151
- if (appInstallStatus !== undefined) {
152
- if (appInstallStatus.toggle) {
153
- this.liveUpdatesAlive.app_install_status = appInstallStatus.toggle;
154
- this.appInstallStatuses.add(appInstallStatus.appReleaseHash);
155
- this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status, this.getAppInstallStatusMessage, [appInstallStatus.appReleaseHash]);
156
- }
157
- else {
158
- this.appInstallStatuses.delete(appInstallStatus.appReleaseHash);
159
- }
160
- if (this.appInstallStatuses.size === 0) {
161
- this.liveUpdatesAlive.app_install_status = false;
162
- }
163
- }
164
164
  }
165
165
  }
166
166
  exports.LiveUpdatesHandler = LiveUpdatesHandler;