@alwaysai/device-agent 1.3.0-1 → 1.3.1-1

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 (115) hide show
  1. package/lib/application-control/environment-variables.d.ts +1 -0
  2. package/lib/application-control/environment-variables.d.ts.map +1 -1
  3. package/lib/application-control/environment-variables.js +22 -20
  4. package/lib/application-control/environment-variables.js.map +1 -1
  5. package/lib/application-control/environment-variables.test.js +37 -2
  6. package/lib/application-control/environment-variables.test.js.map +1 -1
  7. package/lib/application-control/install.js +1 -1
  8. package/lib/application-control/install.js.map +1 -1
  9. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +4 -3
  10. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  11. package/lib/cloud-connection/device-agent-cloud-connection.js +149 -113
  12. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  13. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  14. package/lib/cloud-connection/live-updates-handler.js +30 -25
  15. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  16. package/lib/cloud-connection/live-updates-handler.test.js +15 -0
  17. package/lib/cloud-connection/live-updates-handler.test.js.map +1 -1
  18. package/lib/cloud-connection/messages.d.ts +1 -3
  19. package/lib/cloud-connection/messages.d.ts.map +1 -1
  20. package/lib/cloud-connection/messages.js +1 -9
  21. package/lib/cloud-connection/messages.js.map +1 -1
  22. package/lib/cloud-connection/publisher.d.ts +1 -0
  23. package/lib/cloud-connection/publisher.d.ts.map +1 -1
  24. package/lib/cloud-connection/publisher.js +3 -0
  25. package/lib/cloud-connection/publisher.js.map +1 -1
  26. package/lib/cloud-connection/shadow-handler.d.ts +12 -0
  27. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  28. package/lib/cloud-connection/shadow-handler.js +36 -22
  29. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  30. package/lib/cloud-connection/shadow-handler.test.js +84 -40
  31. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  32. package/lib/cloud-connection/transaction-manager.d.ts +25 -9
  33. package/lib/cloud-connection/transaction-manager.d.ts.map +1 -1
  34. package/lib/cloud-connection/transaction-manager.js +97 -28
  35. package/lib/cloud-connection/transaction-manager.js.map +1 -1
  36. package/lib/cloud-connection/transaction-manager.test.js +169 -22
  37. package/lib/cloud-connection/transaction-manager.test.js.map +1 -1
  38. package/lib/secure-tunneling/secure-tunneling.d.ts +105 -0
  39. package/lib/secure-tunneling/secure-tunneling.d.ts.map +1 -0
  40. package/lib/secure-tunneling/secure-tunneling.js +435 -0
  41. package/lib/secure-tunneling/secure-tunneling.js.map +1 -0
  42. package/lib/secure-tunneling/secure-tunneling.test.d.ts +2 -0
  43. package/lib/secure-tunneling/secure-tunneling.test.d.ts.map +1 -0
  44. package/lib/secure-tunneling/secure-tunneling.test.js +1070 -0
  45. package/lib/secure-tunneling/secure-tunneling.test.js.map +1 -0
  46. package/lib/secure-tunneling/spawner-detached.d.ts +6 -0
  47. package/lib/secure-tunneling/spawner-detached.d.ts.map +1 -0
  48. package/lib/secure-tunneling/spawner-detached.js +90 -0
  49. package/lib/secure-tunneling/spawner-detached.js.map +1 -0
  50. package/lib/subcommands/app/analytics.d.ts +10 -0
  51. package/lib/subcommands/app/analytics.d.ts.map +1 -0
  52. package/lib/subcommands/app/analytics.js +83 -0
  53. package/lib/subcommands/app/analytics.js.map +1 -0
  54. package/lib/subcommands/app/index.d.ts.map +1 -1
  55. package/lib/subcommands/app/index.js +3 -1
  56. package/lib/subcommands/app/index.js.map +1 -1
  57. package/lib/subcommands/app/models.d.ts +0 -5
  58. package/lib/subcommands/app/models.d.ts.map +1 -1
  59. package/lib/subcommands/app/models.js +11 -47
  60. package/lib/subcommands/app/models.js.map +1 -1
  61. package/lib/subcommands/app/status.d.ts +1 -0
  62. package/lib/subcommands/app/status.d.ts.map +1 -1
  63. package/lib/subcommands/app/status.js +14 -3
  64. package/lib/subcommands/app/status.js.map +1 -1
  65. package/lib/subcommands/app/version.d.ts +2 -1
  66. package/lib/subcommands/app/version.d.ts.map +1 -1
  67. package/lib/subcommands/app/version.js +16 -3
  68. package/lib/subcommands/app/version.js.map +1 -1
  69. package/lib/util/cloud-mode-ready.d.ts +1 -0
  70. package/lib/util/cloud-mode-ready.d.ts.map +1 -1
  71. package/lib/util/cloud-mode-ready.js +36 -1
  72. package/lib/util/cloud-mode-ready.js.map +1 -1
  73. package/lib/util/parsing.d.ts +2 -0
  74. package/lib/util/parsing.d.ts.map +1 -0
  75. package/lib/util/parsing.js +17 -0
  76. package/lib/util/parsing.js.map +1 -0
  77. package/package.json +4 -6
  78. package/readme.md +146 -92
  79. package/src/application-control/environment-variables.test.ts +43 -3
  80. package/src/application-control/environment-variables.ts +29 -19
  81. package/src/application-control/install.ts +1 -1
  82. package/src/cloud-connection/device-agent-cloud-connection.ts +216 -172
  83. package/src/cloud-connection/live-updates-handler.test.ts +20 -0
  84. package/src/cloud-connection/live-updates-handler.ts +45 -52
  85. package/src/cloud-connection/messages.ts +1 -14
  86. package/src/cloud-connection/publisher.ts +4 -0
  87. package/src/cloud-connection/shadow-handler.test.ts +93 -41
  88. package/src/cloud-connection/shadow-handler.ts +57 -21
  89. package/src/cloud-connection/transaction-manager.test.ts +183 -27
  90. package/src/cloud-connection/transaction-manager.ts +167 -36
  91. package/src/secure-tunneling/secure-tunneling.test.ts +1239 -0
  92. package/src/secure-tunneling/secure-tunneling.ts +606 -0
  93. package/src/secure-tunneling/spawner-detached.ts +107 -0
  94. package/src/subcommands/app/analytics.ts +99 -0
  95. package/src/subcommands/app/index.ts +4 -3
  96. package/src/subcommands/app/models.ts +13 -49
  97. package/src/subcommands/app/status.ts +20 -3
  98. package/src/subcommands/app/version.ts +19 -4
  99. package/src/util/cloud-mode-ready.ts +36 -0
  100. package/src/util/parsing.ts +11 -0
  101. package/lib/cloud-connection/cmd-status.d.ts +0 -8
  102. package/lib/cloud-connection/cmd-status.d.ts.map +0 -1
  103. package/lib/cloud-connection/cmd-status.js +0 -62
  104. package/lib/cloud-connection/cmd-status.js.map +0 -1
  105. package/lib/cloud-connection/message-builder.d.ts +0 -7
  106. package/lib/cloud-connection/message-builder.d.ts.map +0 -1
  107. package/lib/cloud-connection/message-builder.js +0 -63
  108. package/lib/cloud-connection/message-builder.js.map +0 -1
  109. package/lib/secure-tunneling/index.d.ts +0 -5
  110. package/lib/secure-tunneling/index.d.ts.map +0 -1
  111. package/lib/secure-tunneling/index.js +0 -64
  112. package/lib/secure-tunneling/index.js.map +0 -1
  113. package/src/cloud-connection/cmd-status.ts +0 -71
  114. package/src/cloud-connection/message-builder.ts +0 -117
  115. package/src/secure-tunneling/index.ts +0 -74
