@alwaysai/device-agent 0.2.0 → 1.0.0

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 (84) hide show
  1. package/LICENSE +12 -0
  2. package/lib/application-control/config.d.ts.map +1 -1
  3. package/lib/application-control/config.js +6 -1
  4. package/lib/application-control/config.js.map +1 -1
  5. package/lib/application-control/index.d.ts +2 -2
  6. package/lib/application-control/index.d.ts.map +1 -1
  7. package/lib/application-control/index.js +2 -2
  8. package/lib/application-control/index.js.map +1 -1
  9. package/lib/application-control/install.d.ts +2 -2
  10. package/lib/application-control/install.d.ts.map +1 -1
  11. package/lib/application-control/install.js +10 -0
  12. package/lib/application-control/install.js.map +1 -1
  13. package/lib/application-control/status.d.ts +3 -3
  14. package/lib/application-control/status.d.ts.map +1 -1
  15. package/lib/application-control/status.js +4 -4
  16. package/lib/application-control/status.js.map +1 -1
  17. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +7 -7
  18. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  19. package/lib/cloud-connection/device-agent-cloud-connection.js +158 -100
  20. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  21. package/lib/cloud-connection/live-updates-handler.d.ts +9 -9
  22. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  23. package/lib/cloud-connection/live-updates-handler.js +45 -42
  24. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  25. package/lib/cloud-connection/live-updates-handler.test.js +6 -5
  26. package/lib/cloud-connection/live-updates-handler.test.js.map +1 -1
  27. package/lib/cloud-connection/message-builder.d.ts +7 -0
  28. package/lib/cloud-connection/message-builder.d.ts.map +1 -0
  29. package/lib/cloud-connection/message-builder.js +63 -0
  30. package/lib/cloud-connection/message-builder.js.map +1 -0
  31. package/lib/cloud-connection/messages.d.ts +5 -15
  32. package/lib/cloud-connection/messages.d.ts.map +1 -1
  33. package/lib/cloud-connection/messages.js +22 -31
  34. package/lib/cloud-connection/messages.js.map +1 -1
  35. package/lib/cloud-connection/publisher.d.ts +4 -5
  36. package/lib/cloud-connection/publisher.d.ts.map +1 -1
  37. package/lib/cloud-connection/publisher.js +12 -21
  38. package/lib/cloud-connection/publisher.js.map +1 -1
  39. package/lib/cloud-connection/transaction-queue.d.ts +12 -0
  40. package/lib/cloud-connection/transaction-queue.d.ts.map +1 -0
  41. package/lib/cloud-connection/transaction-queue.js +38 -0
  42. package/lib/cloud-connection/transaction-queue.js.map +1 -0
  43. package/lib/cloud-connection/transaction-queue.test.d.ts +2 -0
  44. package/lib/cloud-connection/transaction-queue.test.d.ts.map +1 -0
  45. package/lib/cloud-connection/transaction-queue.test.js +46 -0
  46. package/lib/cloud-connection/transaction-queue.test.js.map +1 -0
  47. package/lib/local-connection/rabbitmq-connection.d.ts.map +1 -1
  48. package/lib/local-connection/rabbitmq-connection.js +5 -1
  49. package/lib/local-connection/rabbitmq-connection.js.map +1 -1
  50. package/lib/subcommands/app/index.d.ts.map +1 -1
  51. package/lib/subcommands/app/index.js +1 -0
  52. package/lib/subcommands/app/index.js.map +1 -1
  53. package/lib/subcommands/app/models.d.ts +5 -0
  54. package/lib/subcommands/app/models.d.ts.map +1 -1
  55. package/lib/subcommands/app/models.js +42 -1
  56. package/lib/subcommands/app/models.js.map +1 -1
  57. package/lib/subcommands/app/status.js +1 -1
  58. package/lib/subcommands/app/status.js.map +1 -1
  59. package/lib/subcommands/app/version.d.ts.map +1 -1
  60. package/lib/subcommands/app/version.js +9 -11
  61. package/lib/subcommands/app/version.js.map +1 -1
  62. package/lib/util/logger.d.ts.map +1 -1
  63. package/lib/util/logger.js +3 -1
  64. package/lib/util/logger.js.map +1 -1
  65. package/package.json +5 -4
  66. package/readme.md +30 -1
  67. package/src/application-control/config.ts +5 -1
  68. package/src/application-control/index.ts +2 -2
  69. package/src/application-control/install.ts +17 -4
  70. package/src/application-control/status.ts +9 -8
  71. package/src/cloud-connection/device-agent-cloud-connection.ts +225 -132
  72. package/src/cloud-connection/live-updates-handler.test.ts +6 -5
  73. package/src/cloud-connection/live-updates-handler.ts +90 -64
  74. package/src/cloud-connection/message-builder.ts +117 -0
  75. package/src/cloud-connection/messages.ts +27 -35
  76. package/src/cloud-connection/publisher.ts +17 -30
  77. package/src/cloud-connection/transaction-queue.test.ts +55 -0
  78. package/src/cloud-connection/transaction-queue.ts +40 -0
  79. package/src/local-connection/rabbitmq-connection.ts +5 -1
  80. package/src/subcommands/app/index.ts +3 -1
  81. package/src/subcommands/app/models.ts +44 -0
  82. package/src/subcommands/app/status.ts +2 -2
  83. package/src/subcommands/app/version.ts +16 -14
  84. package/src/util/logger.ts +5 -1
