@alwaysai/device-agent 2.0.2 → 2.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.
- package/lib/application-control/config.js +1 -1
- package/lib/application-control/config.js.map +1 -1
- package/lib/application-control/install.d.ts.map +1 -1
- package/lib/application-control/install.js +2 -2
- package/lib/application-control/install.js.map +1 -1
- package/lib/cloud-connection/base-message-handler.d.ts.map +1 -1
- package/lib/cloud-connection/base-message-handler.js +5 -4
- package/lib/cloud-connection/base-message-handler.js.map +1 -1
- package/lib/cloud-connection/bootstrap-agent.d.ts +16 -0
- package/lib/cloud-connection/bootstrap-agent.d.ts.map +1 -0
- package/lib/cloud-connection/{device-agent.js → bootstrap-agent.js} +45 -22
- package/lib/cloud-connection/bootstrap-agent.js.map +1 -0
- package/lib/cloud-connection/connection-manager.d.ts +18 -6
- package/lib/cloud-connection/connection-manager.d.ts.map +1 -1
- package/lib/cloud-connection/connection-manager.js +85 -38
- package/lib/cloud-connection/connection-manager.js.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-cloud-connection.js +13 -12
- package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
- package/lib/cloud-connection/device-agent-message-handler.d.ts.map +1 -1
- package/lib/cloud-connection/device-agent-message-handler.js +19 -18
- package/lib/cloud-connection/device-agent-message-handler.js.map +1 -1
- package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
- package/lib/cloud-connection/live-updates-handler.js +11 -4
- package/lib/cloud-connection/live-updates-handler.js.map +1 -1
- package/lib/cloud-connection/passthrough-handler.d.ts +3 -3
- package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
- package/lib/cloud-connection/passthrough-handler.js +105 -79
- package/lib/cloud-connection/passthrough-handler.js.map +1 -1
- package/lib/cloud-connection/publisher.d.ts +1 -1
- package/lib/cloud-connection/publisher.d.ts.map +1 -1
- package/lib/cloud-connection/publisher.js +22 -20
- package/lib/cloud-connection/publisher.js.map +1 -1
- package/lib/cloud-connection/shadow-handler.js +3 -3
- package/lib/cloud-connection/shadow-handler.js.map +1 -1
- package/lib/cloud-connection/shadow.d.ts.map +1 -1
- package/lib/cloud-connection/shadow.js +1 -1
- package/lib/cloud-connection/shadow.js.map +1 -1
- package/lib/cloud-connection/transaction-manager.d.ts.map +1 -1
- package/lib/cloud-connection/transaction-manager.js +17 -7
- package/lib/cloud-connection/transaction-manager.js.map +1 -1
- package/lib/cloud-connection/transaction-manager.test.js +52 -44
- package/lib/cloud-connection/transaction-manager.test.js.map +1 -1
- package/lib/device-control/device-control.d.ts.map +1 -1
- package/lib/device-control/device-control.js +13 -9
- package/lib/device-control/device-control.js.map +1 -1
- package/lib/docker/docker-compose.d.ts.map +1 -1
- package/lib/docker/docker-compose.js +1 -1
- package/lib/docker/docker-compose.js.map +1 -1
- package/lib/environment.d.ts.map +1 -1
- package/lib/environment.js +1 -1
- package/lib/environment.js.map +1 -1
- package/lib/index.js +12 -0
- package/lib/index.js.map +1 -1
- package/lib/infrastructure/config-check-utility.js +2 -2
- package/lib/infrastructure/config-check-utility.js.map +1 -1
- package/lib/infrastructure/legacy-migration/legacy-migration.d.ts.map +1 -1
- package/lib/infrastructure/legacy-migration/legacy-migration.js +6 -10
- package/lib/infrastructure/legacy-migration/legacy-migration.js.map +1 -1
- package/lib/local-connection/rabbitmq-container.d.ts +6 -0
- package/lib/local-connection/rabbitmq-container.d.ts.map +1 -0
- package/lib/local-connection/rabbitmq-container.js +111 -0
- package/lib/local-connection/rabbitmq-container.js.map +1 -0
- package/lib/local-connection/rabbitmq-container.test.d.ts +2 -0
- package/lib/local-connection/rabbitmq-container.test.d.ts.map +1 -0
- package/lib/local-connection/rabbitmq-container.test.js +219 -0
- package/lib/local-connection/rabbitmq-container.test.js.map +1 -0
- package/lib/subcommands/device/clean.d.ts.map +1 -1
- package/lib/subcommands/device/clean.js +15 -17
- package/lib/subcommands/device/clean.js.map +1 -1
- package/lib/subcommands/device/index.d.ts.map +1 -1
- package/lib/subcommands/device/index.js +3 -1
- package/lib/subcommands/device/index.js.map +1 -1
- package/lib/subcommands/device/local-connection.d.ts +2 -0
- package/lib/subcommands/device/local-connection.d.ts.map +1 -0
- package/lib/subcommands/device/local-connection.js +17 -0
- package/lib/subcommands/device/local-connection.js.map +1 -0
- package/lib/subcommands/index.d.ts +4 -1
- package/lib/subcommands/index.d.ts.map +1 -1
- package/lib/subcommands/index.js +1 -3
- package/lib/subcommands/index.js.map +1 -1
- package/lib/util/check-for-updates.d.ts.map +1 -1
- package/lib/util/check-for-updates.js +2 -2
- package/lib/util/check-for-updates.js.map +1 -1
- package/lib/util/file.d.ts.map +1 -1
- package/lib/util/file.js +6 -1
- package/lib/util/file.js.map +1 -1
- package/lib/util/file.test.js +1 -1
- package/lib/util/file.test.js.map +1 -1
- package/lib/util/get-device-id.d.ts.map +1 -1
- package/lib/util/get-device-id.js +1 -1
- package/lib/util/get-device-id.js.map +1 -1
- package/package.json +3 -3
- package/src/application-control/config.ts +1 -1
- package/src/application-control/install.ts +3 -2
- package/src/cloud-connection/base-message-handler.ts +10 -5
- package/src/cloud-connection/{device-agent.ts → bootstrap-agent.ts} +68 -35
- package/src/cloud-connection/connection-manager.ts +151 -51
- package/src/cloud-connection/device-agent-cloud-connection.ts +17 -19
- package/src/cloud-connection/device-agent-message-handler.ts +10 -7
- package/src/cloud-connection/live-updates-handler.ts +12 -5
- package/src/cloud-connection/passthrough-handler.ts +137 -92
- package/src/cloud-connection/publisher.ts +30 -28
- package/src/cloud-connection/shadow-handler.ts +3 -3
- package/src/cloud-connection/shadow.ts +3 -1
- package/src/cloud-connection/transaction-manager.test.ts +60 -41
- package/src/cloud-connection/transaction-manager.ts +26 -12
- package/src/device-control/device-control.ts +23 -13
- package/src/docker/docker-compose.ts +3 -1
- package/src/environment.ts +1 -2
- package/src/index.ts +19 -0
- package/src/infrastructure/config-check-utility.ts +2 -2
- package/src/infrastructure/legacy-migration/legacy-migration.ts +8 -13
- package/src/local-connection/rabbitmq-container.test.ts +255 -0
- package/src/local-connection/rabbitmq-container.ts +151 -0
- package/src/subcommands/device/clean.ts +20 -19
- package/src/subcommands/device/index.ts +3 -1
- package/src/subcommands/device/local-connection.ts +16 -0
- package/src/subcommands/index.ts +1 -3
- package/src/util/check-for-updates.ts +4 -2
- package/src/util/file.test.ts +1 -1
- package/src/util/file.ts +7 -1
- package/src/util/get-device-id.ts +3 -1
- package/lib/cloud-connection/bootstrap-provision.d.ts +0 -2
- package/lib/cloud-connection/bootstrap-provision.d.ts.map +0 -1
- package/lib/cloud-connection/bootstrap-provision.js +0 -35
- package/lib/cloud-connection/bootstrap-provision.js.map +0 -1
- package/lib/cloud-connection/device-agent.d.ts +0 -21
- package/lib/cloud-connection/device-agent.d.ts.map +0 -1
- package/lib/cloud-connection/device-agent.js.map +0 -1
- package/lib/local-connection/rabbitmq-connection.d.ts +0 -7
- package/lib/local-connection/rabbitmq-connection.d.ts.map +0 -1
- package/lib/local-connection/rabbitmq-connection.js +0 -95
- package/lib/local-connection/rabbitmq-connection.js.map +0 -1
- package/lib/subcommands/rabbitmq-connection.d.ts +0 -2
- package/lib/subcommands/rabbitmq-connection.d.ts.map +0 -1
- package/lib/subcommands/rabbitmq-connection.js +0 -14
- package/lib/subcommands/rabbitmq-connection.js.map +0 -1
- package/lib/util/clean-certs.d.ts +0 -2
- package/lib/util/clean-certs.d.ts.map +0 -1
- package/lib/util/clean-certs.js +0 -17
- package/lib/util/clean-certs.js.map +0 -1
- package/src/cloud-connection/bootstrap-provision.ts +0 -43
- package/src/local-connection/rabbitmq-connection.ts +0 -124
- package/src/subcommands/rabbitmq-connection.ts +0 -11
- package/src/util/clean-certs.ts +0 -16
|
@@ -5,87 +5,108 @@ const util_1 = require("alwaysai/lib/util");
|
|
|
5
5
|
const amqp = require("amqplib");
|
|
6
6
|
const environment_1 = require("../environment");
|
|
7
7
|
const constants_1 = require("../local-connection/constants");
|
|
8
|
-
const
|
|
8
|
+
const rabbitmq_container_1 = require("../local-connection/rabbitmq-container");
|
|
9
9
|
const logger_1 = require("../util/logger");
|
|
10
10
|
const sleep_1 = require("../util/sleep");
|
|
11
|
-
const messageQueue = [];
|
|
12
|
-
const ackQueue = [];
|
|
13
11
|
const MAX_LOCAL_CONNECTION_ATTEMPTS = 10;
|
|
12
|
+
/*
|
|
13
|
+
Responsible for managing the lifecycle of the Local Connection container
|
|
14
|
+
(RabbitMQ), the connection to it, and the passthrough of messages received
|
|
15
|
+
from the local connection to endpoints of provided `Publisher`.
|
|
16
|
+
*/
|
|
14
17
|
class PassthroughHandler {
|
|
15
18
|
constructor(publisher, shadowHandler) {
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
break;
|
|
49
|
-
default:
|
|
50
|
-
this.channel.ack(msg);
|
|
51
|
-
logger_1.logger.debug(`Unknown 'action' package received & acknowledged: ${packet}`);
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.channel.ack(msg);
|
|
57
|
-
logger_1.logger.debug(`Received & acknowledged a RabbitMQ Package of unknown structure: ${parsedPacket}`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
logger_1.logger.error(`There was a problem parsing RabbitMQ packet!\n${(0, util_1.stringifyError)(e)}`);
|
|
19
|
+
this.publisher = publisher;
|
|
20
|
+
this.shadowHandler = shadowHandler;
|
|
21
|
+
}
|
|
22
|
+
async runLocalConnectionChannel() {
|
|
23
|
+
logger_1.logger.debug('Beginning to consume packets from Local Connection');
|
|
24
|
+
await this.channel.consume(this.packetQueue, async (msg) => {
|
|
25
|
+
var _a;
|
|
26
|
+
if (!(msg === null || msg === void 0 ? void 0 : msg.content))
|
|
27
|
+
return;
|
|
28
|
+
let packet;
|
|
29
|
+
try {
|
|
30
|
+
const raw = msg.content.toString();
|
|
31
|
+
// Currently, edgeIQ is calling json.dumps twice, so a single JSON.parse
|
|
32
|
+
// results in a string return value, which is needed by publishToCloudWithAck.
|
|
33
|
+
// We will update the edgeIQ implementation in the future.
|
|
34
|
+
packet = JSON.parse(raw);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
logger_1.logger.error(`Error parsing RabbitMQ packet: ${(0, util_1.stringifyError)(err)}`);
|
|
38
|
+
this.channel.ack(msg);
|
|
39
|
+
logger_1.logger.debug('Problematic packet was acknowledged');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// We do a second call to JSON.parse here only to retrieve the 'action' field
|
|
43
|
+
// NOTE: this second call to JSON.parse seems to alter the packet contents
|
|
44
|
+
// (at least when a rounded floating point value is included)
|
|
45
|
+
const action = (_a = JSON.parse(packet)) === null || _a === void 0 ? void 0 : _a['action'];
|
|
46
|
+
switch (action) {
|
|
47
|
+
case 'analytics': {
|
|
48
|
+
try {
|
|
49
|
+
const success = await this.publisher.publishToCloudWithAck(packet);
|
|
50
|
+
if (success) {
|
|
62
51
|
this.channel.ack(msg);
|
|
63
|
-
logger_1.logger.debug('Problematic packet was acknowledged');
|
|
64
52
|
}
|
|
53
|
+
else {
|
|
54
|
+
this.channel.reject(msg, true); // requeue on failure
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
logger_1.logger.error(`Error publishing analytics packet: ${(0, util_1.stringifyError)(err)}`);
|
|
59
|
+
this.channel.reject(msg, true);
|
|
65
60
|
}
|
|
61
|
+
break;
|
|
66
62
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
case 'heartbeat': {
|
|
64
|
+
this.channel.ack(msg);
|
|
65
|
+
logger_1.logger.silly(`Heartbeat packet received & acknowledged:\n${packet}`);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
default: {
|
|
69
|
+
this.channel.ack(msg);
|
|
70
|
+
if (action) {
|
|
71
|
+
logger_1.logger.debug(`Unknown 'action' packet received & acknowledged:\n${packet}`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
logger_1.logger.debug(`Received & acknowledged a RabbitMQ packet of unknown structure:\n${packet}`);
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}, { noAck: false } // message must be explicitly acked/rejected
|
|
80
|
+
);
|
|
73
81
|
}
|
|
74
82
|
async establishLocalConnection() {
|
|
75
83
|
let connectAttempts = 0;
|
|
76
84
|
let connected = false;
|
|
77
|
-
logger_1.logger.debug(`Establishing
|
|
85
|
+
logger_1.logger.debug(`Establishing Local Connection...`);
|
|
78
86
|
while (connectAttempts <= MAX_LOCAL_CONNECTION_ATTEMPTS &&
|
|
79
87
|
this.connection === undefined) {
|
|
80
88
|
try {
|
|
81
89
|
this.connection = await amqp.connect(`amqp://${constants_1.LOCAL_CONNECTION_HOST}:${constants_1.LOCAL_CONNECTION_PORT}`);
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
this.connection.on('error', async (e) => {
|
|
91
|
+
logger_1.logger.error(`Local Connection failed due to ${(0, util_1.stringifyError)(e)}. Reconnect will be handled by "close"`);
|
|
92
|
+
});
|
|
93
|
+
this.connection.on('close', async () => {
|
|
94
|
+
// Close should be called for every connection loss, error or not.
|
|
95
|
+
logger_1.logger.warn(`Local Connection closed by server. Attempting to reconnect...`);
|
|
96
|
+
const stopped = await (0, rabbitmq_container_1.stopRabbitMQContainer)();
|
|
97
|
+
if (stopped === false) {
|
|
98
|
+
logger_1.logger.warn('Failed to stop Local Connection container. Restart may fail...');
|
|
99
|
+
}
|
|
86
100
|
this.connection = undefined;
|
|
87
|
-
await this.
|
|
101
|
+
await this.run();
|
|
88
102
|
});
|
|
103
|
+
this.connection.on('blocked', async () => {
|
|
104
|
+
logger_1.logger.warn(`Local Connection blocked.`);
|
|
105
|
+
});
|
|
106
|
+
this.connection.on('unblocked', async () => {
|
|
107
|
+
logger_1.logger.warn(`Local Connection unblocked.`);
|
|
108
|
+
});
|
|
109
|
+
this.channel = await this.connection.createChannel();
|
|
89
110
|
connected = true;
|
|
90
111
|
}
|
|
91
112
|
catch (e) {
|
|
@@ -101,7 +122,7 @@ class PassthroughHandler {
|
|
|
101
122
|
await this.channel.assertQueue(this.packetQueue, {
|
|
102
123
|
durable: true
|
|
103
124
|
});
|
|
104
|
-
logger_1.logger.info(`Local
|
|
125
|
+
logger_1.logger.info(`Local Connection established.`);
|
|
105
126
|
}
|
|
106
127
|
else {
|
|
107
128
|
throw new Error('Unable to establish connection to alwaysAI Local Connection, please try restarting Device Agent.');
|
|
@@ -116,24 +137,29 @@ class PassthroughHandler {
|
|
|
116
137
|
};
|
|
117
138
|
await this.shadowHandler.updateDeviceAgentStatusShadow(deviceAgentPassthroughStatus);
|
|
118
139
|
}
|
|
119
|
-
async
|
|
120
|
-
if (environment_1.ALWAYSAI_ANALYTICS_PASSTHROUGH ===
|
|
121
|
-
logger_1.logger.debug(`
|
|
122
|
-
await this.publishPassthroughStatusUpdate('starting');
|
|
123
|
-
await (0, rabbitmq_connection_1.setupRabbitMQContainer)();
|
|
124
|
-
try {
|
|
125
|
-
await this.establishLocalConnection();
|
|
126
|
-
await this.runChannel();
|
|
127
|
-
await this.publishPassthroughStatusUpdate('running', `Passthrough running on host: ${constants_1.LOCAL_CONNECTION_HOST} and channel key: ${constants_1.LOCAL_CONNECTION_ROUTING_KEY}`);
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
logger_1.logger.error(`There was a problem maintaining RabbitMQ connection!\n${(0, util_1.stringifyError)(e)}`);
|
|
131
|
-
await this.publishPassthroughStatusUpdate('error', (0, util_1.stringifyError)(e));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
140
|
+
async run() {
|
|
141
|
+
if (environment_1.ALWAYSAI_ANALYTICS_PASSTHROUGH === false) {
|
|
142
|
+
logger_1.logger.debug(`alwaysAI Local Connection disabled`);
|
|
135
143
|
await this.publishPassthroughStatusUpdate('disabled');
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
logger_1.logger.debug(`Setting up alwaysAI Local Connection on host: ${constants_1.LOCAL_CONNECTION_HOST} and channel key: ${constants_1.LOCAL_CONNECTION_ROUTING_KEY}`);
|
|
147
|
+
await this.publishPassthroughStatusUpdate('starting');
|
|
148
|
+
const containerUp = await (0, rabbitmq_container_1.runRabbitMQContainer)();
|
|
149
|
+
if (!containerUp) {
|
|
150
|
+
await this.publishPassthroughStatusUpdate('error', 'Local Connection container failed to start!');
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
await this.establishLocalConnection();
|
|
155
|
+
await this.runLocalConnectionChannel();
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
logger_1.logger.error(`There was a problem maintaining RabbitMQ connection! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
159
|
+
await this.publishPassthroughStatusUpdate('error', (0, util_1.stringifyError)(e));
|
|
160
|
+
return;
|
|
136
161
|
}
|
|
162
|
+
await this.publishPassthroughStatusUpdate('running', `Passthrough running on host: ${constants_1.LOCAL_CONNECTION_HOST} and channel key: ${constants_1.LOCAL_CONNECTION_ROUTING_KEY}`);
|
|
137
163
|
}
|
|
138
164
|
}
|
|
139
165
|
exports.PassthroughHandler = PassthroughHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":";;;AAIA,4CAAmD;AACnD,gCAAgC;AAChC,gDAAgE;AAChE,6DAIuC;AACvC
|
|
1
|
+
{"version":3,"file":"passthrough-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":";;;AAIA,4CAAmD;AACnD,gCAAgC;AAChC,gDAAgE;AAChE,6DAIuC;AACvC,+EAGgD;AAChD,2CAAwC;AACxC,yCAAkC;AAIlC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC;;;;EAIE;AACF,MAAa,kBAAkB;IAO7B,YAAY,SAAoB,EAAE,aAA4B;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,eAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAEnE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACxB,IAAI,CAAC,WAAW,EAChB,KAAK,EAAE,GAAG,EAAE,EAAE;;YACZ,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA;gBAAE,OAAO;YAE1B,IAAI,MAAc,CAAC;YAEnB,IAAI;gBACF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnC,wEAAwE;gBACxE,8EAA8E;gBAC9E,0DAA0D;gBAC1D,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC1B;YAAC,OAAO,GAAG,EAAE;gBACZ,eAAM,CAAC,KAAK,CAAC,kCAAkC,IAAA,qBAAc,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,eAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACpD,OAAO;aACR;YAED,6EAA6E;YAC7E,0EAA0E;YAC1E,6DAA6D;YAC7D,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAG,QAAQ,CAAC,CAAC;YAE9C,QAAQ,MAAM,EAAE;gBACd,KAAK,WAAW,CAAC,CAAC;oBAChB,IAAI;wBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CACxD,MAAM,CACP,CAAC;wBAEF,IAAI,OAAO,EAAE;4BACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;yBACvB;6BAAM;4BACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB;yBACtD;qBACF;oBAAC,OAAO,GAAG,EAAE;wBACZ,eAAM,CAAC,KAAK,CACV,sCAAsC,IAAA,qBAAc,EAAC,GAAG,CAAC,EAAE,CAC5D,CAAC;wBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBAChC;oBACD,MAAM;iBACP;gBAED,KAAK,WAAW,CAAC,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,eAAM,CAAC,KAAK,CACV,8CAA8C,MAAM,EAAE,CACvD,CAAC;oBACF,MAAM;iBACP;gBAED,OAAO,CAAC,CAAC;oBACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,IAAI,MAAM,EAAE;wBACV,eAAM,CAAC,KAAK,CACV,qDAAqD,MAAM,EAAE,CAC9D,CAAC;qBACH;yBAAM;wBACL,eAAM,CAAC,KAAK,CACV,oEAAoE,MAAM,EAAE,CAC7E,CAAC;qBACH;oBACD,MAAM;iBACP;aACF;QACH,CAAC,EACD,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,4CAA4C;SAC9D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,eAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACjD,OACE,eAAe,IAAI,6BAA6B;YAChD,IAAI,CAAC,UAAU,KAAK,SAAS,EAC7B;YACA,IAAI;gBACF,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAClC,UAAU,iCAAqB,IAAI,iCAAqB,EAAE,CAC3D,CAAC;gBAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;oBACtC,eAAM,CAAC,KAAK,CACV,kCAAkC,IAAA,qBAAc,EAC9C,CAAC,CACF,wCAAwC,CAC1C,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBACrC,kEAAkE;oBAClE,eAAM,CAAC,IAAI,CACT,+DAA+D,CAChE,CAAC;oBACF,MAAM,OAAO,GAAG,MAAM,IAAA,0CAAqB,GAAE,CAAC;oBAC9C,IAAI,OAAO,KAAK,KAAK,EAAE;wBACrB,eAAM,CAAC,IAAI,CACT,gEAAgE,CACjE,CAAC;qBACH;oBACD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;oBAC5B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;oBACvC,eAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;oBACzC,eAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAErD,SAAS,GAAG,IAAI,CAAC;aAClB;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,GAAG,eAAe,CAAC;gBAC5D,eAAM,CAAC,KAAK,CACV,8DAA8D,eAAe,OAAO,6BAA6B,KAC/G,qBAAqB,GAAG,IAC1B,6BAA6B,CAC9B,CAAC;gBACF,MAAM,IAAA,eAAK,EAAC,qBAAqB,CAAC,CAAC;gBACnC,eAAe,IAAI,CAAC,CAAC;aACtB;SACF;QACD,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2FAA2F;YAC3H,IAAI,CAAC,WAAW,GAAG,GAAG,wCAA4B,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC/C,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,eAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;SAC9C;aAAM;YACL,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;SACH;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAC1C,MAA8B,EAC9B,OAAgB;QAEhB,MAAM,4BAA4B,GAAkC;YAClE,WAAW,EAAE;gBACX,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;aACvB;SACF,CAAC;QACF,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CACpD,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,4CAA8B,KAAK,KAAK,EAAE;YAC5C,eAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;YACtD,OAAO;SACR;QAED,eAAM,CAAC,KAAK,CACV,iDAAiD,iCAAqB,qBAAqB,wCAA4B,EAAE,CAC1H,CAAC;QACF,MAAM,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,IAAA,yCAAoB,GAAE,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,CAAC,8BAA8B,CACvC,OAAO,EACP,6CAA6C,CAC9C,CAAC;YACF,OAAO;SACR;QACD,IAAI;YACF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACV,eAAM,CAAC,KAAK,CACV,gEAAgE,IAAA,qBAAc,EAC5E,CAAC,CACF,EAAE,CACJ,CAAC;YACF,MAAM,IAAI,CAAC,8BAA8B,CAAC,OAAO,EAAE,IAAA,qBAAc,EAAC,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO;SACR;QACD,MAAM,IAAI,CAAC,8BAA8B,CACvC,SAAS,EACT,gCAAgC,iCAAqB,qBAAqB,wCAA4B,EAAE,CACzG,CAAC;IACJ,CAAC;CACF;AAnND,gDAmNC"}
|
|
@@ -8,7 +8,7 @@ export declare class Publisher {
|
|
|
8
8
|
private readonly toCloudTopic;
|
|
9
9
|
constructor(connectionManager: ConnectionManager, clientId: string);
|
|
10
10
|
publish(topic: string, payload: string, customLogger?: winston.LeveledLogMethod): void;
|
|
11
|
-
publishToCloudWithAck(payload: string
|
|
11
|
+
publishToCloudWithAck(payload: string): Promise<boolean>;
|
|
12
12
|
publishDeviceAgentMessage(topic: string, message: ToClientMessage | ToCloudMessage, logger?: winston.LeveledLogMethod): void;
|
|
13
13
|
publishToClient(message: ToClientMessage, logger?: winston.LeveledLogMethod): void;
|
|
14
14
|
publishToCloud(message: ToCloudMessage, logger?: winston.LeveledLogMethod): void;
|
|
@@ -1 +1 @@
|
|
|
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;AACxC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
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;AACxC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,qBAAa,SAAS;IACpB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM;IAO3D,OAAO,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,OAAO,CAAC,gBAA+B;IAsB1C,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB9D,yBAAyB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,eAAe,GAAG,cAAc,EACzC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB;IAM5B,eAAe,CACpB,OAAO,EAAE,eAAe,EACxB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB;IAK5B,cAAc,CACnB,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB;IAM5B,WAAW,IAAI,MAAM;CAG7B"}
|
|
@@ -13,29 +13,31 @@ class Publisher {
|
|
|
13
13
|
publish(topic, payload, customLogger = logger_1.logger.debug) {
|
|
14
14
|
// TODO: topic validation
|
|
15
15
|
// By default, log the published message at debug level, unless otherwise specified
|
|
16
|
+
const publishPacket = {
|
|
17
|
+
topicName: topic,
|
|
18
|
+
qos: this.connectionManager.qos,
|
|
19
|
+
payload: Buffer.from(payload)
|
|
20
|
+
};
|
|
16
21
|
customLogger(`Publishing message:\nTopic: ${topic}\nMessage: ${JSON.stringify(JSON.parse(payload), null, 2)}`);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.publish(topic, payload, (err) => {
|
|
20
|
-
if (err) {
|
|
21
|
-
logger_1.logger.error(`Error publishing message: \nTopic: ${topic}\nMessage: ${payload}\nError: ${err}`);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
22
|
+
// TODO: Change publish() to async and resolve issues where it's used synchronously.
|
|
23
|
+
void this.connectionManager.getIoTDevice().publish(publishPacket);
|
|
24
24
|
}
|
|
25
|
-
publishToCloudWithAck(payload
|
|
25
|
+
async publishToCloudWithAck(payload) {
|
|
26
26
|
const topic = this.toCloudTopic;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
const publishPacket = {
|
|
28
|
+
topicName: topic,
|
|
29
|
+
qos: this.connectionManager.qos,
|
|
30
|
+
payload: Buffer.from(payload)
|
|
31
|
+
};
|
|
32
|
+
try {
|
|
33
|
+
await this.connectionManager.getIoTDevice().publish(publishPacket);
|
|
34
|
+
logger_1.logger.debug(`Successfully published message:\nTopic: ${topic}\nMessage: ${payload}`);
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
logger_1.logger.error(`Error publishing message:\nTopic: ${topic}\nMessage: ${payload}\nError: ${err}`);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
39
41
|
}
|
|
40
42
|
publishDeviceAgentMessage(topic, message, logger) {
|
|
41
43
|
const messageStr = JSON.stringify(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yEAKwC;
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,yEAKwC;AAKxC,MAAa,SAAS;IAMpB,YAAY,iBAAoC,EAAE,QAAgB;QAChE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,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,CACZ,KAAa,EACb,OAAe,EACf,eAAyC,eAAM,CAAC,KAAK;QAErD,yBAAyB;QACzB,mFAAmF;QACnF,MAAM,aAAa,GAAwB;YACzC,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG;YAC/B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9B,CAAC;QAEF,YAAY,CACV,+BAA+B,KAAK,cAAc,IAAI,CAAC,SAAS,CAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EACnB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;QAEF,oFAAoF;QACpF,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,OAAe;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAEhC,MAAM,aAAa,GAAwB;YACzC,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG;YAC/B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9B,CAAC;QAEF,IAAI;YACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACnE,eAAM,CAAC,KAAK,CACV,2CAA2C,KAAK,cAAc,OAAO,EAAE,CACxE,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,eAAM,CAAC,KAAK,CACV,qCAAqC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CACjF,CAAC;YACF,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEM,yBAAyB,CAC9B,KAAa,EACb,OAAyC,EACzC,MAAiC;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEM,eAAe,CACpB,OAAwB,EACxB,MAAiC;QAEjC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAEM,cAAc,CACnB,OAAuB,EACvB,MAAiC;QAEjC,kDAAkD;QAClD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAxFD,8BAwFC"}
|
|
@@ -55,7 +55,7 @@ class ShadowHandler {
|
|
|
55
55
|
newAppCfg = JSON.parse(appConfig);
|
|
56
56
|
}
|
|
57
57
|
catch (e) {
|
|
58
|
-
logger_1.logger.error(`Could not parse the appConfig for transaction ${txId}
|
|
58
|
+
logger_1.logger.error(`Could not parse the appConfig for transaction ${txId}! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
61
|
if (!(0, app_configuration_schemas_1.validateAppConfig)(newAppCfg)) {
|
|
@@ -81,7 +81,7 @@ class ShadowHandler {
|
|
|
81
81
|
newEnvVars = JSON.parse(envVars);
|
|
82
82
|
}
|
|
83
83
|
catch (e) {
|
|
84
|
-
logger_1.logger.error(`Could not parse the environment variables for transaction ${txId}
|
|
84
|
+
logger_1.logger.error(`Could not parse the environment variables for transaction ${txId}! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
85
85
|
return null;
|
|
86
86
|
}
|
|
87
87
|
if (!(0, device_agent_schemas_1.validateEnvVarSchemaShadowUpdate)(newEnvVars)) {
|
|
@@ -311,7 +311,7 @@ class ProjectShadowMessageHandler extends base_message_handler_1.BaseHandler {
|
|
|
311
311
|
stepName: topic
|
|
312
312
|
})
|
|
313
313
|
.catch((e) => {
|
|
314
|
-
logger_1.logger.error(`There was an issue updating project shadow config for ${projectId}
|
|
314
|
+
logger_1.logger.error(`There was an issue updating project shadow config for ${projectId}! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
315
315
|
}));
|
|
316
316
|
}
|
|
317
317
|
await Promise.all(shadowUpdatePromises);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shadow-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;AAGhE,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;;;;;
|
|
1
|
+
{"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/shadow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAGhE,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;;;;;EAoClB,CAAC"}
|
|
@@ -29,7 +29,7 @@ const getAppCfgModelsDiff = async ({ newAppCfg, projectId }) => {
|
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
catch (e) {
|
|
32
|
-
logger_1.logger.error(`Error parsing app config update for ${projectId}
|
|
32
|
+
logger_1.logger.error(`Error parsing app config update for ${projectId}! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
33
33
|
}
|
|
34
34
|
return { scripts: newScripts, updatedModels, untouchedModels };
|
|
35
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,gEAAwD;AAExD,4CAAmD;AAU5C,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,CACV,uCAAuC,SAAS,
|
|
1
|
+
{"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,gEAAwD;AAExD,4CAAmD;AAU5C,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,CACV,uCAAuC,SAAS,aAAa,IAAA,qBAAc,EACzE,CAAC,CACF,EAAE,CACJ,CAAC;KACH;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AACjE,CAAC,CAAC;AAzCW,QAAA,mBAAmB,uBAyC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,
|
|
1
|
+
{"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAa5D,oBAAY,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEpE,oBAAY,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAErD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;YAC1C,gBAAgB;IAoD9B,OAAO,CAAC,iBAAiB;gBAab,kBAAkB,EAAE,kBAAkB;IAM3C,MAAM;;;;MAIV;IAEU,kBAAkB,CAAC,KAAK,EAAE;QACrC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B;IAwDM,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhE,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5D,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,uBAAuB,IAAI,OAAO;IAIlC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK3D,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI/D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI3D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAS5D,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAUtD,mBAAmB,CACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,6BAA6B,GAC/C,IAAI;CAoBR"}
|
|
@@ -22,12 +22,12 @@ class TransactionManager {
|
|
|
22
22
|
// Check if the transaction already exists
|
|
23
23
|
if (this.detailsByTx[txId]) {
|
|
24
24
|
const txnDetails = this.detailsByTx[txId];
|
|
25
|
-
throw new coded_error_1.CodedError(`Transaction ${txId} already ongoing
|
|
25
|
+
throw new coded_error_1.CodedError(`Transaction ${txId} already ongoing:\n${JSON.stringify(txnDetails, null, 2)}`, this.Errors.TRANSACTION_ONGOING);
|
|
26
26
|
}
|
|
27
27
|
// Check if there is any ongoing transactions for project
|
|
28
28
|
if (this.detailsByProject[projectId]) {
|
|
29
29
|
const txnDetails = this.detailsByProject[projectId];
|
|
30
|
-
throw new coded_error_1.CodedError(`Project ${projectId} already has an ongoing transaction
|
|
30
|
+
throw new coded_error_1.CodedError(`Project ${projectId} already has an ongoing transaction:\n${JSON.stringify(txnDetails, null, 2)}`, this.Errors.PROJECT_TRANSACTION_ONGOING);
|
|
31
31
|
}
|
|
32
32
|
// Map the Transaction ID with Project ID
|
|
33
33
|
const txDetails = {
|
|
@@ -54,11 +54,20 @@ class TransactionManager {
|
|
|
54
54
|
}
|
|
55
55
|
async runTransactionStep(props) {
|
|
56
56
|
const { func, projectId, txId, start, liveUpdatesPublishFn, stepName, errorFn, successFn } = props;
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
try {
|
|
58
|
+
if (start) {
|
|
59
|
+
await this.startTransaction(txId, projectId, liveUpdatesPublishFn, stepName);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.updateTransaction(txId, stepName);
|
|
63
|
+
}
|
|
59
64
|
}
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
catch (e) {
|
|
66
|
+
logger_1.logger.error(`Failed to start or update cmd for ${projectId}! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
67
|
+
if (errorFn) {
|
|
68
|
+
errorFn(txId, e.message);
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
62
71
|
}
|
|
63
72
|
try {
|
|
64
73
|
const completed = await func();
|
|
@@ -70,11 +79,12 @@ class TransactionManager {
|
|
|
70
79
|
}
|
|
71
80
|
}
|
|
72
81
|
catch (e) {
|
|
73
|
-
logger_1.logger.error(`Failed to execute cmd for ${projectId}
|
|
82
|
+
logger_1.logger.error(`Failed to execute cmd for ${projectId}! Error:\n${(0, util_1.stringifyError)(e)}`);
|
|
74
83
|
this.completeTransaction(txId);
|
|
75
84
|
if (errorFn) {
|
|
76
85
|
errorFn(txId, e.message);
|
|
77
86
|
}
|
|
87
|
+
return;
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
getTransactionFromProject(projectId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":"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"}
|