@@ -1,14 +1,30 @@
1
+ import { LiveUpdatesHandler } from './live-updates-handler';
2
+ import { Publisher } from './publisher';
1
3
  export declare class TransactionManager {
2
- private txToProject;
3
- private projectToTx;
4
- constructor();
5
- AddTransactionErrors: {
6
- TRANSACTION_ID_ONGOING: "TRANSACTION_ID_ONGOING";
7
- PROJECT_ID_ONGOING: "PROJECT_ID_ONGOING";
4
+ private detailsByTx;
5
+ private detailsByProject;
6
+ private liveUpdatesHandler;
7
+ private publisher;
8
+ private startTransaction;
9
+ private updateTransaction;
10
+ constructor(publisher: Publisher, liveUpdatesHandler: LiveUpdatesHandler);
11
+ Errors: {
12
+ TRANSACTION_ONGOING: "TRANSACTION_ONGOING";
13
+ PROJECT_ONGOING: "PROJECT_ONGOING";
14
+ TRANSACTION_NOT_ONGOING: "TRANSACTION_NOT_ONGOING";
8
15
  };
9
- addTransaction(txId: string, projectId: string, step?: string): void;
10
- getTransactionFromProject(projectId: string): string;
11
- getProjectFromTransaction(txId: string): string;
16
+ runTransactionStep(props: {
17
+ func: () => Promise<boolean>;
18
+ projectId: string;
19
+ txId: string;
20
+ start: boolean;
21
+ stepName?: string;
22
+ }): Promise<void>;
23
+ getTransactionFromProject(projectId: string): string | undefined;
24
+ isOngoingTransactionForProjectID(projectId: string): boolean;
25
+ isOngoingTransaction(txId: string): boolean;
26
+ isAnyOngoingTransaction(): boolean;
27
+ getProjectFromTransaction(txId: string): string | undefined;
12
28
  completeTransaction(txId: string): void;
13
29
  }
14
30
  //# sourceMappingURL=transaction-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":"AAGA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CACd;IACL,OAAO,CAAC,WAAW,CAAuD;;IAOnE,oBAAoB;;;MAGxB;IAEI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAwB7D,yBAAyB,CAAC,SAAS,EAAE,MAAM;IAK3C,yBAAyB,CAAC,IAAI,EAAE,MAAM;IAKtC,mBAAmB,CAAC,IAAI,EAAE,MAAM;CAOxC"}
1
+ {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAcxC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,iBAAiB;gBAab,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB;IAOjE,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,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IA4CM,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,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAmB/C"}
@@ -1,52 +1,121 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TransactionManager = void 0;
4
+ const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
5
+ const logger_1 = require("../util/logger");
4
6
  const util_1 = require("alwaysai/lib/util");
5
7
  const coded_error_1 = require("@carnesen/coded-error");
6
8
  class TransactionManager {
7
- constructor() {
8
- this.txToProject = {};
9
- this.projectToTx = {};
10
- this.AddTransactionErrors = (0, util_1.keyMirror)({
11
- TRANSACTION_ID_ONGOING: null,
12
- PROJECT_ID_ONGOING: null
9
+ constructor(publisher, liveUpdatesHandler) {
10
+ this.detailsByTx = {};
11
+ this.detailsByProject = {};
12
+ this.Errors = (0, util_1.keyMirror)({
13
+ TRANSACTION_ONGOING: null,
14
+ PROJECT_ONGOING: null,
15
+ TRANSACTION_NOT_ONGOING: null
13
16
  });
14
- this.txToProject = {};
15
- this.projectToTx = {};
17
+ this.detailsByTx = {};
18
+ this.detailsByProject = {};
19
+ this.publisher = publisher;
20
+ this.liveUpdatesHandler = liveUpdatesHandler;
16
21
  }
17
- addTransaction(txId, projectId, step) {
18
- // Check if the Transaction already exists
19
- if (this.txToProject[txId]) {
20
- const { projectId, step } = this.txToProject[txId];
21
- throw new coded_error_1.CodedError(`Transaction ID ${txId} already ongoing! project ID: ${projectId} step: ${step}`, this.AddTransactionErrors.TRANSACTION_ID_ONGOING);
22
+ startTransaction(txId, projectId, stepName) {
23
+ // Check if the transaction already exists
24
+ if (this.detailsByTx[txId]) {
25
+ const txnDetails = this.detailsByTx[txId];
26
+ throw new coded_error_1.CodedError(`Transaction ${txId} already ongoing!\n${JSON.stringify(txnDetails, null, 2)}`, this.Errors.TRANSACTION_ONGOING);
27
+ }
28
+ // Check if there is any ongoing transactions for project
29
+ if (this.detailsByProject[projectId]) {
30
+ const txnDetails = this.detailsByProject[projectId];
31
+ throw new coded_error_1.CodedError(`Project ${projectId} already has an ongoing transaction!\n${JSON.stringify(txnDetails, null, 2)}`, this.Errors.PROJECT_ONGOING);
32
+ }
33
+ // Map the Transaction ID with Project ID
34
+ const txDetails = {
35
+ txId,
36
+ projectId,
37
+ stepName,
38
+ start: new Date().toLocaleString()
39
+ };
40
+ this.detailsByTx[txId] = txDetails;
41
+ this.detailsByProject[projectId] = txDetails;
42
+ logger_1.logger.info(`Started transaction:\n${JSON.stringify(txDetails, null, 2)}`);
43
+ // send live updates
44
+ void this.liveUpdatesHandler.enableTransactionStatus({
45
+ txId
46
+ });
47
+ }
48
+ updateTransaction(txId, stepName) {
49
+ const txDetails = this.detailsByTx[txId];
50
+ if (!txDetails) {
51
+ throw new coded_error_1.CodedError(`Cannot update transaction ${txId} since it doesn't exist!`, this.Errors.TRANSACTION_NOT_ONGOING);
52
+ }
53
+ txDetails.stepName = stepName;
54
+ txDetails.update = new Date().toLocaleString();
55
+ logger_1.logger.info(`Updated transaction:\n${JSON.stringify(txDetails, null, 2)}`);
56
+ }
57
+ async runTransactionStep(props) {
58
+ const { func, projectId, txId, start, stepName } = props;
59
+ if (start) {
60
+ this.startTransaction(txId, projectId, stepName);
22
61
  }
23
62
  else {
24
- // Check if there is any ongoing Transactions for Project ID
25
- if (this.projectToTx[projectId]) {
26
- const { txId, step } = this.projectToTx[projectId];
27
- throw new coded_error_1.CodedError(`This Project ID ${projectId} already has an ongoing transaction! transaction ID: ${txId} step: ${step}`, this.AddTransactionErrors.PROJECT_ID_ONGOING);
28
- }
29
- else {
30
- // Map the Transaction ID with Project ID
31
- this.txToProject[txId] = { projectId, step };
32
- this.projectToTx[projectId] = { txId, step };
63
+ this.updateTransaction(txId, stepName);
64
+ }
65
+ try {
66
+ const completed = await func();
67
+ if (completed) {
68
+ this.completeTransaction(txId);
69
+ const successStatusResponsePayload = {
70
+ status: device_agent_schemas_1.keyMirrors.statusResponse.success
71
+ };
72
+ // Send final status message
73
+ const message = (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.publisher.getClientId(), successStatusResponsePayload, txId);
74
+ this.publisher.publishToClient(message);
33
75
  }
34
76
  }
77
+ catch (e) {
78
+ const message = e.message;
79
+ logger_1.logger.error(`Failed to execute cmd for ${projectId}:\n${message}\n${e.stack}`);
80
+ this.completeTransaction(txId);
81
+ const failureStatusResponsePayload = {
82
+ status: device_agent_schemas_1.keyMirrors.statusResponse.failure,
83
+ message
84
+ };
85
+ // Send final status message
86
+ const failureStatusResponseMessage = (0, device_agent_schemas_1.buildToClientStatusResponseMessage)(this.publisher.getClientId(), failureStatusResponsePayload, txId);
87
+ this.publisher.publishToClient(failureStatusResponseMessage);
88
+ }
35
89
  }
36
90
  getTransactionFromProject(projectId) {
37
- const txnDetails = this.projectToTx[projectId];
91
+ const txnDetails = this.detailsByProject[projectId];
38
92
  return txnDetails === null || txnDetails === void 0 ? void 0 : txnDetails.txId;
39
93
  }
94
+ isOngoingTransactionForProjectID(projectId) {
95
+ return projectId in this.detailsByProject;
96
+ }
97
+ isOngoingTransaction(txId) {
98
+ return txId in this.detailsByTx;
99
+ }
100
+ isAnyOngoingTransaction() {
101
+ return Object.keys(this.detailsByTx).length > 0;
102
+ }
40
103
  getProjectFromTransaction(txId) {
41
- const txnDetails = this.txToProject[txId];
104
+ const txnDetails = this.detailsByTx[txId];
42
105
  return txnDetails === null || txnDetails === void 0 ? void 0 : txnDetails.projectId;
43
106
  }
44
107
  completeTransaction(txId) {
45
- const txnDetails = this.txToProject[txId];
46
- delete this.txToProject[txId];
47
- if (txnDetails !== undefined) {
48
- delete this.projectToTx[txnDetails.projectId];
108
+ const txDetails = this.detailsByTx[txId];
109
+ if (txDetails === undefined) {
110
+ throw new coded_error_1.CodedError(`Cannot complete transaction ${txId} since it doesn't exist!`, this.Errors.TRANSACTION_NOT_ONGOING);
49
111
  }
112
+ txDetails.stop = new Date().toLocaleString();
113
+ logger_1.logger.info(`Completed transaction:\n${JSON.stringify(txDetails, null, 2)}`);
114
+ delete this.detailsByTx[txId];
115
+ delete this.detailsByProject[txDetails.projectId];
116
+ void this.liveUpdatesHandler.disableTransactionStatus({
117
+ txId
118
+ });
50
119
  }
51
120
  }
52
121
  exports.TransactionManager = TransactionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,uDAAmD;AAEnD,MAAa,kBAAkB;IAK7B;QAJQ,gBAAW,GACjB,EAAE,CAAC;QACG,gBAAW,GAAoD,EAAE,CAAC;QAOnE,yBAAoB,GAAG,IAAA,gBAAS,EAAC;YACtC,sBAAsB,EAAE,IAAI;YAC5B,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QAPD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAOM,cAAc,CAAC,IAAY,EAAE,SAAiB,EAAE,IAAa;QAClE,0CAA0C;QAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,wBAAU,CAClB,kBAAkB,IAAI,iCAAiC,SAAS,UAAU,IAAI,EAAE,EAChF,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CACjD,CAAC;SACH;aAAM;YACL,4DAA4D;YAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC/B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,IAAI,wBAAU,CAClB,mBAAmB,SAAS,wDAAwD,IAAI,UAAU,IAAI,EAAE,EACxG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAC7C,CAAC;aACH;iBAAM;gBACL,yCAAyC;gBACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAC9C;SACF;IACH,CAAC;IAEM,yBAAyB,CAAC,SAAiB;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC;IAC1B,CAAC;IAEM,yBAAyB,CAAC,IAAY;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC;IAC/B,CAAC;IAEM,mBAAmB,CAAC,IAAY;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC/C;IACH,CAAC;CACF;AAxDD,gDAwDC"}
1
+ {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.ts"],"names":[],"mappings":"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"}
@@ -3,79 +3,226 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
4
4
  const transaction_manager_1 = require("./transaction-manager");
5
5
  const uuid_1 = require("uuid");
6
+ const publisher_1 = require("./publisher");
7
+ const mockClient = {
8
+ publish: jest.fn()
9
+ };
10
+ const clientId = 'test-client';
11
+ const mockLiveUpdatesHandler = {
12
+ enableTransactionStatus: jest.fn(),
13
+ disableTransactionStatus: jest.fn()
14
+ };
6
15
  describe('Test Transaction Manager', () => {
7
16
  let txnMgr;
17
+ let publisher;
18
+ const func_complete = jest
19
+ .fn()
20
+ .mockResolvedValue(true);
21
+ const func_incomplete = jest
22
+ .fn()
23
+ .mockResolvedValue(false);
8
24
  beforeEach(() => {
9
- txnMgr = new transaction_manager_1.TransactionManager();
25
+ publisher = new publisher_1.Publisher(mockClient, clientId);
26
+ txnMgr = new transaction_manager_1.TransactionManager(publisher, mockLiveUpdatesHandler);
10
27
  jest.clearAllMocks();
11
28
  });
12
29
  function generateRandomProjectId() {
13
30
  return (0, uuid_1.v4)();
14
31
  }
15
- test('Add a new transaction', async () => {
32
+ test('Start a new transaction', async () => {
16
33
  const txId = (0, device_agent_schemas_1.generateTxId)();
17
34
  const projectId = generateRandomProjectId();
18
- txnMgr.addTransaction(txId, projectId);
35
+ await txnMgr.runTransactionStep({
36
+ func: func_incomplete,
37
+ projectId,
38
+ txId,
39
+ start: true
40
+ });
19
41
  expect(txnMgr.getProjectFromTransaction(txId)).toEqual(projectId);
20
42
  expect(txnMgr.getTransactionFromProject(projectId)).toEqual(txId);
43
+ expect(txnMgr.isOngoingTransaction(txId)).toBe(true);
44
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(true);
45
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(true);
46
+ });
47
+ test('Start a new transaction which completes in one step', async () => {
48
+ const txId = (0, device_agent_schemas_1.generateTxId)();
49
+ const projectId = generateRandomProjectId();
50
+ await txnMgr.runTransactionStep({
51
+ func: func_complete,
52
+ projectId,
53
+ txId,
54
+ start: true
55
+ });
56
+ expect(txnMgr.isOngoingTransaction(txId)).toBe(false);
57
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(false);
58
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(false);
59
+ const msg = JSON.parse(mockClient.publish.mock.calls[0][1]);
60
+ expect(msg.payload.status).toBe(device_agent_schemas_1.keyMirrors.statusResponse.success);
61
+ });
62
+ test('Start a new transaction and complete in second step', async () => {
63
+ const txId = (0, device_agent_schemas_1.generateTxId)();
64
+ const projectId = generateRandomProjectId();
65
+ await txnMgr.runTransactionStep({
66
+ func: func_incomplete,
67
+ projectId,
68
+ txId,
69
+ start: true,
70
+ stepName: 'step1'
71
+ });
72
+ await txnMgr.runTransactionStep({
73
+ func: func_complete,
74
+ projectId,
75
+ txId,
76
+ start: false,
77
+ stepName: 'step2'
78
+ });
79
+ expect(txnMgr.isOngoingTransaction(txId)).toBe(false);
80
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(false);
81
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(false);
21
82
  });
22
- test('Add multiple transactions to different projects', async () => {
83
+ test('Start multiple transactions for different projects', async () => {
23
84
  const numTransactions = 3;
24
85
  const projectTxIdList = [];
25
86
  for (let i = 0; i < numTransactions; i++) {
26
87
  const txId = (0, device_agent_schemas_1.generateTxId)();
27
88
  const projectId = generateRandomProjectId();
28
- txnMgr.addTransaction(txId, projectId);
89
+ await txnMgr.runTransactionStep({
90
+ func: func_incomplete,
91
+ projectId,
92
+ txId,
93
+ start: true
94
+ });
29
95
  projectTxIdList.push({ projectId, txId });
30
96
  }
31
97
  projectTxIdList.forEach(({ txId, projectId }) => {
32
98
  expect(txnMgr.getProjectFromTransaction(txId)).toEqual(projectId);
33
99
  expect(txnMgr.getTransactionFromProject(projectId)).toEqual(txId);
100
+ expect(txnMgr.isOngoingTransaction(txId)).toBe(true);
101
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(true);
102
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(true);
34
103
  });
35
104
  });
36
- test('Attempt to add existing transaction to a project, results in failure', async () => {
105
+ test('Attempt to start an ongoing transaction, results in failure', async () => {
37
106
  const txId = (0, device_agent_schemas_1.generateTxId)();
38
107
  const projectId = generateRandomProjectId();
39
- txnMgr.addTransaction(txId, projectId);
108
+ await txnMgr.runTransactionStep({
109
+ func: func_incomplete,
110
+ projectId,
111
+ txId,
112
+ start: true,
113
+ stepName: 'step1'
114
+ });
40
115
  try {
41
- txnMgr.addTransaction(txId, projectId);
42
- throw new Error('Expected adding transaction to fail!');
116
+ await txnMgr.runTransactionStep({
117
+ func: func_incomplete,
118
+ projectId,
119
+ txId,
120
+ start: true,
121
+ stepName: 'step2'
122
+ });
123
+ throw new Error('Expected starting transaction to fail!');
43
124
  }
44
- catch (exception) {
45
- console.log(exception);
46
- expect(exception.code).toBe(txnMgr.AddTransactionErrors.TRANSACTION_ID_ONGOING);
125
+ catch (e) {
126
+ console.log(e);
127
+ expect(e.code).toBe(txnMgr.Errors.TRANSACTION_ONGOING);
47
128
  }
48
129
  expect(txnMgr.getTransactionFromProject(projectId)).toEqual(txId);
49
130
  expect(txnMgr.getProjectFromTransaction(txId)).toEqual(projectId);
50
131
  });
51
- test('Attempt to add a transaction to a project with an ongoing transaction, results in failure', async () => {
132
+ test('Attempt to continue a transaction that is not ongoing', async () => {
133
+ const txId = (0, device_agent_schemas_1.generateTxId)();
134
+ const projectId = generateRandomProjectId();
135
+ try {
136
+ await txnMgr.runTransactionStep({
137
+ func: func_incomplete,
138
+ projectId,
139
+ txId,
140
+ start: false,
141
+ stepName: 'step1'
142
+ });
143
+ throw new Error('Expected continue transaction to fail!');
144
+ }
145
+ catch (e) {
146
+ console.log(e);
147
+ expect(e.code).toBe(txnMgr.Errors.TRANSACTION_NOT_ONGOING);
148
+ }
149
+ expect(txnMgr.isOngoingTransaction(txId)).toBe(false);
150
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(false);
151
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(false);
152
+ });
153
+ test('Attempt to start a transaction for a project with an ongoing transaction, results in failure', async () => {
52
154
  const txId = (0, device_agent_schemas_1.generateTxId)();
53
155
  const txId2 = (0, device_agent_schemas_1.generateTxId)();
54
156
  const projectId = generateRandomProjectId();
55
- txnMgr.addTransaction(txId, projectId);
157
+ await txnMgr.runTransactionStep({
158
+ func: func_incomplete,
159
+ projectId,
160
+ txId,
161
+ start: true,
162
+ stepName: 'step1'
163
+ });
56
164
  try {
57
- txnMgr.addTransaction(txId2, projectId);
58
- throw new Error('Expected adding transaction to fail!');
165
+ await txnMgr.runTransactionStep({
166
+ func: func_incomplete,
167
+ projectId,
168
+ txId: txId2,
169
+ start: true,
170
+ stepName: 'step2'
171
+ });
172
+ throw new Error('Expected start transaction to fail!');
59
173
  }
60
- catch (exception) {
61
- console.log(exception);
62
- expect(exception.code).toBe(txnMgr.AddTransactionErrors.PROJECT_ID_ONGOING);
174
+ catch (e) {
175
+ console.log(e);
176
+ expect(e.code).toBe(txnMgr.Errors.PROJECT_ONGOING);
63
177
  }
64
178
  expect(txnMgr.getTransactionFromProject(projectId)).toEqual(txId);
65
179
  expect(txnMgr.getProjectFromTransaction(txId)).toEqual(projectId);
66
180
  expect(txnMgr.getProjectFromTransaction(txId2)).toBeUndefined();
67
181
  });
68
- test('Test remove transaction from queue', async () => {
182
+ test('Handle error in step function', async () => {
69
183
  const txId = (0, device_agent_schemas_1.generateTxId)();
70
184
  const projectId = generateRandomProjectId();
71
- txnMgr.addTransaction(txId, projectId);
185
+ await txnMgr.runTransactionStep({
186
+ func: jest.fn().mockImplementation(() => {
187
+ throw new Error('Test error!');
188
+ }),
189
+ projectId,
190
+ txId,
191
+ start: true,
192
+ stepName: 'step1'
193
+ });
194
+ expect(txnMgr.isOngoingTransaction(txId)).toBe(false);
195
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(false);
196
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(false);
197
+ const msg = JSON.parse(mockClient.publish.mock.calls[0][1]);
198
+ expect(msg.payload.status).toBe(device_agent_schemas_1.keyMirrors.statusResponse.failure);
199
+ });
200
+ test('Complete ongoing transaction', async () => {
201
+ const txId = (0, device_agent_schemas_1.generateTxId)();
202
+ const projectId = generateRandomProjectId();
203
+ await txnMgr.runTransactionStep({
204
+ func: func_incomplete,
205
+ projectId,
206
+ txId,
207
+ start: true,
208
+ stepName: 'step1'
209
+ });
72
210
  txnMgr.completeTransaction(txId);
73
211
  expect(txnMgr.getTransactionFromProject(projectId)).toBeUndefined();
74
212
  expect(txnMgr.getProjectFromTransaction(txId)).toBeUndefined();
213
+ expect(txnMgr.isOngoingTransactionForProjectID(projectId)).toBe(false);
214
+ expect(txnMgr.isAnyOngoingTransaction()).toBe(false);
75
215
  });
76
216
  test('Test remove non-existing transaction from queue', async () => {
77
217
  const txId = (0, device_agent_schemas_1.generateTxId)();
78
- txnMgr.completeTransaction(txId);
218
+ try {
219
+ txnMgr.completeTransaction(txId);
220
+ throw new Error('Expected completTransaction to fail!');
221
+ }
222
+ catch (e) {
223
+ console.log(e);
224
+ expect(e.code).toBe(txnMgr.Errors.TRANSACTION_NOT_ONGOING);
225
+ }
79
226
  expect(txnMgr.getProjectFromTransaction(txId)).toBeUndefined();
80
227
  });
81
228
  });
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.test.js","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction-manager.test.js","sourceRoot":"","sources":["../../src/cloud-connection/transaction-manager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ export declare type SecureTunnelPortInfo = {
2
+ enabled: boolean;
3
+ type: string;
4
+ ip: string;
5
+ port: number;
6
+ };
7
+ export declare type SecureTunnelShadowDesRep = {
8
+ st_ports: SecureTunnelPortInfo[];
9
+ };
10
+ export declare type SecureTunnelShadowState = {
11
+ reported?: SecureTunnelShadowDesRep;
12
+ desired?: SecureTunnelShadowDesRep;
13
+ };
14
+ export declare type SecureTunnelShadowUpdateDelta = {
15
+ version: number;
16
+ timestamp: number;
17
+ state: SecureTunnelShadowDesRep;
18
+ metadata?: any;
19
+ };
20
+ export declare type SecureTunnelShadowUpdate = {
21
+ version: number;
22
+ state: SecureTunnelShadowState;
23
+ };
24
+ declare type SecureTunnelNotificationType = {
25
+ clientAccessToken: string;
26
+ region: string;
27
+ services: string[];
28
+ };
29
+ /**
30
+ * Handles Secure Tunnel Shadow State
31
+ */
32
+ export declare class SecureTunnelHandlerSingleton {
33
+ private static instance;
34
+ private reported;
35
+ private httpProxyMap;
36
+ private localproxyInfo;
37
+ /**
38
+ * Initializes private variables of SecureTunnel handler.
39
+ * private constructor to prevent instantiation from outside
40
+ */
41
+ private constructor();
42
+ /**
43
+ * Implements the Singleton of the SecureTunnel
44
+ */
45
+ static getInstance(): SecureTunnelHandlerSingleton;
46
+ /**
47
+ * Stops all proxies started before
48
+ */
49
+ destroy(): Promise<void>;
50
+ /**
51
+ * Returns current state of SecureTunnel shadow
52
+ * @returns {SecureTunnelShadowDesRep} - reported state of the SecureTunnel shadow
53
+ */
54
+ getSecureTunnelShadow(): SecureTunnelShadowDesRep;
55
+ /**
56
+ * Updates current state of SecureTunnel shadow
57
+ * @param {SecureTunnelShadowUpdateDelta} deltaMsg - delta message, which includes desired state of the SecureTunnel shadow
58
+ * @return {SecureTunnelShadowDesRep} update reported message to send back to AWS IoT device shadow
59
+ */
60
+ syncShadowToDeviceState(deltaMsg: SecureTunnelShadowUpdateDelta): Promise<SecureTunnelShadowDesRep>;
61
+ /**
62
+ * Starts SecureTunnel
63
+ * @param {SecureTunnelNotificationType} message - AWS notification received
64
+ */
65
+ secureTunnelNotifyHandler(message: SecureTunnelNotificationType): Promise<void>;
66
+ /**
67
+ * Removes reported ports which are do not exist in desired
68
+ * @param {SecureTunnelPortInfo[]} desiredPorts - desired port config
69
+ */
70
+ private CleanupReportedPorts;
71
+ /**
72
+ * Starts port proxy mapping process
73
+ * @param {SecureTunnelPortInfo} portInfo - port info to start the port mapping process for
74
+ */
75
+ private startProxyMapping;
76
+ /**
77
+ * Stops port proxy mapping process
78
+ * @param {SecureTunnelPortInfo} portInfo - port info to stop the port mapping process for
79
+ */
80
+ private stopProxyMapping;
81
+ /**
82
+ * Starts SecureTunnel localproxy process
83
+ */
84
+ private startLocalproxy;
85
+ /**
86
+ * Stops SecureTunnel localproxy process
87
+ */
88
+ private stopLocalproxy;
89
+ /**
90
+ * processes and validate notify message
91
+ * @param {string[]} message - message, which contains: clientAccessToken, region, services
92
+ */
93
+ private processNotifyMessage;
94
+ /**
95
+ * Downloads SecureTunnel localproxy, if it was not downloaded before
96
+ */
97
+ private downloadSecureTunnel;
98
+ /**
99
+ * Gets next available localhost port
100
+ */
101
+ private getNextAvailablePort;
102
+ private sortPorts;
103
+ }
104
+ export {};
105
+ //# sourceMappingURL=secure-tunneling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-tunneling.d.ts","sourceRoot":"","sources":["../../src/secure-tunneling/secure-tunneling.ts"],"names":[],"mappings":"AAsBA,oBAAY,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,wBAAwB,GAAG;IACrC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACpC,CAAC;AAEF,oBAAY,6BAA6B,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,wBAAwB,CAAC;IAChC,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,oBAAY,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,uBAAuB,CAAC;CAChC,CAAC;AAsBF,aAAK,4BAA4B,GAAG;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAMF;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,cAAc,CAA6B;IAEnD;;;OAGG;IACH,OAAO;IAqBP;;OAEG;WACW,WAAW,IAAI,4BAA4B;IAUzD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBrC;;;OAGG;IACI,qBAAqB,IAAI,wBAAwB;IAOxD;;;;OAIG;IACU,uBAAuB,CAClC,QAAQ,EAAE,6BAA6B,GACtC,OAAO,CAAC,wBAAwB,CAAC;IA0DpC;;;OAGG;IACU,yBAAyB,CACpC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC;IAmBhB;;;OAGG;YACW,oBAAoB;IAkClC;;;OAGG;YACW,iBAAiB;IA+C/B;;;OAGG;YACW,gBAAgB;IA2C9B;;OAEG;YACW,eAAe;IAuB7B;;OAEG;YACW,cAAc;IA4B5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAmF5B;;OAEG;YACW,oBAAoB;IA8BlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,SAAS;CAmBlB"}