@@ -7,6 +7,7 @@ const logger_1 = require("../util/logger");
7
7
  const sleep_1 = require("../util/sleep");
8
8
  const messages_1 = require("./messages");
9
9
  const environment_1 = require("../environment");
10
+ const message_builder_1 = require("./message-builder");
10
11
  const LIVE_UPDATES_TIMEOUT = environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS
11
12
  ? parseInt(environment_1.ALWAYSAI_LIVE_UPDATES_TIMEOUT_MS)
12
13
  : 60000;
@@ -14,22 +15,23 @@ class LiveUpdatesHandler {
14
15
  /*=================================================================
15
16
  Public interface
16
17
  =================================================================*/
17
- constructor(publisher) {
18
+ constructor(publisher, clientId) {
18
19
  this.liveUpdatesAlive = {
19
- [device_agent_schemas_1.keyMirrors.agentMessageType.device_stats]: false,
20
- [device_agent_schemas_1.keyMirrors.agentMessageType.app_state]: false,
21
- [device_agent_schemas_1.keyMirrors.agentMessageType.app_logs]: false,
22
- [device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status]: false
20
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats]: false,
21
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.app_state]: false,
22
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.app_logs]: false,
23
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.status_response]: false
23
24
  };
24
25
  this.liveUpdatesSleepIntervals = {
25
- [device_agent_schemas_1.keyMirrors.agentMessageType.device_stats]: 5000,
26
- [device_agent_schemas_1.keyMirrors.agentMessageType.app_state]: 5000,
27
- [device_agent_schemas_1.keyMirrors.agentMessageType.app_logs]: 5000,
28
- [device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status]: 5000
26
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats]: 5000,
27
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.app_state]: 5000,
28
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.app_logs]: 5000,
29
+ [device_agent_schemas_1.keyMirrors.toClientMessageType.status_response]: 5000
29
30
  };
30
31
  this.appLogStreams = new Set();
31
- this.appInstallStatuses = new Set();
32
+ this.transactionStatuses = new Set();
32
33
  this.publisher = publisher;
34
+ this.clientId = clientId;
33
35
  logger_1.logger.debug(`Toggle live updates timeout set to ${LIVE_UPDATES_TIMEOUT} ms`);
34
36
  }
35
37
  async startAppLogStream(projectId) {
@@ -39,7 +41,7 @@ class LiveUpdatesHandler {
39
41
  projectId,
40
42
  args: ['--tail', '100', '--no-log-prefix']
41
43
  });
42
- readable.on('data', (chunk) => {
44
+ readable.on('data', async (chunk) => {
43
45
  if (!this.appLogStreams.has(projectId)) {
44
46
  // why doesn't typescript know about this function?
45
47
  // @ts-ignore
@@ -48,13 +50,11 @@ class LiveUpdatesHandler {
48
50
  return;
49
51
  }
50
52
  const logStr = chunk.toString();
51
- const message = {
52
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.app_logs,
53
- appLogs: {
54
- projectId,
55
- logChunk: logStr
56
- }
53
+ const payload = {
54
+ projectId,
55
+ logChunk: logStr
57
56
  };
57
+ const message = await (0, message_builder_1.buildAppLogsMessage)(payload, this.clientId);
58
58
  this.publisher.publishToClient(message);
59
59
  });
60
60
  readable.on('error', (error) => {
@@ -64,16 +64,16 @@ class LiveUpdatesHandler {
64
64
  logger_1.logger.info(`App logs finished piping for project ${projectId}`);
65
65
  });
66
66
  }
67
- continuePublishing(flag, projectId) {
67
+ continuePublishing(flag, txId) {
68
68
  switch (flag) {
69
- case device_agent_schemas_1.keyMirrors.agentMessageType.device_stats:
70
- case device_agent_schemas_1.keyMirrors.agentMessageType.app_state:
69
+ case device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats:
70
+ case device_agent_schemas_1.keyMirrors.toClientMessageType.app_state:
71
71
  return this.liveUpdatesAlive[flag];
72
- case device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status: {
73
- if (!projectId) {
74
- throw new Error(`Project ID not provided to continuePublishing!`);
72
+ case device_agent_schemas_1.keyMirrors.toClientMessageType.status_response: {
73
+ if (!txId) {
74
+ throw new Error(`Transaction ID not provided to continuePublishing!`);
75
75
  }
76
- return this.appInstallStatuses.has(projectId);
76
+ return this.transactionStatuses.has(txId);
77
77
  }
78
78
  default:
79
79
  logger_1.logger.error(`Unrecognized publishable flag ${flag}`);
@@ -93,7 +93,7 @@ class LiveUpdatesHandler {
93
93
  this.liveUpdatesAlive.device_stats = toggles.deviceStats;
94
94
  }
95
95
  if (toggles.appState !== undefined) {
96
- this.liveUpdatesAlive.app_state = toggles.appState;
96
+ this.liveUpdatesAlive.app_logs = toggles.appState;
97
97
  }
98
98
  }
99
99
  restartLiveUpdatesTimeout() {
@@ -106,16 +106,19 @@ class LiveUpdatesHandler {
106
106
  this.appLogStreams.clear();
107
107
  }, LIVE_UPDATES_TIMEOUT);
108
108
  }
109
- async startPublishingLiveUpdates(messageType, getMessageData, args, projectId) {
109
+ async startPublishingLiveUpdates(messageType, payloadBuilderFunction, messageBuilderFunction, args, txId) {
110
110
  logger_1.logger.info(`Turned on live updates for ${messageType}`);
111
111
  // eslint-disable-next-line no-constant-condition
112
112
  while (true) {
113
113
  try {
114
- const message = await getMessageData(...args);
115
- if (!this.continuePublishing(messageType, projectId)) {
114
+ if (!this.continuePublishing(messageType, txId)) {
116
115
  logger_1.logger.info(`Turned off live updates for ${messageType}`);
117
116
  break;
118
117
  }
118
+ const payload = await payloadBuilderFunction(...args);
119
+ logger_1.logger.debug(`payload returned from builder: ${JSON.stringify(payload)}`);
120
+ const message = await messageBuilderFunction(payload, txId);
121
+ logger_1.logger.debug(`message returned from builder: ${JSON.stringify(message)}`);
119
122
  this.publisher.publishToClient(message);
120
123
  }
121
124
  catch (e) {
@@ -133,23 +136,23 @@ class LiveUpdatesHandler {
133
136
  getAppLogsLiveUpdates() {
134
137
  return this.liveUpdatesAlive.app_logs;
135
138
  }
136
- async enableAppInstallStatus(props) {
137
- const { projectId, appReleaseHash } = props;
138
- this.liveUpdatesAlive.app_install_status = true;
139
- if (!this.appInstallStatuses.has(projectId)) {
140
- this.appInstallStatuses.add(projectId);
139
+ async enableTransactionStatus(props) {
140
+ const { txId } = props;
141
+ this.liveUpdatesAlive.status_response = true;
142
+ if (!this.transactionStatuses.has(txId)) {
143
+ this.transactionStatuses.add(txId);
141
144
  // Don't wait for this call to finish since it loops until disabled
142
- 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);
145
+ void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.status_response, messages_1.getStatusResponsePayload, message_builder_1.buildStatusResponseMessage, [device_agent_schemas_1.keyMirrors.statusResponse.in_progress, ''], txId);
143
146
  }
144
147
  }
145
- async disableAppInstallStatus(props) {
146
- const { projectId } = props;
147
- this.appInstallStatuses.delete(projectId);
148
- if (this.appInstallStatuses.size === 0) {
149
- this.liveUpdatesAlive.app_install_status = false;
148
+ async disableTransactionStatus(props) {
149
+ const { txId } = props;
150
+ this.transactionStatuses.delete(txId);
151
+ if (this.transactionStatuses.size === 0) {
152
+ this.liveUpdatesAlive.status_response = false;
150
153
  }
151
154
  }
152
- async handleToggles(toggles) {
155
+ async handleToggles(toggles, txId) {
153
156
  const { deviceStats, appState, appLogs } = toggles;
154
157
  this.restartLiveUpdatesTimeout();
155
158
  const currentDeviceStats = this.getDeviceStatsLiveUpdates();
@@ -157,7 +160,7 @@ class LiveUpdatesHandler {
157
160
  this.liveUpdatesAlive.device_stats = deviceStats;
158
161
  if (deviceStats && currentDeviceStats !== true) {
159
162
  // Don't wait for this call to finish since it loops until disabled
160
- void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.device_stats, messages_1.getDeviceStatsMessage, []);
163
+ void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats, messages_1.getDeviceStatsPayload, message_builder_1.buildDeviceStatsMessage, [], txId);
161
164
  }
162
165
  }
163
166
  const currentAppState = this.getAppStateLiveUpdates();
@@ -165,7 +168,7 @@ class LiveUpdatesHandler {
165
168
  this.liveUpdatesAlive.app_state = appState;
166
169
  if (appState && currentAppState !== true) {
167
170
  // Don't wait for this call to finish since it loops until disabled
168
- void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.agentMessageType.app_state, messages_1.getAppStateMessage, []);
171
+ void this.startPublishingLiveUpdates(device_agent_schemas_1.keyMirrors.toClientMessageType.app_state, messages_1.getAppStatePayload, message_builder_1.buildAppStateMessage, [], txId);
169
172
  }
170
173
  }
171
174
  const currentAppLogs = this.getAppLogsLiveUpdates();
@@ -1 +1 @@
1
- {"version":3,"file":"live-updates-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-updates-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ const testFalseToggles = {
12
12
  };
13
13
  const mockClient = jest.fn();
14
14
  const clientId = 'test-client';
15
+ const emptyTxId = '';
15
16
  jest.spyOn(global, 'setTimeout');
16
17
  // NOTE: this was the way I found to mock private class functions
17
18
  const mockStartPublishingLiveUpdates = jest.spyOn(live_updates_handler_1.LiveUpdatesHandler.prototype, 'startPublishingLiveUpdates');
@@ -21,24 +22,24 @@ describe('Test Live Updates Handler', () => {
21
22
  let publisher;
22
23
  beforeEach(() => {
23
24
  publisher = new publisher_1.Publisher(mockClient, clientId);
24
- liveUpdatesHandler = new live_updates_handler_1.LiveUpdatesHandler(publisher);
25
+ liveUpdatesHandler = new live_updates_handler_1.LiveUpdatesHandler(publisher, clientId);
25
26
  jest.clearAllMocks();
26
27
  });
27
28
  test('ignore subsequent enables', async () => {
28
- void liveUpdatesHandler.handleToggles(testTrueToggles);
29
+ void liveUpdatesHandler.handleToggles(testTrueToggles, emptyTxId);
29
30
  // called twice, once for device stats, once for app state
30
31
  expect(mockStartPublishingLiveUpdates).toBeCalledTimes(2);
31
32
  // restartLiveUpdatesTimeout is always called once when handleToggles is called
32
33
  expect(jest.mocked(setTimeout)).toBeCalledTimes(1);
33
34
  // Second call -> should not call startPublishingLiveUpdates should not be called
34
35
  jest.clearAllMocks();
35
- void liveUpdatesHandler.handleToggles(testTrueToggles);
36
+ void liveUpdatesHandler.handleToggles(testTrueToggles, emptyTxId);
36
37
  expect(mockStartPublishingLiveUpdates).toBeCalledTimes(0);
37
38
  expect(jest.mocked(setTimeout)).toHaveBeenCalledTimes(1);
38
39
  });
39
40
  test('test disable live updates', async () => {
40
41
  // Test calling handleToggles one time, enabling it
41
- void liveUpdatesHandler.handleToggles(testTrueToggles);
42
+ void liveUpdatesHandler.handleToggles(testTrueToggles, emptyTxId);
42
43
  expect(mockStartPublishingLiveUpdates).toBeCalledTimes(2);
43
44
  expect(jest.mocked(setTimeout)).toHaveBeenCalledTimes(1);
44
45
  expect(liveUpdatesHandler.getDeviceStatsLiveUpdates()).toBe(true);
@@ -46,7 +47,7 @@ describe('Test Live Updates Handler', () => {
46
47
  expect(liveUpdatesHandler.getAppLogsLiveUpdates()).toBe(false);
47
48
  // Check to see that attributes are properly set to false when disabled
48
49
  jest.clearAllMocks();
49
- void liveUpdatesHandler.handleToggles(testFalseToggles);
50
+ void liveUpdatesHandler.handleToggles(testFalseToggles, emptyTxId);
50
51
  expect(mockStartPublishingLiveUpdates).toBeCalledTimes(0);
51
52
  expect(jest.mocked(setTimeout)).toHaveBeenCalledTimes(1);
52
53
  expect(liveUpdatesHandler.getDeviceStatsLiveUpdates()).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"live-updates-handler.test.js","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-updates-handler.test.js","sourceRoot":"","sources":["../../src/cloud-connection/live-updates-handler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { AppLogsMessage, AppLogsPayload, AppStateMessage, AppStatePayload, DeviceStatsMessage, DeviceStatsPayload, SignedUrlsRequestMessage, SignedUrlsRequestPayload, StatusResponseMessage, StatusResponsePayload } from '@alwaysai/device-agent-schemas';
2
+ export declare function buildAppLogsMessage(payload: AppLogsPayload, txId?: string): Promise<AppLogsMessage>;
3
+ export declare function buildAppStateMessage(payload: AppStatePayload, txId?: string): Promise<AppStateMessage>;
4
+ export declare function buildSignedUrlsRequestMessage(payload: SignedUrlsRequestPayload, txId?: string): Promise<SignedUrlsRequestMessage>;
5
+ export declare function buildStatusResponseMessage(payload: StatusResponsePayload, txId?: string): Promise<StatusResponseMessage>;
6
+ export declare function buildDeviceStatsMessage(payload: DeviceStatsPayload, txId?: string): Promise<DeviceStatsMessage>;
7
+ //# sourceMappingURL=message-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-builder.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/message-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,cAAc,EACd,eAAe,EAEf,eAAe,EAEf,kBAAkB,EAElB,kBAAkB,EAClB,wBAAwB,EAExB,wBAAwB,EACxB,qBAAqB,EAErB,qBAAqB,EAKtB,MAAM,gCAAgC,CAAC;AAiBxC,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAUzB;AAGD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,eAAe,EACxB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC,CAU1B;AAGD,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,wBAAwB,EACjC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAGD,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,qBAAqB,EAC9B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,qBAAqB,CAAC,CAWhC;AAGD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,CAU7B"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildDeviceStatsMessage = exports.buildStatusResponseMessage = exports.buildSignedUrlsRequestMessage = exports.buildAppStateMessage = exports.buildAppLogsMessage = void 0;
4
+ const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
5
+ const get_device_id_1 = require("../util/get-device-id");
6
+ function buildBaseClientMessage(txId) {
7
+ const clientId = (0, get_device_id_1.getDeviceUuid)();
8
+ const baseClientMessage = {
9
+ timestamp: new Date().toUTCString(),
10
+ deviceId: clientId,
11
+ topic: (0, device_agent_schemas_1.getToClientTopic)(clientId),
12
+ txId: txId || (0, device_agent_schemas_1.generateTxId)()
13
+ };
14
+ return baseClientMessage;
15
+ }
16
+ // Public Message Builders
17
+ // app logs
18
+ async function buildAppLogsMessage(payload, txId) {
19
+ const baseMessage = buildBaseClientMessage(txId);
20
+ const messageType = device_agent_schemas_1.keyMirrors.toClientMessageType.app_logs;
21
+ const message = Object.assign(Object.assign({}, baseMessage), { messageType,
22
+ payload });
23
+ return message;
24
+ }
25
+ exports.buildAppLogsMessage = buildAppLogsMessage;
26
+ // app state
27
+ async function buildAppStateMessage(payload, txId) {
28
+ const baseMessage = buildBaseClientMessage(txId);
29
+ const messageType = device_agent_schemas_1.keyMirrors.toClientMessageType.app_state;
30
+ const message = Object.assign(Object.assign({}, baseMessage), { messageType,
31
+ payload });
32
+ return message;
33
+ }
34
+ exports.buildAppStateMessage = buildAppStateMessage;
35
+ // signed URLs
36
+ async function buildSignedUrlsRequestMessage(payload, txId) {
37
+ const baseMessage = buildBaseClientMessage(txId);
38
+ const messageType = device_agent_schemas_1.keyMirrors.toCloudMessageType.signed_urls_request;
39
+ const message = Object.assign(Object.assign({}, baseMessage), { messageType,
40
+ payload });
41
+ return message;
42
+ }
43
+ exports.buildSignedUrlsRequestMessage = buildSignedUrlsRequestMessage;
44
+ // status response
45
+ async function buildStatusResponseMessage(payload, txId) {
46
+ const baseMessage = buildBaseClientMessage(txId);
47
+ const messageType = device_agent_schemas_1.keyMirrors.toClientMessageType.status_response;
48
+ const message = Object.assign(Object.assign({}, baseMessage), { messageType,
49
+ payload });
50
+ const valid = (0, device_agent_schemas_1.validateToDeviceAgentMessage)(message);
51
+ return message;
52
+ }
53
+ exports.buildStatusResponseMessage = buildStatusResponseMessage;
54
+ // device stats
55
+ async function buildDeviceStatsMessage(payload, txId) {
56
+ const messageType = device_agent_schemas_1.keyMirrors.toClientMessageType.device_stats;
57
+ const baseMessage = buildBaseClientMessage(txId);
58
+ const message = Object.assign(Object.assign({}, baseMessage), { messageType,
59
+ payload });
60
+ return message;
61
+ }
62
+ exports.buildDeviceStatsMessage = buildDeviceStatsMessage;
63
+ //# sourceMappingURL=message-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-builder.js","sourceRoot":"","sources":["../../src/cloud-connection/message-builder.ts"],"names":[],"mappings":";;;AAAA,yEAqBwC;AACxC,yDAAsD;AAEtD,SAAS,sBAAsB,CAAC,IAAa;IAC3C,MAAM,QAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;IACjC,MAAM,iBAAiB,GAAG;QACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,IAAA,uCAAgB,EAAC,QAAQ,CAAC;QACjC,IAAI,EAAE,IAAI,IAAI,IAAA,mCAAY,GAAE;KAC7B,CAAC;IACF,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,0BAA0B;AAE1B,WAAW;AACJ,KAAK,UAAU,mBAAmB,CACvC,OAAuB,EACvB,IAAa;IAEb,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GACf,iCAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC;IAC1C,MAAM,OAAO,mCACR,WAAW,KACd,WAAW;QACX,OAAO,GACR,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,kDAaC;AAED,YAAY;AACL,KAAK,UAAU,oBAAoB,CACxC,OAAwB,EACxB,IAAa;IAEb,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GACf,iCAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC;IAC3C,MAAM,OAAO,mCACR,WAAW,KACd,WAAW;QACX,OAAO,GACR,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,oDAaC;AAED,cAAc;AACP,KAAK,UAAU,6BAA6B,CACjD,OAAiC,EACjC,IAAa;IAEb,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GACf,iCAAU,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;IACpD,MAAM,OAAO,mCACR,WAAW,KACd,WAAW;QACX,OAAO,GACR,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,sEAaC;AAED,kBAAkB;AACX,KAAK,UAAU,0BAA0B,CAC9C,OAA8B,EAC9B,IAAa;IAEb,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GACf,iCAAU,CAAC,mBAAmB,CAAC,eAAe,CAAC;IACjD,MAAM,OAAO,mCACR,WAAW,KACd,WAAW;QACX,OAAO,GACR,CAAC;IACF,MAAM,KAAK,GAAG,IAAA,mDAA4B,EAAC,OAAO,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC;AACjB,CAAC;AAdD,gEAcC;AAED,eAAe;AACR,KAAK,UAAU,uBAAuB,CAC3C,OAA2B,EAC3B,IAAa;IAEb,MAAM,WAAW,GACf,iCAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC;IAC9C,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,mCACR,WAAW,KACd,WAAW;QACX,OAAO,GACR,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,0DAaC"}
@@ -1,16 +1,6 @@
1
- import { AppInstallStatusMessage, AppStatePacket } from '@alwaysai/device-agent-schemas';
2
- import { AppInstallStatusValue } from '@alwaysai/device-agent-schemas/lib/constants';
3
- export declare function getAppStateMessage(): Promise<{
4
- messageType: "app_state";
5
- appState: AppStatePacket[];
6
- }>;
7
- export declare function getAppInstallStatusMessage(status: AppInstallStatusValue, message: string, appReleaseHash: string): Promise<AppInstallStatusMessage>;
8
- export declare function getDeviceStatsMessage(): Promise<{
9
- messageType: "device_stats";
10
- deviceStats: {
11
- cpuUsage: number;
12
- diskUtil: number;
13
- usedMemoryPercentage: number;
14
- };
15
- }>;
1
+ import { AppStatePayload, DeviceStatsPayload, StatusResponsePayload } from '@alwaysai/device-agent-schemas';
2
+ import { StatusResponseValue } from '@alwaysai/device-agent-schemas/lib/constants';
3
+ export declare function getAppStatePayload(): Promise<AppStatePayload>;
4
+ export declare function getStatusResponsePayload(status: StatusResponseValue, message: string): Promise<StatusResponsePayload>;
5
+ export declare function getDeviceStatsPayload(): Promise<DeviceStatsPayload>;
16
6
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,cAAc,EAEf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AASrF,wBAAsB,kBAAkB;;;GAavC;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,uBAAuB,CAAC,CAUlC;AAED,wBAAsB,qBAAqB;;;;;;;GAc1C"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AASnF,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAYnE;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAMhC;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAWzE"}
@@ -1,50 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDeviceStatsMessage = exports.getAppInstallStatusMessage = exports.getAppStateMessage = void 0;
4
- const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
3
+ exports.getDeviceStatsPayload = exports.getStatusResponsePayload = exports.getAppStatePayload = void 0;
5
4
  const application_control_1 = require("../application-control");
6
5
  const device_control_1 = require("../device-control/device-control");
7
6
  const agent_config_1 = require("../infrastructure/agent-config");
8
- async function getAppStateMessage() {
9
- const appStateMessage = [];
7
+ async function getAppStatePayload() {
8
+ const appState = [];
10
9
  const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
11
10
  for (const app of apps) {
12
11
  const projectId = app.projectId;
13
- const status = await (0, application_control_1.getAppStatus)({ projectId });
14
- appStateMessage.push(status);
12
+ const status = await (0, application_control_1.getAppState)({ projectId });
13
+ appState.push(status);
15
14
  }
16
- const appStatePackage = {
17
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.app_state,
18
- appState: appStateMessage
15
+ const appStatePayload = {
16
+ appState: appState
19
17
  };
20
- return appStatePackage;
18
+ return appStatePayload;
21
19
  }
22
- exports.getAppStateMessage = getAppStateMessage;
23
- async function getAppInstallStatusMessage(status, message, appReleaseHash) {
24
- const appInstallStatusMessage = {
25
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.app_install_status,
26
- appInstallStatus: {
27
- status,
28
- message,
29
- appReleaseHash
30
- }
20
+ exports.getAppStatePayload = getAppStatePayload;
21
+ async function getStatusResponsePayload(status, message) {
22
+ const statusResponsePayload = {
23
+ status,
24
+ message
31
25
  };
32
- return appInstallStatusMessage;
26
+ return statusResponsePayload;
33
27
  }
34
- exports.getAppInstallStatusMessage = getAppInstallStatusMessage;
35
- async function getDeviceStatsMessage() {
28
+ exports.getStatusResponsePayload = getStatusResponsePayload;
29
+ async function getDeviceStatsPayload() {
36
30
  const cpuUsage = await (0, device_control_1.getCpuUtil)();
37
31
  const diskUtil = await (0, device_control_1.getDiskUtil)();
38
32
  const memUtil = await (0, device_control_1.getMemUtil)();
39
- const deviceStatsMessage = {
40
- messageType: device_agent_schemas_1.keyMirrors.agentMessageType.device_stats,
41
- deviceStats: {
42
- cpuUsage,
43
- diskUtil,
44
- usedMemoryPercentage: memUtil
45
- }
33
+ const deviceStatsPayload = {
34
+ cpuUsage,
35
+ diskUtil,
36
+ usedMemoryPercentage: memUtil
46
37
  };
47
- return deviceStatsMessage;
38
+ return deviceStatsPayload;
48
39
  }
49
- exports.getDeviceStatsMessage = getDeviceStatsMessage;
40
+ exports.getDeviceStatsPayload = getDeviceStatsPayload;
50
41
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/cloud-connection/messages.ts"],"names":[],"mappings":";;;AAAA,yEAIwC;AAExC,gEAAsD;AACtD,qEAI0C;AAC1C,iEAAiE;AAE1D,KAAK,UAAU,kBAAkB;IACtC,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,OAAO,EAAE,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAY,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;IACD,MAAM,eAAe,GAAG;QACtB,WAAW,EAAE,iCAAU,CAAC,gBAAgB,CAAC,SAAS;QAClD,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACF,OAAO,eAAe,CAAC;AACzB,CAAC;AAbD,gDAaC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,MAA6B,EAC7B,OAAe,EACf,cAAsB;IAEtB,MAAM,uBAAuB,GAA4B;QACvD,WAAW,EAAE,iCAAU,CAAC,gBAAgB,CAAC,kBAAkB;QAC3D,gBAAgB,EAAE;YAChB,MAAM;YACN,OAAO;YACP,cAAc;SACf;KACF,CAAC;IACF,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAdD,gEAcC;AAEM,KAAK,UAAU,qBAAqB;IACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAU,GAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAW,GAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAU,GAAE,CAAC;IAEnC,MAAM,kBAAkB,GAAG;QACzB,WAAW,EAAE,iCAAU,CAAC,gBAAgB,CAAC,YAAY;QACrD,WAAW,EAAE;YACX,QAAQ;YACR,QAAQ;YACR,oBAAoB,EAAE,OAAO;SAC9B;KACF,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAdD,sDAcC"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/cloud-connection/messages.ts"],"names":[],"mappings":";;;AAOA,gEAAqD;AACrD,qEAI0C;AAC1C,iEAAiE;AAE1D,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,OAAO,EAAE,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAW,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACvB;IACD,MAAM,eAAe,GAAG;QACtB,QAAQ,EAAE,QAAQ;KACnB,CAAC;IACF,OAAO,eAAe,CAAC;AACzB,CAAC;AAZD,gDAYC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,MAA2B,EAC3B,OAAe;IAEf,MAAM,qBAAqB,GAA0B;QACnD,MAAM;QACN,OAAO;KACR,CAAC;IACF,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AATD,4DASC;AAEM,KAAK,UAAU,qBAAqB;IACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAU,GAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAW,GAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAU,GAAE,CAAC;IAEnC,MAAM,kBAAkB,GAAuB;QAC7C,QAAQ;QACR,QAAQ;QACR,oBAAoB,EAAE,OAAO;KAC9B,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAXD,sDAWC"}
@@ -1,15 +1,14 @@
1
- import { DeviceAgentMessagePayload } from '@alwaysai/device-agent-schemas';
1
+ import { ToClientMessage, ToCloudMessage } from '@alwaysai/device-agent-schemas';
2
2
  export declare class Publisher {
3
3
  private client;
4
4
  private clientId;
5
5
  private readonly toClientTopic;
6
6
  private readonly toCloudTopic;
7
7
  constructor(client: any, clientId: string);
8
- private buildMessagePacket;
9
8
  publish(topic: string, payload: string): void;
10
9
  publishToCloudWithAck(payload: string, ackNackCallback: CallableFunction): void;
11
- publishDeviceAgentPayload(topic: string, payload: DeviceAgentMessagePayload): void;
12
- publishToClient(payload: DeviceAgentMessagePayload): void;
13
- publishToCloud(payload: DeviceAgentMessagePayload): void;
10
+ publishDeviceAgentMessage(topic: string, message: ToClientMessage | ToCloudMessage): void;
11
+ publishToClient(message: ToClientMessage): void;
12
+ publishToCloud(message: ToCloudMessage): void;
14
13
  }
15
14
  //# sourceMappingURL=publisher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,EAG1B,MAAM,gCAAgC,CAAC;AAGxC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAOzC,OAAO,CAAC,kBAAkB;IAanB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAWtC,qBAAqB,CAC1B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,gBAAgB;IAkB5B,yBAAyB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB;IAU7B,eAAe,CAAC,OAAO,EAAE,yBAAyB;IAIlD,cAAc,CAAC,OAAO,EAAE,yBAAyB;CAGzD"}
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,cAAc,EAGf,MAAM,gCAAgC,CAAC;AAExC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAOlC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAWtC,qBAAqB,CAC1B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,gBAAgB;IAkB5B,yBAAyB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,GAAG,cAAc;IASpC,eAAe,CAAC,OAAO,EAAE,eAAe;IAIxC,cAAc,CAAC,OAAO,EAAE,cAAc;CAI9C"}
@@ -1,23 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Publisher = void 0;
4
- const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
5
4
  const logger_1 = require("../util/logger");
5
+ const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
6
6
  class Publisher {
7
7
  constructor(client, clientId) {
8
8
  this.client = client;
9
9
  this.clientId = clientId;
10
- this.toClientTopic = (0, device_agent_schemas_1.getClientTopic)(this.clientId);
11
- this.toCloudTopic = (0, device_agent_schemas_1.getCloudTopic)(this.clientId);
12
- }
13
- buildMessagePacket(topic, payload) {
14
- const packet = {
15
- timestamp: new Date().toUTCString(),
16
- deviceId: this.clientId,
17
- topic,
18
- payload
19
- };
20
- return packet;
10
+ this.toClientTopic = (0, device_agent_schemas_1.getToClientTopic)(this.clientId);
11
+ this.toCloudTopic = (0, device_agent_schemas_1.getToCloudTopic)(this.clientId);
21
12
  }
22
13
  publish(topic, payload) {
23
14
  // TODO: topic validation
@@ -40,17 +31,17 @@ class Publisher {
40
31
  }
41
32
  });
42
33
  }
43
- publishDeviceAgentPayload(topic, payload) {
44
- const packet = this.buildMessagePacket(topic, payload);
45
- const packetStr = JSON.stringify(packet);
46
- logger_1.logger.debug(`Publishing message:\n${JSON.stringify({ topic, packet }, null, 2)}`);
47
- this.publish(topic, packetStr);
34
+ publishDeviceAgentMessage(topic, message) {
35
+ const messageStr = JSON.stringify(message);
36
+ logger_1.logger.debug(`Publishing message:\n${JSON.stringify({ topic, message }, null, 2)}`);
37
+ this.publish(topic, messageStr);
48
38
  }
49
- publishToClient(payload) {
50
- this.publishDeviceAgentPayload(this.toClientTopic, payload);
39
+ publishToClient(message) {
40
+ this.publishDeviceAgentMessage(this.toClientTopic, message);
51
41
  }
52
- publishToCloud(payload) {
53
- this.publishDeviceAgentPayload(this.toCloudTopic, payload);
42
+ publishToCloud(message) {
43
+ // Can edit topic field in message here if we want
44
+ this.publishDeviceAgentMessage(this.toCloudTopic, message);
54
45
  }
55
46
  }
56
47
  exports.Publisher = Publisher;
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":";;;AAAA,yEAKwC;AACxC,2CAAwC;AAExC,MAAa,SAAS;IAMpB,YAAY,MAAW,EAAE,QAAgB;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAA,oCAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEO,kBAAkB,CACxB,KAAa,EACb,OAAkC;QAElC,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,OAAO;SACR,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,KAAa,EAAE,OAAe;QAC3C,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qBAAqB,CAC1B,OAAe,EACf,eAAiC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAQ,EAAE,IAAS,EAAE,EAAE;YACtE,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;gBACF,eAAe,CAAC,KAAK,CAAC,CAAC;aACxB;iBAAM,IAAI,IAAI,EAAE;gBACf,eAAM,CAAC,KAAK,CACV,4CAA4C,KAAK,cAAc,OAAO,EAAE,CACzE,CAAC;gBACF,eAAe,CAAC,IAAI,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,yBAAyB,CAC9B,KAAa,EACb,OAAkC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,eAAM,CAAC,KAAK,CACV,wBAAwB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACrE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAEM,eAAe,CAAC,OAAkC;QACvD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAEM,cAAc,CAAC,OAAkC;QACtD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AA5ED,8BA4EC"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yEAKwC;AAExC,MAAa,SAAS;IAMpB,YAAY,MAAW,EAAE,QAAgB;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAA,uCAAgB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAA,sCAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAEM,OAAO,CAAC,KAAa,EAAE,OAAe;QAC3C,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qBAAqB,CAC1B,OAAe,EACf,eAAiC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAQ,EAAE,IAAS,EAAE,EAAE;YACtE,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;gBACF,eAAe,CAAC,KAAK,CAAC,CAAC;aACxB;iBAAM,IAAI,IAAI,EAAE;gBACf,eAAM,CAAC,KAAK,CACV,4CAA4C,KAAK,cAAc,OAAO,EAAE,CACzE,CAAC;gBACF,eAAe,CAAC,IAAI,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,yBAAyB,CAC9B,KAAa,EACb,OAAyC;QAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,eAAM,CAAC,KAAK,CACV,wBAAwB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACtE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;IAEM,eAAe,CAAC,OAAwB;QAC7C,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAEM,cAAc,CAAC,OAAuB;QAC3C,kDAAkD;QAClD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AA/DD,8BA+DC"}
@@ -0,0 +1,12 @@
1
+ export declare class TransactionQueue {
2
+ private transactionList;
3
+ private txIdToProjectIdMap;
4
+ constructor();
5
+ addTxIdToQueue(txId: string, projectId: string): void;
6
+ getCurrentTxId(): string;
7
+ checkTxnInQueue(txId: string): boolean;
8
+ getProjectIdForTxnId(txId: string): string;
9
+ completeTxn(txId: string): void;
10
+ completeCurrentTxn(): void;
11
+ }
12
+ //# sourceMappingURL=transaction-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-queue.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/transaction-queue.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,kBAAkB,CAAkC;;IAOrD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAS9C,cAAc;IAId,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,oBAAoB,CAAC,IAAI,EAAE,MAAM;IAIjC,WAAW,CAAC,IAAI,EAAE,MAAM;IAKxB,kBAAkB;CAI1B"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionQueue = void 0;
4
+ class TransactionQueue {
5
+ constructor() {
6
+ this.txIdToProjectIdMap = {};
7
+ this.transactionList = [];
8
+ this.txIdToProjectIdMap = {};
9
+ }
10
+ addTxIdToQueue(txId, projectId) {
11
+ if (!this.checkTxnInQueue(txId)) {
12
+ this.transactionList.push(txId);
13
+ this.txIdToProjectIdMap[txId] = projectId;
14
+ }
15
+ else {
16
+ throw new Error(`txId ${txId} is already added to the queue!`);
17
+ }
18
+ }
19
+ getCurrentTxId() {
20
+ return this.transactionList[0];
21
+ }
22
+ checkTxnInQueue(txId) {
23
+ return this.transactionList.includes(txId);
24
+ }
25
+ getProjectIdForTxnId(txId) {
26
+ return this.txIdToProjectIdMap[txId];
27
+ }
28
+ completeTxn(txId) {
29
+ delete this.txIdToProjectIdMap[txId];
30
+ this.transactionList.splice(this.transactionList.indexOf(txId), 1);
31
+ }
32
+ completeCurrentTxn() {
33
+ delete this.txIdToProjectIdMap[this.transactionList[0]];
34
+ this.transactionList.shift();
35
+ }
36
+ }
37
+ exports.TransactionQueue = TransactionQueue;
38
+ //# sourceMappingURL=transaction-queue.js.map